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

Code: [EM] Dizzy's Hacked Engine

Wesley FG

Pokémon Kalos Advance !! Gba Hack
338
Posts
15
Years
It would.

Hey dizzy great feature you are make,
i really love everything !!!
i test exaustive The Batle Engine, the Expansion, Item Tm expansion, and this hacked engine,
and everything work fines !!!!
Congratulations and thanks, you make hacking great again !!!

I have only one request, for next update you work in add new item effect like (choice scarf, life orb, eviolite, and some other used in competitive), because is the only thing you need do, you make all things is posible thanks so much !!!!!
 
794
Posts
10
Years
I have only one request, for next update you work in add new item effect like (choice scarf, life orb, eviolite, and some other used in competitive), because is the only thing you need do, you make all things is posible thanks so much !!!!!

Glad you like it.

All items with a battle effect(like eviolite, choice scarf, etc.) are already done in the battle engine. You juts have to assign item's battle effect to the correct one.
 

Wesley FG

Pokémon Kalos Advance !! Gba Hack
338
Posts
15
Years
Glad you like it.

All items with a battle effect(like eviolite, choice scarf, etc.) are already done in the battle engine. You juts have to assign item's battle effect to the correct one.

sorry for my noob

because are so many features and i only test it the last two days,
I have not seen it

man really you make the best features of all times of hacking, and i hack pokemon at
long 8 years, and you really surprise me !!

the hacking community need only thanks for you work!!
#EMteam
 
112
Posts
8
Years
  • Age 27
  • Seen Mar 15, 2024
Hey there, have you considered increasing the default text speed in link battles?

It's always set to slow I belive, fast would make battles much better and smoother.
 

Wesley FG

Pokémon Kalos Advance !! Gba Hack
338
Posts
15
Years
"I'm open to any ideas, so if there's something you'd like to see in EM, tell."

i like to see it in EM

Hello everyone, today I would share with you this little patch:
2hclyd2.png

As you can see from the screen, the patch will add the icons of the DPP next to each menu item.
- ONLY FOR RUBY -
Note:
- If the menu item "Pokenav" should be active, the icons will be loaded out of phase respect to the corresponding menu item.
This is caused by the lack of an icon for Pokenav in DPP.

Technical information:
Offsets routine: 0x720000
Offset Images Icons (uncompressed): 0x7200D0
Offset Palette icons (uncompressed): 0x720610
To change icons you can open the ROM with NSE 2.X, click browse and input offsets earlier in the appropriate fields.

downloads:
http://www.mediafire.com/download/wzs1d0zg2i5e231/DPP_MENU.ips
Credit if you use it!

and the routine code for RUBY

.THUMB
.ALIGN 2
@08071174 00490847XXXXXX08
@080711C8 MOVS R0, #0x16 @coordinata x
@08071208 lunghezza cursore
@0807120E posizione X cursore

PUSH {R0-R7}
LDR R1, = 0x06008020
LDR R0, = 0x087200D0
MOV R2, #0x15
LSL R2, #4
SWI 0xC

LSL R2, #2
ADD R0, R2

MOV R3, #1
LSL R3, #10

LDR R1, = 0x0202EC48
MOV R2, #8
SWI 0xC
LDR R4, = 0x0202FEB3
LDRB R4, [R4]
CMP R4, #0x16
BNE ICONE
ADD R1, R1, R3
SWI 0xC

ICONE:
MOV R6, #0

MOV R0, #1
LSL R0, #11
ADD R0, #1
BL CHECKFLAG
CMP R0, #0
BEQ PARTY

ADD R6, #1
MOV R0, #0
MOV R1, #0
BL SPAWN

PARTY:
MOV R0, #1
LSL R0, #11
BL CHECKFLAG
CMP R0, #0
BEQ ALTRO

MOV R0, #1
ADD R6, #1
CMP R6, #2
BEQ CONTROLLO
MOV R0, #0
CONTROLLO:
MOV R1, #1
BL SPAWN

ALTRO:
LDR R5, = 0x0202E8FD
LDRB R5, [R5]

MOV R7, #2
LOOP2:
MOV R0, R6
MOV R1, R7
BL SPAWN
ADD R6, #1
ADD R7, #1
CMP R6, R5
BNE LOOP2

FINE:
POP {R0-R7}
POP {R4-R7,PC}

SPAWN:
LSL R0, #7
LDR R2, = 0x0600F8A8
ADD R0, R2
MOV R3, #6
MUL R1, R3
ADD R1, #1
MOV R2, #0xC0
LSL R2, #8
ADD R1, R2
MOV R2, #0
MOV R3, #0
LOOP:
STRH R1, [R0]
ADD R0, #2
ADD R1, #1
ADD R2, #1
CMP R2, #3
BNE LOOP
ADD R0, #0x3A
MOV R2, #0
ADD R3, #1
CMP R3, #2
BNE LOOP
BX LR

CHECKFLAG:
PUSH {R0}
LDR R0, = 0x08069341
MOV R10, R0
POP {R0}
BX R10

i think only error is when active dexnav (no have icon), and when the player active the menu in some weather is not clear, raining, or cloudy, the menu appear with error.

the original thread:
https://www.pokecommunity.com/showthread.php?p=8880222#post8880222

Port it for EM plz
and thanks for you work.
 
Dizzy asked me to write out an explanation for the new stuff in the hacked engine, and like a Slowpoke I totally forgot and am getting to it way later than I said I would. If you wanna follow along with the stuff I'm talking about, head here.

BW_REPEL: This option toggles whether or not you want the Gen 5 repel system installed. With this, the player will be asked if they want to use another Repel when their current one runs out. By default, it is set to false, which keeps the behavior unchanged from Gen 3.

WildMusic: This option toggles whether or not you want to be able to define custom music for particular species in wild battles. This would be useful if you wanted to have a different wild battle music for legendary Pokemon, or specific story important Pokemon. Put the song you want to play instead of the standard music in the Pokemon's padding bytes in their base stats structure. It's the same one you would use in the playsong command while scripting. By default this is false, which keeps the standard Emerald behavior.

EVTrainers: This option toggles the ability for you to define custom EV spreads, IV spreads, natures, abilities, and Poke Balls for NPC Trainer Pokemon. This is controlled by setting the EV byte in a Trainer's Pokemon data in your Trainer editor. Dizzy does a great job explaining the layout of the table in the original post. The location of the table can be found in your offsets.ini file, under the "config_table" heading.
Only trainers that use pokemon with custom moves and custom items are affected(note that even if you assign custom items, a pokemon can still hold nothing).
The layout is like this:
Spoiler:

You can have up to 255 different sets. Note that the first set is assigned by byte 0.
The table of sets gets created upon building the project.
By default, this is set to false, where only Battle Frontier Trainers have custom EVs.

MoreMoney: This toggles expanding the money limit one digit. With this enabled, max money will go from
Pok%C3%A9monDollar.png
999,999 to
Pok%C3%A9monDollar.png
9,999,999. That's ten times the amount of money that could originally be held! By default, this is set to false, which keeps the money limit at six digits.

NewEvolutionMethods: This toggles the implementation of all of the new evolution methods that have been added since Gen 3 (except Affection, I believe). So if you want gendered stone evolutions, or evolving when leveling up at a certain location, or leveling up with some other Pokemon in the party, you'll want this. By default, this is kept at false, which doesn't change any evolution methods.
EvosPerPoke: Change this if you've changed the maximum number of evolutions that a Pokemon can have. By default in Gen 3, that number is 5. You need at least 8 to be up to date (with Eevee's new evolutions). By default, this is kept at 5.

