Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
NES emulator, written in Go
Go
tree: 7d20113000

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
test_roms
.gitignore
.travis.yml
6502.go
6502_test.go
README.md
controller.go
disassembler.go
machine.go
memory.go
memory_test.go
mmc1.go
mmc1_test.go
nametable.go
palette.go
ppu.go
ppu_test.go
rom.go
video.go

README.md

Fergulator

alt text

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.

alt text

To build on Linux

    $ 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

To build on OSX

    $ brew install sdl sdl_image sdl_gfx
    $ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig go get -u github.com/0xe2-0x9a-0x9b/Go-SDL/sdl
    $ go test
    $ go build

Run the emulator

    $ ./Fergulator path/to/game.nes

Controls

    A - Z
    B - X
    Start - Enter
    Select - Right Shift
    Up/Down/Left/Right - Arrows

    Save State - S
    Load State - L

Supported Mappers

  • NROM
  • UNROM
  • CNROM
  • MMC1

Tested games that run well or are playable

  • Super Mario Bros
  • Contra
  • Bionic Commando
  • Blaster Master
  • Double Dragon
  • Final Fantasy
  • Tecmo Bowl
  • Ninja Gaiden
  • 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

What isn't working

  • 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

Next planned mappers

  • MMC3
  • MMC5
  • MMC2
Something went wrong with that request. Please try again.