1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Problem Signing up?

    Please use the contact us link at the bottom of the site listing the problem with your email & ip addresses & the problem will be looked into by our admin team
  3. Temporary emails are not supported for signing up accounts on 3DS Chaos, this includes 10 minute emails. All will be detected by our system & the accounts will be deleted
  4. Shared accounts, multiple accounts & inappropriate usernames not allowed on our site

    Please use a legit email account from a reliable email provider, temporary email accounts are not allowed & will be rejected by our system

Making Gateway Cheats

DarkFlare Apr 20, 2016

  1. DarkFlare

    DarkFlare Active Member

    Joined:
    Dec 11, 2015
    Messages:
    49
    Likes Received:
    976
    Trophy Points:
    83
    Making RAM Hacks is very similar for every console.


    Chapter 1. Understanding Codetypes and the 3DS RAM
    Understanding the codetypes is very important to make interesting codes. A generic 8/16/32 bit write is boring. Why not mix it up a little? Below is a link to the NDS codetypes, which are the exact same as used on the 3DS.
    EnHacklopedia » Individual Systems » Hacking Nintendo DS


    The most common codetypes are below.
    32 bit - 0XXXXXXX YYYYYYYY - This will write YYYYYYYY to XXXXXXX.
    16 bit - 1XXXXXXX 0000YYYY - This will write YYYY to XXXXXXX.
    8 bit - 2XXXXXXX 000000YY - This will write YY to XXXXXXX.
    D3000000 YYYYYYYY - This will set the starting address to YYYYYYYY.
    Why would you use anything other than 32 bit?
    LjDBLPx.jpg
    Let's say we want to edit the address I highlighted. If we tried to do a 32 bit write, we would have to modify the following bytes, too. A common mistake people make is using a 32 bit codetype when they mean to use an 8 or 16 bit. Just putting 00's in your code will not leave those addresses untouched! It will write 00 to them, so you should use an 8 bit code.

    The 3DS's RAM
    The codetypes above are for the NDS. The NDS had 4MB of RAM, opposed to the 3DS's 128MB. This will cause conflict with the codetypes. Let's use this code found with Gateway Cheat Finder as an example: 1450CD08 000000FF
    We cannot simply put this into our cheat txt file and be done. Notice the address start's with 1. This will activate the 16 bit codetype.
    To avoid this, it's always recommended to use the D3000000 codetype. This will set the starting address to whatever is entered as the "value." Let's try it!
    D3000000 1450CD08
    20000000 000000FF
    D2000000 00000000

    Now let's analyze it.
    D3000000 1450CD08 - Go to address 1450CD08
    Add 00000000 to 1450CD08 - 20000000 000000FF - Write 0xFF to the current offset (Still 1450CD08)
    D2000000 00000000 - Terminator (End the code)

    Inverting Bytes
    Screenshot_1.png
    The highlighted value, if put into "Gateway Cheat form" would be 3F800000. This is a float value for 1.0. You can use this link to convert decimal to float or float to decimal. The entire RAM is like this, so keep that in mind.

    Chapter 2. Making a basic code
    Now that you know the codetypes and how the 3DS works, try making your first code!
    [video=youtube;iqt9667dSTk]https://www.youtube.com/watch?v=iqt9667dSTk[/video]
    This will walk you through finding the address. However, you will have to put it into the "Gateway cheat form" yourself, such as adding D3000000 YYYYYYYY above it.

    Chapter 3. Pointer Codes
    A pointer code is used when you are trying to modify a dynamic address. You know an address is dynamic if you follow the tutorial above once and then when you follow it again in a different course/stage/after turning your 3DS off, it gives you a different address.

    A pointer codetype is BXXXXXXX 00000000
    [video=youtube;f6FR3Kmmbco]https://www.youtube.com/watch?v=f6FR3Kmmbco&feature=youtu.be[/video]

    How a pointer code works
    Here is a sample pointer code:
    6065C528 00000000
    B065C528 00000000
    00000BC2 000000FF
    D2000000 00000000

    This will go to the address 0065C528, and then take the value. Once it gets the value, it will interpret that value as an address and add 00000BC2 to it. Finally, it will write 0x000000FF to it.

    The only thing that changes each time is the value of 0065C528.

    Chapter 4. Advanced Coding
    Do you want to make a code that makes an item last forever? No problem. Gateway has a search function for that, too. Let's make Star Lasts Forever in Mario Kart 7.

    First, get a star (either by hacking or legitimately).
    Next, do a 32 bit (unsigned) search. Sometimes it will be 8 or 16. I would recommend trying those if the 32 bit search doesn't work.
    Wait a couple seconds, so the time you have left in the star decreases. Take another search and search for a value that's less than. Our time decreased, so it only makes sense to search for something that's less than.
    You can keep doing this search until you get down to a few addresses.
    Make sure that when you get another star, you search for a greater than value, since you will have more time left in the star than one that is almost done.
    After that's done, you can try experimenting with different values. 7FFFFFFF is the max stable value in many cases. FFFFFFFF works, too, but is less stable.

    Have fun :)
    P.S I spent an hour writing this so I hope it is good enough.
     
    Last edited by a moderator: Apr 20, 2016
  2. Rohul1997

    Rohul1997 Chaos Enthusiast Staff Member Moderator

    Joined:
    Oct 7, 2015
    Messages:
    749
    Likes Received:
    6,335
    Trophy Points:
    128
    Thanks and great work DarkFlare, always liked your tutorials & videos :)

    Fixed your Video tags
     
    Last edited: Apr 20, 2016
  3. Cha0s Em3rald

    Cha0s Em3rald Chaos Immortal Staff Member Administrator

    Joined:
    Oct 1, 2015
    Messages:
    3,588
    Likes Received:
    77,203
    Trophy Points:
    148
    Great guide. Thanks for sharing [MENTION=789]DarkFlare[/MENTION]