BallsExpansion: Toggles the Poke Ball expansion, which adds all of the new Poke Balls that have been introduced since Gen 3 (as well as Gen 2's Apricorn Balls) into your hack. Keep in mind, this does shuffle around the data structure of your Pokemon, which will probably mess with trading to unhacked games. By default, this is set to false, where no Poke Balls are changed.
FirstNewBallID: This is the item ID of your first new ball. You need 15 consecutive empty slots to add them all. Head into any item editor and take a group of 15 ?????????? items to change. By default, this is set to item 226.
FishingFlag: Provide a free flag here so that the engine knows when you're in a fishing wild battle. This is used only so that the new Lure Ball works correctly, and you'll want to have this if you've opted to use the Poke Ball expansion. By default, it is 0.

NatureStatColor: Toggles coloring the stats depending on a Pokemon's nature that indicate the stats affected. By default, this is set to false, where no stats will be colored.

MoreLevels: Set this to true if you want to change the level cap. By default, it is set to false.
MaxLevels: This is the maximum level possible in your hack. By default, it is set to 250. If MoreLevels is false, this gets ignored.

NewSpecials: Determines whether or not you want the new special commands. These specials add new functionality and are generally quality of life functions added for hackers or are common requests that hackers have. Set to true if you want them, leave at false otherwise. As a note, you need to keep your parameters right after your special command in your script. If you put them elsewhere, you will crash your game when the script runs. Dizzy provides script examples of using some of the specials right here. Furthermore, since you'll be putting straight values as some of your @org parameters, XSE will not know how to interpret them when decompiling. This is normal. Just make sure you're using the right values when you write up your script, and you should be fine. Here's the list from the original post:
Spoiler:

Tutors_Number: The number of moves teachable by Move Tutors in your hack. By default, this is 32.
TmsHms_Number: Total number of TMs and HMs in your hack. Default is 58.
TutorMovesTable, TmsMovesTable, Learnsets Table: Provide pointers to these tables if you've moved them. The Battle Engine and Item Expansion may move these around, so you'll want to double check if you're not sure.
ExpandedLearnsetTable: If you've expanded learnsets (like the Emerald Battle Engine does) set this to true. That means if you're using the Emerald Battle Engine, this should be true. By default, it is false.

MenuOptionsControl: Toggles the ability to hide options on the Start Menu based on whether or not a flag is set. Set to false if you don't want this functionality (though the hideable options in default Emerald, like Pokemon/PokeNav/Pokedex, will still be toggleable with their respective flags). If you set to true, you will need to provide free flags for the options you want to be able to hide.
FlagPokedex, FlagPokemon, FlagBag, FlagPokenav, FlagSave, FlagExit, FlagTrainerCard, FlagOptions: Provide free flags for the start menu options you want hidden and they will only appear on the menu if those flags are set. Leave at 0 to have them always shown. The Pokedex, Pokemon, and PokeNav have their default flags already assigned, though you can change them if you wish. You do not have to worry about this if you kept MenuOptionsControl set to false.

FireRedFishing: Setting this to true makes it so that fishing behaves like it does in Firered. You either get a bite and press A to immediately start a battle, or you don't get a bite and have to recast your rod. The default is false, where the Emerald functionality will be preserved. Emerald fishing requires multiple A presses to reel in a catch, and those presses need to be timed correctly.
ChainFishing: Introduced in X and Y, chain fishing increases your chances of hooking a shiny Pokemon while fishing. For more information on chain fishing, check out this Bulbapedia article. Set to true if you want this functionality. The default is false.
FishingFlag: Provide a free flag here so that the engine knows when you're in a fishing wild battle. This is used with ChainFishing and should be the same flag used to determine a fishing battle from the Poke Ball Expansion above.

ShinyCharm: If you want the Shiny Charm in your hack, which is a key item that increases the chance of encountering shiny Pokemon, provide the item ID of your Shiny Charm item here.

HallofFameFix: The data structure of the Hall of Fame sequence ordinarily prevents it from displaying Pokemon past a certain index number, which causes bugs while trying to register most expanded Pokemon in the Hall of Fame. Set to true to fix this. Keep at false if you're not using expanded Pokemon.

That's everything new, I think. Let me know if I messed anything up Dizzy!
 
Last edited:

Wesley FG

Pokémon Kalos Advance !! Gba Hack
338
Posts
15
Years
I like much you work and i love to see my ideas in this engine and i found one incrible thing
and i like much to put it in EM

A EV-IV Display Screen

Spoiler:
 
160
Posts
8
Years
Hello DizzyEgg,
you released many new engines and I would like to know if the order of applying the engines is important. If it is important, then what order would you recommend?
How much different engines have you released? And my last question: Where does the free space in Emerald begins and how do I apply those patches directly after another, so that there is no free space left in between the engines?
Another good idea is to change the text speed in link battles as a poster above said.
I hope you understand what I mean. I love your work and your stamina to not give up on working. It's amazing, keep it up!
 
Last edited:
25
Posts
7
Years
  • Age 29
  • Seen Sep 3, 2022
Ehi Dizzyegg!
I really appreciate your work and i have a little request for you!
I've seen in pokemon essentials 2 special items: the LinkStone (that just evolve pokemon if they're holding the correct item, like scyther) and a pokeball that make shiny the pokemon that catch. Is it possibile to make those items in pokemon emerald? Thank you in advise!
 
132
Posts
9
Years
  • Age 23
  • Seen Apr 21, 2024
small suggestion for the competitive trainers section: perhaps change that final padding byte into a byte that controls the gender of the pokemon in question? (i ask this specifically because, for whatever reason, despite setting brawly's gender to male all of his pokemon are coming up female, which is weird.) as well, the poke ball byte might be off? I set it to 0xB, which should be the premier ball, but it came out as the luxury ball.

also, trainer-owned pokemon will randomly have shinies- this is probably something that could be sold as a feature, but it's a little inconvenient, and should at minimum be able to be turned off.

EDIT: also, a suggestion for another special to add: checkpokemon? as far as i know this command doesn't exist in emerald and it would be very convenient to have.
 
Last edited:
534
Posts
11
Years
  • Age 26
  • Seen Jul 24, 2023
Heya~ I have a suggestion. How about a function that changes your overworld and your trainer sprite. Kinda like JPAN's but better? :/
 
16
Posts
7
Years
  • Age 28
  • Seen Aug 7, 2017
Thanks for you great work. Maybe something about breeding. The Destiny Knot effect and Everstone effect in breeding like Gen 6 which can help a lot to incubate.And another is that the egg can inherit the ball from its parent like Gen 6.
 
Last edited:
2
Posts
14
Years
  • Seen May 7, 2017
I can't seem to run the build.py. keep getting that there is an errors

Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 19:28:18) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
RESTART: C:\Users\Hacking\Desktop\Clean Roms\Various-EM-features-master\Various-EM-features-master\scripts\build.py
DevKit does not exist in your Path variable.
Checking default location.
Devkit found.
Traceback (most recent call last):
File "C:\Users\Hacking\Desktop\Clean Roms\Various-EM-features-master\Various-EM-features-master\scripts\build.py", line 619, in <module>
main()
File "C:\Users\Hacking\Desktop\Clean Roms\Various-EM-features-master\Various-EM-features-master\scripts\build.py", line 612, in main
build_script()
File "C:\Users\Hacking\Desktop\Clean Roms\Various-EM-features-master\Various-EM-features-master\scripts\build.py", line 306, in build_script
edit_defines()
File "C:\Users\Hacking\Desktop\Clean Roms\Various-EM-features-master\Various-EM-features-master\scripts\build.py", line 158, in edit_defines
defines = open(SRC + "/defines.h", 'r+')
FileNotFoundError: [Errno 2] No such file or directory: './src/defines.h'
>>>
 

KriXtuFher

PoKéMoN Trainer
108
Posts
7
Years
  • Seen May 3, 2022
Dizzy Egg, can you make a Feature like, when you catch a Pokemon it has now its own Right Nature. So the player will not back and forth in the grass, water, etc or not difficult to get the right nature of Pokemon they want.
 

Froosty

The_Learner
535
Posts
9
Years
Dizzy Egg, can you make a Feature like, when you catch a Pokemon it has now its own Right Nature. So the player will not back and forth in the grass, water, etc or not difficult to get the right nature of Pokemon they want.

Hey do you mean player put a custom nature when they catch the pokemon >_>

That would not be fun then o_O
 
1,591
Posts
10
Years
  • Age 30
  • Seen Mar 20, 2024
I'm amazed this isn't getting more attention, what you've done here (and with all your other Emerald works) is incredible, I'm having a lot of fun just adding them all to a ROM and messing around. One question though, how do you actually reuse the old dex flags after expanding Pokemon? Is there an existing way to check them, or would I need to write a new routine to do so? I realize it's probably not even necessary to use them (seeing as your flag check script finds over 300 unused flags, which is more than enough), but it'd be nice to have the option on the off chance that some of them do turn out to be used somewhere.

It might also be worth adding the flag and var expansion feature to the list in the OP, I could see it being very useful for a lot of people.
 
Back
Top