ferg
Re:An NES emulator written in Go
on Thursday January 08, 2015 @01:14AM (#8855219)
Oh hey there ;)
3-player Bomberman 2 was also a big hit
Show HN: Dynamically resizing swipe library for Android
Re:Fergulator - NES emulator, written in Go
on Tuesday April 16, 2013 @05:16PM (#5560964)
It's mostly the steep curve of learning the platform you're trying to emulate. Start here: http://emu-docs.org/ and read everything you can get your hands on.
Begin with the CPU and start emulating that. Then just start adding hardware bit by bit. It makes a lot more sense as you get into it.
For NES emulation, the community at nesdev.com is amazing for assistance if you get stumped.
Re:Fergulator - NES emulator, written in Go
on Tuesday April 16, 2013 @02:22PM (#5559835)
The audio bindings are due to the excellent Go-SDL package. Nevermind my own fork, that was just to remove some unneeded stuff to fix compilation on OSX.
Re:Fergulator - NES emulator, written in Go
on Tuesday April 16, 2013 @02:21PM (#5559828)
Nothing, just a remnant from aggressive debugging. I had a default clause in there at some point probably.
Show HN: A Dropbox library for Go
Re:Show HN: I made my first NES emulator, written in Go
on Friday October 05, 2012 @02:26PM (#4618037)
Yeah I hear you. It can be difficult to follow if you're unfamiliar with the landscape is all. Maybe start things off by watching how the CPU works. Both the CPU and PPU work via a Step() function that is the entry-point for their respective functionality.
Re:Show HN: I made my first NES emulator, written in Go
on Friday October 05, 2012 @11:47AM (#4617328)
Thanks! Emulators are pretty tricky to learn, especially if you've never written one before. Between http://emu-docs.org/?page=NES and http://nesdev.com/ you'll find all the information needed.
If you look in the video and controller code you'll see that Go makes handling the concurrency there very easy. It also made testing really simple to add in without a ton of effort. Couple that with the fact that it's super clean and runs really fast on every machine I've tried on, it's held up pretty well for this type of project.