Getting the best N64 experience on a Pi 4
-
@Zering said in Getting the best N64 experience on a Pi 4:
@shavecat Thanks.
The sound still crackles despite a little bit of an improvement, but the change hasn't affected the speed in the least, so I'm putting that down as half a win. ^^
If anybody else has more suggestions I'm all ears!PS. Has anybody managed to run Bangaii-O? It runs worse than any other game on my end.
Admittedly it works great on lr-flycast but I'd like to try the N64 version.Still catching up...
This game is listed on the compatibility list (as Bakuretsu Muteki Bangai-O). It's noted that this game starts off rough with the lr-mupen64plus emulator, but eventually recovers to full-speed. So if you don't mind being a smidge patient, the game will eventually play as expected.
Also, if you note any discrepancies between your reality and the list, please let me know, as I always want to keep it up to date.
-
@roslof It doesn't start off rough on my end, it starts off unplayable ^^ But I might try it, especially since I haven't actually tried to run it off the libretro core.
I'd add a couple of things to the list : Conker runs completely fine on a stock Rpi 4 with regular Glide, although rice is a mess.
On the other hand, I've had very little luck with Mischief Makers, but your list says it's fine on Glide-Hires. It was terrible on standard Glide, is it actually possible that the Hires plug-in works better for certain games? If anybody could explain that, that'd be grand.Edit : Ogre Battle crashes every single time on Glide after you're done answering the guy's questions at the academy. The camera pans out and fades, and then it crashes.
Edit 2 : It's beautiful how much of this list is green now, the RPi3 compatibility chart was like a graveyard ^^
Edit 3 : Doom 64's intro runs full speed in Glide.
-
@Zering it probably comes down to what we're using as default options.
The list assumes a primarily NTSC set, so Framebuffer Emulation isn't necessary as often. Framebuffer Emulation severely impacts performance on lr-mupen64next, and, as I understand, this is a temporary problem that will likely get remedied in a future update.So for me, I keep Framebuffer Emulation Off for many of these NTSC games, and if needed, I sometimes need to use the stand-alone mupen64plus builds.
-
@roslof My roms are primarily NTSC, however I'm using a PAL screen, would that affect performance?
-
@Zering said in Getting the best N64 experience on a Pi 4:
Edit : Ogre Battle crashes every single time on Glide after you're done answering the guy's questions at the academy. The camera pans out and fades, and then it crashes.
Definitely not a problem with my settings. I'll share them shortly.
Edit 2 : It's beautiful how much of this list is green now, the RPi3 compatibility chart was like a graveyard ^^
Right? Not too bad, but most UI still seems to struggle and there are graphic anomalies here and there... Overall, better over the last year as the software continues to improve.
Edit 3 : Doom 64's intro runs full speed in Glide.
Yes, but it was correctly called out that gameplay is too dark for Glide. No way to increase gamma at a per-game level with GLide. Comes down to preference, but I do enjoy using libretro for this one with a shader that allows gamma/brightness/contract control. -
@roslof said in Getting the best N64 experience on a Pi 4:
Definitely not a problem with my settings. I'll share them shortly.
It's not with mine either, I just thought I'd point that out. Ogre Battle was notoriously faulty on the Pi 3 as I recall.
@roslof said in Getting the best N64 experience on a Pi 4:
Right? Not too bad, but most UI still seems to struggle and there are graphic anomalies here and there... Overall, better over the last year as the software continues to improve.'
It's leaps and bounds ahead of the Pi 3. When I bought a Pi 4 I expected a jump in performance but I certainly did not expect to play games that did not even play past the logos (Conker, Banjo-Tooie) at full speed on a stock rig. Not to mention 2D Saturn games at full speed, etc...
It's incredible work.
-
@Zering said in Getting the best N64 experience on a Pi 4:
@roslof My roms are primarily NTSC, however I'm using a PAL screen, would that affect performance?
I never used a PAL monitor before, but you have me wondering about how an NTSC game may run on a PAL monitor. If it's a CRT, I would suspect animations would look off. If it's modern, could I handle 30/60 FPS displays? If not, wondering if V-Sync would be a problem.
-
@Zering said in Getting the best N64 experience on a Pi 4:
Roslof:
Definitely not a problem with my settings. I'll share them shortly.Zering:
It's not with mine either, I just thought I'd point that out. Ogre Battle was notoriously faulty on the Pi 3 as I recall.Oh, sorry, I meant that the Ogre Battle doesn't crash with my default settings. I can make it past the questions without the crash you described. I'm working to export my settings to the compatibility chart. Will just be a bit.
-
@roslof said in Getting the best N64 experience on a Pi 4:
Oh, sorry, I meant that the Ogre Battle doesn't crash with my default settings. I can make it past the questions without the crash you described. I'm working to export my settings to the compatibility chart. Will just be a bit.
Then I'd be very interested in your settings. My overclock is close to yours according to your chart, but I don't think that factors into whether or not the game crashes.
I can play it on lr-mupen64 with no problem, however as I play with a Dragonrise N64 pad my controls are tailored for the stand-alone version of the emulator, and they get a bit screwy on libretro, so Glide would be ideal.Edit : How do I modify the setting for Framebuffer emulation in Glide?
-
I exposed all of my default test settings for N64 emulators. Same Google Sheet as the compatibility list, but separate tab/sheet.
These worked well for me for a primarily NTSC ROMset. Your settings may vary. It doesn't mean one is right and one is wrong... It means that this was the baseline for my testing, and overrides listed in the compatibility sheet override (or enforce changes) based on the exposed list.
Hope this helps folks.
Cheers,
Ros -
@roslof Thanks to you here is what I have managed tonight , and all I have done is disable Framebuffer emulation :
-Full speed (without having to wait) on Bangaii-O with lr-mupen64plus
-Full speed on F-Zero X with lr-mupen64plus (it was very slow on Glide)
-Speed on Goldeneye in lr-mupen64plus without FBE is almost comparable to Glide. The menus and intros run significantly better in the lr core. Performance seems highest on parallel, which is very surprising (thanks for the tip).
-Jet Force Gemini : Speed outside of gameplay is on par with Glide. I have not tested the intro but the menu etc run full speed for me. More surprisingly, the game runs VERY FAST in lr-mupen64plus (it ran slow in Glide), unfortunately the video has a strobe effect of sorts, it blinks to black every couple of frames. If you have any ideas on how to sort that, then JFG could well be playable on my end. It runs fine on next and does not have the glitch, however I have spotted some minor slowdown in and out of gameplay. (But I'm just glad I can finally replay this freaking game!)
-Mischief Makers runs a lot better in the libretro core on my end. It slows down during the invasion although nowhere near as much as in Glide. There's a bit of scratchiness to the sound but nothing major. Gameplay is still slow however, and I would not call the game playable. I may tinker with it more.Some weird quirks I have noticed :
-On lr-mupen64plus, I cannot run and shoot in Goldeneye with my Dragonrise N64 pad. If I press Z, I cannot move. That never happens on Glide.
-I have tried disabling FBE in mupen64plus under the Video section for Glide in mupen64plus.cfg and obtained adverse effects. Bangaii-O was a slideshow.
-I can't get any video in Resident Evil under both libretro cores, even with your instructions. I'm wondering if my rom is different?
-Full speed gameplay for Super Smash Bros under Glide, but the sound is two times too slow. I've had much better results with lr-mupen64plusAnyway, that's it for now. Thanks a bunch for your input! Is the fact that FBE is a massive gamechanger anywhere in the RetroPie documentation?
-
@Zering said in Getting the best N64 experience on a Pi 4:
Edit : How do I modify the setting for Framebuffer emulation in Glide?
You might not have to, but if you do, it's something like this:
- Navigate to /opt/retropie/configs/n64/
- Make a backup of the file GLideN64.custom.ini
- Edit GLideN64.custom.ini
- Search for your ROM
If you think you've found your ROM, you can add parameters. You can reference other ROMs found in the .ini file for the correct syntax.
If you don't find your ROM, you'll need to make a new entry.
It's a little tricky... but if I understand it correctly, for each entry, you'll see brackets with text inside, and a "Good Name". I believe the brackets contain ALL-CAPS reference to the in-ROM identifier found at 0020h... Although I admit, this is not 100% clear me, since I've seen Japanese entries that don't match (ex. Extreme-G 2).
...but I know I'm mostly correct, since I was able to fix Army Men: Air Combat.
To do that I followed these steps:
- With a hex editor (found in many text editors these days), open the uncompressed ROM
- Look at the string at 0020h:
With that, I was able to create this entry:
[ARMYMENAIRCOMBAT]
GoodName=Army Men - Air Combat (U)
graphics2D\EnableNativeResTexrects=1...and that entry works fine, fixing the 3DO logo and title screen, since the default for EnableNativeResTexrects is typically 0. The bracketed information matches what's in my NTSC ROM. Any change to the bracketed text results in a mismatch and the change won't take effect.
From what I can tell, the bracketed text must be in ALL-CAPS, regardless of what's inside the ROM. Spaces should be substituted with %20... You should never end a string with a space (ignore any trailing 20s found) and probably a bunch of other rules I don't know about.
But the fact is, you CAN make per-game changes with GLideN64. I can't speak to the other plug-ins.
-
@Zering said in Getting the best N64 experience on a Pi 4:
Is the fact that FBE is a massive gamechanger anywhere in the RetroPie documentation?
No, but we should be careful, it's required in order for many PAL games to work properly, so I don't think it's good advice to have people turn it off, unless they know what they are doing.
I set mine off by default, and turn it on only for games that require it to fix rendering issues. Otherwise, I use the stand-alone emulators, whose performance isn't completely degraded.
@dankcushions has communicated this concern and maybe at some point issues with slowdown w/Frame Buffer emulation will be resolved, but at least for today, you can opt for NTSC ROMs and decide whether it's on-or-off per-ROM.
-
That makes sense. I think, at this point, the N64 catalogue runs well enough on lr-mupen64plus and Glide that I can depend on both of those to match different needs and different games, so I don't think I'll be modifying roms individually, I'll wait for a fix instead instead. In the meantime, just knowing about the effect of FBE has had a huge influence on my Pi's capability to emulate the N64, and the results are excellent. Goldeneye is almost as I remember it, and now that I can play all the games Rare released on the system I'm a happy man! ^^
Thanks for all your help and suggestions!
-
i didn't even previously know about the PAL thing. FBE is such a fundamental part of n64 emulation that i can't entertain turning it off, under any circumstances. so many games have issues without it - maybe not obvious, but at some point it's likely things won't work right.
it's like using lr-mupen64plus, or gles2rice/gles2n64, etc. those are abandoned, broken and inaccurate cores/plugins, so even if they give good performance for some games, on some hardware... eh, i just forget about those. i would sooner just stick to gliden64 standalone and work within its capabilities, or help optimize it.
each to their own :) but the documentation should generally be aimed at most-compatibility, especially when n64 emulation is under such heavy development. what is slow today may be fast tomorrow, but no-one is going to touch those other emulators again.
-
@dankcushions Hey you do you, you guys are doing awesome work ^^
For what it's worth in my experience Gliden64 is far more reliable, so I'd be happy to stick to that if it came to it. -
@Zering said in Getting the best N64 experience on a Pi 4:
-Jet Force Gemini : Speed outside of gameplay is on par with Glide. I have not tested the intro but the menu etc run full speed for me. More surprisingly, the game runs VERY FAST in lr-mupen64plus (it ran slow in Glide), unfortunately the video has a strobe effect of sorts, it blinks to black every couple of frames. If you have any ideas on how to sort that, then JFG could well be playable on my end. It runs fine on next and does not have the glitch, however I have spotted some minor slowdown in and out of gameplay. (But I'm just glad I can finally replay this freaking game!)
Stoked for you, @Zering Seriously, it does feel good when this stuff works well.
Ironically, the flicker you mentioned is fixed when Framebuffer Emulation is True. :) But then you get the performance hit.
Not sure why the stand-alone GLideN64 is slow for you. Feels pretty good for me (even with hires). Not perfect, but certainly playable. No issues keeping Framebuffer Emulation on there, either.
-
Ironically, the flicker you mentioned is fixed when Framebuffer Emulation is True. :) But then you get the performance hit.
Not only did restoring FBE not alter the flicker in the least, it also did not affect performance at all on my end. Curious.
Have you got any ideas what could cause this little controls conundrum I'm having with the lr cores?
Edit : Your overclock is a touch higher than mine, perhaps that's why performance in Gliden is better for you?
-
@Zering I'm right with you. lr-mupen64plus handles Framebuffer Emulation better than lr-mupen64plus-next currently. This is what I believe will eventually be enhanced.
Edit : Your overclock is a touch higher than mine, perhaps that's why performance in Gliden is better for you?
I don't believe so. Is there a particular part of the game that runs slowly for you? I don't play each game for too long during the test (too many games). After the intro, I make it past the colorful gremlin-looking guy near the lagoon, enter the tunnel and can run around the world without much of an issue.
Also, you must restart either of the lr- cores in order for Framebuffer changes to take effect. I saw the flicker you mentioned. Enabled FB Emu, restarted and the flicker went away. Performance slightly degraded.
-
The whole game is significantly slower on Gliden than on lr-mupen64plus, as soon as I get off the shuttle the framerate dips, not in an abrupt sort of way. It's still smooth, but in contrast to the cinematics you can tell about half the frames have been lost along the way. In lr-mupen64plus it's silky smooth ; except for the flickering.
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.