Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

All Wii64 related discussions here
Post Reply
User avatar
lzer0
Posts: 12
Joined: Sat Jun 25, 2016 4:26 pm
Location: Venezuela
Contact:

Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by lzer0 » Mon Jul 06, 2020 4:49 am

I did a test with FIX94's fork of Wii64 and Extrems Not64, using the Mario Kart 64 60FPS Hack to measure which had better framerate/performance and basically the Wii64 version with the Rice video plugin had far better performance than the glN64 GFX plugin both on Wii64 and Not64. Not only is able to keep 60FPS on 2-Player Grand Prix, it also keeps a steady 30FPS on 4-Player Versus, on the most demanding track, which it would be DKJP, only losing near 8 frames on slowndown, but most of the time the average framerate is 58-60, the other track being KD, which lags quite a lot on console, the Rice video plugin can keep above average framerate. All the other tracks run at a solid 60FPS on 2-player GP and 30FPS on 4-player versus, with the worst slowndown being, like, 2 frames? Anyways, I will post the results for both Not64 and Wii64 Rice.

Before doing this test I thought the Not64 GFX plugin was the best it could get the Wii to achieve maximum framerate and stability, but I was wrong. I am quite impressed and still can't believe this Rice video plugin can achieve lagless 60FPS Single and Two player GP, and lagless 30FPS 3-4 multiplayer with Mario Kart 64.

Note: LimitVIs = 1 in settings.cfg must be set on Wii64 since it doesn't feature the VI/s frame limiter on the GUI yet.
Note2: Lagfix is MANDATORY for 60FPS, specially with Rice GFX where the 60FPS code glitches the graphics sometimes, Lagfix increases performance overall and prevent the graphic mess on Rice but breaks the final lap music, this seems to happen on all emulators and not only mupen64gc, so I developed a workaround to fix that with more Gameshark codes.

Wii64 (Rice GFX)
2-Player Grand Prix @60FPS
KD: worst 52FPS, average 58-60.
DKJP: worst 52FPS, average 56-60.
All other tracks: 60FPS, with pretty much null frame loss.

Wii64 (Rice GFX)
4-Player Versus @30FPS
KD: worst 26FPS, average 29-30. (1.0x)
DKJP: worst 26FPS, average 28-30. (1.0x)
All other tracks: 30FPS (1.0x), with pretty much null frame loss.

Bug encountered: When loading the game for the first time everything works correctly, however if you restart game or reload the same game again some textures like the skybox and the item boxes won't load properly. It happens with Mario Kart 64 only on Rice GFX plugin.
https://prnt.sc/tcui1w

Wii64 (glN64 GFX) and Not64
(Mushroom Cup) LR@50+++, MMF@39+, KTB@52+, KD@40+
(Flower Cup) TT@54++++, FS@48+++, CM@60+++++, MR@50+++
(Star Cup) WS@57++++, SL@57++++, RRy@52+++, BC@54++++
(Special Cup) DKJP@40+, YV @52+++, BB@50+++, RRd@57++++
All tracks on 2P Versus reach 60FPS unless stated otherwise.

4-player Versus@30FPS
Instead, I use the Speed Multiplier next to the VI count, on some tracks I include them.
(Note: 60VIS=30FPS)

(Mushroom Cup) LR: 0.9-1x, MMF:0.7-0.9x, KTB:0.9-1x, KD: 39.6@0.7x-0.8x
(Flower Cup) TT:57@1.0x, FS:57@0.9-1.0x, CM:57@1.0x, MR:53@0.8x1.0x
(Star Cup) WS: 58@1.0x, SL: 54@0.9-1.0x, RR: 48@08-1.0x, BC: 57@1.0x
(Special Cup) DKJP: 45@0.8-1.0x, YV: 57@1.0x, BB: 51.3@0.-1.0x, RR: 57@1.0x
All tracks on 4P reach 60VIs (30FPS) unless stated otherwise.

