brew install gabe565/tap/gones --no-quarantineAutomated builds are uploaded during the release process. See the latest release for download links.
GoNES supports emulation in a web browser by compiling to WASM.
A hosted instance is available at gones.gabe565.com.
Click to expand
Rendering uses hajimehoshi/ebiten which requires OpenGL development libraries to compile. See ebiten install steps.
Make sure you have Go and the requirements installed, then run:
go install gabe565.com/gones@latestWhen started, GoNES will open a file picker. Choose the .nes file to start emulation.
Click to expand
GoNES also supports being launched from a terminal.
gones ROM_FILESee docs for the full command line usage documentation.
A configuration file will be generated the first time GoNES is run. Depending on your operating system, the file will be available at:
- Windows: 
%AppData%\gones\config.toml - macOS: 
~/Library/Application Support/gones/config.toml - Linux: 
~/.config/gones/config.toml 
An example configuration is also available at config_example.toml.
Keys are configurable, but the default values are listed below.
| Nintendo | Emulator | 
|---|---|
| A | M | 
| B | N | 
| Directions | WASD | 
| Start | Enter | 
| Select | Right Shift | 
| A (Turbo) | K | 
| B (Turbo) | J | 
Click to expand
| Nintendo | Emulator | 
|---|---|
| A | Num Pad 3 | 
| B | Num Pad 2 | 
| Directions | Home/Del/End/PgDn | 
| Start | Num Pad Enter | 
| Select | Num Pad Plus | 
| A (Turbo) | Num Pad 6 | 
| B (Turbo) | Num Pad 5 | 
| Action | Key | 
|---|---|
| Save State | F1 | 
| Load State | F5 | 
| Undo Save State | Shift+F1 | 
| Undo Load State | Shift+F5 | 
| Fast Forward | F (Hold) | 
| Reset | R (Hold) | 
| Toggle Fullscreen | F11 | 
| Screenshot | \ | 
Click to expand
| Action | Key | 
|---|---|
| Toggle step debugging | ` | 
| Toggle stdout trace log (when step debug enabled) | Tab | 
| Step to next frame | 1 | 
| Run to next render | 2 | 
-  CPU implementation
- CPU is stable, and 
nestest.nespasses. 
 - CPU is stable, and 
 -  Cartridge implementation
- Support for mappers
 -  Common mappers implemented
- Supported mappers: 0, 1, 2, 3, 4, 7, 69, 71 (84.34% of official NES games)
 
 
 -  PPU implementation (graphics)
- Background rendering
 - Sprite rendering
 
 -  GUI
- Rendering works, but menu options need to be added.
 
 -  Basic controller support
- Player 1
 - Player 2
 - External controllers
 
 - APU implementation (audio)
 - Save file for games with batteries
 - Save states
 -  Configuration (remap controllers, video config, sound config, etc)
- Config file
 - Config UI
 
 - Cheats