GBA Tests

Revision as of 12:15, 4 June 2025 by Sczther (talk | contribs) (Added VBA-M results)

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.

gba-suite r88
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 Pass Fail (720)** Fail (744) Fail (921)** 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 Pass 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) Pass Fail (1060) Fail (1068) Fail (1248) Fail (1184)*
11 SIO register R/W tests 90 Fail (25) Fail (18) Fail (28) Fail (25) Fail (60)** Fail (34) Fail (25) Fail (13) Fail (25)*** Not Tested
12 SIO timing tests 8 Fail (0) Fail (0) Fail (0) Fail (0) Fail (0) Fail (0) Fail (0) Fail (0) Fail (0)*** Not Tested
13 Misc. edge case tests**** 10 Fail (8) Fail (8) Fail (8) Fail (4) Fail (8) Fail (7)** Fail (3) Fail (8) Fail (6)** Pass*
14 Video tests 7 Fail (6) Fail (6) Pass 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
**** two of the tests are acting a bit weird and need to be checked, using a flashcart they don't pass

AGS Aging Cartridge v10.0
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 Pass 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
jsmolka gba-tests commit 49204e1
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 Pass 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 Pass 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 Fail test 9 Pass*** Fail test 6 Pass Fail test 10 Fail test 6 Fail test 1 Pass

* tested on commit a6447c5
** these tests fail on a real flash board and probably are testing conformity with the flash implementation of modern flashcarts
*** fails on test 9 on reruning the test immediately

