Specific PS2 game refuses to boot if any modification is made

Programming related discussions related to game research
SlyCooperReloadCoded
Posts: 29
Joined: Thu Apr 11, 2019 7:39 pm

Specific PS2 game refuses to boot if any modification is made

Post by SlyCooperReloadCoded »

This one is a doozy, but let me start with some backstory.

The game is Star Wars Starfighter, and every time your player craft gets attacked, the camera shakes around violently, so much that it looks like a saturday morning cartoon interpretation of what camera shake is. After looking into the game files, I found a fix. By deleting two lines in a text file, I can disable the camera shaking completely. The PC port and Xbox port of this game gladly accept the change and I can confirm it works. It also works on the game's sequel, Star Wars Jedi Starfighter, both on its PS2 port and the Xbox port.

Here's screenshots of the file, before and after modification:

Before:
https://imgur.com/a/Ktn8bxF

After:
https://imgur.com/a/8tszKRs

Basically I'm deleting the two "ShakeCtrl" lines, successfully disabling camera shaking and making the game actually enjoyable.

The problem I'm facing is that I can't do the same change on the PS2 version. The same file is there and it contains the same text, but ANY modification to this game - even by a single byte in a hex editor - will cause it to fail to boot and will kick you back to the PS2's BIOS screen. I've tried every tool imaginable to rebuild it - ImgBurn, HxD, UltraISO, even CDVDGEN, Sony's official toolset specifically for this purpose - all of them have the same result: the game fails to boot. Even if I rebuild the game with no changes made, it still fails to boot with the same errors.

Here's some video examples:

Here's the unmodified game, ripped straight from the original disc:
https://imgur.com/a/pAUuslF

Here's what happens if I do a 1:1 rebuild with CDVDGEN or any other tool, LBAs and Sizes are correct, the resulting image is the same size, down to the byte:
https://imgur.com/a/d0URGsM

I've tried this on a real PS2 and it does the same thing, so it's not an emulator edge case. Additionally, I've also tried modifying only this one file in a hex editor to make it the same exact size then rebuilding, but that doesn't make a difference. Out of the dozens and dozens of PS2 game's I've modified, this is the only one that doesn't work after rebuilding with any software, all the other ones I've tried work perfectly when rebuilt with ImgBurn.

I've tried everything this planet has to offer, yet nothing works. Could someone help me out here? Is there some secret PS2 game attribute that 99.999999% of disc software doesn't know about?

Edit: I have an update. I was editing the text file incorrectly. After editing it correctly and rebuilding, the loading screen finishes without kicking me back to the BIOS screen, but it instead hangs on a black screen. However, if I use PCSX2's "Skip MPEG" hack which skips intro videos, it gets ingame, but no music or voice lines play:

https://imgur.com/a/XI6nyre

Edit 2: I completely fixed it. Turns out the audio and video files weren't LBA-corrected. TIL some PS2 games rely heavily on LBA.