Comments:"Go, the language for emulators | Dave Cheney"
URL:http://dave.cheney.net/2013/01/09/go-the-language-for-emulators
So, I hear you like emulators. It turns out that Go is a great language for writing retro-computing emulators. Here are the ones that I have tried so far:
I really liked this one because it avoids the quagmire of OpenGL or SDL dependencies and runs in your web browser. I had a little trouble getting it going so if you run into problems remember to execute the trs80
command in the source directory itself. If you’ve used go get github.com/lkesteloot/trs80
then it will be $GOPATH/src/github.com/lkesteloot/trs80
.
GoSpeccy was the first emulator written in Go that I am aware of, Andrea has been quietly hacking away well before Go hit 1.0. I’ve even been able to get GoSpeccy running on a Raspberry Pi, X forwarded back to my laptop. Here is a screenshot running the Fire104b intro by Andrew Gerrand
Like GoSpeccy, Fergulator shows the power of Go as a language for writing complex emulators, and the power of go get
to handle packages with complex dependencies. Here are the two commands that took me from having no NES emulation on my laptop, to full NES emulation on my laptop.
lucky(~) sudo apt-get install libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libglew1.6-dev libxrandr-dev lucky(~) % go get github.com/scottferg/Fergulator
What’s this? Another emulator for Andrea Fazzi ? Why, yes it is. Again, super easy to install with go get -v github.com/remogatto/sms
. Sadly there are no sample roms included with sms due to copyright restrictions, so no screenshot. Update: Andrea has included an open source ROM so we can have a screenshot.
Update: Several Gophers from the wonderful Go+ community commented that there are still more emulators that I haven’t mentioned.