Trainer 781
Guest
- 0
- Posts
BIG ANNOUNCEMENT HERE
---------------------------------------------------------------------------------------------------------------------------------------------------
Greetings! It's been a while since JPAN's engine and the Physical/Special Split defined Fire Red hacking.
MrDollSteak's patch then became one of the most frequently used patches on Pokecommunity.
Then came Touched's Mega Evolution implementation that introduced us to C hacking, which has since been promoted by FBI.
With this in mind I present to you what I think is the next revolution in the Rom hacking scene.
Fully functional Mega Evolution. Huge thanks for Touched for his code which we used and improved.
To enable Megas:
1. Open the config.h files in the src folder. In line 9, change the keystone index to the item index of your liking. Player has to posses that item in order to mega evolve. Build file after the change.
2. In G3T, open the 'pokemon editor.ini' file in the Customization folder.
3. Paste this:
in the evolution conditions section.
4. Now, open the item editor. Choose an item of your choice to be used as a mega stone. Set its Special Value 1/2 (or Held Item Effect) to 139 (in decimal) or 0x8B (in hex).
5. In the extra section of item, put the index of the target Mega Pokemon (e.g index of Mega Scizor if want your item to behave like Scizorite). Note that if you're using Kurapika's Gen3Tools you'll have to insert the ID in hex.
6. Now, open the pokemon editor, choose the mon you want to mega evolve. Then go to the evolution tab and add an entry there by setting 'Condition To Evolve' as 'Mega evolution' and
'Evolve To' to the Mega Species (e.g Mega Scizor in case of Scizor).
7. Make sure to set back the original species as Revert Megas evolution of mega species. (Unless you want your pokemon to stay as mega forever :P)
(e.g Scizor as Revert Megas evolution of Mega Scizor).
8.To activate it in a battle, press the start button while choosing a move. You will hear a sound and the evolution happens shortly after.
Form Changes and Configuration:
Here's a link to a beautifully written post of Deokishisu that goes in detail on what each define does. Make sure to read it before configuring the engine.
https://www.pokecommunity.com/showpost.php?p=9593094&postcount=600
For info on trainer messages and background customization see this post.
https://www.pokecommunity.com/showpost.php?p=9612109&postcount=627
Screenies:
Gifs:
This engine is available for anyone to use, just make sure that if you do, give proper credit by linking to this page.
- MrDollSteak for Move Animations, Move Names, Move Descriptions, Ability descriptions, Contest data and Fairy-type Implementation
- FBI for the C tutorial
- Touched for his python files and Emerald IDB
- Knizz for the FR IDB and huge amounts of research
- Jambo51 for Battle Script Pro
- JPAN for his research on battle script commands
- Bird for Scald animation
- kleenexfeu for the Move Messages and Move descriptions from his rombase
- My cousins for lots of testing and bug finding
- If I forgot someone, please let me know and I'll add you immediately
---------------------------------------------------------------------------------------------------------------------------------------------------
Emerald Battle Engine Upgrade
Greetings! It's been a while since JPAN's engine and the Physical/Special Split defined Fire Red hacking.
MrDollSteak's patch then became one of the most frequently used patches on Pokecommunity.
Then came Touched's Mega Evolution implementation that introduced us to C hacking, which has since been promoted by FBI.
With this in mind I present to you what I think is the next revolution in the Rom hacking scene.
Battle Features
Spoiler:
- Damage Calculator rewritten from scratch
- Physical, Special and Status Split
- Fairy Type
- New Abilities
- Updated Abilities
- New Move Effects
- New Move Animations
- New Item Effects
- Updated Item Effects
- Optimized and Updated Type Effectiveness Calculation
- Triple Pokemon Types in Battle
- Dual Type Moves
- Triple Stat Change Messages
- Updated Critical Hit Calculation
- Rewritten Battle Script Commands
- Support for Custom Battle Messages
- Improved Targeting
- Improved Event Sequencing
- New Learnsets
- Double Wild Battles
- Trainer messages in battle
- Support for expanded pokemon, items and evolution tables.
If you changed the evolution entries per pokemon, so that each poke can have 8 evolution or expanded pokemon/items change that line in the defines.h file
- In battle-form(e) changes (e.g Stance Change, Primal Reversion, Flower Gift, Relic Song, Illusion)
All working exactly like in Gen6
- Rewritten and improved AI supporting new moves, abilities and items.
- And much more!
Spoiler:
Done so in the style of Black and White and later games
- Physical, Special and Status Split
Spoiler:
Including the icons
- Fairy Type
Spoiler:
Done so using the information from here
- New Abilities
Spoiler:
All abilities from gens4-6 have been added
- Updated Abilities
Spoiler:
Abilities from gens1-3 have been updated to reflect new generations
- New Move Effects
Spoiler:
All of the new moves from Gens 4-6 are included
- New Move Animations
Spoiler:
Currently most of the new moves from Gens 4 are complete with more from further generations
- New Item Effects
Spoiler:
All item effects that have an effect in battle have been included.
In the defines folder, see the 'itemeffects.h' file to get the values they hold.
To set item effect to an item, set that value in the 'special 1/2' box in Kurapika's Gen3 Tools (I'm not sure how other item editors have named this field)
In the defines folder, see the 'itemeffects.h' file to get the values they hold.
To set item effect to an item, set that value in the 'special 1/2' box in Kurapika's Gen3 Tools (I'm not sure how other item editors have named this field)
- Updated Item Effects
Spoiler:
Item effects have been updated to reflect new generations
- Optimized and Updated Type Effectiveness Calculation
Spoiler:
To facilitate adding new moves and abilities
- Triple Pokemon Types in Battle
Spoiler:
Used by Trick-or-Treat and Forest's Curse or a custom move with same effect you'd like to add
- Dual Type Moves
Spoiler:
Used by Flying Press and Freeze Dry but also allows for custom moves
- Triple Stat Change Messages
Spoiler:
Messages will now be displayed for moves and abilities that raise or lower stats to 3 or more
- Updated Critical Hit Calculation
Spoiler:
To assign a higher crit ratio to a move, tick the 0x40 byte(first unused byte in most move editors)
- Rewritten Battle Script Commands
Spoiler:
To better support New Abilities, Moves and Item Effects
- Support for Custom Battle Messages
Spoiler:
The ability to assign New Battle Messages to support new Abilities, Moves and Item Effects
- Improved Targeting
Spoiler:
There are more targeting options available for moves like Acupressure
- Improved Event Sequencing
Spoiler:
End of turn events have been adjusted to better match later generations (may not be 100% correct, please inform us if our order is wrong!)
- New Learnsets
Spoiler:
All pokemon now have their correct learnsets from Omega Ruby and Alpha Sapphire.
Compatible with PGE.
Compatible with PGE.
- Double Wild Battles
Spoiler:
Just like in the Black/White series it's now possible to encounter two pokemon in a wild battle. The mechanics are the same as in the original games.
- Trainer messages in battle
Spoiler:
Similarly to the newer games, trainers are now able to say something in the middle of a battle.
- Support for expanded pokemon, items and evolution tables.
Spoiler:
If you changed the evolution entries per pokemon, so that each poke can have 8 evolution or expanded pokemon/items change that line in the defines.h file
Code:
#define ALL_POKES 412 //number of all pokemon
#define ALL_ITEMS 377 //number of all items
#define NUM_OF_EVOS 5 //number of evolutions per pokemon
- In battle-form(e) changes (e.g Stance Change, Primal Reversion, Flower Gift, Relic Song, Illusion)
Spoiler:
All working exactly like in Gen6
- Rewritten and improved AI supporting new moves, abilities and items.
Spoiler:
No more AI using new moves mindlessly!
- And much more!
Mega Evolution, Form Changes and Configuration
Spoiler:
Fully functional Mega Evolution. Huge thanks for Touched for his code which we used and improved.
To enable Megas:
Spoiler:
1. Open the config.h files in the src folder. In line 9, change the keystone index to the item index of your liking. Player has to posses that item in order to mega evolve. Build file after the change.
2. In G3T, open the 'pokemon editor.ini' file in the Customization folder.
3. Paste this:
Code:
FB=MegaEvo
FC=Fervent
FD=Primal
FF=RevertMegas
4. Now, open the item editor. Choose an item of your choice to be used as a mega stone. Set its Special Value 1/2 (or Held Item Effect) to 139 (in decimal) or 0x8B (in hex).
5. In the extra section of item, put the index of the target Mega Pokemon (e.g index of Mega Scizor if want your item to behave like Scizorite). Note that if you're using Kurapika's Gen3Tools you'll have to insert the ID in hex.
6. Now, open the pokemon editor, choose the mon you want to mega evolve. Then go to the evolution tab and add an entry there by setting 'Condition To Evolve' as 'Mega evolution' and
'Evolve To' to the Mega Species (e.g Mega Scizor in case of Scizor).
7. Make sure to set back the original species as Revert Megas evolution of mega species. (Unless you want your pokemon to stay as mega forever :P)
(e.g Scizor as Revert Megas evolution of Mega Scizor).
8.To activate it in a battle, press the start button while choosing a move. You will hear a sound and the evolution happens shortly after.
Form Changes and Configuration:
Spoiler:
Here's a link to a beautifully written post of Deokishisu that goes in detail on what each define does. Make sure to read it before configuring the engine.
https://www.pokecommunity.com/showpost.php?p=9593094&postcount=600
For info on trainer messages and background customization see this post.
https://www.pokecommunity.com/showpost.php?p=9612109&postcount=627
Additional Features
Spoiler:
- Dynamic Insertion
- No more Pokemon data encryption
- Faster speed button
Spoiler:
Being completely dynamic means it doesn't matter if you're using a clean or hacked rom.
It supports expanded roms.
It supports expanded roms.
- No more Pokemon data encryption
Spoiler:
Allows for easier editing of Pokemon information, though it does require you to start a new game or erase all your currently owned Pokemon.
If you don't want this feature, delete the 'negates pokemon encryption' section in the 'bytereplacement' file.
If you don't want this feature, delete the 'negates pokemon encryption' section in the 'bytereplacement' file.
- Faster speed button
Spoiler:
(after building the file, may require you to load the game from the gamesave, not the savestate(only once))
Same as above
Same as above
Screenshots
Screenies:
Spoiler:
Gifs:
Spoiler:
Planned Features
Spoiler:
- Finish the Move Animations
- Add Gen7 abilities and moves
- Optional features suggested by users
Spoiler:
See the PendingMoveAnimations.md file
- Add Gen7 abilities and moves
- Optional features suggested by users
Installation Instructions
Spoiler:
- Download devkitpro from here.
And install it.
Download r45 of devKitARM from here:
https://sourceforge.net/projects/devkitpro/files/devkitARM/devkitARM_r45/
Open the devkitARM folder (installed using the first link), and replace its contents with the contents of devkitARM r45.
- Download the latest version of python(3.4, 3.5 or 3.6 should be good).
After downloading and before proceeding to install make sure that the 'add to path' checkbox is ticked, otherwise you'll have to add the python path in the environment variables manually.
- Download the master folder from our github page here.
(click 'Clone or Download', then 'Download Zip')
- Open a 'make.py' file in the scripts folder and configure the offset location, the rom name and additional options.
- Run the cmd.exe in the main folder.
You can do this by typing 'cmd' and hitting enter in the url address or selecting 'run command prompt from here' from right clciking on empty space while holding the shift key
- In the command prompt window, type 'python scripts/make.py' and press Enter
A new gba file will appear named as test.gba.
This is your resultant file.
- For PGE users, you will have to follow an additional step.
- Place a copy of a valid roms.ini in the master folder and in cmd prompt type 'python scripts\PGEinidump.py'.
A corresponding test.ini will be created for test.gba.
- These steps should be repeated, if you want to update it to the latest build.
And install it.
Download r45 of devKitARM from here:
https://sourceforge.net/projects/devkitpro/files/devkitARM/devkitARM_r45/
Open the devkitARM folder (installed using the first link), and replace its contents with the contents of devkitARM r45.
- Download the latest version of python(3.4, 3.5 or 3.6 should be good).
After downloading and before proceeding to install make sure that the 'add to path' checkbox is ticked, otherwise you'll have to add the python path in the environment variables manually.
- Download the master folder from our github page here.
(click 'Clone or Download', then 'Download Zip')
- Open a 'make.py' file in the scripts folder and configure the offset location, the rom name and additional options.
- Run the cmd.exe in the main folder.
You can do this by typing 'cmd' and hitting enter in the url address or selecting 'run command prompt from here' from right clciking on empty space while holding the shift key
- In the command prompt window, type 'python scripts/make.py' and press Enter
A new gba file will appear named as test.gba.
This is your resultant file.
- For PGE users, you will have to follow an additional step.
- Place a copy of a valid roms.ini in the master folder and in cmd prompt type 'python scripts\PGEinidump.py'.
A corresponding test.ini will be created for test.gba.
- These steps should be repeated, if you want to update it to the latest build.
Bug Reporting and Suggestions
Spoiler:
If you encounter any bugs feel free to report it.
Our goal is to achieve a flawless updated battle engine.
You can post them here or on our GitHub page(New Issue).
We'd prefer the latter as it would be easier for us to keep track of the pending and the fixed ones
You are also welcome to give suggestions for features to include in the engine and to express your opinions on the project.
To get in contact with us PM or VM me or KDS, post in the thread or pull an issue on GitHub.
Most of the time I'm available on the #RomHacking IRC.
Our goal is to achieve a flawless updated battle engine.
You can post them here or on our GitHub page(New Issue).
We'd prefer the latter as it would be easier for us to keep track of the pending and the fixed ones
You are also welcome to give suggestions for features to include in the engine and to express your opinions on the project.
To get in contact with us PM or VM me or KDS, post in the thread or pull an issue on GitHub.
Most of the time I'm available on the #RomHacking IRC.
Contribution Instructions
Spoiler:
- there are lots of moves to be yet animated, if you know or you're willing to learn how animations are done, you're more than welcome to help. See PendingMoveAnimations.md file which states which moves are yet to be animated.
We'll guide you a bit and explain how to add them to the project.
- if you have experience with ASM, I bet you can also work in C which is a higher level than assembly, making it more convenient and easier to implement new features.
Make sure to read FBi's tutorial.
It should give you a good briefing how to code in C for Pokemon.
Contact me or KDS after that.
- decapitalizing in-battle messages, move and item descriptions and so on.
This boils down to finding a string's address and changing uppercase letters to lowercase.
(See our 'bytereplacement' file)
- Testing! No matter how hard we try, there's always gonna be something overlooked or acting not the way it should.
If you find something, please tell us!
We'll guide you a bit and explain how to add them to the project.
- if you have experience with ASM, I bet you can also work in C which is a higher level than assembly, making it more convenient and easier to implement new features.
Make sure to read FBi's tutorial.
It should give you a good briefing how to code in C for Pokemon.
Contact me or KDS after that.
- decapitalizing in-battle messages, move and item descriptions and so on.
This boils down to finding a string's address and changing uppercase letters to lowercase.
(See our 'bytereplacement' file)
- Testing! No matter how hard we try, there's always gonna be something overlooked or acting not the way it should.
If you find something, please tell us!
This engine is available for anyone to use, just make sure that if you do, give proper credit by linking to this page.
Credits
Spoiler:
- MrDollSteak for Move Animations, Move Names, Move Descriptions, Ability descriptions, Contest data and Fairy-type Implementation
- FBI for the C tutorial
- Touched for his python files and Emerald IDB
- Knizz for the FR IDB and huge amounts of research
- Jambo51 for Battle Script Pro
- JPAN for his research on battle script commands
- Bird for Scald animation
- kleenexfeu for the Move Messages and Move descriptions from his rombase
- My cousins for lots of testing and bug finding
- If I forgot someone, please let me know and I'll add you immediately
Last edited: