nicollasrezende/gameboy-emulator — explained in plain English
Analysis updated 2026-05-18
Play classic Game Boy, NES, or Super Nintendo game cartridges on a modern computer.
Study a cycle-accurate emulator implementation as a learning reference.
Run the included homebrew CINZA ROM to see the emulator in action.
Verify emulator accuracy using the same community test ROM suites the project uses.
| nicollasrezende/gameboy-emulator | 100/rutgers-pbl-dining-2015 | a15n/a15n_old | |
|---|---|---|---|
| Stars | 0 | — | — |
| Language | HTML | HTML | HTML |
| Last pushed | — | 2015-12-01 | 2016-06-18 |
| Maintenance | — | Dormant | Dormant |
| Setup difficulty | moderate | easy | easy |
| Complexity | 4/5 | 1/5 | 1/5 |
| Audience | developer | general | general |
Figures from each repo's GitHub metadata at analysis time.
Requires JDK 21 installed before building or running the emulator.
This project is a Game Boy and Game Boy Color emulator built entirely from scratch in the Kotlin programming language, meaning it recreates the original hardware in software so old game cartridges can run on a modern computer. Alongside the emulator, the author also wrote an original homebrew game called CINZA, a small game made specifically to run on this emulator, so the project covers both sides of the cartridge: the machine and the game. The emulator aims for hardware level accuracy. Its processor emulation advances in the same small steps as the real chip, its graphics system rebuilds the screen the way the original pixel pipeline did, and it includes sound emulation with four channels. It supports several types of Game Boy cartridge memory chips, battery save data, and save states so you can pause and resume exactly where you left off. Beyond the Game Boy, the project has grown into a multi system emulator. It also emulates the NES, matching its processor instruction by instruction against a reference log, and includes support for several NES cartridge types along with games that rely on special interrupt timing tricks. It goes further still with a Super Nintendo emulator, covering both of its processors and enough of its graphics modes to boot real commercial games like Super Mario World, though it notes that games needing exact cycle by cycle timing are not yet supported. All of this accuracy is checked, not just claimed. The project runs 641 automated tests using well known community test programs that check processor instructions, timing, interrupts, and graphics output pixel by pixel, across all three supported systems. There is also a desktop application that ties everything together: a library for organizing your game files by console, adjustable playback speed, fullscreen mode, visual filters, cheat support, and gamepad input. To run it, you need version 21 of the Java Development Kit installed on your computer.
A Game Boy, NES, and Super Nintendo emulator built from scratch in Kotlin, tested against 641 community accuracy tests and able to boot real commercial games.
Mainly HTML. The stack also includes Kotlin, JDK 21.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.