PS3 Tutorial: PS1 2gb+ /4 or 5 disc corrupt EBOOT Fix by mndx

Discussion in 'Tutorials & Guides' started by mndx, Oct 16, 2018.

  1. 73
    46
    17
    mndx

    mndx Member

    Joined:
    Sep 19, 2018
    Messages:
    73
    Likes Received:
    46
    Trophy Points:
    17
    It took a while to actually sit down and document this but anyways here's a step by step tutorial to fix your corrupt 2GB+ PS1 EBOOTS:

    Requirements:

    Downloads:
    -ePSXe https://bit.ly/2Ul1ci8 (for viewing disc index)
    -HxD https://bit.ly/2QcOgJN (for editing EBOOT.PBP)

    Links to open in browser:
    -Hex Calculator https://bit.ly/2MzLxc1 (for hexadecimal calculations)
    -Online Hex Converter https://bit.ly/2Tfst5t (for converting values to Little Endian)

    Steps:

    1.In ePSXe open your EBOOT to see which discs are corrupted

    Each disc in the EBOOT has three important values that are needed for the fix:
    Disc Position/PSISOIMG0000 Position/Iso Position
    Here's how to edit/correct/verify the three values for each disc:


    PSISOIMG0000 Position:

    2.Open EBOOT in HxD
    3.Press Ctrl+F and enter PSISOIMG0000 in the Text-string searchfield
    4.Choose All as your search direction and press Search all
    5.All the correct PSISOIMG0000 offsets start with a 50 value (letter P as decoded text), if an offset starts with a 00 value delete the zeroes
    6.Once all the PSISOIMG0000 positions are correct write down their offsets

    Once all the PSISOIMG0000 positions are correct we're going to find and fill in the correct Disc positions

    Disc Position:

    7.Go to the Hex Calculator website
    8.Enter the offset disc 1 and subtract 10000 from that value
    9.The result of that calculation as an hex value is the Disc Position for disc 1, write this value down
    10.Repeat steps 8 and 9 for the remaining discs
    11.Go to the Online Hex Converter website and enter the hex value of the Disc Position for disc 1
    12.This will convert the hex value to Little Endian, write this value down
    13.Repeat steps 11 and 12 for the remaining discs
    14.Go back to HxD and press Ctrl+G, enter 10200 (make sure the hex and begin option are selected) and click OK

    Offsets 10200-10217 are reserved for the Disc Positions, four entries per disc
    For example offsets 10200-10203 have been reserved for disc 1,10204-10207 for disc 2 and so on


    15.Enter the Little Endian values of step 13 for each disc in the correct order
    16.When done, fill the remaining entries up to and including offset 10217 with zero values

    Iso Position:

    17.Press Ctrl+F in HxD, select the Hex-values tab and enter the following value: 00 FF FF FF FF FF FF FF FF FF FF 00 00 02 00 02
    18.Choose All as your search direction and press Search all, write down the offsets of the search hits per disc
    19.To verify if the Iso Positions are correct go to the Hex Calculator website
    20.Enter the PSISOIMG0000 values of the discs and add 100000 for the correct Iso Position per disc
    21.Compare the results of step 18 and step 20, the 4th or 5th disc might have an incorrect Iso Position
    22.In HxD press Ctrl+E, for Start-offset use the value of step 20, for End-offset deduct -1 of the result of step 18 (for example 8001-1=8000)
    23.Make sure hex is selected and press OK, then press Del and OK again
    24.Repeat this step for other incorrect Iso Positions

    Last but not least the STARTDAT needs to be corrected

    STARTDAT Correction:

    25.In Hxd press Ctrl+F and search for Text-string STARTDAT
    26.Remove all the zeroes before STARTDAT and write down new the new offset value of STARTDAT
    27.Go to the Online Hex Converter website and convert this offset to Little Endian
    28.In Hxd press Ctrl+G and go to offset 10010, Paste write the value of step 27 in offsets 10010-10013
    29.Press Ctrl+S to save the EBOOT
    30.In ePSXe open your EBOOT to verify if all the discs are correct

    Done!

    BTW it would be awesome if somebody can convert these steps in an hex editing script (maybe you @ayassinsayed since you made that awesome cdda script?)
     
    Last edited: Jan 26, 2019
  2. 73
    46
    17
    mndx

    mndx Member

    Joined:
    Sep 19, 2018
    Messages:
    73
    Likes Received:
    46
    Trophy Points:
    17
    Also strange:

    It turns out that [email protected] is using some kind of compression on the official EBOOTS. If i decrypt the official psn pkg of FF8 and extract the EBOOT with psxtract, the ISO's that are generated are matching 1:1 with the images that i've made with the retail discs. However if i try to turn the extracted iso's back to EBOOT, even with compression on 9 i can't get them as small in size as the official ones. So people with knowledge about the structure of an EBOOT, holler please! I think we can reverse engineer this.
     
    Last edited: Oct 16, 2018
  3. 1,581
    1,702
    297
    pink1

    pink1 Moderator Developer

    Joined:
    Feb 25, 2015
    Messages:
    1,581
    Likes Received:
    1,702
    Trophy Points:
    297
    Gender:
    Male
    mndx likes this.
  4. 346
    105
    97
    ayassinsayed

    ayassinsayed Member

    Joined:
    Mar 16, 2018
    Messages:
    346
    Likes Received:
    105
    Trophy Points:
    97
    Gender:
    Male
    Bro did u see popstation source code in c++ in the past i read the code u can found useful information in it for eboot.pbp and i have link for russien web site that have info about fix multi cd and info about the header i will search for it and give u link for that page that have fix cd > 2gb and multi cd.


    Sent from my iPhone using Tapatalk
     
    mndx likes this.
  5. 30
    89
    37
    The Darkprogramer

    The Darkprogramer Developer

    Joined:
    Mar 14, 2018
    Messages:
    30
    Likes Received:
    89
    Trophy Points:
    37
  6. 30
    89
    37
    The Darkprogramer

    The Darkprogramer Developer

    Joined:
    Mar 14, 2018
    Messages:
    30
    Likes Received:
    89
    Trophy Points:
    37
    Okay lets see
    ..... if im not mistaken i would geuss sony did something similair to the way we do cso's compresion the entire disc is still there just super compressed and the psp reads it correctly

    So id start by zlib compressing them the sameway we did cso files

    @mndx mind using boosters cso converter ?
    Then see if popstation or any other can convert them for you
     
    ayassinsayed and pink1 like this.
  7. 1,581
    1,702
    297
    pink1

    pink1 Moderator Developer

    Joined:
    Feb 25, 2015
    Messages:
    1,581
    Likes Received:
    1,702
    Trophy Points:
    297
    Gender:
    Male
    I had a feeling you'd have some ideas about this ;)
     
    ayassinsayed likes this.
  8. 30
    89
    37
    The Darkprogramer

    The Darkprogramer Developer

    Joined:
    Mar 14, 2018
    Messages:
    30
    Likes Received:
    89
    Trophy Points:
    37
    LOL it might work we never know xD
    Also @mndx have you tried popstation ?
     
    pink1 likes this.
  9. 73
    46
    17
    mndx

    mndx Member

    Joined:
    Sep 19, 2018
    Messages:
    73
    Likes Received:
    46
    Trophy Points:
    17
    Thanks for your reply, sure i'll give the converter a try after work. I'll have to see wheter bin/cue converted to iso works correctly, since the 1st track is always in mode2/form1 for ps1 games. By converting to iso it will switch to mode1. For PSP games it shouldn't be a problem, but i'm using it for ps1 eboots on a ps3. Also i'll have to see if the ps1_emu on the ps3 accepts compressed eboots in this form, since the regular psx2psp compression makes the games unbootable on the ps3. But like i said, after work i'll try everything you've said.

    UPDATE:
    As expected cue/bin ps1 images to iso will break the game. And if i'm not mistaken iso's are single track archive containers, so games with CDDA or subchannel data are also a no-go.
    I've send @Omage a message, it seems he had found a fix:

    http://www.psx-place.com/threads/psx-to-pkg-conversion.9719/page-2#post-45004

    Or maybe @MOST Hated could help us?

    Yes the commandline popstation an popstation_md, RS-GUI PopStationMD v3.00, pops_md_free_gui_v7.1b, icetea 1.3, ImpalerPopStation, Copstation and psx2psp 0.7.1, 1.3 and 1.4.2. All of them (that support multidisc) will break the eboot if the size is bigger than 2 gb.

    once again thanks for the reply
     
    Last edited: Oct 17, 2018
    The Darkprogramer likes this.
  10. 30
    89
    37
    The Darkprogramer

    The Darkprogramer Developer

    Joined:
    Mar 14, 2018
    Messages:
    30
    Likes Received:
    89
    Trophy Points:
    37
    Goodluck with it bud
     
    mndx likes this.
  11. 73
    46
    17
    mndx

    mndx Member

    Joined:
    Sep 19, 2018
    Messages:
    73
    Likes Received:
    46
    Trophy Points:
    17
    The initial fix works, i've been able to get ffviii running. I'll try later on with a 5 disc game and write a step by step guide.
     
  12. 73
    46
    17
    mndx

    mndx Member

    Joined:
    Sep 19, 2018
    Messages:
    73
    Likes Received:
    46
    Trophy Points:
    17
    Can also confirm that a 5 disc game works, fixed the Riven EBOOT (3,48 gb) and got it running. FF8 (4 discs) loaded up fine with saves for the last disc, Riven disc 5 boots up but since i've no save for disc 5 i can't confirm that the conversion is 100% correct. Will do that this weekend if i've the time.
     
    sandungas likes this.
  13. 73
    46
    17
    mndx

    mndx Member

    Joined:
    Sep 19, 2018
    Messages:
    73
    Likes Received:
    46
    Trophy Points:
    17
    Tutorial can be found in the first post, it took a while but that's life. @The Darkprogramer after further digging i found out that the compression of PS1 EBOOTS is done with PGD files inside the DATA.PSAR file. I found a tool made by Hykem that can decrypt and decompress these files, but is there a way to convert a file to PGD? It seems that PGD compression is the only compression the ps1 emulator on the PS3 accepts. I did my research and found a couple of things here and there...but i think your PSP knowledge goes way deeper than mine.
     
  14. 5,773
    5,388
    622
    sandungas

    sandungas Moderator Developer

    Joined:
    Dec 31, 2014
    Messages:
    5,773
    Likes Received:
    5,388
    Trophy Points:
    622
    Location:
    Babylon 20xxE series
    @mndx im not sure there is some special reason why this tutorial was located under "ps3 general discussion" subforum, but i just realized about it and i moved to the tutorials subforum, thx for writing it
     
    mndx likes this.
  15. 73
    46
    17
    mndx

    mndx Member

    Joined:
    Sep 19, 2018
    Messages:
    73
    Likes Received:
    46
    Trophy Points:
    17
    @sandungas ah thnx for doing that! totally forgot to ask a mod when i was done writing the tutorial. This thread actually started with a question/suggestion about the problem and how to maybe be able to fix it. After a while i was able to find some posts on other (some foreign) forums and piece them together which led to a fix and eventually this tutorial. So that was the very very ''special'' reason for it to be under the now incorrect subforum, once again thnx for relocating it.
     
    sandungas likes this.

Share This Page