• 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

21
Posts
7
Years
  • Age 38
  • Seen Mar 19, 2024
DizzyEgg, could you explain how does "Music in a battle with a specific pokemon" feature work?. I would like to test it but I don't know what I should write in the padding bytes (music ID, offset...?). I guess I can use any song in the game. Could I use inserted songs?
 
794
Posts
10
Years
DizzyEgg, could you explain how does "Music in a battle with a specific pokemon" feature work?. I would like to test it but I don't know what I should write in the padding bytes (music ID, offset...?). I guess I can use any song in the game. Could I use inserted songs?

My bad for not specifying it. :P
You store a halfword(a two-byte value) in the padding bytes. The value is a songID the same one you use for scripting commands like playsong or changesong that get the song from the songtable.
 

Jeesh

I just wanna hack Emerald.
44
Posts
7
Years
  • Age 23
  • Seen Aug 23, 2020
It was a problem. Now I added a line that lets you set number of evolutions.

New error, yaaay:
0c3118cffca04105a9c9835120ed6399.png
 
55
Posts
14
Years
  • Seen Feb 1, 2023
Looks awesome! Keep up the good work!

Some cool feature ideas:

  1. Have an IV rating in the Stat menu. Like the system in Pokemon Gaia. There isn't a lot of room in the menu compared to FR, it's true, but this would be an awesome thing to have.
  2. Edit/remove the annoying beeping when pkmn are low on health. Again, like the way pkmn Gaia did it with just a single bing and then SILENCE. (might fit better in the battle engine?)
  3. Make TMs reusable. This would be awesome!
  4. Running in buildings!
  5. Eggs hatching at custom level (i.e. 1).
  6. Forcing "Set" on, to make a hack more challenging.
  7. EV cutoffs at 252, instead of 255 (or custom cutoff).
  8. Feature to change the max total EVs. (I mean, you can raise the level cap, so why not EVs as well?)
  9. Deletable HMs. Like in Theta Emerald EX.
  10. The ability to modify pkmn (not) allowed in the Battle Frontier. Again, like in Theta Emerald EX.
  11. Some sort of customization for HM OW effects. For example, I'd like to require the relevant badge and HM to have been obtained, but not require it to be learned. (One option would be to allow Fury Cutter or Slash as alts for Cut) This would eliminate the need for HM slaves, which would be fantastic!
I realize some of these are pretty trivial and/or have routines done for them (and posted to PC) already, but having a bunch of these features in one codebase would be amazing!
 
794
Posts
10
Years
Looks awesome! Keep up the good work!

Some cool feature ideas:

  1. Have an IV rating in the Stat menu. Like the system in Pokemon Gaia. There isn't a lot of room in the menu compared to FR, it's true, but this would be an awesome thing to have.
  2. Edit/remove the annoying beeping when pkmn are low on health. Again, like the way pkmn Gaia did it with just a single bing and then SILENCE. (might fit better in the battle engine?)
  3. Make TMs reusable. This would be awesome!
  4. Running in buildings!
  5. Eggs hatching at custom level (i.e. 1).
  6. Forcing "Set" on, to make a hack more challenging.
  7. EV cutoffs at 252, instead of 255 (or custom cutoff).
  8. Feature to change the max total EVs. (I mean, you can raise the level cap, so why not EVs as well?)
  9. Deletable HMs. Like in Theta Emerald EX.
  10. The ability to modify pkmn (not) allowed in the Battle Frontier. Again, like in Theta Emerald EX.
  11. Some sort of customization for HM OW effects. For example, I'd like to require the relevant badge and HM to have been obtained, but not require it to be learned. (One option would be to allow Fury Cutter or Slash as alts for Cut) This would eliminate the need for HM slaves, which would be fantastic!
I realize some of these are pretty trivial and/or have routines done for them (and posted to PC) already, but having a bunch of these features in one codebase would be amazing!

1. Hmmm....One thing FR has better than EM is stat display screen. More things can fit. I'll try to think of something for it.
2. Ok, may do.
3. Done already in TMs expansion.
4, 5, 6 those are single bytechanges and can be done in 5 seconds :P
7 Done in the battle engine.
8. Would require to revamp poke structure, not really plausible.
9. Done in TMs exp.
10. Will do. :D
11. Will do later.
 

Froosty

The_Learner
535
Posts
9
Years
Looks awesome! Keep up the good work!

