Command reference
Every command the toolchain offers, in one place. Run any of them with --help for its options.
sharpprospero-bindgen <command> [options]
sharpprospero-bindgen <command> --help
sharpprospero-bindgen is the program tools/SharpProspero.Bindings.Generator produces; the name works
once that build output is on PATH. From a checkout, reach the same commands through the project:
dotnet run --project tools/SharpProspero.Bindings.Generator -- <command> [options]
Both forms run the same program, and the pages linked below use either one.
Building an application does not need any of these directly — build/build-app.ps1 runs the ones it
needs. They are here for when you want to look at what was built, work with a module you were given, or
build a piece by hand.
Building a module
| Command | What it does | More |
|---|---|---|
link |
Links objects into an eboot.bin, a .prx library, or a payload. |
Build pipeline |
crt |
Writes the start object that carries the program entry point. | Build pipeline |
compat |
Writes the compatibility object that bridges the runtime’s C calls to what the device publishes. | Build pipeline |
stub |
Builds an import library for a module, either from the module itself or from a name list. | Modules and libraries |
self |
Signs, extracts, or reports the form of a container. | Signed and unsigned |
payload |
Sends a payload built with link --kind payload to a listening loader. |
Modules and payloads |
crt writes the start object an executable link uses; compat writes the compatibility object a link adds
once it pulls in the runtime archives. Writing them out lets another linker take the same inputs. compat
always writes the application-module form; a --kind prx link builds a library variant, and a --kind
payload link builds a payload variant (wider memory-protection commit, thread-block management on new
threads, no libc marker). A payload link also supplies its own start object through PayloadCrtEmitter.
sharpprospero-bindgen compat --out compat.o
sharpprospero-bindgen crt --out crt.o
Looking at a module
| Command | What it does | More |
|---|---|---|
elf |
Prints a module’s header, program headers, dependencies and exports; also its loadable size, symbols, strings, or a stripped copy. | Signed and unsigned |
prx |
Lists a module’s exports with their identifiers, or generates a C# wrapper for it. | Modules and libraries |
diff |
Reports the exports added, removed and moved between two modules. | Working with module offsets |
nid |
Computes the export identifier for a name, so a name you know maps to an export you can confirm. | Modules and libraries |
offsets |
Dumps a module’s export identifiers and addresses, and how they cover the names the SDK needs. | Working with module offsets |
shader |
Reports a compiled shader binary: its kind, version, sizes and register writes. | Graphics on the GPU |
A module this toolchain writes names its regions in a section table, so the tools that read a module built any other way read one of these too — listing sections or disassembling a range needs no extra step.
Packaging and metadata
| Command | What it does | More |
|---|---|---|
param |
Reads and repairs sce_sys/param.json, and lists the kinds of title. |
The param.json fields |
modules |
Checks that every module an application has to carry travels with it, and gathers the missing ones. | Modules and libraries |
sysver |
Settles the system version an application records against the modules it ships. | Firmware |
retarget |
Rewrites a module’s recorded version so one built for a newer system loads on an older one. | Firmware |
Content
| Command | What it does | More |
|---|---|---|
gnf |
Turns a PNG, TGA or BMP into a texture the graphics processor samples; also reports one. | Graphics on the GPU |
vag |
Converts a 16-bit PCM WAV to compact sound-effect audio, and back. | Audio |
Bindings
| Command | What it does | More |
|---|---|---|
| the generator’s binding mode (no verb) | Turns the SDK headers into response files describing a header-to-C# run, from the catalog named by --modules (default modules.json next to the tool). |
Bindings |
Run sharpprospero-bindgen --help for the command list, or <command> --help for one command’s options.