Skip to content

ognis1205/nests

Repository files navigation

NesTs Nintendo Entertainment System (NES) Emulator

License: GPL v3

   

Summary

You can play online demo HERE. TypeScript/React.js NES emulator implementation for My Own Learning Porpose. The implementation is NOT fully faithfull to the original NES hardware and some codes are still messy.

Getting Started

  1. Run the following command in the project root directory to install dependencies:
 $ npm install && npm run build
  1. After the installation, you can start the server by the following command in the project root directory:
$ npm start

Running Development Server

  1. If you want to run the development server, simply run the following command in the project root directory:
 $ npm run dev
  1. Open http://localhost:3000 with your browser to see the result.

Key-Mappings

NES Button Keyboard
Arrow-Right
Arrow-Down
Arrow-Left
Arrow-Up
SELECT Space
START Return
A X
B Z

Roadmap

The following is a checklist of features and their progress:

  • Console
    • NTSC
  • CPU
    • Official Instructions
    • Unofficial Instructions
    • Interrupts
  • PPU
    • VRAM
    • Background
    • Sprites
    • NTSC TV Artifact Effects
    • Emphasize RGB/Grayscale
  • APU
    • AudioWorklet
    • Pulse Channels
    • Triangle Channels
    • Noise Channels
    • Delta Mulation Channel
  • Inputs
  • Memory
  • Cartridge
    • Battery-backed Save RAM
    • iNES Format
    • NES 2.0 Format
    • Mappers
      • NROM (Mapper 0)
      • SxROM/MMC1 (Mapper 1)
      • UxROM (Mapper 2)
      • CNROM (Mapper 3)
      • TxROM/MMC3 (Mapper 4)
      • ExROM/MMC5 (Mapper 5)
  • Misc
    • Reimplement UI/UX for smartphone users
    • GitHub page
    • Unit/Integration tests
    • Refactor Source Codes
    • Error Handling
    • Documentation
    • Make Things Responsive