Skip to main content
The mkpsxiso XML project file defines the structure and content of a PlayStation ISO image. It supports multi-disc projects, CD audio tracks, and comprehensive file system configuration.

Basic Structure

An XML project file consists of one or more <iso_project> elements, each defining a complete disc image:
<?xml version="1.0" encoding="UTF-8"?>

<iso_project image_name="myimage.bin" cue_sheet="myimage.cue">
  <track type="data">
    <identifiers
      system="PLAYSTATION"
      application="PLAYSTATION"
      volume="MYDISC"
    />
    <license file="licensea.dat"/>
    <directory_tree>
      <!-- Files and directories go here -->
    </directory_tree>
  </track>
  
  <!-- Optional audio tracks -->
  <track type="audio" source="track02.wav"/>
</iso_project>

Root Elements

iso_project

The root container for a single disc image. Multiple <iso_project> elements can be specified in one XML file for multi-disc games.
image_name
string
required
File name of the ISO image file to generate (e.g., myimage.bin)
cue_sheet
string
File name of the cue sheet for the image file. Required if more than one track is specified or if using CD audio
no_xa
boolean
default:"false"
If set to a non-zero value, creates the image without CD-XA file attributes (plain ISO9660)

Child Elements

Each <iso_project> must contain:
  • At least one <track> element (see Tracks)
  • The first track should be a data track containing:
    • Optional <identifiers> element (see Identifiers)
    • Optional <license> element
    • Required <directory_tree> element (see Directory Tree)

Multi-Disc Projects

For multi-disc games, specify multiple <iso_project> elements:
<?xml version="1.0" encoding="UTF-8"?>

<!-- Disc 1 -->
<iso_project image_name="game_disc1.bin" cue_sheet="game_disc1.cue">
  <track type="data">
    <!-- ... -->
  </track>
</iso_project>

<!-- Disc 2 -->
<iso_project image_name="game_disc2.bin" cue_sheet="game_disc2.cue">
  <track type="data">
    <!-- ... -->
  </track>
</iso_project>

License File

The optional <license> element specifies a PlayStation license file to inject into the ISO:
<license file="licensea.dat"/>
file
string
required
Path to the license file. Must be in raw 2336 byte sector format, like those included with the PlayStation Programmer’s Tool SDK (PsyQ SDK) in PS\CDGEN\LCNSFILE
License data is not included with mkpsxiso to avoid legal issues. You must provide your own license file from the official SDK.

Bootable ISOs

For the ISO to be bootable on a PlayStation:
  1. The system and application identifiers must be set to PLAYSTATION
  2. A valid license file must be included
  3. A SYSTEM.CNF file must be present in the root directory
  4. The executable referenced in SYSTEM.CNF must exist

Next Steps

Tracks

Learn about data and audio track configuration

Identifiers

Configure volume and system identifiers

Directory Tree

Define the file system structure

File Elements

Add files with different types and attributes

Build docs developers (and LLMs) love