Gate-level simulation of the original Game Boy hardware, reverse-engineered from die shots of the DMG-01 chip.
MetroBoy is a collection of gate-level simulators for the original Nintendo Game Boy, with GateBoy providing a detailed simulation of the DMG-01 chip's logic gates reverse-engineered from die shots. It solves the problem of accurately modeling Game Boy hardware at the transistor level, including asynchronous behavior and glitches that traditional emulators miss.
Hardware enthusiasts, retro gaming preservationists, and developers interested in low-level hardware simulation, digital logic, and reverse engineering of vintage gaming systems.
Developers choose MetroBoy for its unprecedented accuracy in Game Boy simulation, derived directly from physical hardware analysis rather than documentation. Its gate-level approach provides insights into actual chip behavior that higher-level emulators cannot capture.
A repository of gate-level simulators and tools for the original Game Boy.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Based on die shot analysis and Furrtek's schematics, simulating individual logic gates like ASUR for true hardware fidelity, as detailed in the reverse-engineering process.
Runs Mooneye tests and custom micro-tests to validate simulation accuracy, ensuring high conformance to real hardware behavior, though some tests like mealybug require manual setup.
LogicBoy achieves 60+ fps in fast mode through optimized C++ translation, maintaining bit-identical behavior with GateBoy while significantly improving speed for practical use.
Handles glitches and gate delays, such as the LOXO glitch affecting external bus addresses, providing insights into real-world chip anomalies that standard emulators miss.
GateBoy runs at only 6-8 frames per second in fast mode on a modern 4 GHz CPU, making real-time simulation impractical without switching to the faster LogicBoy version.
MetroBoy is currently broken and not usable, and test automation for suites like mooneye and mealybug is not implemented, limiting out-of-the-box functionality.
Requires manual setup with git submodules, SDL2 dependencies, and platform-specific configurations (e.g., Visual Studio on Windows, libsdl2-dev on Linux), which can be a barrier to entry.