Popularity
9.1
Declining
Activity
2.3
-
5,364
144
509

Programming language: Go
License: MIT License

nes alternatives and similar packages

Based on the "Other Software" category.
Alternatively, view nes alternatives based on common mentions on social networks and blogs.

  • syncthing

    Open Source Continuous File Synchronization
  • hugo

    10.0 9.8 nes VS hugo
    The world’s fastest framework for building websites.
  • The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
    Promo workos.com
    WorkOS Logo
  • croc

    Easily and securely send things from one computer to another :crocodile: :package:
  • restic

    Fast, secure, efficient backup program
  • Seaweed File System

    DISCONTINUED. SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. [Moved to: https://github.com/seaweedfs/seaweedfs]
  • Gor

    9.8 4.8 nes VS Gor
    GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
  • rkt

    9.7 0.4 nes VS rkt
    DISCONTINUED. An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM.
  • limetext

    Open source API-compatible alternative to the text editor Sublime Text
  • toxiproxy

    :alarm_clock: :fire: A TCP proxy to simulate network and system conditions for chaos and resiliency testing
  • confd

    Manage local application configuration files using templates and data from etcd or consul
  • LiteIDE

    9.5 5.8 L1 nes VS LiteIDE
    LiteIDE is a simple, open source, cross-platform Go IDE.
  • Comcast

    Simulating shitty network connections so you can build better systems.
  • drive

    Google Drive client for the commandline
  • scc

    9.1 8.2 nes VS scc
    Sloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go
  • Duplicacy

    A new generation cloud backup tool
  • heka

    DISCONTINUED. DEPRECATED: Data collection and processing made easy.
  • fleet

    DISCONTINUED. A Distributed init System.
  • blocky

    Fast and lightweight DNS proxy as ad-blocker for local network with many features
  • Docker

    Notary is a project that allows anyone to have trust over arbitrary collections of data
  • myLG

    Network Diagnostic Tool
  • Juju

    Orchestration engine that enables the deployment, integration and lifecycle management of applications at any scale, on any infrastructure (Kubernetes or otherwise).
  • Stack Up

    Super simple deployment tool - think of it like 'make' for a network of servers
  • snap

    DISCONTINUED. The open telemetry framework
  • GoBoy

    Multi-platform Nintendo Game Boy Color emulator written in Go
  • lgo

    8.3 0.0 nes VS lgo
    Interactive Go programming with Jupyter
  • Documize

    Modern Confluence alternative designed for internal & external docs, built with Go + EmberJS
  • Circuit

    Circuit: Dynamic cloud orchestration http://gocircuit.org
  • borg

    Search and save shell snippets without leaving your terminal
  • GoDNS

    A dynamic DNS client tool that supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc, written in Go.
  • vFlow

    Enterprise Network Flow Collector (IPFIX, sFlow, Netflow)
  • Plik

    Plik is a temporary file upload system (Wetransfer like) in Go.
  • shell2http

    Executing shell commands via HTTP server
  • peg

    7.4 3.6 nes VS peg
    Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator.
  • portal

    Portal is a quick and easy command-line file transfer utility from any computer to another.
  • Gokapi

    Lightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported.
  • Go Package Store

    An app that displays updates for the Go packages in your GOPATH.
  • Guora

    🖖🏻 A self-hosted Quora like web application written in Go 基于 Golang 类似知乎的私有部署问答应用 包含问答、评论、点赞、管理后台等功能
  • Postman

    CLI tool for batch-sending email via any SMTP server.
  • Leaps

    A pair programming service using operational transforms
  • gfile

    Direct file transfer over WebRTC
  • gocc

    Parser / Scanner Generator
  • sake

    :robot: sake is a task runner for local and remote hosts
  • mockingjay

    Fake server, Consumer Driven Contracts and help with testing performance from one configuration file with zero system dependencies and no coding whatsoever
  • Gebug

    Debug Dockerized Go applications better
  • ipe

    6.4 0.0 nes VS ipe
    DISCONTINUED. An open source Pusher server implementation compatible with Pusher client libraries written in GO
  • yai

    6.4 8.1 nes VS yai
    Your AI powered terminal assistant.
  • woke

    Detect non-inclusive language in your source code.
  • GoNB

    GoNB, a Go Notebook Kernel for Jupyter
  • ide

    6.0 0.0 nes VS ide
    A Go code editor. With debugging and Autocomplete. 一个 Go 代码编辑器,具有 DEBUGGING 和 AUTOCOMPLETE
  • tcpprobe

    Modern TCP tool and service for network performance observability.

Do you think we are missing an alternative of nes or a related project?

Add another 'Other Software' Package

README

Summary

This is an NES emulator written in Go.

Screenshots

Screenshots

Title Screens

http://www.michaelfogleman.com/static/nes/

Dependencies

github.com/go-gl/gl/v2.1/gl
github.com/go-gl/glfw/v3.1/glfw
github.com/gordonklaus/portaudio

The portaudio-go dependency requires PortAudio on your system:

To build portaudio-go, you must first have the PortAudio development headers and libraries installed. Some systems provide a package for this; e.g., on Ubuntu you would want to run apt-get install portaudio19-dev. On other systems you might have to install from source.

On Mac, you can use homebrew:

brew install portaudio

Installation

The go get command will automatically fetch the dependencies listed above, compile the binary and place it in your $GOPATH/bin directory.

go get github.com/fogleman/nes

Usage

nes [rom_file|rom_directory]
  1. If no arguments are specified, the program will look for rom files in the current working directory.

  2. If a directory is specified, the program will look for rom files in that directory.

  3. If a file is specified, the program will run that rom.

For 1 & 2, the program will display a menu screen to select which rom to play. The thumbnails are downloaded from an online database keyed by the md5 sum of the rom file.

Menu Screenshot

Controls

Joysticks are supported, although the button mapping is currently hard-coded. Keyboard controls are indicated below.

Nintendo Emulator
Up, Down, Left, Right Arrow Keys
Start Enter
Select Right Shift
A Z
B X
A (Turbo) A
B (Turbo) S
Reset R

Mappers

The following mappers have been implemented:

  • NROM (0)
  • MMC1 (1)
  • UNROM (2)
  • CNROM (3)
  • MMC3 (4)
  • AOROM (7)

These mappers cover about 85% of all NES games. I hope to implement more mappers soon. To see what games should work, consult this list:

NES Mapper List

Known Issues

  • there are some minor issues with PPU timing, but most games work OK anyway
  • the APU emulation isn't quite perfect, but not far off

Documentation

Interested in writing your own emulator? Curious about the NES internals? Here are some good resources: