gba-mu is a WIP Game Boy Advance emulator. It is written in C++ with an object-oriented design. There's still a lot of work to be done on it
- Miscellaneous bugs
- All PPU modes and features
- Sound controller
- Optimizations
- Instruction cycle counting / Gamepak prefetch emulation
- Dependencies: cmake, c++17, sfml
cd build
./build.sh
- Has only been tested on MacOS, but feel free to try it on Linux and Windows and provide feedback
- To run tests:
cd build
./build.sh
ctest
- To run a ROM:
cd build
./gba <path_to_gba_rom>
- d-pad = WASD
- A = k
- B = m
- start = spacebar
- select = rshift
- debug mode = z
- exit debug mode = x
Here are some resources I have been using to aid in developing this emulator
- GBATek Documentation is an authoritative reference for GBA's hardware
- TONC GBA Programming guide is a great resouce that provides a lot of demo ROMs, indispensible for testing various components.
- ARM7TDMI Data Sheet: ftp://ftp.dca.fee.unicamp.br/pub/docs/ea871/ARM/ARM7TDMIDataSheet.pdf CPU reference sheet
- Emudev Discord Server a welcoming and helpful EmuDev community