Binary Hack Research & DevelopmentGot a well-founded knack with your binary Pokémon hacks? Love reverse-engineering them? For the traditional Pokémon ROM hacker, this is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
Are you sure I'm searching for HEX values? It still says the specified search string was not found even when I did not add 08.
You misunderstand. You don't search for the bytes in the ROM, you goto the specified location. That's where you would remove the 08. So use your hex editor's "goto" function to find the place at which you need to change the bytes.
So for the first one, goto offset 03ED54 and change the bytes there to 80 7A.
You misunderstand. You don't search for the bytes in the ROM, you goto the specified location. That's where you would remove the 08. So use your hex editor's "goto" function to find the place at which you need to change the bytes.
So for the first one, goto offset 03ED54 and change the bytes there to 80 7A.
Thanks mate. I've got the "go to" part down, but I can't really find the exact bytes I need to change. When I go to 03ED54, I find 0003ED52 instead. Am I supposed to find those exact digits?
EDIT: I've found the exact offset in 0003ED52, I'm at 03ED54 and where do I change the bytes to 80 and 7A? I can only change either 80 or 7A, do I have to change both at one offset?
Thanks mate. I've got the "go to" part down, but I can't really find the exact bytes I need to change. When I go to 03ED54, I find 0003ED52 instead. Am I supposed to find those exact digits?
EDIT: I've found the exact offset in 0003ED52, I'm at 03ED54 and where do I change the bytes to 80 and 7A? I can only change either 80 or 7A, do I have to change both at one offset?
When you goto 03ED54, the cursor will move to the place where you need to start changing bytes (or it might be highlighted or something depending on what hex editor you're using -- I'm using HxD). From that point,overwrite bytes with the specified bytes (80 7A).
So in an unmodified FR ROM, 03ED54 should take you to an 80 byte, followed by 78 81 46 etc...
So put the 80 7A bytes there. You will end up with 80 7A 81 46 etc...
When you goto 03ED54, the cursor will move to the place where you need to start changing bytes (or it might be highlighted or something depending on what hex editor you're using -- I'm using HxD). From that point,overwrite bytes with the specified bytes (80 7A).
So in an unmodified FR ROM, 03ED54 should take you to an 80 byte, followed by 78 81 46 etc...
So put the 80 7A bytes there. You will end up with 80 7A 81 46 etc...
Okay, so I've entered all of the bytes. Is that all there is to it? If so, then are the moves in 3rd gen split into Physical and Special moves? Like Shadow Ball is special and Waterfall is physical?
Okay, so I've entered all of the bytes. Is that all there is to it? If so, then are the moves in 3rd gen split into Physical and Special moves? Like Shadow Ball is special and Waterfall is physical?
No, you have to edit it manually you can use either a hex editor or PGE.
I've changed the following bytes. Do I have to manually change the moves I want to Physical/Special? What do I do next?
Like tajaros said, you have to manually edit which moves are physical/special/status with either a hex editor or PGE.
So if you want to use PGE, load your ROM and go to the Attack Editor under the Internal Programs tab. Then, for every move, go through and change the Category to physical/special/status.
is there a good reason that none of you pointed him towards the physical/special patch posted by doesntknowhowtoplay that actually works instead of turning this thread into a hex editing tutorial if you were just going to say "use pge" when he got to move class?
I applied the patch. Gyarados' Waterfall became physical, but Dragonite and Gengar's Dragon Claw and Shadow Ball are still special for some reason. I tried the moves on Pokemon with equal and even weaker levels than my team. It took less than half HP even for STAB moves.
I applied the patch. Gyarados' Waterfall became physical, but Dragonite and Gengar's Dragon Claw and Shadow Ball are still special for some reason. I tried the moves on Pokemon with equal and even weaker levels than my team. It took less than half HP even for STAB moves.
You need to manually reassign all the moves and their categories. With the patch in place, all moves will be treated as physical, as the patch adds the necessary code to execute the split, but doesn't change the move data itself to recategorise them.
__________________
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
You need to manually reassign all the moves and their categories. With the patch in place, all moves will be treated as physical, as the patch adds the necessary code to execute the split, but doesn't change the move data itself to recategorise them.
Do I use HEX Editor or PGE with the patch applied? How do I know if I'm reassigning the moves?
I want to find a better place to put it. Right now, the image showing if it's physical/special/status appears a frame before the rest of the screen is loaded. :\ I mean, it's not that bad. I just don't love it.
Change these bytes:
Code:
@0813A130: 0x2F
@0813A17B: 0x47
@0813A1A0: [Pointer to Routine, plus 1 (one).]
Change the .SplitImages (0xYYYYYYYY) pointer to where ever you have the images.
The images are uncompressed. And should look like this:
They need to be in this order. Use TileMolester or something to insert them.
They use the same palette as the Types, which is located at 0x08E95DBC in a clean FireRed ROM.
Bump.... How do you insert this into the fire red rom?
So if you grabbed version 1.3 of the Emerald split from me on the previous page there's a rather subtle bug that you'll need to fix- at x4814E, there is an 00 that should be an 08. This causes the game to treat damage as an address and fails various checks for arbitrary amounts of damage- the main effects are Counter, Rough Skin, and Focus Punch acting as if no damage was dealt.
I've updated the patch I posted, but don't try to fix this bug by just applying 1.4 on top of a ROM with 1.3 as the byte was 08 in vanilla, so it won't work.
Alright, I'm confused. Out of the countless patches posted, which one(s) do I use, which games do they work for, what bugs are still around, what, if anything, do I have to do after applying the patch, and what do I need to do so? Can I run a patched ROM through pokehacks(DOT)dabomstew(DOT)com(SLASH)randomizer(SLASH)acks(DOT)php to randomize and have the Phys/Spec split at the same time? Also, which program should I use to apply the patch? The only one I know of is LunarIPS, but my copy of that is bound to be ancient and outdated, and I've no idea if Lunar can do GBA patches.
So after I apply DoesntKnowHowToPlay's patch to the ROM, I just use PGE Attack Editor and simply toggle all the moves as Physical/Special/Status? I'm not adding any new moves at the moment into the game so I can just leave the "Effect Table" as 0 right?
EDIT: One more question just as a confirmation: The patch also adds the Sandstorm Sp. Def boost into the game as well right?
Okay, I want to use this patch, but I would like to know if the previously stated bugs are in it, like electric/fire moves restarting the game, etc. If yes, then I might not use the patch. And is this patch already have moves pre-set to if they are physical or special. Also, is this compatible with FireRed. And where do I get a updated download link, or is the download link provided int he first post updated.. Thanks. =3
__________________
- Uzumaki Naruto Jr. -
"I won't run away anymore... I won't go back on my word... that is my shinobi way!"
In PGE do I only change the category of the move to make it physical/special or status or also its effect table ? I kept it at 0...should I have switched it to 1 or 2 ? Because I think my level 8 Pineco is receiving pitifuly low amounts of damage (1 or 2) from a level 2 Furret using Fury swipes...and it's supposed to be a physical move..
In PGE do I only change the category of the move to make it physical/special or status or also its effect table ? I kept it at 0...should I have switched it to 1 or 2 ? Because I think my level 8 Pineco is receiving pitifuly low amounts of damage (1 or 2) from a level 2 Furret using Fury swipes...and it's supposed to be a physical move..
You only change the category. And you should be able to change it so you know what category you're changing the move to. And you're probably doing low damage because Pineco has a bit high defense I believe. But I might be wrong.
__________________
3DS Friend Code: 5069-3944-3902
IGN: Peter; (X, Y, OR, AS, S, M, US, UM)
Friend Safari: (Fighting) Throh, Meditite, Breloom
Living Pokedex Complete: Y, C, R, LG, E, D, Pl, HG, B, B2, X, Y, OR, AS, M, UM, LGP, Sw, LA
Big thanks especially to DestinedJagold, Xerneas_X, Elements1, ~RNC~ and ThePoke Man
I want to find a better place to put it. Right now, the image showing if it's physical/special/status appears a frame before the rest of the screen is loaded. :\ I mean, it's not that bad. I just don't love it.
Change these bytes:
Code:
@0813A130: 0x2F
@0813A17B: 0x47
@0813A1A0: [Pointer to Routine, plus 1 (one).]
Change the .SplitImages (0xYYYYYYYY) pointer to where ever you have the images.
The images are uncompressed. And should look like this:
They need to be in this order. Use TileMolester or something to insert them.
They use the same palette as the Types, which is located at 0x08E95DBC in a clean FireRed ROM.
Suggested fix by Jambo:
Spoiler:
Quote:
Originally Posted by Jambo51
I think I've found the code which causes the Mirror Coat/Counter bug in Fire Red.
Change it to this, and it should hopefully fix it.
Code:
0801F6C2: 86 7A
0801F908: 00 2E
0801F90A: 41 D1
Also, Darthatron's routine for showing the images is slightly buggy. It turns out the move index is actually DMA protected, but in a really odd way. It only gets DMA shifted after certain actions are taken within the game's overworld. Anyway - to solve this, change the parts in BOLD in Darthatron's original routine (or just copy this routine, I suppose), and then follow Darthatron's original post to insert it.
I'm trying to add in these images to an Emerald rom, but I seem to have hit a wall. I've added in the actual image with TileMolester already, but as I understand it the offsets in the code here are for a Fire Red rom. I assume they aren't interchangeable with Emerald, so how would I go about finding the equivalent offsets? Also, how do I find the addresses of the bytes for the code pointers?