An NES emulator using C++23. It tries to be a cycle accurate emulation of the CPU, PPU and cartridge memory mappers. At this time, NTSC/PAL or 100% accurate audio emulation is not a goal as long as the output still looks reasonable, but I may consider it in the future.
This is very much an in progress project for learning about emulator development and how the NES works. Many features are missing or incomplete. If you are looking for an emulator to play your favorite games, Mesen or FCEUX are much better options. I hope my code can serve as inspiration or ideas for writing your own emulator, and I welcome feedback and suggestions for improvement.
You'll need a very recent C++ compiler. The latest MSVC will work, and I try to keep the code compatible with the latest GCC. Dependencies are handled by vcpkg by default.
On linux, you'll need to make sure appropriate development libraries for X11 and/or wayland are installed for SDL2 to compile and run properly.
- cmake
- a recent c++ compiler
To clone and build the repo, run:
git clone https://github.com/oracleoftroy/nesem.git
cd nesem
mkdir build
cmake . -B build
cmake --build build
Project Link: https://github.com/oracleoftroy/nesem