mupen64plus

High-level Rust bindings to the Mupen64Plus Core API.
use mupen64plus::{Core, Plugin};
let core = Core::load_from_directory(&path)
.or_else(|_| Core::load_from_system())?;
let mut mupen = core.start(Some(&path), Some(&path))?;
mupen.open_rom(&mut load_rom()?)?;
for name in &["video-glide64mk2", "audio-sdl", "input-sdl", "rsp-hle"] {
let p = format!("mupen64plus-{}.{}", name, std::env::consts::DLL_EXTENSION);
mupen.attach_plugin(Plugin::load_from_path(p)?)?;
}
mupen.execute()?;
A more detailed example can be found here, which can be run with:
cargo run --example frontend