• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Patch: Fire Red EV/IV Quick Patch for Trainers

8
Posts
3
Years
    • Seen Mar 1, 2024
    After spending more time than I'd like to admit looking through https://www.pokecommunity.com/showthread.php?t=307117 and learning ASM, I've created a patch that let's you add preset IVs, EVs, and natures to enemy trainer pokemon.

    It uses the "AI value" (often labelled differently depending on the Trainer Editor) and will let you select between 28 different presets based on the following list:

    e67e22596254fa82e64a4bef09deb794.png


    Take the first number and use that as the "AI Value" and make sure you're using "Custom Item / Custom Attacks". That pokemon will now have the corresponding EVs and IVs. Also it'll come out of an Ultra Ball so you know it's working. This does mean if you want Pokemon with no IVs and custom items/attacks you won't be able to. Realistically you can just set the value to 1 and have 15 IVs and it won't make too big of a difference.

    0a07b0122f75203a173dfc4452c04db4.png


    In the above example using Advance Trainer, the Ekans will have full 31 IVs, and will be Adamant nature with 255 attack and 255 speed EVs.

    On a side note, if your trainer editor is changing a value and it's per pokemon, you're likely modifying the value I mentioned above. If it's modifying a value and it's per trainer, that's probably the value that actually controls the trainer AI. And if you want to know what that number does to the trainer AI, the only resource I've found is a google translated Spanish forum post.

    Full credit to DoesntKnowHowToPlay for creating the ASM. This patch is for the lazy people like myself who just want a quick way to add EVs and IVs to trainers.
     

    Attachments

    • IV and EVs to Trainers.zip
      1.2 KB · Views: 239
    10
    Posts
    11
    Years
    • Seen Aug 6, 2021
    I can't believe that nobody has reacted at this thread yet. It is looking really awesome! Could you tell me where you have inserted the new data? Unfortunately, it looks like my progressed hack isn't compatible with your patch :(
     
    3
    Posts
    3
    Years
    • Seen Feb 10, 2022
    thanks since the original post got me confused on how to manually insert XD
     
    8
    Posts
    3
    Years
    • Seen Mar 1, 2024
    I can't believe that nobody has reacted at this thread yet. It is looking really awesome! Could you tell me where you have inserted the new data? Unfortunately, it looks like my progressed hack isn't compatible with your patch :(

    The ASM hex was was added at 0xF90000 and the actual sets are stored at 0xF00000.

    There was also some hex changed at 0x115f6, 0x3dc70, and 0x1162C.
     
    1
    Posts
    2
    Years
    • Seen Jul 28, 2022
    Would it be possible for me to edit what the sets are so that I can use this to set natures without giving anything EVs?
     
    8
    Posts
    3
    Years
    • Seen Mar 1, 2024
    Would it be possible for me to edit what the sets are so that I can use this to set natures without giving anything EVs?

    Yes. At 0xF0000 where the sets are stored you can modify or add new sets.

    For creating your own sets, use the following template and natures:
    - Nature
    - 3 unused bytes
    - HP EV
    - Attack EV
    - Defense EV
    - Speed EV
    - Special Attack EV
    - Special Defense EV
    - Pokeball type
    - 4 more unused bytes

    x0 - Arbitrary
    x1 - Lonely (+Atk, -Def)
    x2 - Brave (+Atk, -Speed)
    x3 - Adamant (+Atk, -SpAtk)
    x4 - Naughty (+Atk, -SpDef)
    x5 - Bold (+Def, -Atk)
    x6 - Docile (Neutral)
    x7 - Relaxed (+Def, -Speed)
    x8 - Impish (+Def, -SpAtk)
    x9 - Lax (+Def, -SpDef)
    xA - Timid (+Speed, -Atk)
    xB - Hasty (+Speed, -Def)
    xC - Serious (Neutral)
    xD - Jolly (+Speed, -SpAtk)
    xE - Naive (+Speed, -SpDef)
    xF - Modest (+SpAtk, -Atk)
    x10 - Mild (+SpAtk, -Def)
    x11 - Quiet (+SpAtk, -Speed)
    x12 - Bashful (Neutral)
    x13 - Rash (+SpAtk, -SpDef)
    x14 - Calm (+SpDef, -Atk)
    x15 - Gentle (+SpDef, -Def)
    x16 - Sassy (+SpDef, -Speed)
    x17 - Careful (+SpDef, -SpAtk)
    x18 - Quirky (Neutral)

    dabb991cb847938664fcecaa53b76ae8.png


    Going bit by bit for the first set:

    0 - 06 for Docile nature
    1, 2, 3 - Unused (set to 11 so it's easier to see it's unused)
    4 - 1F for 31 IVs
    5, 6, 7, 8, 9, A - 00 for no EVs
    B - 02 for Ultra Balls
    C, D, E, F - Unused

    F00000 corresponds to the first "AI Value". So anything set to 0 (which would be the default) would have 31 IVs and a docile nature.
    My sets go to F001B0, which is 27, but there's three extras: F001C0, F001D0, F001E0 which are 31 IVs docile nature. Modify the 0th and 4th bits to change the nature and IVs respectively and set the AI values to 28, 29, and 30 to get what you want.
     
    1
    Posts
    2
    Years
    • Seen Mar 7, 2022
    It uses the "AI value" (often labelled differently depending on the Trainer Editor) and will let you select between 28 different presets

    Right, but in parallel to this hack, the AI value still does its regular job of, you know, managing how the IA behaves. So with your solution we'd have often have to choose between good IVs/EVs and an AI that doesn't do really dumb stuff. (e.g. attempting to reapply status)
     
    8
    Posts
    3
    Years
    • Seen Mar 1, 2024
    Right, but in parallel to this hack, the AI value still does its regular job of, you know, managing how the IA behaves. So with your solution we'd have often have to choose between good IVs/EVs and an AI that doesn't do really dumb stuff. (e.g. attempting to reapply status)

    Actually the "AI Value" I'm talking about is mislabelled in Advance Trainer. The value currently does nothing. The value that controls the AI of a trainer is listed as "Unknown" in Advance Trainer. You can't edit the AI on a Pokemon to Pokemon basis.
     
    192
    Posts
    5
    Years
  • How edit using HMA or G3T each trainer?
    Sorry for the dumb question, but i'm very interested on use this thing.
     
    4
    Posts
    5
    Years
    • Seen Apr 17, 2024
    How edit using HMA or G3T each trainer?
    Sorry for the dumb question, but i'm very interested on use this thing.

    Actually the "AI Value" I'm talking about is mislabelled in Advance Trainer. The value currently does nothing. The value that controls the AI of a trainer is listed as "Unknown" in Advance Trainer. You can't edit the AI on a Pokemon to Pokemon basis.

    Right, but in parallel to this hack, the AI value still does its regular job of, you know, managing how the IA behaves. So with your solution we'd have often have to choose between good IVs/EVs and an AI that doesn't do really dumb stuff. (e.g. attempting to reapply status)

    "AI" is only what it is called in the tool Advanced Trainer. In other tools like Hex Maniac Advanced and Gen3Tools, it's called "IV". Note that newer versions of HMA actually converts the IVs to the real value, so FF/255 in other tools shows as 31 in the latest build.
     

    sylingga

    Red Everywhere
    86
    Posts
    10
    Years
    • Seen May 6, 2024
    hello.

    i.m trying to using your patch for my rom hack, but it turn out white screen when booting (cannot go to game / crash).

    What i've done for my rom hack was :
    - Dynamic pallete
    - turn off rival naming screen
    - change title screen
    - editing trainer's pokemon

    is there any ways so i can use your patch?

    thank you
     
    8
    Posts
    3
    Years
    • Seen Mar 1, 2024
    hello.

    i.m trying to using your patch for my rom hack, but it turn out white screen when booting (cannot go to game / crash).

    What i've done for my rom hack was :
    - Dynamic pallete
    - turn off rival naming screen
    - change title screen
    - editing trainer's pokemon

    is there any ways so i can use your patch?

    thank you

    What hex values are being modified by your existing changes? For this hack, it was added at 0xF90000 and the sets are stored at 0xF00000. There was also some hex changed at 0x115f6, 0x3dc70, and 0x1162C.

    If you're looking to change where the ASM or the sets are stored, see the following instructions I copied and pasted from a question I got in my pms.

    As part of inserting the ASM, the bulk of the code and the sets are configured to point to a specific spot. You wouldn't be able to simply move the code, you would need a new a new patch that's set to a different part.

    Here are the two resources I used to create my patch:
    https://www.pokecommunity.com/showthread.php?t=313906 - Inserting an ASM routine
    https://www.pokecommunity.com/showthread.php?t=307117 - Trainers with EVs

    The instructions aren't the most obvious so I'll go over them step by step on how I inserted the ASM. After that I'll show you how to modify it.

    The 'What you need' and step 1 from the first link are fairly simple but the ones after start to get a little convoluted. I'll assume you're using Hex Maniac Advance because it does a lot of the work for us.

    You should have a notepad file with the "Fire Red" ASM from the second link directly copied and pasted into a notepad file. Save it with the filetype .asm (or rename it)

    1) Drag that notepad file onto the Thumb Compiler and you should get a .bin file.
    2) Open this .bin file up in Hex Maniac Advanced. It should be an almost entirely blank file except for the new code at 0xF90000, 0x115f6, 0x3dc70, and 0x1162C.
    3) To insert this ASM, go into your Fire Red rom and replace the code at those EXACT same four locations with the new code. Remember this won't do anything until you add the sets at 0xF00000.

    Since you're looking to change where the code is stored, let's change some lines in the notepad file to make that happen.

    .Method_Addr: .word 0x08F90001

    This points to where the majority of the code goes. Change F90001 to your new location +1 byte. (F90001 leads to F90000, for example). Also change

    .org 0xF90000

    to the new location as well if you want to directly copy and paste the address locations.

    If you'd like to change where the sets go, change F00000 from

    .EV_Table: .word 0x08F00000

    at the bottom to a location of your choosing.

    Save as a .asm and drag this new file into your Thumb Compiler and proceed to step 3.

    If you'd like to use the same sets as me, feel free to copy the code at F00000 from a rom with my patch to your new location.

    **NOTE** Don't ignore the two leading 00s at 0x1162C. You should be copying and pasting 00 48 00 47 01 00 B9 08 into the Fire Red rom at the same location, NOT 48 00 47 01 00.
     

    sylingga

    Red Everywhere
    86
    Posts
    10
    Years
    • Seen May 6, 2024
    You should have a notepad file with the "Fire Red" ASM from the second link directly copied and pasted into a notepad file. Save it with the filetype .asm (or rename it)

    1) Drag that notepad file onto the Thumb Compiler and you should get a .bin file.
    2) Open this .bin file up in Hex Maniac Advanced. It should be an almost entirely blank file except for the new code at 0xF90000, 0x115f6, 0x3dc70, and 0x1162C.
    3) To insert this ASM, go into your Fire Red rom and replace the code at those EXACT same four locations with the new code. Remember this won't do anything until you add the sets at 0xF00000.

    Since you're looking to change where the code is stored, let's change some lines in the notepad file to make that happen.

    .Method_Addr: .word 0x08F90001

    This points to where the majority of the code goes. Change F90001 to your new location +1 byte. (F90001 leads to F90000, for example). Also change

    .org 0xF90000

    to the new location as well if you want to directly copy and paste the address locations.

    If you'd like to change where the sets go, change F00000 from

    .EV_Table: .word 0x08F00000

    at the bottom to a location of your choosing.

    Save as a .asm and drag this new file into your Thumb Compiler and proceed to step 3.

    If you'd like to use the same sets as me, feel free to copy the code at F00000 from a rom with my patch to your new location.

    **NOTE** Don't ignore the two leading 00s at 0x1162C. You should be copying and pasting 00 48 00 47 01 00 B9 08 into the Fire Red rom at the same location, NOT 48 00 47 01 00.

    thankyou, i will learn it.
    i'm new at editing or using hex.

    I try to make .asm file and .bin file, when i open in HMA, this is it :
    IV-HMA.png

    is it right? all other number is 00

    I'm not understand, in bin file, there was line f90010.
    but on my rom hack, there wasn't that line,
    the line is f90020, f90040, f90060 and so on.

    how to copy the code then?

    -------------------------------------------------------------------------------------------------------

    i dont know what hex value i change, i'm not aware what hex, offset that i repoint.
    i just using FSF to find new offset.

    i used dynamic pallete patch from this forum.
    disable rival name using Intro Editor program.
    Change title screen using HMA.
     
    Last edited:
    1
    Posts
    1
    Years
    • Seen Apr 16, 2023
    Yes. At 0xF0000 where the sets are stored you can modify or add new sets.

    For creating your own sets, use the following template and natures:
    - Nature
    - 3 unused bytes
    - HP EV
    - Attack EV
    - Defense EV
    - Speed EV
    - Special Attack EV
    - Special Defense EV
    - Pokeball type
    - 4 more unused bytes

    x0 - Arbitrary
    x1 - Lonely (+Atk, -Def)
    x2 - Brave (+Atk, -Speed)
    x3 - Adamant (+Atk, -SpAtk)
    x4 - Naughty (+Atk, -SpDef)
    x5 - Bold (+Def, -Atk)
    x6 - Docile (Neutral)
    x7 - Relaxed (+Def, -Speed)
    x8 - Impish (+Def, -SpAtk)
    x9 - Lax (+Def, -SpDef)
    xA - Timid (+Speed, -Atk)
    xB - Hasty (+Speed, -Def)
    xC - Serious (Neutral)
    xD - Jolly (+Speed, -SpAtk)
    xE - Naive (+Speed, -SpDef)
    xF - Modest (+SpAtk, -Atk)
    x10 - Mild (+SpAtk, -Def)
    x11 - Quiet (+SpAtk, -Speed)
    x12 - Bashful (Neutral)
    x13 - Rash (+SpAtk, -SpDef)
    x14 - Calm (+SpDef, -Atk)
    x15 - Gentle (+SpDef, -Def)
    x16 - Sassy (+SpDef, -Speed)
    x17 - Careful (+SpDef, -SpAtk)
    x18 - Quirky (Neutral)



    Going bit by bit for the first set:

    0 - 06 for Docile nature
    1, 2, 3 - Unused (set to 11 so it's easier to see it's unused)
    4 - 1F for 31 IVs
    5, 6, 7, 8, 9, A - 00 for no EVs
    B - 02 for Ultra Balls
    C, D, E, F - Unused

    F00000 corresponds to the first "AI Value". So anything set to 0 (which would be the default) would have 31 IVs and a docile nature.
    My sets go to F001B0, which is 27, but there's three extras: F001C0, F001D0, F001E0 which are 31 IVs docile nature. Modify the 0th and 4th bits to change the nature and IVs respectively and set the AI values to 28, 29, and 30 to get what you want.

    Thank you very much for your service. Two questions, if I create sets that continued down from F001E0 (which corresponds to AI value 30), could I effectively make sets that correspond to numbers greater than 30? The reason I want to do this is because many trainers have Pokémon with AI values above 30, usually 50, 100, 200, and up to 255. It would be easier to make sets for AI values up to 255 to change the Pokémon with those AI values than having to use a trainer editor and manually changing each Pokémon to an AI number between 0 and 30.

    Secondly, are there values to put in column B that correspond to pokeballs other than ultraball and masterball? Would 00 or ff potentially correspond to a regular pokeball?

    Thank you so much for creating this, it's exactly what I'm looking for.
     
    8
    Posts
    3
    Years
    • Seen Mar 1, 2024
    Thank you very much for your service. Two questions, if I create sets that continued down from F001E0 (which corresponds to AI value 30), could I effectively make sets that correspond to numbers greater than 30? The reason I want to do this is because many trainers have Pokémon with AI values above 30, usually 50, 100, 200, and up to 255. It would be easier to make sets for AI values up to 255 to change the Pokémon with those AI values than having to use a trainer editor and manually changing each Pokémon to an AI number between 0 and 30.

    Secondly, are there values to put in column B that correspond to pokeballs other than ultraball and masterball? Would 00 or ff potentially correspond to a regular pokeball?

    Thank you so much for creating this, it's exactly what I'm looking for.

    As far as I know, there's no limit so you should be good to go up to F000FF, which is set 255.

    Column B controls which ball the Pokemon comes out of, but the ASM thread I looked at doesn't actually have a legend for what value corresponds to which Pokeball. I think 00 would be Pokeball, 01 Masterball, 02 Ultraball from memory (it's been a while) but not sure.
     
    Back
    Top