Skip to content

zz9tf/SimpleNES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleNES

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

Currently WIP.

Only games with atmost 2 program banks, 1 character banks and no "mapper" are supported.
Only one controller is setup at the moment.

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.
  • Wrecking Crew
  • Ice Climber
  • Mario Bros.
  • Donky Kong
  • Donkey Kong Jr.
  • Arkanoid
  • Balloon Fight
  • Tennis
  • Elevator Action
  • Excitebike

Here's a big list of games that match the supported specs from SimpleNES.
(Unlike the list above, these aren't tested. Some may or may not work)

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5

Download

Executables:

Windows 32-bit
Linux 64-bit

ROMs available here for testing.

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

Running

Just pass the path to a .nes image like

$ ./SimpleNES ~/Games/super_mario_bros.nes

For supported command line options, try

$ ./SimpleNES -h

Controller

These keybindings are hard-coded (for Player 1)

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

F2 pauses/resumes emulation

License

This code is in public domain until an Open Source License is picked.
NES ROMs are subject to the respective studio's terms.

About

An NES emulator in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 83.0%
  • CMake 16.2%
  • Objective-C 0.8%