MKPSXISO - A PlayStation ISO Maker to Replace BUILDCD

Downloadable items posted by PSXDEV members are within this forum.
User avatar
LameGuy64
Verified
Psy-Q Enthusiast
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:

Post by LameGuy64 » June 6th, 2018, 2:18 pm

#1 looks like a path table issue it seems but I don't think there is anything really wrong about that. Perhaps there's a little detail or two that I missed.

#2 can probably be fixed by making it so you can 're-enter' an already created directory to add more files into it, I don't exactly remember if you can actually do that in BUILDCD.

#3 Its common practice among PlayStation developers to put to put a big dummy at the end of an ISO image after the last file so the laser assembly won't 'run away' when reading the last file.

#4 is likely just a CD media issue.

I'll try to remedy issues #1 and #2 eventually when I can find the time.
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.

User avatar
LameGuy64
Verified
Psy-Q Enthusiast
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:

Post by LameGuy64 » June 13th, 2018, 1:01 am

I just released version 1.19 of mkpsxiso which fixes the path table issue. I have not implemented directory re-entering yet as I mostly focused on fixing the path table generating issue as that one was the most significant issue it turns out. Maybe next time.

Download 1.19 here.
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.

User avatar
LameGuy64
Verified
Psy-Q Enthusiast
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:

Post by LameGuy64 » July 8th, 2018, 8:28 pm

I just released a new 1.21 version of MKPSXISO which adds some new features and fixes a bunch of bugs including a major one that causes missing files in directories that contain a large number of files and directories.

Download it in the Github repository linked in the first post of this thread.
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.

User avatar
lamb_of_senpai
Curious PSXDEV User
Curious PSXDEV User
Posts: 14
Joined: Oct 11, 2018

Post by lamb_of_senpai » October 12th, 2018, 12:42 pm

The files this is generating for me seem to work in the no$cash psx emulator, but when I try it in others, like mednafen, it gives me this message, and fails to load:

Code: Select all

Emulated Disc SCEx IDs:
Disc 1: (Not recognized as a PS1 disc)

Region: Japan
I think this means it's not injecting the license file (especially since I had the XML file set to use LICENSEA.DAT in the directory where I'm running it), but I can't be sure, since mkpsxiso doesn't seem to log whether or not the license injection worked. Is that correct?

Also, thanks for this great tool and all your hard work! I've been poring over your github repos with great enthusiasm.

User avatar
LameGuy64
Verified
Psy-Q Enthusiast
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:

Post by LameGuy64 » October 12th, 2018, 1:29 pm

MKPSXISO should be outputting error messages if the license file specified is either not found or does not match a specific file size. Mednafen's likely doing some checks in some really obscure parts of the ISO file system header which my tool isn't replicating.

Have you tested the ISO on ePSXe, pSX/psxfin and/or even real hardware? The generated ISO work fine on those.
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.

User avatar
lamb_of_senpai
Curious PSXDEV User
Curious PSXDEV User
Posts: 14
Joined: Oct 11, 2018

Post by lamb_of_senpai » October 12th, 2018, 3:31 pm

It's odd, if I set the license file name to be deliberately wrong, like in the xml definition file i'm using here: I get the following output which doesn't seem to include errors:


Ahh, I just discovered I was putting the <license> element two lines higher than I should have been. Thanks again! Looking forward to following your developments.

User avatar
lamb_of_senpai
Curious PSXDEV User
Curious PSXDEV User
Posts: 14
Joined: Oct 11, 2018

Post by lamb_of_senpai » October 24th, 2018, 6:08 am

I notice that a lot of games store the LBAs for files within their own custom file formats which are loaded at runtime (for example, a file defining a room might store the LBAs of the necessary models and textures).

The -lbahead option is useful for simple cases where everything is hardcoded in C and the preprocessor can take care of it, but if you want to store the LBA data somewhere else, what would be the best option? I suppose I could write something to parse the LBA log that mkpsxiso generates, or I could modify the source of mkpsxiso to output an xml file with all the LBAs, which could be then be parsed into the custom files (in which case, would you be open to a PR for it?)

User avatar
lamb_of_senpai
Curious PSXDEV User
Curious PSXDEV User
Posts: 14
Joined: Oct 11, 2018

Post by lamb_of_senpai » November 13th, 2018, 2:41 am

Figured I should follow up on the solution I arrived at with this, just in case anyone in the future is trying to do the same thing. I realized that you can use the compiler (either gcc or ccpsx) with the -E flag to run *just* the preprocessor. In my case, I have a .json file for my level description, which includes references to the LBA's of certain TIM and TMD files that might be also used in other levels. All I do is run it through the below code, which generates a preprocessed text file.

Code: Select all

gcc -E -x c -P -C -include lba.h level1.json -o level1.tmp
I then convert the .tmp file to the final custom binary format which is the final file copied to the game disc and used in game. So the full process is:

-Create dummy binary file the same size that the final binary file will be
-Generate LBA.h file from mkpsxiso
-Run json file through preprocessor
-Convert tmp file to final binary file, use it to overwrite dummy file
-Run mkpsxiso again to create disc image

I could use the <dummy> tag instead of generating a dummy file, but i don't think the added overhead of parsing the xml and placing it correctly would be worth it.

ycelik
Curious PSXDEV User
Curious PSXDEV User
Posts: 20
Joined: Sep 02, 2018

Post by ycelik » December 9th, 2018, 10:29 pm

Got to hand it to you guys, a very nice application!
I have been able to use it in conjunction with Visual Code build tasks, so that I can automatically generate a CD-image, and then run it right into an emulator.
I do have to report that I am using a Mac, and that there was actually a conditional statement in the source that would not allow you to make the binary if you were using a Mac platform. I circumvented this by getting tinyxml libraries for mac, and then adding them to the Cmakelist.
For example: "include_directories(src /usr/local/Cellar/tinyxml2/7.0.1/include/)
link_directories(/usr/local/Cellar/tinyxml2/7.0.1/lib)"
I have not gotten around, due to time, to figuring out a way to integrate generate the right include paths dynamically. If I do, I will send you guys a pull request, so that you can have Mac support.

Misscelan
Curious PSXDEV User
Curious PSXDEV User
Posts: 21
Joined: Dec 11, 2016

Post by Misscelan » July 20th, 2019, 3:23 am

First of all, thanks for taking the time to work on this!

I decided to give it a try today and came across a problem:
I have a file in this location: "Data\Models\LEVEL001.GAL"

If I try to include it in the xml like so:

Code: Select all

<dir name="DATA" srcdir="DATA">
	<dir name="MODELS" srcdir="MODELS" >
		<file name="LEVEL001.GAL" type="data" source="LEVEL001.GAL"/>
	</dir>
</dir>
I get an error:
" Parsing directory tree...
ERROR: File not found: MODELS/LEVEL001.GAL
"

It works however if I delete the first and last line and change the second line to

Code: Select all

<dir name="MODELS" srcdir="DATA/MODELS" >
Is that the intended behaviour or am I missing something?

Thanks!

User avatar
NITROYUASH
Verified
Serious PSXDEV User
Serious PSXDEV User
Posts: 124
Joined: Jan 07, 2018
I am a: Game Designer
PlayStation Model: SCPH-5502
Location: Russian Federation
Contact:

Post by NITROYUASH » July 20th, 2019, 3:34 am

Try reducing the number of characters.
LEVEL001.GAL -> LV01.GAL

User avatar
LameGuy64
Verified
Psy-Q Enthusiast
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:

Post by LameGuy64 » July 20th, 2019, 11:32 am

I think that is a limitation in the CD libraries of the PsyQ/Programmers Tool SDK. I never ran into an issue creating large images with multiple directory levels in MKPSXISO (though I usually test them by browsing the contents in Windows), didn't find any missing file problems with the most recent version if I remember correctly.
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.

flynnz
Interested PSXDEV User
Interested PSXDEV User
Posts: 5
Joined: Feb 23, 2020

Post by flynnz » March 6th, 2020, 9:33 am

Hey all

I am trying to get a game I helped make on the Net Yaroze a very long time ago playable on my PSIO.
The game I am trying to get to run (light cycle arena) was recently shown on ModernVintageGamer's Net Yaroze video (he also put a link to the game in the video description if anyone wants to try it out)

So I guess my question is, is there a noob guide that explains how to use MKPSXISO with a Net Yaroze EXE? I read through the XML, and most of it makes sense, but I am still getting "mismatched element" errors, even after commenting out options in the example.xml I seemingly don't need (though, I started with some options on because I am not all that sure which options I need on or not). I would love a simple guide to convert a Net Yaroze EXE file to a working ISO with an injected system.cnf (licensing the iso seems super straight forward using Psx Boot Editor?). or is this not possible because every Net Yaroze/exe is different, so there can be no easy or 'default' guide?

Sorry if I worded this poorly, I wish I knew more to articulate my question better.

Thanks guys.

User avatar
Shadow
Verified
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » March 6th, 2020, 11:34 am

That Yaroze file has already been combined (the header already contains "COMBINE version 1.00"). So, just rename it to MAIN.EXE and master it to a BIN file. The PlayStation (including PSIO) will boot it (even without a SYSTEM.CNF sheet). If you can't do it, I'll do it for you. Just let me know.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

flynnz
Interested PSXDEV User
Interested PSXDEV User
Posts: 5
Joined: Feb 23, 2020

Post by flynnz » March 6th, 2020, 12:52 pm

Again, sorry for all the newbness, but not even sure how to master it to a BIN the right way. (every time I try, I can't even get ePSXe to load it via the image option)

If you wouldn't mind taking a crack at it, that would be awesome.
The file can be found here (though it sounds like you have it already :) ).

https://archive.org/details/tron_20200224

User avatar
Shadow
Verified
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » March 7th, 2020, 4:26 pm

Here you are. Licensed as an American image.

http://www.psxdev.net/forum/download/fi ... ew&id=1631
You do not have the required permissions to view the files attached to this post.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

flynnz
Interested PSXDEV User
Interested PSXDEV User
Posts: 5
Joined: Feb 23, 2020

Post by flynnz » March 8th, 2020, 5:26 am

Thank you! Can't wait to try it out.

sodthor
What is PSXDEV?
What is PSXDEV?
Posts: 3
Joined: Jun 14, 2020

Post by sodthor » July 1st, 2020, 12:43 am

Hi,

Which cd burner do you use?

I'm not able to produce a bootable/fully working cd...

ImgBurn: don't boot but works launching the exe from XPlorer/Caetla and XA playback is OK
AnyBurn: boot but XA doesn't play

Burning with ImgBurn gives me verification message errors (on the XA file).

Thor

sodthor
What is PSXDEV?
What is PSXDEV?
Posts: 3
Joined: Jun 14, 2020

Post by sodthor » July 1st, 2020, 1:34 am

Tried with Alcohol 120% (free) with PS1 profile and have a mix: it boots (slowly) and one xa track (the first one) doesn't play (starts for 1s then stops).

sodthor
What is PSXDEV?
What is PSXDEV?
Posts: 3
Joined: Jun 14, 2020

Post by sodthor » July 1st, 2020, 5:51 pm

It seems to be my PSX, it runs original PAL and JPN games (boot is very slow), but not burned cd (stops after license screen).

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests