EVERYTHING XIAOMI
Get listed

GoNES

GoNES is a free, open-source NES emulator written in Go, available for Windows, macOS, Linux, and web browsers.

Place
#1 of 26
Score
6.9
GoNES's website

What GoNES is

GoNES is a free, open-source NES emulator written in Go, available for Windows, macOS, Linux, and web browsers. In a browser, it runs through WebAssembly, and the project links to a hosted version. On desktop, it opens a file picker at startup for selecting a .nes ROM; it can also be started 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 bindings can be configured for two players, and controls include saving and loading states as well as undoing those actions. GoNES creates a configuration file on first run, with its location documented for Windows, macOS, and Linux. Release downloads are available, and macOS installation through Homebrew is documented. Building from source requires OpenGL development libraries because its rendering uses Ebitengine. The project is licensed under Apache-2.0.

Good

  • Runs on Windows, macOS, Linux, and in browsers
  • Opens .nes files or accepts a ROM argument
  • Supports configurable keyboard bindings for two players
  • Includes save, load, and undo state bindings

Watch out

  • Listed mapper support covers 84.34% of official NES games
  • Building from source requires OpenGL development libraries

Who it suits

GoNES suits players looking for a free NES emulator on desktop or in a browser. It may also fit users who want configurable two-player keyboard controls and save states.

Verdict

GoNES offers several ways to run NES games, including a browser option and desktop downloads. Check its listed mapper support if compatibility with a particular game matters.

Plans and prices

From GoNES's own pricing page, checked 8 Oct 2026.

All about pricing
PlanPriceWhat it gives you
GoNESFreeNES emulator; source and release downloads available

The facts

Each one read from GoNES's own pages, with the date it was checked.

Where it runs

Browser play
GoNES supports emulation in a web browser by compiling to WASM, and the README links to a hosted instance.checked 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.checked 8 Oct 2026
macOS installation
The README documents installation through Homebrew with `brew install gabe565/tap/gones --no-quarantine`.checked 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.checked 4 Oct 2026

What it does

Build requirement
Building from source requires Go and OpenGL development libraries for the Ebiten rendering library.checked 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.checked 8 Oct 2026
Configuration
GoNES generates a configuration file on first run, with documented locations for Windows, macOS, and Linux.checked 8 Oct 2026
Controller input
The README documents default key bindings for two players, and says keys are configurable.checked 8 Oct 2026
Controls
The README lists configurable keyboard controls, including Player 1 and Player 2 bindings.checked 4 Oct 2026
Development status
The README says the GUI renders but menu options still need to be added.checked 8 Oct 2026
Downloads
The README says automated builds are uploaded during releases and links to release download files.checked 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.checked 8 Oct 2026
Installation
The README documents installation through Homebrew on macOS, release binaries, the browser version, and Go source installation.checked 8 Oct 2026
License
The repository identifies its license as Apache-2.0.checked 8 Oct 2026
Purpose
GoNES is an NES emulator written in Go.checked 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.checked 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.checked 8 Oct 2026
Save states
The README lists keyboard shortcuts for saving, loading, and undoing save states.checked 8 Oct 2026
Security
The repository page shows a Security and quality section with 0 items.checked 8 Oct 2026
Source installation
The README documents source installation with Go using `go install gabe565.com/gones@latest`.checked 4 Oct 2026
Terminal use
GoNES can be launched from a terminal with a ROM file argument.checked 4 Oct 2026

The company

Maker
The GitHub profile identifies Gabe Cook as the project maker and lists Oklahoma City, Oklahoma, USA as his location.checked 4 Oct 2026
The full review of GoNES

Overview

GoNES is a free NES emulator for desktop systems and web browsers. It suits players who value flexible ways to launch games and configurable two-player keyboard controls, but its supported mapper set leaves some of the NES library out of reach.

Its appeal is practical rather than broad: you can open a ROM from a file picker, launch one from a terminal, or use the browser build. The unfinished menu options and partial mapper coverage make it a less suitable pick for players who want comprehensive compatibility or a polished menu-driven interface.

Key features

At startup, GoNES opens a file picker for a .nes file; terminal users can instead pass a ROM as an argument. A hosted WebAssembly build provides another way to run it, without installing a desktop version. Together, these routes give players a choice between a direct graphical launch, command-line use, and browser play.

Keyboard bindings are configurable for two players. Save-state, load-state, and undo save/load bindings give players ways to preserve or recover progress outside a game's own save system. GoNES creates a configuration file on first run, with its location documented for Windows, macOS, and Linux.

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's a meaningful range, but not full-library compatibility; check the mapper for a particular game before relying on GoNES as your main emulator. The GUI renders, though menu options still need to be added, which limits its appeal to players expecting a finished menu-driven experience.

Command-line options include audio, configuration, step debugging, fullscreen, palette files, pausing when a window loses focus, resuming, UI scaling, and trace logging. Release notes also describe per-game configuration overrides and utility commands for working with ROM and graphics data and Game Genie codes. These options add flexibility, particularly for users comfortable with command-line tools, but the project is less compelling for players seeking a complete graphical interface.

Pricing

GoNES is free: its plan costs nothing, and the project is open source under the Apache-2.0 license. There is no paid tier or free-trial decision to weigh. Release downloads and Go source installation give desktop users two installation routes; compiling from source requires Go and OpenGL development libraries.

Platforms

GoNES supports Windows, macOS, Linux, and web browsers. macOS users can install through Homebrew, while release downloads and Go source installation provide other desktop options. Browser play is available through a hosted WebAssembly build. The project also documents installation through Go, making it a natural route for users who prefer building or installing software from source.

Who it's for

GoNES is a good fit for players who want a free emulator with browser access, configurable two-player keyboard controls, save states, or command-line options. It also suits technically minded users who value source installation and per-game configuration. Players with a specific ROM in mind should verify mapper support first; those who want a finished menu interface may prefer another emulator.

Pros and cons

  • Pros: Browser, desktop, and terminal launch options let users choose how to start a game.
  • Pros: Configurable two-player bindings and save-state controls offer useful play and recovery options.
  • Pros: Free, open-source distribution includes release downloads and source installation.
  • Cons: The listed mapper support covers 84.34% of official NES games, so some titles may not be supported.
  • Cons: Menu options still need to be added, leaving the GUI short of a finished menu-driven experience.
  • Cons: Building from source requires Go and OpenGL development libraries, a hurdle for users who want to compile it themselves.

Alternatives

Compare NES emulators if you want to weigh GoNES against other options. NESER is another free option for Linux, macOS, web, and Windows. Nestalgia is free and runs on Linux, macOS, and Windows. HalfNES is free, but has no save states and requires Java 8 or newer. JSNES is a free open-source JavaScript NES emulator library for Linux and web. binjnes is free, with web and build-from-source versions, for Linux, macOS, and web. FCEUX is a free option for NES, Famicom, Famicom Disk System, and Dendy emulation, with Win32 and Qt/SDL ports. Nestopia Undead Edition is free and open source under GPL-2.0 for Linux, macOS, and Windows. NET-NES is free software under the MIT License for Linux, macOS, and Windows.

Verdict

Choose GoNES if you want a free NES emulator with browser access, flexible launching, configurable two-player controls, and save states. Its mapper coverage and unfinished menu options are the clearest reasons to look elsewhere, especially if compatibility with a particular game or a complete graphical interface matters most.

Getting started

  1. Open the hosted browser instance linked from the project website to play in a browser.
  2. Download a release build from the release files linked by the project.
  3. On macOS, install through Homebrew with `brew install gabe565/tap/gones --no-quarantine`.
  4. Install from source with Go using `go install gabe565.com/gones@latest`.
  5. Choose a .nes file in the startup file picker, or launch GoNES from a terminal with a ROM file argument.

Questions

Is GoNES free?

Yes. The listed plan is free, and the project identifies it as open source under Apache-2.0.

Which platforms does GoNES support?

The listed platforms are Windows, macOS, Linux, and web browsers.

Can I play GoNES in a browser?

Yes. It runs in a browser through WebAssembly, and the project links to a hosted instance.

How do I load a ROM?

The app opens a file picker at startup for a .nes file. You can also launch it from a terminal with a ROM file argument.

What does GoNES support for controls and save states?

Keyboard controls for Player 1 and Player 2 are configurable. Key bindings include saving and loading states and undoing those actions.

Who makes GoNES?

The project maker is Gabe Cook.

Alternatives to GoNES

All alternatives
  1. 1

    NESER

    Free planWebLinuxmacOSWindows
    6.9Free plan
  2. 2

    JSNES

    Free planWebLinux
    6.5Free plan
  3. 3

    Nestalgia

    Free planLinuxmacOSWindows
    6.5Free plan
  4. 4

    FCEUX

    Free planLinuxmacOSWindows
    6.3Free plan
  5. 5

    Nintendulator

    Free planWindows
    6.3Free plan
  6. 6binjnes logo

    binjnes

    Free planWebLinuxmacOS
    6.1Free plan