Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
TetaNES Core
📖 Summary - ✨ Features - 🚧 Building - 🚀 Getting Started - ⚠️ Known Issues - 💬 Contact
Summary
photo credit for background: Zsolt Palatinus on unsplash
This is the core emulation library for TetaNES. Savvy developers can build their
own custom emulation libraries or applications in Rust on top of tetanes-core.
Some community examples:
- NES Bundler - Transform your NES-game into a single executable targeting your favourite OS!
- Dappicom - Dappicom is a provable Nintendo Entertainment System emulator written in Noir and Rust.
- NESBox - NESBox's vision is to become the preferred platform for people playing online multiplayer games, providing an excellent user experience for all its users.
Minimum Supported Rust Version (MSRV)
The current minimum Rust version is 1.85.0.
Features
- NTSC, PAL and Dendy emulation.
- Headless Mode.
- Pixellate and NTSC filters.
- Zapper (Light Gun) support.
- iNES and NES 2.0 ROM header formats supported.
- Over 30 supported mappers covering >90% of licensed games.
- Game Genie Codes.
- Preference snd keybonding menus using egui.
- Increase/Decrease speed & Fast Forward
- Save & Load States
- Battery-backed RAM saves
Building
To build the project, you'll need a nightly version of the compiler and run
cargo build or cargo build --release (if you want better framerates).
Getting Started
Below is a basic example of setting up tetanes_core with a ROM and running the
emulation. For a more in-depth example see the tetanes::nes::emulation module.
use *;
Stability
The aim is for general stability, but the version isn't 1.0 yet and there are
several large features on the roadmap that may result in breaking changes. This
applies to both APIs and save file formats.
Once some of these larger features are completed, and 1.0 is released, more
effort will be dedicatged to versioning these files for backward compatibility
in the event of future breaking changes.
Known Issues
See the github issue tracker.
Contact
For issue reporting, please use the github issue tracker. You can also contact me directly at https://lukeworks.tech/contact/.