RPi 4 N64 performance (again)
-
@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?
-
@Wolf64 said in RPi 4 N64 performance (again):
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?
Yes this was actually previously fixed but then somehow got reverted when mupen64plus made the jump to the pi 4. Youll need to check two files. The first is located at
/opt/retropie/configs/all/autoconf.cfg
. Make sure thatmupen64plus_audio = "0"
if it already is then proceed to the next step. If its not, then change it to0
and then launch and exit a N64 game using mupen64plus-gliden64 before proceeding to the next step (this will populate the SDL audio section of the next config). Next navigate to/opt/retropie/configs/n64/mupen64plus.cfg
and go to the[Audio-SDL]
section near the top. Look for the lineRESAMPLE =
and change it toRESAMPLE = "trivial"
This will get rid of the audio popping/crackling and great reduce audio latency as well. -
@quicksilver Awesome, thanks a bunch! Now it's a much better experience overall.
-
PAL version of zelda 64 ran at 17fps, so make sure you're at least using the NTSC version.
-
@dankcushions I see, makes sense then for my measurements as I do have the PAL version. But I'll stick to that. If there's a way to uncap the fps it won't matter anymore anyway. Thanks for the info though.
-
@quicksilver , I have read a couple of people are taking audio latency from 64 to 512 to help with crackling noises... Is that of any use according to you? If the resample option is already to trivial, it should be enough, right?
-
@Nakynaw setting the audio resampler to trivial was enough for me. Took care of the audio crackle and excessive audio latency. You just need to make sure that you are using sdl for audio. Check /opt/retropie/configs/all/autoconf.cfg/ and make sure mupen64plus audio is set to "0".
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.