Skip to content

About this page

On this page

Cheat sheet ​

This section is in beta and has had limited review. If something looks wrong, please open an issue. Introduction to PS2 architecture describes the hardware each package targets.

Find the package for a task. core/ packages are always installed. world/ packages and standalone repositories must be added to libs:. See Packages.

I want to...Reach forNotes
Draw 2D/3D primitivesgsKit (tier: standalone) or ps2gl (standalone)Two different APIs for the same GS. Do not use both at once. See Graphics Synthesizer.
Move buffers to the GS/VU without stalling the CPUdmakit (world)Wraps DMA tags and chains. See DMA.
Do vector/matrix mathmath3d (core), ps2stuff (standalone)math3d is the base EE-side library; ps2stuff adds higher-level helpers.
Run code on VU1gsKit/ps2gl's own VU microprograms, or hand-written VCL/VU asmThere is no general-purpose VU package. See Vector Units.
Play a sound effect / stream musiclibsd, libspu2 (core, low-level); audio (world, the high-level API); libsnd2, rspu2drv, sdr (world, format-specific)See Audio.
Decode MP3libmad (world)Pair with audio for playback.
Read a gamepadpad (core, EE-side RPC client) + padman (core, IOP driver, loaded automatically)See Controllers.
Read/write a memory cardmc (core, EE client) + mcman/mcserv (core, IOP drivers)Use mmceman (world) to target a memory card emulator.
Read a save-data-formatted memory card (PFS)fs-osd/hdd-osd (core)The PS2 save-game filesystem, also used on the HDD.
Read files off the disccdvd, cdvdfsv, cdfs (core)See Storage.
Talk to the networknetman + smap (core, IOP) + ps2ip (core, EE-side lwIP)See Networking, which also covers the IOP-resident ps2ip-nm/smap-ps2ip alternative.
Call from EE code into an IOP modulesifman/sifcmd (core)The SIF/RPC bridge. See EE, IOP, and SIF.
Patch in an unsupported syscall (e.g. LoadModuleBuffer)patches (core, source dir is named sbv)sbv_patch_enable_lmb() is the one nearly every non-trivial program calls.
Load fontsfreetype (standalone) + gskit-toolkit (world, wires it into gsKit's texture system)
Load PNG/JPEG imageslibpng (standalone), libjpeg_ps2_addons/libjpeg-turbo (world/standalone)
Compress/decompress datazlib (standalone), unzip (world)
Hash data (MD5/SHA/CRC32)hash (world)Not PS2-specific.
Render ASCII-art graphicsaalib (world)
Decode MPEG2 videompeg (core)Accelerated by the IPU, DMAC and MMI. See DMA for the IPU's two channels (fromIPU, toIPU).