ref: 515407b9eb46de81e28e0ebe664eb57b1e3ab79b
dir: /items/item_effects.asm/
MasterBall: UltraBall: GreatBall: PokeBall: HeavyBall: LevelBall: LureBall: FastBall: FriendBall: MoonBall: LoveBall: ParkBall: ; e8a2 ld a, [IsInBattle] dec a jp nz, $77a0 ld a, [PartyCount] cp $6 jr nz, .asm_e8c0 ld a, $1 call GetSRAMBank ld a, [$ad10] cp $14 call CloseSRAM jp z, $77dc .asm_e8c0 xor a ld [$c64e], a ld a, [CurItem] cp $b1 call nz, $6dfa ld hl, Options res 4, [hl] ld hl, $783d call $1057 ld a, [EnemyMonCatchRate] ld b, a ld a, [BattleType] cp $3 jp z, .asm_e99c ld a, [CurItem] cp $1 jp z, .asm_e99c ld a, [CurItem] ld c, a ld hl, Table_0xec0a .asm_e8f2 ld a, [hli] cp $ff jr z, .asm_e906 cp c jr z, .asm_e8fe inc hl inc hl jr .asm_e8f2 .asm_e8fe ld a, [hli] ld h, [hl] ld l, a ld de, $6906 push de jp [hl] .asm_e906 ld a, [CurItem] cp $9f ld a, b jp z, $698e ld a, b ld [$ffb6], a ld hl, EnemyMonHPHi ld b, [hl] inc hl ld c, [hl] inc hl ld d, [hl] inc hl ld e, [hl] sla c rl b ld h, d ld l, e add hl, de add hl, de ld d, h ld e, l ld a, d and a jr z, .asm_e940 srl d rr e srl d rr e srl b rr c srl b rr c ld a, c and a jr nz, .asm_e940 ld c, $1 .asm_e940 ld b, e push bc ld a, b sub c ld [hMultiplier], a xor a ld [hProduct], a ld [hMultiplicand], a ld [$ffb5], a call Multiply pop bc ld a, b ld [hMultiplier], a ld b, $4 call Divide ld a, [$ffb6] and a jr nz, .asm_e960 ld a, $1 .asm_e960 ld b, a ld a, [EnemyMonStatus] and $27 ld c, $a jr nz, .asm_e971 and a ld c, $5 jr nz, .asm_e971 ld c, $0 .asm_e971 ld a, b add c jr nc, .asm_e977 ld a, $ff .asm_e977 ld d, a push de ld a, [BattleMonItem] callba GetItem ld a, b cp $46 pop de ld a, d jr nz, .asm_e98e add c jr nc, .asm_e98e ld a, $ff .asm_e98e ld b, a ld [MagikarpLength], a call Random cp b ld a, $0 jr z, .asm_e99c jr nc, .asm_e99f .asm_e99c ld a, [EnemyMonSpecies] .asm_e99f ld [$c64e], a ld c, $14 call DelayFrames ld a, [CurItem] cp $6 jr c, .asm_e9b0 ld a, $5 .asm_e9b0 ld [$c689], a ld de, $0100 ld a, e ld [FXAnimIDLo], a ld a, d ld [FXAnimIDHi], a xor a ld [hBattleTurn], a ld [Buffer2], a ld [$cfca], a ld a, $37 call Predef ld a, [$c64e] and a jr nz, .asm_e9f5 ld a, [Buffer2] cp $1 ld hl, $6db5 jp z, $6bdc cp $2 ld hl, $6dba jp z, $6bdc cp $3 ld hl, $6dbf jp z, $6bdc cp $4 ld hl, $6dc4 jp z, $6bdc .asm_e9f5 ld hl, EnemyMonStatus ld a, [hli] push af inc hl ld a, [hli] push af ld a, [hl] push af push hl ld hl, EnemyMonItem ld a, [hl] push af push hl ld hl, EnemySubStatus5 ld a, [hl] push af set 3, [hl] bit 3, a jr nz, .asm_ea13 jr .asm_ea1a .asm_ea13 ld a, $84 ld [TempEnemyMonSpecies], a jr .asm_ea27 .asm_ea1a set 3, [hl] ld hl, $c6f2 ld a, [EnemyMonAtkDefDV] ld [hli], a ld a, [EnemyMonSpdSpclDV] ld [hl], a .asm_ea27 ld a, [TempEnemyMonSpecies] ld [CurPartySpecies], a ld a, [EnemyMonLevel] ld [CurPartyLevel], a callba LoadEnemyMon pop af ld [EnemySubStatus5], a pop hl pop af ld [hl], a pop hl pop af ld [hld], a pop af ld [hld], a dec hl pop af ld [hl], a ld hl, EnemySubStatus5 bit 3, [hl] jr nz, .asm_ea67 ld hl, $c735 ld de, EnemyMonMove1 ld bc, $0004 call CopyBytes ld hl, $c739 ld de, EnemyMonPPMove1 ld bc, $0004 call CopyBytes .asm_ea67 ld a, [EnemyMonSpecies] ld [$c64e], a ld [CurPartySpecies], a ld [$d265], a ld a, [BattleType] cp $3 jp z, $6bd9 callba Function10607f ld hl, $6dc9 call $1057 call ClearSprites ld a, [$d265] dec a call $3393 ld a, c push af ld a, [$d265] dec a call $3380 pop af and a jr nz, .asm_eab7 call $2ead jr z, .asm_eab7 ld hl, $6df0 call $1057 call ClearSprites ld a, [EnemyMonSpecies] ld [$d265], a ld a, $43 call Predef .asm_eab7 ld a, [BattleType] cp $6 jp z, $6bd1 cp $b jr nz, .asm_eac8 ld hl, $d0ee set 6, [hl] .asm_eac8 ld a, [PartyCount] cp $6 jr z, .asm_eb3c xor a ld [MonType], a call ClearSprites ld a, $6 call Predef callba Function4db49 ld a, [CurItem] cp $a4 jr nz, .asm_eaf8 ld a, [PartyCount] dec a ld hl, PartyMon1Happiness ld bc, $0030 call AddNTimes ld a, $c8 ld [hl], a .asm_eaf8 ld hl, $6df5 call $1057 ld a, [CurPartySpecies] ld [$d265], a call $343b call YesNoBox jp c, $6be2 ld a, [PartyCount] dec a ld [CurPartyMon], a ld hl, PartyMon1Nickname ld bc, $000b call AddNTimes ld d, h ld e, l push de xor a ld [MonType], a ld b, $0 callba Function116c1 call $04b6 call $0e51 pop hl ld de, StringBuffer1 call InitName jp $6be2 .asm_eb3c call ClearSprites ld a, $9 call Predef callba Function4db83 ld a, $1 call GetSRAMBank ld a, [$ad10] cp $14 jr nz, .asm_eb5b ld hl, $d0ee set 7, [hl] .asm_eb5b ld a, [CurItem] cp $a4 jr nz, .asm_eb67 ld a, $c8 ld [$ad41], a .asm_eb67 call CloseSRAM ld hl, $6df5 call $1057 ld a, [CurPartySpecies] ld [$d265], a call $343b call YesNoBox jr c, .asm_ebaf xor a ld [CurPartyMon], a ld a, BOXMON ld [MonType], a ld de, $d050 ld b, $0 callba Function116c1 ld a, $1 call GetSRAMBank ld hl, $d050 ld de, $b082 ld bc, $000b call CopyBytes ld hl, $b082 ld de, StringBuffer1 call InitName call CloseSRAM .asm_ebaf ld a, $1 call GetSRAMBank ld hl, $b082 ld de, $d050 ld bc, $000b call CopyBytes call CloseSRAM ld hl, $6deb call $1057 call $04b6 call $0e51 jr .asm_ebe2 callba Functione6ce jr .asm_ebe2 ld hl, $6dc9 call $1057 call ClearSprites .asm_ebe2 ld a, [BattleType] cp $3 ret z cp $2 ret z cp $6 jr z, .asm_ec05 ld a, [$c64e] and a jr z, .asm_ebfb call WhiteBGMap call ClearTileMap .asm_ebfb ld hl, NumItems inc a ld [$d10c], a jp $2f53 .asm_ec05 ld hl, $dc79 dec [hl] ret ; ec0a Table_0xec0a: ; ec0a dbw ULTRA_BALL, Function_0xec29 dbw GREAT_BALL, Function_0xec2f dbw MOON_STONE, Function_0xec2f dbw HEAVY_BALL, Function_0xec50 dbw LEVEL_BALL, Function_0xed8c dbw LURE_BALL, Function_0xeccc dbw FAST_BALL, Function_0xed68 dbw MOON_BALL, Function_0xecdd dbw LOVE_BALL, Function_0xed12 dbw PARK_BALL, Function_0xec2f db $ff ; ec29 Function_0xec29: ; ec29 sla b ret nc ld b, $ff ret ; ec2f Function_0xec2f: ; ec2f ld a, b srl a add b ld b, a ret nc ld b, $ff ret ; ec38 GetPokedexEntryBank: ; ec38 push hl push de ld a, [EnemyMonSpecies] rlca rlca and 3 ld hl, .PokedexEntryBanks ld d, 0 ld e, a add hl, de ld a, [hl] pop de pop hl ret .PokedexEntryBanks db BANK(PokedexEntries1) db BANK(PokedexEntries2) db BANK(PokedexEntries3) db BANK(PokedexEntries4) ; ec50 Function_0xec50: ; ec50 ld a, [EnemyMonSpecies] ld hl, PokedexDataPointerTable dec a ld e, a ld d, 0 add hl, de add hl, de ld a, BANK(PokedexDataPointerTable) call GetFarHalfword .SkipText call GetPokedexEntryBank call GetFarByte inc hl cp "@" jr nz, .SkipText call GetPokedexEntryBank push bc inc hl inc hl call GetFarHalfword srl h rr l ld b, h ld c, l srl b rr c srl b rr c srl b rr c srl b rr c call .asm_ec99 srl b rr c call .asm_ec99 ld a, h pop bc jr .asm_eca4 .asm_ec99 push bc ld a, b cpl ld b, a ld a, c cpl ld c, a inc bc add hl, bc pop bc ret .asm_eca4 ld c, a cp $4 jr c, .asm_ecbc ld hl, .table_ecc4 .asm_ecac ld a, c cp [hl] jr c, .asm_ecb4 inc hl inc hl jr .asm_ecac .asm_ecb4 inc hl ld a, b add [hl] ld b, a ret nc ld b, $ff ret .asm_ecbc ld a, b sub 20 ld b, a ret nc ld b, $1 ret .table_ecc4 db 8, 0 db 12, 20 db 16, 30 db 255, 40 ; eccc Function_0xeccc: ; eccc ld a, [BattleType] cp $4 ret nz ld a, b add a jr c, .asm_ecd9 add b jr nc, .asm_ecdb .asm_ecd9 ld a, $ff .asm_ecdb ld b, a ret ; ecdd Function_0xecdd: ; ecdd push bc ld a, [TempEnemyMonSpecies] dec a ld c, a ld b, $0 ld hl, $65b1 add hl, bc add hl, bc ld a, $10 call GetFarHalfword pop bc push bc ld a, $10 call GetFarByte cp $2 pop bc ret nz inc hl inc hl inc hl push bc ld a, $10 call GetFarByte cp $a pop bc ret nz sla b jr c, .asm_ed0f sla b jr nc, .asm_ed11 .asm_ed0f ld b, $ff .asm_ed11 ret ; ed12 Function_0xed12: ; ed12 ld a, [TempEnemyMonSpecies] ld c, a ld a, [TempBattleMonSpecies] cp c ret nz push bc ld a, [TempBattleMonSpecies] ld [CurPartySpecies], a xor a ld [MonType], a ld a, [CurBattleMon] ld [CurPartyMon], a callba GetGender jr c, .asm_ed66 ld d, 0 jr nz, .asm_ed39 inc d .asm_ed39 push de ld a, [TempEnemyMonSpecies] ld [CurPartySpecies], a ld a, WILDMON ld [MonType], a callba GetGender jr c, .asm_ed65 ld d, 0 jr nz, .asm_ed52 inc d .asm_ed52 ld a, d pop de cp d pop bc ret nz sla b jr c, .asm_ed62 sla b jr c, .asm_ed62 sla b ret nc .asm_ed62 ld b, $ff ret .asm_ed65 pop de .asm_ed66 pop bc ret ; ed68 Function_0xed68: ; ed68 ld a, [TempEnemyMonSpecies] ld c, a ld hl, $459a ld d, $3 .asm_ed71 ld a, $f call GetFarByte inc hl cp $ff jr z, .asm_ed88 cp c jr nz, .asm_ed88 sla b jr c, .asm_ed85 sla b ret nc .asm_ed85 ld b, $ff ret .asm_ed88 dec d jr nz, .asm_ed71 ret ; ed8c Function_0xed8c: ; ed8c ld a, [BattleMonLevel] ld c, a ld a, [EnemyMonLevel] cp c ret nc sla b jr c, .asm_eda8 srl c cp c ret nc sla b jr c, .asm_eda8 srl c cp c ret nc sla b ret nc .asm_eda8 ld b, $ff ret ; edab INCBIN "baserom.gbc", $edab, $edfa - $edab ; known jump sources: e8c9 (3:68c9), f7a0 (3:77a0) Functionedfa: ; edfa (3:6dfa) callba Function2715c ret Item06: ; ee01 callba Function91ae1 ret ; ee08 Bicycle: ; ee08 callba Functiond0b3 ret ; ee0f MoonStone: FireStone: Thunderstone: WaterStone: LeafStone: SunStone: ; ee0f ld b, $5 call $71f9 jp c, $6e38 ld a, $1 call GetPartyParamLocation ld a, [hl] cp $70 jr z, .asm_ee35 ld a, $1 ld [$d1e9], a callba Function421d8 ld a, [$d268] and a jr z, .asm_ee35 jp $7795 .asm_ee35 call $77f2 xor a ld [$d0ec], a ret ; ee3d HpUp: Protein: Iron: Carbos: Calcium: ; ee3d ld b, $1 call $71f9 jp c, $6e9f call $6ef5 call $6ed9 ld a, $b call GetPartyParamLocation add hl, bc ld a, [hl] cp $64 jr nc, .asm_ee83 add $a ld [hl], a call $6e8c call $6ed9 ld hl, $6eab add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, StringBuffer2 ld bc, $000d call CopyBytes call $7780 ld hl, $6ea6 call $1057 ld c, $2 callba ChangeHappiness jp $7795 .asm_ee83 ld hl, $781f call $1057 jp ClearPalettes ; ee8c INCBIN "baserom.gbc", $ee8c, $ef14 - $ee8c RareCandy: ; ef14 ld b, $1 call $71f9 jp c, $6e9f call $6ef5 ld a, $1f call GetPartyParamLocation ld a, [hl] cp $64 jp nc, $6e83 inc a ld [hl], a ld [CurPartyLevel], a push de ld d, a callba Function50e47 pop de ld a, $8 call GetPartyParamLocation ld a, [hMultiplicand] ld [hli], a ld a, [$ffb5] ld [hli], a ld a, [$ffb6] ld [hl], a ld a, $24 call GetPartyParamLocation ld a, [hli] ld b, a ld c, [hl] push bc call $6e8c ld a, $25 call GetPartyParamLocation pop bc ld a, [hld] sub c ld c, a ld a, [hl] sbc b ld b, a dec hl ld a, [hl] add c ld [hld], a ld a, [hl] adc b ld [hl], a callba Function2709e ld a, $f8 call $724a xor a ld [MonType], a ld a, $1f call Predef ld hl, $c4a9 ld b, $a ld c, $9 call $0fe8 ld hl, $c4bf ld bc, $0004 ld a, $28 call Predef call $0a80 xor a ld [MonType], a ld a, [CurPartySpecies] ld [$d265], a ld a, $1a call Predef xor a ld [$d1e9], a callba Function421d8 jp $7795 ; efad HealPowder: ; efad ld b, $1 call $71f9 jp c, $729e call $6fda cp $0 jr nz, .asm_efc9 ld c, $f callba ChangeHappiness call $77d6 ld a, $0 .asm_efc9 jp $709e ; efcc Antidote: BurnHeal: IceHeal: Awakening: ParlyzHeal: FullHeal: Psncureberry: Przcureberry: BurntBerry: IceBerry: MintBerry: Miracleberry: ; efcc ld b, $1 call $71f9 jp c, $729e call $6fda jp $709e ; efda ; known jump sources: efb5 (3:6fb5), efd4 (3:6fd4) Functionefda: ; efda (3:6fda) call Functionf30d ld a, $1 ret z call Functionf058 ld a, $20 call GetPartyParamLocation ld a, [hl] and c jr nz, .asm_eff4 call Functionf009 ld a, $1 ret nc ld b, $f9 .asm_eff4 xor a ld [hl], a ld a, b ld [PartyMenuActionText], a ; $d141 call Functionf030 call Functionf780 call Functionf279 call Functionf795 ld a, $0 ret ; known jump sources: efec (3:6fec) Functionf009: ; f009 (3:7009) call Functionf2a6 jr nc, .asm_f01c ld a, [PlayerSubStatus3] ; $c66a bit 7, a jr z, .asm_f01c ld a, c cp $ff jr nz, .asm_f01c scf ret .asm_f01c and a ret ; known jump sources: f156 (3:7156), f1c7 (3:71c7) Functionf01e: ; f01e (3:701e) call Functionf2a6 ret nc ld a, $22 call GetPartyParamLocation ld a, [hli] ld [BattleMonHP], a ; $c63c ld a, [hld] ld [$c63d], a ret ; known jump sources: effa (3:6ffa), f153 (3:7153) Functionf030: ; f030 (3:7030) call Functionf2a6 ret nc xor a ld [BattleMonStatus], a ; $c63a ld hl, PlayerSubStatus5 ; $c66c res 0, [hl] ld hl, PlayerSubStatus1 ; $c668 res 0, [hl] call Functionf058 ld a, c cp $ff jr nz, .asm_f04f ld hl, PlayerSubStatus3 ; $c66a res 7, [hl] .asm_f04f push bc callba Function0x365d7 pop bc ret ; known jump sources: efe0 (3:6fe0), f042 (3:7042) Functionf058: ; f058 (3:7058) push hl ld a, [CurItem] ; $d106 ld hl, $7071 ld bc, $3 .asm_f062 cp [hl] jr z, .asm_f068 add hl, bc jr .asm_f062 .asm_f068 inc hl ld b, [hl] inc hl ld a, [hl] ld c, a cp $ff pop hl ret ; f071 (3:7071) INCBIN "baserom.gbc",$f071,$f09e - $f071 ; known jump sources: efc9 (3:6fc9), efd7 (3:6fd7), f0c5 (3:70c5), f0d3 (3:70d3), f141 (3:7141), f183 (3:7183), f189 (3:7189), f1a6 (3:71a6) Functionf09e: ; f09e (3:709e) ld hl, $70a3 rst $28 ret ; no known jump sources Jumptable_f0a3: ; f0a3 (3:70a3) dw Functionf2a2 dw Functionf299 dw Functionf29e RevivalHerb: ; f0a9 ld b, $1 call $71f9 jp c, $729e call $70d6 cp $0 jr nz, .asm_f0c5 ld c, $11 callba ChangeHappiness call $77d6 ld a, $0 .asm_f0c5 jp $709e ; f0c8 Revive: MaxRevive: ; f0c8 ld b, $1 call $71f9 jp c, $729e call $70d6 jp $709e ; f0d6 INCBIN "baserom.gbc", $f0d6, $f128 - $f0d6 FullRestore: ; f128 ld b, $1 call $71f9 jp c, $729e call $730d jp z, $7299 call $731b jr c, .asm_f13e jp $6fd4 .asm_f13e call $7144 jp $709e ; f144 INCBIN "baserom.gbc", $f144, $f16a - $f144 BitterBerry: ; f16a ld hl, PlayerSubStatus3 bit 7, [hl] ld a, $1 jr z, .asm_f183 res 7, [hl] xor a ld [hBattleTurn], a call $7789 ld hl, $4d81 call StdBattleTextBox ld a, $0 .asm_f183 jp $709e ; f186 MaxPotion: HyperPotion: SuperPotion: Potion: FreshWater: SodaPop: Lemonade: MoomooMilk: Ragecandybar: BerryJuice: Berry: GoldBerry: ; f186 call $71a9 jp $709e ; f18c Energypowder: ; f18c ld c, $f jr Function_0xf192 ; f190 EnergyRoot: ; f190 ld c, $10 ; f192 Function_0xf192: ; f192 push bc call $71a9 pop bc cp $0 jr nz, .asm_f1a6 callba ChangeHappiness call $77d6 ld a, $0 .asm_f1a6 jp $709e ; f1a9 ; known jump sources: f186 (3:7186), f193 (3:7193) Functionf1a9: ; f1a9 (3:71a9) ld b, $1 call Functionf1f9 ld a, $2 ret c call Functionf30d ld a, $1 ret z call Functionf31b ld a, $1 ret nc xor a ld [Danger], a ; $c2a6 call Functionf395 call Functionf2d1 call Functionf01e call Functionf1db ld a, $f5 ld [PartyMenuActionText], a ; $d141 call Functionf279 call Functionf795 ld a, $0 ret ; known jump sources: f117 (3:7117), f159 (3:7159), f1ca (3:71ca), f3f7 (3:73f7), f408 (3:7408) Functionf1db: ; f1db (3:71db) push de ld de, $4 call WaitPlaySFX pop de ld a, [CurPartyMon] ; $d109 ld hl, $c4ab ld bc, $28 call AddNTimes ld a, $2 ld [$d10a], a ld a, $b jp Predef ; known jump sources: ee11 (3:6e11), ee3f (3:6e3f), ef16 (3:6f16), efaf (3:6faf), efce (3:6fce), f0ab (3:70ab), f0ca (3:70ca), f12a (3:712a), f1ab (3:71ab), f5c7 (3:75c7) Functionf1f9: ; f1f9 (3:71f9) call Functionf20b ret c ld a, [CurPartySpecies] ; $d108 cp $fd jr nz, .asm_f209 call Functionf7e8 scf ret .asm_f209 and a ret ; known jump sources: f1f9 (3:71f9) Functionf20b: ; f20b (3:720b) ld a, b ld [PartyMenuActionText], a ; $d141 push hl push de push bc call WhiteBGMap call Functionf21c pop bc pop de pop hl ret ; known jump sources: f215 (3:7215), f41f (3:741f) Functionf21c: ; f21c (3:721c) callba Function5004f callba Function50405 callba Function503e0 callba WritePartyMenuTilemap callba PrintPartyMenuText call WaitBGMap call Function32f9 call DelayFrame callba PartyMenuSelect ret ; known jump sources: ef6d (3:6f6d), f28a (3:728a), f40d (3:740d) Functionf24a: ; f24a (3:724a) ld [PartyMenuActionText], a ; $d141 ld a, [CurPartySpecies] ; $d108 push af ld a, [CurPartyMon] ; $d109 push af push hl push de push bc callba WritePartyMenuTilemap callba Function50566 call WaitBGMap call Function32f9 call DelayFrame pop bc pop de pop hl pop af ld [CurPartyMon], a ; $d109 pop af ld [CurPartySpecies], a ; $d108 ret ; known jump sources: f000 (3:7000), f11f (3:711f), f161 (3:7161), f1d2 (3:71d2) Functionf279: ; f279 (3:7279) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $7f call ByteFill ld a, [PartyMenuActionText] ; $d141 call Functionf24a ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ld c, $32 call DelayFrames jp Functiona80 ; known jump sources: f133 (3:7133) Functionf299: ; f299 (3:7299) call Functionf7f2 jr Functionf2a2 ; known jump sources: efb2 (3:6fb2), efd1 (3:6fd1), f0ae (3:70ae), f0cd (3:70cd), f12d (3:712d) Functionf29e: ; f29e (3:729e) xor a ld [$d0ec], a ; known jump sources: f29c (3:729c) Functionf2a2: ; f2a2 (3:72a2) call ClearPalettes ret ; known jump sources: f009 (3:7009), f01e (3:701e), f030 (3:7030) Functionf2a6: ; f2a6 (3:72a6) ld a, [IsInBattle] ; $d22d (aliases: EnemyMonEnd) and a ret z ld a, [CurPartyMon] ; $d109 push hl ld hl, CurBattleMon ; $d0d4 cp [hl] pop hl jr nz, .asm_f2b8 scf ret .asm_f2b8 xor a ret ; known jump sources: f114 (3:7114) Functionf2ba: ; f2ba (3:72ba) call Functionf36f srl d rr e jr asm_f2c6 ; known jump sources: f10f (3:710f), f148 (3:7148), f2f5 (3:72f5) Functionf2c3: ; f2c3 (3:72c3) call Functionf36f asm_f2c6: ; f2c6 (3:72c6) ld a, $22 call GetPartyParamLocation ld [hl], d inc hl ld [hl], e jp Functionf328 ; known jump sources: f1c4 (3:71c4), f405 (3:7405) Functionf2d1: ; f2d1 (3:72d1) ld a, $23 call GetPartyParamLocation ld a, [hl] add e ld [hld], a ld a, [hl] adc d ld [hl], a jr c, .asm_f2f5 call Functionf328 ld a, $23 call GetPartyParamLocation ld d, h ld e, l ld a, $25 call GetPartyParamLocation ld a, [de] sub [hl] dec de dec hl ld a, [de] sbc [hl] jr c, .asm_f2f8 .asm_f2f5 call Functionf2c3 .asm_f2f8 ret ; known jump sources: f3f3 (3:73f3) Functionf2f9: ; f2f9 (3:72f9) ld a, $23 call GetPartyParamLocation ld a, [hl] sub e ld [hld], a ld a, [hl] sbc d ld [hl], a jr nc, .asm_f309 xor a ld [hld], a ld [hl], a .asm_f309 call Functionf328 ret ; known jump sources: efda (3:6fda), f0d6 (3:70d6), f130 (3:7130), f1b1 (3:71b1), f3ed (3:73ed), f402 (3:7402), f432 (3:7432) Functionf30d: ; f30d (3:730d) push de call Functionf35f call Functionf348 call Functionf356 ld a, d or e pop de ret ; known jump sources: f136 (3:7136), f1b7 (3:71b7), f437 (3:7437) Functionf31b: ; f31b (3:731b) call Functionf356 ld h, d ld l, e call Functionf36f ld a, l sub e ld a, h sbc d ret ; known jump sources: f2ce (3:72ce), f2de (3:72de), f309 (3:7309) Functionf328: ; f328 (3:7328) ld a, $22 call GetPartyParamLocation ld a, [hli] ld [$d1ef], a ld a, [hl] ld [$d1ee], a ret ; f336 (3:7336) INCBIN "baserom.gbc",$f336,$f348 - $f336 ; known jump sources: f311 (3:7311) Functionf348: ; f348 (3:7348) ld a, $22 call GetPartyParamLocation ld a, [hli] ld [$d1ed], a ld a, [hl] ld [$d1ec], a ret ; known jump sources: f314 (3:7314), f31b (3:731b) Functionf356: ; f356 (3:7356) ld a, [$d1ed] ld d, a ld a, [$d1ec] ld e, a ret ; known jump sources: f30e (3:730e) Functionf35f: ; f35f (3:735f) push hl ld a, $24 call GetPartyParamLocation ld a, [hli] ld [Buffer2], a ; $d1eb (aliases: MovementType) ld a, [hl] ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) pop hl ret ; known jump sources: f2ba (3:72ba), f2c3 (3:72c3), f320 (3:7320) Functionf36f: ; f36f (3:736f) ld a, [Buffer2] ; $d1eb (aliases: MovementType) ld d, a ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength) ld e, a ret ; known jump sources: f3f0 (3:73f0), f3fb (3:73fb) Functionf378: ; f378 (3:7378) push bc ld a, $24 call GetPartyParamLocation ld a, [hli] ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) ld a, [hl] ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, $5 ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) ld b, $2 call Divide ld a, [$FF00+$b5] ld d, a ld a, [$FF00+$b6] ld e, a pop bc ret ; known jump sources: f1c1 (3:71c1) Functionf395: ; f395 (3:7395) push hl ld a, [CurItem] ; $d106 ld hl, $73af ld d, a .asm_f39d ld a, [hli] cp $ff jr z, .asm_f3a9 cp d jr z, .asm_f3aa inc hl inc hl jr .asm_f39d .asm_f3a9 scf .asm_f3aa ld e, [hl] inc hl ld d, [hl] pop hl ret ; f3af (3:73af) INCBIN "baserom.gbc",$f3af,$f3df - $f3af Functionf3df: ; f3df (3:73df) ld a, [$d0d8] dec a ld b, a call Functionf419 jr c, .asm_f413 ld a, b ld [CurPartyMon], a ; $d109 call Functionf30d call Functionf378 call Functionf2f9 push bc call Functionf1db pop bc call Functionf378 ld a, c ld [CurPartyMon], a ; $d109 call Functionf30d call Functionf2d1 call Functionf1db ld a, $f5 call Functionf24a call Functiona36 .asm_f413 ld a, b inc a ld [$d0d8], a ret ; known jump sources: f3e4 (3:73e4), f448 (3:7448) Functionf419: ; f419 (3:7419) push bc ld a, $1 ld [PartyMenuActionText], a ; $d141 call Functionf21c pop bc jr c, .asm_f43e ld a, [$d0d8] dec a ld c, a ld a, b cp c jr z, .asm_f440 ld a, c ld [CurPartyMon], a ; $d109 call Functionf30d jr z, .asm_f440 call Functionf31b jr nc, .asm_f440 xor a ret .asm_f43e scf ret .asm_f440 push bc ld hl, $744a call Function1d67 pop bc jr Functionf419 ; f44a (3:744a) INCBIN "baserom.gbc",$f44a,$f44f - $f44a EscapeRope: ; f44f xor a ld [$d0ec], a callba Functioncb95 ld a, [$d0ec] cp $1 call z, $7795 ret ; f462 SuperRepel: ; f462 ld b, $c8 jr Function_0xf46c ; f466 MaxRepel: ; f466 ld b, $fa jr Function_0xf46c ; f466 Repel: ; f46a ld b, $64 ; f46c Function_0xf46c: ; f46c ld a, [$dca1] and a ld hl, $747d jp nz, $1057 ld a, b ld [$dca1], a jp $7789 ; f47d INCBIN "baserom.gbc", $f47d, $f482 - $f47d XAccuracy: ; f482 ld hl, PlayerSubStatus4 bit 0, [hl] jp nz, $77ca set 0, [hl] jp $7789 ; f48f PokeDoll: ; f48f ld a, [IsInBattle] dec a jr nz, .asm_f4a6 inc a ld [$d232], a ld a, [$d0ee] and $c0 or $2 ld [$d0ee], a jp $7789 .asm_f4a6 xor a ld [$d0ec], a ret ; f4ab GuardSpec: ; f4ab ld hl, PlayerSubStatus4 bit 1, [hl] jp nz, $77ca set 1, [hl] jp $7789 ; f4b8 DireHit: ; f4b8 ld hl, PlayerSubStatus4 bit 2, [hl] jp nz, $77ca set 2, [hl] jp $7789 ; f4c5 XAttack: XDefend: XSpeed: XSpecial: ; f4c5 call $7789 ld a, [CurItem] ld hl, $7504 .asm_f4ce cp [hl] jr z, .asm_f4d5 inc hl inc hl jr .asm_f4ce .asm_f4d5 inc hl ld b, [hl] xor a ld [hBattleTurn], a ld [AttackMissed], a ld [$c70d], a callba Function0x361ef call WaitSFX callba BattleCommand8c callba BattleCommand8e ld a, [CurBattleMon] ld [CurPartyMon], a ld c, $3 callba ChangeHappiness ret ; f504 INCBIN "baserom.gbc", $f504, $f50c - $f504 Item38: ; f50c ld a, [IsInBattle] and a jr nz, .asm_f512 .asm_f512 xor a ld [DefaultFlypoint], a ld b, $f8 ld hl, PartyMon1Status call .asm_f554 ld a, [IsInBattle] cp $1 jr z, .asm_f52b ld hl, OTPartyMon1Status call .asm_f554 .asm_f52b ld hl, BattleMonStatus ld a, [hl] and b ld [hl], a ld hl, EnemyMonStatus ld a, [hl] and b ld [hl], a ld a, [DefaultFlypoint] and a ld hl, UnknownText_0xf56c jp z, $1057 ld hl, UnknownText_0xf576 call $1057 ld a, [Danger] and $80 jr nz, .asm_f54e .asm_f54e ld hl, UnknownText_0xf571 jp $1057 .asm_f554 ld de, $0030 ld c, $6 .asm_f559 ld a, [hl] push af and $7 jr z, .asm_f564 ld a, $1 ld [DefaultFlypoint], a .asm_f564 pop af and b ld [hl], a add hl, de dec c jr nz, .asm_f559 ret ; f56c UnknownText_0xf56c: ; 0xf56c text_jump UnknownText_0x1c5bf9 db "@" ; 0xf571 UnknownText_0xf571: ; 0xf571 text_jump UnknownText_0x1c5c28 db "@" ; 0xf576 UnknownText_0xf576: ; 0xf576 text_jump UnknownText_0x1c5c44 start_asm ; 0xf57b Function_0xf57b: ; f57b ld a, [IsInBattle] and a jr nz, .asm_f58c push de ld de, SFX_POKEFLUTE call WaitPlaySFX call WaitSFX pop de .asm_f58c jp $13e0 ; f58f BlueCard: ; f58f ld hl, .bluecardtext jp $2012 .bluecardtext text_jump UnknownText_0x1c5c5e db "@" ; f59a CoinCase: ; f59a ld hl, .coincasetext jp $2012 .coincasetext text_jump UnknownText_0x1c5c7b db "@" ; f5a5 OldRod: ; f5a5 ld e, $0 jr Function_0xf5b1 ; f5a9 GoodRod: ; f5a9 ld e, $1 jr Function_0xf5b1 ; f5ad SuperRod: ; f5ad ld e, $2 jr Function_0xf5b1 ; f5b1 Function_0xf5b1: ; f5b1 callba Functioncf8e ret ; f5b8 Itemfinder: ; f5b8 callba Function12580 ret ; f5bf MaxElixer: PpUp: Ether: MaxEther: Elixer: Mysteryberry: ; f5bf ld a, [CurItem] ld [DefaultFlypoint], a .asm_f5c5 ld b, $1 call $71f9 jp c, $76e0 .asm_f5cd ld a, [DefaultFlypoint] cp $15 jp z, $76af cp $41 jp z, $76af ld hl, $7725 ld a, [DefaultFlypoint] cp $3e jr z, .asm_f5e7 ld hl, $772a .asm_f5e7 call $1057 ld a, [CurMoveNum] push af xor a ld [CurMoveNum], a ld a, $2 ld [$d235], a callba Function3e4bc pop bc ld a, b ld [CurMoveNum], a jr nz, .asm_f5c5 ld hl, PartyMon1Move1 ld bc, $0030 call $7963 push hl ld a, [hl] ld [$d265], a call $34f8 call CopyName1 pop hl ld a, [DefaultFlypoint] cp $3e jp nz, $76a7 ld a, [hl] cp $a6 jr z, .asm_f62f ld bc, $0015 add hl, bc ld a, [hl] cp $c0 jr c, .asm_f637 .asm_f62f ld hl, $772f call $1057 jr .asm_f5cd .asm_f637 ld a, [hl] add $40 ld [hl], a ld a, $1 ld [$d265], a call $784c call $7780 ld hl, $7734 call $1057 call ClearPalettes jp $7795 ; f652 INCBIN "baserom.gbc", $f652, $f73e - $f652 Squirtbottle: ; f73e callba _Squirtbottle ret ; f745 CardKey: ; f745 callba _CardKey ret ; f74c BasementKey: ; f74c callba _BasementKey ret ; f753 SacredAsh: ; f753 callba _SacredAsh ld a, [$d0ec] cp $1 ret nz call $7795 ret ; f763 NormalBox: ; f763 ld c, $2c jr Function_0xf769 ; f767 GorgeousBox: ; f767 ld c, $2b ; f769 Function_0xf769: ; f769 callba Function26f02 ld hl, UnknownText_0xf778 call $1057 jp $7795 ; f778 UnknownText_0xf778: ; 0xf778 text_jump UnknownText_0x1c5d03 db "@" ; 0xf77d Brightpowder: Item19: LuckyPunch: MetalPowder: Nugget: Item2D: Item32: ExpShare: SilverLeaf: RedScale: Secretpotion: SSTicket: MysteryEgg: ClearBell: SilverWing: QuickClaw: GoldLeaf: SoftSand: SharpBeak: PoisonBarb: KingsRock: RedApricorn: Tinymushroom: BigMushroom: Silverpowder: BluApricorn: Item5A: AmuletCoin: YlwApricorn: GrnApricorn: CleanseTag: MysticWater: Twistedspoon: WhtApricorn: Blackbelt: BlkApricorn: Item64: PnkApricorn: Blackglasses: Slowpoketail: PinkBow: Stick: SmokeBall: Nevermeltice: Magnet: Pearl: BigPearl: Everstone: SpellTag: GsBall: MiracleSeed: ThickClub: FocusBand: Item78: HardStone: LuckyEgg: MachinePart: EggTicket: LostItem: Stardust: StarPiece: Pass: Item87: Item88: Item89: Charcoal: ScopeLens: Item8D: Item8E: MetalCoat: DragonFang: Item91: Leftovers: Item93: Item94: Item95: DragonScale: BerserkGene: Item99: Item9A: Item9B: FlowerMail: ItemA2: LightBall: PolkadotBow: ItemAB: UpGrade: ItemB0: RainbowWing: ItemB3: ; f77d jp $77ed ; f780