RPi 4 N64 performance (again)
-
Hi there,
I hate to open this big box of grief again but... let's talk about N64 performance on the Pi 4?
Some people seem to manage to get a much better performance than I do, I mean, what's the secret? I overclocked my Pi (CPU to 2000, GPU to 650), I chose the lowest resolution, set the core to run at full speed, tried different cores... It literally didn't seem to affect performance at all. Super Mario 64 runs constantly around 20-25 fps, Starfox 64 constantly around 30, Zelda OoT constantly around 15. Nothing I do changes anything and I really can't wrap my head around that.So... any suggestions?
-
@Wolf64 how are you measuring the average fps?
-
@Wolf64 You need to provide more information. Which emulator ? What config - maybe give a specific example to reproduce else it's hard to advice.
Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first
-
@quicksilver @BuZz Very sorry for the lack of information, I was in a hurry and somehow took these for granted:
Retropie image for RPi 4 (using official power supply and a casing with a tiny fan for cooling), updated Raspbian, RPi firmware and Retropie, using RetroArch (lr-mupen64plus/-next), all default config except the ones I mentioned in my entry post. FPS measured with RetroArch's FPS counter. -
@Wolf64 atm lr-mupen64plus-next is not the best choice as your default N64 emulator. Please try using mupen64plus-gliden64, it has better performance because it's multi-threaded (though this feature is coming to lr-mupen64plus-next soon). Please see this thread before running mupen64plus-gliden64 as it has an important performance fix. https://retropie.org.uk/forum/topic/25880/n64-mupen64plus-gliden64-performance-fix/3
There are still a few games that dont run well using gliden64 so in those cases you may need to use one of the older plugins like gles2rice or gles2n64. Though this should be done only as a last resort because those plugins are older, inaccurate and are no longer being developed.
-
@quicksilver Thanks for the info. I tried mupen64plus-gliden64 with the hybrid filter disabled and ShowFPS enabled. Unfortunately, it's the same old story. The average FPS stays the same for the games I mentioned initially. However, I tested another, Tarzen, with both lr-mupen64plus-next and -gliden64. Where I had roughly 20 FPS on average for the lr-core, gliden64 double that to around 40.
It's something, but I still wonder why the rest doesn't seem to work at all. You say that there are still a few games that just don't run well, but usually Super Mario, Starfox and Zelda are amongst those that run the most decent on RPis.
While 30 FPS for StarFox is pretty much decent enough, it's not really an improvement over the Pi 3, where it ran just as well, afair.
Now I know, N64 emulation just isn't the most performant from a software standpoint, but again, others seem to do way better. I don't think that Retropie's EmulationStation and whatever is running in the background is causing such an overhead to mitigate any improvements to to faster and overclocked hardware, does it? -
@Wolf64 I would test without overclocking.
-
@BuZz I already tested the games mentioned above before and after overclocking, both with the exact same results.
I assume overclocking did work, as in the process the Pi crashed or didn't boot a few times until I got the voltage and freqs just right. So now it runs stable at 2 Ghz CPU and 650 Mhz GPU clock speed, but with no noticable performance boost in the games I tested. -
@Wolf64 said in RPi 4 N64 performance (again):
Super Mario, Starfox and Zelda are amongst those that run the most decent on RPis.
I'm not sure what issue you are having, I can run these with gliden64 no issues. Super Mario I can run using the high-res option even.
You say starfox runs at 30fps, have you checked to see what the original frame rate is for these games? 60fps didn't become a standard until the late 90s. Afaik not all N64 games run at 60fps.
-
@Wolf64 what resolution is your TV and what resolution are you running it at?
Please post the configs from
/boot/config.txt /opt/retropie/configs/n64/* /opt/retropie/configs/all/retroarch-core-options.cfg /opt/retropie/configs/all/retroarch.cfg
Use a pastebin site or zip them and upload somewhere.
-
@quicksilver My issue is basically just seeing what the Pi4 can actually do, according to others, and how it does for me in comparison. And that overclocking doesn't seem to improve anything. So if there's something I do wrong on my end, I'd just like to know.
I know that many older games run below 60 fps and that's totally fine. As for StarFox, sure, as I said 30 fps are decent enough. If any game would run at constant 30 fps I'd be happy. Only 25 for Super Mario? Fair enough. But 15 fps for Zelda? That's definitely not the original frame rate and I just find it hardly playable.
According to this sheet, it's apparently possible to get around 50 fps for Zelda, just as an example:
https://onedrive.live.com/view.aspx?resid=CA4C3FA509AF1016!314785&ithint=file%2Cxlsx&authkey=!AAKV4-LVo1GCONEEverything greater or equal to 30 fps is fine for me and I know it's not gonna happen on every game on a Pi. But from what I can read, in general it does seem to be possible to get a better performance than I currently have and I'd like to get there.
@BuZz boot config: https://pastebin.com/Xz8F82CD
retroarch.cfg: https://pastebin.com/QxPW8ESg
retroarch-core-options.cfg: https://pastebin.com/Xa1MC41R
n64 configs: https://www.file-upload.net/download-14094807/config_n64.zip.html -
@Wolf64 you didn't answer the question about TV and resolution. I'll check your configs.
-
@Wolf64 you don't have a default retroarch config. You've saved a config out from the application. I'd reset the retroarch.cfg (backup/delete and reinstall retroarch) and retest
I've not checked the n64 retroarch.cfg as in mobile but make sure that's the default also (reinstall the libretro mupen64plus emulator and check with .rp-dist copy in same folder).
-
@BuZz Forgot the resolution, was about to edit, sorry. You guys are fast!
I’m testing on my desktop’s screen which is 1920x1080. The target TV shouldn’t be more than 1080p as well. On my screen now though retropie doesn’t seem to use it’s native resolution, instead it’s cropped smaller.
Strange for the configs though, why does that happen? I just used retropie “out of the box” after flashing it to the SD, no tinkering with configs whatsoever (except the recent ones as discussed in this thread).
Thanks a lot for checking. -
@Wolf64 retropie doesn't come like that so you must have loaded retroarch and saved the config out. How did you install RetroPie?
-
@BuZz I downloaded the pre-made image from here, installing it via balena etcher to the microSD.
At some point I started RetroArch through ES to change it’s UI to xmb, now that I remember. And to set a key combination to get to it’s menu while playing (Start+Select). All platforms had lr-cores as default though (lr-mupen64plus-next for the n64 as example), so I didn’t need to install anything manually.Edit: I apologize if I don’t get these things straight from the get go, I’m still largely confused by RetroArch and how everything is intertwined in retropie. Thank you for your patience.
-
@Wolf64 said in RPi 4 N64 performance (again):
I know that many older games run below 60 fps and that's totally fine. As for StarFox, sure, as I said 30 fps are decent enough. If any game would run at constant 30 fps I'd be happy. Only 25 for Super Mario? Fair enough. But 15 fps for Zelda? That's definitely not the original frame rate and I just find it hardly playable.
If you dig into it a little you'll find that Zelda oot on original hardware was just 20fps. Mario was about 30fps with dips into the 20s and GoldenEye could frequently get into the teens (or perhaps lower with rocket spam). I'm not saying there isn't room for improvement, but it helps to know what the baseline is for comparison.
-
@quicksilver It does indeed help, thank you for clarifying! Quite surprised though, couldn't have imagined this being the original speeds. Maybe for Goldeneye but I just don't remember Zelda being like that back in the day. But I guess that's just because at that time I wasn't really aware of the whole fps and performance thing and by now I'm probably too used to 60+ fps. Anyway, good to know, thanks again. Now to find out how to unlock these frame rates for a bit of improvement.
@BuZz said in RPi 4 N64 performance (again):
@Wolf64 you don't have a default retroarch config. You've saved a config out from the application. I'd reset the retroarch.cfg (backup/delete and reinstall retroarch) and retest
I've reinstalled RetroArch and the two lr-mupen cores from source. What's supposed to change now? Using gliden64 as default for n64 games unfortunately won't give me access to RetroArch and it's settings anyway. Is there a way to change settings for the non-lr-emus without browsing through .cfg files from within the terminal?
-
@Wolf64 said in RPi 4 N64 performance (again):
Is there a way to change settings for the non-lr-emus without browsing through .cfg files from within the terminal?
You could browse the config files through ssh instead :p. Yeah unfortunately there is no user interface with standalone mupen64plus. The main file you'll want to look at is mupen64plus.cfg. there are several accuracy settings you can play with that will speed things up at the cost of lower accuracy in some games. The unfortunate thing is you cant save per game configs, so all changes made are global. Hopefully once mupen64plus-next gets multi-threaded and has native resolution fixes in place it can take over as the default emulator.
-
@quicksilver Not a bad idea, could even do that from my phone when I don't have a keyboard handy to connect to the Pi^^.
Thanks for the info, guess I'll just play a bit around with the settings then, see what does what so I already have an idea on what to do once mupen64plus-next is viable as default.Speaking of settings, before I forget, I wanted to ask if there's a way to reduce audio lag/stutter/crackling for some n64 games? The lag probably is due to performance in general but especially the crackling is very annoying. The latter just seems to happen when using gliden64 though, but not on the lr-cores, so it's either better performance or decent sound. Any fixes for sound crackling under gliden64?
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.