• 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.

Quick Research & Development Thread

ScripNewbie

Mystc Creator
38
Posts
3
Years
    • Seen Jan 27, 2023
    I don't understand your question, sorry. D:
    Can you elaborate a little more?

    Thanks Spacewalker for responding!
    What i mean is, Asm that calls a script

    Example: the script is in offset 0x8850001 and i wanna call it via asm.

    My attempt on this is:
    Spoiler:
     

    Blah

    Free supporter
    1,924
    Posts
    11
    Years
  • Likely there's a more elegant solution for this, but I don't know what you're talking about:
    Because i can't figure out what to do in cfru (void*), it's asking an asm not the script itself, but i want to run some script on it, thanks if you know!

    To answer your question, try:
    .text
    .align 2
    .thumb

    main:
    ldr r1, =(0x8069AE4|1)
    ldr r0, =(0x8850001)
    bl linkr1

    linkr1:
    bx r1

    .align 2

    Good luck.
     

    ScripNewbie

    Mystc Creator
    38
    Posts
    3
    Years
    • Seen Jan 27, 2023
    Likely there's a more elegant solution for this, but I don't know what you're talking about:


    To answer your question, try:


    Good luck.
    OHHH, FBI!
    Thanks for this and all your amazing work! You can say im your biggest fan!
    Thanks i will try this!

    Update:
    Spoiler:
     
    Last edited:

    ScripNewbie

    Mystc Creator
    38
    Posts
    3
    Years
    • Seen Jan 27, 2023
    I tried your code and try to expand it, but i didn't have any idea what's gone wrong in my writing.

    The code:
    Spoiler:

    My Script:
    Spoiler:

    The thing is, it's not working, if you somehow just somehow have time to help i will appreciate it, but if you don't that's ok.
     
    Last edited:
    7
    Posts
    4
    Years
    • Seen today
    To update Synchronise so that the opponent becomes Badly Poisoned when they Badly Poison you, put 06 instead of 02 at 0x1B404 and at 0x1B48B.

    This changes MOV r0, #0x2 to MOV r0, #0x6. Therefore instead of changing the Bad Poison effect to the regular Poison effect, it replaces the Bad Poison effect with the Bad Poison effect (essentially leaving it the way it was before).

    There's a little issue with the offsets there, 0x1B48A should be used instead of 0x1B48B since 0x1B48A is the one that has a 02 on it.
    In case you guys like Emerald, here's the equivalents as well: 0x43CF4, 0x43D78
     

    Blah

    Free supporter
    1,924
    Posts
    11
    Years
  • .align 2
    .thumb

    main:
    push {lr}
    ldr r0, =(0x92A)
    ldr r1, =(0x806E6D0 +1) @checkflag
    bl linker1
    cmp r0, #0x1 @check if set
    bne end
    ldr r0, =(0x8850001) @my script
    ldr r1, =(0x8069AE4 +1)
    bl linker1

    end:
    pop {pc}

    linker1:
    bx r1

    .align 2

    Above is fixed. You're making some fundamental mistakes.
    1. Don't need to push low registers
    2. Parameters for functions start from r0

    It sounds like you're using CFRU, I'd encourage you to write this function in C instead and cast your function as an argument to whatever the callback you're trying to use is.
     
    11
    Posts
    2
    Years
    • Seen Jan 7, 2022
    Is there any info anywhere on porting the Gen 5 EXP system to firered? Liquid Crystal had it like 10 years ago so I assume it must be somewhere out there.
     
    6
    Posts
    5
    Years
    • Seen Feb 11, 2022
    Is there a way to find the offsets of all the 'pre-arranged' pokemon encounters in Emerald? I believe the total list is;

    - Starters
    - Zigzagoon (fighting Birch)
    - Zigzagoon (Wally fighting Ralts)
    - Ralts (Wally catching)
    - Kecleon
    - Wynaut (egg)
    - Castform
    - Regis
    - Fossils
    - Rayquaza
    - Groudon
    - Kyogre
    - Lati@s
    - Beldum
    - Gen 2 starter
    - Sudowoodo
    - Voltorbs
    - All the event pokemon

    So far from searching, I have managed to find the offset for the Zigzagoon fighting Birch as x32706. And that's all I've found.

    Is there a way to search scripts to find these offsets? Search hex? Is there a list somewhere? All help appreciated.

    Thanks.
     

    Prof. Leon Dias

    Let your memes be dreams
    118
    Posts
    11
    Years
  • I've never seen anything about changing the Prof. Oaks Pokedex Ratings for FireRed.
    After doing some digging and with the help of Decomps here is what I've found.

    Prof. Oak and the Oak's PC scripts call for specials 0xD4 and 0xD5, which then figure out the Dex Seen and Caught values. The game then checks to see if the amount caught is under a certain value, up to 151 in vanilla. You can actually expand this to 255 but no further, so if you're making a hack with an expanded Regional Dex do mind this limitation and plan your text accordingly.

    Here are some offsets to help you customize your Pokedex Ratings:
    REMEMBER! Changing these amounts can't go higher than 0xFF (255)

    0xCA430 = 0x09, in vanilla it leads to text if you own less than 10 Pokemon
    0xCA436 = 0x13, in vanilla it leads to text if you own 10-19 Pokemon
    0xCA448 = 0x1D, in vanilla it leads to text if you own 20-29 Pokemon
    0xCA454 = 0x27, in vanilla it leads to text if you own 30-39 Pokemon
    0xCA460 = 0x31, in vanilla it leads to text if you own 40-49 Pokemon
    0xCA46C = 0x3B, in vanilla it leads to text if you own 50-59 Pokemon
    0xCA478 = 0x45, in vanilla it leads to text if you own 60-69 Pokemon
    0xCA484 = 0x4F, in vanilla it leads to text if you own 70-79 Pokemon
    0xCA490 = 0x59, in vanilla it leads to text if you own 80-89 Pokemon
    0xCA49C = 0x63, in vanilla it leads to text if you own 90-99 Pokemon
    0xCA4A8 = 0x6D, in vanilla it leads to text if you own 100-109 Pokemon
    0xCA4B4 = 0x77, in vanilla it leads to text if you own 110-119 Pokemon
    0xCA4C0 = 0x81, in vanilla it leads to text if you own 120-129 Pokemon
    0xCA4CC = 0x8B, in vanilla it leads to text if you own 130-139 Pokemon
    0xCA4D8 = 0x95, in vanilla it leads to text if you own 140-149 Pokemon
    0xCA4DC = 0x96, it leads to text if you've completed the Kanto Pokedex (150, Mew is not required)

    Change those accordingly. Additionally, here are the Text Locations:

    Under 10 = 0x1A6D17
    10-19 = 0x1A6D6D
    20-29 = 0x1A6DDF
    30-39 = 0x1A6E36
    40-49 = 0x1A6EA4
    50-59 = 0x1A6F0B
    60-69 = 0x1A6F71
    70-79 = 0x1A6FAB
    80-89 = 0x1A6FF1
    90-99 = 0x1A7031
    100-109 = 0x1A7063
    110-119 = 0x1A70A5
    120-129 = 0x1A70D8
    130-139 = 0x1A7108
    140-149 = 0x1A7137
    150/151 = 0x1A7175

    I recommend using Hex Maniac to edit and repoint that text and stay away from A-Text at all costs! These should be useful if you've made a custom pokedex or a region where Professor Oak isn't your regions professor. (Or if you got rid of the Aides who give out items at a certain dex completion rate).
     

    Akiak

    dreamin'
    86
    Posts
    10
    Years
    • Seen Apr 10, 2024
    Cleanse Tag Modifiers

    This is the result of my decomp research trying to buff Cleanse Tag to be a little less useless. In vanilla it reduces wild encounters by 2/3.

    FireRed

    At 0831E6, change 20 68 40 00 03 21 (2/3) to 20 68 00 00 03 21 (1/3) or 20 68 00 00 02 21 (1/2).

    Emerald

    At 0B5B00, change 20 68 40 00 03 21 (2/3) to 20 68 00 00 03 21 (1/3) or 20 68 00 00 02 21 (1/2).
     
    173
    Posts
    4
    Years
    • Seen Feb 4, 2024
    Battle "X Item" increase by 2:

    FireRed:
    0x25282E: 02
    0x25283F: 02
    0x252850: 02
    0x252837: 20
    0x252848: 20

    Emerald:
    0x31E4C2: 02
    0x31E4D3: 02
    0x31E4E4: 02
    0x31E4CB: 20
    0x31E4DC: 20

    However that string still keeping vanilla one (not "sharply rose" but simply "rose").
     
    173
    Posts
    4
    Years
    • Seen Feb 4, 2024
    FireRed Skip item using animation:
    Put 41 46 00 F0 0E F8 at 0x12538E
    Put 00 F0 0B F8 at 0x12587E
    Put 41 46 00 F0 0C F8 at 0x126332
    Put 00 F0 03 F8 at 0x126BCA
    FireRed Skip TM learning animation:
    Put 00 F0 0E FA at 0x11CA2C
    Put 00 00 at 0x11CE6E
    Put 00 F0 40 at 0x125BC4
     
    Last edited:
    173
    Posts
    4
    Years
    • Seen Feb 4, 2024
    Faster battle intro (like Unbound):

    FireRed:
    Put 03 at 0x11DA6, 0x3253E, 0x37DBA, 0xEA0A4, 0x158468, 0x1585C2
    Put FD at 0x32418, 0x38058, 0xD632C, 0xDDA94, 0xE9FA0, 0x1583EC
    Put DB D0 at 0xBC5E5, 0xBC8DD, 0xBCB57, 0xBCE2D

    Emerald:
    Put 03 at 0x3981E, 0x5B9A6, 0x669C4, 0x1889A4
    Put FD at 0x5B78C, 0x5B854, 0x61ADC, 0x66B80
    Put DB D0 at 0x118455, 0x11874D, 0x1189CB, 0x118CA1
     
    Last edited:
    7
    Posts
    4
    Years
    • Seen today
    Faster battle intro (like Unbound):

    So there's a few missing offsets for Emerald, more importantly for trainers and Wally/Steven/Safari Zone backsprites. I managed to find these missing offsets however, with the help of pokeemerald. The ones I found will be bolded.

    Emerald:
    Put 03 at 0x3981E, 0x5B9A6, 0x669C4, 0x1889A4, 0x61844
    Put FD at 0x5B78C, 0x5B854, 0x61ADC, 0x66B80, 0x1598D0, 0x169F84, 0x18BED4, 0x18BF9C, 1BD48C, 1BD5AC
    Put DB D0 at 0x118455, 0x11874D, 0x1189CB, 0x118CA1
     

    Stay?

    Rojo Fuego User
    2
    Posts
    1
    Years
    • Seen Mar 21, 2024
    Fire Red PC Boxes Use More Wallpaper's Fix

    Offset=0x08C836
    Original=03
    Modified=FF

    Credits For Spherical Ice & Stay hydrated 緯俺な.

    Note: Spherical Ice had found the address of the PC Boxes but the Offset to modify was wrong, it didn't do anything and I started to investigate a bit and managed to have the 14 Different Wallpaper's on the PC.
     
    Last edited:

    Panda Face

    Pokemon Ultra Snowy White
    127
    Posts
    7
    Years
    • Seen Oct 22, 2022
    For Emerald: How to make the several kinds of state combine at the same time? Such as if a pokemon poisoned, the foe pokemon used thunder wave, that pokemon change into paralyze state or both poisoned and paralyze combine together?
     
    Last edited:
    17
    Posts
    5
    Years
    • Seen Dec 19, 2022
    I combined my work with the one from Doesnt. As a result, there are less bytes to write into freespace.
    So, here's what to do to give exp points when you catch a pokemon:
    1-The bytes to put into freespace: 2E E0 3F 02 02 00 2E 0C 3C 02 02 00 2E 0D 3C 02 02 00 23 00 F1 63 9A 1D 08 28 58 9A 1D 08

    2-The bytes to replace at 1D9A53: 41 XX XX XX 08 (XX = pointer to the code above).

    3-Just like Doesnt wrote earlier, replace the bytes at 15A68 with A1 5A 01 08.

    It should work without problems, as I tested it before posting.

    Thanks to Doesnt for telling me how to fix a music issue.

    How can I accomplish this using HexAdvanceManiac?
     
    4
    Posts
    2
    Years
    • Seen Dec 1, 2022
    For anyone interested, in FR US 1.0 (aka BPRE 1.0), to change your Pokédex "mode" to the style which DPPt used (That is, to have the seen amount displayed in the continue screen and the save screen instead of the caught numbers), change:

    0800CF56: 00 20
    0800CF64: 00 20
    080F803C: 00 20
    080F8044: 00 20

    It really is that simple. :)

    [FR] Pokédex total accounts for "Seen" not "Captured" in Trainer Card
    Sets the Pokédex as "Seen" in the Trainer Card. The link provided in the main post is actually for Emerald.

    0808A0EA: 00 20
    0808A0F2: 00 20

    Hope this helps. Combine this with Jambo's original code for the full effect (of course).

    [FR]Start with more Wallpapers used by PC BOXES

    0808C836: FF

    Similar to Spherical Ice's but arranged in the order used by Gen IV and onwards.
     
    Last edited:
    Back
    Top