Expand description
API for working with Rust codebases embeded into the ROM for Pokémon Mystery Dungeon Explorers of Sky*.
This is designed to be used as part of the Rust subsystem of c-of-time
.
This crate contains a high level Rust-idiomatic API in the api
module and
a low level API in the ffi
module (consisting of bindgen
generated bindings to known
functions in the base game).
This crate also contains a replacement implementation of std::io
inside api::io
.
Pulling in this crate will also configure the allocator to use the game’s allocation functions and sets up a panic handler.
Please note that this entire crate relies on reverse-engineering efforts of the pmdsky-debug, c-of-time and SkyTemple teams. There is going to be a lot of things missing, some functions could have unintended side effects or be unsafe to call in some situations, even if marked safe, and lastly both the low-level and high-level APIs are not stable, they WILL change when we find out new things.
Please open issues and/or Pull Requests on pmdsky-debug
and/or c-of-time
if you discover
issues or new insights.
*: This is NOT an official project. This is is in NO WAY affiliated with Nintendo, The Pokémon Company, Spike Chunsoft or any of their affiliates. This is an unofficial fan project.
Modules
- Module related to allocating data on the heap.
- High level API.
- This module contains the “raw” functions and types from the game. They are generated by bindgen. It is generally recommended to try and use
crate::api
instead. log
crate logging implementation for EoS.- Helpful prelude that will pull in a lot of useful types for you, and set up the allocator and panic handler. Logging macros of the
log
crate are also included. - Utilities for dealing with string conversion.
Macros
- This generates the entrypoints for item & move effects and special processes. This macro needs to be called exactly once and only in the
main
module.