Skip to content

Star Wars Ep1 Phantom Menace fix for PSP

Latest

Choose a tag to compare

@sahlberg sahlberg released this 13 Aug 06:29
· 1 commit to master since this release
Port the Phantom Menace PSP fix to all remaining releases

Applies the CD-DMA chunking fix from 9a1afc3 to every other release: USA
rev 1.0, SLES-02034/35/36/37/38 and SLPS-02153. Each keeps its existing
Vita records verbatim, so one PPF still serves both platforms.

SLES02036 (Germany) had no pspconfig and no ppf_fix at all. It now has
both, including a ported Vita fix -- the hook it needs (add $v1,$v1,$s0
followed by lw $v1,4($v1)) is unique in all eight images and matches the
sites the existing SLUS-00884 and SLES-02034 Vita PPFs patch.

The addresses differ per release, so pops-analysis/tools/cdport.py finds
them rather than hardcoding: it reads the boot EXE from SYSTEM.CNF for the
LBA, locates the DMA ch3 pointer words, follows lui/lw pairs to find the
CHCR kick sites and which registers carry the destination and word count,
checks those survive to the kick, and allocates the stub from a zero hole
no instruction references. Japan sits at 800702a0 rather than 8006e704,
so this is genuinely locating them.

Validation: pinned to the same stub address the tool regenerates the
hardware-tested rev 1.1 PPF byte for byte, and its Vita stub generator
reproduces the shipped SLES-02034 stub exactly. Every generated PPF was
applied back to its own EXE and checked for both kicks patched with
correct rejoin targets, the Vita site patched, and all records inside
.text.

Only rev 1.1 has been tested on hardware; the rest are verified by
construction.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>