7 releases
new 0.2.2 | Mar 9, 2025 |
---|---|
0.2.1 | Mar 9, 2025 |
0.1.3 | Mar 5, 2025 |
#84 in Emulators
454 downloads per month
265KB
5.5K
SLoC
Y.A.N.E. - Yet Another N.E.S. Emulator
Nintendo Entertainment System emulator and emulation library.
Can be used as either a standalone emulator or as a ready-out-of-the-box rust crate for emulating an N.E.S.
See examples
for more examples.
Usage as an app
Download the correct release for your operating system and add it to your $PATH
.
If cargo's install directory is already in your $PATH
, you can simply run cargo install yane
.
> cargo install yane
...
> yane -h
An N.E.S. emulator.
Usage: yane [COMMAND]
Commands:
setup Initialize the configuration files at $HOME/.yane/
ines Load and run an iNES (.nes) file
savestate Load and run a savestate (.yane.bin) file.
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
> yane ines path/to/my/rom.nes --muted --debug --keymap-file=my/custom/keymap.yaml
Usage as a library
// Load an iNes (.ines) file
let ines = include_bytes!("./my_game.nes");
// Create a new N.E.S. console with the game inserted
let mut nes = Nes::with_cartridge(Cartridge::from_bytes(ines, None));
let config = Config::default();
// Advance the N.E.S. by 1 frame (i.e. until the VBlank interval)
nes.advance_frame(&config);
// Reset the N.E.S.
nes.reset();
See the documentation on the library portion or the examples
folder for more.
Dependencies
~50MB
~890K SLoC