Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.

TrollandToad.com
Reply
 
Thread Tools
  #1    
Old November 28th, 2013 (1:12 AM). Edited 4 Days Ago by ShyRayq.
ShyRayq's Avatar
ShyRayq ShyRayq is offline
Unprofessional Unprofessional
     
    Join Date: Aug 2007
    Gender: Male
    Nature: Adamant
    Posts: 1,519
    Hello Gentlemans and Ladywomans! I am here to bring you this very special tutorial.
    With a new type being added in Gen VI, hackers want to stay up to date and add this new type. However, they usually just replace the ??? type but this messes up Struggle and eggs. So, here I am with this tutorial, complementing DestinedJagold's and MrDollSteak's tutorials. Check them out if you're using Ruby or Emerald respectively.

    For this tutorial, you need:
    1. NSE 2.X
    2. A hex editor, I have HxD
    3. A Fire Red 1.0 rom
    4. Paint XP/Vista

    The photos are borked, I'll get to fixing them soon.

    This comes in 3 parts, The Icon, The Chart and The Name.
    HERE WE GO! LETS'A GO!

    PART 1: THE ICON
    Spoiler:

    First, open up your Fire Red rom in NSE 2.X


    Now, press navigate and a window will pop up. On the right, press the + next to "Pokemon", then "BPRE" which the code for Fire Red, then "Hud", then "PKMN" then finally, click "Status"

    You'll get something like this:


    Now, the palette is wierd as, so in the Palette section, type in E95DBC. Now press Open, and close the small window as you'll no longer need it.


    Now export it. Go to "File", "Export" then "Export Bitmap" or just press "Ctrl + Shift + E"


    Save it somewhere, then edit.
    Now when you edit your image, only edit the height if you're changing dimension, also if you do edit it, THE DIMENSIONS MUST BE DIVISIBLE BY 8, IF NOT YOU WILL MESS UP THE ICONS. Also, it's suggested that you do not change the colour scheme as it'll make the process easier, but if you have to, be warned that it'll mess up the palette of a couple of other things.

    So open up NSE 2.X again, and go to the image but this time, change the "Height" to however tall your image is, divided by 8.
    Now, click "File", "Import", "Import Sprite Data" or just press "Ctrl + I".
    Press "Load Sprite", click your sprite now.


    In this example, I added 3 types, but theoretically, you could add up to ~250 types, but you'd be a mad man if you did.

    Now, if you changed the palette, you have to change the dropbox to "Image+Palette". Otherwise, just press 'Save'


    Now, you have to insert it into a different part of the rom, as it is now bigger than the original image.
    So go to "Insert" than "Image Data". You'll get this window.


    Now, if its a new rom, you'll probably get the same offset as me, but if not, it doesn't matter anyway. This offset will be the pointer to the image data. Once you have an offset you're okay with, press Save.
    If you changed the Palette, do the same thing for the "Palette Data"

    Close NSE and open up the rom in a hex editor.
    Now find DC5DE908 by using Ctrl + F or whatever your program uses.


    Press okay, then you get it. Now replace it with your pointer. But first, we need it in a format the game understands. Don't know how to change it? Look below!
    Spoiler:

    First, take any offset > ABCDEF
    Split it into sections of 2 > AB CD EF
    Reverse the 3 sections > EF CD AB
    Then slap 08 on the end of it > EF CD AB 08
    There ya go!


    So in my case, I've got 00 00 80 08, which is quite bland. Anyway, now replace the original pointer with the new one. There's only 1 case so that's the only one.

    Then, find the palette pointer, which is BC5DE908, and replace it with the reformatted pointer of your palette data.

    Anyway, you may think you're done, but now the hardest part comes.

    Go to the offset 452C94 using the Ctrl + G or Go to option.
    You'll come to a bunch of hex. You need to copy 0x60 bytes.


    Go and paste that into free space, preferably right under the image data. You can use a paste-insert option like the one in HxD.


    Make a note of the offset. Now, what exactly is this?


    This is actually code that assigns a type to an icon. It uses the type icon image, and using a co-ordinate, links a type to its icon. The way this works is complicated so I made a simple image that should help.


    Here's how to find the co-ordinate of an icon.
    1. Go from left to right. Which column is it in? Look at the top and assign your icon the number of the column, either 0, 4, 8 or C.
    2. Go from top to bottom. Which row is it in? Look at the side and assign your icon the number of the row, from 0, 20, 40, 60, 80, A0 and onwards.
    3. Take those two numbers and add them together. That's your co-ordinate!

    E.g./ In my image, the Fajro Icon is in the column labeled 4 and the row labeled 20.
    20+4 > 24. Fajro's co-ordinate is 0x24. Why 0x? Because this is all in hex.
    Now what's the co-ordinate of my new icon, Lumo? It's in column 0 and row 100. Therefore, it's co-ordinate is 0x100.

    Now how do we add this to the table? The table is made up of 4 bytes.
    Byte 1 is the width of the icon. Type icons have width 0x20 which the other icons are width 0x28.
    Byte 2 is the height of the icon. All icons have height 0x0C.
    Byte 3 and 4 are the co-ordinate, but flipped similarly to the pointer.

    E.g/ Take Fajro's co-ordinate. First make it 4 digits by adding 00s to the front if you have to:
    24 > 0024. Split it into groups of 2.
    0024 > 00 24. Now flip the order around.
    00 24 > 24 00. This is the final co-ordinate of Fajro's icon.
    For Lumo, it would be 100 > 0100 > 01 00 > 00 01.

    Using these rules, we can now add in the co-ordinates of our new icons. Go to the end of the table and add them in: The height, the width, and the formatted co-ordinate. Here's mine for my 3 new icons.


    **The third icon should have a width of 0x20 not 0x28**

    Now we have to repoint. Search for 942C4508 in your hex editor.


    Replace it with the reformatted pointer to your new co-ordination table. In my case, it'd be 00 24 80 08.
    There's only 1 case so just replace that one.


    Now to test it out ingame! You can use a hex editor by going to 0x254784 and editing the type byte of a pokemon. But, what's the type byte of your new type?
    In your co-ordinate table, the first NEW entry would be 0x17, the next entry would be 0x18 and so on.
    In my case, Lumo would be 0x17 as it is the first new entry in my table.

    Success! The Icon has now been added!

    Make sure to test out all of your new icons.


    PART 2: THE CHART
    Spoiler:

    Now we come to the hardest part: changing the type effectiveness of your new type.
    Okay, we're gonna need to open up our hex editor.

    Now go to your "Goto" function and type in 24F050
    You'll have a bunch of hex here. Copy 150 bytes.


    Now move all this data into freespace. You can put it after the co-ordinate table if you want, as its space-saving. So go there, select 150 bytes and paste.


    Hooray! Now, it is time to edit in our new type effectiveness.
    First let's examine this data. Take the first entry:
    00 05 05

    Type effectiveness is placed in 3 bytes.
    The first byte is the attacking type, the second the defending type, and the third, the effectiveness.
    The types in hex are :
    Spoiler:

    Normal = 00
    Fighting = 01
    Flying = 02
    Poison = 03
    Ground = 04
    Rock = 05
    Bug = 06
    Ghost = 07
    Steel = 08
    ??? = 09
    Fire = 0A
    Water = 0B
    Grass = 0C
    Electric = 0D
    Psychic = 0E
    Ice = 0F
    Dragon = 10
    Dark = 11
    The new type is 0x17 (In my case Lumo)
    Any new type after this begins at 0x18 and onwards...


    Now using this data, you can see that 00 05 05 translates into Normal, Rock, 05.
    If you know pokemon, you'll know that the 05 represents 0.5x damage as Normal is not very effective against Rock.
    The other damage multipliers are:
    05 = 0.5x
    00 = 0x
    14 = 2.0x

    But you're not restrictly stuck with these. You can go all the way FE or 25.4x damage which is insane! How to figure out new damage multipliers?
    Take your multipler, e.g. 5.6x
    Multiply by 10 e.g. 56x
    Now convert into HEX e.g. 0x38
    Be warned as doing this won't bring up a 'It's not very effective!' or 'It's super effective' message. You need ASM for this. Unfortunately, I'm not sure how to do this.

    Okay, so you've figured out the way the chart works, now to edit right? Before that...
    Let's look at this piece of data at the end.
    FE FE 00 00 07 00 01 07 00 FF FF 00

    Now the "FE FE 00" signifies that anything after this point is affected by Foresight.
    So the 00 07 00 which is Normal Ghost 0x and 01 07 00 Fighting Ghost 0x are affected by Foresight.
    Then we have FF FF 00 which signifies the end of the chart.
    WE HAVE TO KEEP THESE PARTS AT THE END.

    Okay, so to add a new effectiveness, just copy that piece of code, and move it down however many new effectivesnesses you'll add x3. For an example, I'll only move them down 3 spaces.
    Now the actually adding. Using the info above, I'm sure you can make your own weaknesses and strengths on your own.
    But here's an example.

    I want Lumo to hit Super Effectivie on Fire
    Okay so this new type is 0x17 and Fire is 0A and 2x/Super Effective Hit is 14.
    So my code is 17 0A 14. Insert it into the new space and done!

    Hooray!

    Now if you want you're new effecvtiness to be affect by Foresight, just move the FF FF 00 at the end 3 bits and add it in.
    But make sure the damage multiplier is 0x, which is 00.
    Okay save your rom and you're finally done....kinda.

    We're gonna have to repoint the chart.
    So now, find the pointer: 50 F0 24 08
    Now, replace it with your pointer, in my case: 70 24 80 08

    There's a 5 occurrences, so keep finding the old pointers and replacing them.

    Okay. Once you've replaced all of the pointers. You're done! Now to test it in game. You first have to change a move into your new type. You can go to 0x250C04 and change the type byte of one of the moves.
    In this case, I made Tackle into a Lumo type move.


    Now to test:


    Success! We're now done with the second part!


    PART 3: THE NAME
    Spoiler:

    Now what we're editing here is hard to explain. So here's an Image.


    Here, you can see a bunch of gibberish in the corner, even though the move Tackle is now Lumo type. We're gonna change this.

    So open up your hex editor again and go to the "Go To" function. Go to 24F1A0
    The data we're concerned with is here:


    As before, you're gonna have to move this to free space. Again, putting it under the previous data can save space, so do that.


    Okay, so now we've got a bundle of random hex. Except that it isn't. It's actually letters.
    Using this reference:
    Spoiler:

    A = bb
    B = bc
    C = bd
    D = be
    E = bf
    F = c0
    G = c1
    H = c2
    I = c3
    J = c4
    K = c5
    L = c6
    M = c7
    N = c8
    O = c9
    P = ca
    Q = cb
    R = cc
    S = cd
    T = ce
    U = cf
    V = d0
    W = d1
    X = d2
    Y = d3
    Z = d4


    We can see that these are the names of the types. In this order:
    NORMAL, FIGHT, FLYING, POISON, GROUND, ROCK, BUG, GHOST, STEEL, ???, FIRE, WATER, GRASS, ELECTR, PSYCHC, ICE, DRAGON, DARK.
    The "FF"s represent the end of the name and the "00"s are for alignment.

    Now what happens next is that, Dark is type 0x11, and Lumo is type 0x17, so we need some space between the entries. This is because the "Type", "Power", "PP", "Accuracy" and"Effect" icons are technically types as well, but they don't get used in battle so they don't need names. So, what you need to know is that each entry is 7 bytes long. So, just create a string of 7 bytes that contain 6 00s and 1 FF and that will be alright. Do this 4 more times.


    Now add in the new name. Use the hex values for the letters in the spoiler above.


    Now, we have to repoint. The original pointer is A0F12408, and replace it.
    My new pointer is D0258008 by the way. There are 5 cases so its a short task.


    Now to see the results:

    Success!
    You've now successfully added a new type!


    If you wanna edit pokemon or moves using programs, you're gonna have to edit the inis.
    There should be 2 things you want to edit.
    1. typenames or typenameoffset or something along those lines.
    Change the address in this line to the address of where the name table is.
    2. number of types.
    To change this, first take 22 and add the number of new types you added. In my case, I added 3 new types, so I would change this to 25.

    And that's it. If you read all of this, you should be able to create many new types, if you leave enough space. If you see any mistakes, please post it in the thread. Or just comment.

    Credit:
    coolboyman for the original thread on the type chart
    MrDollSteak for his patch that includes the new Fairy type added in, and allowing me to look through the rom.
    destinedjagold for his thread, which kind of convinced me to make my thread
    __________________
    3DS Friend Code: 5069-3944-3902
    IGN: Peter; (X, Y, OR, AS, M)
    Friend Safari: (Fighting) Throh, Meditite, Breloom
    Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
    Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

    PM me if you want to trade, or add my FC.
    Reply With Quote

    Relevant Advertising!

      #2    
    Old November 28th, 2013 (1:57 AM).
    Sniper's Avatar
    Sniper Sniper is offline
    ふゆかい
       
      Join Date: Nov 2013
      Location: Philippines
      Gender: Male
      Nature: Quiet
      Posts: 1,453
      Finally the tutorial for FireRed! :D Hooray. *Happily Jumps*
      __________________


      Reply With Quote
        #3    
      Old November 28th, 2013 (12:55 PM).
      Superjub's Avatar
      Superjub Superjub is offline
      Pokémon Aureolin
      • Crystal Tier
       
      Join Date: Sep 2007
      Location: Hoenn
      Age: 22
      Gender: Male
      Nature: Timid
      Posts: 2,289
      This is amazing and just what I've been wanting! :D Thanks a lot! ^.^
      __________________
      Reply With Quote
        #4    
      Old November 28th, 2013 (6:04 PM).
      destinedjagold's Avatar
      destinedjagold destinedjagold is offline
      Oh Hai Thar~
      • Silver Tier
       
      Join Date: May 2007
      Location: Philippines
      Age: 27
      Gender: Male
      Nature: Careful
      Posts: 8,568
      Quote:
      Originally Posted by Dragoon View Post
      Credit:
      destinedjagold for his thread, which kind of convinced me to make my thread
      And it's about time you did! >:3

      Seriously, nice tutorial. Hoping that this will help FR/LG hackers out there. :D
      __________________


      FC: 0061-1111-6462
      TSV: 1364(X), 0790(OR)

      Reply With Quote
        #5    
      Old November 28th, 2013 (6:46 PM).
      MrDollSteak's Avatar
      MrDollSteak MrDollSteak is offline
      Formerly known as 11bayerf1
         
        Join Date: Dec 2008
        Location: Hong Kong
        Age: 22
        Gender: Male
        Posts: 816
        Quote:
        Originally Posted by Dragoon View Post
        Hello Gentlemans and Ladywomans! I am here to bring you this very special tutorial.
        With a new type being added in Gen VI, hackers want to stay up to date and add this new type. However, they usually just replace the ??? type but this messes up Struggle and eggs. So, here I am with this tutorial, complementing DestinedJagold's tutorial. Check it out if you're using Ruby/Emerald

        For this tutorial, you need:
        1. NSE 2.X
        2. A hex editor, I have HxD
        3. A Fire Red 1.0 rom

        This comes in 3 parts, The Icon, The Chart and The Name.
        HERE WE GO! LETS'A GO!

        PART 1: THE ICON
        Spoiler:

        First, open up your Fire Red rom in NSE 2.X


        Now, press navigate and a window will pop up. On the right, press the + next to "Pokemon", then "BPRE" which the code for Fire Red, then "Hud", then "PKMN" then finally, click "Status"

        You'll get something like this:


        Now, the palette is wierd as, so in the Palette section, type in E95DBC. Now press Open, and close the small window as you'll no longer need it.


        Now export it. Go to "File", "Export" then "Export Bitmap" or just press "Ctrl + Shift + E"


        Save it somewhere, then edit.


        Just do whatever you want. In this case, here's a fairy type icon thingy that is used in 11bayerf1's FR rom base. You can use it if you want, I think.


        It is a bit bigger, but don't worry. So open up NSE 2.X again, and go to the image but this time, change the "height" to 18, or however tall your image is, divided by 8.
        Now, click "File", "Import", "Import Sprite Data" or just press "Ctrl + I".
        Press "Load Sprite", click your sprite now.


        Change the drop box to "Image + Palette". Now import it.


        Mind the weird palette on mine. I did things in a different order, but the result is the same.

        Now, you have to insert it into a different part of the rom, as it is now bigger than the original image.
        So go to "Insert" than "Image Data".


        Now, if its a new rom, you'll probably get the same offset as me, but if not, it doesn't matter anyway. So do that.

        Do the same thing for the "Palette Data"

        Close NSE and open up the rom in a hex editor.
        Now find DC5DE908 by using Ctrl + F or whatever your program uses.


        Press okay, then you get it. Now replace it with your pointer. But first, we need it in a format the game understands. Don't know how to change it? Look below!
        Spoiler:

        First, take any offset > ABCDEF
        Split it into sections of 2 > AB CD EF
        Reverse the 3 sections > EF CD AB
        Then slap 08 on the end of it > EF CD AB 08
        There ya go!


        So in my case, I've got 00 00 80 08, which is quite bland. Anyway, now replace the original pointer with the new one. There's only 1 case so that's the only one.

        Then, find the palette pointer, which is BC5DE908, and replace it with the reformatted pointer of your palette data.

        Anyway, you may think you're done, but now the hardest part comes.

        Go to the offset 452C94 using the Ctrl + G or Go to option.
        You'll come to a bunch of hex.


        This actually states the position of the icon. The code is split into parts of 4, the first 2 bytes are the size of the icon, and the 3rd is the position, the 4th is for alignment I believe. Now, because you expanded and moves the "-Type-" and other icons, you'll only need to edit the last 5 entries. Now, to figure out the co-ordinates, look at the second entry.

        "20 0C 20 00" This is the entry for the Normal type. 0x20 and 0xC become a width of 32 and a height of 12, which is the same for every type. The "20" in the 3rd position is the co-ordinate.

        So, to get the co-ordinate of, in this case, Fairy, take 20 from the Normal type. Count how many rows beneath the Normal Icon is the Fairy Icon, in this case 4. Multiply this by 20, then add it to the 20, in this case 100. Wait whoops, its in hex, so its 0xA0. Then, Count the amount of columns the Fairy icon is away from the Normal icon, in this case 2. Multiply this number by 4, then add it to the final product. So, the co-ordinates for the fairy icon are 0xA8. You can use this "algorithm" to figure out the other co-ordinates as well.

        Anyway, go to the final entry, which is 28 0C E8 00 and change to to 20 0C E8 00, because the size used to correspond to the "-Type-" and other icons which are bigger than the type icons, so change the 28 to a 20 as well. Not done yet, as we also moved the co-ordinates of all of the "-Type-" icons as well, so in this case:

        "Ignore the 28 which isn't changed into a 20, I forgot to do it in this shot"

        If you added more types then the amount of entries provide, move the entire hex into a new location, add some more entries, then repoint. Simple.
        Now to test. In this case, to add the new type, just change any type on any Pokemon to 0x16, any other new types start at 0x18 because Nintendo.

        Success! The Icon has now been added!


        PART 2: THE CHART
        Spoiler:

        Now we come to the hardest part: changing the type effectiveness of your new type.
        Okay, we're gonna need to open up our hex editor.

        Now go to your "Goto" function and type in 24F050
        You'll have a bunch of hex here:


        Now, we have to move this to free space, as you'll most likely make new entries. So select the entire 150 block, and select "Copy" or just Ctrl + C
        Now move to some free space, select 150 blocks, and press "Paste


        Hooray! Now, it is time to edit in our new type effectiveness.
        First let's examine this data. Take the first entry:
        00 05 05

        Type effectiveness is placed in 3 bytes.
        The first byte is the attacking type, the second the defending type, and the third, the effectiveness.
        The types in hex are :
        Spoiler:

        Normal = 00
        Fighting = 01
        Flying = 02
        Poison = 03
        Ground = 04
        Rock = 05
        Bug = 06
        Ghost = 07
        Steel = 08
        ??? = 09
        Fire = 0A
        Water = 0B
        Grass = 0C
        Electric = 0D
        Psychic = 0E
        Ice = 0F
        Dragon = 10
        Dark = 11
        The new type is 0x16
        Any new type after this begins at 0x18 and on ward


        Now using this data, you can see that 00 05 05 translates into Normal, Rock, 05.
        If you know pokemon, you'll know that the 05 represents 0.5x damage as Normal is not very effective against Rock.
        The other damage multipliers are:
        05 = 0.5x
        00 = 0x
        14 = 2.0x

        But you're not restrictly stuck with these. You can go all the way FE or 25.4x damage which is insane! How to figure out new damage multipliers?
        Take your multipler, e.g. 5.6x
        Multiply by 10 e.g. 56x
        Now convert into HEX e.g. 0x38

        Okay, so you've figured out the way the chart works, now to edit right? Now exactly.
        Let's look at this piece of data at the end.
        FE FE 00 00 07 00 01 07 00 FF FF 00

        Now the "FE FE 00" signifies that anything after this point is affected by Foresight.
        So the 00 07 00 which is Normal Ghost 0x and 01 07 00 Fighting Ghost 0x are affected by Foresight.
        Then we have FF FF 00 which signifies the end of the chart.
        WE HAVE TO KEEP THESE PARTS AT THE END.

        Okay, so to add a new effectiveness, just copy that piece of code, and move it down however many new effectivesnesses you'll add x3. For an example, I'll only move them down 3 spaces.
        Now the actually adding. Using the info above, I'm sure you can make your own weaknesses and strengths on your own.
        But here's an example.

        I want Fairy to hit Super Effectivie on Fire
        Okay so this new type is 0x16 and Grass is 0A and 2x/Super Effective Hit is 14.
        So my code is 16 0C 14. Insert it into the new space and done!

        Hooray!

        Now if you want you're new effecvtiness to be affect by Foresight, just move the FF FF 00 at the end 3 bits and add it in.
        But make sure the damage multiplier is 0x, which is 00.
        Okay save your rom and you're finally done....kinda.

        We're gonna have to repoint the chart.
        So now, find the pointer: 50 F0 24 08


        Now, replace it with your pointer, in my case: 00 24 80 08

        There's a few occurrences, so keep finding the old pointers and replacing them.

        Okay. Once you've replaced all of the pointers. You're done! Now to test it in game.

        I made "Tackle" into a "Fairy Type" to make this easier.


        Now to test:


        Success! We're now done with the second part!


        PART 3: THE NAME
        Spoiler:

        Now what we're editing here is hard to explain. So here's a picture.


        Here, you can see a bunch of gibberish in the corner, even though the move Tackle is now a Fairy type. We're gonna change this.

        So open up your hex editor again and go to the "Go To" function. Go to 24F1A0
        The data we're concerned with is here:


        Okay, so now we've got a bundle of random hex. Except that it isn't. It's actually letters.
        Using this reference:
        Spoiler:

        A = bb
        B = bc
        C = bd
        D = be
        E = bf
        F = c0
        G = c1
        H = c2
        I = c3
        J = c4
        K = c5
        L = c6
        M = c7
        N = c8
        O = c9
        P = ca
        Q = cb
        R = cc
        S = cd
        T = ce
        U = cf
        V = d0
        W = d1
        X = d2
        Y = d3
        Z = d4


        We can see that these are the names of the types. In this order:
        NORMAL, FIGHT, FLYING, POISON, GROUND, ROCK, BUG, GHOST, STEEL, ???, FIRE, WATER, GRASS, ELECTR, PSYCHC, ICE, DRAGON, DARK.
        The "FF"s represent the end of the name and the "00"s are for alignment.

        So, in order to edit this, you are gonna have to, guess what, repoint the data to free space.
        So I move it to 802560 and now we have:


        Now what happens next is that, Dark is type 0x11, and Fairy is type 0x16, so we need some space between the entries. So, what you need to know is that each entry is 7 bytes long. So, just create a string of 7 bytes that contain 6 00s and 1 FF and that will be alright. Do this 3 more times, than add the Fairy name. In this case, you can just copy the data I have.


        Now, we have to repoint. The original pointer is A0F12408, and replace it.


        My new pointer is 60258008 by the way. There are 5 cases so its a short task.


        Now to see the results:

        Success!
        You've now successfully added a new type!


        And that's it. If you read all of this, you should be able to create many new types, if you leave enough space. If you see any mistakes, please post it in the thread. Or just comment.

        Credit:
        coolboyman for the original thread on the type chart
        11bayerf1 for his patch that includes the new Fairy type added in, and allowing me to look through the rom
        destinedjagold for his thread, which kind of convinced me to make my thread
        Nice to see the offsets I gave you went to good use!

        P.S I'd just like to say here, using the image and palette I set up is absolutely fine, though credit will need to be given for obvious reasons
        __________________
        Reply With Quote
          #6    
        Old November 30th, 2013 (2:49 AM).
        leyn09's Avatar
        leyn09 leyn09 is offline
        Truant Trainer
           
          Join Date: May 2011
          Location: Philippines
          Gender: Male
          Nature: Careful
          Posts: 84
          Thanks! This will help for my hack! :3
          Reply With Quote
            #7    
          Old December 1st, 2013 (6:31 PM).
          misterpoor's Avatar
          misterpoor misterpoor is offline
             
            Join Date: Dec 2013
            Gender: Male
            Posts: 13
            Quote:
            Originally Posted by Dragoon View Post

            PART 1: THE ICON
            Spoiler:




            If you added more types then the amount of entries provide, move the entire hex into a new location, add some more entries, then repoint. Simple.
            Now to test. In this case, to add the new type, just change any type on any Pokemon to 0x16, any other new types start at 0x18 because Nintendo.

            Success! The Icon has now been added!

            Excuse me I can't understand this, could you guide me by image? (Sorry for my bad English)
            Reply With Quote
              #8    
            Old December 1st, 2013 (10:29 PM).
            ShyRayq's Avatar
            ShyRayq ShyRayq is offline
            Unprofessional Unprofessional
               
              Join Date: Aug 2007
              Gender: Male
              Nature: Adamant
              Posts: 1,519
              Quote:
              Originally Posted by misterpoor View Post
              Excuse me I can't understand this, could you guide me by image? (Sorry for my bad English)
              I actually explain how to do this in the second part, The Chart. Basically, copy the all of the bytes that are used, paste them in some free space near the end of the rom, you'll know because it is filled with FFs. Then, add in your new entries, and repoint, which I show how to do in the second part of the tutorial.
              __________________
              3DS Friend Code: 5069-3944-3902
              IGN: Peter; (X, Y, OR, AS, M)
              Friend Safari: (Fighting) Throh, Meditite, Breloom
              Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
              Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

              PM me if you want to trade, or add my FC.
              Reply With Quote
                #9    
              Old December 9th, 2013 (1:53 PM).
              Shadow Wolf's Avatar
              Shadow Wolf Shadow Wolf is offline
              Alpha Wolf
                 
                Join Date: May 2012
                Location: New York
                Age: 18
                Gender: Male
                Nature: Docile
                Posts: 27
                Quote:
                So, to get the co-ordinate of, in this case, Fairy, take 20 from the Normal type. Count how many rows beneath the Normal Icon is the Fairy Icon, in this case 4. Multiply this by 20, then add it to the 20, in this case 100. Wait whoops, its in hex, so its 0xA0. Then, Count the amount of columns the Fairy icon is away from the Normal icon, in this case 2. Multiply this number by 4, then add it to the final product. So, the co-ordinates for the fairy icon are 0xA8. You can use this "algorithm" to figure out the other co-ordinates as well.

                Anyway, go to the final entry, which is 28 0C E8 00 and change to to 20 0C E8 00, because the size used to correspond to the "-Type-" and other icons which are bigger than the type icons, so change the 28 to a 20 as well. Not done yet, as we also moved the co-ordinates of all of the "-Type-" icons as well, so in this case:

                "Ignore the 28 which isn't changed into a 20, I forgot to do it in this shot"

                If you added more types then the amount of entries provide, move the entire hex into a new location, add some more entries, then repoint. Simple.
                Now to test. In this case, to add the new type, just change any type on any Pokemon to 0x16, any other new types start at 0x18 because Nintendo.
                i dont really get this part can you explain it to me some more??
                Reply With Quote
                  #10    
                Old December 9th, 2013 (9:09 PM).
                ShyRayq's Avatar
                ShyRayq ShyRayq is offline
                Unprofessional Unprofessional
                   
                  Join Date: Aug 2007
                  Gender: Male
                  Nature: Adamant
                  Posts: 1,519
                  Quote:
                  Originally Posted by Shadow Wolf View Post
                  i dont really get this part can you explain it to me some more??
                  Well, to put it as simply as I can, I think you should look at the type icon chart. The first row is Normal, Fire, Water and grass. The co-ordinates are 0x20, 0x24, 0x28 and 0x2C. The next row corresponds to this pattern, except you add 0x20. This is the same for all rows until the -type- row, where they skip the 0xX4 and 0xXC coordinates. So the coordinates for say, rock would be 0x44. And if you place your Fairy type icon when the -Type- icon used to be the coordinate would be 0xA8.
                  __________________
                  3DS Friend Code: 5069-3944-3902
                  IGN: Peter; (X, Y, OR, AS, M)
                  Friend Safari: (Fighting) Throh, Meditite, Breloom
                  Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
                  Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

                  PM me if you want to trade, or add my FC.
                  Reply With Quote
                    #11    
                  Old December 10th, 2013 (2:35 AM).
                  GlaciaTaso's Avatar
                  GlaciaTaso GlaciaTaso is offline
                     
                    Join Date: Aug 2013
                    Gender: Male
                    Posts: 20
                    Thank you very much.
                    I learned to editing the effectiveness and resistances of types in D/P/P too.
                    Reply With Quote
                      #12    
                    Old December 12th, 2013 (8:02 AM).
                    misterpoor's Avatar
                    misterpoor misterpoor is offline
                       
                      Join Date: Dec 2013
                      Gender: Male
                      Posts: 13
                      Which is the offset of Bulbasaur? Thank you
                      __________________
                      Reply With Quote
                        #13    
                      Old December 12th, 2013 (4:00 PM).
                      ShyRayq's Avatar
                      ShyRayq ShyRayq is offline
                      Unprofessional Unprofessional
                         
                        Join Date: Aug 2007
                        Gender: Male
                        Nature: Adamant
                        Posts: 1,519
                        Quote:
                        Originally Posted by misterpoor View Post
                        Which is the offset of Bulbasaur? Thank you
                        You could easily edit the type in YAPE by editing the type constraints in the inis. Making the maximum types 19 and adding in the new type as 18. Otherwise, you can use the offset listed in the YAPE ini as well as using bulbapedia to help edit the type.
                        __________________
                        3DS Friend Code: 5069-3944-3902
                        IGN: Peter; (X, Y, OR, AS, M)
                        Friend Safari: (Fighting) Throh, Meditite, Breloom
                        Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
                        Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

                        PM me if you want to trade, or add my FC.
                        Reply With Quote
                          #14    
                        Old December 12th, 2013 (9:40 PM).
                        misterpoor's Avatar
                        misterpoor misterpoor is offline
                           
                          Join Date: Dec 2013
                          Gender: Male
                          Posts: 13
                          Quote:
                          Originally Posted by Dragoon View Post
                          You could easily edit the type in YAPE by editing the type constraints in the inis. Making the maximum types 19 and adding in the new type as 18. Otherwise, you can use the offset listed in the YAPE ini as well as using bulbapedia to help edit the type.
                          I opened the romdata.ini file and changed the MaxtypeVal from 17 to 19
                          but nothing happened in YAPE
                          . What should I do next?
                          __________________
                          Reply With Quote
                            #15    
                          Old December 12th, 2013 (10:39 PM).
                          destinedjagold's Avatar
                          destinedjagold destinedjagold is offline
                          Oh Hai Thar~
                          • Silver Tier
                           
                          Join Date: May 2007
                          Location: Philippines
                          Age: 27
                          Gender: Male
                          Nature: Careful
                          Posts: 8,568
                          Quote:
                          Originally Posted by misterpoor View Post
                          I opened the romdata.ini file and changed the MaxtypeVal from 17 to 19
                          Spoiler:
                          but nothing happened in YAPE
                          Spoiler:
                          . What should I do next?
                          Edit YAPE's commonvals.ini found in [YAPE\data\en-us] and add your new types.
                          Spoiler:
                          __________________


                          FC: 0061-1111-6462
                          TSV: 1364(X), 0790(OR)

                          Reply With Quote
                            #16    
                          Old December 13th, 2013 (12:13 AM).
                          misterpoor's Avatar
                          misterpoor misterpoor is offline
                             
                            Join Date: Dec 2013
                            Gender: Male
                            Posts: 13
                            Thank you very much. And how can I change the type of a move?
                            __________________
                            Reply With Quote
                              #17    
                            Old December 13th, 2013 (2:28 AM).
                            ShyRayq's Avatar
                            ShyRayq ShyRayq is offline
                            Unprofessional Unprofessional
                               
                              Join Date: Aug 2007
                              Gender: Male
                              Nature: Adamant
                              Posts: 1,519
                              Quote:
                              Originally Posted by misterpoor View Post
                              Thank you very much. And how can I change the type of a move?
                              I think one of the 3GT tools in the toolbox allows the usage of new types so I guess you should check it out.
                              __________________
                              3DS Friend Code: 5069-3944-3902
                              IGN: Peter; (X, Y, OR, AS, M)
                              Friend Safari: (Fighting) Throh, Meditite, Breloom
                              Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
                              Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

                              PM me if you want to trade, or add my FC.
                              Reply With Quote
                                #18    
                              Old December 13th, 2013 (6:43 PM).
                              Abcdefgi's Avatar
                              Abcdefgi Abcdefgi is offline
                                 
                                Join Date: Aug 2013
                                Gender: Male
                                Posts: 6
                                Nice Tutorial, really helped a newbie like me, but I have a problem, It says that YAPE Has an error readomg Base Stats every time I make Bulbasaur Fairy Type and save it, Yape cannot read the ROM, why is this? It shows up as Fairy in The game but YAPE apparently cannot read the Base Stats? Help D:
                                Reply With Quote
                                  #19    
                                Old December 13th, 2013 (8:13 PM).
                                ShyRayq's Avatar
                                ShyRayq ShyRayq is offline
                                Unprofessional Unprofessional
                                   
                                  Join Date: Aug 2007
                                  Gender: Male
                                  Nature: Adamant
                                  Posts: 1,519
                                  Quote:
                                  Originally Posted by Abcdefgi View Post
                                  Nice Tutorial, really helped a newbie like me, but I have a problem, It says that YAPE Has an error readomg Base Stats every time I make Bulbasaur Fairy Type and save it, Yape cannot read the ROM, why is this? It shows up as Fairy in The game but YAPE apparently cannot read the Base Stats? Help D:
                                  This might happen if you did not change the maximum types in the ini to 19. Look at misterpoor's post above. It shows the change.
                                  __________________
                                  3DS Friend Code: 5069-3944-3902
                                  IGN: Peter; (X, Y, OR, AS, M)
                                  Friend Safari: (Fighting) Throh, Meditite, Breloom
                                  Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
                                  Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

                                  PM me if you want to trade, or add my FC.
                                  Reply With Quote
                                    #20    
                                  Old December 14th, 2013 (8:03 AM).
                                  Abcdefgi's Avatar
                                  Abcdefgi Abcdefgi is offline
                                     
                                    Join Date: Aug 2013
                                    Gender: Male
                                    Posts: 6
                                    I did that and it still gives me that error , What could I be doing wrong? Btw I have already edited some Pokemon base stats before I looked at the tutorial.
                                    Reply With Quote
                                      #21    
                                    Old December 14th, 2013 (4:09 PM).
                                    ShyRayq's Avatar
                                    ShyRayq ShyRayq is offline
                                    Unprofessional Unprofessional
                                       
                                      Join Date: Aug 2007
                                      Gender: Male
                                      Nature: Adamant
                                      Posts: 1,519
                                      Quote:
                                      Originally Posted by Abcdefgi View Post
                                      I did that and it still gives me that error , What could I be doing wrong? Btw I have already edited some Pokemon base stats before I looked at the tutorial.
                                      Then I guess you should just test the new type, then revert everything back in order to use YAPE, and in order to use the new type, you're gonna have to go the old fashioned way, using a hex editor, which isn't hard if you know where to look for offsets
                                      __________________
                                      3DS Friend Code: 5069-3944-3902
                                      IGN: Peter; (X, Y, OR, AS, M)
                                      Friend Safari: (Fighting) Throh, Meditite, Breloom
                                      Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
                                      Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

                                      PM me if you want to trade, or add my FC.
                                      Reply With Quote
                                        #22    
                                      Old December 15th, 2013 (4:03 PM). Edited December 15th, 2013 by Abcdefgi.
                                      Abcdefgi's Avatar
                                      Abcdefgi Abcdefgi is offline
                                         
                                        Join Date: Aug 2013
                                        Gender: Male
                                        Posts: 6
                                        On Part 2 where you find the Type Effectiviness Hex its has nothing but FF which is free space I resumed? D: What do I do know? Where did my Type Effectiviness chart go, it still functions in the rom

                                        Edit: So I'm A newbie and figured out that my Type Effectiveness got repointed because I forgot I tinkered with the type effectiveness beforehand and I added resistances and Weakness to the ??? type and customize Ghost to be immune to Ground(Because Ghost Levitate anyway, look at Chandelure,) lol
                                        Reply With Quote
                                          #23    
                                        Old December 22nd, 2013 (7:59 AM).
                                        ezra_ngarbingan's Avatar
                                        ezra_ngarbingan ezra_ngarbingan is offline
                                           
                                          Join Date: Jan 2013
                                          Gender: Male
                                          Posts: 1
                                          How can you change a type or move to become special or physical? for instances i want to make Ghost type special, how do i do that?
                                          Reply With Quote
                                            #24    
                                          Old December 22nd, 2013 (10:23 PM).
                                          ShyRayq's Avatar
                                          ShyRayq ShyRayq is offline
                                          Unprofessional Unprofessional
                                             
                                            Join Date: Aug 2007
                                            Gender: Male
                                            Nature: Adamant
                                            Posts: 1,519
                                            Quote:
                                            Originally Posted by ezra_ngarbingan View Post
                                            How can you change a type or move to become special or physical? for instances i want to make Ghost type special, how do i do that?
                                            Check out the physical/special patch over in the Research/Development section. Or check out MrDollSteak's patch in the resources, which already includes the Fairy type and more!
                                            __________________
                                            3DS Friend Code: 5069-3944-3902
                                            IGN: Peter; (X, Y, OR, AS, M)
                                            Friend Safari: (Fighting) Throh, Meditite, Breloom
                                            Living Pokedex Complete: LG, E, Pl, B, B2, Y, OR, M
                                            Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

                                            PM me if you want to trade, or add my FC.
                                            Reply With Quote
                                              #25    
                                            Old December 28th, 2013 (7:46 AM).
                                            Chacha Dinosaur's Avatar
                                            Chacha Dinosaur Chacha Dinosaur is offline
                                            Adamant and adaptive dinosaur.
                                               
                                              Join Date: Jul 2013
                                              Age: 23
                                              Gender: Male
                                              Posts: 454
                                              Great tut, sir.
                                              Another good application of adding new types can be to simulate Freeze Dry and Flying Press (and many custom moves like them) without any deep ASM knowledge.
                                              First, we can add new types (say ice+ and fight+).
                                              Then, make separate type effectiveness tables for each of them respectively(according to which these moves damage super effectively, normally and not very effectively and we don't need to care about what ice+ and fight+ resist or not, because we will be only interested in assigning these types to the moves and not pokemon).
                                              Set Freeze Dry to ice+ type and flying press to fight+ type.
                                              Then, give base power Freeze dry to *1.5*70) or (make the type effective table in integrals of 1.5 with base power of 70). Similarly for flying press. Because ice+ won't gain STAB from ice type nor fight+ from fight.

                                              The downside will be that you should only give freeze dry to an ice type pokemon, because the boosted power is only meant to simulate STAB for them (and only pokemon who are ice type or part ice type legally learn it). If you freeze dry to non ice pokemon by this method, then they will also get the boosted power.

                                              Hope this can prove helpful for hackers, who want to add a proper freeze dry or flying press in their games.
                                              Reply With Quote
                                              Reply

                                              Quick Reply

                                              Join the conversation!

                                              Create an account to post a reply in this thread, participate in other discussions, and more!

                                              Create a PokéCommunity Account

                                              Sponsored Links
                                              Thread Tools

                                              Posting Rules
                                              You may not post new threads
                                              You may not post replies
                                              You may not post attachments
                                              You may not edit your posts

                                              BB code is On
                                              Smilies are On
                                              [IMG] code is On
                                              HTML code is Off

                                              Forum Jump


                                              All times are GMT -8. The time now is 12:18 PM.