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

Pokemon Expansion

794
Posts
10
Years
  • About time, hmm?

    Introduction
    Decomps have been present for quite some time already, but one of the most possibly wanted features in a rom hack, that is pokemon expansion, was still nowhere to be seen(apart from Lunos' 493 base which sadly was done for an old version of pokeruby). I wish to change that, and present to you a game with over 800 pokemon in total. An expansion project featuring pokemon from all 7 generations, mega evolutions and forms. My aim is to put only whatever is necessary without any unrelated features, all put in one repository ready to use stand-alone or in conjunction with my battle engine.

    General information
    I'd like to go in detail over what exactly is in. There are several things that a project like this must cover, this includes pokemon sprites, base stats data, icons, cries, etc.
    Spoiler:

    Screenshots
    Spoiler:

    Gifs
    Spoiler:

    Download:
    The project is open-source and can be found here. All bugs and glitches are in the 'Issues' section. If you find one that's not there, please let me know so it can be quickly fixed!
    https://github.com/rh-hideout/pokeemerald-expansion/tree/pokemon_expansion
    Credits
    Spoiler:
     

    Attachments

    • learnsets(1).txt
      578.8 KB · Views: 290
    Last edited:
    4
    Posts
    6
    Years
    • Seen Jul 29, 2020
    How can i use the battle engine update with this expansion?
     
    Last edited:
    2
    Posts
    13
    Years
  • The project sounds interesting, is there any "TODO" list for people that want to participate in the project/help implementing stuff?
     
    Last edited:
    794
    Posts
    10
    Years
  • The project sounds interesting, is there any "TODO" list for people that want to participate in the project/help implementing stuff?

    Yeah, there is some stuff that hasn't been done.

    - Coordinates for form pokemon species
    - Mon animations for gen5 mons, megas, forms and some of gen4 mons(one person been doing them, so its just gen5 I guess)
    - Some sprites such as Turtwig have the second frame with a bit messed up palette, needs to be fixed

    But it's mostly animations. Btw if you're thinking this must be super hard or anything like that, it's really not. It's basically finding the most appropriate animation function (reference) and assigning them for species here. Note the distinction between hex and dec tho.
    The second part is duration of the changing frames, done here .
     
    Last edited:
    2
    Posts
    4
    Years
    • Seen Jul 22, 2020
    Hi, I'm new to ROM hacking, and started out with the decomp.
    How does the evolution mechanic for Leafeon, Glaceon and Magnezone work in Gen3 under your implementation? Because to my knowledge, their respective evolution methods do not exist in Gen3, and how can we enable those in a Gen3 game?
     
    794
    Posts
    10
    Years
  • Hi, I'm new to ROM hacking, and started out with the decomp.
    How does the evolution mechanic for Leafeon, Glaceon and Magnezone work in Gen3 under your implementation? Because to my knowledge, their respective evolution methods do not exist in Gen3, and how can we enable those in a Gen3 game?

    Hi, the method for them is EVO_MAP, the param is the desired map's region section id. Leveling up the mon on the specified map will trigger the evo.
     
    Last edited:
    2
    Posts
    4
    Years
    • Seen Jul 22, 2020
    Sorry to ask a dumb question, but how do you specify a map to enable evolution on those Pokemon? Is the param being mentioned the "62" next to EVO_MAP in evolution.h, or am I still missing something?
     
    794
    Posts
    10
    Years
  • Sorry to ask a dumb question, but how do you specify a map to enable evolution on those Pokemon? Is the param being mentioned the "62" next to EVO_MAP in evolution.h, or am I still missing something?

    Yes, exactly this, just change 62 to the desired map's section id.
     
    1,591
    Posts
    10
    Years
    • Seen Mar 20, 2024
    Hey, has anyone had any trouble with the in-game trades freezing after using this? The game locks up on the "take good care of _" screen. Not sure if I've broken something (seems likely) or if it's an issue with the expansion, so I thought it'd be better to ask here rather than open an issue on github.

    EDIT: Never mind, I've done a few tests and can confirm this isn't caused by any of your repositories.

    The only other issue I've run into is that a Grubbin caught in a Cherish Ball will crash the game when it's sent out, but that's easily fixed by assigning it a back sprite animation. I've only seen it happen with that specific combination so far, so no idea what's going on there.

    Everything else is fantastic so far, great work Dizzy! Either there are very few bugs or they're all very hard to find.
     
    Last edited:
    4
    Posts
    6
    Years
    • Seen Jul 29, 2020
    How can i asign the hidden abilities, them are coded in base stats, but how can i make a pokemon o have him?
     

    Lunos

    Random Uruguayan User
    3,114
    Posts
    15
    Years
  • How can i asign the hidden abilities, them are coded in base stats, but how can i make a pokemon o have him?
    As you saw, Hidden Abilities are already implemented, and adding one to a pokémon should be self-explanatory. You just add the relevant field to your pokémon's data inside the base_stats.h file between the line that handles your pokémon's regular abilities and their body color, and... that's it really.

    I doubt that's what you asked, so please do rephrase your question if I got it wrong.

    EDIT: And naturally, I did misunderstand. What mrlance asked here (he chatted with me on Discord a little bit), is how can he assign a Hidden Ability to a wild pokémon or a gifted pokémon.
     
    Last edited:
    22
    Posts
    9
    Years
    • Seen Oct 18, 2021
    How can i asign the hidden abilities, them are coded in base stats, but how can i make a pokemon o have him?

    I can answer this,

    src/pokemon.c, line 2495, in function CreateBoxMon:

    if (gBaseStats[species].abilities[1])
    {
    value = personality & 1;
    SetBoxMonData(boxMon, MON_DATA_ABILITY_NUM, &value);
    }
    I actually did it by assigned a flag check, works for both wild and gift.

    Edit: Well I shall mention u also need to modify GetAbilityBySpecies function to determine the abilityNum bit.

    Another thing is that 1 extra abilityNum bit will break the present save structure.
    What I did is to tweak the GetAbilityBySpecies function to read AbilityNum as hidden ability mark, while using PID to determine normal ability bit, or u can actually make the save structure using that 1 extra bit?
     
    Last edited:
    4
    Posts
    6
    Years
    • Seen Jul 29, 2020
    I added that extra bit and this changes
    if (gBaseStats[species].abilities[1] ||gBaseStats[species].abilityHidden )
    {
    if ((Random() % 10) == 0)
    value = 2;
    else
    value = personality & 1;
    SetBoxMonData(boxMon, MON_DATA_ABILITY_NUM, &value);
    }

    In GetAbilityBySpecies
    if (abilityNum == 2)
    gLastUsedAbility = gBaseStats[species].abilityHidden;
    else if (abilityNum == 1)
    gLastUsedAbility = gBaseStats[species].abilities[1];

    if (gLastUsedAbility == 0)
    gLastUsedAbility = gBaseStats[species].abilities[0];

    Thanx for your help
     
    Back
    Top