https://github.com/amhndu/SimpleNES
An NES emulator in C++
https://github.com/amhndu/SimpleNES
c-plus-plus emulator nes-emulator sfml
Last synced: about 1 month ago
JSON representation
An NES emulator in C++
- Host: GitHub
- URL: https://github.com/amhndu/SimpleNES
- Owner: amhndu
- License: gpl-3.0
- Created: 2016-06-01T03:54:55.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2025-01-05T07:06:47.000Z (4 months ago)
- Last Synced: 2025-03-26T01:01:55.919Z (about 2 months ago)
- Topics: c-plus-plus, emulator, nes-emulator, sfml
- Language: C++
- Homepage:
- Size: 218 KB
- Stars: 4,928
- Watchers: 95
- Forks: 1,118
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-emulators - SimpleNES
- awesome-emulators-android - SimpleNES
README
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
------------------------







Videos
------------
[YouTube Playlist](https://www.youtube.com/playlist?list=PLiULt7qySWt2VbHTkvIt9kYPMPcWt01qN)Compiling
-----------You need:
* [SFML 2.0+](#installing-sfml) development headers and library
* C++11 compliant compiler
* [CMake](https://cgold.readthedocs.io/en/latest/first-step/installation.html) build systemCompiling 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 emulatorFor 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](https://github.com/amhndu/SimpleNES/blob/master/.github/workflows/compile.yml) for platform specific instructionsDownload SimpleNES
-----------------
1. Download an executable based on your platform from the latest run on [Github Actions](https://github.com/amhndu/SimpleNES/actions)
2. Install [sfml](#installing-sfml)Installing SFML
-----------------
* Windows: `vcpkg install sfml`. Alterntaively, download from [SFML](https://www.sfml-dev.org/download/sfml/2.6.2/)
* 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