One-line PS2 SDK installer - start here
  • PowerShell 50.1%
  • Shell 49.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
techwritescode 2c83edbf82 Drop premature Alpine support claim
Alpine/musl isn't supported yet - this script is POSIX shell and runs
fine there, but the toolchain/ps2build binaries it fetches are
glibc-linked.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-09-06 16:53:02 -05:00
install.ps1 Silence directory creation windows 2026-09-05 21:34:24 -05:00
install.sh Drop premature Alpine support claim 2026-09-06 16:53:02 -05:00
LICENSE Initial commit: one-line PS2 SDK installer 2026-09-02 12:29:48 -05:00
README.md Drop premature Alpine support claim 2026-09-06 16:53:02 -05:00

install

Setup entry point for PS2BUILD SDK. Start here.

I want to make a game

Windows, in PowerShell:

irm https://git.techwritescode.dev/ps2/install/raw/branch/master/install.ps1 | iex

Linux (Ubuntu, Debian, etc. - glibc-based; Alpine/musl isn't supported yet):

curl -sSfL https://git.techwritescode.dev/ps2/install/raw/branch/master/install.sh | sh

Either one fetches ps2build itself, adds it to your PATH, then runs ps2build update - which bootstraps everything else (the compiler toolchain, and the sdk-core/sdk-world package tiers) on its own. Open a new terminal (or reuse the one you ran this in) and run:

ps2build --version

To install somewhere else, or pin the initial ps2build version:

$env:PS2DEV_INSTALL_DIR = "D:\ps2dev"
$env:PS2DEV_INSTALL_VERSION = "v2026.09.02.5"
irm https://git.techwritescode.dev/ps2/install/raw/branch/master/install.ps1 | iex
PS2DEV_INSTALL_DIR="$HOME/ps2dev" PS2DEV_INSTALL_VERSION="v2026.09.02.5" \
  curl -sSfL https://git.techwritescode.dev/ps2/install/raw/branch/master/install.sh | sh

Staying up to date

Once installed, ps2build updates itself - no need to keep this one-liner around:

ps2build update              # every component, each to its own latest
ps2build update sdk-world    # just one - doesn't touch the others
ps2build update --check      # see what's installed vs. available, don't apply

The toolchain, ninja, srxfixup, ps2build itself, and the sdk-core/sdk-world package tiers each release independently and are updated independently - they're free to drift (e.g. a newer sdk-world against an older sdk-core). Any package you've installed yourself under packages/ is never touched by an update.

I want to work on the SDK itself

Building sdk-core/sdk-world from source needs compilers and ps2build, but deliberately not a prebuilt copy of the SDK you're about to build:

irm https://git.techwritescode.dev/ps2/setup-toolchain/raw/branch/master/setup-toolchain.ps1 | iex

then

irm https://git.techwritescode.dev/ps2/setup-ps2build/raw/branch/master/setup-ps2build.ps1 | iex

(both need a -Destination/-PS2Dev argument - see each repo's own README for the full flag list, or use them as Forgejo/GitHub Actions in CI instead - sdk-core/sdk-world's own workflows are a working example.)

The pieces, if you're curious

  • ps2build - this repo's one-liner fetches just this, then ps2build update does the rest
  • toolchain - EE/IOP/DVP compilers, one of the components ps2build update fetches
  • srxfixup - iopfixup and friends, another component ps2build update fetches (ninja is a third, pulled straight from its own upstream GitHub releases)
  • sdk-core, sdk-world - the two SDK package tiers, also fetched by ps2build update
  • setup-toolchain, setup-ps2build - standalone fetchers for SDK developers building sdk-core/sdk-world from source (see below) - not part of the game-developer path above
  • sdk-dist - dormant; used to publish a combined ps2dev-suite download before ps2build update could fetch every component itself