~/talk

Emulating a Game Boy in .NET 6

Talkat NDC London 2023 · 2023-01-23..01-27· [creative-coding]
slides:none on file

Emulates a Game Boy as a .NET 6 C# project by implementing the SM83 CPU, picture and audio units, memory-mapped I/O, boot ROM checks and cartridge bank switching; uses a JSON opcode table, Visual Studio and Windows Forms, and adds a native sound driver. Accurately models timing (CPU tied to slower memory pulses), DMA, interrupts and the PPU scanline modes so games like Tetris and Super Mario Land actually run. Hardware specs included: 4.19 MHz CPU, 8 KB work RAM, 8 KB VRAM, 256‑byte boot ROM, 160×144 screen; project works after timing fixes and several weeks of effort.

AI-written summary · about

  1. 0:00Game Boy emulation in .NET 6
  2. 1:23Speaker background and inspiration
  3. 2:47Game Boy hardware specs
  4. 7:32Legal ways to obtain Game Boy ROMs
  5. 7:54Sharp SM83 CPU
  6. 10:20SM83 registers and flags
  7. 12:27Picture Processing Unit and graphics
  8. 15:59Sprites limitations
  9. 17:28Audio channels emulation
  10. 20:46Memory I/O and interrupts
  11. 22:58Boot ROM verification
  12. 26:33CPU implementation
  13. 29:45Debugging CPU output
  14. 33:19Timing constraints
  15. 38:33Using existing emulators
  16. 40:20Debugging Tetris input
  17. 43:34Future: Game Boy Color
  18. 45:19Live emulator demo
  19. 48:37Main loop code walk
  20. 52:58Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.