psxsdk

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