Advertiser Content

Resource Dynamic Emerald Attack Rombase

Started by Chacha Dinosaur April 22nd, 2016 3:36 AM
  • 19908 views
  • 73 replies
Age 25
Male
Seen August 31st, 2019
Posted August 31st, 2019
455 posts
6.6 Years
See Announcement (LINK HERE)


Dynamic Emerald Attack Rombase

Introduction:-
The aim of this project is to provide a dynamic rombase for Emerald with attacks and abilities from 4th-6th generations as well as updated moves, abilities and mechanics up to the latest Generation games.
The project is started by kleenexfeu. All the work till now has been done by him (except for a single tweak of Weakness Policy by me). But the ownership of this base has been now transferred to me.

The term dynamic here means that the hacker can decide where to place the rombase data (except the hooking part) in his/her project. So this feature enables the rombase to be compatible with in-progress hacks without needing to restarting their game to accomdate this base. (Though older saves will not be compatible after applying this base)
Also, this rombase is open-source. The coding part is mainly done in assembly language.

Features:-
Spoiler:

-Working mega evolution, wish and primal reversion with animation and particles! (Credits to MrDS for a part of the animation and the particles)
-Working Arceus/Giratina forms
-Double type attacks! (to account for flying press, but you can now add any other combination)
-Triple type Pokemon! (to account for trick or treat and forest's curse, or any other custom you'd want to use)
-Repointed/Expanded particles/animation backgrounds (Credits to MrDS/Shadowraze for their tutorial, Chaos Rush/Doesntknowhowtoplay for their general research in battle animation)
-Repointed/Expanded/decapped moves names/descriptions (Credits to MrDS for few newer move names because of the character restriction. Huge thanks to Le pug. He pretty much contributed to 2/3rd of the move descriptions)
-Repointed/Expanded/decapped abilities names/descriptions
-PSS icons (Credits to Darthathron, and Tlatchli for the port on Emerald)
-Rewritten the whole damage calc, to include a no. of abilities/moves as well as the PSS split and proper AI handliing for variable base power moves.
-Speed calculation rewritten (Credits to KDS)
-Switch-in check rewritten
-Accuracy calc rewritten
-Total rewrite of ability something
-Support for 1024 moves (A bit of everyone : Jambo51, MrDS and Me for fixing the lasts bugs)
-Fairy type (Thanks MrDS for his tutorial)
-Type chart updated
-New abilities :
Spoiler:

