GBA Tests: Difference between revisions
Jump to navigation
Jump to search
Updated PPU Alyosha tests |
m →Test ROMs: Indent alyosha-tas/gba-tests |
||
| Line 670: | Line 670: | ||
* [https://github.com/mgba-emu/suite mGBA gba-suite] | * [https://github.com/mgba-emu/suite mGBA gba-suite] | ||
* [https://github.com/jsmolka/gba-tests jsmolka gba-tests] | * [https://github.com/jsmolka/gba-tests jsmolka gba-tests] | ||
* [https://github.com/alyosha-tas/gba-tests | ** [https://github.com/alyosha-tas/gba-tests Alyosha's continuation of gba-tests] | ||
* [https://github.com/nba-emu/hw-test NanoBoyAdvance hw-test] | * [https://github.com/nba-emu/hw-test NanoBoyAdvance hw-test] | ||
* [https://github.com/hades-emu/Hades-Tests Hades-Tests] | * [https://github.com/hades-emu/Hades-Tests Hades-Tests] | ||
* [https://github.com/GhostRain0/AGBEEG-Aging-Cartridge AGBEEG aging test suite] | * [https://github.com/GhostRain0/AGBEEG-Aging-Cartridge AGBEEG aging test suite] | ||
* [https://github.com/DenSinH/AGSTests AGS Aging Cart decompilation] | * [https://github.com/DenSinH/AGSTests AGS Aging Cart decompilation] | ||
===Other Results=== | ===Other Results=== | ||
* [https://github.com/skylersaleh/SkyEmu/blob/dev/docs/Accuracy.md Comparisons in the SkyEmu documentation] | * [https://github.com/skylersaleh/SkyEmu/blob/dev/docs/Accuracy.md Comparisons in the SkyEmu documentation] | ||
Revision as of 05:51, 17 December 2024
This page documents the results of various emulators and hardware using test ROMs. Emulators tested using official BIOS. The number next to the fail state is the number of tests passed, so higher equals better.
| No. | Test Name | Subtests | GBAHawk |
NanoBoyAdvance |
Mesen |
SkyEmu |
mGBA |
ares |
No$GBA |
Visual Boy Advance M |
MiSTer_GBA |
Analogue Pocket |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | Memory tests | 1552 | Pass | Pass | Pass | Pass | Pass | Pass | Fail (1181) | Fail (1426) | Pass | Fail (1368)* |
| 02 | I/O read tests | 130 | Pass | Pass | Pass | Pass | Fail (128) | Pass | Fail (129) | Fail (100) | Fail (129) | Pass* |
| 03 | Timing tests | 2020 | Pass | Pass | Pass | Pass | Fail (1768) | Pass | Fail (1121)** | Fail (1024)** | Fail (1796) | Pass* |
| 04 | Timer count-up tests | 936 | Pass | Pass | Fail (933) | Fail (720)** | Fail (744) | Fail (915)** | Fail (152) | Fail (440) | Fail (442) | Fail (920)* |
| 05 | Timer IRQ tests | 90 | Pass | Pass | Pass | Pass | Fail (70) | Pass | Fail (44) | Fail (8) | Fail (65) | Pass* |
| 06 | Shifter tests | 140 | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Fail (132) | Pass | Pass* |
| 07 | Carry tests | 93 | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass* |
| 08 | Multiply long tests | 72 | Pass | Fail (52) | Pass | Fail (52) | Fail (52) | Fail (52) | Fail (52) | Fail (52) | Fail (52) | Fail (52)* |
| 09 | BIOS math tests | 615 | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Fail (520)* |
| 10 | DMA tests | 1256 | Pass | Pass | Pass | Pass | Fail (1232) | Fail (1220) | Fail (1060) | Fail (1068) | Fail (1248) | Fail (1184)* |
| 11 | SIO register R/W tests | 90 | Fail (25) | Skip | Skip | Skip | Fail (60)** | Skip | Fail (25) | Fail (13) | Fail (25)*** | Not Tested |
| 12 | SIO timing tests | 8 | Fail (0) | Skip | Skip | Skip | Fail (0) | Skip | Fail (0) | Fail (0) | Fail (0)*** | Not Tested |
| 13 | Misc. edge case tests | 10 | Fail (8) | Fail (8) | Fail (6) | Fail (4) | Fail (8) | Fail (6) | Fail (3) | Fail (8) | Fail (6)** | Pass* |
| 14 | Video tests | 7 | Fail (6) | Fail (6) | Fail (6) | Fail (5) | Fail (4) | Fail (5) | Fail (3) | Fail (4) | Fail (4) | Pass* |
* tested on r83
** inconsistent results, showcasing highest value seen
*** tested with GBA2P v220813
| No. | Test Name | Subtests | GBAHawk |
NanoBoyAdvance |
Mesen |
SkyEmu |
mGBA |
ares |
No$GBA |
Visual Boy Advance M |
MiSTer_GBA |
Analogue Pocket |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | Memory | 9 | Pass | Pass | Pass | Pass | Fail (8) | Pass | Fail (8) | Fail (1) | Pass | Pass |
| 02 | LCD | 7 | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Fail (6) | Pass | Pass |
| 03 | Timer | 3 | Pass | Pass | Pass | Pass | Pass | Pass | Fail (2) | Fail (2) | Pass | Pass |
| 04 | DMA | 9 | Pass | Pass | Pass | Pass | Pass | Fail (8) | Fail (8) | Fail (7) | Pass | Pass |
| 05 | COM | N/A | Skip | Skip | Skip | Skip | Skip | Skip | Skip | Skip | Skip | Skip |
| 06 | Key Input | 1 | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass |
| 07 | Interrupt | 7 | Pass | Pass | Pass | Pass | Pass | Fail (4) | Fail (6) | Fail (5) | Pass | Pass |
| No. | Test Name | Subtests | GBAHawk |
NanoBoyAdvance |
Mesen |
SkyEmu |
mGBA |
ares |
No$GBA |
Visual Boy Advance M |
MiSTer_GBA |
Analogue Pocket |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | arm | Pass | Pass | Pass | Pass | Fail test 235 | Fail test 522 | Fail (crash) | Fail test 225 | Pass | Pass* | |
| 02 | bios | Pass | Pass | Pass | Pass | Pass | Pass | Fail test 3 | Fail test 1 | Pass | Pass | |
| 03 | memory | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | |
| 04 | nes | Pass | Pass | Pass | Pass | Pass | Pass | Fail test 1 | Pass | Pass | Pass | |
| 05 | thumb | Pass | Pass | Pass | Pass | Fail test 230 | Fail test 230 | Fail test 225 | Fail test 221 | Pass | Pass | |
| Save | ||||||||||||
| 01 | none | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Fail test 1 | Fail test 1 | Not Tested | |
| 02 | sram | Pass | Pass | Pass | Pass | Fail test 6 | Pass | Pass | Fail test 6 | Fail test 1 | Pass | |
| 03 | flash64 | Fail test 2 | Pass | Pass | Pass | Fail test 6 | Pass | Fail test 10 | Fail test 6 | Fail test 1 | Pass | |
| 04 | flash128 | Fail test 2 | Pass | Pass** | Pass** | Fail test 6 | Pass | Fail test 10 | Fail test 6 | Fail test 1 | Pass | |
* tested on commit a6447c5
** fails on test 9 on reruning the test immediately
| No. | Test Name | Subtests | GBAHawk |
NanoBoyAdvance |
Mesen |
SkyEmu |
mGBA |
ares |
No$GBA |
Visual Boy Advance M |
MiSTer_GBA |
Analogue Pocket |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DMA | ||||||||||||
| 01 | DMA_ROM_Fixed | Pass | Fail test 242 | Fail test 246 | Fail test 240 | Fail test 242 | Fail test 242 | Fail test 240 | Fail test 9 | Fail test 240 | Not Tested | |
| FIFO | ||||||||||||
| 01 | FIFO | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Not Tested | |
| 02 | FIFO_2 | Pass | Fail test 80 | Fail test 81 | Fail test 51 | Fail test 51 | Fail test 51 | Fail test 54 | Fail test 46 | Fail test 51 | Not Tested | |
| Interactions | ||||||||||||
| 01 | Internal_Cycle_DMA_IRQ | Pass | Fail test 6 | Fail test 6 | Pass | Fail test 4 | Fail test 246 | Fail test 8 | Fail test 54 | Fail test 6 | Not Tested | |
| 02 | Internal_Cycle_DMA_Mul | Pass | Fail test 39 | Fail test 41 | Fail test 40 | Fail test 41 | Fail test 43 | Fail test 37 | Pass | Fail test 41 | Not Tested | |
| IRQ | ||||||||||||
| 01 | Halt_PC | Pass | Fail test 212 | Pass | Pass | Fail test 208 | Fail test 216 | Fail test 195 | Fail test 159 | Fail test 184 | Not Tested | |
| 02 | Halt_PC_2 | Pass | Pass | Pass | Pass | Fail test 235 | Pass | Pass | Fail test 221 | Fail test 242 | Not Tested | |
| 03 | Halt_PC_3 | Pass | Fail test 237 | Fail test 237 | Pass | Fail test 232 | Pass | Fail test 255 | Fail test 219 | Fail test 239 | Not Tested | |
| 04 | Halt_PC_4 | Pass | Pass | Pass | Pass | Fail test 236 | Pass | Fail test 1 | Fail test 223 | Fail test 245 | Not Tested | |
| 05 | IE | Pass | Pass | Pass | Fail test 3 | Fail test 3 | Pass | Pass | Fail test 4 | Fail test 2 | Not Tested | |
| 06 | IF | Pass | Pass | Pass | Fail test 3 | Fail test 3 | Pass | Fail test 6 | Fail test 2 | Fail test 2 | Not Tested | |
| 07 | IF_Timer | Pass | Pass | Pass | Fail test 2 | Fail test 2 | Pass | Fail test 2 | Fail test 1 | Fail test 2 | Not Tested | |
| 08 | IRQ_sub | Pass | Pass | Pass | Pass | Fail test 247 | Pass | Fail (crash) | Fail test 223 | Fail test 245 | Not Tested | |
| LDM | ||||||||||||
| 01 | LDM_ALU | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Fail test 2 | Not Tested | |
| 02 | LDM_ALU_Store | Fail test 6 | Fail test 6 | Fail test 6 | Fail test 6 | Fail test 6 | Fail test 6 | Fail test 6 | Fail test 6 | Fail test 6 | Not Tested | |
| PPU | ||||||||||||
| 01 | Sprite_Disable_Midline | Pass | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | |
| 02 | Sprite_Disable_on_VRAM_Access | Pass | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | Not Tested | |
| 03 | Sprite_Last_VRAM_Access | Pass | Pass | Fail test 141 | Fail test 141 | Fail test 143 | Fail test 157 | Fail test 155 | Fail test 116 | Fail test 141 | Not Tested | |
| 04 | Sprite_Last_VRAM_Access_Free | Pass | Fail test 121 | Fail test 119 | Fail test 119 | Fail test 121 | Fail test 119 | Fail test 119 | Fail test 9 | Fail test 119 | Not Tested | |
| Prefetcher | ||||||||||||
| 01 | boundary_test_1 | Pass | Fail test 33 | Pass | Fail test 33 | Fail test 27 | Fail test 33 | Fail test 39 | Pass | Fail test 34 | Not Tested | |
| 02 | branch_THUMB | Pass | Pass | Pass | Fail test 40 | Fail test 29 | Pass | Fail test 37 | Pass | Fail test 40 | Not Tested | |
| 03 | Branch_THUMB_2 | Pass | Fail test 19 | Pass | Fail test 13 | Fail test 33 | Fail test 19 | Fail test 45 | Pass | Fail test 45 | Not Tested | |
| 04 | Branch_THUMB_3 | Pass | Fail test 45 | Pass | Fail test 36 | Fail test 35 | Fail test 45 | Fail test 41 | Pass | Fail test 36 | Not Tested | |
| 05 | Branch_THUMB_4 | Pass | Fail test 55 | Pass | Fail test 27 | Fail test 28 | Fail test 55 | Fail test 27 | Pass | Fail test 27 | Not Tested | |
| 06 | Branch_THUMB_ARM | Pass | Fail test 57 | Pass | Fail test 59 | Fail test 49 | Pass | Fail test 65 | Pass | Fail test 59 | Not Tested | |
| 07 | DMA | Pass | Pass | Fail test 48 | Fail test 50 | Fail test 40 | Fail test 39 | Fail test 66 | Pass | Fail test 59 | Not Tested | |
| 08 | Full_ARM | Pass | Fail test 51 | Pass | Fail test 1 | Fail test 1 | Fail test 51 | Fail test 1 | Fail test 1 | Fail test 1 | Not Tested | |
| 09 | Full_THUMB | Pass | Pass | Pass | Fail test 36 | Fail test 31 | Fail test 49 | Fail test 49 | Pass | Fail test 44 | Not Tested | |
| PSR | ||||||||||||
| 01 | PSR | Pass | Pass | Fail test 250 | Fail test 1 | Fail test 1 | Fail test 4 | Fail (crash) | Fail test 1 | Fail test 1 | Not Tested | |
| Timer | ||||||||||||
| 01 | Timer | Pass | Fail test 1 | Pass | Fail test 3 | Fail test 1 | Fail test 3 | Fail test 3 | Fail test 3 | Fail test 3 | Not Tested | |
| 02 | Timer_disable | Pass | Pass | Fail test 2 | Fail test 254 | Fail test 251 | Pass | Fail test 244 | Fail test 254 | Fail test 254 | Not Tested | |
| 03 | Timer_reset | Pass | Fail test 2 | Fail test 1 | Fail test 1 | Fail test 1 | Fail test 1 | Fail test 1 | Fail test 1 | Fail test 1 | Not Tested | |
| No. | Test Name | Subtests | GBAHawk |
NanoBoyAdvance |
Mesen |
SkyEmu |
mGBA |
ares |
No$GBA |
Visual Boy Advance M |
MiSTer_GBA |
Analogue Pocket |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bus | ||||||||||||
| 01 | 128kb-boundary | 12 | Pass | Fail (9) | Pass | Fail (0) | Fail (6) | Fail (9) | Fail (7) | Fail (0) | Fail (6) | Fail (stuck)* |
| DMA | ||||||||||||
| 01 | burst-into-tears | 3 | Pass | Fail (0) | Pass | Fail (0) | Fail (1) | Fail (0) | Fail (1) | Fail (0) | Fail (1) | Fail (1) |
| 02 | force-nseq-access | 2 | Pass | Pass | Pass | Fail (0) | Fail (0) | Pass | Fail (0) | Fail (0) | Fail (0) | Pass |
| 03 | latch | 3 | Pass | Pass | Pass | Pass | Fail (1) | Pass | Fail (0) | Fail (1) | Fail (1) | Pass |
| 04 | start-delay | 1 | Pass | Pass | Pass | Fail | Fail | Pass | Fail | Fail | Fail | Pass |
| IRQ | ||||||||||||
| 01 | irq-delay | 3 | Pass | Pass | Pass | Fail (0) | Fail (1) | Pass | Fail (0) | Fail (1) | Fail (0) | Pass |
| PPU | ||||||||||||
| 01 | bgpd | 1 | Pass | Pass | Fail | Fail | Fail | Fail | Fail | Fail | Fail | Pass |
| 02 | bgx | 1 | Pass | Pass | Pass | Fail | Fail | Fail | Fail | Fail | Fail | Pass |
| 03 | dispcnt-latch | 1 | Pass | Pass | Fail | Fail | Fail | Pass | Fail | Fail | Fail | Pass |
| 04 | greenswap | 1 | Pass | Pass | Pass | Fail | Fail | Fail | Fail | Fail | Fail | Fail |
| 05 | sprite-hmosaic | 4 | Pass | Pass | Pass | Fail | Fail | Pass | Fail | Fail | Fail | Not tested |
| 06 | status-irq-dma | 4 | Pass | Pass | Fail (0) | Fail (0) | Fail (0) | Pass | Fail (stuck) | Fail (stuck) | Fail (0) | Pass |
| 07 | vram-mirror | 10 | Pass | Pass | Pass | Fail (6) | Pass | Pass | Fail (7) | Pass | Fail (8) | Fail (7) |
| Timer | ||||||||||||
| 01 | reload | 7 | Pass | Pass | Pass | Fail (5) | Fail (4) | Pass | Fail (0) | Fail (2) | Fail (4) | Pass |
| 02 | start-stop | 2 | Pass | Pass | Pass | Fail (1) | Fail (1) | Pass | Pass | Fail (1) | Fail (1) | Pass |
| Misc | ||||||||||||
| 01 | halt-cnt | 6 | Pass | Fail (5) | Fail (5) | Fail (2) | Fail (2) | Fail (3) | Fail (0) | Fail (stuck) | Fail (stuck) | Fail (2) |
* tested on commit 40355cb
| No. | Test Name | Subtests | GBAHawk |
NanoBoyAdvance |
Mesen |
SkyEmu |
mGBA |
ares |
No$GBA |
Visual Boy Advance M |
MiSTer_GBA |
Analogue Pocket |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | bios-openbus | 12 | Fail (10) | Pass | Pass | Pass | Pass | Pass | Pass | Fail (0) | Pass | Not Tested |
| 02 | dma-latch | 4 | Fail (2) | Fail (3) | Fail (2) | Pass | Fail (1) | Fail (3) | Fail (0) | Fail (0) | Fail (1) | Not Tested |
| 03 | dma-start-delay | 8 | Pass | Pass | Fail (6) | Fail (0) | Fail (0) | Fail (6) | Fail (0) | Fail (0) | Fail (0) | Not Tested |
| 04 | timer-basic | 10 | Fail (9) | Pass | Pass | Fail (2) | Fail (2) | Pass | Pass | Fail (6) | Fail (2) | Not Tested |
| No. | Test Name | Subtests | GBAHawk |
NanoBoyAdvance |
Mesen |
SkyEmu |
mGBA |
ares |
No$GBA |
Visual Boy Advance M |
MiSTer_GBA |
Analogue Pocket |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | Cartridge | 2 | Pass | Pass | Pass | Fail (1) | Fail (0) | Fail (1) | Fail (0) | Fail (0) | Fail (0) | Fail (1) |
| 02 | CPU | 3 | Pass | Pass | Pass | Fail (1) | Fail (1) | Fail (2) | Fail (2) | Fail (2) | Fail (1) | Fail (2) |
| 03 | DMA | 1 | Pass | Pass | Fail | Fail | Fail | Fail | Fail | Fail | Fail | Pass |
| Test Name | Subtests | GBAHawk |
NanoBoyAdvance |
Mesen |
SkyEmu |
mGBA |
ares |
No$GBA |
Visual Boy Advance M |
MiSTer_GBA |
Analogue Pocket |
|---|---|---|---|---|---|---|---|---|---|---|---|
| GValiente | |||||||||||
| Background palette h-blank update - circle | 1 | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass |
| Sprite update HDMA - diamond | 1 | Pass | Pass | Pass | Pass | Fail | Pass | Fail | Fail | Fail | Pass |
| Sprite border HDMA - cube | 1 | Pass | Pass | Pass | Pass | Fail | Pass | Fail | Fail | Fail | Pass |
| Max sprites per scanline | 1 | Pass | Pass | Pass | Fail | Fail | Fail | Fail | Pass | Fail | Not Tested |
| Velipso | |||||||||||
| Large sprite row warp | 2 | Pass | Pass | Pass | Pass | Pass | Fail | Fail | Fail | Fail | Pass |
| Interrupt timing vblank + timer0 | 1 | Pass | Pass | Fail | Fail | Fail | Fail | Fail | Fail | Fail | Fail |
| Ladystarbreeze | |||||||||||
| Mid-frame video capture DMA | 1 | Pass | Pass | Pass | Pass | Fail | Pass | Fail (stuck) | Fail (stuck) | Fail (stuck) | Pass |
Emulators in this article
- Main article: Game Boy Advance emulators
- Hover over the emulators at the top of each compatibility list for the specific version tested
- GBAHawk
- NanoBoyAdvance
- Mesen
- SkyEmu
- mGBA
- Ares
- No$GBA
- Visual Boy Advance M
- MiSTer_GBA
- Analogue Pocket
External links
Test ROMs
- mGBA gba-suite
- jsmolka gba-tests
- NanoBoyAdvance hw-test
- Hades-Tests
- AGBEEG aging test suite
- AGS Aging Cart decompilation