Getting the best N64 experience on a Pi 4
-
@quicksilver said in Getting the best N64 experience on a Pi 4:
thanks! there wasn't anything significant different but i tried it anyway and i still get slow downs and choppy sound for the spinning nitendo logo with latest binary. do you do any other tweaks to the cfg? i remember you saying something about the audio plugin.
TBH i don't know if my install is particularly stock these days. it could well be something i've messed up...
-
@dankcushions I changed the sdl audio resampler to "trivial", it greatly improved audio latency but I don't think help speed anything else up.
Though one thing I just thought of is I forgot to turn off my overclock when I tested. Let me turn off my overclock and retest. If that's the reason I'm getting better performance I'm going to feel rather sheepish.
-
@quicksilver said in Getting the best N64 experience on a Pi 4:
I can replicate this behavior in the menus for StarCraft 64 and battle for naboo, slow and choppy at first but then suddenly smooths out and runs fullspeed. I thought this must be something to do with the texture caching however if I quit the game and reload, it is choppy again for about the first 15 secs or so (which shouldn't happen right?)
Edit: haven't tested with KI yet but with StarCraft and battle for naboo I used htop to see what was happening during this initial slow down and I can see memory usage continuing to climb. As soon as the memory usage stops climbing is when the game suddenly becomes fullspeed.strange. i know you can get stutters during shader recompilation, but compiled shaders should be stored between sessions. you can see the stored ones like so:
pi@retropie:~ $ ls -al .cache/mupen64plus/shaders total 28 drwx------ 2 pi pi 4096 Apr 30 22:52 . drwx------ 3 pi pi 4096 Jan 20 13:42 .. -rw-r--r-- 1 pi pi 147 Apr 13 02:01 GLideN64.3b48c581.GLES.keys -rw-r--r-- 1 pi pi 451 Jan 26 17:22 GLideN64.4f70bd4b.GLES.keys -rw-r--r-- 1 pi pi 204 Apr 12 10:17 GLideN64.b6bd1d73.GLES.keys -rw-r--r-- 1 pi pi 432 Apr 29 10:07 GLideN64.eb4d37c1.GLES.keys -rw-r--r-- 1 pi pi 299 Apr 29 09:45 GLideN64.f05a5536.GLES.keys
pay attention to the dates - do you get new ones appear here after you re-load a game?
-
I find that Pilotwings goes to a black screen when I enter a level on anything except GLide-N64. Is this normal?
-
I've also noticed performance for N64 seems to be worse than on the 3b+
Goldeneye is really sluggish, tried f-zero and audio was certainly not great.
Video was set to 4k as default so I reduced that... But didn't see a huge improvement. Only tried the default emu.
-
@Jste84 performance is definitely better on my pi 4. Are you sure you are comparing the same emulators?
-
@quicksilver has the default emulator changed? I've only had 3 games on mario 64, f-zero and Goldeneye to be fair. will do more testing tomorrow
-
@Jste84 yes I believe the defaults have changed
-
@dankcushions so I tested with my overclock off and performance definitely went down. However the spinning Nintendo logo at the begining was fullspeed. Then I remembered that I always lower the display res in runcommand to 640x480 for the n64 emulators. Once I reset to the default 1920x1080 the Nintendo logo became very choppy. So the upscaling to 1080p is causing a big performance hit.
-
@quicksilver said in Getting the best N64 experience on a Pi 4:
@dankcushions so I tested with my overclock off and performance definitely went down. However the spinning Nintendo logo at the begining was fullspeed. Then I remembered that I always lower the display res in runcommand to 640x480 for the n64 emulators. Once I reset to the default 1920x1080 the Nintendo logo became very choppy. So the upscaling to 1080p is causing a big performance hit.
thanks, that was enough for me to figure it out! the issue is this setting:
EnableHybridFilter = True
It's a recent addition to GLideN64 that allows better upscaling (less uneven pixels), but appears to be a major performance hit. if you set this to False the performance issues go away (even at 1080p). PR incoming to fix this for future installs, but those of you running current, paste the following into a command line session:
source ~/RetroPie-Setup/scriptmodules/inifuncs.sh iniConfig ' = ' iniSet "EnableHybridFilter" "False" "/opt/retropie/configs/n64/mupen64plus.cfg"
thanks again @quicksilver - you've helped so much with n64!
-
-
@dankcushions is this something that needs looked into for lr-mupen64plus-next? I know that it follows gliden64 closely but I don't see the setting exposed in the retroarch menu.
-
@George-Spiggott said in Getting the best N64 experience on a Pi 4:
I find that Pilotwings goes to a black screen when I enter a level on anything except GLide-N64. Is this normal?
No it's not normal, I'm able to run pilot wings with gles2rice and levels load normally (gles2rice needs it's screen update settings tweaked in the mupen64plus.cfg otherwise you'll get a really strange jitter effect on screen on the pi 4. I'm using setting 7 as it seems to be the least problematic but not of the settings seem to perfectly resolve the issue). This may be another setting that needs changed for pi 4 users @dankcushions. I know you aren't a fan of the old plugins but there are still some games that just don't perform well using gliden64 or mupen64plus-next.
-
@quicksilver said in Getting the best N64 experience on a Pi 4:
@dankcushions is this something that needs looked into for lr-mupen64plus-next? I know that it follows gliden64 closely but I don't see the setting exposed in the retroarch menu.
they will expose the option in later releases, but right now it looks like it's always enabled, unless i'm reading the code wrong.
@quicksilver said in Getting the best N64 experience on a Pi 4:
This may be another setting that needs changed for pi 4 users @dankcushions. I know you aren't a fan of the old plugins but there are still some games that just don't perform well using gliden64 or mupen64plus-next.
other than some horrible slowdown in the menus, pilotwings 64 seems to perform ok for in-game for GLideN64?
-
I can play Pilotwings N64 on GLide-N64 just not any others. On gles2n64 it opens in a tiny square in the bottom of the screen and in gles2rice the screen has an odd off-putting jitter.
-
@dankcushions it may not be the best example but there are other games where the difference is more pronounced, excitebike 64, crusin USA, clayfighters etc. for example. Either way, without changing the screen update setting gles2rice is useless on the pi 4.
@George-Spiggott see my post above on how to fix the gles2rice jitter issue for the pi 4.
-
@dankcushions Unfortunately the games I’m trying to improve performance with, Cruis’n USA for example, doesn’t even work with that emulator...
It seems like we are half way there, I can run many N64 games on the Pi 4 that I couldn’t on the Pi 3 but they have issues. Either the emulators will need to improve, which probably won’t happen, or maybe a Pi 5 will run them properly
-
There are still improvements to the GPU drivers like Vulcan implementation that may have benefits for N64 (also PSP and Dreamcast) performance.
-
@Stevewp said in Getting the best N64 experience on a Pi 4:
@dankcushions Unfortunately the games I’m trying to improve performance with, Cruis’n USA for example, doesn’t even work with that emulator...
just tried it - works fine for me? some slowdown but it 'works'
-
@Stevewp said in Getting the best N64 experience on a Pi 4:
Cruis’n USA for example, doesn’t even work with that emulator...
For that particular game use gles2rice. You'll also need to modify the mupen64plus.cfg located at /opt/retropie/configs/n64/mupen64plus.cfg at the bottom under the video-rice section change screen update setting to 7 and it will get rid of the strange "jitter" issue that gles2rice has on the pi 4. The game is still a little slow here and there but it's certainly "playable".
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.