No guard
Poison Touch
Defiant @ Credits to KDS
Competitive @ Credits to KDS
Tangled Feet
Overcoat (+ grass type immune to powder moves)
Bulletproof
Mummy
Gooey
Justified
Rattled
Protean
Imposter
Desolate Land
Delta Stream
Primordial Sea
Multitype
Heatproof
Multiscale
Fur Coat
Flower Gift (doesn't change cherrim form)
Analytic
Toxic Boost
Flare Boost
Adaptability
Iron Fist
Strong Jaw
Mega Launcher
Reckless
Sand Force
Tinted Lens
Filter
Solid Rock
Weak Armor
Anger Point
Aftermath
Normalize
Aerilate
Pixilate
Refrigerate
Stance Change
Super Luck
Scrappy
Tough Claws
Technician
Sniper
Slow Start @ Credits to KDS
Regenerator
Gale Wing @ Credits to KDS
Prankster @ Credits to KDS
Storm Drain @ Credits to KDS/MrDS and me
Sap Sipper @ Credits to KDS/MrDS and me
Dry Skin @ Credits to KDS/MrDS and me
Motor Drive @ Credits to KDS/MrDS and me
Solar power
Unaware
Snow Cloak
Wonder Skin
Victory Start
Bad Dreams
Poison Heal
Sand Rush
Snow Warning
Ice Body
Sand Rush
Sand Force
Hydration
Infiltrator
Mold breaker @ Credits to KDS for the biggest part of this one, MrDS for the port and me for the improvement
Teravolt
Turboblaze
Download
Fairy Aura
Dark Aura
Aura Break
Other abilities have their names/descriptions, but don't do anything.

-A bunch of move effects:
Spoiler:

Punishment
Stored power
Acrobatics
Payback
Foul Play
Psystrike/shock/secred sword
Sacred Sword
Wring out/Crush grip
Flying press
Trick or treat @ not scripted yet
forest's curse @ not scripted yet
trick room
wonder room
magic room
Electroball
gyroball
Discharge @ Credit to KDS
Petal Blizzard @ Credit to KDS
Lava Plume @ Credit to KDS
Sludge Wave @ Credit to KDS
Boomburst @ Credit to KDS
Venoshock
Hex
Thousand arrows/smack down
Heavy Slam
Heat crash
Brine
Hurricane
Freeze Dry
Miracle Eye @ not scripted yet
Shell Smash @ Credits to mamamamama
Quiver Dance @ Credits to mamamamama
Flare Blitz @ Credits to mamamamama
Tail Glow @ Credit to MrDS
Cotton Guard
Fire/Thunder/Ice Fang @ credit to MrDS
Lucky Chant
Magnet Rise
Tailwind
Telekinesis @ not scripted yet
Metal Burst

-New item effects:
Spoiler:

Choice Specs
Choice Scarf @ Credit to KDS
Life Orb @ Credit to KDS for the recoil
TimeSpace Orbs
Expert belt
Weakness Policy
Iron Ball (doesn't remove immunity from spikes yet)
Safety Goggles
Wide lens
Focus Sash
Air Baloon (not finished, need to make it pop)
Pink Scarf
Eviolite
Assault Vest (status moves not restricted yet)
Flame Orb
Toxic Orb

-Updated abilities:
Spoiler:

Stench
Sturdy
Trace
Drizzle
Drought
Pressure
Lighting rod
Keen eye
Soundproof
Absorb-type abilities

-Updated Move Effects
Spoiler:

Charge @ Credits to mamamamama
Mud sport
Water sport
Surf @ Credits to KDS
Facade
Toxic
Blizzard
Taunt @ Credit to KDS
Hidden Power @ Credit to KDS
Facade
Disable @ Credit to Doesntknowhowtoplay
Encore @ Credit to Doesntknowhowtoplay
Knock off
Wrap/whirlpool and such
Sound based moves
Body slam
Minimize

-Updated item effects:
Spoiler:

Light ball



Installation And Usage:-
Spoiler:

Installing the base:
Spoiler:

1) Put all of these files in the same folder where your assembler is there. (Preferably, HackMew's Thumb assembler)
2) Go in the defines folder, and open the file named 'startcode.asm' in a text editor, change "Myloc" to the place you want to insert your code.
3) If you specify a value for "Myloc" less than 0xD97BC0, set Condition_To_Assemble to 1, otherwise keep it to 0. Also make sure you have 0x30000 bytes of freespace and the offset ends with a 0,4,8 or C.
4) Assemble the file "rombase".
5) Now you have to create a patch, the original unmodifed file to use is the "basepatch.bin", the modified file is your binary output, named "rombase.bin" by default.
6) Apply this patch to your Rom using a patcher.
7) Enjoy!


Setting up Mega Evolutions/Primal reversion:
Spoiler:

# Make the Pokemon use their mega/primal forms:

1) Open G3T, select the pokemon that you want to Mega Evolve.
2) In the evolution part, choose the kind of mega/primal you want. Index 252 = Wish mega evolution (with move), 253 = Primal reversion (with item), 254 = Regular mega evolution (with item).
3) In the "nothing required" part of G3T, you have to put the index of the Orb/Stone/Attack supposed to make your pokémon Mega Evolve/Primal Revert.
4) In the "evolve to" part, the target must be your mega/primal form