I will upload one or two videos showing the differences later, but you can test yourself injecting these codes into the ROM with triclon's Mario Kart 64 Gameshark Code Injector:
https://sites.google.com/view/triclons- ... e-injector

Lagfix
800EA6D2 000D

60FPS Hack (All Modes)
81001890 2419 //60FPS Hack
81001892 0001 //60FPS Hack
81001894 2419 //60FPS Hack
81001896 0001 //60FPS Hack
80000FE3 0000 //Single Player 60FPS
800014CF 0001 //Single Player 60FPS
81001A38 2409 //Two Player 60fps tempo
81001A3A 0001 //Two Player 60fps tempo
81001A3C 2409 //Two Player 60fps tempo
81001A3E 0001 //Two Player 60fps tempo
81001C90 240A //Three and Four Player 60fps tempo
81001C92 0001 //Three and Four Player 60fps tempo
81001C94 240A //Three and Four Player 60fps tempo
81001C96 0001 //Three and Four Player 60fps tempo
80122CBB 001C //Hack
810AC5D4 2401 //Hack
810AC5D6 0006 //Hack

Two player fixed 30fps tempo
81001C90 240A //Three and Four Player 30fps tempo
81001C92 0002 //Three and Four Player 30fps tempo
81001C94 240A //Three and Four Player 30fps tempo
81001C96 0002 //Three and Four Player 30fps tempo

Fix final lap not working broken by lagfix:
D00DC53F 0003 //asks if game is set to battle mode
D00DC52F 0003 //asks if there are 3 or 4 players
D00DC513 0005 //asks if the game has finished
D13B03D2 0200 //asks if the battle BGM is playing
813B03D2 0000 //mutes Big Donut / Skyscraper
D00DC53F 0003 //asks if game is set to battle mode
D00DC52F 0003 //asks if there are 3 or 4 players
D00DC513 0005 //asks if the game has finished
D13B03C4 0002 //asks if the battle BGM is playing
813B03C4 0000 //mutes Block Fort / Double Deck

It must be noted that 30FPS and 60FPS tempo can't go in the same time, they must be injected separately as the game is only able to handle 60FPS if the Single Player 60FPS is injected, by default it will go at 30FPS when not injected, when these codes aren't activated, the game will change the pacing of the race depending on the number of players and the track, more information about this here: http://tasvideos.org/GameResources/N64/ ... tches.html

These results makes me wonder if the clock divider feature and the other updates could further improve this already good build if ported to Wii64 Rice.
Last edited by lzer0 on Thu Jul 16, 2020 6:21 am, edited 2 times in total.
Smash 64 Forever
User avatar
emu_kidid
Site Admin
Posts: 4680
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by emu_kidid » Mon Jul 06, 2020 11:54 pm

Rice may work faster but the port is missing quite a few things which is potentially why. It's also a lot messier than glN64 to follow (code-wise).

The best plugin to use for compatibility at this point is glN64 in Not64 due to the recent fixes Extrems has pushed. I'll eventually release a Wii64 build containing all the fixes from Not64 and FIX94's Wii64 branch (WiiVC stuff mainly). It should be noted that FIX94's Wii64 branch is fairly outdated.
Image
Butterhands
Posts: 55
Joined: Wed Jul 03, 2013 3:21 pm

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by Butterhands » Wed Jul 08, 2020 4:58 pm

emu_kidid wrote:
Mon Jul 06, 2020 11:54 pm
I'll eventually release a Wii64 build containing all the fixes from Not64 and FIX94's Wii64 branch (WiiVC stuff mainly).
This then means also Cruis'n USA VC improvements? An emulator better by the VC channel would be appreciated.
User avatar
lzer0
Posts: 12
Joined: Sat Jun 25, 2016 4:26 pm
Location: Venezuela
Contact:

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by lzer0 » Wed Jul 08, 2020 6:10 pm

emu_kidid wrote:
Mon Jul 06, 2020 11:54 pm
Rice may work faster but the port is missing quite a few things which is potentially why. It's also a lot messier than glN64 to follow (code-wise).

