preserving-ps2

How to Preserve PlayStation 2 Cracktros

Many patches for Sony PlayStation 2 (PS2) games, released by groups like Kalisto and Paradox, include a cracktro, an introductory sequence or animation created by the group. These patches are typically distributed in .ppf format and require a CD or DVD image of the original game.

While many PS2 games fit on a CD, some larger titles require a DVD, and certain patches are designed for specific DVD-rip releases. These DVD-rip releases, often created by groups like Kalisto or Paradox, were typically shared within a small, exclusive community known as "the scene". Later PS2 patches may also support DVD images.

A PS2 cracktro is an ELF (Executable and Linkable Format) file, essentially the PS2 equivalent of an .exe file. Many cracktros rely on additional .irx files, which function like dynamically linked library files. To preserve a cracktro, you must archive both the .elf file and its associated .irx files.

Since cracktros load .irx files from the disc, you'll need to create a PS2-compatible CD image that includes the cracktro and all required files to ensure it runs properly.

Prerequisites

  • PCSX2: The PCSX2 PlayStation 2 emulator is used to run the cracktro and capture screenshots. In PCSX2, enable "Tools > Enable System Console" and "Debug > Enable IOP Console Logging" from the main menu. These settings help identify which .irx files the cracktro requires.
  • cdgenPS2 v3.0 by Hermes/PS2REALITY: This tool creates a PS2-compatible CD image containing the cracktro and its required files.
  • WinCDEmu or any CD image browser: Use this to extract files from a CD image (.bin or .iso).
  • PPF-O-Matic 3: This tool applies .ppf patches to a CD image.
  • HxD or any hex editor: Use this to extract the cracktro text.

How to Extract the Cracktro

Let's use the example of a patched (pdx-acel.ppf) CD image for the game "Ace Lightning". Start by loading the CD image in PCSX2 and checking the System Console output, which might look like this:

  • loadelf: fname cdrom0:\SLES_515.03;1 secname all
  • loadmodule: fname cdrom0:\SIO2MAN.IRX;1 args 0 arg
  • loadmodule: fname cdrom0:\PADMAN.IRX;1 args 0 arg

This output indicates that SLES_515.03 is likely the cracktro's ELF file, and it depends on SIO2MAN.IRX and PADMAN.IRX.

Close PCSX2 and use a CD image browser (e.g., WinCDEmu) to access the CD image's contents. For Ace Lightning, copy the following files to a new directory:

  • SYSTEM.CNF
  • SLES_515.03
  • SIO2MAN.IRX
  • PADMAN.IRX

The SYSTEM.CNF file tells the PS2 which ELF file to load. Open it with a text editor to confirm it contains a BOOT2 entry, such as:
BOOT2 = cdrom0:\SLES_515.03;1

When copying files, always maintain the original directory structure. Some games store .IRX modules in subdirectories, so replicate the full paths as needed. For example, if SIO2MAN.IRX is located in a folder like MODULES\SIO2MAN.IRX, recreate that hierarchy in the cracktro CD image too.

How to Build a Cracktro CD Image

To create a PS2-compatible CD image, open cdgenPS2 and add the extracted files (SYSTEM.CNF, SLES_515.03, SIO2MAN.IRX, and PADMAN.IRX) to the cdgenPS2 window.

Click the "VOL" button in cdgenPS2 to set the CD image's volume name. Use the scene release name with a "cracktro" suffix for clarity. For Ace Lightning, the patch was released as pdx-acel.zip, so name the volume PDX_ACEL_CRACKTRO. This naming convention links the CD image to its original patch.

Next, click the "IMG" button, select .iso from the file type dropdown, and save the image as pdx-acel-cracktro.iso. Using .iso avoids confusion with ELF files that sometimes have a .bin extension.

Test the CD image in PCSX2 to ensure the cracktro runs correctly. Open the created CD image to confirm it contains only the files necessary to run the cracktro.

