- 25
- Posts
- 13
- Years
- Seen Aug 25, 2017
Hi there,
i finally have managed it, to do MegaEvolutions in the 3rd Gen. I show you this, in order to get feedback, but also to help me with the desing of the new Mega-Pokemon.
This system will not be availible for the public, but i definitly want to get feedback (and of course also some publicity for my hack pokemon violet). If somebody has done any further research on the battle system (especially for the "display text callback at 0x03004FE0), it would be great, if you could post it here or pm me.
Also Pm me if you want to help me with the sprite desing.
Here is a link to Pokemon Violet - also subscribe my channel if you want to. I will post my research on the battle system (which is merly enough to perform a mega evolution), but keep in mind that all ROM-Offsets (and eventually some RAM Offsets as well) are only for FireRed German.
The Battle System is parted into many sequenzes, e.g. oponent makes a move, you open the bag etc. Which sequence is executed next is stored on a callback handler. A callbacks loops every frame, and if it has finished it pushes an other callback to this handler. There are many callbacks, and i dont know how many there are, but most of the time RAM: 0x03004FE0 is used for the callbacks.
There are some callbacks i reserached so far, but notice that they will all return to the "normal" battle once they have finished.
Everybody who has hacked items so far knows, that battle_scripts are executed kinda weird. The ASM snippet seems to prepeare what has to be done afterwards. The pokeball for example just loads data into the RAM, then uses the "Return to Battle" callback. Because the item slot is pokeball (im RAM) the callback from the table is executed, and a pokeballs effect is now active, even thogh the code on the pokeballs data itself has been executed long ago.
Unfortunatley that is almost everything i figured out so far ;)
i finally have managed it, to do MegaEvolutions in the 3rd Gen. I show you this, in order to get feedback, but also to help me with the desing of the new Mega-Pokemon.
This system will not be availible for the public, but i definitly want to get feedback (and of course also some publicity for my hack pokemon violet). If somebody has done any further research on the battle system (especially for the "display text callback at 0x03004FE0), it would be great, if you could post it here or pm me.
Also Pm me if you want to help me with the sprite desing.
Here is a link to Pokemon Violet - also subscribe my channel if you want to. I will post my research on the battle system (which is merly enough to perform a mega evolution), but keep in mind that all ROM-Offsets (and eventually some RAM Offsets as well) are only for FireRed German.
The Battle System is parted into many sequenzes, e.g. oponent makes a move, you open the bag etc. Which sequence is executed next is stored on a callback handler. A callbacks loops every frame, and if it has finished it pushes an other callback to this handler. There are many callbacks, and i dont know how many there are, but most of the time RAM: 0x03004FE0 is used for the callbacks.
There are some callbacks i reserached so far, but notice that they will all return to the "normal" battle once they have finished.
- 0x08108BCC | 1 : Return to the Battle, executes an item script form a table (usually your moves ends after that, because an item script from this table ends the move, but e.g. not for item 0x0)
- 0x080A1FE0 | 1 : text is loaded, which text is related to an table which i have not found so far
Everybody who has hacked items so far knows, that battle_scripts are executed kinda weird. The ASM snippet seems to prepeare what has to be done afterwards. The pokeball for example just loads data into the RAM, then uses the "Return to Battle" callback. Because the item slot is pokeball (im RAM) the callback from the table is executed, and a pokeballs effect is now active, even thogh the code on the pokeballs data itself has been executed long ago.
Unfortunatley that is almost everything i figured out so far ;)
Last edited by a moderator: