Skip to content

Nintendo Entertainment System emulator written in Golang

License

Notifications You must be signed in to change notification settings

retroenv/nesgoemu

Repository files navigation

nesgoemu - a pure Golang NES Emulator

Build status go.dev reference Go Report Card codecov

nesgoemu is a Nintendo Entertainment System (NES) emulator. It allows you to play your favorite classic NES games directly on your computer.

Features

  • Native Golang: Built entirely in Golang, ensuring a clean and maintainable codebase and making it easy to build and portable across platforms.
  • Lightweight: No CGO dependency, resulting in a smaller binary size and faster build times.
  • Flexible Interface: Runs without or with a SDL based user interface for streamlined usage.
  • Advanced Debugging: Supports outputting of CPU traces and undocumented 6502 CPU opcodes for in-depth analysis.

Installation

Your system needs to have a recent Golang version installed.

Check GUI installation to set up the GUI dependencies.

Installation Options:

  1. Stable Version:
go install github.com/retroenv/nesgoemu@latest

This installs the latest stable version and places the nesgoemu binary in your system's GOPATH/bin directory.

  1. Development Version:

The latest development version can be installed using:

git clone https://github.com/retroenv/nesgoemu.git
cd nesgoemu
go install .

This builds and install the emulator from the latest code in the development branch.

Usage

Emulate a ROM:

nesgoemu <your_rom_file.nes>

Options

usage: nesgoemu [options] <file to emulate>

  -a string
    	listening address for the debug server to use (default "127.0.0.1:8080")
  -c	console mode, disable GUI
  -d	start built-in webserver for debug mode
  -e int
    	entrypoint to start the CPU (default -1)
  -s int
    	stop execution at address (default -1)
  -t	print CPU tracing

About

Nintendo Entertainment System emulator written in Golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published