A simple NTSC NES emulator written in C.
Games that use the following mapper chips are supported:
Mapper name | Mapper number |
NROM | 0 |
MMC1 | 1 |
UxROM | 2 |
CNROM | 3 |
MMC3 | 4 |
AxROM | 7 |
Color Dreams | 11 |
Ninja + BNROM | 34 |
Supports all of the original NES audio channels, which includes square, triangle, noise, and dmc audio channels.
Basic gamepad support for up to two players, currently, button layout is fixed to how it was on the original joypad.
- Install the required dependencies using your system's package manager
-
sudo apt install gcc make libsdl3-dev
-
sudo dnf install gcc make SDL3-devel
-
sudo pacman -S gcc make sdl3
- run
make
in the project root directory to create the binary
-
Install the Homebrew package manager
-
Install the required dependencies
brew install gcc make sdl3
-
run
make
in the project root directory to create the binary
-
Install
MSYS2
-
Launch the UCRT64 environment that MSYS2 created and run the following command inside the terminal to install the required packages:
pacman -S mingw-w64-ucrt-x86_64-gcc make mingw-w64-ucrt-x86_64-sdl3 p7zip git
-
Run the following commannd to download the repo:
git clone https://github.com/purpasmart96/nones.git
-
run
make
in the project root directory to create the binary
After building you should be able run the program via ./nones "game.nes"
1 -> 5
Set window size integer scale (1x, 2x, 3x ect. 5x max)
Esc
Exit emulator
F1
Enable/Disable CPU debug stats
F2
Soft Reset
F6
Pause/Unpause
F10
Step by one frame and pause
F11
Step by one instruction and pause