NES emulator, written in Go
Go Makefile
Latest commit 6b31add Feb 25, 2016 @scottferg Use vendored deps
Permalink
Failed to load latest commit information.
nes Provide a NoopEventHandler. Feb 10, 2015
test_roms Pass all of the cpu_timing_test tests Dec 3, 2012
vendor Use vendored deps Feb 25, 2016
.gitignore Write battery-backed RAM to disk on shutdown, restore on launch Oct 6, 2012
.travis.yml Fix travis builds Oct 9, 2012
COPYING Add COPYING file Apr 16, 2013
README.md Merge pull request #15 from xaviershay/debugger Feb 10, 2015
audio.go
controller.go Revert "Video working on SDL2 bindings" Oct 1, 2013
main.go Workaround race condition in startup causing SEGV in glewInit. Issue #13 Feb 10, 2015
shaders.go
video.go Use vendored deps Feb 25, 2016

README.md

Fergulator

Build Status

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

Requires Go 1.1

From your GOPATH:

    $ sudo apt-get install libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libglew1.6-dev libxrandr-dev
    $ go get github.com/scottferg/Fergulator

To build on OSX

You'll need to install XQuartz in order to run on OSX.

Requires Go 1.1

From your GOPATH:

    $ brew install sdl --with-x11-driver
    $ brew install sdl_gfx sdl_image glew
    $ go get github.com/scottferg/Fergulator

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

    Reset - R

    1:1 aspect ratio - 1
    2:1 aspect ratio - 2
    3:1 aspect ratio - 3
    4:1 aspect ratio - 4

    Emulate overscan - O
    Toggle audio - I

    Toggle pause - P
    Frame Advance - \
    Reload Debug JS - D
    Trigger Mode Event - M

Supported Mappers

  • NROM
  • UNROM
  • CNROM
  • MMC1
  • MMC2
  • MMC3
  • MMC5
  • ANROM

Tested games that run well or are playable

List is in the wiki