I wrote a ZX Spectrum emulator in Go
Hi everyone,
I decided to take on the challenge of writing a full 8-bit emulator (Sinclair ZX Spectrum) from scratch using Go.
It’s been a great project for diving deep into things like Z80 instruction sets, memory mapping, and managing state at a low level without using C. Handling the timing-critical aspects of the Speccy in Go was an interesting hurdle, but it's coming along well.
It’s called zx_go. It can currently load tape files and execute the original ROM code. I’m sharing it now because I’d love some fresh eyes on the code - specifically how I’m handling the CPU loop and memory access.
If you’re into retro tech or systems programming in Go, I’d appreciate any thoughts or feedback you have on the implementation.