Skip to content

Commit c97909a

Browse files
sajattackozkriff
andauthored
Newsletter 11: rust-psp (#183)
* initial draft of rust-psp section * minor tweaks * moar backticks * one more * Newsletter 11: psp: Remove trailing spaces * Newsletter 11: psp: local gif & style tweaks Co-authored-by: Andrey Lesnikov <[email protected]>
1 parent a92ff20 commit c97909a

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

content/posts/newsletter-011/index.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,42 @@ they plant flowers which gives them points.
169169

170170
## Library & Tooling Updates
171171

172+
### [rust-psp]
173+
174+
![demo-gif](psp.gif)
175+
176+
Just what everyone's always wanted, [Rust on the Sony PSP][rust-psp]! 😆
177+
178+
This project is a port and improvement of the unofficial C/C++ PSPSDK from
179+
2005 It does not require a custom GCC toolchain to be installed. Only Rust
180+
nightly and a cargo subcommand.
181+
182+
The psp crate provides a `psp::sys` submodule that houses the entire Sony PSP
183+
API. We are working to have theseinterfaces merged into the libc crate.
184+
The PSP unfortunately uses non-standard dynamic linking,
185+
(and some libraries are statically linked!), so function definitions
186+
marked extern are not enough. Eventually we will wrap this sys lib with a more
187+
rust-friendly library.
188+
189+
Rather than patching LLVM or rustc, the rust-psp team has also merged a
190+
`mipsel-sony-psp` target upstream, and published cargo-psp. This is a subcommand
191+
that works exactly like cargo build, except it also builds the crate into a
192+
PSP-specific executable format called `PRX` and packages that into an
193+
`EBOOT.PBP`, the standard format for a PSP Homebrew.
194+
195+
The crate has reached full user-mode parity with the unofficial C/C++ SDK.
196+
Kernel-mode support still needs to be worked on. Aside from library
197+
imports, there is also support for PSP-specific custom assembly instructions
198+
via the `vfpu_asm!` macro, with no need for a custom compiler toolchain.
199+
There is also optional `embedded-graphics` support and a function to benchmark
200+
or time your code.
201+
202+
The next major milestone for rust-psp is std support.
203+
If you are interested in helping out, please feel free to join the rust-psp
204+
channel in the [PSP Homebrew discord server](https://discord.gg/WY8XhDG).
205+
206+
[rust-psp]: https://github.com/overdrivenpotato/rust-psp
207+
172208
### [This Month in Mun][mun-june]
173209

174210
![Language Server Diagnostics in action](mun-languageserver.gif)

content/posts/newsletter-011/psp.gif

2.51 MB
Loading

0 commit comments

Comments
 (0)