Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Game Boy Advance Test Suite
#1
In the interest of furthering the state of Game Boy Advance emulation, I've been writing a test suite that tests various aspects of hardware. At the moment, it only tests timing operations, but way more will be coming in the future. Source code is available on GitHub.


Memory tests
Each test contains 44 configurations. The current version contains 1552 tests total.

Scores:
  1. mGBA (master): 1552 passes
  2. higan v107: 1552 passes
  3. mGBA (0.8.0): 1532 passes
  4. NO$GBA 3.0 (BIOS): 1394
  5. VBA-M 2.1.4: 1337 passes
  6. VGBA 5.5: 1255 passes
  7. NO$GBA 2.8e: emulation crashes

I/O read tests
The current version contains 123 tests.
  1. higan v103: 123 passes
  2. NO$GBA 3.0: 122 passes
  3. mGBA (0.8.0): 116 passes
  4. VBA-M 2.1.4: 100 passes
  5. VGBA 5.5: 10 passes

Timing tests
Each test contains 20 (or 10 if only an ARM version is supported) configurations:
  • ROM 4/2 waitstates, no prefetch
  • ROM 4/2 waitstates, prefetch
  • ROM 3/2 waitstates, no prefetch
  • ROM 3/2 waitstates, prefetch
  • ROM 4/1 waitstates, no prefetch
  • ROM 4/1 waitstates, prefetch
  • ROM 3/1 waitstates, no prefetch
  • ROM 3/1 waitstates, prefetch
  • WRAM
  • IWRAM
The current version contains 1560 tests total.

Scores:
  1. mGBA (0.8.0, BIOS): 1540 passes
  2. mGBA (0.8.0): 1520 passes
  3. higan v103: 1300 passes
  4. NO$GBA 2.8e: 968 passes
  5. VBA-M 2.1.4: 679 passes
  6. VGBA 5.5: 4 passes
  7. NO$GBA 3.0 (BIOS): varies

Timer count-up tests
The current version contains 936 tests total.

Scores
  1. mGBA (0.8.4, BIOS): 744 passes
  2. mGBA (master, no BIOS): 639 passes
  3. mGBA (0.8.4, no BIOS): 610 passes
  4. VBA-M 2.1.4: 440 passes
  5. NO$GBA 3.0 (BIOS): 172 passes

Timer IRQ tests
Each test contains 10 configurations. The current version contains 90 tests total.

Scores
  1. mGBA (0.8.0): 70 passes
  2. higan v107: 36 passes
  3. VBA-M 2.1.4: 8 passes
  4. NO$GBA 3.0: varies

Shifter tests
Each test contains 2 configurations. The current version contains 140 tests total.

Scores:
  1. NO$GBA 3.0: 140 passes
  2. higan v107: 132 passes
  3. mGBA (0.8.0): 132 passes
  4. VBA-M 2.1.4: 132 passes

Carry instruction tests
Each test contains 3 configurations. The current version contains 93 tests total.

Scores:
  1. mGBA (0.8.0): 93 passes
  2. higan v103: 93 passes
  3. NO$GBA 3.0: 93 passes
  4. VBA-M 2.1.4: 93 passes
  5. VGBA 5.5: 93 passes

Multiply long instruction tests
Each test contains 2 configurations. The current version contains 72 tests total.

Scores:
  1. mGBA (0.8.4): 52 passes
  2. NO$GBA 3.0: 52 passes
  3. VBA-M 2.1.4: 52 passes

BIOS math tests
Each test contains 5 cases: the outputs in registers r0 through r3 and the program state flags. Note that for most of these tests, r0 is the only important case, although some games may rely on the other values. The current version contains 625 tests total. These tests only apply to emulators with HLE BIOS.

Scores:
  1. mGBA (0.8.0): 625 passes
  2. VBA-M 2.1.4: 425 passes
  3. NO$GBA 2.8e: emulator crashes
  4. mGBA (0.5.2): emulator crashes
  5. VGBA 5.5: emulator crashes

DMA tests
The current version contains 1256 tests total.

Scores:
  1. mGBA (0.8.0): 1232 passes
  2. NO$GBA 3.0: 1060 passes
  3. VBA-M 2.1.4: 1032 passes
  4. VGBA 5.5: 998 passes
Downloads
Reply

#2
I've been running some Accuracy tests of Android emulators, so far testing GB/GBC, NES, SNES, and GENS/MD over on reddit which has seen quite a bit of enjoyment by the community there. By far the number one requested console I test next has been GBA. As of yet I've only found ARMWrestler and CPU Test by Deadbody as suitable test ROMs. I didn't consider that enough testing to truly make a good test suite out of but your tests here look extremely promising.

Basically what I'd like to ask you is would you consider your tests plus the two CPU tests above as sufficient to make a general statement about accuracy? Or should I hold off until there are further tests I find/you expand your test suite?

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

#3
Oh my god no, this test suite is woefully inadequate at the moment. I hope to improve it, but it's nowhere near done yet. Also, it's worth noting that four of the tests in armwrestler (all of the ldm writeback tests) fail on actual hardware, so that test suite isn't that great. CPU Test by Deadbody is extremely minimal, too.
Reply

#4
Ah damn, well glad I asked. I'll certainly be keeping an eye on your test suite for whenever you judge it adequete. Thanks for your info on the other tests, I know I'm grasping a bit at straws here but I would love to do some kind of real testing.
Reply

#5
(07-02-2015, 03:50 AM)endrift Wrote: Oh my god no, this test suite is woefully inadequate at the moment.

Mappy VM is a great example of this being the case.
[Image: 1HlkFMC.png]

byuu Wrote:That's very cute! :D A bug is causing it to show as if it passed 100%. I looked at the source; no prefetch emulation.

post on twitter and byuu's investigation
Reply

#6
MAME does REALLY bad. Like, worse than most other GBA emulators with a 129/1260
Reply

#7
New version out with some memory loading tests. mGBA is top again, as one might come to expect by now.
Reply

#8
[Image: 0lqPPRm.png]

Strongest Emulator is gone forever.
Reply

#9
RIP in peace. There will be a new build coming tonight with a fuckton more tests, and then double that if I end up doing the store tests today too.
Reply

#10
[Image: 6NOzKj6.png]

Based Mappy

Edit: Q: Can I use r26 to make a list?
A: No.

Edit: Q: Can I use r29 to make a list?
A: No.

Edit: Q: Can I use r33 to make a list?
A: No.

Edit: Q: Can I use r35 to make a list?
A: Yes, you, no wait, no... iGBA
Reply



Forum Jump:


Users browsing this thread:
2 Guest(s)

Powered By MyBB, © 2002-2024 Melroy van den Berg.