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!
in some routines it's stated "#Insert 00 48 00 47 XX+1 XX XX 08 at 08042F94", or similar. i get what that means in general, but "08042F94" is a hex address way outside of the rom's scope (it only goes up to 00FFFFFF)! any suggestions here?
in some routines it's stated "#Insert 00 48 00 47 XX+1 XX XX 08 at 08042F94", or similar. i get what that means in general, but "08042F94" is a hex address way outside of the rom's scope (it only goes up to 00FFFFFF)! any suggestions here?
Actually, you should insert what's in the comments at offset 042F94. The '08' only means that this offset is in the ROM, as far as I know at least {XD}
in some routines it's stated "#Insert 00 48 00 47 XX+1 XX XX 08 at 08042F94", or similar. i get what that means in general, but "08042F94" is a hex address way outside of the rom's scope (it only goes up to 00FFFFFF)! any suggestions here?
electricario is correct. The ROM is actually split into various sections of memory, and the ROM is the ninth. The first is the BIOS, or the actual GameBoy, and everything in between is different kinds of memory. Check out this link to check how the memory is arranged.
I'm not sure if it's just me, but I couldn't get this to work right. The game soft locks when a Pokemon's stats change by one stage. It displays the message and then stays on that screen. Music still plays but no buttons work. The rest of it works fine, it's only when it lowers or raises by one stage that gives me problems.
__________________
"The human sacrificed himself, to save the Pokemon. I pitted them against each other, but not until they set aside their differences did I see the true power they all share deep inside. I see now that the circumstances of one's birth are irrelevant; it is what you do with the gift of life that determines who you are." -Mewtwo
I'm not sure if it's just me, but I couldn't get this to work right. The game soft locks when a Pokemon's stats change by one stage. It displays the message and then stays on that screen. Music still plays but no buttons work. The rest of it works fine, it's only when it lowers or raises by one stage that gives me problems.
I believe it is because you don't have the Pokemon Battle Message extension enabled. KDS and HidoranBlaze and myself have all got different versions posted on the website somewhere.
After a quick glance I can't see anything obviously wrong with the logic. Did you follow the instruction telling you to put 01 48 00 47 00 00 xx xx xx 08 1A 4A at 01F1E2. Remember the offset has to be little-endian and plus 1 (since it's THUMB code). If you did this, I can only assume it's broken.
I am not talking of this specific ability but in general.
I expanded the ability name and description table, coded the asm for any of the mentioned ability and then inserted it to the rom, i also followed the instruction to some hex value at some fixed pointer,
but the thing i didnt get is how the rom identifies that the code is for the added ability.
I mean if I added 10 new abilities how can the rom determine that the hex value is to be for 1st or 2nd or 3rd added ability.
is there some else pointer I need to repoint??
pls reply. working on a new hack!
I am not talking of this specific ability but in general.
I expanded the ability name and description table, coded the asm for any of the mentioned ability and then inserted it to the rom, i also followed the instruction to some hex value at some fixed pointer,
but the thing i didnt get is how the rom identifies that the code is for the added ability.
I mean if I added 10 new abilities how can the rom determine that the hex value is to be for 1st or 2nd or 3rd added ability.
is there some else pointer I need to repoint??
pls reply. working on a new hack!
in each ability there's a check to determine which ability it's looking for, denoted by a hex. for example, the ability Air Lock is 4D, so it would do something along the lines of
in each ability there's a check to determine which ability it's looking for, denoted by a hex. for example, the ability Air Lock is 4D, so it would do something along the lines of
Does it means if I replace the first ability with airlock then i should replace
cmp r0, #0x4D with
cmp r0, #0x1
Yes but I do not recommend replacing abilities. It's easier to add new ones, otherwise the new one you added will have both the effect of the ability you added and the one you replaced.
Does it means if I replace the first ability with airlock then i should replace
cmp r0, #0x4D with
cmp r0, #0x1
you would find the routine you're looking for and replace the hex it's checking for with the hex you want it to check for. if your new ability is at 4E (which in the rom would be the ability after air lock - i'm assuming you know how to insert abilities) then find the hex it's checking for and replace the existing hex with that.
Yes but I do not recommend replacing abilities. It's easier to add new ones, otherwise the new one you added will have both the effect of the ability you added and the one you replaced.
I was just trying to know about but not actually replace.
I added a new ability that is normalize(r) that made every move normal type but when the pokemon with this ability goes to battle then the game restarts!! any idea about it???
Quote:
Originally Posted by bynine
you would find the routine you're looking for and replace the hex it's checking for with the hex you want it to check for. if your new ability is at 4E (which in the rom would be the ability after air lock - i'm assuming you know how to insert abilities) then find the hex it's checking for and replace the existing hex with that.
I have expanded the ability table but still i am facing problem with adding the new abilities
I added a new ability that is normalize(r) that made every move normal type but when the pokemon with this ability goes to battle then the game restarts!! any idea about it???
I have expanded the ability table but still i am facing problem with adding the new abilities
I added a new ability that is normalize(r) that made every move normal type but when the pokemon with this ability goes to battle then the game restarts!! any idea about it???
Don't double post please. It's because you've clearly made a mistake with the routine.
Sorry for the long delay, but here are the Type Change Abilities! Credits to Kleenexfeu for the original routines, I've just optimised them and added Normalize.
I just wanted to ask if this single asm will work for all the abilitied named in this post???
If i just place the pointer and add names of the abilities will all work ???
Quote:
Originally Posted by MrDollSteak
Ice Body is written up at the moment but it's part of a huge set of routines so it might be a while. Magician I haven't looked into but I imagine it can go into the table that KDS did for the Life Orb thing.
So the Speed and Priority abilities are something I've had written up for awhile but since edited because of KDS and Kleenex's rewrite of the Turn Order Loader. This routine has new items included in it as well, and a few moves such as Trick Room and Tailwind.
Prankster, Gale Wings, Stall, Sand Rush, Slow Start and Quick Feet
This routine replaces the entire Turn Order calculation to make it more efficient and to work with Gyro Ball and Electro Ball. The locations for Trick Room, Custap Berry, Slow Start and Tailwind refer to free ram locations that you allocate yourself. The one for Slow Start must be the same as the other routines for the ability.
This routine replaces the entire Turn Order calculation to make it more efficient and to work with Gyro Ball and Electro Ball. The locations for Trick Room, Custap Berry, Slow Start and Tailwind refer to free ram locations that you allocate yourself. The one for Slow Start must be the same as the other routines for the ability.
If the command mov r10, r1 at the beginning of both routines is having trouble compiling, just set it to mov r0, r1, and once its inserted in your rom, change the hex manually of that section to 8A 46. It should be at 14CEE in Fire Red or 3CF26 in Emerald.
I am getting confused with these abilites pls!!
After I compile the asm codes and get the hex values of those what should i do???
Where should i insert them!
like in other abilities threat there is no #insert hex hex hex XX XX XX 08 at pointer
where shall i insert it pls help
thanks in advance :)
Quote:
Originally Posted by MrDollSteak
Sorry for the long delay, but here are the Type Change Abilities! Credits to Kleenexfeu for the original routines, I've just optimised them and added Normalize.
I am just trying to know what wrong I am doing and what else can be done??
Asking question isnt spamming at all!!
>_>:|
Hey friend, question is not a form of spam. But if each of your question is separated by a post then it may look like a spam. If you have added new question, you may edit the first post since no one has commented on it yet and insert EDIT so it can be understood that you have added/edited question.
__________________
This signature has been disabled.
Scrollbar appears
Please review and fix the issues by reading the signature rules.
You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.
Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
I just wanted to ask if this single asm will work for all the abilitied named in this post???
If i just place the pointer and add names of the abilities will all work ???
I am getting confused with these abilites pls!!
After I compile the asm codes and get the hex values of those what should i do???
Where should i insert them!
like in other abilities threat there is no #insert hex hex hex XX XX XX 08 at pointer
where shall i insert it pls help
thanks in advance :)
I tried it but none of the abilities work for me...
I have done every thing right!
is there anything special about these abilities???
You need to compile the routines with an ASM editor. Insert the bin it generates into free space. Then point to it at the insert location+1. If it doesn't say insert xx xx xx +1 at the pointer its because it's being pasted directly over the original routine.
You need to compile the routines with an ASM editor. Insert the bin it generates into free space. Then point to it at the insert location+1. If it doesn't say insert xx xx xx +1 at the pointer its because it's being pasted directly over the original routine.
Thanks for the reply, I will take these words and check it out!
I have actually found such routines in many places so again thanks.
sorry but this is not working for me!
I had added new moves so i changed the move data accordingly,
it even shows "pokemon transformed to some type"
then the game freezes.
should i need to change something else also If I have expanded and repointed the move table???
pls reply
sorry but this is not working for me!
I had added new moves so i changed the move data accordingly,
it even shows "pokemon transformed to some type"
then the game freezes.
should i need to change something else also If I have expanded and repointed the move table???
pls reply
Yes. Go down to the bottom of the routine and change the offset after .MoveData to the offset of your move table. This is common practice and I suggest looking over every routine for things like that before inserting.
Yes. Go down to the bottom of the routine and change the offset after .MoveData to the offset of your move table. This is common practice and I suggest looking over every routine for things like that before inserting.
I have changed the move data but it still freezes!
I have changed almost everything in my rom(abilities tables, moves table, pokemon table and even type table)
So apart from .Movedata Do I need to chamge anything else??
I have changed the move data but it still freezes!
I have changed almost everything in my rom(abilities tables, moves table, pokemon table and even type table)
So apart from .Movedata Do I need to chamge anything else??
No, but you should check yourself next time. Check the labels all the time because stuff that gets repointed like that gets overlooked a lot.
Add the + 1 to the pointer to the routine, see if that works.
So, how does Sheer Force work, does it just check if a move has a secondary effect?
If I were to give Dragon Pulse an effect (e.g. SpDef drop), would Sheer Force now boost it?
Sheer Force will boost the BP of the attack by 30% if it does damage. However, it will remove the secondary effect if it has one. For instance, Ember will be boosted by 30%, but the chance to burn will be removed. All secondary effects on the user that are negative, however, are not removed.
Lightningrod, Motor Drive, Dry Skin, Storm Drain and Sap Sipper
The strings doesn't use the AI's name and ability (It uses your name and ability. Example: the opponent is Electivire with Lightningrod, then when I used any Electric-type move, it displays my Pokemon's name and ability instead of the AI's). I think instances of FD 13 B4 E7 00 FD 1B should be replaced by FD 10 B4 E7 00 FD 19 on all battle strings.
In Storm Drain in double battles, after I use any Water attack on any target (exactly after the string message), the game crashes. And, this really messed up double battles.
hello. i just wanna ask how to properly implement a new ability.
i'm kind of new to asm hacking and so far i think i'm doing well (just a thought, though)
i successfully added some into my rom like the BW2 Repel system, gain-exp-on-catch, fix sturdy, color codes on nature and IV indicator. since i've done it pretty well i just thought maybe i'd try adding a new ability.
the ability i was trying to add is this protean:
Quote:
Originally Posted by MrDollSteak
Good work Kleenexfeu! I've edited your routine to touch up the mistakes, as well as to optimise it, and finally port it to Fire Red.
Protean
Spoiler:
Fire Red (credits to Kleenexfeu for the original Emerald routine)
because greninja is a thing, but whenever i tried to use it on battle, it doesn't work.
now the problem is, when i paste this ( 00 49 08 47 01 7B 77 08 ) to 1D7D8 (as instructed) nothing happens. i tried to not to add 1 on the "00" (last) part of the hex where i insert the asm but the screen just stuck after an attack. then i even tried not to reverse the hex and it called a rain, then crash >___<
the part (offset?) where i inserted the asm was on 777B00. i can't really figure out where did i got it wrong, but i really want to learn how to add it because it's a good feature. i hope someone could tell me my mistake. and lastly, sorry for a long reply, plus the bad english since it's not my mother language.