Skip to content

oracleoftroy/nesem

Repository files navigation

Contributors Forks Stargazers Issues

Nintendo Entertainment System Emulator

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.

NES Emulator preview

Getting Started

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.

Prerequisites

  • cmake
  • a recent c++ compiler

Build

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

About

NES emulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages