This crate exposes idiomatic Rust API bindings to the excellent libretro API.
The target audience of this library are emulator authors who want to turn their emulator into a libretro core, which relieves them from the necessity of creating a full blown frontend for their emulator and allows them to concentrate on actual emulation.
In its current state there is still a lot of features missing, nevertheless it should be useful enough to create a basic emulator.
As always, contributions are welcome!
Add this to your Cargo.toml
:
[lib]
crate-type = ["cdylib"]
[dependencies]
libretro-backend = "0.2"
and this to your crate root:
#[macro_use]
extern crate libretro_backend;
then just implement the Core trait:
struct Emulator {
// ...
}
impl libretro_backend::Core for Emulator {
// ...
}
and use a macro:
libretro_core!( Emulator );
For a full example you can check out this file, which is part of my NES emulator Pinky.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.