alyosha gba-tests commit b0ca335
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 Pass Fail test 240 Fail test 242 Pass Fail test 240 Fail test 9 Fail test 240 Pass
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 Fail test 2
02 FIFO_2 Pass Fail test 80 Pass Fail test 51 Fail test 51 Fail test 51 Fail test 54 Fail test 46 Fail test 51 Fail test 80
Interactions
01 Halt_DMA_IRQ Not Tested Fail test 184 Fail test 137 Fail test 184 Fail test 184 Fail test 184 Fail test 184 Fail test 184 Not Tested Not Tested
02 Halt_DMA_IRQ_Read_OAM Not Tested Fail test 184 Fail test 223 Fail test 184 Fail test 184 Fail test 184 Fail test 56 Fail test 184 Not Tested Not Tested
03 Halt_IRQ Not Tested Fail test 184 Pass Fail test 184 Fail test 184 Fail test 94 Fail test 184 Fail test 184 Not Tested Not Tested
04 Internal_Cycle_DMA_IRQ Pass Fail test 6 Pass Fail test 248 Fail test 4 Fail test 248 Fail test 8 Fail test 54 Fail test 6 Fail test 8
05 Internal_Cycle_DMA_IRQ_7 Not Tested Fail test 6 Fail test 10 Fail test 248 Fail test 4 Fail test 248 Fail test 6 Fail test 10 Not Tested Not Tested
06 Internal_Cycle_DMA_IRQ_br Not Tested Fail test 20 Pass Pass Fail test 20 Fail test 20 Pass Fail test 76 Not Tested Not Tested
07 Internal_Cycle_DMA_IRQ_br1_IWRAM Not Tested Pass Pass Pass Pass Pass Fail test 90 Fail test 90 Not Tested Not Tested
08 Internal_Cycle_DMA_IRQ_Br_pre Not Tested Pass Pass Fail test 28 Fail test 26 Pass Pass Fail test 82 Not Tested Not Tested
09 Internal_Cycle_DMA_IRQ_Br_pre_tim Not Tested Pass Pass Fail test 32 Fail test 27 Fail test 255 Fail test 2 Fail test 255 Not Tested Not Tested
10 Internal_Cycle_DMA_IRQ_ldr_IWRAM Not Tested Fail test 32 Fail test 36 Fail test 16 Fail test 20 Fail test 20 Fail test 32 Fail test 38 Not Tested Not Tested
11 Internal_Cycle_DMA_IRQ_nop_IWRAM Not Tested Pass Pass Fail test 36 Pass Pass Fail test 94 Fail test 94 Not Tested Not Tested
12 Internal_Cycle_DMA_IRQ_ST Not Tested Fail test 8 Pass Fail test 248 Fail test 4 Fail test 248 Pass Fail test 54 Not Tested Not Tested
13 Internal_Cycle_DMA_IRQ_ST_p3 Not Tested Fail test 8 Pass Fail test 6 Fail test 6 Fail test 8 Pass Fail test 62 Not Tested Not Tested
14 Internal_Cycle_DMA_Mul Pass Pass Pass Fail test 40 Fail test 41 Fail test 43 Fail test 37 Pass Fail test 41 Pass
15 Internal_Cycle_DMA_MUL_IRQ Not Tested Pass Fail test 24 Fail test 8 Fail test 14 Fail test 6 Fail test 134 Fail test 24 Not Tested Not Tested
16 Internal_Cycle_DMA_TIM_Br_pre Not Tested Pass Pass Fail test 32 Fail test 27 Fail test 255 Fail test 2 Fail test 255 Not Tested 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 Pass
02 Halt_PC_2 Pass Pass Pass Pass Fail test 235 Pass Pass Fail test 221 Fail test 242 Fail test 239
03 Halt_PC_3 Pass Fail test 237 Pass Pass Fail test 232 Pass Fail test 255 Fail test 219 Fail test 239 Fail test 239
04 Halt_PC_4 Pass Pass Pass Pass Fail test 236 Pass Fail test 1 Fail test 223 Fail test 245 Fail test 242
05 IE Pass Pass Pass Fail test 3 Fail test 3 Pass Pass Fail test 4 Fail test 2 Pass
06 IF Pass Pass Pass Fail test 3 Fail test 3 Pass Fail test 6 Fail test 2 Fail test 2 Pass
07 IF_Timer Pass Pass Pass Fail test 2 Fail test 2 Pass Fail test 2 Fail test 1 Fail test 2 Pass
08 IRQ_sub Pass Pass Pass Pass Fail test 247 Pass Fail (crash) Fail test 223 Fail test 245 Pass
LDM
01 LDM_ALU Fail test 2 Fail test 2 Pass Fail test 2 Fail test 2 Fail test 2 Fail test 2 Fail test 2 Fail test 2 Fail test 9
02 LDM_ALU_IMM Not Tested Fail test 2 Pass Fail test 2 Fail test 2 Fail test 2 Fail test 2 Fail test 2 Not Tested Not Tested
03 LDM_ALU_Store Fail test 6 Fail test 6 Pass Fail test 6 Fail test 6 Fail test 6 Fail test 6 Fail test 6 Fail test 6 Pass
04 LDM_Bx Not Tested Fail test 1 Pass Fail test 1 Fail test 1 Fail test 1 Fail (crash) Fail test 1 Not Tested Not Tested
05 LDM_LD Not Tested Fail test 2 Pass Fail test 2 Fail test 2 Fail test 2 Fail test 2 Fail test 2 Not Tested Not Tested
06 LDM_MUL_UL_32 Not Tested Fail test 2 Pass Fail test 2 Fail test 2 Fail test 2 Fail test 2 Fail test 2 Not Tested Not Tested
07 LDM_MUL_UL_SL Not Tested Fail test 2 Pass Fail test 2 Fail test 2 Fail test 2 Fail test 2 Fail test 2 Not Tested Not Tested
08 LDM_Swap Not Tested Fail test 2 Pass Fail test 2 Fail test 2 Fail test 2 Fail test 2 Fail test 2 Not Tested Not Tested
PPU
01 Sprite_Disable_Midline Pass Fail Fail Fail Fail Fail Fail Fail Not Tested Pass
02 Sprite_Disable_on_VRAM_Access Pass Fail Fail Fail Fail Fail Fail Fail Not Tested Pass
03 Sprite_Last_VRAM_Access Pass Pass Pass Fail test 141 Fail test 143 Fail test 173 Fail test 155 Fail test 116 Fail test 141 Pass
04 Sprite_Last_VRAM_Access_Free Pass Fail test 121 Pass Fail test 119 Fail test 121 Fail test 119 Fail test 119 Fail test 9 Fail test 119 Pass
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 Pass
02 branch_THUMB Pass Pass Pass Fail test 40 Fail test 29 Pass Fail test 37 Pass Fail test 40 Pass
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 Pass
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 Pass
05 Branch_THUMB_4 Pass Fail test 55 Pass Fail test 27 Fail test 28 Fail test 63 Fail test 27 Pass Fail test 27 Pass
06 Branch_THUMB_ARM Pass Fail test 57 Pass Fail test 59 Fail test 49 Pass Fail test 65 Pass Fail test 59 Pass
07 branch_thumb_arm_3 Not Tested Pass Fail test 102 Fail (stuck) Pass Fail test 102 Fail (crash) Pass Not Tested Not Tested
08 branch_thumb_arm_4 Not Tested Pass Pass Pass Fail test 38 Pass Fail test 45 Pass Not Tested Not Tested
09 DMA Pass Pass Pass Fail test 50 Fail test 40 Fail test 45 Fail test 66 Pass Fail test 59 Pass
10 Full_ARM Pass Fail test 51 Pass Fail test 1 Fail test 1 Fail test 1 Fail test 1 Fail test 1 Fail test 1 Pass
11 Full_THUMB Pass Pass Pass Fail test 36 Fail test 31 Pass Fail test 49 Pass Fail test 44 Pass
PSR
01 PSR Pass Pass Pass Fail test 1 Fail test 1 Pass Fail (crash) Fail test 1 Fail test 1 Pass
STM
01 STM_ALU_IMM Not Tested Pass Pass Pass Pass Pass Pass Pass Not Tested 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 Fail test 3
02 Timer_disable Pass Pass Pass Fail test 254 Fail test 251 Pass Fail test 244 Fail test 254 Fail test 254 Pass
03 Timer_reset Pass Fail test 2 Pass Fail test 1 Fail test 1 Fail test 1 Fail test 1 Fail test 1 Fail test 1 Pass
png183 gba-tests commit ae185b2
No. Test Name Subtests GBAHawk
NanoBoyAdvance
Mesen
SkyEmu
mGBA
ares
No$GBA
Visual Boy Advance M
MiSTer_GBA
Analogue Pocket
ARM
01 arm Not Tested Fail test 256 Pass Pass Fail test 235 Pass Fail (crash) Fail test 225 Not Tested Not Tested
02 branches Not Tested Fail (stuck) Fail test 60 Fail (stuck) Fail (stuck) Fail (stuck) Fail (crash) Fail (stuck) Not Tested Not Tested
03 data_swap Not Tested Fail test 456 Fail test 454 Fail (stuck) Fail test 454 Fail (stuck) Fail (crash) Fail test 454 Not Tested Not Tested
04 halfword_transfer Not Tested Fail test 256 Fail test 414 Fail test 414 Fail test 416 Fail (stuck) Fail test 410 Fail test 410 Not Tested Not Tested
05 multiply Not Tested Fail test 322 Fail test 329 Fail test 320 Fail test 322 Fail (stuck) Fail (crash) Fail (stuck) Not Tested Not Tested
PSR
01 PSR2 Not Tested Fail test 1 Fail test 8 Fail test 1 Fail (stuck) Fail (stuck) Fail (crash) Fail test 8 Not Tested Not Tested
Timer
01 Timer_check_count_up_presence Not Tested Pass Pass Fail test 1 Fail test 4 Pass Pass Fail test 4 Not Tested Not Tested
NBA hw-test commit 4571fc5
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) Pass Fail (7) Fail (0) Fail (6) Fail (stuck)*
DMA
01 burst-into-tears 3 Pass Fail (0) Pass Fail (0) Fail (1) Pass 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 Pass 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 Pass 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 Pass 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) Pass Fail (2) Fail (2) Fail (3) Fail (0) Fail (stuck) Fail (stuck) Fail (2)

* tested on commit 40355cb

Hades-Tests commit 25ec4b4
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 Pass
02 dma-latch* 4 Fail (2) Fail (3) Fail (3) Pass Fail (1) Fail (3) Fail (0) Fail (0) Fail (1) Fail (3)
03 dma-start-delay 8 Pass Pass Pass Fail (0) Fail (0) Fail (6) Fail (0) Fail (0) Fail (0) Pass
04 timer-basic 10 Fail (9) Pass Pass Fail (2) Fail (2) Pass Pass Fail (6) Fail (2) Pass

* fourth test is acting a bit weird and needs to be checked, using a flashcart it doesn't pass

AGBEEG Aging v0.0.2
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) Pass Fail (2) Fail (2) Fail (1) Fail (2)
03 DMA 1 Pass Pass Pass Fail Fail Fail Fail Fail Fail Pass
Other tests
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 Pass
Velipso
Large sprite row warp 2 Pass Pass Pass Pass Pass Fail Fail Fail Fail Pass
Interrupt timing vblank + timer0* 1 Pass Pass Pass 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
CiroteMark
Absolute error in ticks 1 Fail (1650) Fail (-267272) Fail (133) Fail (497529) Fail (5920975) Fail (-262865) Fail (18228211) Fail (6567849) Fail (231264) Fail (29102)
CasualPokePlayer
GBA RTC Test 18 Not Tested Fail (7) Fail (16) Fail (0) Fail (0) Fail (0) Fail (1) Fail (1) Not Tested Not Tested

* test is acting a bit weird and needs to be checked, using a flashcart it doesn't 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

Test ROMs

Other Results