This is an NES emulator. It implements Mapper0-4, which cover about 80% of iNes rom. The following games have been tested, other games may or may not work:
- Super Mario Bros.
- Battle City
- Contra
- Teenage Mutant Ninja Turtles
- Double Dragon
- Zelda
./NesEmulator <nes file path>
Button | Mapped to |
---|---|
A | J |
B | K |
Select | Space |
Start | Enter |
Up | W |
Down | S |
Left | A |
Right | D |
Button | Mapped to |
---|---|
A | Num1 |
B | Num2 |
Select | Right Shift |
Start | Num0 |
Up | Up |
Down | Down |
Left | Left |
Right | Right |
Button | Effect |
---|---|
R | Reset |
I | Quick Save |
L | Quick Restore |
- A compiler supporting C++20.
- Python3 installed.
- CMake installed.
-
Install Conan
pip install conan -U conan profile detect --force
-
Clone and Build
Windows
git clone https://github.com/ocfbnj/NesEmulator.git cd NesEmulator conan install . --build=missing cmake --preset=conan-default cmake --build --preset=conan-release
Linux, macOS
git clone https://github.com/ocfbnj/NesEmulator.git cd NesEmulator conan install . --build=missing cmake --preset=conan-release cmake --build --preset=conan-release
Now, you can find the binary in build
directory.
Developing an NES emulator is exciting and interesting 😀. If you also want to develop your own one, you can refer to the following tutorials and references. ❤️
- https://bugzmanov.github.io/nes_ebook
- https://www.youtube.com/playlist?list=PLrOv9FMX8xJHqMvSGB_9G9nZZ_4IgteYf
- https://www.jianshu.com/u/daef9bb95a24
- https://github.com/bugzmanov/rustness_monster
- https://github.com/fogleman/nes
- https://github.com/OneLoneCoder/olcNES
- https://github.com/amhndu/SimpleNES
- https://skilldrick.github.io/easy6502
- https://www.masswerk.at/6502/6502_instruction_set.html
- http://obelisk.me.uk/6502/ (This page was closed.)