nesbox
nesbox copied to clipboard
A nes emulator written in dart which can be used in flutter app.
Nesbox
A nes emulator written in dart without dependencies.

Example App
if you are using vscode, just open debug tab and run the fico project.
or you can run the code below
$ cd examples/fico
$ flutter run -d macos
Getting Started
there is no package published yet.
TODO
- [x] CPU
- [ ] PPU
- [ ] APU
- [x] ROM file parser
- [ ] Controller in keyboard
- [ ] Picture render
Features
- [ ] Basic nes emulator
- [ ] Game speed control (2x, 4x, 8x ...)
- [ ] Controller in handle
- [ ] Save/Load game progress
- [ ] Video record
- [ ] Multiple players from WIFI or bluetooth
References
blogs:
- yizhang82.dev nes blogs
- I made an NES emulator. Here’s what I learned about the original Nintendo.
- writing NES Emulator in Rust
- NES Rendering
6502 CPU:
PPU:
Unoffical Opcodes(Instructions)
there are some unoffical opcodes in nes program. these docs may help.
nesfiles:
Tests:
- https://wiki.nesdev.org/w/index.php?title=Emulator_tests#CPU_Tests
- http://www.qmtpro.com/~nes/misc/
Other nes emulators
- fogleman/nes: written in go.
- bfirsh/jsnes: written in javascript.
- yizhang82/neschan: written in c++;
License
This project is licensed under the MIT License - see the LICENSE file for details