1. Possible hook?

So I was messing around on lego pirates of the carribean (again) and was searching for a jump height addy, and got down to one result. It seemed an odd addy to be stored at, so I was cautious not to write too high. I saw that when I jumped the value was 1, when I landed it was 0... so I put the value to 2 (not sure why now that I think about it, I should have tried 1 first) and turned it on. When I went to jump, I froze half way to the climax of the jump. I think I read that hooks could freeze your game if you nopped it... but I don't think it was a hook. I know I should just blow it off as whatever, but for the sake of learning I had to ask what it could possibly be.

It was stored around 0x017 I believe, either that or 0x0017... it was damn high.

0

2. hmm.. a hook has to be 0x03E00008 i believe.

0

3. Originally Posted by sdrawkcab
hmm.. a hook has to be 0x03E00008 i believe.
If it was stored at 0x017 you're working in the stack... So no hooks would be stored there. If it was in 0x0017 that is a different story but no it is not a hook. 0x03E000008 is a jr ra which ends a function. I may be wrong though it's been a while...

0

4. oh my bad i was thinking of making a hook for a joker. ah thats awkward. any way a hook is a J \$ or a Jal \$ and i pretty sure the value "1" is an unkown cmd (correct me if im wrong). well a hook is just changeing a jr ra to a J \$ or Jal \$ so thats why i was thinking of jr ra. a hook basicly just jumps to the start of a routine. J \$ will normaly look something like this 0x0912E700. but there kinda pointless if you screw with them you normally freeze.. (unless you know where it jumps to)

0

5. Yeah, I kind of concluded it wasn't a hook, just wondered what it was.

Also, I now have a question.... 1 is an unknown command? Lol that might be some of my difficulties... I was going off of my wii knowledge, where 1 was active, or used, and 0 was unactive, or not being used... if that makes sense. You see, I thought I could find an addy that switches between 0 and 1, run for example, so that it would never be 0, but always 1 so whenever you walk your running.

That's a poor example, I suppose, but if you understood what I meant.... I left out the walking value though... we'll just call that 0. Whatever, aha. c:

0

6. @Crimson 0 or 1 can still be a sort of on and off switch. Good luck with that though.

Sent from my LG-P506 using Tapatalk

0

7. first of all a hook is just an entry/attachment point for a forced subroutine. normally a hook is a j, jal, or jr ra. respectively they are jump, jump and link, and jump to return address.

the 'hooks' are usually those commands because thats how mips moves around from sub to sub at a million instructions per second.

technically all you have to do is jump to your subroutine from any location that has a constantly active loop. a way to test is find a jr ra, nop it, and if you freeze, chances are its an active hook.

you can rewrite lines into jumps, u can change a j to jl or jr ra into j then jr ra at the end of your sub. as long as you can jump to and out of your sub without an exception, ur golden.

jal - jump and link, which jumps to an address while storing the ra (return address) into the \$31 register, or simply the ra register.

as for the role of 1 and 0, those are boolean values stored hexidecimally. when a logical comparison is made, there is a False (0) or a True(1) returned.

my guess is that the 1 or 0 in the jump routine was used by something else to trigger an animation sequence, gravity calculation, or something else.

0

8. Nice explanation aids. Are you a computer science teacher?

0

9. no, just a coder.

0

10. Lol. That's what I thought about the 0 and 1's, just was confused by an earlier explanation.

Ooh well.

Thanks for the help, everyone. I realize the psp scene is dead, so I am suprised at all the help I've gotten.

0

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•
All times are GMT -10. The time now is 08:40 PM.