ayyboy's big brother
Kirby - Nightmare in Dream Land | Wario Land 4 | Fire Emblem - The Sacred Stones | Debugger |
---|---|---|---|
# place BIOS in external/gba_bios.bin
cargo build --release # full optimizations
cargo build --profile dev # opt-level 3, retains debug checks - nice to debug overflows, etc.
Usage: ayydbg.exe [OPTIONS] --rom <ROM>
Options:
--trace Enable trace-level logging (highest verbosity, incl. cpu dump and mmio events)
--debug Enable debug-level logging (mostly just cpu instructions)
--targets <TARGETS> Targets to enable logging for [default: cpu,mmio,storage,ppu,irq,pipeline,rhai]
--script <SCRIPT> Path to a custom script file
--rom <ROM> Path to the ROM file
-h, --help Print help
ayyboy advance support's Rhai scripts. These scripts allow you to execute a given "handler" on certain events, namely:
- Whenever the CPU executes an instruction at a given address
- Whenever the MMIO writes to or reads from a given address (janky implementation)
Refer to the scripts
folder for examples. In particular, dump_swi.rhai
is noteworthy as it logs every BIOS call.
rom-db
runs a given .zip
or .gba
and takes a few screenshots every now and then. Collection can be performed with:
bash external/collect_screemshots.sh <rom-folder> # edit script to change max process number
bash external/clean_screenshots.sh rom-db-ui/public/screenshots # delete duplicates, white and black images
The screenshots are saved in rom-db-ui/public/screenshots
. Build the frontend using:
# inside of rom-db-ui
npm install
npm run build # prod build is recommended for speed
npx serve@latest out
A snapshot of screenshots can be found in external/screenshots.zip
. You can unpack these in the aforementioned folder.
Currently passes armwrestler
and a good number of jsmolka's gba-tests
. For game specific compatibility refer to the screenshot database (updated on milestones).