How I built a ZX Spectrum emulator from scratch using C# and Blazor
summary
Claims a from-scratch ZX Spectrum emulator written in C# and Blazor WebAssembly, implements Z80 registers, 48k/128k banked memory and attribute-based 256×192 display, and runs at 50 FPS. Audio is pre-rendered in 20 ms chunks queued in JavaScript, the framebuffer is exposed via a shared memory pointer to the canvas (≈206 KB), and the engine budgets ~10,000 CPU ops per frame. Ports existed on Xbox 360, Windows Phone and HoloLens and sound timing was fixed.
AI-written summary · about
chapters (17)
- 0:00ZX Spectrum intro and journey
- 3:32Childhood to professional life
- 8:51CPU and assembly basics
- 17:16Memory and screen rendering
- 21:29Input/output ports and sound emulation
- 22:36Hardware complexities
- 23:39First emulator on Xbox 360
- 25:04Porting to XNA and recognition
- 26:50AR and Windows Phone emulators
- 28:19Windows 8 and Indie emulation
- 30:46Podcast and Blazor community
- 32:53HoloLens and mixed reality
- 33:17Blazor introduction and adoption
- 34:40Platform challenges in emulation
- 36:29Memory and performance in Blazor
- 37:52Live Blazor emulator demo
- 38:55Future plans and reflections
related talks
36mUsing a Modern Web to Recreate 1980s Horribly Slow & Loud Loading Screens
43mUsing a modern web to recreate 1980S horribly slow and loud loading screens
30mUsing a modern web to recreate 1980s horribly slow & loud loading screens
01h 04mCoding 4 Fun: 8-bit game emulation in .NET
56mEmulating a Game Boy in .NET 6
27mWriting an emulator in JavaScript?
45mEmulating a 6502 System in JavaScript
32mMaking an Emulator in JavaScript?
