lr-snes9x runs faster/better than lr-snes9x2010 (stock Pi 3, copper sinks, latest software versions)
-
After extensive tests on hundreds of titles, I'm assured that lr-snes9x is (as of 11/2017) lighter and more efficient than lr-snes9x2010.
Once I connected my Pi setup on a decent sounding system, I started noticing audio crackling on many SNES games and I originally blamed the latest update of lr-snes9x2010.
Apparently, the snes9x2010 core has always been quite heavy (I even tried lr-snes9x-next versions!) on stock clocked Pi 3s (I have 3 units, I experienced no differences), causing audio crackling on non-enhanced games.
Two days ago, out of curiosity, I tried the lr-snes9x core (aka latest build of snes9x) and the audio crackling completely disappeared, while performance was far, far better on every title
- Strangely enough, enhanced games (Super FX and most SA-1) have the opposite result: lr-snes9x2010 performs better than lr-snes9x (which makes sense but should be the case for all ROMs)
The best way to experience the difference is to enable rewind and a lightweight shader (CRT without curvature) and try (for example) Earthworm Jim (USA) before you reach the Cow Launcher or Hook (USA) when you start swimming on the first stage.
With lr-snes9x2010 the slowdown is really noticeable, the rewind function feels jerky (struggling) and fast forward is doing almost nothing. However, with lr-snes9x all those issues are almost non-existent!
Making things clear, I advised the usage of rewind and shaders in order to focus on comparison
Please note that you shouldn't try this with an overclocked Pi 3, because the crackling and slowdowns are less evident and the comparison is harder.
Now the question is... how come the 2010 version is supposed to be more efficient than the latest build while it performs so much worse?
-
@matchaman said in lr-snes9x runs faster/better than lr-snes9x2010 (stock Pi 3, copper sinks, latest software versions):
Strangely enough, enhanced games (Super FX and most SA-1) have the opposite result: lr-snes9x2010 performs better than lr-snes9x (which makes sense but should be the case for all ROMs)
Well snes9x-2010 has speed hacks to make those games run better on lower end hardware. The regular snes9x is pushing for accuracy and doesn’t have those hacks built in. Otherwise it would 2010 run just as poor as the regular snes9x on a pi. Like Star Fox 2 that was just released, which was not recognized as a super fx game . There was recently an update to snes9x-2010 to recognize Star Fox 2 as a super Fx game and now it runs it fine, but before then it ran poorly.
-
But the result is the opposite on 95% of games (non-chip enhanced). I don't understand why a more accurate version performs with less stress and a smoother experience overall.
The issue here is that the REGULAR lr-snes9x runs much smoother than lr-snes9x2010 on non-special games!
It feels like there's some kind of performance tweak that wasn't done on lr-snes9x2010 but lr-snes9x got it, probably specific to the Pi cores.
-
There very well may be some performance enhancements in the standard snes9x. I have no idea. Just use the emulator that runs best for each game. It’s not like you’re limited to using one emulator in retropie.
-
Of course, lr-snes9x is the default core for SNES for me now, with the exception of enhanced titles. But since all versions of lr-snes9x2010 (dating back to lr-snes9x-next) behave like that, wouldn't it be better for future RetroPie versions to use lr-snes9x as default?
Then again, if there's something to be tweaked, lr-snes9x2010 should be indeed a better choice since the code of 1.52.4 is lighter than 1.54.1 which lr-snes9x is based upon.
(Not sure if I should have posted this on Help and Support)
-
@matchaman I do know snes9x-2010 has had a lot of backporting done. Meaning they take some code from newer versions and patch it into an older version to squash some bugs. So snes9x-2010 is kinda like a hybrid of sorts of many versions, with 1.52 as it’s core but bits of newer versions. It’s possible that it’s becoming a tad bloated and is causing minor performance drops here and there. Most which would never be noticed on a more powerful device.
-
Indeed, I noticed that the majority of snes9x2010 users are on android which nowadays features "monstrous" hardware compared to the Pi :/
All in all, this needs to be solved somehow because it regards the default RetroPie setup. Later today I'll try lr-snes9x2010 (and lr-snes9x) on a stock Pi 2 and a Zero W in order to do the same for comparison sakes.
-
@matchaman I must disagree with you that lr-snes9x is faster/better than lr-snes9x2010. It requires a bit more cpu speed than 2010. You can easily notice this in games that use heavy transparencies. Though, I haven't done extensive testing to find out more games that use heavy transparencies other than megaman-x1's (octopus level). It will slowdown to 55-56fps on my overclocked pi3 at 1.3ghz, 1080p, crt-pi shader, and I get crackling sound.
I do recommend having lr-snes9x as your default if you're overclocking like I am, and if you get slowdowns then set those games to use 2010. If lr-snes9x could handle transparencies as good as 2010 then I'd suggest to the retropie team to consider making it the default..but that's not the case.
-
That's really strange. Did you try with the latest version of lr-snes9x? I will try Mega Man X tonight to do the same comparison.
I also did the test on my Zero W and both cores perform pretty bad but lr-snes9x2010 is evidently worse, confirming my concern even on different hardware.
-
@matchaman I built it from source just now. This has always been the case since I've been using it. The degradation that you've reported on 2010 might be another issue. I did notice audio being broken on at least wild guns with 2005 for at least half a year until it was fixed. I haven't used 2010 in a while, maybe consider posting a bug report. I don't use the rewind/forward feature and I don't think that should be a way of testing performance. Most people won't use that.
You can also try different versions of 2010 by extracting them from older retropie images to verify a performance difference.
-
I haven't used 2010 in a while, maybe consider posting a bug report.
I already did on github but it did not receive any replies, the issue remains open
I don't use the rewind/forward feature and I don't think that should be a way of testing performance. Most people won't use that.
I proposed that in order to make the problems more evident. Rewind and shaders would consume resources that will make the difference stand out because, nevertheless, it's not extremely evident without decent speakers.
You can also try different versions of 2010 by extracting them from older retropie images to verify a performance difference.
Yes, that's what I did and ended back even to lr-snes9x-next before it was renamed to lr-snes9x2010. There's no difference in performance, while I can't test previous versions of lr-snes9x because it's not included.
(I don't know where to find binaries or how to compile older versions of lr-snes9x)Talking about rewind... I just noticed that on lr-snes9x it can go back for a much longer time than lr-snes9x2010. Apart from feeling less smooth, rewind on 2010 lasts for only a few seconds of gameplay.
In addition of fast forward working much faster/better on lr-snes9x, I would consider it evidence that there's something wrong with the core on a (hopefully) higher code level, specifically for RPi.
-
im using snes9x (latest) for all my snes retail games, however i noticed that snes9x (any version) has problems with rom hacks. many hacks works fine but also many hacks needs to be open with lr-armsnes.
also i noticed that starfox 2 is unplayable on any of libretro cores exept lr-snes9x2005 (which runs the game flawlesly).so to answer your question, i think there is no "perfect" emulator on retropie ;) but thankfuly we have many options to choose from, thats why retropie itself is perfect (at least for me ;) )
cheers -
@xflesk for starfox 2. Update snes9x2010 from source. A speed hack has been added recently but retropie setup binary is still an older version. So star fox 2 runs fine now.
And no, snes9x 2005 does not run flawlessly. It runs it too fast.
-
Has any version of lr-snes9x been updated to add support for Tengai Makyou Zero?
-
@livefastcyyoung Build lr-snes9x from source and it will
-
@lostless thank you for info ;) i must try to update from source.
cheers -
@darksavior Thanks! :)
-
Quick question:
I have both roms in the SNES and SFC folder, as I keep any Japanese only releases in the SFC folder.
However, after installing lr-snes9x, I can only select it for roms in the SNES folder, not the SFC folder. How can I make lr-snes9x selectable for roms in the SFC folder?
-
@livefastcyyoung You'll have to edit the
es_systems.cfg
in/etc/emulationstation/
and add the sfc section yourself. Keep in mind, when installing a new emulator or updating retropie, your changes will go away. In order to prevent this, you'll have to put a copy ofes_systems.cfg
in/opt/retropie/configs/all/emulationstation/
and edit that one instead. The drawback in doing that is that you'll have to add new emulators manually toes_systems.cfg
since retropie only touches the one at/etc/emulationstation/
. I usually install every emulator I want first before copying it over and editing. -
@darksavior I already have the SFC section in my es_systems.cfg. So the Super Famicom and Super Nintendo both show up in my game carousel already.
My issue is that the Super Famicom section isn't recognizing lr-snes9x as an emulator it can use.
This is what my es_systems.cfg looks like...
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.