This is an NES emulator, written in Go. It's fairly new and very much a work in progress, so not all games run yet and not all features are implemented. Details are below.
$ sudo apt-get install libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev
$ go get -u github.com/0xe2-0x9a-0x9b/Go-SDL/sdl
$ go test
$ go build
$ brew install sdl sdl_image sdl_gfx
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig go get -u github.com/0xe2-0x9a-0x9b/Go-SDL/sdl
$ go test
$ go build
$ ./Fergulator path/to/game.nes
A - Z
B - X
Start - Enter
Select - Right Shift
Up/Down/Left/Right - Arrows
Save State - S
Load State - L
- NROM
- UNROM
- CNROM
- MMC1
- Super Mario Bros
- Contra
- Bionic Commando
- Blaster Master
- Double Dragon
- Final Fantasy
- Legend of Zelda
- Metroid
- Tetris
- Balloon Fight
- Adventure Island
- Castlevania
- Castlevania 2
- Dig Dug
- Donkey Kong
- Donkey Kong Jr.
- Duck Tales
- Excitebike
- Galaga
- Gun Smoke
- Hydlide
- Ice Climber
- Ice Hockey
- Kung Fu
- Lode Runner
- Mega Man
- Mega Man 2
- Metal Gear
- Prince of Persia
- Sound
- Second controller
- Scrolling and palettes on a number of MMC1 games
- Save states for some MMC1 games
- Some minor graphical glitches on screen boundary
- MMC3
- MMC5
- MMC2