Any recommendations for performance tweaks for Pi Zero (for NES and SNES)?
-
@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.
-
@Dochartaigh It would be ideal if everything just worked right out of the box, but that is the bittersweet thing about retropie. You could download recallbox or something else that supposedly works without tweaking, but being able to make those extra little tweaks can make all of the difference in gameplay. I totally agree with you and I wish it didn't take so much trial and error, but now that I've got my settings right everything is running great and I'm really happy with it.
I'm not trying to be rude (honestly I'm not!) but if you are uncertain what the rgui is and about the different video modes, then that may be your problem. Being able to access and change these settings makes all of the difference with this program. I'm definitely no expert and I'm still learning about what settings makes this program work better, but literally most of the video modes give me stuttering and lag except for the CEA-4 (1280x720 @ 60Hz 16:9, clock:74MHz progressive) especially on SNES. I can run the one above it CEA-5 on NES with turbo overclock and it looks and runs great. All you have to do to get to these settings is hit "a" on your keyboard while Mario or any other game is loading up and it will bring you to a different screen, where you select option number 4, then it gives you a bunch of options (CEA-1,CEA-2, etc...) This will change the video mode for that core, and it will automatically load that way with each game you open, unless you change it again. After doing this, go to option 8 (select render res) and choose output. Then choose X and launch the game.
The RGUI is the retroarch menu you can access while in game, where you can change all the settings per game/or per core. You can access this by pressing F1 on your keyboard while in game or you can select a combo of buttons (I think default is x+select, but you can change it in input settings).
Once you are in RGUI, go to settings then drivers then video driver. I would change it to GL, or at least that's the one that works best for me. Then go to config and make sure that you have it selected to save config upon exiting, that way everything you change will be saved. Then, still under settings, go to video, and under that section is where you can change max swapchain and frame delay. I've read in may difference posts where the lower the max swapchain (I use 1) the lower the input lag. Also, the higher the frame delay=lower lag. But if you get too high with frame delay, you will start seeing performance issues, so I usually go back and forth and see how high I can go. For me, with fceumm, I have max swapchain set to 1 and frame delay set to 2. You have to access rgui in each core and make changes separately because with some cores you can have higher frame delay or other different settings that may not work well for another core. With turbo overclock and these settings, I'm getting a pretty solid 60 fps on nes, SNES, and genesis (even on Yoshi's island, although it does stutter a little at some points)
I'm not trying to talk down or be demeaning if you already know how to do all of this, it's just that you said it's all French to you, so I am assuming you don't know how to access these functions. It really makes all of the difference knowing how to make these changes, especially if you have a pi1 or zero. I've never used a pi3, but I'm guessing everything probably works better without having to tweak as much because it's a faster and more powerful computer.
I'm just trying to help because I've been there and I know how frustrating it can be!
-
No insult/injury taken in the least - just appreciation! I know where the settings are, just have no clue why like 74MHz would be better than the stock 148MHz it's running. Or why some 16:9 ratio ones give me letterboxed 4:3, and some 4:3's give me 16:9 stretched widescreen. Basically just don't like messing with things I don't know 100% what they're about (unless it's a bunch of listed steps which have been used and raved about by like 100's of people and thought of as the 'way to do it'...if that makes sense...and if that was the case then it would most likely already be baked into the system in stock form ;) Admittedly Swapchain, frame delay - this I'm totally clueless about ;) I just want to play games!!
Anyway, I'm back in this topic tonight because I found a random SD card and popped it in. It has RetroPie 4.1.5 on it from ~2 weeks ago? It was definitely built EXACTLY like all the others I've been testing (I have a checklist I go through every time).
What's weird is NES Super Mario Bros and Adventure Island plays perfect. SNES Alien 3, DK Country, Earthworm Jim 2 play like 98% (those are my test games I always run). Now I didn't turn on the framerate counter, but I can tell these are worlds better than the 4.1.11 systems I've been messing with the past few days which are sluggish, skipping, normal then slow then normal then slow type of gameplay all the way around.
Is there a changelog for these small incremental changes? I'm totally convinced something happened from .5 to .11 that is causing problems.
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.