MKPSXISO - A PlayStation ISO Maker to Replace BUILDCD
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
MKPSXISO - A PlayStation ISO Maker to Replace BUILDCD
This is basically a clone of BUILDCD but better! Most notably, it is a shiny new Win32 console application rather than an old 16-bit DOS executable that requires an emulator to get it working on 64-bit systems and because MKPSXISO runs natively on your PC, it performs a lot faster than BUILDCD and StripISO combined! (ie. an ISO image that took 30 seconds to generate with BUILDCD+StripISO will now take 1-2 seconds with MKPSXISO) Plus, it outputs in standard ISO/BIN+CUE format so generated images can immediately be run with an emulator or burned to a CD.
Not only is this tool a Win32 console application, it also properly injects license data, injects CD-DA audio tracks to the ISO image and uses an XML based script format which is significantly easier to work with than BUILDCD's CTI script format (if you have a proper editor such as Notepad++) as well as mixed-mode XA integration for XA audio and STR MDEC video files.
More details about MKPSXISO and download can be found right here.
This took me quite a long time to make as I started work on this tool back in January of this year. Reason why it took me so long was because it took me a long while to figure out how to generate an ISO 9660 file system correctly and that I didn't really focus all my programming effort toward this project since this was just a small pet project. Fortunately, I was able to figure out how to generate the file system correctly and spent a couple of days to more or less finish it... There's still some work to be done however but its pretty much usable in its current state.
Strangely, I'm probably the first person to make a clone of BUILDCD that is actually usable... I guess most PSX homebrew enthusiasts simply prefer to just use the existing tools rather than making a better (and modern) version of the same tool to replace the old one.
Not only is this tool a Win32 console application, it also properly injects license data, injects CD-DA audio tracks to the ISO image and uses an XML based script format which is significantly easier to work with than BUILDCD's CTI script format (if you have a proper editor such as Notepad++) as well as mixed-mode XA integration for XA audio and STR MDEC video files.
More details about MKPSXISO and download can be found right here.
This took me quite a long time to make as I started work on this tool back in January of this year. Reason why it took me so long was because it took me a long while to figure out how to generate an ISO 9660 file system correctly and that I didn't really focus all my programming effort toward this project since this was just a small pet project. Fortunately, I was able to figure out how to generate the file system correctly and spent a couple of days to more or less finish it... There's still some work to be done however but its pretty much usable in its current state.
Strangely, I'm probably the first person to make a clone of BUILDCD that is actually usable... I guess most PSX homebrew enthusiasts simply prefer to just use the existing tools rather than making a better (and modern) version of the same tool to replace the old one.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Awesome! I mean I usually use psxcdgen (or whatever its called) but this is pretty neat as it injects all the necessary license data etc . Nice work!
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
Released version 1.04 which fixes a bug where creating ISO images with audio tracks always results to an error. For more info and download, check the github repository.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
-
sickle Verified
- C Programming Expert
- Posts: 257
- Joined: Jul 17, 2013
- I am a: Chocolate-fueled pug fetish robot.
- Location: Scotland
:O This is cool! Loving the XML - I can't wait to give it a whirl!
Also, thanks for documenting the XML so heavily... it's answered pretty much every question I had. Just wondering is system.cnf always in the right location if it's listed as the first file?
Also, thanks for documenting the XML so heavily... it's answered pretty much every question I had. Just wondering is system.cnf always in the right location if it's listed as the first file?
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
Yes, it's correct to have system.cnf as the very first file on the disc since it's the first file the console's going to read followed by the PS-EXE file.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
-
sickle Verified
- C Programming Expert
- Posts: 257
- Joined: Jul 17, 2013
- I am a: Chocolate-fueled pug fetish robot.
- Location: Scotland
Awesome, ty =)
(I noticed system .CNF seems to appear at LBA 34 when opening .ISOs for extraction wasn't really sure if it made much difference other than for seek times.)
(I noticed system .CNF seems to appear at LBA 34 when opening .ISOs for extraction wasn't really sure if it made much difference other than for seek times.)
- 47iscool
- Curious PSXDEV User
- Posts: 12
- Joined: Jun 17, 2017
- I am a: Gamer, Game hacker
- PlayStation Model: SCPH-9001
Works fine as long as I have no sub-directories. If so it only builds images with the cnf and executable. Also it tells me there is no others files in the xml and clearly there are.
Any thoughts about a gui for the Windows build?
Any thoughts about a gui for the Windows build?
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
Can you share me your XML script? I have a good feeling that it was not formatted correctly if issues like that occur. I never had any issues with directories with MKPSXISO nor are those who have used it.
I don't have plans to make a GUI version of MKPSXISO at the moment as it is not really important considering how simple putting together a build script using the included example script as a base is a piece of cake.
I don't have plans to make a GUI version of MKPSXISO at the moment as it is not really important considering how simple putting together a build script using the included example script as a base is a piece of cake.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
-
TheShadowRunner Verified
- Active PSXDEV User
- Posts: 64
- Joined: Mar 02, 2015
- I am a: Enthusiast
- PlayStation Model: DTL-H1000
I beg to differ, while it's clearly not hard putting together a script, a GUI would make operations so much more straightforward and fast.. ^^;LameGuy64 wrote:I don't have plans to make a GUI version of MKPSXISO at the moment as it is not really important considering how simple putting together a build script using the included example script as a base is a piece of cake.
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
Currently, I just don't have time to work on such a tool as my free time is prioritized for art or continuing development of my very own 3D engine for the PSX especially when I have a full-time job now so I don't have much free time as I used to. I've been considering making such a tool to supplant MKPSXISO though.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
-
TheShadowRunner Verified
- Active PSXDEV User
- Posts: 64
- Joined: Mar 02, 2015
- I am a: Enthusiast
- PlayStation Model: DTL-H1000
Sound like there's still a little hopeLameGuy64 wrote:Currently, I just don't have time to work on such a tool as my free time is prioritized for art or continuing development of my very own 3D engine for the PSX especially when I have a full-time job now so I don't have much free time as I used to. I've been considering making such a tool to supplant MKPSXISO though.
LameGuy64, is the source code for MKPSXISO open? If not, you could consider releasing it so other's could pick up where you left off seeing as you don't have much free time to work on it. Perhaps somebody else (not myself, I'm not that skilled lol) could whip up a GUI for this.
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
If the fact that I hosted the program download and source code on github wasn't obvious enough to you. Then yes, it is open source.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
I really don't see a point for a GUI there. The example.xml file looks quite straight-forward. Hint: you don't need to use the "<!-- comment -->" lines in your own files, and then you could get everything down to one xml line per file. And another hint: you could type "dir" at command prompt, and then copy/paste your file names (in case you don't want to type in each name).
But before adding hundreds of small files to your project: Mind that the cdrom seek time per file is very slow, and loading time would be ways faster when using one large file instead of many small files, so it would be usually better to merge everything to a large .dat file (or directly to the .exe file itself).
But before adding hundreds of small files to your project: Mind that the cdrom seek time per file is very slow, and loading time would be ways faster when using one large file instead of many small files, so it would be usually better to merge everything to a large .dat file (or directly to the .exe file itself).
- 47iscool
- Curious PSXDEV User
- Posts: 12
- Joined: Jun 17, 2017
- I am a: Gamer, Game hacker
- PlayStation Model: SCPH-9001
Good news: I finally figured out how to use it. The parameters must be in the order specified in the XML.
Bad news: Something is wrong with STR and XA.
Some games don't boot, others are silent and some are have garbled audio. And before you ask yes I set the data types correctly for STR and XA.
One game in particular, Silent Bomber has it's XA audio in an archive called XA.BIN. But it apparently doesn't have the right header because mkpsxiso says it's not in 2336 format.
Bad news: Something is wrong with STR and XA.
Some games don't boot, others are silent and some are have garbled audio. And before you ask yes I set the data types correctly for STR and XA.
One game in particular, Silent Bomber has it's XA audio in an archive called XA.BIN. But it apparently doesn't have the right header because mkpsxiso says it's not in 2336 format.
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
It must be because the STR/XA data you've extracted was not extracted the right way. The thing about those files is that they are stored in 2336 byte per sector format and if the file is not a multiple of that size, then it is clearly not extracted properly. If that's not the case, I'm going to have to analyze such games to see how they are encoded.
I'm planning to make a utility that dumps out all the contents of a PlayStation ISO which can dump XA/STR data correctly unlike most dumping software I've seen so far.
I'm planning to make a utility that dumps out all the contents of a PlayStation ISO which can dump XA/STR data correctly unlike most dumping software I've seen so far.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
- 47iscool
- Curious PSXDEV User
- Posts: 12
- Joined: Jun 17, 2017
- I am a: Gamer, Game hacker
- PlayStation Model: SCPH-9001
vgmtoolbox can extract files in raw format.
And I think it's extracting them in 2352 format but I'm not sure. When you extract you can listen to them in foobar2000 with the vgmstream plugin. If you would like to know for sure you can ask over at the hcs64 forum.
Also to let you know, I only extract with vgmt for listening not building.
I have tried extracting all files raw before with it then using your tool to build but then it won't boot at all.
The main tool I use to extract is ultraiso.
By the way, do you know of a tool that can extract the str/xa properly for rebuilding?.
CDDA works flawless by the way, great work.
And I think it's extracting them in 2352 format but I'm not sure. When you extract you can listen to them in foobar2000 with the vgmstream plugin. If you would like to know for sure you can ask over at the hcs64 forum.
Also to let you know, I only extract with vgmt for listening not building.
I have tried extracting all files raw before with it then using your tool to build but then it won't boot at all.
The main tool I use to extract is ultraiso.
By the way, do you know of a tool that can extract the str/xa properly for rebuilding?.
CDDA works flawless by the way, great work.
What about RIFF headers? I don't really know what those headers are intended for, but windows seems to be automatically adding that headers to certain cdrom files (not sure which files... maybe all files with 914h-byte sectors... or so).
Anyways, presence/absence of those RIFF headers might cause problems. Unless mkpsxiso is automatically removing them when present?
NB. from what I can see, the RIFF header is followed by 930h-byte sectors (ie. including the sector header and EDC aside from the actual 914h-byte data region (a side effect is that two copies of the 'same' file can become 'different' if they were read from different locations on the disc, ie. with different sector numbers in the sector header)).
I don't have the Silent Bomber game, but did you make sure that the XA.BIN file is an "XA" file at all (in terms of being CD-XA)? Just going by the filename it could be also containing SPU-XA data, or an abbreviation for eXtra Add-on's or whatever.
Anyways, presence/absence of those RIFF headers might cause problems. Unless mkpsxiso is automatically removing them when present?
NB. from what I can see, the RIFF header is followed by 930h-byte sectors (ie. including the sector header and EDC aside from the actual 914h-byte data region (a side effect is that two copies of the 'same' file can become 'different' if they were read from different locations on the disc, ie. with different sector numbers in the sector header)).
I don't have the Silent Bomber game, but did you make sure that the XA.BIN file is an "XA" file at all (in terms of being CD-XA)? Just going by the filename it could be also containing SPU-XA data, or an abbreviation for eXtra Add-on's or whatever.
- 47iscool
- Curious PSXDEV User
- Posts: 12
- Joined: Jun 17, 2017
- I am a: Gamer, Game hacker
- PlayStation Model: SCPH-9001
I looked at the xa.bin headers in hxd, and from I can tell it looks like the xa is further down. So it's basically a non-standard header.
Maybe there's more data than just xa in there.
Maybe there's more data than just xa in there.
Who is online
Users browsing this forum: No registered users and 0 guests