RetroPie-Setup icon indicating copy to clipboard operation
RetroPie-Setup copied to clipboard

Review default emulators for Pi4

Open dankcushions opened this issue 5 years ago • 18 comments

SNES ~Current: lr-snes9x-2010 Proposed: lr-snes9x Libretro fork of snes9x upstream. Most accurate/compatible, and runs fullspeed on pi4 (but not on a pi3). Would suggest making the default for pi4.~ DONE! https://github.com/RetroPie/RetroPie-Setup/commit/31fe47492f7061924529e15c03583bf8d954817a

Megadrive/Genesis ~Current: lr-picodrive Proposed: lr-genesis-plus-gx Libretro fork of genesis-plus-gx upstream. Better audio, at least. Was previously agreed to be default for pi2 and up: https://github.com/RetroPie/RetroPie-Setup/issues/688 - might have been lost in a refactor. Would suggest making the default for pi2 and up.~ DONE! https://github.com/RetroPie/RetroPie-Setup/commit/c2c64b761f5264962c5d7b477e58b73a81d31f42

Mastersystem Gamegear ~As per the issue above, but I've not tested this yet. Would suggest making the default for pi2 and up.~ DONE! https://github.com/RetroPie/RetroPie-Setup/commit/c2c64b761f5264962c5d7b477e58b73a81d31f42

N64 Currently lr-mupen64plus-next is in the experimental packages. At this point I think it's mature enough to be in main packages for pi4, with the abandoned lr-mupen64plus retiring to optional. lr-mupen64plus should probably stay in main for Pi3 and previous, but it does seem to work better for Pi3 + mesa. Would suggest mupen64plus standalone remains default, but lr-mupen64plus-next promoted to 'main' for pi4 and pi3 mesa, with lr-mupen64plus retiring to 'opt'

Dreamcast WIP: lr-flycast seems better for Pi4.

Saturn WIP: Investigate lr-yabasanshiro (and/or standalone) install script as a likely good default.

PlayStation WIP: Investigate the lightrec dynarec for Beetle-PSX. Perhaps a candidate for 'experimental' ~until it gets merged into master.~ Merged into master! https://github.com/libretro/beetle-psx-libretro/pull/590 However, showstopper bugs ATM: https://github.com/libretro/beetle-psx-libretro/issues/588#issuecomment-581641655

Neo-Geo CD ~WIP: Investigate lr-neocd full speed on pi3b+.~ Added! https://github.com/RetroPie/RetroPie-Setup/pull/2976 Is it could enough to be promoted from experimental to optional?

PC Engine WIP: Investigate lr-beetle-pce Full speed on pi4.

NES WIP: Investigate lr-mesen ~full speed on a pi4~ Maybe not: https://github.com/RetroPie/RetroPie-Setup/issues/2961#issuecomment-582350436~ Added!! https://github.com/RetroPie/RetroPie-Setup/commit/4333dec6bb7088d7f20319849e107f9cb9f07e36 however, slowdown issues with CV3 need to be investigated. if it's full speed, IMO it should be promoted to 'optional' for pi4, experimental for pi3 and other slower ARMs

GameBoy WIP: Investigate https://sameboy.github.io/

Runs fine on Pi3/Pi4, has link cable emulation (2 screens side by side), supports RetroAchievements and features Super Game Boy (2) emulation. Upstream is very active and has very good Libretro integration.

PSP ~PPSSPP probably should be a 'main' package for rpi4. Need to test...~ NOPE! 40MB binary, probably correct to have it in 'main'

dankcushions avatar Jan 21 '20 15:01 dankcushions

I've suggested adding lr-neo-cd in the past, and now that it's an official libretro core, I wonder if I can ask again. It's the only neogeo cd emulator that supports chd. A developer for fb-neo showed no interest in adding chd support. I've only tested on a pi3b+ and it runs full speed on that.

I would also like to suggest adding lr-beetle-pce since it's the accurate version of lr-beetle-pce-fast. The accurate version makes Exile playable. The fast version makes the ants in the first dungeon invincible. Maybe other games are affected as well. It runs full speed on a pi4 at stock speeds.

Finally, lr-mesen. It's a high-accuracy nes emulator. Runs full speed on a pi4 at stock speeds.

I tested all of these by using binaries from the armv7-neon-hf section of libretro's nightlies page.

@dankcushions I compiled the beetle-psx dynarec branch by making the retropie beetle-psx script point to it. I'm not dev so not sure what's the issue. Runs and looks like crap. Probably due to this error message when a game loads: "Unable to find or open hardware renderer for frontend preferred hardware context. Falling back to software renderer."

darksaviorx avatar Jan 21 '20 23:01 darksaviorx

@darksaviorx thanks - updated the list!

I compiled the beetle-psx dynarec branch by making the retropie beetle-psx script point to it. I'm not dev so not sure what's the issue. Runs and looks like crap. Probably due to this error message when a game loads: "Unable to find or open hardware renderer for frontend preferred hardware context. Falling back to software renderer."

not sure - possibly a build option. looking at https://github.com/libretro/beetle-psx-libretro/blob/14b59e9875147307fa74d5ad4b0952fcf38cc18d/libretro-common/include/libretro.h#L2177 maybe we need mesa GLES3.1 support to be live (it was only just finished) until libretro returns a viable GLES3 context but I've not looked into it!

