• 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

36
Posts
9
Years
    • Seen Jun 26, 2015
    First of all, thanks to everyone has already posted info in this thread. I'm all the way back to page 5 at the moment and have found so much useful information. Very appreciate of all the hard work.

    I'm here to ask a couple of questions too though, and they are:

    can tile movement permissions be changed in game? on the fly? and can the properties of person event be changed in game too? (specifically the unknown byte seen in AM when looking at such an event, which has been documented to control it's altitude)

    Neither of these things are essential in getting the stuff I want to do working as I already know of some workarounds I can use, but It's still some information I'd like to have available if it is possible.

    thanks.


    Edit: and woah, well done Sperical Ice. I've been doing the same thing in my usercp notepad but with descriptions that'd be very unhelpful to anyone else but me. (or even me, at times. ahaha)

    Edit 2: As well, in the hopes of giving something back (but also at the risk of seeming naive) here's a small amount of VBA cheats for EM that I made all the way back in 07 that manipulate some stuff that I still haven't seen done anywhere else.

    I don't know whether you can derive anything useful from these but I'd very much like to be able to give back to this thread if at all possible, and so with that said, they are under the cut:

    Spoiler:
     
    Last edited:

    TheRabbit

    Banned
    69
    Posts
    9
    Years
    • Seen Jan 1, 2015
    Say I want to change which events cause your trainer card to change colors, what do I need to do? Is this controlled by simple flags or something more complicated?
     

    Wobbu

    bunger bunger bunger bunger
    2,794
    Posts
    12
    Years
  • After looking at Spherical Ice's Directory, I saw a link to a post about FireRed's Low HP track number in Sappy. For those who are curious about Emerald's Low HP track, it's number 90 in Sappy (for reference, the Littleroot test song is number 350).

    For those who want XY's low HP theme, here is a midi that can be assembled right over Emerald's low HP theme with a quick free space repoint.

    View attachment 73180
     

    daniilS

    busy trying to do stuff not done yet
    409
    Posts
    10
    Years
    • Seen Jan 29, 2024
    Spoiler:

    For some reason that post of mine completely disappeared without a trace, so I'm reposting it. http://pastebin.com/mfNSeBhL

    What on earth happened there!?
     

    Le pug

    Creator of Pokémon: Discovery / Fat Kid
    870
    Posts
    10
    Years
  • Nevermind, the post has now been merged with the first post of the thread.

    IMO you should also add the threads to this list. Things like my threads "how to remove clouds from emerald titlescreen" are a popular question I've been asked so I made it it's own thread. Since it's easy to do, no one will comment and it'll get lost on page 2 and beyond. That's why I think threads should also be added to this list. : ]
     
    5,256
    Posts
    16
    Years
  • IMO you should also add the threads to this list. Things like my threads "how to remove clouds from emerald titlescreen" are a popular question I've been asked so I made it it's own thread. Since it's easy to do, no one will comment and it'll get lost on page 2 and beyond. That's why I think threads should also be added to this list. : ]

    Doesn't that sort of defeat the purpose of this thread? This thread is for that kind of minor change, so you should probably just post here instead of making an entire thread, and if not, it doesn't belong here anyway, y'know? Feel free to repost that kinda stuff here too if you want, but I think having both a thread (which are already kind of indexed in the same way through the forum itself) and a link to it here is a tad redundant.
     

    kearnseyboy6

    Aussie's Toughest Mudder
    300
    Posts
    15
    Years
    • Seen Jun 22, 2019
    Alright, 0x020245B4 contains the playable time (hours 2 bytes, minutes 1 byte, millisecs 1 byte (sorta)) which is seen when you save the game.

    Does Firered have a function which can start like a stopwatch (like emeralds cycle road area) or will I have to manipulate the data given above?
     

    GoGoJJTech

    (☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
    2,475
    Posts
    11
    Years
  • Alright, 0x020245B4 contains the playable time (hours 2 bytes, minutes 1 byte, millisecs 1 byte (sorta)) which is seen when you save the game.

    Does Firered have a function which can start like a stopwatch (like emeralds cycle road area) or will I have to manipulate the data given above?

    Instead of manipulating the whole game engine just for that, copy the time from when you start the event, then get the current time and subtract, then you have the total time between the start and end of the event.
     

    kearnseyboy6

    Aussie's Toughest Mudder
    300
    Posts
    15
    Years
    • Seen Jun 22, 2019
    Instead of manipulating the whole game engine just for that, copy the time from when you start the event, then get the current time and subtract, then you have the total time between the start and end of the event.

    That's what I plan to do, but Emerald already has a function that does that, wondering if FR has one
     

    GoGoJJTech

    (☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
    2,475
    Posts
    11
    Years
  • That's what I plan to do, but Emerald already has a function that does that, wondering if FR has one

    FR doesn't have an instance of this sort of timer, and there are no specials on it, so chances are, there is no function currently available that does 100% of what you want.
     

    kearnseyboy6

    Aussie's Toughest Mudder
    300
    Posts
    15
    Years
    • Seen Jun 22, 2019
    Hmm, well you probably want '[buffer1] fainted' which I found at 1a5476. The pointer to this is at 0xA05E4. That's all I know as of now
     

    Touched

    Resident ASMAGICIAN
    625
    Posts
    9
    Years
    • Age 122
    • Seen Feb 1, 2018
    The routine you want is here 080A0618 (FireRed). Specifically, the code at 080A0648 is concerned with subtracting HP from the poisoned Pokemon. Check knizz's IDA Pro database for more info.
     

    Danny0317

    Fluorite's back, brah
    1,067
    Posts
    10
    Years
    • Age 24
    • Seen Nov 19, 2023
    For emerald, to disable the need to have the first gym flag to use cut from the menu, it's at 0x1B5514. I'm trying to find surf, but I'm having some trouble. If anyone wants to help, the badge message, it's at 0x5E97FC.
    Out of all the HMs that can be found from the menu, I find the most useless one... lol

    Edit: Huh, this is pretty weird... For strength and rock smash it says something about not being able to use it there (omw to a rock smash rock, but for surf it says the badge stuff...)
    Edit2: I CAN use rock smash from the menu... idk why though, I disabled the cut flag need..
     
    Last edited:

    Danny0317

    Fluorite's back, brah
    1,067
    Posts
    10
    Years
    • Age 24
    • Seen Nov 19, 2023
    Sorry for double post, but I made a doanimation list for emerald. Here it is:

    emerald doanimations (I did this w/o audio, sorry)
    0 - freeze
    1 - cut
    2 - cut tree
    3 - freeze
    4 - animation in grass
    6 - shows weedle or butterfree
    8 - Surf Wailmer appears under the player
    9 - player GETS on the Wailmer
    a - "poof" under the player
    b - "poof" the NPC you call it from
    c - grass animation below player
    d - biggest WTF ever
    e - water drop?
    10- Small animation
    12- grass animation
    13- grass starts shaking
    14- ^same but more intense
    15- does a weird animation
    16- blue animation
    17- stars below the player
    18- weird ugly things appear on the player
    19- nurse joy, shows your pokemon and and the machine healing
    1b- kinda looks like cut
    1e- fly animation
    1f- actually takes you flying
    20- get off the bird and land
    23- WTF
    26- dig animation
    2b- player raises pokeball, moves forward
    2d- weird, glitchy thing appears in top left corner
    31- sand (?) appears below the player
    32- water (?) appears below the player
    33- sweet scent (I think)
    34- weird tiles animate
    35- bubbles appear on the player
    37- dust (?) falls from the sky
    38- animating vines
    39- weird animation
    3a- also cut
    3c- weird animation
    3d- different weird animation
    3e- weird version of healing pokemon
    3f- teleport
     

    daniilS

    busy trying to do stuff not done yet
    409
    Posts
    10
    Years
    • Seen Jan 29, 2024
    Alright, it's done!

    Code:
    Type 01 at 080A0524, 080A064E and 080A0656 for the new HP check.
    Type 02 E0 at 080A04CE to prevent friendship reducing.
    Type 6B 02 at 081A8E04 to terminate the whiteout script.
    Finally, insert FD0200E7E9E6EADDEAD9D800E8DCD900E4E3DDE7E3E2DDE2DBADFECEDCD900E4E3DDE7E3E200DAD5D8D9D800D5EBD5EDABFB somewhere in your ROM (or any other custom message using [buffer1]) and place a pointer to where you inserted it at 080A05E4.

    That's it!
     
    Last edited:

    Touched

    Resident ASMAGICIAN
    625
    Posts
    9
    Years
    • Age 122
    • Seen Feb 1, 2018
    So, I looked into adding more field moves. Turns out there are four (three in Emerald) tables that need to be expanded and repointed.

    Code:
    BPEE
    
    08615D7E: Moves that can be field moves, terminated by 0xE
    08615D9C: Field moves routine list. Pointer, then a word value. Set to D for a normal field move
    08615C08: Pointer pairs. First pointer is text, second is routine. Always 081B5471 for field moves
    081B344E: Sentinel value for 08615D7E (currently 0xC Guillotine)
    
    Same structure in FireRed
    BPRE
    
    0845A76E: Moves that can be field moves, terminated by 0xC
    0845A788: Routine list for field moves
    0845A618: Menu List. (Pointer pairs). Second is always 081245A5 for field moves.
    0845A37C: Descriptions for field moves
    08122A3C: Sentinel value for the table at 0845A76E (currently 0xE - Swords Dance)

    You can't use Guillotine as a field move in FireRed (move ID 0xC) and Swords Dance in Emerald (0xE), unless you change the sentinel. I don't know why its not zero, but I posted the offset of the compare to this value (sentinel value). If you want to use those moves you can just change that to something else.

    Make sure you repoint ALL references to those.
     
    Back
    Top