# Make the poke revert:
1) Now you go in the Mega/Primal form in G3T, and do the same thing than above except two part :
-In "nothing required" part, you set the argument to 0
-In the "evolve to" part, the target is your non-mega evolved mega/primal form.


Customize a bit:
Spoiler:

In the "defines.asm" file, there are no of item, ability related indexes in the starting portion of file, feel free to change them if you know what you're doing.
For example, you can adjust the index of aegislash blade/shield, to make it able to transform for Stance Change.
Same thing goes for items like life orb, griseous orb, etc.


Using new item effects:
Spoiler:

Sadly, the data (icons, effects and descriptions) for new items have not been inserted yet. Only the in-battle effects for these items are implemented. So for now, create these items using David Cobb's item creation tutorials and then follow these steps:
1) Look into "define.asm", there are lines like ".equ LifeOrbEffect, 0x43". This means 0x43 (67 in decimals) is the item Effect number for the item. You can change it if you want.
2) Go in the item editor of G3T, change the special 1 to match with the effect number you want.

You can also do this with PGE using a similar method.


Altering Movesets:
Spoiler:

Sadly G3T, doesn't have the feature to support the learnset style for 1024 moves. So you will need to edit "movesetpoke.asm" "tablemoveset.asm" manually.


Usage with PGE:
Spoiler:

PGE supports Jambo style learnsets but it does not load things like Move Table Data like G3T without needing to specify the table offsets in its ini files.
So you need to edit the PGE ini manually to make the base work with PGE:
1. Make a copy of "roms.ini" in GBA and paste the ini the same directory where the ROM is pesent.
2. Open the pasted ini and scroll to the [BPEE] section.
3. In the ini, go the last line of the [BPEE] section and insert this line "MoveTableHack=True"
5. Open the patched ROM in a hex editor
6. In the hex editor go to the offset x148. Look at the first 4 bytes from here. It is the pointer to the move names data in reverse hex. Convert to normal hex. Note it and in the ini file, change the value after AttackNames= to the corresponding value you obtained in hex removing the 08 prefix.
e.g If the contents of the ROM at x148 is '64 55 F0 08', then you should specify 'AttackNames=F05564' in the ini.
7. Similarly, AbilityNames at x1C0
8. AttackData at x1CC
9. ContestMoveData at x0x1C3E98
10. AttackDescriptionTable at x0x1C3EFC
11. AbilityDescriptionTable at x1C4
12. AttackAnimationTable at x0xA3A44




Planned Features:-
Spoiler:

- Make an installer that would automate the installation process and ensure proper updates
- Implement moves and abilities that have not been finished yet.
- Revamp of move Battle Scripts to match End Move events up to latest Generation standards. (for e.g activation of Color Change after the last strike of a multi-strike move).
- Expanded the item data and insert item data.
- Damage reducing berries
- More item effects
- Expanded evolution slots and add all new evolution methods (optional)
- Pokedex Expansion (optional)
- Implement Mega Evolution icons near HP bars.
- AI support for newer abilities and moves


Bugs/Suggestions:-
Feel free to give ideas, submit bugs, report incomplete moves etc. The aim is to get all things properly working.
Also, you can mention the moves, abilities etc. that usually have a high usage in-game which have not been implemented or partially implemented. So in that way, I will save the useless crappy abilities, moves etc. for later.

Notes:-
Spoiler:

- Currently only available for TESTING since it has not been tested with Roms having an expanded Pokedex yet.
- Requires x30000 bytes of free space.
- Currents only supports LIPS patcher for patching and starting offsets xFD0000 and lower, due to support only till 16 MB. Also I recommend using HackMew's THUMB Assembler. Link Here
- If you are planning to use LePugs's Emerald decap patch along with this. Then apply LePugs's patch first.
- Alwaays remember the Golden Rule. Make a backup before you patch.


Download Link:-
https://www.dropbox.com/s/4otrrbza0rvz9zs/Base_Emeraldpreusage.zip?dl=0

Credits:-
Spoiler:

(From kleenexfeu's side)
Touched - I started to learn ASM with him, he taught me countless tricks, explained so many things, I wouldn't have been able to do this without his teaching.
mamamamama - His wonderful rombase helped a lot for the move animation/description, huge thanks to him!
Le Pug - Hundreds of move description, he really saved me a lot of time! Thanks a lot!
KDS - Several routines and battlescripts (Defiant, multi-target moves, items, speed system...), advices, tricks that we taught to each other, big thanks!
MrDollSteak - Several routines (Redirections moves, absorb abilities), his tutorial to expand particles/types, ability descriptions, battle graphics, big thanks too!
DizzyEgg - Help to test mechanics on showdown, to figure out how the genVI engine works, also a lot of help for the documentation, and beta testing!
Contributors to the Move Resource thread
Contributors to the Quick Research and developement thread
Doesntknowhowtoplay - advices, but mostly for his hack on the pokémon encryption, it's awesome and it helped a lot!
FBI - He wrote a little yet so useful script to convert regular strings into something readable by the assembler, thanks!
Kleenexfeu - For everything else
Male
Seen January 10th, 2019
Posted May 4th, 2017
216 posts
6.6 Years
Finally, hope you'll do great with the base.
In the planned features, you can add items expansion, I always planned to do it but never had time to do so. It'd be handy with all of the new item effect, the berries, the mega stones etc.
Anyways, good luck with that!

BluRose

blu rass

Age 18
Male
michigan tech
Seen 11 Hours Ago
Posted 3 Weeks Ago
777 posts
5.9 Years
Wow! The only real thing that FireRed can say for itself nowadays is that it has the Hacked Engine, but even most of these features are easy to implement yourself...
One question, though: How does one have working Giratina/Arceus formes without having expanded Pokémon? Or is it just confirmed that it works?
am i cool yet
Male
Seen January 10th, 2019
Posted May 4th, 2017
216 posts
6.6 Years
I am so sorry, I cannot assemble it successful. Is there any steps I have missing?

Apparently some file are missing, did you move some directory/files? They are all sorted, the code can't be assembled if you move things around
Age 25
Male
Seen August 31st, 2019
Posted August 31st, 2019
455 posts
6.6 Years
Sounds really good, it makes me even hesitate between FR and EM ^^
Thanks. Choose your base wisely. Personally, I like both.

Finally, hope you'll do great with the base.
In the planned features, you can add items expansion, I always planned to do it but never had time to do so. It'd be handy with all of the new item effect, the berries, the mega stones etc.
Anyways, good luck with that!
Ya. I will add it. It will be a optional feature though.

Wow! The only real thing that FireRed can say for itself nowadays is that it has the Hacked Engine, but even most of these features are easy to implement yourself...
One question, though: How does one have working Giratina/Arceus formes without having expanded Pokémon? Or is it just confirmed that it works?
I haven't tested it yet. But it should work along with the replaced Pokemon method also. Kleenex coded this so he can elaborate.

I am so sorry, I cannot assemble it successful. Is there any steps I have missing?
Oops, I accidentally deleted a folder. Re-download.

Ayonn-

The Unbelivable

Male
FRANCE
Seen 4 Weeks Ago
Posted May 19th, 2018
209 posts
5.8 Years
Thanks. Choose your base wisely. Personally, I like both.


Ya. I will add it. It will be a optional feature though.


I haven't tested it yet. But it should work along with the replaced Pokemon method also. Kleenex coded this so he can elaborate.


Oops, I accidentally deleted a folder. Re-download.

I know that hacking FR is easier, but some of your features are amazing, really ! And I played both, EM is in my heart ahaha...Awesome job again
Male
Seen January 10th, 2019
Posted May 4th, 2017
216 posts
6.6 Years
Wow! The only real thing that FireRed can say for itself nowadays is that it has the Hacked Engine, but even most of these features are easy to implement yourself...
One question, though: How does one have working Giratina/Arceus formes without having expanded Pokémon? Or is it just confirmed that it works?
Before assemblîg the base, you can choose the indexes of the pokes that will behave as arceus and the indexes of the plate. So it should works with expanded dex too. For non expanded dex, I'm sure it works as I tested it many times

Gamer2020

Accept no Imitations!

Male
Distant Land
Seen November 24th, 2019
Posted January 6th, 2019
942 posts
11.7 Years

Usage with GBAPGE:

Spoiler:

GBAPGE supports Jambo style learnsets but it does not load things like Move Table Data like G3T without needing to specify the table offsets in its ini files.
So you need to edit the GBAPGE ini manually to make it work with GBAPGE.
1. Open the patched ROM in a hex editor.
2. Open "roms.ini" in GBAPGE and scroll to the [BPEE] section.
3. In the hex editor go to the offset x148. Look at the first 4 bytes from here. It is the pointer to the move names data in reverse hex. Convert to normal hex. Note it and in the ini file, change the value after AttackNames=&H to the corresponding value you obtained in hex removing the 08 prefix.
e.g If at x148: 64 55 F0 08 then 'AttackNames=&HF05564' in the ini.
4. Similarly, AbilityNames at x1C0
5. AttackData at x1CC
6. ContestMoveData at x0x1C3E98
7. AttackDescriptionTable at x0x1C3EFC
8. AbilityDescriptionTable at x1C4
9 .AttackAnimationTable at x0xA3A44
First of all, the "GBA" prefix was dropped ages ago, making the program just "Pokemon Game Editor" but that's not too important. Offsets aren't prefixed with "&H" in the ini anymore, using your example "AttackNames=F05564" is the correct way. Also to define that you are using Jambo51's format you specify "MoveTableHack=True" in the ini. Most likely you are using an older version of Pokemon Game Editor. Regardless, nice job.

C me

Creator of Pokemon League Of Legends

Age 22
Male
Seen February 2nd, 2019
Posted September 9th, 2018
683 posts
6.1 Years
Also, you can mention the moves, abilities etc. that usually have a high usage in-game which have not been implemented or partially implemented. So in that way, I will save the useless crappy abilities, moves etc. for later.
Well in competitive battling entry hazards like stealth rock/toxic spikes are used a lot, it would be nice to see them implemented.

(You knew I'd ask this disn't you ;))
Age 25
Male
Seen August 31st, 2019
Posted August 31st, 2019
455 posts
6.6 Years
I know that hacking FR is easier, but some of your features are amazing, really ! And I played both, EM is in my heart ahaha...Awesome job again
Thanks again!

