Skip to content

(WIP) Simple NES emulator built using C++, OpenGL, and ImGui

License

Notifications You must be signed in to change notification settings

raduschirliu/NESEmu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nesemu

A simple Nintendo Entertainment System (NES) emulator, written in C++ and built using OpenGL, ImGui, GLEW, and GLFW.

This project is not focused on being a perfectly accurate emulation of the NES and its hardware, or to be fully-featured. It is a project meant for learning, with the goal being for it to be "good enough" to play some common games, while having code that is clean and easy to understand.

Note: Nesemu is still very much WIP

Features

Planned features

  • CPU
    • Registers and memory map
    • All addressing modes
    • All official opcodes
  • Input mapping
  • Mappers
    • NROM (#000)
    • MMC1 (#001)
  • PPU
    • Rendering context
    • Memory mapped registers
    • Rendering background (nametable)
    • Rendering foreground (OAM sprites)
    • Scrolling
    • Accurate simulation of data fetches during rendering
  • Debugger
    • Memory viewer
    • Stepping through CPU instructions
    • Stack viewer
    • Palette viewer
    • Pattern table viewer
    • Nametable viewer
    • Oam viewer

Extra features

  • CPU
    • Cycle accurate emulation
    • Unofficial opcodes
  • APU emulation
  • Fast forward, run, pause modes
  • Save states
  • Mappers
    • UxROM (#002)
    • Mapper 3 (#003)
    • MMC 3 (#004)

Building

The project is being developed in C++ using Visual Studio 2019, with a few scripts written using Python 3. The only dependencies of the project (ImGui, GLEW, and GLFW) are included in the libraries directory.

So far, it has only been tested under Windows 10, and can be built from within VS after the project has been imported. All dependencies are contained within the repo, and are referenced locally.

About

(WIP) Simple NES emulator built using C++, OpenGL, and ImGui

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages