Gameboy Advanced emulator implemented in C++17
First, all the original gameboy's hardware will be emulated since it's a simpler system and then the rest of the gameboy advance's more advanced hardware will be built on.
Currently working on the simulated MMU (Memory Management Unit) in order to finish the implementation of all of the z80's instructions.
Will use SDL for cross platform input, audio and to create the OpenGL context.
- CPU - in progress
- Memory - in progress
- GPU Timings
- Memory Banking
GBA++ uses the catch2 testing framework. To write a test, simply create a file in the
src/ directory and name it
* is any name, usually the name of the class we are writing tests for. Then, to build the tests, run
make tests. This will rebuild the
gba_tests executable which can then be run to see the results of the tests. The main test file is the
all_tests.cpp file. It
CATCH_CONFIG_MAIN symbol so catch will mark it as the main test file. This file should remain that way and all test cases need to be in external
Test file format:
All test files need to have at a minimum:
This will ensure that the file is found as a test file by
catch2 and will be included into
all_tests.cpp and have all its
TEST_CASEs run. See the catch2 docs for more info on how to write test cases.