Some cool feature ideas:

  1. Have an IV rating in the Stat menu. Like the system in Pokemon Gaia. There isn't a lot of room in the menu compared to FR, it's true, but this would be an awesome thing to have.
  2. Edit/remove the annoying beeping when pkmn are low on health. Again, like the way pkmn Gaia did it with just a single bing and then SILENCE. (might fit better in the battle engine?)
  3. Make TMs reusable. This would be awesome!
  4. Running in buildings!
  5. Eggs hatching at custom level (i.e. 1).
  6. Forcing "Set" on, to make a hack more challenging.
  7. EV cutoffs at 252, instead of 255 (or custom cutoff).
  8. Feature to change the max total EVs. (I mean, you can raise the level cap, so why not EVs as well?)
  9. Deletable HMs. Like in Theta Emerald EX.
  10. The ability to modify pkmn (not) allowed in the Battle Frontier. Again, like in Theta Emerald EX.
  11. Some sort of customization for HM OW effects. For example, I'd like to require the relevant badge and HM to have been obtained, but not require it to be learned. (One option would be to allow Fury Cutter or Slash as alts for Cut) This would eliminate the need for HM slaves, which would be fantastic!
I realize some of these are pretty trivial and/or have routines done for them (and posted to PC) already, but having a bunch of these features in one codebase would be amazing!

I dont know if i am allowed to post or not, but you can probably do some of the task you listed here with the tool in my signature.
 
55
Posts
14
Years
  • Seen Feb 1, 2023
1. Hmmm....One thing FR has better than EM is stat display screen. More things can fit. I'll try to think of something for it.
2. Ok, may do.
3. Done already in TMs expansion.
4, 5, 6 those are single bytechanges and can be done in 5 seconds :P
7. Done in the battle engine.
8. Would require to revamp poke structure, not really plausible.
9. Done in TMs exp.
10. Will do. :D
11. Will do later.

Awesome :D Some thoughts though:

