Alex

alex-free.github.io

TOCPerfect

By Alex Free

The earliest PSX consoles are vulnerable to the CD Player Swap Trick, the only swap trick that does not involve swapping the real PSX game disc while it is being spun by the console. While the CD Player Swap Trick alone is quite powerful (it allows booting imports and backups from the PSX BIOS directly), it comes with limitations. TOCPerfect patching a PSX game fixes the limitations and shows the true potential of the exploit for the first time.

When booting a CD-R or imported PSX game disc with the CD Player Swap Trick, you can experience:

When booting a TOCPerfect Patched CD-R with the CD Player Swap Trick, The Tonyhax International Loader starts the main game executable automatically, so you instead experience:

Table Of Contents

Downloads

Version 1.1.3 (9/15/2023)

Changes:

About Previous Versions.

Consoles With The CD Player Swap Trick

Only the PSX launch console models manufactured before November 1995 are vulnerable to the exploit. This criteria includes only these console models:

How To Do The CD Player Swap Trick

1) Turn on the compatible PSX console with no disc inserted.

2) Start the CD player.

3) Open the PSX CD drive lid, and put in any real PSX game disc (that is the same region as your console).

4) Find something to block the lid sensor. The real PSX game disc will start and then stop spinning after a few seconds.

5) Put in your burned TOCPerfect Patched CD-R. Exit the CD Player, and wait for the Tonyhax International loader to start.

ps1 lid sensor

ps1 lid sensor blocked front

ps1 lid sensor blocked side

How To Apply The TOCPerfect Patch

Download and extract the latest release of TOCPerfect.

On Windows

Drag and drop the .cue file of the game you want to patch on top of the tocperf.bat file in the release.

Alternatively you can open cmd.exe manually and execute tocperf.bat with the .cue file as the sole argument.

On Linux

Drag and drop the .cue file of the game you want to patch on top of the tocperf file in the release (works for most Linux distributions).

Alternatively you can open terminal manually and execute tocperf with the .cue file as the sole argument.

tocperf linux 1

tocperf linux 2

tocperf linux 3

Licenses

TOCPerfect Patcher itself is released under the 3-BSD license (licenses/tocperfect.txt). TOCPerfect Patcher uses many other software programs to accomplish it’s goals, listed below:

MKPSXISO

Version: 2.0.3 (Windows), Latest commit as of 9/15/2023 (Linux). License: GNU GPLv2 (licenses/mkpsxiso.txt)

Tonyhax International

Version: 1.3.8. License: WTFPL (licenses/tonyhax-international.txt)

PLED

Version: 1.0.3 License: Unlicense (licenses/pled.txt)

EDCRE

Version: 1.0.4 License: GNU GPLv2 (licenses/edcre.txt)

BINMerge

Version: 1.0.1 License: GNU GPLv2 (licenses/binmerge.txt)

MSYS2

This is where I got GNU Bash and Coreutils for Windows to self-contain the bash script in all it’s portable glory.

Versions: Up to date as of 8/22/2023 Licenses: GNU GPLv3

Python

Versions: 3.2 (Linux static build from https://github.com/pts/staticpython/tree/master/release), 3.11.4 (Windows). License: PSF (licenses/python.txt)

MovSec For TOCPerfect Patcher

Version: 1.0 License: 3-BSD (licenses/movsec.txt)

Credits

I originally came up with this idea and released it as TOCPerfect v1.0 on 11/3/2021. MottZilla later made PS1 DemoSwap Patcher which I then built on even more. Thanks to MottZillas improvements and my work on DemoSwap Patcher’s TOCPerfect Patching mode I learned alot about how to improve the original TOCPerfect Patcher.

For the loader itself, see the Tonyhax International Credits.