Announcement

Collapse
No announcement yet.

How to make this code a JOKER? (Gamecube)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • How to make this code a JOKER? (Gamecube)

    Hi.
    I hacked this code at raw address 094E3CE4 (4 bytes).

    I want to make this value equal to 49210 when i press D-Pad Left. When I press D-Pad Left, it should just 'poke' 49210.

    Just to make it clear, I don't want it to keep the value there forever, just a one-time poke whenever I press D-Pad Left.

    Can someone please help me to do this?
    Thank you
    Last edited by Bliohazzard; 02-07-2013, 08:08:17 AM.

  • #2
    http://doc.kodewerx.org/hacking_gcn.html#ar_code_types , using the button values at the bottom of this page you can search for the button check address then use code type "Conditional Equal To" Next Line 16bit.
    Spoiler Alert! Click to view...

    THE BAD GUY!!!!!!

    Comment


    • #3
      Originally posted by helder View Post
      http://doc.kodewerx.org/hacking_gcn.html#ar_code_types , using the button values at the bottom of this page you can search for the button check address then use code type "Conditional Equal To" Next Line 16bit.
      I found the button check address, for D-Pad Left should be:
      0A469140 00000001

      But I'm confused by what I should do for the next line.
      Could you possibly help?

      Comment


      • #4
        Assuming 49210 is hexadecimal, use the the code type for a 32-bit write (04) and use that with your address to set the value you want. If it's decimal, you might get away with a 16-bit write.

        Of course, the question is, are you expecting it to resume its previous value at some point, or are you just trying to set it at the beginning of the game and have that as a starting value, or what? If you're looking to set it once, and let the game do whatever with it from there, your method will work, though, you might also be able to insert it into the Master Code and forget about it. ARs using that engine should execute codes in the enable once, during startup, and never again. If you want the former value to be restored, the code becomes much more complicated.

        Edit: Umm, looking at your address there, it looks like it's outside the GameCube's range for RAM. Are you hacking an emulator with ArtMoney or Cheat Engine or something?
        Last edited by Pyriel; 02-08-2013, 11:53:16 AM.

        Comment


        • #5
          Assuming thats valid address like Pyriel mentioned this should be your code:

          0A469140 00000001
          024E3CE4 0000C03A

          this is also assuming that your value is decimal otherwise you need to change the second line starter to 04 instead of 02 and change the value.
          Spoiler Alert! Click to view...

          THE BAD GUY!!!!!!

          Comment


          • #6
            Originally posted by helder View Post
            Assuming thats valid address like Pyriel mentioned this should be your code:

            0A469140 00000001
            024E3CE4 0000C03A

            this is also assuming that your value is decimal otherwise you need to change the second line starter to 04 instead of 02 and change the value.
            Thank you for teaching me. I have successfully made many more joker codes.

            Teach a man how to fish.... Cheers!

            Comment


            • #7
              One more question that I can't solve!
              I now want to make one address match another addresses value.

              Example: I want to write the value at C000001 to D000001.

              So, if C000001 = 10, then 10 should be written to D000001 too.

              In other words, if C0000001 = X then write X to D000001.


              X will change to many values, so I can't specify all of the values.
              This seems impossible?
              Last edited by Bliohazzard; 02-13-2013, 07:21:28 AM.

              Comment


              • #8
                I don't think the Gamecube Code Types have a memory copy code type, at least on the page I linked it doesn't.
                Spoiler Alert! Click to view...

                THE BAD GUY!!!!!!

                Comment


                • #9
                  Yeah, the AR software doesn't include that code-type. The only way to pull off what you're looking for is by modifying the game's executable code somehow.

                  Although, the way the GameCube and the AR work, it is possible to make changes to the cheat engine, and add code types. Kenobi created codes that add a string-write to the AR, and a couple of others. He might have done a copy code of some sort. The only problem is that I'm pretty sure this was all discussed in GCNrd threads at GSCentral. I doubt they exist anymore, and after the rift any documentation they might have had outside the forums probably disappeared.

                  Comment


                  • #10
                    Those were documented on the old CMP site, Pyriel.

                    Source

                    Code:
                    [B]A - Memory Copy Without Pointer Support :[/B]
                    -----------------------------------------
                    
                    Enabler (must be on!) :
                    04001E48 48000769
                    040025B0 5525043E
                    040025B4 4BFFF644
                    
                    Exemple of byte copy :
                    00000000 86393FA8
                    80393FA0 00000001
                    
                    Here is how it works :
                    00000000 8XXXXXXX
                    YYYYYYYY 0000ZZZZ
                    
                    8XXXXXXX = [Destination address] OR 0x06000000.
                    YYYYYYYY = [Source address].
                    
                    ZZZZ = number of bytes to copy (0x0000 will copy 0 byte, 0xFFFF will copy 
                    65535 bytes).
                    
                    Important : the 16-bits number before ZZZZ MUST BE '0000', else it'll create 
                    errors !!!
                    
                    So, if you follow what I explained, you can see that my code exemple will 
                    copy 2 bytes, from 80393FA0 to 80393FA8.
                    Code:
                    [B]B - Memory Copy With Pointers Support :[/B]
                    ---------------------------------------
                    
                    Enabler (must be on!) :
                    04001E48 48000769
                    040025B0 5525043E
                    040025B4 2C060000
                    040025B8 4182000C
                    040025BC 80630000
                    040025C0 80840000
                    040025C4 4BFFF634
                    
                    With this code, if you put any data in the 8 upper bits of the value, the AR 
                    will use the addresses in the code as pointers addresses
                    
                    Exemple :
                    00000000 86002F04
                    80002F00 01000138
                    
                    Important : the 8-bits number before ZZZZ MUST BE '00', else it'll create 
                    errors !!!
                    
                    As the value start with '01' (could have been anything, but '00'), the AR 
                    will load the 32bits value at 80002F00 and use it as the source address, then load the 
                    32bits value at 80002F04 and use it as the destination address, and finally will 
                    copy 138 bytes from the source address to the destination address.
                    
                    Note that if you put '00' in the start of the value, the code will work just 
                    like the 'Memory Copy Without Pointer Support' code.
                    
                    If you need to add an offset to the pointer addresses, you'll have to do 
                    this trick : copy the source pointer address to 80002F00, the destination pointer address 
                    to 80002F04, add the offset values to theses pointer addresses (using the 'Add' code 
                    type), and finally use the 'Memory Copy with Pointers Support' to copy the bytes.
                    
                    Exemple :
                    00000000 86002F00 <- Copy the 32bits (=4 bytes) source pointer address
                    804C8268 00000004 from 804C8268 to 80002F00.
                    
                    00000000 86002F04 <- Copy the 32bits (=4 bytes) destination pointer address
                    804C8268 00000004 from 804C8268 to 80002F04.
                    
                    84002F00 00000098 <- Add the offset 0x98 to the source pointer address at 
                    80002F00.
                    
                    84002F04 000001D0 <- Add the offset 0x1D0 to the source pointer address at 
                    80002F04.
                    
                    4A44F0A8 00000030 <- (if the user press R+Z...).
                    
                    00000000 86002F04 <- Copy 0x138 bytes from the address stored at 80002F00 
                    (=pointer address+0x98)
                    
                    80002F00 01000138 to the address stored at 80002F04 (=pointer address + 
                    0x1D0).

                    Comment


                    • #11
                      Is that Enabler code universal?
                      Spoiler Alert! Click to view...

                      THE BAD GUY!!!!!!

                      Comment


                      • #12
                        Weird. I searched CMP with Google, hoping somebody had copied it there, and all it pulled up was the badly formatted breakdown of official types. Maybe Seb blocked the crawler in some parts of the site.

                        You still need a Master Code for the game, if that's what you're asking, helder. Otherwise, I don't know that Hacc or I would know. It depends on whether or not Datel put out multiple versions of the AR that moved things around in the cheat engine. In my experience, the cheat engine is usually pretty stable, and only changes in major versions, or complete revisions of the software (exception Fire products). However, Kenobi made those quite a few years ago. To confirm it, somebody would have to try it or find someone who's reviewed several versions of the software.

                        Comment

                        Working...
                        X