NES Emulator written in go
Uses the 2 libraries from github.com/faiface 2D game library: github.com/faiface/pixel audio library: github.com/faiface/beep
Also, optionally uses the portaudio library: github.com/gordonklaus/portaudio
Requirements: Golang, MinGW toolchain, Portaudio
pacman -S --needed base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain
echo 'export PATH=/mingw64/bin:$PATH' >> ~/.bashrc
pacman -S mingw64/mingw-w64-x86_64-portaudio
Install golang from https://golang.org/dl/
go get github.com/tiagolobocastro/gones
Requirements: Golang, X dev, Portaudio
Ubuntu:
apt install libgl1-mesa-dev xorg-dev
Arch:
pacman -S xorg-server-devel
Ubuntu:
apt install portaudio19-dev
Arch:
pacman -S base-devel portaudio
go get github.com/tiagolobocastro/gones
gones --help
Usage of gones:
-audio string
beep, portaudio or nil (default "beep")
-logaudio
log audio sampling average every second (debug)
-rom string
path to the iNes Rom file to run
-verbose flag
verbose logs (debug only)
-freerun flag
run as fast as possible with double buffered sync (debug only)
-spritelimit flag
limit number of sprites per scanline to 8 (true to the NES)
NES -> Keyboard
A -> S
B -> A
Select -> LeftShift
Start -> Enter
Directional -> Directional
Turbo -> not implemented
These can be used to soft reset the emulator and also save/load state (especially useful on those trickier levels ;) )
Reset -> LeftCtrl + R
Save state -> LeftCtrl + S
Load state -> LeftCtrl + L