Skip to content

StableCrimson/ferricom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ferricom

Unit Tests and Coverage

Attempting to write a NES emulator in Rust

I have never written an emulator before, and Rust is a fairly new language to me. So I am very much a beginner. This isn't a project where finishing is the goal, the main point is to learn. If this project helps you write your own emulator or learn Rust, then even better.

Roadmap (WIP)

  • CPU and all instructions
  • Memory into its own module
  • ROM loading
  • PPU (Basic)
  • Input (Basic)
  • APU
  • PPU (Advanced)
  • Build for multiple platforms
  • GUI
  • Input remapping / gamepad detection
  • Save files and save states

CPU Status

227/256 opcodes implemented

  • 151 Official opcodes
  • 105 Illegal opcodes
  • Stack implemented
  • Detecting if a page is crossed
  • Branching instructions
  • Extra cycle on crossed page for certain instructions
  • Logging (Needed at this stage for test ROMs)
  • Cycle accuracy tests
  • Passes test ROMs (Instruction set)
  • CLI arg parsing

Misc To-Do

  • Inline docs and tests for cargo doc
  • Disassembler
  • Actions also run linting and formatting (Once the emulator is actually usable)
  • Semver
  • Add usage docs

Resources

About

Attempting to write an NES emulator in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published