A NES emulator written in C++
The emulator is still a work in progress, but can already run a variety of games. Graphics are rendered using OpenGL, and incorporates the ImGui GUI library. SDL2 is used for window management, input processing, and audio. A few Boost modules are also incorporated.
The current version has a fully functional CPU, including unofficial opcodes. Main PPU functionality is fully implemented, with some timing and obscure behavior still in work. The APU works, with some audio glitches.
Unit testing is performed with the Catch2 library, and tests against many of the test ROMs listed on the NESDev Wiki
Controls are hardcoded at this time:
NES | Keyboard |
---|---|
A | X |
B | Z |
Start | Enter |
Select | Spacebar |
Up/Down/Left/Right | Direction Keys |
RESET | Ctrl-R |