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:
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?)
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!
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: