A simple, (hopefully) cycle-accurate NES emulator.
Builds with CMake. Requires SDL.
sudo apt install libsdl2-dev
git clone https://github.com/matthew-reynolds/nesemu.git
mkdir nesemu/build
cd nesemu/build
cmake ..
make
Usage: nesemu [options]... file.nes
-h --help print this usage and exit
-s --save=file.sav specify the savefile to use. Default {ROMCRC32}.sav
-o --official allow unofficial opcodes
-q --quiet disable all logging
-v --verbose[=abceimpw] specify the log levels. If no argument is specified,
all messages are displayed. Every level implies all
log levels (eg. INFO implies WARNING and ERROR)
a = APU DEBUG messages
b = bus DEBUG messages
c = CPU DEBUG messages
e = ERROR messages
i = INFO messages
m = mapper DEBUG messages
p = PPU DEBUG messages
w = WARNING messages
If neither -q nor -v are specified, the default log level of
INFO|WARNING|ERROR is used.
| NES | Keyboard |
|---|---|
| D-Pad | Arrow keys |
| A | Z |
| B | X |
| Start | Enter |
| Select | Space |
| Reset | R |
| Volume down | Left bracket [ |
| Volume up | Right bracket ] |
| Unlimit speed | Tab |
| Debug: PPU nametable viewer | 1 |
| Debug: PPU sprite viewer | 2 |
| Debug: PPU pattern table viewer and palette cycle | 3 |