It took me forever to figure out a couple of these variations when I was rebuilding the Twisted Metal: Harbor City prototype, because it seems like some of this knowledge has been lost to time, at least as far as the internet is concerned, so I wanted to get it all together in one place. It's probably old hat for most of the long-time scene members, but hopefully is useful to newer members.
It's pretty easy to build an ISO that will work in an emulator like PCSX2. It's a little harder to build one that will work 100% on a PS3 DEX. Building an actual "master disc" image that will boot on a real, unmodified PS2 debug station can be a bit tricky.
Corrections and additions appreciated.
There are three valid types of PS2 master disc that I know of:
1. DVD-ROM (ISO + UDF)
2. DVD-ROM (ISO filesystem)
3. CD-ROM (ISO filesystem)
This guide provides several methods for making the first and third types, but not the second (yet?).
Why would someone want to do this?
If someone wants to make a customized (or completely homebrew) PlayStation 2 ISO or physical disc, this is how they would go about doing it.
Why are all these steps this necessary?
TLDR: the PlayStation 2 (like the PlayStation) is very strict/inflexible about the structure/layout of a disc, as well as the size of the lists of files and folders on the disc. If you make a valid PS2 disc, your PC should have no trouble reading it. However, the converse is not true: it is very easy to make DVDs and CDs that a PC will read just fine, but which will cause bizarre failures to occur when read on a PS2. PS2 emulators are generally more forgiving than real hardware in this respect, but it is still true to some extent (see the discussion of ISO + UDF below). Following the instructions in this guide should give you discs that are compatible with real PS2 hardware, although of course you'll need a mod-chipped PS2 or a PS2 Test or TOOL to read DVD-Rs and CD-Rs.
Tools
You can grab most of the tools (except IsoBuster and Nero) mentioned in this guide from: https://mega.nz/#!TzhihCjJ!5JCb_DNUklakDtO1t99ZOY0AI_XWXKUiI2BfZhmvjow
I collected them in one place because some of them were very hard to find in 2019.
* CDVDGEN 2.0 (official Sony disc-mastering tool) (1.5 is also included in case it's useful)
* CDVD2IML 5.30 (uses IML files from CDVDGEN to build ISOs)
* this isn't used in these tutorials currently, but some other guides refer to it, and it was hard to find
* CDGenPS2 3.0 (unofficial clone of CDVDGEN)
* DiscPatcher 3 (unofficial tool by Loser for patching regular PS2 ISOs to look like master discs)
* ImgBurn 2.5.8.0 (free software for authoring and burning disc images)
* wnaspi32.dll (needed by CDVDGEN after installation - put it in C:\Windows\System32 and run regsvr32 wnasp32.dll)
* 20,971,520 and 52,428,800-byte dummy files (so I can leave out instructions for making one) (I usually use the larger file)
* Custom scripts I wrote:
* cdvdgenbin2normalbin.py - Converts a CDVDGEN .000 binary CD-ROM image into bin/cue format
* fiximgburnmode2bin.py - this doesn't work, but I've provided it for reference
On dummy files versus setting the LBA of the first file versus doing nothing at all
PS2 discs are supposedly less likely to work if the first file on a disc that's actually used (usually SYSTEM.CNF) has too low of an LBA. There are exceptions to this rule, like Unreal Tournament, but some people swear by putting some padding before that first used file. There are two ways of doing this: adding a dummy/padding file to the disc layout before anything else, or (in tools that support it, like CDGenPS2) manually setting the LBA of that first file to a higher value. Both techniques can work, as long as the authoring tool supports it. I'll note where to include this step if you want to. I generally don't for CD images, but either a dummy file or increasing the LBA of SYSTEM.CNF seem to be required for some (maybe all) DVD images.
On "magic" file-ordering
Due to the very strict/quirky way that a PS2 interprets filesystem data, it's generally recommended that the initial files needed by a game are placed first in the layout of the disc. It's possible to build discs that work which don't follow this rule, but it never hurts, so I recommend doing it just to save yourself some headaches later. Typically, the SYSTEM.CNF file should be the first file (after the dummy file, if using one), and the ELF which is referenced on the BOOT2 line of SYSTEM.CNF should be second. The ELF is the executable which is named after the release serial on commercial games (SLPS_123.45 for Japanese releases, SLUS_123.45 for North American releases, SLES_123.45 for European commercial releases, etc.). For preproduction/alpha/beta/etc. discs, the ELF may be named almost anything, but usually follows the same naming convention.
On "secret magic" file-ordering in ImgBurn and Nero
ImgBurn and Nero don't explicitly support changing the order/layout of files when creating a disc, but both applications order the disc filesystem by the order in which files (not folders) were added to the project.
For example, if I create a new project, and add three files one-by-one in this order:
1. Z.DAT
2. A.DAT
3. M.DAT
The files will appear in alphabetical order in Nero (unless you've sorted them differently), but will be written to the disc in the same order they were added to the project (Z.DAT, A.DAT, M.DAT). This is important due to the "magic" file ordering discussed above, as well as the need for a dummy file (if present) to be the first file in the filesystem.
It's pretty easy to build an ISO that will work in an emulator like PCSX2. It's a little harder to build one that will work 100% on a PS3 DEX. Building an actual "master disc" image that will boot on a real, unmodified PS2 debug station can be a bit tricky.
Corrections and additions appreciated.
There are three valid types of PS2 master disc that I know of:
1. DVD-ROM (ISO + UDF)
2. DVD-ROM (ISO filesystem)
3. CD-ROM (ISO filesystem)
This guide provides several methods for making the first and third types, but not the second (yet?).
Why would someone want to do this?
If someone wants to make a customized (or completely homebrew) PlayStation 2 ISO or physical disc, this is how they would go about doing it.
Why are all these steps this necessary?
TLDR: the PlayStation 2 (like the PlayStation) is very strict/inflexible about the structure/layout of a disc, as well as the size of the lists of files and folders on the disc. If you make a valid PS2 disc, your PC should have no trouble reading it. However, the converse is not true: it is very easy to make DVDs and CDs that a PC will read just fine, but which will cause bizarre failures to occur when read on a PS2. PS2 emulators are generally more forgiving than real hardware in this respect, but it is still true to some extent (see the discussion of ISO + UDF below). Following the instructions in this guide should give you discs that are compatible with real PS2 hardware, although of course you'll need a mod-chipped PS2 or a PS2 Test or TOOL to read DVD-Rs and CD-Rs.
Tools
You can grab most of the tools (except IsoBuster and Nero) mentioned in this guide from: https://mega.nz/#!TzhihCjJ!5JCb_DNUklakDtO1t99ZOY0AI_XWXKUiI2BfZhmvjow
I collected them in one place because some of them were very hard to find in 2019.
* CDVDGEN 2.0 (official Sony disc-mastering tool) (1.5 is also included in case it's useful)
* CDVD2IML 5.30 (uses IML files from CDVDGEN to build ISOs)
* this isn't used in these tutorials currently, but some other guides refer to it, and it was hard to find
* CDGenPS2 3.0 (unofficial clone of CDVDGEN)
* DiscPatcher 3 (unofficial tool by Loser for patching regular PS2 ISOs to look like master discs)
* ImgBurn 2.5.8.0 (free software for authoring and burning disc images)
* wnaspi32.dll (needed by CDVDGEN after installation - put it in C:\Windows\System32 and run regsvr32 wnasp32.dll)
* 20,971,520 and 52,428,800-byte dummy files (so I can leave out instructions for making one) (I usually use the larger file)
* Custom scripts I wrote:
* cdvdgenbin2normalbin.py - Converts a CDVDGEN .000 binary CD-ROM image into bin/cue format
* fiximgburnmode2bin.py - this doesn't work, but I've provided it for reference
On dummy files versus setting the LBA of the first file versus doing nothing at all
PS2 discs are supposedly less likely to work if the first file on a disc that's actually used (usually SYSTEM.CNF) has too low of an LBA. There are exceptions to this rule, like Unreal Tournament, but some people swear by putting some padding before that first used file. There are two ways of doing this: adding a dummy/padding file to the disc layout before anything else, or (in tools that support it, like CDGenPS2) manually setting the LBA of that first file to a higher value. Both techniques can work, as long as the authoring tool supports it. I'll note where to include this step if you want to. I generally don't for CD images, but either a dummy file or increasing the LBA of SYSTEM.CNF seem to be required for some (maybe all) DVD images.
On "magic" file-ordering
Due to the very strict/quirky way that a PS2 interprets filesystem data, it's generally recommended that the initial files needed by a game are placed first in the layout of the disc. It's possible to build discs that work which don't follow this rule, but it never hurts, so I recommend doing it just to save yourself some headaches later. Typically, the SYSTEM.CNF file should be the first file (after the dummy file, if using one), and the ELF which is referenced on the BOOT2 line of SYSTEM.CNF should be second. The ELF is the executable which is named after the release serial on commercial games (SLPS_123.45 for Japanese releases, SLUS_123.45 for North American releases, SLES_123.45 for European commercial releases, etc.). For preproduction/alpha/beta/etc. discs, the ELF may be named almost anything, but usually follows the same naming convention.
On "secret magic" file-ordering in ImgBurn and Nero
ImgBurn and Nero don't explicitly support changing the order/layout of files when creating a disc, but both applications order the disc filesystem by the order in which files (not folders) were added to the project.
For example, if I create a new project, and add three files one-by-one in this order:
1. Z.DAT
2. A.DAT
3. M.DAT
The files will appear in alphabetical order in Nero (unless you've sorted them differently), but will be written to the disc in the same order they were added to the project (Z.DAT, A.DAT, M.DAT). This is important due to the "magic" file ordering discussed above, as well as the need for a dummy file (if present) to be the first file in the filesystem.