Packages
The module is go.chrisrx.dev/psx. This page is a map of its packages. Each one's API is on pkg.go.dev.
In a program#
These are what a PlayStation program imports. Each builds on the host too, with the library's functions as stubs, so a program type-checks there and its pure Go parts can be tested.
| Package | Purpose |
|---|---|
yaroze |
The Net Yaroze library, libps, with Sony's names |
disc |
Declaring the files a program reads off its disc, which the build puts there |
archive |
Reading archives: many files in one, unpacked piece by piece |
scene |
Drawing a scene made in the playground's scene editor |
On the host#
| Package | Purpose |
|---|---|
link |
A linked program made a PSX-EXE, with libps combined in |
emu, emu/cpu |
The emulator, and its R3000A and GTE |
emu/emutest |
Running programs in the emulator from Go tests |
emu/openbios |
The open source BIOS everything here boots |
format/psx |
PSX-EXE executables |
format/ecoff |
ECOFF objects, archives, symbols and relocations |
format/cdrom |
CD-ROM sectors, with EDC and ECC |
format/iso9660 |
ISO 9660 with CD-XA extensions, reading and writing |
format/psxdisc |
Whole PlayStation discs: tracks, cue sheets, audio |
format/mdec |
MDEC bitstreams and movies |
format/tim |
TIM images, and pictures into them |
format/tmd |
TMD models and their primitives |
format/rsd |
Sony's RSD models, linked into TMDs |
format/vag |
SPU-ADPCM and VAG sounds |
format/vab |
VAB sound banks and mkvab's definition files |
format/seq |
SEQ scores from MIDI files |
format/scene |
Scene files, as the editor writes them and as a program reads them |
format/archive |
Writing the archives package archive reads |
format/psxtrace |
Instruction traces shared with psxe |