Results 1 to 7 of 7
  1. #1
    BFP4F <3
    OnE SpliFF
    WeEd's Avatar
    Join Date
    Mar 2010
    Location
    YourAStalkerToLookHere
    Posts
    236
    Points
    837
         User Info     Contact     Gamer ID
    Join Date
    Mar 2010
    Location
    YourAStalkerToLookHere
    Posts
    236
    Points
    837
    Gamer IDs

    Gamertag: phonykissrass PSN ID: WeedCL

    Post Basic Info On Hooks

    For Those who want to learn on mips you'll be dealing with hooks
    this isn't anything technical or deep in so don't worry.

    So What Is This?

    A hook is a Jump most times jal and j but think about j at beginner stage(as its a basic info thread)
    There are tons of them in your game for functions

    Why Do we need this?

    We Need this to call functions as said earlier and when writing a subroutine in ps2dis
    which most times are written in a nop cave (A nop cave is a big area in the game of nop- no operation)So without these when writing or subroutines in nop caves which aren't used how would the commands take place?Thats why we got hooks to call our functions and to call our sub.

    How Do I find these?

    Use your cheat device search 03e00008 hex value (jr ra) and once you start searching hold whatever button you use to cancel the searching by this time you'll have thousands of results copy the address to decoder and change the value to something else like nop and if it freezes its a hook

    How To Use Hooks to Call Our Subroutine

    Easiest Part next to finding them,All you do go in ps2dis to a nop cave In this case we're using j.. so your sub starts at 0x00000e90
    in ps2dis j $08800e90..now dont click ok look where data is you'll see 0a2-----



    and thats your jump hex so at the start at your sub you would put

    0xYour Hook Here 0xYour Jump hex from ps2dis here

    And that's it


    Im not good at guides so sorry if its hard to understand
    This was a beginner base guide,well I made it as simple asI could so I hope you understood.

    0 Not allowed! Not allowed!

  2. #2
    Member
    Join Date
    Mar 2010
    Posts
    207
    Points
    395
         User Info     Contact     Gamer ID
    Join Date
    Mar 2010
    Posts
    207
    Points
    395

    Default

    "think about j at beginner stage" J and Jal commands are basic, there are two different commands for a reason. A jump is mainly used as a pointer to other memory. A J can also be used to "call a function then return to where the last function should of returned" because J doesn't change the value in $ra. Jal is used to call functions. Why? Because when you use a Jal command it will take the address after the jal's delay slot and put it in the register $ra so it will know where to link back to. This is good for a quick, good "go to function then come back" method, allowing us to do something in the game smoothly.

    More information that I will point out:

    Hooks must be in "active RAM". Active RAM is basically just RAM that is (or will) be read when in game. For example a line that is in the see walks function (which is always being used in game) will be in active ram. Another example is a line in the shooting function, if we use a line in the shooting function then we will call our function once we shoot because the shooting function is called when we shoot (duh).

    What do most hooks do?
    Most hooks are at the end of functions, at the point "go back to where you came from" which I slightly talked about above: ""call a function then return to where the last function should of returned"". So we change the return part to "go to "here"" and "here" would be the location of your own function/routine. If we do use a hook this way (at the end of the function) and you do not want to do something specifically (you will need to know a lot to be able to) then a J command is what you are looking for to use. As I said above a J command doesn't change the value in $ra (only jal (jump and LINK) so it knows where to LINK back to) so $ra still holds the value where the function should return (where the function should return <<< by that I mean the function that you edited at the end, to call your function). So the J goes to your function/routine, runs that code, then jumps to what ever value is in $ra, which will return to where we should be, and then we will be executing the rest of the code in the game like normal.
    All in all hooks are saying: "Before you go to $ra, go to my function, then go to $ra" so you are just slipping your own code in the game to be executed.

    When would you use Jal? Well if you have read this so far you know that Jal is used to "link" back to a address, for a "go to here then come back" effect. You would need to do this to be able to use a Jal for a hook. So you might want to check the function to see when and where and if you want to do this. Most the time that people use Jal's they are changing a function call (which is a jal in the game normally) to call there function. The original Jal is never used and therefor never calls the function that it normally calls. So this way you can do something like "don't jump to that function, jump to my function instead". Again, you will need to know when to do this, and if you don't know how to check if you need to do this, just use a J lol.

    We can also use Jr as the same as J, or Jalr as the same as Jal. But those are usually used in functions that load dynamic memory. Why are they used? Well if you have a DMA address you will need to load it right? Well yeah, so the function does some loading and calculating, and then puts the DMA address into a register, Jr or Jalr (jump to register, and jump and link to register) can then be used to jump to the DMA address that is in the register. Typically we will use J or Jal because we are not dealing with dynamic memory, because we know where our function is (hopefully you do to o_o)

    So, nice tutorial, but I suggest learning more/all of the stuff about something before making a tutorial on it ;)

    0 Not allowed! Not allowed!
    AIM & Skype: iLeetGamerX

    Youtube: http://www.youtube.com/user/CurlyBraceProduction

  3. #3
    Tipped OuT
    Guest

    Default

    Really Leet? You don't need all that info just to find and use a freaking hook. If you even read his tutorial, he says multiple times that the guide is not meant to be detailed, technical, or deep; just a quick FYI for the begginers. This is what I hate about OHG Coders, they're always being over techinical for no reason. You know MIPS, we get it.

    0 Not allowed! Not allowed!

  4. #4
    Member
    Join Date
    Mar 2010
    Posts
    207
    Points
    395
         User Info     Contact     Gamer ID
    Join Date
    Mar 2010
    Posts
    207
    Points
    395

    Default

    Quote Originally Posted by Tipped OuT View Post
    Really Leet? You don't need all that info just to find and use a freaking hook. If you even read his tutorial, he says multiple times that the guide is not meant to be detailed, technical, or deep; just a quick FYI for the begginers. This is what I hate about OHG Coders, they're always being over techinical for no reason. You know MIPS, we get it.
    What I said wasn't technical, deep, or advanced, it was basic information on hooks o_o. If we are going to make a "quick FIY for beginners" then why not make it a full tutorial on the concept (especially one so simple as hooks) so they wont need to relearn it? And its not just OHG Coders who try to teach the full concept, its anyone who tries to teach people in any language. "You know MIPS, we get it" I wasn't trying to "prove that I know MIPS" I was just adding more information to help people =/

    0 Not allowed! Not allowed!
    AIM & Skype: iLeetGamerX

    Youtube: http://www.youtube.com/user/CurlyBraceProduction

  5. #5
    Tipped OuT
    Guest

    Default

    Yes, to you or to me it's not techincal or deep, just like division wouldn't be to an algebra teacher, while this guide is intended for 2nd graders. Either way it's uneeded information for a simplistic guide, and you took it a step furthur by insulting weed about knowing something, before making a guide about it.

    I'm not an idiot, none of us here are. It's clear what you're implying. So how about you just make your own guide?

    0 Not allowed! Not allowed!

  6. #6
    BFP4F <3
    OnE SpliFF
    WeEd's Avatar
    Join Date
    Mar 2010
    Location
    YourAStalkerToLookHere
    Posts
    236
    Points
    837
         User Info     Contact     Gamer ID
    Join Date
    Mar 2010
    Location
    YourAStalkerToLookHere
    Posts
    236
    Points
    837
    Gamer IDs

    Gamertag: phonykissrass PSN ID: WeedCL

    Default

    Quote Originally Posted by -LeetGamer- View Post
    So, nice tutorial, but I suggest learning more/all of the stuff about something before making a tutorial on it ;)
    Quote Originally Posted by weed
    This was a beginner base guide,well I made it as simple asI could so I hope you understood.
    D: I made this for beginners,most likely leet they wouldn't start off knowing/learning that much on hooks

    0 Not allowed! Not allowed!
    Last edited by WeEd; 12-30-2010 at 06:37 AM.

  7. #7
    Member
    Join Date
    Mar 2010
    Posts
    207
    Points
    395
         User Info     Contact     Gamer ID
    Join Date
    Mar 2010
    Posts
    207
    Points
    395

    Default

    Quote Originally Posted by Tipped OuT View Post
    Yes, to you or to me it's not techincal or deep, just like division wouldn't be to an algebra teacher, while this guide is intended for 2nd graders. Either way it's uneeded information for a simplistic guide, and you took it a step furthur by insulting weed about knowing something, before making a guide about it.

    I'm not an idiot, none of us here are. It's clear what you're implying. So how about you just make your own guide?
    Umm, all of MIPS is easy enough to be all in one grade, maybe a 4th grader can understand it easily, so that grade thing didn't really prove any point in my opinion :P
    I wasn't implying that weed was in idiot, I was sharing more information. I guess the last line could of been taken as rude, I didn't mean to be rude though.

    All I was trying to do was add in more info to help out his guide.

    0 Not allowed! Not allowed!
    AIM & Skype: iLeetGamerX

    Youtube: http://www.youtube.com/user/CurlyBraceProduction

Bookmarks

Bookmarks

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 04:38 AM.
Powered by vBulletin®
Copyright © 2016 vBulletin Solutions, Inc. All rights reserved.