Uh...
Did you make any changes in "startcode.asm". Also try using HackMew's assembler. Link provided in the notes section.

First of all, the "GBA" prefix was dropped ages ago, making the program just "Pokemon Game Editor" but that's not too important. Offsets aren't prefixed with "&H" in the ini anymore, using your example "AttackNames=F05564" is the correct way. Also to define that you are using Jambo51's format you specify "MoveTableHack=True" in the ini. Most likely you are using an older version of Pokemon Game Editor. Regardless, nice job.
Thanks! OP updated in accordance with the new version!

Well in competitive battling entry hazards like stealth rock/toxic spikes are used a lot, it would be nice to see them implemented

(You knew I'd ask this disn't you ;))
Well, I'll move it in a higher priority list. It not used too much, in-game though. But with properly planned trainers with a modified AI they can provide a challenge.

Although it was compiled successfully, but the Lunar IPS doesn't recognize its file type: .bin. How can I do?:(
You didn't create the patch.
Open Lunar IPS. Click the 'Create IPS' patch button. Then select 'basepatch.bin' as the original unmodified file. And 'rombase.bin' as the modified file. It will create the ips file. Then apply the ips.

Gamer2020

Accept no Imitations!

Male
Distant Land
Seen November 24th, 2019
Posted January 6th, 2019
942 posts
11.7 Years
Thanks! OP updated in accordance with the new version!
Also forgot to mention, the roms.ini shouldn't be edited directly anymore either. All that's needed is an ini with the same name in the same directory.

