Skip to content
/ nes-rs Public

nes-rs is an incomplete NES emulator written in Rust.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

Amdrel/nes-rs

nes-rs Build Status License

nes-rs is an incomplete NES emulator written in Rust. The name is subject to change once I find something more catchy.

Goals

This is a list of my long term goals for the project that I do not expect to be done for a long time.

  • Make the emulator as accurate as possible
  • Automated testing of the CPU with existing test roms (mostly done)
  • Automated testing of the PPU (frame by frame compare)
  • RPC-like api to allow external scripts change the emulator state
  • Full featured debugger accessible through a command-line interface or network

Building and Running

For now the only dependency is rust itself, however this is subject to change once I start working on the PPU and I plan to use SDL.

Current Progress

I am currently working on the CPU which is mostly done at this point. The CPU is automatically tested against the nestest ROM with Nintendulator logs in order to create a somewhat accurate CPU (Nintendulator is regarded as highly accurate). However the implementation of undocumented opcodes is not a high priority for me right now.

Once the CPU work is done, I'll begin working on the PPU and proper power reset functionality. Before or after that's done I might implement an interactive remote debugger if I need to debug any complex problems as the machine state cannot be inspected at this time.

Literature

License

Licensed under either of the following licenses at your option:

Contribution

Please read CONTRIBUTING.md before submitting a PR!

About

nes-rs is an incomplete NES emulator written in Rust.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages