# NES Console Emulator

A Rust-based endeavor to emulate the Nintendo Entertainment System.
Table of Contents

Goals

  • Developing a cycle-accurate NES emulator with cross-platform deployment including WebAssembly
  • Implemented complete MOS Technology 6502 CPU instruction set with precise timing emulation
  • Architecting PPU (Picture Processing Unit) with per-dot rendering for authentic video output

TODO

Here’s how you can represent your list items with emojis for better visual distinction:

  • Implement 6502 CPU (minus APU)
    • Official opcodes
    • Unofficial opcodes
    • Ensure cycle accuracy
  • Create 6502 CPU test runner for single-step tests
  • Implement iNES 1.0 ROM parsing
  • Implement Bus-centric architecture (NES wrapper handles orchestration)
  • Implement interrupt handling
    • Non-maskable-interrupts
    • Software-defined interrupts
  • Implement user-input via Joypad 1
  • 🔲 Implement cycle-accurate DMA transfer through Bus
  • 🔲 Implement PPU
    • 🔲 Background nametable rendering
    • 🔲 8x8 sprite rendering (with horiz/vert flips)
    • 🔲 8x16 sprite rendering
    • 🔲 Detect sprite-overflow
    • 🔲 Sprite collision detection
  • Encapsulate mapper logic behind Cartridge trait
  • 🔲 Implement APU

Resources

My avatar

Thanks for reading my post! Feel free to check out my other posts or contact me via the social links in the footer.


More Projects