Little pet project to try and code a NES emulator.
This project is cross-platform and should work on Windows and Linux.
Based on the wonderful tutorial from OneLoneCoder: https://github.com/OneLoneCoder/olcNES
Close to completeness. Already possible to play some games from start to finish, with sound.
-- DISCLAMER --
There is no rom included in this project, except some test roms. You need to dump your original games to use them with this emulator.
- ImGui
- glfw
- OpenGL
- googletest
- RTAudio
- Full support for offical opcodes for the 6502 CPU (and some illegal opcodes)
- Keyboard support
- NTSC roms only (PAL is not yet supported)
- Some mappers (list bellow)
- Basic debugging with "gotos" and disassembly
- Can play from start to finish some games.
- Basic load/save state
- Rom loading in UI
- Sound fully functional (except DMC interrupt)
Mappers | Game Example | Video |
---|---|---|
0 | Super Mario Bros. | |
1 | The Legend of Zelda | |
2 | Duck Tails | |
3 | DonkeyKong Classics | |
4 | Super Mario Bros. 3 | |
40 | SMB: The Lost Levels | |
66 | Duck Hunt + SMB |
git clone --recursive https://github.com/Amathlog/nes-emulator.git
apt-get install cmake build-essentials clang
cd nes-emulator
mkdir build
cd build
cmake ..
make
./NesEmulatorGL <path_to_your_rom>
Controls:
Keyboard | NES Controller |
---|---|
Arrows | D-Pad |
Z | A |
X | B |
A | Select |
S | Start |