Writing a Gameboy emulator in Ruby
summary
A Game Boy emulator written in Ruby with one tiny C SDL interface reproduces CPU, MMU, PPU and cartridge behavior; the Sharp LR35902 runs at 4.19 MHz 8‑bit CPU with ~256 opcodes, 64 KB address space and a tile-based 160×144 display that the PPU renders line‑by‑line at 60 Hz. Cartridge banking handles games up to 2 MB with 16 KB banks; timing uses CPU cycles (OAM 80 cycles, vblank 4560). Playability: Tetris fully playable, Zelda and Mario have rendering bugs.
AI-written summary · about
chapters (14)
- 0:00Intro
- 0:29Demo
- 4:14What is an emulator
- 6:17Registers
- 9:10Instructions
- 12:36Execution
- 14:02Cycles
- 15:03Memory
- 17:59Memory registers
- 19:59Picture processing units
- 24:43Visualisation
- 25:26Tile system
- 27:34Display system
- 29:34Cartridge
related talks
30mRuby on NES - how to make the smallest ruby ever
24mRuby in the 8 Bit World - A Small mruby VM for the Zilog Z80
41mCoding like it’s 1977: Ruby on the Apple ][
27mMegaruby - mruby/c on Sega Mega Drive
31mBuilding a Commercial Game Engine using mRuby and SDL
29mmruby in the 8-bit world: mruby VM for Zilog Z80
48mBuilding Games with Ruby
26mMegaruby - mruby/c on Sega Mega Drive
