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!
It swaps defense/defense special as well as the boost defense/def spe. Though it doesn't handle Fur coat/Marvel Scale. Other than that it's fine.
callasm this routine before AND after calculate damage.
With that Mewtwo will take down Blissey !
EDIT : A way to have a proper effect is to make the move physical, and rather than swaps the defense of the foe, you swap attacks/boosts of the user. This way ability the damage-reduced ability will be kept, so here is the second routine (which I advice to use) :
So here you have to set the move "Physical" and it'll work exactly as expected, you still have to callasm this routine before AND after calculate damage in BSP.
I believe this won't actually take into account other multipliers. For example if you have x2 sp. atk. it's not going to correctly apply the damage. Because you'll be swapping say 160 attack with 320 sp atk. Instead of using an the sp.atk stat of 640, it'll use 320, because it's now treated as the attack stat.
The best way to do it as far as I can tell would be to have a check in the damage calculation for the move effect, as opposed to a custom battle script, which means you can place it after different multipliers. I'd probably find where it actually loads the 'fully treated' Sp. Attack of the user and Sp. Defense of the opponent, and just load the Defense stat instead.
You branch the effect 1 to this script, you don't even have to select "both foes and parter", the script handles this.
I don't have an animation yet since I've never dealt with it. I'll try tu use luster purge, but with the color black instead of white, another font (the dark one should be right) and without the hits after-flash.
Any help would be appreciated.
The move doesn't put your partner to sleep. Only your two opponents.
Also shouldn't you include a move check at the start, otherwise every single sleep move is going to hit both foes.
Everything works as it should afaik. It asleeps everyone (and check correctly safeguard/insomnia/already sleep etc) including parter. And yeah as I said you have to branch the effect 1 to this battlescript, but it's true that I wasn't accurate, I'll correct that.
Why? Dark Void only targets foes.
Quote:
Dark Void
- Pokémon Hit in Battle: All opponent Pokémon in range
With damaging moves, it's enough to just set target as "both foes" in order to hit both opponents, while you have to make an entirely new script similar to that of earthquake if you want the move to also hit your ally.
Is this different with status moves? I've never really tried it out except for changing Poison Gas without testing. If it's the same, it should be enough to just use the original Hypnosis script and change the target to "both foes".
I don't have a save near a double battle to test with.
With damaging moves, it's enough to just set target as "both foes" in order to hit both opponents, while you have to make an entirely new script similar to that of earthquake if you want the move to also hit your ally.
Is this different with status moves? I've never really tried it out except for changing Poison Gas without testing. If it's the same, it should be enough to just use the original Hypnosis script and change the target to "both foes".
I don't have a save near a double battle to test with.
I actually thought that dark void was supposed to asleep everyone so I made this script. But testing with just selecting "both foe" deserves indeed a try.
EDIT : Oh yeah.. you're right, I guess I can delete my previous posts lol
#257Link to this post, but load the entire thread.
May 26th, 2015 (9:35 PM).
Trainer 781
Guest
Posts: n/a
Quote:
Originally Posted by kleenexfeu
I actually thought that dark void was supposed to asleep everyone so I made this script. But testing with just selecting "both foe" deserves indeed a try.
EDIT : Oh yeah.. you're right, I guess I can delete my previous posts lol
IMO it should work, because 'target both foes' automatically re-runs the same battle script for differrent foes.
I actually thought that dark void was supposed to asleep everyone so I made this script. But testing with just selecting "both foe" deserves indeed a try.
EDIT : Oh yeah.. you're right, I guess I can delete my previous posts lol
I've noticed that with quite a few moves and abilities you haven't actually looked into their effects on Bulbapedia or somewhere. I don't want to call you out or anything, but please make sure you check this so it doesn't clutter threads with stuff haha.
The routines hard code the move to be Super-Effective on Water type using the move ID. Replace 0x00B5 with the move ID of Freeze Dry (used Power Snow for testing purposes).
For the freezing chance, just set the move effect using a move editor.
The first 2 routines simulaty the freeze dry effect, while the last 2 routines make the AI smart in handling Freeze Dry.
Note: In the official gen VI games, if a Pokemon is already pure water, the animation will still play and the move will afterwards say "But it failed!". However, I felt that this was a bit inconsistent with the rest of the game so I decided not to play the animation if the move fails.
If you want it exactly like the official games, feel free to move attackanimation and waitanimation to above the 17 jumpiftype.
Speaking of the 17 jumpiftypes; that was the only way I could get the game to change Pokemon that are part water to pure water while still having the move fail if the Pokemon is already pure water.
Note 2: This script takes into account the fairy-type assuming you have put it as type 17 as per MrDS. tutorial.
Note: In the official gen VI games, if a Pokemon is already pure water, the animation will still play and the move will afterwards say "But it failed!". However, I felt that this was a bit inconsistent with the rest of the game so I decided not to play the animation if the move fails.
If you want it exactly like the official games, feel free to move attackanimation and waitanimation to above the 17 jumpiftype.
Speaking of the 17 jumpiftypes; that was the only way I could get the game to change Pokemon that are part water to pure water while still having the move fail if the Pokemon is already pure water.
Note 2: This script takes into account the fairy-type assuming you have put it as type 17 as per MrDS. tutorial.
To improve that, you could call an asm routine like:
Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func
Start:
push {lr}
ldr r0, BankTarget
ldr r1, BattleData
mov r2, #0x58
ldrb r0, [r0]
mul r0, r2
add r0, r1
add r0, #0x21
ldrb r1, [r0] /*Loads the first type into r1*/
ldrb r2, [r0, #1] /*Loads the second type into r2*/
cmp r1, #0xB /*compare if water type*/
beq Fail
cmp r2, #0xB /*idem*/
beq Fail
ldr r0, BattleScript
ldr r1, CurrMove
str r0, [r1]
pop {pc}
.align 2
BattleData: .word 0x02024084
BankTarget: .word 0x0202420B
BattleScript: .word 0x08[AddressBattleScript]
CurrMove: .word 0x02024214
Fail: .word 0x082D9F1C (If I believe you)
Magnet Rise (the Splash animation admittedly looks ugly, but I have nothing better that can simulate the up-down movement of the sprite during the animation. If you can come up with something better, by all means post it.):
I haven't contributed here in awhile (sad I know) but I'm here to bring an updated Struggle, as well as a Head Smash 1/2 recoil effect.
To make Head Smash work just give it the same move effect as Take Down (NOT Double-Edge), as the check for the move is contained in the 1/4 recoil damage effect.
I haven't contributed here in awhile (sad I know) but I'm here to bring an updated Struggle, as well as a Head Smash 1/2 recoil effect.
To make Head Smash work just give it the same move effect as Take Down (NOT Double-Edge), as the check for the move is contained in the 1/4 recoil damage effect.
It's alright, all of us procrastinate to some extent. By the way since you have added a updated animations section, I might as well share my updated Mud Shot animation:
Not sure if it is the right place to ask, but. Does anybody knows why the move "trick" doesn't work when used by the opponent in the games? Or why "thief" doesn't actually steals your item? Is it possible to fix that?
Not sure if it is the right place to ask, but. Does anybody knows why the move "trick" doesn't work when used by the opponent in the games? Or why "thief" doesn't actually steals your item? Is it possible to fix that?
That's intentional because the game designers didn't want opponents to actually take your items permanently, and they didn't think to restore the item after the battle. There isn't really any way to fix this (I think) because it was programmed into the Thief/Trick effects.
Heavy Slam for Fire Red. The script is simple as for Doesnt's ASMs. Use the callasm command just after the pp reducer and before damagecalculator in the script:
NOTES
1. The bold section of the code is meant to accommodate the weight changes due to Light Metal, Heavy Metal abilities and the item Float Stone because the Weight is directly loaded from the Dex Data in the ROM (even lowkick does).
2. If your ROM don't have anyone of these things remove the bolded section. Otherwise, replace XX with the index of Light Metal, replace YY with the index of Heavy Metal, and replace ZZZZ with the index of Float Stone.
3. If you have expanded the no of pokemons then the value of dexData also needs to be changed to the new location.
4. If someone wants to port it to Emerald, in addition to changing the value of offsets also change the mov r2, #0x24 to mov r2, #0x20 after the ldr r1, dexData, this because in every GBA Rom except Emerald the dex entry for each poke takes 36 bytes, whereas in Emerald it takes 32 bytes.
I have a problem with this routine, it always sets the move power to 120 no matter the weight. I removed all bolded lines and changed the value of dexData.
#273Link to this post, but load the entire thread.
July 31st, 2015 (2:01 AM).
Trainer 781
Guest
Posts: n/a
Quote:
Originally Posted by DizzyEgg
I have a problem with this routine, it always sets the move power to 120 no matter the weight. I removed all bolded lines and changed the value of dexData.
There is some bug in this routine. The emerald one is accurate. Port the emerald one back to FR.