dankcushions avatar Jan 22 '20 10:01 dankcushions

You should be able to compile it without HAVE_OPENGL=1 being defined. If HAVE_OPENGL and HAVE_VULKAN are both not defined, then only the software renderer should remain.

And yes, the OpenGL renderer right now in Beetle PSX requires a high-ish subset of desktop GL, no GLES2/3 support. It'd be nice if somebody eventually comes up with codepaths for those however.

inactive123 avatar Jan 22 '20 14:01 inactive123

And yes, the OpenGL renderer right now in Beetle PSX requires a high-ish subset of desktop GL, no GLES2/3 support. It'd be nice if somebody eventually comes up with codepaths for those however.

ahh nuts. oh well, if the dynarec gets the software renderer to fullspeed it should still be an improvement on lr-pcsx_rearmed (which is software and has various compatibility issues).

dankcushions avatar Jan 22 '20 14:01 dankcushions

Not exactly an emulator but I think skyscraper could come out of experimental packages. I've been using it for over a year now and haven't had any issues with stability. And I'll add that it's probably the best scraper available currently.

quicksilver7837 avatar Feb 01 '20 17:02 quicksilver7837

@quicksilver7837 can be added easily. Probably the main reason it's still in experimental is that installing from source was the better option with @muldjord adding new features and new versions at the time.

@dankcushions I remember testing lr-mesen on Pi4 and it wasn't fullspeed on Castlevania 3. I can re-test and try new games.

For Gameboy systems - add Sameboy's Libretro core. Runs fine on Pi3/Pi4, has link cable emulation (2 screens side by side), supports RetroAchievements and features Super Game Boy (2) emulation. Upstream is very active and has very good Libretro integration.

cmitu avatar Feb 05 '20 10:02 cmitu

@cmitu CV3 was one of the few games I tested with lr-mesen but feel free to verify. I re-tested it now and noticed no drops on stock speeds. Mesen's overclocking will require a pi4 overclock but that's optional. Hd packs are also optional but I haven't re-tested that in months. I faintly remember that would cut speed in half.

darksaviorx avatar Feb 06 '20 01:02 darksaviorx

@darksaviorx @dankcushions I re-tested lr-mesen and it looks ok on the PI4. I must have been remembering it wrong, I also tested it a few times on a PI3 and on that platform it was not fullspeed.

cmitu avatar Feb 06 '20 08:02 cmitu

the dev of mesen says @ https://www.reddit.com/r/emulation/comments/65s9w3/comment/dgddny9

The fact is, you'd be very hard pressed to find any emulation issues in Nestopia.

so for me maybe it’s best that this stays as an optional core, as i think the default should be the most performant core that gives meaningful accuracy, so you can have some overhead for run ahead, shaders, etc.

still, an install script seems worthwhile in any case. could have it disabled for pi1-2, and experimental for pi3.

dankcushions avatar Feb 06 '20 09:02 dankcushions

Should parallel-n64 be moved to experimental packages? It seems to seg fault or throw an illegal exception on just about every game and crash back to ES. This core had a lot of issues on my pi 3 as well.

quicksilver7837 avatar Feb 10 '20 17:02 quicksilver7837

Try setting core video plugin manually via core options. It might just need some better defaults.

joolswills avatar Feb 10 '20 18:02 joolswills

I set it to rice prior to your recent parallel commit. I have it set to auto currently but will try rice again. I'm out of town for a few days so will report back later.

quicksilver7837 avatar Feb 10 '20 18:02 quicksilver7837

Is melonDS worth looking into as a replacement for drastic for NDS emulation? Drastic has some issues on the PI4 and we aren't likely to get any more updates at least until if/when drastic goes open source.

quicksilver7837 avatar Feb 17 '20 16:02 quicksilver7837

Drastic is written for ARM so likely the only one ever to be viable. feel free to try, though.

dankcushions avatar Feb 17 '20 17:02 dankcushions

Yes, sorry looks like I spoke out of turn. Some research shows that probably isn't a viable option on a pi.

quicksilver7837 avatar Feb 17 '20 17:02 quicksilver7837

I ran some more tests with the accurate version of Beetle PCE because I forgot arcade card games have much higher requirements. All are tested on stock speeds. Using latest weekly dev buster build.

Sapphire (arcade card game): Pi3b+ ~46fps, Pi4 59.92-60fps.

The pi4 produces some frame drops but not low enough to produce scratchy audio. I'm also using the automated nightly build from libretro's site so I have no idea what build optimizations can be done. I don't mind if it's not the default, but It'd be great if it's in somewhere in retropie-setup. Thanks.

darksaviorx avatar Feb 19 '20 05:02 darksaviorx

Would definitely love to see sameboy as an option, given its feature set!

rileyinman avatar Aug 10 '20 14:08 rileyinman

It looks like a functional PR for Sameboy was created in #3083—I'm not sure why it was closed, but it could be a candidate for a merge.

rileyinman avatar Oct 09 '20 07:10 rileyinman

I don't think this is relevant anymore, so closing.

cmitu avatar Feb 16 '24 16:02 cmitu