Monday, October 26, 2026 4,350 lists 78,101 records on file
List your app or device

  1. Home
  2. NES Emulators
  3. GoNES

GoNES

What it is

GoNES is a free, open-source NES emulator written in Go for Windows, macOS, Linux, and web browsers. In a browser, it runs through WebAssembly; the project links to a hosted instance. At startup, the app opens a file picker for a .nes ROM, and it can also be launched from a terminal with a ROM file argument. The project lists support for mappers 0, 1, 2, 3, 4, 7, 69, and 71, which it says cover 84.34% of official NES games. Keyboard controls for two players are configurable, and the listed bindings include saving and loading states and undoing those actions. GoNES creates a configuration file on first run, with its location documented for Windows, macOS, and Linux. Release downloads and macOS Homebrew installation are documented, as is installation from Go source. Building from source requires OpenGL development libraries because rendering uses Ebitengine. The project identifies Apache-2.0 as its license. Its README notes that the GUI renders but menu options still need to be added.

For and against

For

  • Free and open source under Apache-2.0
  • Runs on Windows, macOS, Linux, and web
  • Supports configurable keyboard bindings for two players
  • Offers save, load, and undo state bindings

Against

  • Mapper support covers 84.34% of official NES games
  • GUI menu options still need to be added
  • Source builds require OpenGL development libraries

The verdict

GoNES offers several installation routes, including a hosted browser version, release downloads, Homebrew, and Go source. Its listed mapper support and unfinished GUI menus are worth considering before choosing it.

Who it suits

GoNES may suit players looking for a free NES emulator on desktop or in a browser. It also offers configurable two-player keyboard controls and save-state bindings.

Plans and prices

GoNES

Free

NES emulator; source and release downloads available

Every plan, in full

On the record

Browser play
GoNES supports emulation in a web browser by compiling to WASM, and the README links to a hosted instance.github.com · read 4 Oct 2026
Browser version
The emulator can run in a web browser by compiling to WebAssembly, and the README links to a hosted instance.github.com · read 8 Oct 2026
Build requirement
Building from source requires Go and OpenGL development libraries for the Ebiten rendering library.github.com · read 8 Oct 2026
Command-line options
The command documentation lists options for audio, configuration, step debugging, fullscreen, palette files, pause on unfocused windows, resume, UI scale, and trace logging.github.com · read 8 Oct 2026
Configuration
GoNES generates a configuration file on first run, with documented locations for Windows, macOS, and Linux.github.com · read 8 Oct 2026
Controller input
The README documents default key bindings for two players, and says keys are configurable.github.com · read 8 Oct 2026
Controls
The README lists configurable keyboard controls, including Player 1 and Player 2 bindings.github.com · read 4 Oct 2026
Development status
The README says the GUI renders but menu options still need to be added.github.com · read 8 Oct 2026
Downloads
The README says automated builds are uploaded during releases and links to release download files.github.com · read 4 Oct 2026
Emulation coverage
The README lists mappers 0, 1, 2, 3, 4, 7, 69, and 71 as supported, covering 84.34% of official NES games.github.com · read 8 Oct 2026
Installation
The README documents installation through Homebrew on macOS, release binaries, the browser version, and Go source installation.github.com · read 8 Oct 2026
License
The repository identifies its license as Apache-2.0.github.com · read 8 Oct 2026
macOS installation
The README documents installation through Homebrew with `brew install gabe565/tap/gones --no-quarantine`.github.com · read 4 Oct 2026
Maker
The GitHub profile identifies Gabe Cook as the project maker and lists Oklahoma City, Oklahoma, USA as his location.github.com · read 4 Oct 2026
Mapper support
The README lists mappers 0, 1, 2, 3, 4, 7, 69, and 71, covering 84.34% of official NES games according to the project.github.com · read 4 Oct 2026
Purpose
GoNES is an NES emulator written in Go.github.com · read 8 Oct 2026
Release features
The v0.2.0 release notes list per-game configuration overrides and NES utility commands for ROM and graphics data tasks and Game Genie codes.github.com · read 8 Oct 2026
ROM loading
The app opens a file picker for a .nes file and can also be launched from a terminal with a ROM file argument.github.com · read 8 Oct 2026

The review

GoNES is a free NES emulator written in Go, with desktop and browser options. It best suits players comfortable with keyboard controls who want flexible launch methods and save states. Its partial mapper coverage and unfinished menus are meaningful limits for anyone seeking broad compatibility or a polished interface.

Overview

GoNES can open a .nes file through a startup file picker or launch from a terminal with a ROM argument. It also runs in a browser through WebAssembly, with a hosted instance linked by the project. These routes make it adaptable to different setups, though they do not make its compatibility comprehensive.

Key features

The project lists support for mappers 0, 1, 2, 3, 4, 7, 69, and 71, which it says cover 84.34% of official NES games. That is a useful range, but players should confirm support for a specific game rather than assume it will run. The GUI renders, while menu options still need to be added; those who expect a finished, menu-driven experience should look elsewhere.

Keyboard bindings are configurable for Player 1 and Player 2. Save-state, load-state, and undo save/load bindings provide ways to preserve or recover progress beyond a game's own save system. GoNES creates a configuration file on first run, with locations documented for Windows, macOS, and Linux.

Command-line options cover audio, configuration, step debugging, fullscreen, palette files, pausing when an application window loses focus, resume behavior, UI scale, and trace logging. The v0.2.0 release notes also describe per-game configuration overrides and NES utility commands for ROM and graphics-data tasks and Game Genie codes. These capabilities favor users willing to work with command-line controls; they are less relevant to someone seeking a simple, complete GUI.

Pricing

GoNES costs nothing. It is open source under the Apache-2.0 license, with no paid tier or free trial. The free plan gives users the emulator, source, and release downloads without a stated seat or usage quota.

Platforms

GoNES supports Windows, macOS, Linux, and web browsers. macOS users can install it through Homebrew; release builds are published as downloads, and Go source installation is documented. Building from source requires OpenGL development libraries because rendering uses Ebitengine, a consideration for developers compiling it themselves.

Who it's for

Choose GoNES if you want a no-cost NES emulator with browser access, multiple installation routes, configurable two-player keyboard controls, and save-state options. It is a weaker fit if your priority is full NES-library coverage or a finished graphical menu system.

Pros and cons

  • Pros: Free and open source, with browser, release, Homebrew, and Go-source routes to use it.
  • Pros: Configurable controls for two players and save/load state bindings, including undo options.
  • Cons: The supported mapper set covers 84.34% of official NES games, not the whole catalog.
  • Cons: The GUI's menu options remain unfinished, and source builds require OpenGL development libraries.

Alternatives

For more NES emulator options, see NES Emulators. Choose Nesbit if you want an open-source option for iOS or macOS. Lynx.emu is a paid alternative at $2.99, paid once, for Android, iOS, or Linux users who are comfortable supplying their own ROMs. JSNES is a free, open-source JavaScript NES emulator library for Linux and the web. NESER is another free option for Windows, macOS, Linux, and the web.

Nestalgia is a free option for Linux, macOS, and Windows. Nintendulator is a free, open-source Win32 emulator; its description estimates full speed requires a 1500MHz or faster CPU. HalfNES is free for Linux, macOS, and Windows, but has no savestates and requires Java 8 or newer. Jnes is freeware for Windows that cannot be sold or distributed through commercial channels.

Verdict

GoNES is a sound choice for players who want a free emulator with browser access, configurable keyboard controls, and flexible installation. Its main advantages are practical ways to launch and manage games; its main drawbacks are incomplete mapper coverage and unfinished menus. If a particular ROM is supported and a polished GUI is not essential, it is worth considering. Otherwise, choose an alternative with a better fit for your compatibility or interface needs.

Alternatives to GoNES

Every alternative, ranked