Getting the best N64 experience on a Pi 4
-
@dankcushions Perhaps so! Is there a good method for benchmarking? Id like to get around to doing that in an effort to see what overclocking the pi 4 actually does to improve performance and by how much.
EDIT: so after some additional testing I have found that the vast majority of the n64 library is playable on a raspberry pi 4 with good performance and accuracy now. This is really exciting!
Something interesting I have noticed is that some of the games that still perform poorly, only do so for the first minute or two of the game and then they become full speed or nearly so for the rest of the play session. A couple examples are killer instinct, quake 2, and excite bike. All three games (there may be more) are initially very slow and choppy. During this time you can see that memory usage on the pi is steadily climbing. After the game finishes loading whatever it is into the RAM the game smooths out and works well. I wonder if this is something that could be optimized to work better on the pi?
-
Do different emulators have different smoothing capabilities? I have noticed some games that work with different emulators have very smooth graphics while others are pixelated.
Does the resolution make a difference in performance or appearance for emulation? 1920x1080 vs. 640x320.
Besides basic overclocking, is there anything else to get good performance and graphics?
It is amazing how great dreamcast works but N64 struggles.
-
@billymild said in Getting the best N64 experience on a Pi 4:
Do different emulators have different smoothing capabilities? I have noticed some games that work with different emulators have very smooth graphics while others are pixelated.
by default we try and set up the n64 emulators (and all systems, for the most part) to run at native resolution - so for n64 this is around 320x240. there are options to run at higher resolution - eg mupen64plus-gliden64-highres. additionally you could adjust the options within the emulators, or their config files.
Does the resolution make a difference in performance or appearance for emulation? 1920x1080 vs. 640x320.
yes. typically fairly drastic on a pi system.
Besides basic overclocking, is there anything else to get good performance and graphics?
this thread has lots of info.
It is amazing how great dreamcast works but N64 struggles.
n64 has a proto-3d accelerator that is complex to emulate, especially with good performance on such weak hardware as pi systems. dreamcast is in some ways fairly similar to current technology, so is 'easier' to emulate.
-
@dankcushions thank you for the information.
On the topic of resolution, what is gained by going to higher resolution if the original media is of a lower resolution?
-
@billymild on 2d games a higher resolution doesn't really have a benefit, but on 3d games it increases the detail (less jagged edges).
-
@dankcushions @billymild
Some parts of some games have 640x480 2-D assets, and would have originally been put on the screen at 480i.For example the "Multiplayer" (4 player) option inside the Bust-a-Move '99 game are obviously for 640x480 - you can barely read the text in 320x240.
I found the game can play perfectly smoothly (very few small audio glitches moving through the menus) in lr-mupen64plus-next with the 640x480 core option set as long as I don't have an overlay on the screen. (I also have the "Threaded renderer" core option off in this game).
I don't spend much time with this core or platform, but have learned that it's helpful to create a new core options file for each ROM instead of relying on a single core options configuration.
(Installing the experimental RetroPie on the beta Raspberry Pi 64-bit OS, lr-mupen64plus-next is even smoother, and I can have the overlay switched on too for Bust-A-Move '99 with the same configuration).
-
@busywait said in Getting the best N64 experience on a Pi 4:
@dankcushions @billymild
Some parts of some games have 640x480 2-D assets, and would have originally been put on the screen at 480i.For example the "Multiplayer" (4 player) option inside the Bust-a-Move '99 game are obviously for 640x480 - you can barely read the text in 320x240.
yep, hence i wrote
by default we try and set up the n64 emulators (and all systems, for the most part) to run at native resolution - so for n64 this is around 320x240
to be clear, mupen64plus-gliden64 and lr-mupen64plus-next are set to use native resolution, so they use whatever resolution the game originally was, which is typically around 320x240 but can be more or less. when you set it to '-highres' is simply doubles that native resolution.
(the other n64 emulators are a mixed bag)
I found the game can play perfectly smoothly (very few small audio glitches moving through the menus) in lr-mupen64plus-next with the 640x480 core option set as long as I don't have an overlay on the screen. (I also have the "Threaded renderer" core option off in this game).
-next's pre-set core resolution options can conflict with the native resolution setting if you move them from default (which is actually 640x480 anyway). i forget how they interact now - really the setting should be ignored when using native resolution but i believe it isn't (i always recommend gliden64 standalone for this and other reasons). you can adjust native resolution core option to 2x for a more accurate way of increasing resolution.
-
@dankcushions said in Getting the best N64 experience on a Pi 4:
by default we try and set up the n64 emulators (and all systems, for the most part) to run at native resolution - so for n64 this is around 320x240
to be clear, mupen64plus-gliden64 and lr-mupen64plus-next are set to use native resolution, so they use whatever resolution the game originally was, which is typically around 320x240 but can be more or less. when you set it to '-highres' is simply doubles that native resolution.
Thanks - is there a quick way to ensure the core options for n64 are defaults (I thought they were already), because lr-mupen64plus-next was not showing the 480i detail for me - probably because I misinterpreted advice to set the default resolution to 320x240, which I might have done in the core options.
I don't see a "native resolution" core option - is that in another config file, or compiled in?
-
is there a quick way to ensure the core options for n64 are defaults (I thought they were already), because lr-mupen64plus-next was not showing the 480i detail for me - probably because I misinterpreted advice to set the default resolution to 320x480, which I might have done in the core options.
delete all entries in
/opt/retropie/configs/all/retroarch-core-options.cfg
prefixed withmupen64plus-next-
then immediately reinstall lr-mupen64plus-next (do NOT run it before reinstall otherwise it will implement the emulator's defaults, not retropie's, which are suboptimal).there are plans to automate this process at some point.
I don't see a "native resolution" core option - is that in another config file, or compiled in?
same file:
mupen64plus-next-EnableNativeResFactor = "1"
it will be in the core options menu under a similar name.
-
@dankcushions Thanks, I've just followed this guide and it all seems to be working as expected. Good to see this long awaited feature added.
I was hoping that this would resolve Worms Armageddon's problem but it doesn't seem to. Does anyone know what causes the graphical misalignments in Worms?
-
@george-spiggott said in Getting the best N64 experience on a Pi 4:
I was hoping that this would resolve Worms Armageddon's problem but it doesn't seem to. Does anyone know what causes the graphical misalignments in Worms?
Is this the issue you're referencing? https://github.com/gonetz/GLideN64/pull/1847
Looks like it should have been fixed a while back so either there has been a regression or the pis gpu isn't able to perform the proper function to fix the issue.
-
@george-spiggott Not an answer to the n64 version but have you tried the Dreamcast version of Worms Armageddon or World Party? They're pretty solid versions
-
@quicksilver I don't think so, the issue is that the white lines surrounding any on screen text bubbles e.g. worm names, health and power bars are oddly cropped and misaligned on the right and lower sides. It also affects the US flag on the menu screen where the flag's 'bars' are misaligned.
[edit] I have sort of fixed this by setting 'Background Mode' to 'Stripped'. all the graphics are fixed but now the game is very slow, going down to 24fps in places. So I've found the cause I just need to get the speed back up.
This is what it is supposed to look like.
@retropieuser555 They are but they are WinCE games so they don't currently run on the Pi. The PS1 version is also rock solid and supports widescreen (rare for a PS1 game).
Unrelated to this there are still options for fixed screen resolutions and the default is 640x480. Do they do anything any more?
-
@george-spiggott said in Getting the best N64 experience on a Pi 4:
Are you using gliden64 or mupen-next for worms? I get very good performance using gliden64 except during parts of the game were the screen shakes.They are but they are WinCE games so they don't currently run on the Pi.
On a side note WinCE support is coming to redream sometime next week. So get some games ready to test!
-
@quicksilver Mupen64plus-next with vanilla settings apart from the one I mentioned (background mode). I'll give Gliden64 a try.
[edit] I got the same choppy performance on Gliden64, especially with the sound. I've always had problem with N64 sound on non libretro N64 cores. I'm running the KMS driver and my setting are hardly optimal, in fact my settings are a bit of a mess for these cores. This is why I've stuck with Mupen64plus-next, It is slower but problems are so much easer to work around.
Also looks like I need to move my Tomb Raider and Worms Dreamcast games over to my Pi in preparation. :)
-
@quicksilver said in Getting the best N64 experience on a Pi 4:
On a side note WinCE support is coming to redream sometime next week. So get some games ready to test!
Amazing news! So Sega Rally should work at last. I know this isn't N64 related at all, but that is good to hear.
-
Quick question about the Framebuffer as mentioned here:
https://docs.google.com/spreadsheets/d/1Rq4shU1RUSdcc7cTVWeORMD-mcO6BwXwQ7TGw8f5_zw/view#gid=1983504515Where do I find that setting, in order to disable it (using mostly ntsc roms)?
"Core Options & Overrides
NOTE: Framebuffer Emulation is typically ""True/Enabled"" by default. This ensures correct PAL functionality, but causes a significant performance hit. This list is mostly comprised of NTSC ROMs and assumes a ""False/Disabled"" state for the RetroArch emulators, unless otherwise specified."Many thanks
L -
@luckyluca please search our documentation: https://retropie.org.uk/docs/RetroArch-Core-Options/
-
@dankcushions said in Getting the best N64 experience on a Pi 4:
@luckyluca please search our documentation: https://retropie.org.uk/docs/RetroArch-Core-Options/
Sorry but I can't find it anywhere, what config does it fall under?
retroarch-core-options.cfg
retroarch.cfg
mupen64plus.cfgor anywhere else?
I'm looking for any string resembling framebuffer, buffer
-
@luckyluca the spreadsheet says:
"Core Options & Overrides
NOTE: Framebuffer Emulation is typically ""True/Enabled"" by default. This ensures correct PAL functionality, but causes a significant performance hit. This list is mostly comprised of NTSC ROMs and assumes a ""False/Disabled"" state for the RetroArch emulators, unless otherwise specified."retroarch emulators use core options, which are explained in my link. if you want to change them, you should change them via the RGUI of the retroarch emulator you are running, as per the link. the appropriate option will be called 'framebuffer emulation' or similar. you don't need to edit any files.
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.