PS2 Game Hacking - Cheat working in emulator, not on real hardware

MichiS97

Member
Hi all,

I'm going insane right now and I need help :D
So, I've done some hacking in God of War recently and made two cheats which give me infinite health and infinite magic. The health cheat was a bit more complicated to make but basically I have written my own little subroutine which seems to do its job perfectly well. Same goes for my infinite magic cheat.
However, I decided to also try making a "Exp Multiplier" code which is supposed to multiply the experience points (red orbs) I gain by 8. The cheat is also very simple. At the point where the game decides that one point should be added to my exp, I jump to my own subroutine which shifts the difference left by 3, which in turn multiplies that difference by 8. So far so good.
In PCSX2 that cheat works perfectly. Exactly as it should.
On my actual PS2 in OPL, that multiplier does not work at all. Instead of adding the multiplied difference to my current exp, on my PS2 my exp are just set to zero as soon as I collect a single red orb. No idea why that happens.

My CHT file looks like this if anyone wants to try it:
Code:
"God of War /ID SCES_531.33"
Mastercode
90297638 0C0A5D36

//Infinite Health
201E1568 080B2440
201E156C 46006328
202C9100 3C080076
202C9104 350845C0
202C9108 11040004
202C910C 00000000
202C9110 46016329
202C9114 0807855C
202C9118 00000000
202C911C 46000B06
202C9120 00000000
202C9124 0807855C

//Infinite Magic
201DCA30 46000806

//Exp x8 Multiplier
201D777C 080B244B
201D7784 00000000
202C912C 0200202D
202C9130 000528C0
202C9134 08075DE0
202C9138 00452821

That multiplier code isn't the original one that I made but a slight adjustment which I had hoped would change the behaviour, but it doesn't :(
Again, all three cheats work great on PCSX2 but the Exp multiplier just doesn't work on my PS2.
Does anyone have any idea why there could be a difference between the emulator and the actual console?
I'd appreciate any sort of help.

My setup is OPL is running from my memory card using FMCB and the games alongside all their artwork and the cht files are on my internal SSD. I'm using an official network adapter with a SATA adapter and my PS2 is a SCPH-39004.

Thank you!
 
Alright, sorry mods, I was able to solve it myself.
For future reference and for other hackers out there:
My mistake was that MIPS doesn't allow you to have a jump instruction within in the delay slot of another jump instruction.

You know how in MIPS if you have something like
Code:
move $v0, $s0
jal 0xdeadbeef
add $v1, $a1, $a2
that add instruction would be executed before the instruction at address 0xdeadbeef?

Well, turns out doing something like
Code:
j 0xdeadcafe
jal 0xdeadbeef
add $v1, $a1, $a2
is actually not allowed and is classified as undefined behaviour.
Now I didn't know that and PCSX2 executes this just fine. Let's say you put another jump instruction at 0xdeadcafe that jumps to that "j 0xdeadbeef" instruction, PCSX2 would jump to 0xdeadcafe and then jump back and then execute the jump and link to 0xdeadbeef while still executing that add instruction within the delay slot of the jal instruction.
However, the PS2 doesn't like to do that and does...something...I don't know what it does but it does it wrong ^^

So, finally, if you're looking for a "Red Orb Multiplier" cheat code for the PAL version of the original God of War for the PlayStation 2, here you go:
Code:
//Exp x8 Multiplier
201D7778 080B244B
201D777C 00000000
202C912C 44050000
202C9130 0200202D
202C9134 000528C0
202C9138 08075DDF



Oh boy.
 

Similar threads

Back
Top