Comparison of Android Emulators to RetroArch

Recently I was overcome with the curiosity to find the best Android emulator to play some old games, something I’m sure everyone here has experienced. I found some test ROMs to run for the NES, SNES, GB/GBC, and GENS/MD, running the tests and publishing the results on reddit. You can click on all the links below for the full analysis, but I don’t think anyone will be surprised to know that RetroArch takes the top spot nearly every time.

Android NES Emulator Accuracy Testing Results Android SNES Emulator Accuracy Testing Results Android GB/GBC Emulator Accuracy Testing Results Android GENS/MD Emulator Accuracy Testing Results

Most Accurate Android Emulator for: NES: Nestopia Core of RetroArch SNES: Higan Performance Core of RetroArch/John SNES/ClassicBoy - SNES (depends… this one is complicated) GB/GBC: Gambatte core of RetroArch/GBC.emu GENS/MD: Genesis Plus GX core of RetroArch

If I could make a request, I would love any other tests ROMs/programs for the emulators I have performed already and test ROMs/programs for other systems (GBA especially). Feel free to ask me any questions about the tests or testing methods!

A couple of notes regarding the SNES tests: bsnes is still called bsnes, it’s just byuu’s suite of emulators together with his GUI that are called higan. bsnes-performance indeed doesn’t have cx4 emulation, but we have bsnes-mercury, which includes an HLE implementation just like snes9x (currently available in nightlies; will be included in the next Play Store build, as well). Likewise, it looks like you got 0% for bsnes-performance in special chips overall, which shouldn’t be the case. It supports LLE for all special chips except cx4 if you have the chip images available. In fact, there are some games (shitty ones, but still) that will only play in bsnes flavors because of the special chip LLE. This sort of thing is a good example of why just running a bunch of test ROMs isn’t really a good way of judging accuracy, though I understand the desire for objective metrics.

Other than bsnes, disassembly results strongly suggest that all other Android snes emus are various permutations of snes9x. So, whether you prefer Duff Lite, Duff Dry or Original Duff, it’s all coming out of the same tube. The emulation situation on Android is pretty messed up, really, insofar as there are only a handful of original emulators (notably, Drastic and Riecast) and the rest are just repackaging of existing open-source emus, usually rebranded and closed-source(!). It turns out that emulators are hard to write and take a long time to research and refine, and any time you see a whole bunch of them pop up out of nowhere, you can rest assured they’re just ripping off the hard work of people that came before them who were generous enough to share their code (see also: Hyperkin’s Retron5).

Gambatte has a bunch of test roms in it’s repo I believe.

TASVideos did a bunch of tests too, although they’re not Android specific:

http://tasvideos.org/EmulatorResources/ … Tests.html http://tasvideos.org/EmulatorResources/ … Tests.html http://tasvideos.org/EmulatorResources/ … Tests.html

Regarding SNES, bsnes performance might pass more accuracy tests, but Snes9x has higher game compatibility. http://wiki.libretro.com/index.php?titl … patibility Those tests were all done by me so I can verify those entries are accurate. :stuck_out_tongue:

Most (maybe even all) SNES emulators for Android are based on bsnes/Snes9x anyway, except they come with a price tag most of the time.

Regarding GBA, there are only four working emulators that come to my mind (sorted by compatibility): VBA-M (fork of VBA) - Plays about any game except Phantasy Star 1 in the Phantasy Star Collection, that one flickers like crazy bgba (higan) - Aims to be more accurate than VBA and it’s the only active GBA emulator. It’s currently slow as hell and has lots of issues with various games. TempGBA (fork of gpsp) - Speedy GBA emu originally written for PSP and then ported to the DS. Meteor - Not really in a useful state at the moment and appears to have been abandoned by the maindev.

There’s also VBA-Next, but that’s essentially just an older version of VBA-M for weaker systems.

Sorry for the wall of text, I’ve already tried to keep it short.

@hunterk:

Thanks for clarifying on the Higan/bsnes, I’ve modified all my posts/spreadsheet accordingly. For the bsnes special chip accuracy, I suppose it would be more honest to state Cx4 and SPC7110 accuracy than overall special chip accuracy. My goal had been to not confuse people too much with getting into all the details. Plus while I realize it can support all the chips with the images, I don’t expect most users to do that and as such I wanted to test out-of-the-box functionality. I fully get that these tests aren’t a perfect, and I’m open to any ideas to improve this to give the most accurate picture of emulator accuracy. I’m not exactly aiming for compatibility tests as they are a bit different.

I did try to address this by finding out as much as possible what each emulator was based on, which I have in the spreadsheet that far and away snes9x is what most are based on. There are some slight difference between all of them still, with different versions of snes9x being used and such.

And yup, that’s what I noticed in doing my testing, and while I may not have done a disassembly of many emulators, the results of the testing suggest very strongly some emulators using the same backend.

If you have any suggestions for how to better interpret the tests, more tests to run, better ways to analyze, etc… I’m all ears. I enjoy these sorts of measurements and hope to provide accurate info.

@Oggom

Yeah… I know Gambatte has a bunch of tests, which if anyone thinks there’s a real need to do I can. However after doing 158 tests per NES emulator that got kind of old. Still, if it’s desired I can do.

TASVideos was actually the inspiration for theses tests, most of the test ROMs I used I grabbed from there, I wouldn’t have even started this project without that site!

You’re the one that did those tests? I must extend my sincerest thanks! That list came in extremely useful during testing to help me understand the results and put things into perspective, plus sharing with others what to expect from emulators. I noticed that about snes9x in Android emulators during testing… and the price tags :confused:

For the GBA emulators I appreciate the list. What I really want to do is perform some kind of tests of those emulators to gauge how accurate they are, colors, how it runs certain instructions, etc… Unfortunately I don’t know any such tests, and while I know enough to mostly interpret the results and why of such tests, I don’t know enough to make them.

Don’t apologize at all! I would rather have too much info than too little. I hate passing along incorrect info to people so anything that helps me change that is good. I started this partially because I got frustrated with seeing recommendations all over the board about emulators with no numbers to back up people’s opinions (especially with the oid emulators being recommended). I wanted to make some number based analysis which is as accurate as it can be.