All Projects → bheisler → Corrosion

bheisler / Corrosion

Licence: MIT license
NES Emulator in Rust

Programming Languages

rust
11053 projects

An NES emulator written in Rust as a hobby project. It only supports Mappers 0 and 1 at this point, but that's enough to play Donkey Kong, Super Mario Bros and Legend of Zelda. It also has a working (though rudimentary) just-in-time compiler targeting x86_64 machine code with dynasm-rs. The JIT compiler is currently not well-optimized and has difficulty dealing with heavy bankswitching (eg. Legend of Zelda runs slower with JIT than without due to excessive recompilation) but I hope to improve on that in the future.

Building

In order to build corrosion, you will require a recent nightly version of Rust. Nightly is currently required in order to use dynasm-rs. You will also need to install sdl2. Once ready, building corrosion is as simple as running cargo build --release in the app directory.

There are a number of additional debug features. These must be compiled into the executable like so:

cargo build --release --features debug_features

Once compiled, they can be enabled by setting the flags in app/config/default.toml. See the config file for supported features.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].