If the Cracktro CD Image isn't working

If the cracktro cd image fails to start, enable "Tools > Enable System Console" and "Debug > Enable IOP Console Logging" from the main menu and check the PCSX2 System Console for error messages.

If no clear error appears and the cracktro doesn't run, verify whether the original CD image includes an IOPRP*.IMG file, add it to the cracktro CD image, and test again. Some cracktros require an IOPRP*.IMG file (e.g., IOPRP260.IMG).

Double-check that you've used the same directory structure for any files in the cracktro CD image as in the original CD image. For example, if SIO2MAN.IRX is located in a folder like MODULES\SIO2MAN.IRX on the original, recreate that hierarchy in the cracktro CD image too.

The PS2 file system can be case-sensitive. If you're naming files by hand, make sure to use the same casing as in the original. For example, if the original CD image contains SIO2MAN.IRX, add it to the cracktro CD image with the exact same name and case—not sio2man.irx, for instance.

Extracting the Cracktro Scrolltext

From a preservation standpoint, it's often valuable to extract the full scrolltext from a cracktro and attach it to the corresponding Demozoo production page. PS2 cracktros are typically packed, so the text may not appear in readable form within the ELF file itself. A straightforward way to capture it is to run the cracktro in PCSX2, then—while it's playing—select System > Save State > Save to File from the menu.

Next, open the resulting savestate file in a hex editor and search for a distinctive word or phrase from the scrolltext. Once located, copy the full text block and paste it into a plain .txt file (e.g. scrolltext.txt). You can then upload this as an info file for the production on Demozoo.

If the text isn't visible in the savestate or still appears packed, ensure the savestate compression is disabled. Go to System > Settings > Advanced in PCSX2, and under the Savestate Settings group, set the Compression Method to Uncompressed.

Capturing a Cracktro Screenshot

As ridiculous as it sounds, capturing a high-quality screenshot can take some trial and error. Aim for the original resolution, ideally with no black borders, no post-processing effects, and as little blur as possible. Save screenshots as PNG files at 100% quality. Below you can find a few recommendations that have worked well.

From the PCSX2 main menu, go to File > Settings.

Graphics > Display settings: * Graphics API = Software Renderer * Aspect Ratio = 4:3 (in most cases, though a few cracktros use 16:9) * Bilinear Filtering = None (keeps the image crisp) * Apply Widescreen Patches = Disabled * Anti-Blur = Enabled * Screen Offsets = Tweak via trial and error to get the best look * Show Overscan = Usually enabled, but again, trial and error—aim for no black borders in the final shot * Apply No-Interlacing Patches = Enabled * Integer Scaling = Disabled * Disable Interlace Offset = Disabled (though this can vary by cracktro; experiment as needed)

Graphics > Rendering settings: * Texture Filtering = Bilinear (PS2)

Graphics > Post-Processing settings: * Contrast Adaptive Sharpening = None * FXAA = Disabled * TV Shader = None * Shade Boost = Disabled

Graphics > Media Capture settings: * Resolution = Internal Resolution (Aspect Corrected)

How to Package the Cracktro

To ensure proper preservation, archive the cracktro along with its scene release information, typically a .nfo and .diz file, and include a screenshot of the cracktro.

For the Ace Lightning example (patch name pdx-acel.zip), gather these files:

  • pdx-acel-cracktro.iso = The CD image of the cracktro
  • pdx-acel-cracktro.png = A screenshot of the cracktro
  • pdx-acel.nfo = Release info from pdx-acel.zip
  • file_id.diz = Release info from pdx-acel.zip

Create a .zip archive named pdx-acel-cracktro.zip containing these files, following the same naming pattern.

How to Archive the Cracktro

Upload the pdx-acel-cracktro.zip package to scene.org to preserve it for future generations. Additionally, create an entry on demozoo.org to make the cracktro easily discoverable.

For reference: