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

Development: Dynamic Pokémon Data

218
Posts
10
Years
    • Seen Nov 12, 2021
    In the Generation III games, almost everything in the data of a pokémon is dynamic. Moves, level, IVs, EVs, nickname.
    But there are things that have always been tied to their 0x1C bytes-long data in the ROM, like type, abilities -you can only have two different-, basestats. I always found that very limitating.
    This hack aims to change that, and allows you to change the type, ability, or basestat of a pokémon just like you would change its move, depending on each individual pokémon and not only its species.

    Dynamic Pokémon data

    Sn9nS17.gif
    E4LY2Oi.gif
    g12kQ5C.gif

    These are very simple scripts, I didn't bother making something fancy, you will have to take care of that. The above changes carry over storing your pokémon in the PC, sending it to battle, evolving, etc. So set these you have many solution, a simple script like the one provided, tweaking the wildbattle/givepokemon commands. I may provide them in the future if anyone is interested.
    This hack was done by changing how the data of a pokémon are read and written. I shrinked and simplified the functions, and written a macro so that it's easily customizable. I took the liberty of removing what I think are unecessary fields, like sanity (which can be derived from other data), language (it will always be english), the mew/deoxys bit for obedience (will always be TRUE), atk/def/spe/spa/spd stats (can be derived from other data).
    If you are not interested by the customization of your pokémon, you could simply have the data shrinked and save (a lot) of space in the RAM and saveblocks, allowing the PC to have more pokémon, for example. If you're a little adventurous, you could change anything about your pokémon without changing its species, like sprite, palette. You can make the changes temporary by storing the data in the part that are erased upon storing in the PC. There are many options you can think of.
    It also means that existing saves will have their pokémon becoming garbage, although I can think of a way or two to translate the data from vanilla to Dynamic.
    It is compatible with progressing hacks.

    You can download the code (in assembly) for FireRed and Emerald
    Although the code is in assembly, it can be easily translated in C to be compatible with the decomps, or used as it is.

    Credits

    The PRET Team - Their defines helped me organize this. Plus their awesome resources in general.
    Kingcom - For making the most awesome assembler ever.
    GameFreak/Nintento, etc. for obvious reasons.
     
    Last edited:
    41
    Posts
    4
    Years
  • Is there any possibility of the link being restored? It would also be of great help if other people could share the link of this tool.
     

    Li Yun

    "Does the truth exist or is it all a lie and the w
    204
    Posts
    3
    Years
  • Link Off. Would anyone have the link of this file to Emerald?
     
    Back
    Top