The Gameboy emulator that runs everywhere (Terminal, Web, Desktop)
8 hours ago
- #gameboy
- #z80
- #emulation
- The project is a study case and does not endorse piracy; building or installing an emulator is not illegal.
- The emulator is under development and can run several games, with progress trackable in the Tests section.
- Game Boy emulation involves mimicking the 8-bit Z80/8080 hybrid CPU, managing ROM/RAM banks, and handling specific memory addresses for inputs and outputs.
- The Game Boy hardware specifications include an 8-bit CPU, 8K-32K Work RAM, 8K-16K Video RAM, 160x144 resolution, and 4 grayscale colors (or 32768 for CGB).
- Input/output includes buttons (A, B, SELECT, START), a D-pad, volume/contrast dials, power switch, cartridge slot, and external connectors for power/link cables.
- The Z80 CPU, central to Game Boy emulation, is binary compatible with Intel 8080 and features 8-bit registers (a, b, c, d, e, f, h, l).
- Memory mapping in the Game Boy spans from 0x0000 (Boot ROM) to 0xFFFF (Interrupt Enabled Register), with specific ranges for game ROM, tile RAM, working RAM, etc.
- Example code snippets demonstrate initializing memory registers and handling ROM loading in Rust for desktop and terminal emulation.
- Testing is based on Blargg's Game Boy hardware test ROMs, with some tests currently failing.
- The project references multiple resources, including documentation, schematics, and other emulators for development guidance.