Don't mind me here. I'm just double posting.
Anyway, I've found that the instruction at 0x00497184 updates absolute camera position. I believe this because, once in third person, the following happens when you NOP the instruction there:
Here is the original code in the area:
Code: Select all
0x00497170 <unknown_text+598384>: addi r4,r3,-4
0x00497174 <unknown_text+598388>: mtctr r0
0x00497178 <unknown_text+598392>: lwz r3,4(r4)
0x0049717c <unknown_text+598396>: lwzu r0,8(r4)
0x00497180 <unknown_text+598400>: stw r3,4(r5)
0x00497184 <unknown_text+598404>: stwu r0,8(r5)
0x00497188 <unknown_text+598408>: bdnz+ 0x497178 <unknown_text+598392>
0x0049718c <unknown_text+598412>: blr
0x00497190 <unknown_text+598416>: mflr r0
0x00497194 <unknown_text+598420>: stw r31,-4(r1)
0x00497198 <unknown_text+598424>: addis r3,r2,6
0x0049719c <unknown_text+598428>: stw r30,-8(r1)
Here is the modification:
Code: Select all
0x00497170 <unknown_text+598384>: addi r4,r3,-4
0x00497174 <unknown_text+598388>: mtctr r0
0x00497178 <unknown_text+598392>: lwz r3,4(r4)
0x0049717c <unknown_text+598396>: lwzu r0,8(r4)
0x00497180 <unknown_text+598400>: stw r3,4(r5)
0x00497184 <unknown_text+598404>: nop
0x00497188 <unknown_text+598408>: bdnz+ 0x497178 <unknown_text+598392>
0x0049718c <unknown_text+598412>: blr
0x00497190 <unknown_text+598416>: mflr r0
0x00497194 <unknown_text+598420>: stw r31,-4(r1)
0x00497198 <unknown_text+598424>: addis r3,r2,6
0x0049719c <unknown_text+598428>: stw r30,-8(r1)
To do this, make sure your in 3rd person by whatever means you want in Halo FV PPC and then, when you've attached GDB to it, enter the following:
print *(unsigned int *)0x00497184=0x60000000