Example:


Any plans of putting this on Github? This is something I'd consider helping with since I've been thinking about doing something similar.

jiangzhengwenjzw

now working on pokefirered

Male
Seen 7 Hours Ago
Posted December 19th, 2019
177 posts
7.4 Years
stuff
I've successfully created the patch but i didn't follow your instruction:
I use the default offset for Myloc (0xFC7C00), but I should use ".equ Condition_To_Assemble, 0" to compile.

However you've said in your thread:
If you specify a value for "Myloc" less than 0xD97BC0, set Condition_To_Assemble to 0, otherwise set it to 1.
and in the file startcode.asm:
@@@ Set the Condition_To_Assemble below to 1 if you're assembling your code before the 0xD97BC0 region, set it to 1 otherwise.
So.............. (Sad look)

If anyone want to see the patch:
http://www.mediafire.com/download/xyy3od6zrht0yxv/KdsDynEmPatch.ips

INDIAN MEW(ARAZI)

THE WORLDS MOST DUMB MAN

Male
Sleeping in clouds.
Seen January 17th, 2020
Posted March 8th, 2018
411 posts
4.9 Years
looking great.looking promising.

good luck for base.
MY DEVIANT ART
http://arazitheman.deviantart.com
RUMOUR RED(FIRE RED BASE)
https://www.pokecommunity.com/showthread.php?t=396639
A2z GUIDE
http://www.pokemonhackersonline.com/showthread.php?t=15772-A2z-PokeRED-a-guide-for-fire-red
START LEARNING C,C++ OR PYTHON FOR FREE
https://www.sololearn.com

Age 25
Male
Seen August 31st, 2019
Posted August 31st, 2019
455 posts
6.6 Years
Also forgot to mention, the roms.ini shouldn't be edited directly anymore either. All that's needed is an ini with the same name in the same directory.

Example:

Any plans of putting this on Github? This is something I'd consider helping with since I've been thinking about doing something similar.
I'll add this point also. Though, I already assumed that the hacker is putting the ROM and the ini in the same folder.
I'll put this to GitHub, once I manage to finish the automated installer.

How do I even assemble a asm file?
Check FBI's ASM tutorial in this sub-forum.

Tailwind effect is incomplete, the failed string part was missing. When I reused it again, the game would be crashed immediately.
That was a mistake on my part. Now it is corrected. Re-download.

I've successfully created the patch but i didn't follow your instruction:
I use the default offset for Myloc (0xFC7C00), but I should use ".equ Condition_To_Assemble, 0" to compile.

However you've said in your thread:

and in the file startcode.asm:


So.............. (Sad look)

If anyone want to see the patch:
http://www.mediafire.com/download/xyy3od6zrht0yxv/KdsDynEmPatch.ips
Whoopsy! OP updated. What is mentioned in the ASM file is correct.. In the OP.

looking great.looking promising.

good luck for base.
Thanks!

LCCoolJ95

Limited Capacity

Age 24
Male
The World That Never Was
Seen 3 Days Ago
Posted 3 Weeks Ago
614 posts
10.8 Years
In the file where you have to change the indexes for Pokemon like Aegislash and Arceus, Giratina does not have an index number to replace. For Giratina Origin, it exists. But Giratina Altered, does not.

Also, I'll test this with an expanded Pokédex to see if some things need work.
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Pokémon Theta Emerald EX: https://www.pokecommunity.com/showthread.php?t=386240
Male
Seen January 10th, 2019
Posted May 4th, 2017
216 posts
6.6 Years
Just add a define "GiratinaIndex", I forgit it at the time
Also, when you test with pokedex expansion, make sure the free ram I used and the ram used by the dex don't overwrite each other otherwise weird things will happen
Advertiser Content