TrackerBoy is an open-source DMG Gameboy emulator with debugging tools. This emulator is written in C and uses CMake as its build system. It allows you to run Gameboy games and provides debugging functionalities to assist in analyzing and understanding Gameboy games and homebrew.
The Gameboy, released by Nintendo in 1989, is a classic handheld gaming console with a large library of iconic games. TrackerBoy aims to recreate the functionality of the original DMG Gameboy, allowing you to play those beloved games on modern hardware.
Additionally, TrackerBoy is equipped with debugging tools, which can be especially useful for developers or enthusiasts interested in reverse-engineering or understanding how Gameboy games work under the hood. The debugging features aim to help identify and analyze various aspects of the game's behavior, memory usage, and CPU instructions.
To build TrackerBoy, follow the steps below:
- Clone the repository to your local machine using Git:
git clone https://github.com/RafaelCasamaximo/TrackerBoy.git
- Create a new directory named "build" inside the project folder:
cd TrackerBoy
mkdir build
cd build
- Run CMake to generate the build files:
cmake ..
- Build the emulator using the generated build files:
make
The build process should complete successfully, and you will have the TrackerBoy emulator executable ready to run.
After successfully building TrackerBoy, you can run the emulator from the terminal or command prompt. The emulator requires a Gameboy ROM file as a command-line parameter to load the game. Here's how you can run it:
./TrackerBoy <path_to_gameboy_rom>
Replace <path_to_gameboy_rom>
with the actual file path of the Gameboy ROM you want to play. The emulator should load the game, and you can start playing it right away.
This emulator is inspired by the Low Level Devel Gameboy emulator and the additional features of the Dromaius Gameboy emulator.
For now only the CPU instructions are implemented. But the plan is to use Dear ImGui with SDL2 renderer to build a disassembler, a memory map and a tilemap, as well as a state-viewer for the CPU registers and flags.
- dmg-acid 2;
- gb-test-roms:
- cpu_instrs;
- dmg_sound;
- instr_timing;
- interrupt_time;
- mem_timing-2;
- mem_timing;
- oam_bug;
Please feel free to customize and expand the README with any additional information, usage examples, or special instructions that may be relevant to your project. Good luck, and happy coding!