How to Write a Retro Arcade Emulator
summary
Builds a working emulator that runs an unmodified Rygar ROM in seconds and ports the design into an FPGA core that eventually boots the actual game. Emulation uses a Z80 CPU model (two Z80s on the board), a 16‑bit 64K address space with memory‑mapped I/O and banked ROMs, and decodes tiled graphics plus sprite priority into a five‑layer pipeline. Implementation reuses chips library and Sokol for graphics, targets the Terra C D10 nano / MiSTer FPGA with external SDRAM, and ships under the MIT license.
AI-written summary · about
chapters (11)
- 0:00Start
- 6:26Arcade Machine
- 9:23Subsystems
- 12:16Read-Only Memory (ROM)
- 12:56Random Access Memory (RAM)
- 13:43Memory Mapping
- 17:48Tilemap
- 19:47Input
- 20:08Strategy
- 24:04GPU
- 35:00What's Next?
related talks
32mEmulating Space Invaders in React:
47mWriting a Nintendo 64 emulator in Rust
01h 27mBuilding a Video Game Emulator
14mRISC-V for Gaming: Emulating X86 on RISC-V
43mRunning .NET on the NES
48mBuilding a Game Boy emulator in .NET Core!
51mBuilding a Game Boy emulator in .NET Core!
01h 20m“Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17”
