u/KangoLemon

▲ 19 r/EmuDev

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.

Repo: https://github.com/conorarmstrong/zx_go

reddit.com
u/KangoLemon — 11 days ago
▲ 53 r/zxspectrum+1 crossposts

Hey everyone,

I wanted to share a project I’ve been pouring my time into lately. It’s called zx_go, and it’s a full Sinclair ZX Spectrum emulator written entirely in Go.

There are plenty of emulators out there, but I really wanted to see if I could recreate the hardware logic myself using a modern language. It’s been a hell of a rabbit hole - getting the Z80 timing right and handling the display memory has been a fun challenge.

It’s at the point now where it can load and run software, and I’m working on polishing the edges. I figured I’d share it here to see if any fellow Speccy fans wanted to take a look or try running some of their favorite .tap files through it.

I'm still tweaking the performance and adding features, so if you have any feedback or run into bugs with specific games, definitely let me know!

Check it out here: https://github.com/conorarmstrong/zx_go

u/KangoLemon — 24 days ago