1, 2; 10, 11. I look forward to seeing them :)
3; 9. Weird, I specifically looked in the TMs project post and didn't see these. Maybe add them to the list of features?
4, 5, 6. Like I said, they're pretty trivial to change, but there are many reasons to include them here. Some people aren't master hex editors. Some people (me) have macs and can't run the popular hex editor. People will probably want more than one of the features already included in this project; having these too means they won't have to also use a hex editor or look up the proper offsets, troubleshoot why it's not working, etc. I can do the py scripting portions if that'll convince you :P
7. Didn't see this as a feature in the Battle Engine either... Consider adding it to the feature list as well. (Is it a custom cutoff, or stuck at 252?)
8. hmmm... that doesn't seem right, but I'm definitely not the expert haha. (How is this stored in the struct, btw? I figured hword or word, since it's larger than a byte...)

I dont know if I am allowed to post or not, but you can probably do some of the task you listed here with the tool in my signature.
Cool! Your tool will work with Emerald?

Edit: I see it does. Looks nice, though the advantage of this repo is that it's cross-platform (or it will be very soon).
 
Last edited:

BluRose

blu rass
811
Posts
9
Years
Spoiler:
4, 5, 6. Like I said, they're pretty trivial to change, but there are many reasons to include them here. Some people aren't master hex editors. Some people (me) have macs and can't run the popular hex editor. People will probably want more than one of the features already included in this project; having these too means they won't have to also use a hex editor or look up the proper offsets, troubleshoot why it's not working, etc. I can do the py scripting portions if that'll convince you :P
Spoiler:
8. hmmm... that doesn't seem right, but I'm definitely not the expert haha. (How is this stored in the struct, btw? I figured hword or word, since it's larger than a byte...)
Spoiler:
because literally overwriting exactly 1 byte from an address given to the populace requires "mastery of hex editing" and can't be done without "the popular hex editor" :P
*cough cough* an irl friend of mine uses hex fiend *cough cough*

evs are stored as a byte per stat
the 255 limit would be extremely easy to remove otherwise, yes
 
794
Posts
10
Years
Awesome :D Some thoughts though:

1, 2; 10, 11. I look forward to seeing them :)
3; 9. Weird, I specifically looked in the TMs project post and didn't see these. Maybe add them to the list of features?
4, 5, 6. Like I said, they're pretty trivial to change, but there are many reasons to include them here. Some people aren't master hex editors. Some people (me) have macs and can't run the popular hex editor. People will probably want more than one of the features already included in this project; having these too means they won't have to also use a hex editor or look up the proper offsets, troubleshoot why it's not working, etc. I can do the py scripting portions if that'll convince you :P
7. Didn't see this as a feature in the Battle Engine either... Consider adding it to the feature list as well. (Is it a custom cutoff, or stuck at 252?)
8. hmmm... that doesn't seem right, but I'm definitely not the expert haha. (How is this stored in the struct, btw? I figured hword or word, since it's larger than a byte...)

3,9. Now that I think about it, deletable HMs weren't implemented, my bad. Reusable TMs are in tho. Look carefully here.
4, 5, 6 Come on I'm sure you can find a decent hex editor working on Mac. You open up your rom, goto offset X, change byte to Y and that's it. Really no need for a tool for something like this. :P
7. It's hardcoded to be 252, but I can easily make it changeable(with 255 as limit that CANNOT be moved).
8. http://bulbapedia.bulbagarden.net/wiki/Pokémon_data_substructures_in_Generation_III

Also, since you have a Mac, could you visit PC's romhacking discord chat or talk with me via PMs? Would be great if I could modify the python scripts to work on both Windows and Macs.
 
55
Posts
14
Years
  • Seen Feb 1, 2023
because literally overwriting exactly 1 byte from an address given to the populace requires "mastery of hex editing" and can't be done without "the popular hex editor" :P
*cough cough* an irl friend of mine uses hex fiend *cough cough*

Very good, you can pick apart hyperbole. My point is still valid. Just because it's "easy", doesn't mean it can't be made easier. You can be a complete noob and still be able to type python scripts/build.py and press enter. There's no way for it to go wrong. Too easy. Hex editing is the calculus of ROM hacking--it's really scary looking in, but once you try it ain't so bad.

Come on I'm sure you can find a decent hex editor working on Mac. You open up your rom, goto offset X, change byte to Y and that's it. Really no need for a tool for something like this.

I could, sure. But what about all the other poor folk who don't have fancy PCs w/ .NET? :P I'm not just being lazy--my offer to modify the python scripts to support these features still stands. (Also it saves me from having to hex edit over and over again for each new hack). And at least one person thought they were tool-worthy (see The_learner's sig) :P . I want this tool to be as good as it can be, and I think those 3 features will help it become so. If you disagree, well, that's your prerogative and I'll shut up about it. But I think it'd be a mistake as it barely costs you anything. (it's an easy hex hack so the py scripts should be fairly trivial)


evs are stored as a byte per stat. the 255 limit would be extremely easy to remove otherwise, yes
7. It's hardcoded to be 252, but I can easily make it changeable(with 255 as limit that CANNOT be moved).
I think he's referring to allowing a Pokemon to have 252 EVs in every stat, thus removing the 510 total limit.

I realize I wasn't very specific here.

wrt #7: yes, the limit would be set by a byte value--seems logical. But--for #8--as Deokishisu correctly assumes, yes, I'm talking about changing the overall 510 limit. I probably wouldn't (personally) allow all stats to max out, but it might be cool to allow a player to train 3 or 4 of them instead of just 2.


3, 9. Now that I think about it, deletable HMs weren't implemented, my bad. Reusable TMs are in tho. Look carefully here.

I swear I looked there haha. But at least it wasn't something I missed on the main page.


Also, since you have a Mac, could you visit PC's romhacking discord chat or talk with me via PMs? Would be great if I could modify the python scripts to work on both Windows and Macs.

YES. As per my replies in the Engine Upgrade thread, I've got them working for me. If you wanna add me as a contributor to the GitHubs, I can modify them to be compatible with both. Feel free to send me a PM :)
 
794
Posts
10
Years
YES. As per my replies in the Engine Upgrade thread, I've got them working for me. If you wanna add me as a contributor to the GitHubs, I can modify them to be compatible with both. Feel free to send me a PM :)

Just send the modified code here and I'll look at it :)
 
55
Posts
14
Years
  • Seen Feb 1, 2023
YES. As per my replies in the Engine Upgrade thread, I've got them working for me. If you wanna add me as a contributor to the GitHubs, I can modify them to be compatible with both. Feel free to send me a PM
1.%20smile.gif
Just send the modified code here and I'll look at it :)

Sure thing. Sent you a PM. Let me know what you think :P
 

LCCoolJ95

Limited Capacity
638
Posts
14
Years
Thing broke markets, or just buying anything, in my game. Here's my set-up:
Spoiler:

Before you assume that it's my fault, I'll ask this as well: How come when trying to buy something, it jumps to FA06F8, which is within the data for this various feature thing?
 
Last edited:
794
Posts
10
Years
Thing broke markets, or just buying anything, in my game. Here's my set-up:
Spoiler:

Before you assume that it's my fault, I'll ask this as well: How come when trying to buy something, it jumps to FA06F8, which is within the data for this various feature thing?

I tried the script you gave me out and it works just fine to me. My best guess it you applied it earlier with MoreMoney set to True, forgot about it and now apply it again now set to false. Compare bytes around 0x0E51F4 in your rom and a vanilla one.
 

LCCoolJ95

Limited Capacity
638
Posts
14
Years
I just checked, it overwritten stuff. I didn't realize what the more money meant. Isn't it more of just a few bytes changes? I found it on the Quick Research thread and it works for me. What's different in yours, DizzyHuevo?
 
Back
Top