This repository is a complete, annotated disassembly of the original Game Boy PokΓ©mon Red and Blue games. It faithfully reproduces the exact ROM images (verified by SHA1 hashes) using the RGBDS assembler toolchain. The codebase is organized into modular subsystems: engine (battle, overworld, events, items, menus), data (maps, PokΓ©mon stats, moves, items, trainers, wild encounters), audio (music and SFX with a macro-based composition language), graphics (sprites, tilesets, fonts), and scripts (map-specific event scripts). It includes custom C tools for graphics optimization, compression, and Virtual Console patch generation. The architecture is a monolithic ROM image with bank switching, using a predef dispatch system for cross-bank calls. Key entry points include the game start routine in home/start.asm and the VBlank handler in home/vblank.asm. This is a high-quality reverse engineering project with extensive comments, consistent coding patterns, and a robust build system, making it an invaluable resource for ROM hacking, retro game development, and studying Game Boy internals.
This repository is a curated 'awesome list' for Game Boy and Game Boy Color development β a community-maintained directory of resources rather than a software application. Its production function is curation: organizing and continuously validating links to documentation (Pan Docs, opcode references, hardware schematics), emulators (SameBoy, mGBA, BGB), development toolchains (RGBDS, GBDK), homebrew games, and reverse-engineering projects. The main README.md is meticulously organized into roughly 15 categories, with EMULATORS.md and MORE.md serving as supplementary lists for open-source emulators and lower-tier resources respectively. The contribution guidelines (CONTRIBUTING.md) define a clear triage process between the main list and MORE.md, establishing quality gates for what qualifies as 'awesome'. The only executable code is the GitHub Actions CI workflow (.github/workflows/ci.yml), which runs two validation jobs: awesome-lint (installed from a custom fork, gbdev/list-linter) to enforce markdown formatting standards, and brok (a dead-link checker) to detect broken URLs across all markdown files. The workflow runs on push, pull request, a weekly schedule, and manual dispatch, and it deliberately ignores tcrf.net due to that site's DDoS protection β a thoughtful, reusable pattern for any awesome-list maintainer. The repository also ships CartridgeList.csv, a structured dataset cataloging thousands of Game Boy cartridge dumps with columns for mapper type (MBC1/MBC3/MBC5/RUMBLE/CAMERA/etc.), ROM size, RAM size, battery presence, RTC presence, and game title β a valuable reference for emulator developers, cartridge hardware projects, and ROM preservation efforts. Maintenance is active: the last commit is recent, the CI pipeline runs on a weekly schedule, and the community is engaged (4,497 stars, 21 open issues, active Discord). The repo is the de facto canonical starting point for Game Boy development. While it contains no application code in the traditional sense, its curation quality, CI infrastructure, and reference data make it a high-value, well-maintained resource.
Peanut-GB is a high-speed, portable Game Boy (DMG) emulator library implemented as a single C99 header file (peanut_gb.h). It provides a complete emulation core including CPU, memory, LCD, cartridge (MBC1/2/3/5), RTC, serial link, and boot ROM support. The library is designed for easy integration into other projects via a callback-based architecture where the frontend provides ROM read, RAM read/write, error handling, and optional LCD line drawing and audio callbacks. The repository includes multiple example frontends demonstrating integration with SDL2 (full emulator with audio and controls), MiniFB (minimal X11 framebuffer), a debug CLI, a Nuklear-based GUI debugger with disassembler and VRAM viewer, and a benchmark tool. A test suite using the minctest.h framework runs Blargg's CPU instruction and timing tests as well as the dmg-acid2 LCD hash test. The library is MIT-licensed and has been used in several real-world projects (Pico-GB, CPBoy, PlayGB). While the core is well-crafted and portable, known inaccuracies exist (line-by-line LCD rendering, audio timing) and some features are incomplete (MBC6/7, camera). The build system is fragmented across Makefiles and CMake, and some examples have version drift in vendored dependencies.
This repository implements a Field-Programmable Gate Array (FPGA) based emulator for Nintendo Game Boy and Game Boy Color systems, specifically targeting the Analogue Pocket handheld console. The design consists of hardware description language (Verilog/VHDL) modules that replicate the original hardware components including a Z80-compatible CPU core (T80), memory controllers, video display subsystem, four-channel audio processing unit, input handling, cartridge interface with various Memory Bank Controller (MBC) implementations, save state functionality, and real-time clock support. The architecture follows a modular approach with clear separation of concerns between subsystems, interconnected through well-defined interfaces. The project demonstrates significant effort in achieving hardware-level accuracy while incorporating modern features like save states, fast forwarding, and custom palettes. While the codebase shows signs of active maintenance and ongoing development, it remains tightly coupled to the target FPGA platform (Cyclone V) and associated Intel/Altera toolchain, which limits immediate portability to other hardware platforms.