Any recommendations for performance tweaks for Pi Zero (for NES and SNES)?
-
@Dochartaigh That should be fine. Have you tried quicknes and snes9x2002 with highest overclock setting enabled? It's possible it could also be the newest version of retropie causing the problem because before I downgraded to 4.0.2, I had a lot of issues, even with turbo overclock. But I have read in other forums where overclocking too much caused problems. For me, it has only sped things up and helped.
-
@Dochartaigh said in Any recommendations for performance tweaks for Pi Zero (for NES and SNES)?:
That's why I mentioned lowering the resolution! I will definitely try this - most likely for SNES only as that's still a little slow at times. I don't know what they're default settings is but I'm guessing it's greater than the 640x480 you told me to try.
on the pi zero/1 the default render resolution is set to 640x480 for all emulators (can be changed with the configuration editor).
Note if you have been updating from very old retropie images this may not be the case, since retroarch.cfg is generally never changed on updates (you are expected to merge in any new settings you need yourself from the
retroarch.cfg.rp-dist
file). -
@BuZz
good to know - one less setting I have to mess with! (this was made of the most recent image, then updated as soon as that was put on the SD card).He BuZz, do yo know why the default emulator for NES on the Zero is lr-fceumm (which has slow performance) over one like Quicknes? (I'm assuming Quicknes is more buggy in other areas besides performance)
-
@Dochartaigh quicknes was added later. lr-fceumm has been the default for a long time. People make a fuss when defaults are changed - it would need a good argument to change it (compatibility needs to be as good).
lr-fceumm was full speed on my pi1 last time i tried with a medium overclock.
-
@BuZz said in Any recommendations for performance tweaks for Pi Zero (for NES and SNES)?:
@Dochartaigh quicknes was added later. lr-fceumm has been the default for a long time. People make a fuss when defaults are changed - it would need a good argument to change it (compatibility needs to be as good).
lr-fceumm was full speed on my pi1 last time i tried with a medium overclock.Now a third person telling me to overclock! lol.
Should I start another topic asking why overclocking would slow down my Pi Zero?
-
@BuZz said in Any recommendations for performance tweaks for Pi Zero (for NES and SNES)?:
on the pi zero/1 the default render resolution is set to 640x480 for all emulators (can be changed with the configuration editor).
When I hold down a button immediately after launching a game (in this example, NES, on lr-fceumm) it says:
Video Mode: 1920x1080 @ 60Hz 16:9, clock 148MHz progressive
Is this the setting we're talking about? It's definitely not 640x480 (and I've never touched any of these settings before). I'm totally guessing here, but was that changed lately? Could that be why NES runs so slow when it seems to run at 100% for other people?
Should I go to "Select default video mode for lr-fceumm"? And change it to "CEA-1 640x480 @ 60Hz 4:3, clock 25mhz progressive", "DMT-4 640x480 @ 60Hz, clock 25mhz progressive", (then there's DMT-5 at 72Hz, or DMT-6 at 74Hz)? OR, are we talking about the "Select RetroArch render res for lr-fceumm"? setting?
...I would tell you what the runcommand menu told me for SNES and Sega Genesis....but I don't seem to be able to enter that menu anymore even after two reboots....yet another weird issue popping up for no darn reason!!! EDIT disabling it, then re-enabling runcommand fixed that issue...so friggin weird...EDIT 2 Enter the runcommand again, and I can't get back to it AGAIN!!! WTF??EDIT 3 ONLY way to get runcommand working is to disable it, reboot, re-enable it, then it'll work again.....for like 2 times...then is bricked again.....keyboard presses seem to be able to enter it like 7 times in a row....this can't be normal...
-
@Dochartaigh
Your video mode is just the Output, not the render resolution. You can have a native 1080p output, but selecting a lower render res will literally render the game in a low resolution and stretch/scale it to top and bottom. It's worth a try to lower the video mode and see if you get a performance boost, but I'm betting against it as the biggest impact is on how big the game is rendered.Apparently I was unaware the smaller Pi's are defaulted to 640x480, as with my Pi3, everything is rendered to the Output, so my video mode is 1080p, and the game is also rendered to 1080p.(I've since then changed this though, i seem to get input lag at such a high render resolution).
-
@Dochartaigh I'll tell you what I think. I think 4.1 for pi1/zero is buggy as hell. Did you try 4.0.2? Also, changing my video mode to CEA-4 (1280x720) and resolution to "output" worked the best for me as far as looking as it should and minimal lag, but I know maybe other settings may work better for you depending on your Tv. I saw another post on a different site that recommended these settings and it really made a big difference for me. @BuZz or any other administrators, is there any way you could check the newest version out (4.1) and see if there were any changes made from the previous version that could be causing these issues? I know it may be a pain, but it could potentially save a lot of needless posts from people with pi1s and zeros. I almost gave up on retropie altogether until I thought of downloading a previous version (4.0.2) and when I downloaded that version, everything started working perfectly. I've made multiple posts asking about this, but no one has looked into it yet. I'm not trying to be annoying or redundant, and maybe it's just an issue with my pi, but I don't see how everything could be running perfectly for me on 4.0.2 but buggy/laggy as hell on 4.1. And I would eventually like to have the latest version of retropie without it screwing everything up.
Also, I think it may have something to do with the video drivers. When I was on 4.1, VG was the only driver that would give me good performance and it would work great after I would switch to it in-game through rgui. But after closing the game, I would no longer be able to load games at all (it would crash) unless I switched back to one of the other video drivers. On 4.0.2, I can use any of the video drivers with good performance.
-
@Dochartaigh that is the video resolution - the render resolution is the resolution retroarch renders at, and using the default retroarch driver, dispmanx is used to upscale (at no performance loss). You can check the current render res in the configuration editor.
-
@actnash >I think 4.1 for pi1/zero is buggy as hell.
If you want my help, why would you make comments like this - bearing in mind the time I put into the project. No need to be so dramatic.
-
@BuZz Wasn't trying to be rude or dramatic, I am sorry it came off as that way. I really appreciate the hard work you guys put into this, and it's running really awesome for me on 4.0.2. This is all new to me and I'm sorry for being offensive, it wasn't my intention.
-
@BuZz Also didn't realize that the main retropie dude (you) would be helping out on the forum. I was thinking I was asking other people/contributors familiar with the program and didn't think what I said would offend. It's my own ignorance. I'm very thankful for all the hard work you've put into this. I'm actually cool with the previous version because everything is running perfectly for me on 4.0.2. So I totally understand if you don't have the time to look into it. Sorry for being a dick.
-
@actnash ok thanks for clarifying - no worries. I will check on my rpi1 with the current lr-fceumm when I get a chance.
-
@Dochartaigh that is the video resolution - the render resolution is the resolution retroarch renders at, and using the default retroarch driver, dispmanx is used to upscale (at no performance loss). You can check the current render res in the configuration editor.
I never use the built-in config editor actually (like to save the files themselves to my Mac's HD so I can copy them over quickly to another future build). Can you please tell me the path to a single emulator's config file? Is it /opt/retropie/configs/emulator_name or something like that? Or are the settings for ALL (of the NES's 3x emulators in this example) kept in 1 single consolidated file?
I'm asking because last night I made so many changes to lr-fceumm's settings, I wanted to reset everything and start fresh and couldn't figure out how to reset those runcommand settings back to the default settings (uninstalling and reinstalling lr-fceumm from binary didn't reset it). So I deleted the config.txt? file in the above directory thinking that would be rebuilt when I rebooted...but I was wrong. That actually removed the option to launch a NES games with another emulator/core, and I then had to reinstall from brinary the other cores to get those to show up in the runcommand settings....so I would love to know how to reset these properties, and which exact file I should be looking at to see these settings.
-
@BuZz said in Any recommendations for performance tweaks for Pi Zero (for NES and SNES)?:
@actnash >I think 4.1 for pi1/zero is buggy as hell.
If you want my help, why would you make comments like this - bearing in mind the time I put into the project. No need to be so dramatic.
BuZz, you know I love you, right? (like bro love ;) And that I post so much on this forum because I too like helping other people (with my super-duper-small amount of knowledge I've accumulated over the last half year or so).
But I'm sorry to say, on RetroPie, ESPECIALLY for the Pi Zero, something is really messed up. Besides making like 20 RetroPie's for family over the holidays (which I had one magical image I had working great, then cloned it 19 times, with varying, but overall positive success), I just started working on my own Pi Zero in the last week or two which means I started to get more in-depth into the setup and settings. My Pi 3 has been pretty great for a LONG while now (which had it's own not-quite-so-large batch of issues). But the Pi Zero...not at all.
So far (and I have NO clue if it's the 4.1+ or what), but so far on a Pi Zero, if I unplug a USB the system crashes. I can't enter runcommand by pressing a button. NES emulation is running at maybe 40 FPS (instead of 60) with the default lr-fceumm. I have a persistive crash to terminal (this one is Pi 3 too) where the keyboard doesn't work and nothing seems to fix it. I can't use two SNES controllers at the same time if they're made by different manufacturers. Overclocking with the EXACT SAME SETTINGS like 1,000 other people use SLOWS down my Zero.... CRT-Pi shader doesn't work on the Pi Zero (bad banding looks horrible). Just tonight I've had TWO bricked installations with some of the latter mentioned problems. Right now my USB card stopped copying half way through (which has NEVER happened before) and then an hour later I got a "boost::filesystem::filesystem_error" error like 6 times in a row on a FRESH 2-hour old install. The other Zero stopped the USB hub working for some mystery reason (same exact hub works fine on two other Zero's). I haven't even posted about this one but I'm now getting some "alsa lib pcm underrun occurred" error on TWO different installs (doesn't seem to be doing anything bad, but still weird, right?). AND, this is ONLY the stuff I can remember off the top of my head (and my memory sucks!)
Dude, I'm so sorry, but this is all literally in like a 2 week time frame. I'm using multiple different Pi Zero's from TWO different vendors (some months old, but never used, i.e. totally different batches). A variety of power supplies and USB cables. SD cards of notable brands from trusted vendors, ordered from different stores at different times. Both Mac and PC's (mostly Mac's though) to image the SD cards - hell, different ISP's to download the image from your site even). Different card readers....like I've absolutely, positively, hit every conceivable base on the hardware side to eliminate potentials issued there - it's definitely limited it to the software itself - there's no way this is a hardware problem on my end. And honestly, I'm no dummy and can follow simple directions to get these things setup – yet all these weird problems still occur. Both one-off mysteries, and the same issues over multiple different Pi's, all built from scratch (heck, even IDENTICAL images put on identical brand/size cards can act differently for no apparent reason). Just look at the number of unsolved issues I've posted about here – like mystery problems where NOBODY knows what the heck is up... Again, so sorry, but I just had to get this off my chest. It's been a nightmare (albeit a good learning-experience nightmare) - yet I still truck on. Yes, to help myself of course, but also to help others which may have similar problems to my own. This total rant should be PM'd or emailed to you, but that's not an option so I felt the need to post here, and I sincerely hope you don't mind. Respectfully yours -J
EDIT Hate to do this, but I'm not even kidding - literally after hitting "Submit" to this post, not even 4 seconds later, I walk the 4 steps over to my 2nd workstation, hit right arrow to wake one of the dimmed Pi's I've been working on tonight, and it immediately crashes to terminal with another mystery error...like I can't even make this stuff up:
-
Are you using a wifi adapter? I just built pi zero and with a Tenda W311MI wifi adapter. Everything default. when i tried playing Mario 1 it chugged badly, even the audio would jump. After some troubleshooting I figured out everything runs perfect when I pulled out the wifi adapter. I wanted to have my wifi adapter inside my enclosure but I may just go without it.
-
I have three different USB WiFi adapters and a single ethernet micro-USB hub. Same kind of stuff happens on all of them. Currently have the ethernet on as I'm doing big pulls of data for updates (and my 2.4ghz Wifi has been slow lately).
-
@Dochartaigh So today I downloaded 4.1 to play around with it a little more. I was able to get FCEUMM and SNES9X2002 running full speed (well SNES-most of the games I tested). I'm not sure why it didn't run for me like this a few weeks ago! There are just so many settings to mess around with so maybe I was doing too much. I found that the resolution settings made the biggest difference for me, in terms of lag. I also found that when using FCEUMM, you don't really need to mess with the rgui settings much, it's already pretty perfect (once you set your resolution correctly). I'm used to using retroarch on my Mac and I add frame delay and mess with the max swapchain, so I think when I tried this last week, I automatically added the frame delay and other settings that I used on my Mac. I prob wouldn't go over 2 with frame delay for NES. Another thing that I noticed that made a big difference with SNES is to use the gl video driver. I couldn't get smooth video without it, plus you can use shaders that make it look even better. I know you are against the overclock (ha) but I had to overclock to get everything working right. So basically, I think I may have f'd my self up by applying too many settings when I first downloaded this.
-
@Dochartaigh Also, anything below or above CEA-4 video mode gave me lag or didn't look right. I had to change resolution to output too. I'm not really sure how all of this works or if it would be different for your TV but the resolution/output settings was the most important thing for me to get things looking and playing right (along with changing video drivers to GL).
-
@actnash said in Any recommendations for performance tweaks for Pi Zero (for NES and SNES)?:
@Dochartaigh Also, anything below or above CEA-4 video mode gave me lag and didn't look right. I had to change resolution to output too. I'm not really sure how all of this works or if it would be different for your TV but the resolution/output settings was the most important thing for me to get things looking and playing right (along with changing video drivers to GL).
I'm sorry man, but you're speaking french to me on all these settings: rgui, delay, swapchain, frame delay, gl video driver, CEA-4, resolution to output.... If there was a definitive guide for exactly what tweaks everyone would use that would be great, but when casual users (which I don't think I exactly fall into, which is why I'm trying to tweak settings ;) see a Pi 1/0 specific image on the RetroPie website, they would assume all this tweaking (by the programmers/devs who know best) would already be done and working. Shouldn't have to tweak everything to get one of the earliest systems to run right on a software specifically written for retro gaming...(which to me specifically means NES, SNES, and Genesis).
Right now, after rebuilding the core packages (think I might have done an apt-get update/upgrade/dist too), I was able to get the overclocking to work without slowing down anything very late last night. SNES runs at maybe 55-60 FPS which I believe 60 is the key number. lr-fceumm (overclocked) runs at maybe 95% but lr-fastnes is definitely faster with a SOLID 60 FPS nearly constantly.
The problem is all these other mystery problems crept up last night (and the night before) -outlined above- which is stopping me from getting anything done and finalizing this setup. I think I might also go back to my 4.0.8? image (think I still have that saved) and see if that helps (similar to your previous solution after failing to get 4.1.x to work properly). Maybe it's the suggested overclock that's causing these issues, but I only got that to work late last night (and like 90% of these other issues was before I was even overclocked). It's so discouraging when nothing works right for you time after time after time.
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.