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.
module!;
What about rust-psp?
This project is a new Rust SDK for PSP, architected from scratch, but some bits and pieces from rust-sdk were used with some modifications to catalise the initial process to minimum working project.
What about PSPSDK?
This project is a completely new SDK, with no dependency on the original C/C++
PSPSDK. Like rust-psp, it aims to be a complete replacement, with more
efficient implementations of graphics functions, and the addition of missing
libraries, but also having a more type-safe FFI and high-level abstraction.
Features / Roadmap
-
coresupport -
allocsupport -
panic = "unwind"support - PSP system library support
- No dependency on PSPSDK / PSPToolchain
- Add support for creating kernel mode modules
- Add support to export functions and static variables
- Macro-based VFPU assembler
- Full 3D graphics support
- Reach full parity with user mode support in PSPSDK
- Reach full parity with kernel mode support in PSPSDK
- Automatically sign EBOOT.PBP files to run on unmodified PSPs
- Implement / reverse undiscovered libraries
- Add
stdsupport
Dependencies
To compile for the PSP, you will need a Rust nightly version equal to or
later than 2026-06-30 and the rust-src component. Please install Rust using
https://rustup.rs/
Use the following if you are new to Rust. (Feel free to set an override manually per-project instead).
&&
You also need cargo-pspbuild installed:
Usage
To use the pspsdk crate in your own Rust programs, add it to Cargo.toml like
any other dependency:
[]
= "x.y.z"
In your main.rs file, you need to setup a basic skeleton like so:
// Create a module named "sample_module" with version 1.0
module!;
Now you can simply run cargo pspbuild to build your project; by default, it
builds a EBOOT.PBP file. You can also invoke cargo pspbuild --release to
create a release build.
You can further configure your PSP project by creating a Psp.toml file in the
root of your project. Once created, the [project] section and kind
configuration option are mandatory
If you would like to customize your EBOOT with e.g. an icon or new title, you
can add a [project.pbp] section on your Psp.toml file. Note that all
[project.pbp] keys are optional:
[]
= "EBOOT"
[]
= "XMB title"
= "path/to/24bit_144x80_image.png"
= "path/to/24bit_480x272_background.png"
= "path/to/ATRAC3_audio.at3"
More options can be found in the schema definition here.
error[E0460]: found possibly newer version of crate ...
If you get an error like this:
error[E0460]: found possibly newer version of crate `panic_unwind` which `pspsdk` depends on
--> src/main.rs:4:5
|
4 | use pspsdk::dprintln;
| ^^^^^^
|
= note: perhaps that crate needs to be recompiled?
Simply clean your target directory and it will be fixed: