ZX Spectrum emulator written in GO.
This is my take on ZX Spectrum emulator for the occasion of ZX Spectrum 40th aniversary. I always wanted to write an emulator and I also wanted to learn new programming language so here we are :-)
I also wrote an essay with some details about ZX Spectrum internals and emulator development.
There are 3 parts of the project:
- gumak - implementation of an emulator as a GO package
- gumak_sdl - SDL front-end for emulator that can be run and you can start programming in Basic or play your favourite game
- gumak_cbind - simple wrapper of gumak GO module to C so you can use it in a C/C++ project (or embed it in Unreal Engine if you wish)
The emulator is capable of running 48K ROM of the original ZX Spectrum as well as the newer 128K ROM of the ZX Spectrum 128K+ version. There is also a simple implementation of the original AY-3-8912 sound chip found in the newer versions of ZX Spectrum.