PS3 PSXclassic's working with decompressed ISOs (w/ Tutorial)

Additional Research from PS3 developer zecoxao as the dev shares some information & findings from ZeroTolerance pertaining to PSXclassics working with decompressed ISOs. Great news coming for the PlayStation 1 gamer on CFW enabled PS3 consoles. See full details and the tutorial in the various quotes from the source (PlayStationHAX) link provided:


50394d1393303787-ps-one-classics-vita.png


zecoxao said:
It's simple to do.
  • forge edat, use psx2psp to forge eboot and pack everything up.

Credits to ZeroTolerance for the information and findings.

Here are the tools (Windows only) :https://mega.nz/#F!lhdmgKxS!xOWydW41HkkK8TiqoP6ZIw


package.conf (example) :

Code:
Content-ID = UP9000-NPUJ00594_00-0000000000000001 
k_licensee = 0x00000000000000000000000000000000
TitleID = SLUS00594 
DRM_Type = Free
Content_Type = PS1emu 
PackageVersion = 01.00

make_npdata command to sign ISO.BIN.DAT (example):
Code:
make_npdata -e ISO.BIN.DAT ISO.BIN.EDAT 1 1 1 0 16 3 00 UP9000-NPUJ00594_00-0000000000000001 5
Apparently (and this is something Sony LOVES doing) they decided to use the code of a tool called PSX2PSP as their own and made psxclassics. the compression algo is there (although modified) and the isos come out uncompressed or compressed if we choose to.
The only 2 differences i've found so far (by using psxtract from Hykem) were that the crypto they use and PSX2PSP's (aparent lack of) crypto and the compression algo.

Sorry for the clarification

Tutorial:

1.) create pbp file using ps1topsp tool without using any compression methods.
2.) extraxt the data.psar from it (this file is required for creating ISO.BIN.EDAT)
3.) extract iso headers and isos from data.psar
4.) extract the sector table from iso header.
5.) use hasher util with each iso and sector table to create the the table with proper sha1 hashes.
6.) insert the hash tables to their iso headers
7.) fix the iso offsets into iso headers.
8.) create ISO.BIN.DAT using modified iso headers.
9.) create ECDSA signature at the tail og the ISO.BIN.DAT
10.) encrypt ISO.BIN.DAT to ISO.BIN.EDAT
11.) make pkg
12.) Profit!
Download: Tools (Windows)


Source:
PlayStationHAX.it
 
Last edited:
It's the 80028F17 error.. I think it's a malformed pkg error..
I get this through both the manual 'psn_package_npdrm.exe' create and the 'make pkg' by [MENTION=89]aldostools[/MENTION]
I never had problems making pkg's though..

I'm not sure what's going on.. I think the append R/S value hex to iso.bin.dat isn't correct
Due to 16 bytes count for most of this ps3 stuff, but the append falls short on the last offset..
 
