Building a Game Boy emulator in .NET Core!
summary
Builds a working Game Boy emulator in .NET Core by transliterating the Java coffee gb codebase into C# (.NET Core 3.1), boots the Super Mario Land ROM to its title screen within hours, and reaches functional parity with the original after a day of debugging. Uses a headless mode, community test ROMs, WinForms for a simple UI, and low‑fi memory-dump diffs to sync diverging ticks; implements the 4.19 MHz 8‑bit CPU, 8 KB RAM and 160×144 display but leaves audio unimplemented for now. Explains a subtle bug fixed by restoring a regex (not string contains) and exposes the transliteration process.
AI-written summary · about
chapters (10)
- 0:00Start
- 1:59WHAT IS EMULATION
- 5:43OPCODES? CPUS? MACHINE LANGUAGES?
- 8:03MEMORY ADDRESSES
- 11:48A SINGLE OPCODE
- 16:26NO, WHAT'S A GAMEBOY?
- 18:46PANS DOCS
- 32:13SO I BUILT SOME TOOLSI
- 34:24WHAT WAS THE CRASHING BUG?
- 39:17EXCEPT/R/PROGRAMMING
related talks
51mBuilding a Game Boy emulator in .NET Core!
39mRunning .NET on the NES
40mHow to Write a Retro Arcade Emulator
01h 27mBuilding a Video Game Emulator
47mWriting a Nintendo 64 emulator in Rust
18mOvercoming latency, How we build a Cloud Game service with Go
53mSafety first! Low-level C# without the unsafe keyword
01h 02mSo you want to create your own .NET runtime?
