rust-nes-emulator
rust-nes-emulator copied to clipboard
NES Emulator written in Rust
rust-nes-emulator
NES Emulator written in Rust
Super Mario Bros. | Donkey Kong | Mario Bros. |
---|---|---|
![]() |
![]() |
![]() |
Let's Play
rustc 1.39.0-nightly required (for embedded optimization...)
Desktop Application
High Performance.
$ cd desktop
$ cargo run --release
Build on Docker
$ docker-compose run build-desktop-release
WebAssembly Application
Build locally
environment(for ubuntu)
$ sudo apt install nodejs npm
$ sudo npm install -g n
$ sudo n 10.15.1
$ cargo install wasm-pack
build
$ cd wasm
$ wasm-pack build --release
$ npm install
$ npm run build
Build on Docker
$ docker-compose run build-wasm-release
$ docker-compose run build-wasm-webpage
Embedded for stm32f769
STM32F769I-DISCO - STMicroelectronics
Work in Progress...
The following are derived repositories that are analyzing and implementing improvements to the performance issues.
kamiyaowl/rust-nes-emulator-embedded - GitHub
Build locally
environment(for ubuntu)
$ rustup install nightly
$ rustup run nightly rustup target add thumbv6m-none-eabi thumbv7m-none-eabi thumbv7em-none-eabi thumbv7em-none-eabihf
$ sudo apt install gcc-arm-none-eabi gcc g++
build
$ cd embedded
$ rustup run nightly cargo build --release
$ make clean && make
Build on Docker
$ docker-compose run build-embedded-lib
$ docker-compose run build-mbed
Build Artifacts
Screenshot (Operation checked)
Super Mario Bros.
Donkey Kong
Mario Bros.
Ice Climber.
nestest (unofficial opcode)
nestest (official opcode)
Hello World
Feature & Known Issue
- [x] CPU
- [x] Register
- [x] Interrupt
- [x] Official opcode
- [x] Unofficial opcode
- [x] Cassette(Mapper)
- [x] NROM(Mapper0)
- [ ] UNROM
- [ ] MMC1
- [ ] MMC3
- [x] PPU
- [x] OAM DMA
- [x] BG
- [x] Nametable Mirroring
- [x] Scroll
- [ ] Vertical Scroll Bug(#87)
- [x] Sprite
- [x] 8*8
- [x] 8*16
- [ ] Sprite 0 hit bug(#40)
- [x] PAD
- [x] Joypad1
- [ ] APU
- [ ] Pulse Wave1
- [ ] Pulse Wave2
- [ ] Tri Wave
- [ ] Noise
- [ ] DMC
- [ ] Emulation feature
- [x] Snapshot
- [x] Restore
- [ ] ROM Selection Bootloader
Test ROMs
Thank you for the wonderful !
path | from | url |
---|---|---|
roms/other/hello.nes | コンソールゲーム機研究所 | http://hp.vector.co.jp/authors/VA042397/nes/sample.html |
roms/nes-test-roms | christopherpow/nes-test-roms - GitHub | https://github.com/christopherpow/nes-test-roms |