Last edited:
80028F17 is happen with PS1 PSN games (either due to customed SFO or eboot.pbp). Also can happen if your target id is 81, [strike]because is sometimes region related (but i think only due to ps2 titles but i can't be wrong). [/strike] target id 81 is decr so is not correct...

I read now instruction from first page and i totally can't help without practice. :( But if something should have 16 bytes and have 15 then is probably wrong, but this you already know. you need to wait for someone smarter than me.
 
Last edited:
80028F17 is happen with PS1 PSN games (either due to customed SFO or eboot.pbp). Also can happen if your target id is 81, [strike]because is sometimes region related (but i think only due to ps2 titles but i can't be wrong). [/strike] target id 81 is decr so is not correct...

I read now instruction from first page and i totally can't help without practice. :( But if something should have 16 bytes and have 15 then is probably wrong, but this you already know. you need to wait for someone smarter than me.

Yeah. I'm stumped.. Thanks for looking out though. I do appreciate the help.
Something is wrong and it's probably something stupid & easily overlooked :/
 
signature is 0x28 bytes, it should be appened at the end of 0x10000 ISO.bin

It was something stupid. I was adding the 00 at the beginning of the R/S value in the ISO.bin.dat

Single disc games are working okay but on multi-disc games you say:

same method but append isos

example:
iso.dat: <-(iso1(eof)iso2(eof)iso3(eof)iso4)->

I'm trying to do NTSC Fear Effects and I'm having no luck. Each game has four discs.
I have the EU Pal PSN versions but they don't work correctly. Audio issues.

Looking at those ISO.BIN.DAT.. There are 5 instances of game id in them. The first game id is in there twice.
I guess for reading main game and first disc.. Then game id's 2, 3 and 4 for the disc switching?

These aren't created in the custom ISO.BIN.DAT generated with these tools after I append the iso's in the iso.dat.

Am I missing something here?

edit:

I guess it's hit or miss because cdda games have no bgm either..
 
Last edited:
It was something stupid. I was adding the 00 at the beginning of the R/S value in the ISO.bin.dat

Single disc games are working okay but on multi-disc games you say:



I'm trying to do NTSC Fear Effects and I'm having no luck. Each game has four discs.
I have the EU Pal PSN versions but they don't work correctly. Audio issues.

Looking at those ISO.BIN.DAT.. There are 5 instances of game id in them. The first game id is in there twice.
I guess for reading main game and first disc.. Then game id's 2, 3 and 4 for the disc switching?

These aren't created in the custom ISO.BIN.DAT generated with these tools after I append the iso's in the iso.dat.

Am I missing something here?

edit:

I guess it's hit or miss because cdda games have no bgm either..

you need to create the table for each disc, then append 1 to 2 to 3 to 4...etc
 
you need to create the table for each disc, then append 1 to 2 to 3 to 4...etc

So I created each eboot separately to get their table.dat & header.bin
I append each table together. It made a 3mb table. Ran ps1iso.exe and got a 4mb final.dat
Ran fix_iso-bin-dat.py and got 1mb iso.bin. Signed it and forged edat.
No dice! 2,3,4 headers were missing in iso.bin.dat

Since the header.bins were missing..
I tried appending the table.dats & header.bins together. 3mb table.dat & 4mb header.bin
Ran ps1isoexe and got a 4mb final dat. Ran fix_iso-bin-dat.py and got a 1mb iso.bin.dat
Signed and forged. Headers still missing. Same 80XXX error.

Now I try creating each iso.bin.dat and append them together to make a 4mb iso.bin.dat
Make the edat. Nothing same ps3 error.

I notice the 3rd disc iso.bin.dat doesn't contain the game id no matter how many times I rip the disc, create eboot, create table/header, create iso.bin
So I place it in manually at 0x400 like the others have it. Forge the edat. Still won't work.

Now I decide to take a look at the 4mb pal psn iso.bin.dat file again.

It starts with PSTITLEIMG000000 with the first disc id in an extra spot.

Followed by the 4 PSISOIMG0000 with the 1,2,3,4 game id in each sector
.
I try appending the PSTITLEIMG000000 extra spot sector at the start of my iso.bin.

Changing the game id from SLESxxxxx to SLUSxxxxx accordingly.
Save 4mb iso.bin.dat and forge edat. Nothing. Same error. Doesn't work.

I'm just frustrated now.
It's either that 3rd disc game id not being written to it's iso.bin.dat or the PSTITLEIMG000000 extra sector missing.
 
Last edited:
So I created each eboot separately to get their table.dat & header.bin
I append each table together. It made a 3mb table. Ran ps1iso.exe and got a 4mb final.dat
Ran fix_iso-bin-dat.py and got 1mb iso.bin. Signed it and forged edat.
No dice! 2,3,4 headers were missing in iso.bin.dat

Since the header.bins were missing..
I tried appending the table.dats & header.bins together. 3mb table.dat & 4mb header.bin
Ran ps1isoexe and got a 4mb final dat. Ran fix_iso-bin-dat.py and got a 1mb iso.bin.dat
Signed and forged. Headers still missing. Same 80XXX error.

Now I try creating each iso.bin.dat and append them together to make a 4mb iso.bin.dat
Make the edat. Nothing same ps3 error.

I notice the 3rd disc iso.bin.dat doesn't contain the game id no matter how many times I rip the disc, create eboot, create table/header, create iso.bin
So I place it in manually at 0x400 like the others have it. Forge the edat. Still won't work.

Now I decide to take a look at the 4mb pal psn iso.bin.dat file again.

It starts with PSTITLEIMG000000 with the first disc id in an extra spot.

Followed by the 4 PSISOIMG0000 with the 1,2,3,4 game id in each sector
.
I try appending the PSTITLEIMG000000 extra spot sector at the start of my iso.bin.

Changing the game id from SLESxxxxx to SLUSxxxxx accordingly.
Save 4mb iso.bin.dat and forge edat. Nothing. Same error. Doesn't work.

I'm just frustrated now.
It's either that 3rd disc game id not being written to it's iso.bin.dat or the PSTITLEIMG000000 extra sector missing.

i suggest you talk with ZeroTolerance over at playstationhax.it, since he had the original idea of the psxclassics decompressed theory. he knows how to make multidisc work, that i assure you :)
 
i suggest you talk with ZeroTolerance over at playstationhax.it, since he had the original idea of the psxclassics decompressed theory. he knows how to make multidisc work, that i assure you :)

Okay will do. Thank you for all your help. You did point me in the right direction.
I do have single disc games with xa audio working, cdda games have no bmg oddly since they work with bmg in multiman.
I just need these two games running digitally with disc switch in the game menu. No disc / usb switching with mm/iris/webman.
Square only released pal versions and the voices sound like chipmunks when its ntsc patched :/
I'm not trying to play "Alvin & The Fear Effects" haha! Thanks again! :)
 
Hopefully no hate for the bump, but link is dead. Could someone re-up the tools.... or pm me links please. Whatever works, cheers.
 
Here goes my compiled version of updated tools from zecoxao and ZeroTolerance.

ISO.BIN.DAT is automated now with the new tool. Python 2.7 is still needed.
Multidisc games work now but the size limit on PSX2PSP 1.4 is a little under 2GB.
Anything over the size limit will black screen.
XA audio games convert fine CDDA games will have no BGM.

CDDA audio is compressed somehow.. Check this out:

http://playstationhax.it/forums/topic/2911-ps1-classics-audio-tracks-need-spu-reverse-engineer/

PSX Classics Tools Instructions:
Code:
Install python 2.7
Use pip to install ecdsa
Create EBOOT.PBP from iso with PSX2PSP (Compression:0-None)
Place EBOOT.PBP in workbench directory
Drop EBOOT.PBP into "make_psone_classic_metadata.exe"
Run sign.py (on command line for R/S value data output)
Copy R and place it on the end of ISO.BIN.DAT (append, leave out first 00)
Copy S and place it on the end of ISO.BIN.DAT after R (append, leave out first 00)
Take note of title id
Encrypt ISO.BIN.DAT:                                          (Title id)
make_npdata -e ISO.BIN.DAT ISO.BIN.EDAT 1 1 1 0 16 3 00 UP9000-SLPS01901_00-0000000000000001 5
Replace EBOOT on a psx classic decrypted pkg (or use template)
Replace ISO.BIN.EDAT on a psx classic decrypted pkg (or use template)
Replace Pictures (or use template)
Replace Param.SFO (or use template)
Make PKG.
Done!

PSX Classics Tools download:

http://www77.zippyshare.com/v/aNuxXxG1/file.html
 
Last edited:
CDDA games are possible now but it's pretty technical at this stage..
Involving wav to aa3 converting with sony sound forge and hex editing.

Courtesy of @zecoxao GGL0L MrSSL & Anonymous

http://pastie.org/private/kn5qwfmh3py6ux5us9xeug

Source:

playstationhax

To break it down. It's pretty much this:

Open up the CDDA bin/cue and extract the wav files.
Make the CDDA wav files to aa3 with sony sound forge.. (Only way to get proper atrac3 files.)
Delete the headers in each aa3 file in hex.
Run them through the new tools. (Creating enc.aa3 with random 4 bytes)
Make an EBOOT.PBP the normal way in PSX2PSP
Open up the EBOOT.PBP in an hex editor (like multidisc fix)
Add all the enc.aa3 files into the EBOOT.PBP in hex editor.
Run the new EBOOT.PBP through the edat creator
 
Last edited:
CDDA games are possible now but it's pretty technical at this stage..
Involving wav to aa3 converting with sony sound forge and hex editing.

Courtesy of @zecoxao GGL0L MrSSL & Anonymous

http://pastie.org/private/kn5qwfmh3py6ux5us9xeug

Source:

playstationhax

To break it down. It's pretty much this:

Open up the CDDA bin/cue and extract the wav files.
Make the CDDA wav files to aa3 with sony sound forge.. (Only way to get proper atrac3 files.)
Delete the headers in each aa3 file in hex.
Run them through the new tools. (Creating enc.aa3 with random 4 bytes)
Make an EBOOT.PBP the normal way in PSX2PSP
Open up the EBOOT.PBP in an hex editor (like multidisc fix)
Add all the enc.aa3 files into the EBOOT.PBP in hex editor.
Run the new EBOOT.PBP through the edat creator

I'm on your gravy train my friend :) Let's see what happens now
 
@ransom

Man.. It is too much and I have GGL0L trying to walk me through it..
I figured out multidisc eboot hex editing from him and got that right but this.. Wow.
 

Featured content

Trending content

Back
Top