arm7wrestler DC


arm7wrestler DC is a program that tests dozens of instructions on the ARM7 for correctness. This program helped me to find and fix several bugs in WashingtonDC's ARM interpreter. I also provided it to the authors of other prominent Dreamcast emulators, and I'm told it uncovered new bugs for them as well.


This program was originally written as a hardware test for either Nintendo DS or GameBoy Advance. I'm not the original creator of this, but I am the person who ported it from DS to Dreamcast. This port is based upon Arisotura's fork of the test, so it includes the improvements they made to it as well.

inner workings

The ARM7 on Dreamcast is only able to access the AICA audio hardware, so I needed to implement a shim on the SH4 that reads user input from the controller, passes it to the ARM7, receives test results from the ARM7, and outputs those results to the user by writing text to the framebuffer. This was the only real difficult part of porting this from GBA/DS to Dreamcast. Several tests had to be removed because they aren't applicable to the ARM7DI on Dreamcast (DS and GameBoy Advance use the more advanced ARM7TDMI), but other than that and the SH4 shim almost everything runs on the Dreamcast's ARM7DI without modification.


mainmenu.png alutests.png