yazaldefilimone / nes.rs

A Nintendo Entertainment System :(

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nintendo System

A Nintendo Entertainment System (NES) emulator written in Rust.

Architecture (distributed system)


+--------+     +--------+     +--------+     +--------+     +--------+     +--------+
|  CPU   |<--> |  BUS   |<--> | ROM    |<--> |  PPU   |<--> | GamePad|<--> |  APU   |
+--------+     +--------+     +--------+     +--------+     +--------+     +--------+
                                  |              |              |
                                  v              v              v
                              +-------+     +--------+      +--------+
                              | Logic |     | Render |      | Scroll |
                              +-------+     +--------+      +--------+

Features

  • CPU
  • RAM
  • PPU
  • APU

TODO

  • CPU
    • Load Accumulator
    • Store Accumulator
    • Add with Accumulator
    • Subtract with Accumulator
    • AND with Accumulator
    • OR with Accumulator
    • XOR with Accumulator
    • Compare Accumulator
    • Shift Left
    • Shift Right
    • Rotate Left
    • Rotate Right
    • Jump
    • Jump Subroutine
    • Return from Subroutine
    • Call Subroutine
    • Return from Interrupt
    • Restart
    • Interrupt
  • PPU
    • VRAM
      • Read
      • Write
      • Scroll
      • Sprite
        • Read
        • Write
        • Sprite Collision
        • Sprite Overflow
    • CGRAM
      • Read
      • Write
    • OAM
      • Read
      • Write
      • Sprite Collision
      • Sprite Overflow
  • APU

Links

About

A Nintendo Entertainment System :(


Languages

Language:Rust 100.0%