Skip to content

arminkz/NES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NES

An emulator for the Nintendo Entertainment System (NES) console, developed in C++.

NES Demo

Supported Features

  • Cross Platform (Windows / Linux / OSX)
  • Joystick Support
  • Mappers
  • Save Game State
  • Developer Tools (CPU/RAM/PPU Inspector)
  • Load ROMs as .nes files
  • Wiki Pages

Build Instructions

Follow the steps below to build and run the project:

  1. Install CMake
    Make sure CMake is installed on your system. You can download and install it from the CMake Downloads page.

  2. Clone Repository

    git clone --recurse-submodules https://github.com/arminkz/NES.git
    cd NES
  3. Build and Run

    mkdir build
    cd build
    cmake ..
    cmake --build .
    ./NES

Known Issues

  • APU sound is not perfect. Sound artifacts might be heard.
  • Right now we are using GLFW for the windowing. we should migrate to SDL.

NES Architecture

NES Architecture Diagram

Addressable Range on CPU Bus

Peripheral Address Start Address End Capacity
RAM (Main Memory) 0x0000 0x1FFF 8KB (Mirrored 2KB)
Program ROM 0x4020 0xFFFF

Addressable Range on PPU Bus

Peripheral Address Start Address End Capacity
Pattern Memory 0x0000 0x1FFF 8KB
Name Table 0x2000 0x2FFF 2KB
Palettes Memory 0x3F00 0x3FFF

About

Nintendo Entertainment System (NES) Console Emulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published