Hi all,
tl;dr: Shadow of the Colossus main binary doesn't seem to contain the entire code of the game...where else can I look?
I'm a bit stumped with a technical question regarding PS2 games right now and I'm hoping somebody here can help me.
I love writing assembly based cheat codes for games and I have a ton of experience doing just that on Nintendo systems but I'm kinda new to the Playstation side of things.
Anyway, right now I'm trying to hack Shadow of the Colossus for the PS2 to give myself infinite health and infinite stamina. (Yes, of course, cheats like this definitely already exist but I want to do it myself )
Using the debugger in PCSX2 I was quickly able to determine the function which calculates the player's health and stamina and I was able to patch two branch instructions so that the current max health and stamina values that a player can have at any point in the game are always written into the offsets for the current values, so the game literally always stores the max values instead of a subtracted value. So that's nice. I was then able to write a pnach file for PCSX2 which handles that exact patch and I'm pretty sure I have also made a correct CHT file for OPL to play the game using my cheats on real hardware, which is always my goal. So far so good.
However, my end goal would be to patch those two instructions directly in the executable of the game, allowing myself to burn a copy of the game using my hack and it would immediately work on all systems that are able to run backups without having to rely on ps2rd or anything.
My problem is: I cannot find the instructions that I found in RAM with PCSX2 and that I modify for my cheats anywhere in the game's binary (SCES_533.26) nor anywhere else in the entire ISO.
Are some PS2 executables compressed? I don't think so because I couldn't find anything about that online but that's the only explanation I have left.
Binwalk tells me that IOPRP300.IMG also contains ELFs but those also don't seem to contain the bytes that I'm looking for?
I know that there are ways to basically hardcode pnach patches directly into a game by basically hardcoding in a patch handler into the game but this really isn't what I'm looking for. I know that the type of mod that I'm looking to do isn't necessary or the only way to achieve playing a game with cheats but I'm just trying to learn from this.
Any help?
tl;dr: Shadow of the Colossus main binary doesn't seem to contain the entire code of the game...where else can I look?
I'm a bit stumped with a technical question regarding PS2 games right now and I'm hoping somebody here can help me.
I love writing assembly based cheat codes for games and I have a ton of experience doing just that on Nintendo systems but I'm kinda new to the Playstation side of things.
Anyway, right now I'm trying to hack Shadow of the Colossus for the PS2 to give myself infinite health and infinite stamina. (Yes, of course, cheats like this definitely already exist but I want to do it myself )
Using the debugger in PCSX2 I was quickly able to determine the function which calculates the player's health and stamina and I was able to patch two branch instructions so that the current max health and stamina values that a player can have at any point in the game are always written into the offsets for the current values, so the game literally always stores the max values instead of a subtracted value. So that's nice. I was then able to write a pnach file for PCSX2 which handles that exact patch and I'm pretty sure I have also made a correct CHT file for OPL to play the game using my cheats on real hardware, which is always my goal. So far so good.
However, my end goal would be to patch those two instructions directly in the executable of the game, allowing myself to burn a copy of the game using my hack and it would immediately work on all systems that are able to run backups without having to rely on ps2rd or anything.
My problem is: I cannot find the instructions that I found in RAM with PCSX2 and that I modify for my cheats anywhere in the game's binary (SCES_533.26) nor anywhere else in the entire ISO.
Are some PS2 executables compressed? I don't think so because I couldn't find anything about that online but that's the only explanation I have left.
Binwalk tells me that IOPRP300.IMG also contains ELFs but those also don't seem to contain the bytes that I'm looking for?
I know that there are ways to basically hardcode pnach patches directly into a game by basically hardcoding in a patch handler into the game but this really isn't what I'm looking for. I know that the type of mod that I'm looking to do isn't necessary or the only way to achieve playing a game with cheats but I'm just trying to learn from this.
Any help?