Skip to content

arminkz/NES

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. Install Conan
    Ensure you have Conan installed on your system. You can install it using pip:

    pip install conan
  3. Clone Repository

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

    build_and_run_release.bat

Known Issues

  • APU sound is not perfect. Sound artifacts might be heard.

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

NES Console Emulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages