Skip to content

amhndu/SimpleNES

Repository files navigation

SimpleNES

An NES emulator written in C++ for nothing but fun.

Roughly 50-60% of games should work (ie. games that use either no mapper or mappers 1, 2, 3 and experimental support for 4, 7, 66 and 11).

Examples of games that have been tested to run (but NOT limited to):

(USA/Japan or World versions only i.e. NTSC compatible)

  • Super Mario Bros.
  • Contra
  • Adventure Island
  • Ninja Gaiden
  • Wrecking Crew
  • Megaman and Megaman 2
  • Mario Bros.
  • Donky Kong and Donkey Kong Jr.
  • Battle City
  • Paperboy
  • Legend of Zelda
  • Pacman
  • Tennis
  • Excitebike
  • Nightmare Elm Street
  • Cabal
  • Battletoads
  • Arch Rivals
  • etc...

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 6 Screenshot 6

Videos

YouTube Playlist

Compiling

You need:

  • SFML 2.0+ development headers and library
  • C++11 compliant compiler
  • CMake build system

Compiling is straight forward with cmake, just run cmake on the project directory with CMAKE_BUILD_TYPE=Release and you'll get Makefile or equivalent for your platform, with which you can compile the emulator

For e.g., on Linux/OS X/FreeBSD:

$ git clone https://github.com/amhndu/SimpleNES
$ cd SimpleNES
$ mkdir build/ && cd build/
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make -j4    # Replace 4 with however many cores you have to spare

See also: compile.yaml for platform specific instructions

Download SimpleNES

  1. Download an executable based on your platform from the latest run on Github Actions
  2. Install sfml

Installing SFML

  • Windows: vcpkg install sfml. Alterntaively, download from SFML
  • Debian/Ubuntu/derivates: sudo apt install -y libsfml-dev
  • Arch/etc: sudo pacman -S sfml
  • MacOS: brew install sfml

Running

Just pass the path to a .nes image like

$ ./SimpleNES ~/Games/SuperMarioBros.nes

To set size of the window,

$ ./SimpleNES -w 600 ~/Games/Contra.nes

For supported command line options, try

$ ./SimpleNES -h

Controller

Keybindings can be configured with keybindings.conf

Default keybindings:

Player 1

Button Mapped to
Start Return/Enter
Select Right Shift
A J
B K
Up W
Down S
Left A
Right D

Player 2

Button Mapped to
Start Numpad9
Select Numpad8
A Numpad5
B Numpad6
Up Up
Down Down
Left Left
Right Right
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy