Getting the best N64 experience on a Pi 4
-
@quicksilver said in Getting the best N64 experience on a Pi 4:
Overclocking ISP and h264 frequency is unnecessary and confusing to newbies. It won't hurt anything but these are used for the image sensor pipeline (aka camera) and for video decoding. They aren't used at all in emulation.
Good idea. I edited my post and removed the two lines.
Second, many games will be broken with framebuffer emulation turned off. I don't recommend turning it off (it's on by default for a reason). The performance boost isn't worth it if the game doesn't function properly.
From testing about 70 games, the number that require Frame Buffer Emulation seems to be very low. Seems better as an override in this case. Do you know if it affects PAL games more than NTSC? My optimized set is NTSC, and only PAL is used if there is no NTSC equivalent.
Threaded rendering should be left on, I can't think of a case where turning it off would be beneficial (except maybe input latency).
This may again be because I'm primarily using a custom NTSC ROMset. Performance seems to be a factor here. You have me thinking that I should retest the games for those emulators with the option on and see if the FPS Delta is significant.
@quicksilver I know you've done your homework and have helped in several threads. Appreciate your help here.
-
@roslof yes i'm 100% sure fb emulation causes alignment issues on pal games, Cause i logged an issue at the gliden64 repository and this was the answer of the developer:
N64 has Video Interface (VI) subsystem, which maps digital image to TV screen. VI controls, how the image will be placed on screen. For example, your MK64 shots. I'm sure it is PAL version of the game. It has black bars on top and bottom because PAL has more horizontal lines than NTSC. VI adds vertical offset when it maps image to screen. Emulation of VI is part of FB emulation.
In other words if you switch off fb emulation you miss an essential capability to display the video correctly for pal.
Details can be found here
In my experience it works fine on ntsc.
-
@akamming thanks again. Will make the adjustments.
-
@AdamBeGood said in Getting the best N64 experience on a Pi 4:
Yoshi's Story on Rice is just too glitchy for me, I'm using lr-mupen64plus even if that is slightly jumpy at scrolling sometimes. I can't cope with my eggs being black squares.
I changed the recommendation to lr-mupen64plus but added notes about the Rice option. Thank you!
WaveRace 64 - if I use lr-mupen64plus, the bottom of my screen gets cut off, there is a black bar at the bottom. I've been using GLideN64-highres, which isn't full-screen but does seem to run fine.
Changed recommendation to GLideN64-highres. Thanks here too,
on Killer Instinct Gold, as @quicksilver mentioned above - if you use mupen64plus-gliden64 and let the game run for a fight or two, the game then begins to run fine and will be okay for the rest of the session.
Changed to GLideN64 and credited accordingly.
if anyone wants to play Mystical Ninja Starring Goeman, then mupen64plus-gles2rice is the emulator to use, and make sure you use the US ROM, as there is something awry with the European version.
Added this test and credited. Thank you!
Getting lots of good advice for the group.
-
@roslof said in Getting the best N64 experience on a Pi 4:
...Maybe this can help Pi4B owners get rolling more quickly, as it takes a long time to find recommended emulators for ~400 games.
I run perfect dark in 16:9 480x360 in Lr-Mupen64plus-next with very similar overclock settings (see my sig). Several games will run in Lr-Mupen64Plus-next at 320x240 with MSAA set to 2 with very little performance drop.
-
@George-Spiggott said in Getting the best N64 experience on a Pi 4:
@roslof said in Getting the best N64 experience on a Pi 4:
...Maybe this can help Pi4B owners get rolling more quickly, as it takes a long time to find recommended emulators for ~400 games.
I run perfect dark in 16:9 480x360 in Lr-Mupen64plus-next with very similar overclock settings (see my sig). Several games will run in Lr-Mupen64Plus-next at 320x240 with MSAA set to 2 with very little performance drop.
What is MSAA? I'm not familiar with it. I don't suppose it fixes the Spycam parts of Perfect Dark, those are a bit janky on my playthroughs so far.
I guess I'll have a play around.
-
@AdamBeGood (multi sample) Anti aliasing. SotE looks really good with it.
-
@AdamBeGood the camspy should work just fine using mupen64plus-gliden64 with default settings on the pi 4. It won't work at all on previous pi models.
-
@quicksilver Yep, you are right. I am not sure what emulator I was using before then...
That part even seems okay on highres, but there is a bit of slowdown generally (Villa level isn't great). Shame, as it seems quite close to being able to run fine and it looks better than the normal lr-mupen64plus.
-
@quicksilver said in Getting the best N64 experience on a Pi 4:
change screen update setting to 7 and it will get rid of the strange "jitter" issue that gles2rice has on the pi 4
Awesome ! it works .. thanks very much :)
-
@roslof First of all : thank you. This list was much needed.
But, for some reason, even if I have very similar settings (OC : arm:2000, core:550, v3b:800, skipframe=true, framebuffer=false, screen update=7), but I do not get the same results... :(
For example : when playing Excitebike 64 with Rice, not only is the screen window super small, but the game still stutters a lot. For Super Smash Brothers, Gliden make it fast, but the sounds is super crackling (at each sounds peaks)...
Anything anyone could see that I would be missing?
Any help or references will be appreciated. I am new to Retropie with Pi 4 and pretty discouraged with N64 emulation (my favorite console from my childhood)...
-
@Nakynaw would you create a paste.bin of your settings from:
/opt/retropie/configs/n64/mupen64plus.cfg
/opt/retropie/configs/n64/emulators.cfgI'll compare yours with mine and share the delta with you.
-
@roslof being a NOOB, I am surprised that I succeeded in setting up SSH, copying the files and creating a paste.bin, all for the first time. I hope I did it correctly.
Thank you a lot for your kind offer!
Also, as an update : since the editing of the Rice part for the mupen config, excitebike is almost ok, but, of course, now Smash Brothers is much worst and does not just crackle, it is super slow and stuttery.
-
@Nakynaw said in Getting the best N64 experience on a Pi 4:
Also, as an update : since the editing of the Rice part for the mupen config, excitebike is almost ok, but, of course, now Smash Brothers is much worst and does not just crackle, it is super slow and stuttery.
https://pastebin.com/NTRRdJz2
https://pastebin.com/xrwv0Ah7I believe Smash Brothers works best with mupen64plus-GLideN64-highres. Try that instead (just for that ROM).
Our emulators.cfg match perfectly.
Your mupen64plus.cfg file looks janky, with a big gap after column 80. Probably won't hurt anything, since it only seems to cut through the comments, but still -weird. :)
Deltas in mupen64plus.cfg [Video-Rice] section:
FrameBufferWriteBackControl = 1 (mine is 0)
InN64Resolution = False (mine is True)
SkipFrame = True (mine is False)Hope this helps.
-
One thing I’ve noticed on N64 games on Retropie is that games like Goldeneye and Excitebike 64 run extremely well in-game, but have badly stuttering sound in the menus and title screens. Why is that? I would have thought that the actual game bit of Goldeneye was more demanding than the level select menu.
-
@roslof thx!
I will keep testing, and trying your suggestions. But I think I should go back to the default and up to date "mupen64plus.cfg" first. I kept trying stuff since many games became way worst with mupen64plus-gliden64 after some changes I made.
The way to reset it is to erase the file and reinstall the emulator right?
If so, I have to figure out how to erase it, if anyone can spare a minute to guide me, I would be very thankful!
-
@Nakynaw said in Getting the best N64 experience on a Pi 4:
The way to reset it is to erase the file and reinstall the emulator right?
If so, I have to figure out how to erase it, if anyone can spare a minute to guide me, I would be very thankful!Probably best to rename it with the Unix move (mv) command:
mv /opt/retropie/configs/n64/mupen64plus.cfg /opt/retropie/configs/n64/mupen64plus.cfg.bak
but if you really want to nuke the file, do this:
rm /opt/retropie/configs/n64/mupen64plus.cfg
I'm not sure if the file will automatically regenerate, but chances are yes -- you may need to reinstall.
-
@roslof said in Getting the best N64 experience on a Pi 4:
I started up an N64 compatibility list, specifically for Pi4B and all of the various supported RetroPie emulators and added a section for emulator default overrides.
The first pass of the RetroPie Nintendo 64 Pi 4 Compatibility List is complete. Even though this is a highly optimized list (primarily NTSC and no prototypes) this took a solid week. Also, I'm human, so there are bound to be typos or missed optimizations. Feel free to share suggestions and opinions. The Compatibility List now accepts comments.
Not sure if the creators of these excellent emulators are working together or not but the list may be helpful in solving a lot of issues specific to the Pi4. Newer emulators have been created and are apparently more compatible on other devices. Not sure what additional love the Pi devices will get.
The vast majority of games are working with RetroPie, albeit some better than others. All observations are noted in the Obervations & Notes section of the Compatibility List.
Will be looking forward to playing with newer optimizations (Raspberry Pi graphic driver updates, 64-bit support, newer emulators and existing emulator enhancements) but for now, at this date in time, this is a pretty good read on where things truly are.
TRENDS:
Oddly, lr-mupen64plus typically outperformed lr-mupen64plus-Next with optimized settings. Not always, but more often than not. In the list, you'll note I recommend "plus" more often than "next". This isn't a personal bias, rather from observation on what provided a better gameplay experience.
For NTSC, the "lr-Next" build struggles with full-screen display that usually require Framebuffer Emulation set to true, which absolutely tanks emulation speed. The older "lr-plus" emulator handles most of these full screen issues without the need to enable Framebuffer Emulation. Not sure why. But this is a major reason why so many games play better with lr-plus than lr-next.
UI behavior seems to be more of an issue with Pi4 emulation than gameplay. For some games, it feels like the emulator will freeze/crash, but if you muscle through... you can usually reach some excellent gameplay. In several cases UI can get so bad that you can't [easily] get to gameplay easily or even exit the emulator properly.
Most Imagineer/Genki games need to change the CPU Core or weird things happen. Not typical to change this for any other game. For any of the bad-behaving games listed below, I tried different CPU Core options, but none would fix the problem(s).
It was remarkable how many times a game played poorly on 3-4 emulators, then worked AMAZING with exactly one. There is no single "best" emulator here. Without the complete collection of emulators, less games would be playable.
Regarding lr-parallel-n64. Such a disappointment on the Pi4B -- but also my hero... in exactly two (2) cases... It actually plays NFL Quarterback Club 99 where other emulators can't even boot it. There is no better, current emulator to play GoldenEye 007. Would LOVE to know why lr-parallel otherwise crashes for 90-95% of the games. It's experimental, of course, but it could be killer of it would just remain stable.
Lastly, here are the games that I could not get to run well with any emulator:
NOT WORKING/ NOT PLAYABLE/MAJOR ISSUES:
Disney's Donald Duck - Goin' Quackers
(Game seems to play well, until you learn that you cannot collect stars with any existing Pi emulator)Glover
(Will not boot with any existing Pi4B emulator)Hey You, Pikachu!
(Cannot play, since Microphone is necessary peripheral)Knife Edge
(Game throttle is not working, so it really moves fast... Impossible to play/target)
Note: I tried playing with Count Per Op (from 0 to 5) but could not get solid gameplay.Masters '98
(Swing meter rendering issue extremely slow, or starts slow the suddenly moves fast.)NBA Hangtime
Game effectively 'hangs' around 0.5 FPS starting at tip-off.
EDIT here from 2020/09/14. Thank you @NakynawNBA Showtime
(Animations are not throttled, so animations/gameplay speed is terribly fast when performance is good)Quake II
(Visual particle effects slow game to an unplayable speed)Top Gear Hyper-Bike
(Actually playable, but the ground texture is not properly mapped, so can't "see" the course.)Vigilante 8
(Unstable. Will eventually crash/freeze. Broken interface and poor performance)Vigilante 8: 2nd Offense
(Unstable. Will eventually crash/freeze. Broken interface and poor performance)Waialae Country Club
(Same engine as Masters '98. Swing meter rendering issue extremely slow, or starts slow the suddenly moves fast.)All other games are playable with the emulators noted and with the options set.
Hope this is helpful. It helped me complete a pretty solid, clean collection of games.
-
@roslof said in Getting the best N64 experience on a Pi 4:
Oddly, lr-mupen64plus typically outperformed lr-mupen64plus-Next with optimized settings. Not always, but more often than not. In the list, you'll note I recommend "plus" more often than "next". This isn't a personal bias, rather from observation on what provided a better gameplay experience.
plus is an obsolete emulator. basically it's got an ancient version of the GLideN64 video plugin that may have better performance in some games because it's so old and featureless. it will never be updated (to update it would make it lr-mupen64plus-plus-next) - in fact, it's archived/readonly: https://github.com/libretro/mupen64plus-libretro.
For NTSC, the "lr-Next" build struggles with full-screen display that usually require Framebuffer Emulation set to true, which absolutely tanks emulation speed.
i will have some improvement to this soon. however even more excitingly, there's a new optional video plugin coming for -next which is the pre-GLideN64 video plugin, Glide64. again, this won't be as accurate but was fairly mature when it was abandoned many years ago. in fact, up until recently it was more compatible than GLideN64 (and may still be, in some cases).
More often than not, UI continues to be an issue with Pi4 emulation, more often than gameplay. For some games, it feels like the emulator will freeze/crash, but if you muscle through... you can reach some excellent gameplay. In several cases UI can get so bad that you can't get to gameplay easily or even exit the emulator properly.
for -next (GLideN64) there's definitely some optimization issues with certain 2d scenes. something about texturing. unfortunately i don't know where to start with it.
Would LOVE to know why lr-parallel otherwise crashes for 90-95% of the games. It's experimental, of course, but it could be killer of it would just remain stable.
parallel is an experimental fork of mupen64plus for implementing the pixel perfect video plugin 'angrylion' via compute shaders (part of Vulkan). of course, no raspberry pis have vulkan (and even if they did, wouldn't be powerful enough for this), so parallel on pi doesn't actually use any of that and instead reverts back to whatever ancient videoplugins it has as fallbacks, which again is probably an ancient version of GLideN64, and ancient CPU emulation etc. that it has some benefits on certain games is a happy accident, but personally i wish they would disable such pathways as it muddies the water.
i'm hoping that once -next gets Glide64 support we can retire lr-m64plus, lr-parrallel (on pi), and so on. hopefully all these compatibility lists will become redundant (no offence! :) ).
-
@roslof Looks like Dank already addressed most of your questions but I had a couple comments.
Have you tried multiplayer goldeneye using parallel? Last I tried split screen didnt work properly so you may want to check that out.
Goin' Quackers and Rayman 2 both run on the same game engine and suffer from similar glitches. I opened a ticket a while back (https://github.com/mupen64plus/mupen64plus-core/issues/724) and I believe the issue was at least partially fixed but not for ARM devices unfortunately.
Glover will "work" but requires a work around. Unfortunately I cant remember exactly what it is. I believe you have to start the game using a certain mode or setting, get to a certain point and then save state. Relaunch the game using the original settings then load state. I know thats not much to go on but you might be able to find the info needed somewhere on the web.
Also you can improve performance on some games when using gliden64 or next by playing with the following settings: Legacy Blending set to on, Background Mode set to one piece, and turning off copy color to RDRAM. Be aware this will reduce accuracy. Conversely, you can enable these settings to improve accuracy in some games that may be broken without them.
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.