The best plugin to use for compatibility at this point is glN64 in Not64 due to the recent fixes Extrems has pushed. I'll eventually release a Wii64 build containing all the fixes from Not64 and FIX94's Wii64 branch (WiiVC stuff mainly). It should be noted that FIX94's Wii64 branch is fairly outdated.
Is there any chance there could be add support for gameshark/cheats? At least the emulator is capable of handling games with already injected gameshark codes into the ROM, in this case Mario Kart 60FPS, Goldeneye X and Smash Remix in which these cases it handles better than Not64. It also runs Goldeneye multiplayer 3/4 pretty much fine with the skybox working, with reasonably better FPS count because activating FB textures on Not64 would significantly drop the performance, performance drop that was less noticeable on Rice's GFX. The thing with injecting gameshark codes into the ROM is that the injector only works with one specific ROM and that would be Mario Kart 64 (U), so unless the emulator is given native gameshark support out of Mario Kart 64 and Custom ROM Hacks, there is no really other way to make gameshark work with the other +300 games on Wii64/Not64.

Speaking of bugs, the CPU Framebuffer doesn't work (or hasn't been implemented yet) on Not64. Also the FB textures option on Not64 STILL to this day cuts framerate in half (even thought the VI/FPS display wouldn't visibly drop their count), this was specially true for Goldeneye-based games that requires FB textures ON and Smash 64, in the latter game the magnifying glass that displays characters out of the visible screen field would get surrounded by a ugly black square, turning FB textures ON fixes this, but then framerate would be dropped to half, if it was 60FPS it would seem like its 30FPS, so I didn't use it because losing half framerate wasn't worth it tbh, however with Rice's GFX not only it correctly displays the magnifying glass without needing to activate FB textures, but it also displays correctly custom textures (like the ones Smash Remix uses for their custom stages). Interestingly, on newer releases of Smash Remix, the textures would correctly display on some revised stages that previously would not display properly, issue that only happens with glN64's GFX on Wii as almost every other emulator would display them correctly. This issue is addressed here even thought devs stated they wouldn't work on it because it wasn't their main goal, but they may ocassionally fix it on later releases as this has already happened from 0.9.1 to 0.9.2, and from 0.9.2 to 0.9.3.
https://github.com/JSsixtyfour/smashremix/issues/3
https://github.com/JSsixtyfour/smashremix/issues/16
Last edited by lzer0 on Thu Jul 09, 2020 2:18 pm, edited 1 time in total.
Smash 64 Forever
niuus
Posts: 77
Joined: Fri May 20, 2016 2:03 am

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by niuus » Thu Jul 09, 2020 6:35 am

emu_kidid wrote:
Mon Jul 06, 2020 11:54 pm
Rice may work faster but the port is missing quite a few things which is potentially why. It's also a lot messier than glN64 to follow (code-wise).

The best plugin to use for compatibility at this point is glN64 in Not64 due to the recent fixes Extrems has pushed. I'll eventually release a Wii64 build containing all the fixes from Not64 and FIX94's Wii64 branch (WiiVC stuff mainly). It should be noted that FIX94's Wii64 branch is fairly outdated.
Mind the quick question, emu_kidid: what program should i use to edit the .tx image files within the source code? I can't open them even in Photoshop :o
User avatar
emu_kidid
Site Admin
Posts: 4680
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by emu_kidid » Thu Jul 09, 2020 6:56 am

niuus wrote:
Thu Jul 09, 2020 6:35 am
emu_kidid wrote:
Mon Jul 06, 2020 11:54 pm
Rice may work faster but the port is missing quite a few things which is potentially why. It's also a lot messier than glN64 to follow (code-wise).

The best plugin to use for compatibility at this point is glN64 in Not64 due to the recent fixes Extrems has pushed. I'll eventually release a Wii64 build containing all the fixes from Not64 and FIX94's Wii64 branch (WiiVC stuff mainly). It should be noted that FIX94's Wii64 branch is fairly outdated.
Mind the quick question, emu_kidid: what program should i use to edit the .tx image files within the source code? I can't open them even in Photoshop :o
The .tx file for the logo is a GX_TF_RGB5A3 texture, the others differ, have a look at Image.cpp and GuiResources.cpp. You could use the tpl file converter that comes with libOGC and then extract the texture from that, it's been a while so I don't remember how we made them.
Image
User avatar
lzer0
Posts: 12
Joined: Sat Jun 25, 2016 4:26 pm
Location: Venezuela
Contact:

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by lzer0 » Thu Jul 09, 2020 2:13 pm

I was unsure about the FB Textures issue still present on latest Not64 build because it seems the EasyCAP recording device I use to display the Wii signal into the PC gets jittery framerate and I don't have a TV so I had to go outside and test in friend's house, found out the FB textures cutting framerate to half is still present to this day and this bug seems to be present since the very first beta releases of the original Wii64. This is a real problem on games that need FB textures ON as the framerate will get way worse with that option enabled, on Wii64 Rice's GFX it is able to properly display games like Smash Remix (Custom Textures), Goldeneye 007, Perfect Dark and Goldeneye X, without needing to activate FB textures, not only that but the option itself seems to work properly as when FB textures is enabled on Rice the framerate doesn't suffer a noticeable drop, the problem is that on Rice GFX the framerate on Smash is jittery and unstable even with LimitVIs activated, on the other hand Not64 with glN64 has stable framerate on Smash, however it falls short when coming to the Goldeneye-based games as it can't properly display skyboxes properly and forcefully needs the FB textures ON which significantly drops its performance.

In other words, of these 5 games I tested, Smash 64 (Remix), Mario Kart 64, Goldeneye 007, Perfect Dark and Goldeneye X, the Wii64 Rice GFX performs noticeably faster (and better) on the latter 4, while only Not64 glN64 has better framerate on Smash 64 (without FB textures ON), because if it were to count FB games that forcefully require textures ON, the Wii64 Rice GFX practically outclasses Not64 glN64 at the cost of stability on certain games. I am not testing more games as these are the ones I was particularly interested in testing and comparing their differences between GFX (glN64 vs Rice) plugins.
Smash 64 Forever
User avatar
Extrems
Posts: 970
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by Extrems » Thu Jul 09, 2020 3:00 pm

FB Textures isn't implemented with the Rice Video plugin.

CPU Framebuffer is currently only for displaying things not drawn by the RDP.
Oh, and it's also not implemented with the Rice Video plugin.
User avatar
emu_kidid
Site Admin
Posts: 4680
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by emu_kidid » Thu Jul 09, 2020 11:05 pm

It would seem people don't read:
emu_kidid wrote:
Mon Jul 06, 2020 11:54 pm
Rice may work faster but the port is missing quite a few things which is potentially why. It's also a lot messier than glN64 to follow (code-wise).
Image
niuus
Posts: 77
Joined: Fri May 20, 2016 2:03 am

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by niuus » Thu Jul 09, 2020 11:52 pm

emu_kidid wrote:
Thu Jul 09, 2020 6:56 am
niuus wrote:
Thu Jul 09, 2020 6:35 am
emu_kidid wrote:
Mon Jul 06, 2020 11:54 pm
Rice may work faster but the port is missing quite a few things which is potentially why. It's also a lot messier than glN64 to follow (code-wise).

The best plugin to use for compatibility at this point is glN64 in Not64 due to the recent fixes Extrems has pushed. I'll eventually release a Wii64 build containing all the fixes from Not64 and FIX94's Wii64 branch (WiiVC stuff mainly). It should be noted that FIX94's Wii64 branch is fairly outdated.
Mind the quick question, emu_kidid: what program should i use to edit the .tx image files within the source code? I can't open them even in Photoshop :o
The .tx file for the logo is a GX_TF_RGB5A3 texture, the others differ, have a look at Image.cpp and GuiResources.cpp. You could use the tpl file converter that comes with libOGC and then extract the texture from that, it's been a while so I don't remember how we made them.
Interesting! I'll research into it. Thanks for the feedback, appreciate it.
User avatar
lzer0
Posts: 12
Joined: Sat Jun 25, 2016 4:26 pm
Location: Venezuela
Contact:

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by lzer0 » Sat Jul 11, 2020 9:58 pm

emu_kidid wrote:
Thu Jul 09, 2020 11:05 pm
It would seem people don't read:
emu_kidid wrote:
Mon Jul 06, 2020 11:54 pm
Rice may work faster but the port is missing quite a few things which is potentially why. It's also a lot messier than glN64 to follow (code-wise).
I actually read that, but it didn't answer my question.
I don't want to sound ungrateful for saying this, but why actually follow up a plugin with poorly implemented FB textures instead of giving proper support to the other one that can also be useful? at least for certain games Rice runs better than glN64.
emu_kidid wrote:
Mon Jul 06, 2020 11:54 pm
The best plugin to use for compatibility at this point is glN64 in Not64 due to the recent fixes Extrems has pushed.
The best plugin to use depends in which game you want to play. While Rice GFX is outdated, it actually runs fairly well the games it actually supports. Also this is more of a personal preference, where you want better framerate or certain features at expense of framerate. Again, with many games you may try whatever GFX works best. There's literally no reason to use the glN64 which performs worse than Rice to play GE,PD and Mario Kart 64, but that may also be the case for glN64 it could run better some other games Rice wouldn't. But there are just way too many games to test so I'll leave that to someone else.
Extrems wrote:
Thu Jul 09, 2020 3:00 pm
FB Textures isn't implemented with the Rice Video plugin.
Interesting, so Rice's GFX can properly display skyboxes in GE/PD and other stuff like the magnifying glasses in Smash 64 without having a functional FB textures.
Yet someone said you aren't interested in maintaining this video plugin. Why is that?
As far as other games, I haven't tested all them but the jittery framerate seems to be game-specific, so one plugin will always outperform the other one on certain games and whatnot.
Extrems wrote:
Thu Jul 09, 2020 3:00 pm
CPU Framebuffer is currently only for displaying things not drawn by the RDP.
Oh, and it's also not implemented with the Rice Video plugin.
So, which games actually uses the CPU framebuffer?
Smash 64 Forever
User avatar
lzer0
Posts: 12
Joined: Sat Jun 25, 2016 4:26 pm
Location: Venezuela
Contact:

Re: Wii64 (Rice) vs Not64 (glN64) 60FPS framerate/performance test with Mario Kart 64

Post by lzer0 » Thu Jul 16, 2020 8:14 pm

Update:

Wii64 (Rice GFX) 3Player Versus 60FPS performance test
LR: Stable 60FPS, worst ~52FPS
MMF: Noticeable slowdown, average 45-50FPS, worst ~42FPS
KTB: Stable 55FPS, average 53-57FPS, worst 50FPS
KD: Noticeable slowdown, average 45-50FPS, worst ~43FPS

TT: Slight slowdown, average 53-57FPS, worst ~46FPS, best@60FPS
FS: Stable 55FPS, average 55~60FPS, worst 47FPS
CM: Stable 60FPS, worst 56FPS
MR: Average 54~60FPS, worst 50FPS

WS: Stable 60FPS, worst 55FPS
SL: Stable 60FPS, worst 57FPS
RRy: Average 50~55FPS, worst 48FPS
BC: (Inside the castle 50~55FPS worst, 48FPS), (outside the castle 55~60FPS, worst 55FPS)

DKJP: Average 52~58FPS, worst 50FPS, best 60FPS
YV: Average 54~60FPS, worst 52FPS
BB: (Boardwalk 46~58FPS), (inside bats house 43~54FPS)
RRd: Average 55~60FPS, worst 50FPS

There is a slight chance I could get some margin of error as I was playing at the same time I was keeping track of the visual VI/s and FPS counters.
Smash 64 Forever
Post Reply