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!
I'm pretty sure that's how it works ingame already. The ability bit doesn't change when a Pokemon evolves in FR. 90% sure.
Yeah, that's exactly how it would be done. Though these kind of evolutions, which can happen at any time are harder to handle in game. We would have to do the checks kinda frequently. The question becomes, how frequent? Well actually not frequent at all. Just two checks in both scenarios. Pokemon reaches max happiness and Pokemon receives item. So if I was coding this I'd make two different breaks at the Happiness adder, and a second at the give item part.
Was that the information you were looking for? Or did you want me to do one for you?
Since you gave the detailed info, it is both, actually, all I know is to make it happens, we must combine Trade holding item and Happiness, and this is a request lol, since you are now accepting again, but you can use Kearnseyboy6's routines to compare, I think
__________________
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'd like to report an issue with the code pertaining to the Infinte TM Usage implementation for FireRed. If you teach a TM to a Pokémon with less than four known moves and watch the entire TM learning animation, the TM will be removed from your TM Case.
I actually would have never noticed that this happened had someone else not pointed it out to me. Everything else works wonders!
What i mean is that say in your hack you had given bulbasaur overgrow and effect spore but you wanted a special gift one with chlorophyll well would it be possible to do that and by carried by evolution i mean if said bulbasaur was to evolve it would still have chlorophyll
I know what you're talking about, but abilities are done wierdly so they don't allow themselves to be easily changed/edited to any arbitrary ability. Abilities in FireRed are derrived from the PID and is represented by a single bit. If that bit is ON then the Pokemon gets it's second ability otherwise it gets it's first ability as defined in the Pokemon table. My ability swapper hack simply just inverses the bit, however you're restricted here. Since the ability is stored as a single bit, there is no way for us to calculate which ability to give, because it simply only has two possible states. You can't really expand this because the bit is stored in the Pokemon data structure in RAM which doesn't have very much free space. While I probably can find a little bit of space inbetween the 0x0 padding of values, these bytes are probably better used for things like a Pokerus feature.
Quote:
Originally Posted by Lance32497
I googled it so I dont know if it has been done, I have watched a youtube vid about changing player OW in FireRed but the uploader didnt give the code, could you find that out?
You'll see my version...soon.
Quote:
Originally Posted by RichterSnipes
I'd like to report an issue with the code pertaining to the Infinte TM Usage implementation for FireRed. If you teach a TM to a Pokémon with less than four known moves and watch the entire TM learning animation, the TM will be removed from your TM Case.
I actually would have never noticed that this happened had someone else not pointed it out to me. Everything else works wonders!
Thanks for reporting it, I'll look into the cause!
For everyone using these routines:
If you find any bugs in anything please do report them. Make sure that the bugs are caused by the code and not insertions errors on your part though, ty.
I recently made this routine, it's kind of limited in the sense that you can only be change to 30 different overworlds (excluding the special version of the default characters). While it is limited, I don't really think that that's a problem (you'd probably only be OWs swapping to 2-3 different OWs the entire game anyways, so unless you wanted to player to play as more than 30 characters, this routine will work just fine for you). It's also a little "smaller" in comparison to JPAN's 6 seperate routines which he used (though in his favor, I don't think his limits the amount like mine). I blame the table, it's weird. Actually the whole overworld loading thing is weird..it's done in like 9 places lol.
I should also note that if the OW you're changing to doesn't have a running frame, things are going to look weird when you try to run~
Now navigate to 0x5CA4C and insert the following byte changes:
Code:
00 48 00 47 XX XX XX 08
Where XX XX XX is where you inserted this routine +1.
Usage:
The routine requires two conditions to toggle.
1) Flag 0x406 is set
2) Var 0x8000 is not 0xFF
As you may have guessed you need to set variable 0x8000 to a value which matches the overworld you want the player to transform into. Please note that for the effect to happen, you need to warp first.
Here's a list of values and their corresponding sprite to the left:
Spoiler:
Code:
0 - male hero
1 - female hero
3 - female hero bike
4 - male hero run
5 - female hero run
6 - male hero vs-seeker
7 - female hero vs-seeker
8 - male hero fishing
9 - female hero fishing
12 - Brendon
13 - May
26 - Male + Female hero Vs seeker on bike
28 - Random guy (A-MAP ID 25)
29 - Little boy
44 - Gem sign thing (buggy)
48 - Spearow
52 - Old man 1 (A-MAP ID 33)
80 - Jogging girl
83 - Blonde dude (A-MAP ID 26)
84 - Fat guy
88 - Old man 2 (A-MAP ID 88)
92 - Scroll backpack thing (buggy)
93 - Team rocket male
104 - Meowth
112 - Chansey
116 - Slowbro
124 - Snorlax
125 - Fisherman
166 - Kid tuber (male)
170 - Old man 3 (A-MAP ID 30)
176 - Green girl (A-MAP ID 40)
213 - Red dress lady
214 - Old lady
228 - Deoxys (I think this one is normal)
245 - Misty
250 - Hey champ in the making guy
251 - Ghost Girl
While no particular value will cause a crash, I've excluded values which are "repeated" OWs. If you experience bugs, use it in conjunction with the backsprite hack I made. If you still have bugs, report them here!
Is it possible to make an effect like Absorb, but which the percentage of recover HP can be chosen?
I have a little idea on how to do this but i think the animation will not work.
Is it possible to make a different track play for a last Pokémon like the Gym Leaders in Black and White/cut the HP sound off after a few beeps like X/Y? Or if Characteristic / colored text for +/- stats due to ability?
I know I ask a lot of questions, but, these are things I wonder if it's possible to do.
__________________
Hacks I'm currently working on (at a super slow pace):
Chinpokomon Big/Small (would leave the titles, but apparently exceeded sig limit)
Hey FBI, it's been a looooooooong time I don't post anything here xD. Well. I've been thinking about something I couldn't solve and since I think it may be ASM-Related, I summon you :P
I was wondering if it is possible to change from one map to another (like a warp or something) and keep the music that you started playing on the previous map.
I'm interested in inserting a Focus Sash that is reusable in Fire Red. What I mean by that is that the Focus Sash, rather than being consumed like berries, will stay held by the Pokémon, but will only activate if the user has all of its available HP. I don't like that it is a one use item lol. The Focus Band in Fire Red does the same thing, and you can change it so it always activates, but it would need to be changed to check the user's current HP with its current maximum HP.
I don't really care if it replaces Focus Band in the game, because I find it to be relatively useless as an item due to its unreliability.
Is it possible to make an effect like Absorb, but which the percentage of recover HP can be chosen?
I have a little idea on how to do this but i think the animation will not work.
Quote:
Originally Posted by SSJ4 Furanki
Is it possible to make a different track play for a last Pokémon like the Gym Leaders in Black and White/cut the HP sound off after a few beeps like X/Y? Or if Characteristic / colored text for +/- stats due to ability?
I know I ask a lot of questions, but, these are things I wonder if it's possible to do.
Quote:
Originally Posted by metapod23
I'm interested in inserting a Focus Sash that is reusable in Fire Red. What I mean by that is that the Focus Sash, rather than being consumed like berries, will stay held by the Pokémon, but will only activate if the user has all of its available HP. I don't like that it is a one use item lol. The Focus Band in Fire Red does the same thing, and you can change it so it always activates, but it would need to be changed to check the user's current HP with its current maximum HP.
I don't really care if it replaces Focus Band in the game, because I find it to be relatively useless as an item due to its unreliability.
Thanks in advance for anyone willing to help!
Hi, I specifically don't do graphical ASM or battle related things. Hopefully someone will hop in and help you three out. I can tell you everything you've asked for in indeed doable. You just need to find someone willing :)
Quote:
Originally Posted by BLAxTOISE
Hey FBI, it's been a looooooooong time I don't post anything here xD. Well. I've been thinking about something I couldn't solve and since I think it may be ASM-Related, I summon you :P
I was wondering if it is possible to change from one map to another (like a warp or something) and keep the music that you started playing on the previous map.
Hey, it is ASM related, but fairly easy to do if I'm thinking about it right. I'll look into it.
For the bug where the TM gets consumed upon use after the animation:
Hi, I specifically don't do graphical ASM or battle related things. Hopefully someone will hop in and help you three out. I can tell you everything you've asked for in indeed doable. You just need to find someone willing :)
Hey, it is ASM related, but fairly easy to do if I'm thinking about it right. I'll look into it.
For the bug where the TM gets consumed upon use after the animation:
Insert: 00 00 00 00 at 0x124F78
I'll update my TM post with this information too.
Very nice! Is it supposed to be 4 sets of 00 though? I went to that offset and they already were those numbers.
__________________
Hacks I'm currently working on (at a super slow pace):
Chinpokomon Big/Small (would leave the titles, but apparently exceeded sig limit)
How about fixing The "Your foe's weakness" thingy after I send out my desired pokemon?
I always encounter that text string although my Pokemon isn't my foe's weakness
__________________
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.
Fire Red gives you one trainer card with 8 gym badges, but some hacks have more than 8 gyms/travels to different regions. Is it possible to create more than one sets of badges? and maybe changing the trainer card backdrop/tileset with it. playing as a different person, stealing badges, there are many possibilities of events with it. It can be easily done with key-items, but come on, it's not the same thing. Well, just an idea. ^_^
All badges are only in one image, so a swapping routine would deal with that, I suppose. The rest of it can be handled via scripts
Hello dude! (sorry for my english but i'm italian )
For many days (ehm...months xD) I try to create a new pokemon menù (the menù that appeared when you press "start"), to change the classical pokémon menù, and I want to change text with pictures (for example the picture of pokédex, or a ball for pokémon etc), and replace menù in the left of the game (however the upper side is ok, but the menù must be in horizontal in this case).
Can you help me please?
Before compiling the routine look at the last line. There is a .word 0x8[RANDOM +1]. Change the content after the 0x8 to be a pointer to where you inserted RANDOM +1.
Once you've done that, look for the line that says "mov r0, #0x1 @item ID". Change 0x1 to the Item ID for your Shiny charm item. If you don't have one implemented, delete these lines:
Code:
mov r0, #0x1 @item ID
mov r1, #0x1
ldr r2, =(0x8099F40 +1)
bl linker
cmp r0, #0x0
beq normal
mov r0, #0xA
lsl r0, r0, #0x7
add r0, r0, #0x55 @1/1365 chance with shiny charm
b calcChance
After you've done that, compile and insert the following routine into free space:
Now navigate to 0x3DACE and insert the following byte changes:
Code:
00 00 00 4F 38 47 XX XX XX 08
Where XX XX XX is the reverse hex pointer +1 to where you inserted this routine.
Usage:
It's Automagic, also happens to give the shiny chance to Pokemon in wild, trainer Pokemon, given Pokemon ect.
Right now encounter chance is 1/4096 without shiny charm, and 1/1356 with it.
Figured I'd ask you in the thread instead of on your profile. I've got the two prerequisites inserted but I can't seem to get this code to compile. I'm getting this error message every time:
Quote:
ShinyCharm.asm: 9 : Error: invalid immediate: 279 is out of range
This is my script:
Spoiler:
.text
.align 2
.thumb
.thumb_func
main:
push {r0-r3}
mov r0, #0x117 @item ID
mov r1, #0x1
ldr r2, =(0x8099F40 +1)
bl linker
cmp r0, #0x0
beq normal
mov r0, #0xA
lsl r0, r0, #0x7
add r0, r0, #0x55 @1/1365 chance with shiny charm
b calcChance
Figured I'd ask you in the thread instead of on your profile. I've got the two prerequisites inserted but I can't seem to get this code to compile. I'm getting this error message every time:
This is my script:
Spoiler:
.text
.align 2
.thumb
.thumb_func
main:
push {r0-r3}
mov r0, #0x117 @item ID
mov r1, #0x1
ldr r2, =(0x8099F40 +1)
bl linker
cmp r0, #0x0
beq normal
mov r0, #0xA
lsl r0, r0, #0x7
add r0, r0, #0x55 @1/1365 chance with shiny charm
b calcChance
Mov can only load upto 0xFF. From there you need to derrive the number. Take a look at my second beginner tutorial to see how that problem is fixed. Here's the solution:
Mov can only load upto 0xFF. From there you need to derrive the number. Take a look at my second beginner tutorial to see how that problem is fixed. Here's the solution:
Code:
mov r0, #0xFF
add r0, #0x18
So replace the item ID line with those two lines, correct? I did that and I'm not encountering any shinys after running around for over an hour with the item. For testing purposes I changed it to a 1/1 chance and I'm still not finding any.
So replace the item ID line with those two lines, correct? I did that and I'm not encountering any shinys after running around for over an hour with the item. For testing purposes I changed it to a 1/1 chance and I'm still not finding any.
You need the random number routine and the shiny generator routine I made. The three of them work in conjunction to make this effect happen. I know it works, because my test ROM is only shinies :x