summaryrefslogtreecommitdiff
path: root/items/item_effects.asm
diff options
context:
space:
mode:
Diffstat (limited to 'items/item_effects.asm')
-rw-r--r--items/item_effects.asm638
1 files changed, 548 insertions, 90 deletions
diff --git a/items/item_effects.asm b/items/item_effects.asm
index 342f61926..17e5f72d4 100644
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -150,9 +150,7 @@ ParkBall: ; e8a2
ld d, a
push de
ld a, [BattleMonItem]
- ld a, $d
- ld hl, $7dd0
- rst FarCall
+ callba GetItem
ld a, b
cp $46
@@ -258,9 +256,7 @@ ParkBall: ; e8a2
ld [CurPartySpecies], a
ld a, [EnemyMonLevel]
ld [CurPartyLevel], a
- ld a, $f
- ld hl, $68eb
- rst FarCall
+ callba LoadEnemyMon
pop af
ld [EnemySubStatus5], a
@@ -296,9 +292,7 @@ ParkBall: ; e8a2
ld a, [BattleType]
cp $3
jp z, $6bd9
- ld a, $41
- ld hl, $607f
- rst FarCall
+ callba Function10607f
ld hl, $6dc9
call $1057
@@ -351,9 +345,7 @@ ParkBall: ; e8a2
ld a, $6
call Predef
- ld a, $13
- ld hl, $5b49
- rst FarCall
+ callba Function4db49
ld a, [CurItem]
cp $a4
@@ -392,9 +384,7 @@ ParkBall: ; e8a2
xor a
ld [MonType], a
ld b, $0
- ld a, $4
- ld hl, $56c1
- rst FarCall
+ callba Function116c1
call $04b6
@@ -412,9 +402,7 @@ ParkBall: ; e8a2
ld a, $9
call Predef
- ld a, $13
- ld hl, $5b83
- rst FarCall
+ callba Function4db83
ld a, $1
call GetSRAMBank
@@ -452,9 +440,7 @@ ParkBall: ; e8a2
ld [MonType], a
ld de, $d050
ld b, $0
- ld a, $4
- ld hl, $56c1
- rst FarCall
+ callba Function116c1
ld a, $1
call GetSRAMBank
@@ -490,9 +476,7 @@ ParkBall: ; e8a2
jr .asm_ebe2
- ld a, $3
- ld hl, $66ce
- rst FarCall
+ callba Functione6ce
jr .asm_ebe2
@@ -762,9 +746,7 @@ Function_0xed12: ; ed12
ld [MonType], a
ld a, [CurBattleMon]
ld [CurPartyMon], a
- ld a, $14
- ld hl, $4bdd
- rst FarCall
+ callba GetGender
jr c, .asm_ed66
ld d, 0
@@ -777,9 +759,7 @@ Function_0xed12: ; ed12
ld [CurPartySpecies], a
ld a, WILDMON
ld [MonType], a
- ld a, $14
- ld hl, $4bdd
- rst FarCall
+ callba GetGender
jr c, .asm_ed65
ld d, 0
@@ -871,21 +851,21 @@ Function_0xed8c: ; ed8c
; edab
-INCBIN "baserom.gbc", $edab, $ee01 - $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
- ld a, $24
- ld hl, $5ae1
- rst FarCall
+ callba Function91ae1
ret
; ee08
Bicycle: ; ee08
- ld a, $3
- ld hl, $50b3
- rst FarCall
+ callba Functiond0b3
ret
; ee0f
@@ -909,9 +889,7 @@ SunStone: ; ee0f
jr z, .asm_ee35
ld a, $1
ld [$d1e9], a
- ld a, $10
- ld hl, $61d8
- rst FarCall
+ callba Function421d8
ld a, [$d268]
and a
@@ -969,9 +947,7 @@ Calcium: ; ee3d
call $1057
ld c, $2
- ld a, $1
- ld hl, $71c2
- rst FarCall
+ callba ChangeHappiness
jp $7795
@@ -1005,9 +981,7 @@ RareCandy: ; ef14
ld [CurPartyLevel], a
push de
ld d, a
- ld a, $14
- ld hl, $4e47
- rst FarCall
+ callba Function50e47
pop de
ld a, $8
@@ -1045,9 +1019,7 @@ RareCandy: ; ef14
ld a, [hl]
adc b
ld [hl], a
- ld a, $9
- ld hl, $709e
- rst FarCall
+ callba Function2709e
ld a, $f8
call $724a
@@ -1078,9 +1050,7 @@ RareCandy: ; ef14
xor a
ld [$d1e9], a
- ld a, $10
- ld hl, $61d8
- rst FarCall
+ callba Function421d8
jp $7795
; efad
@@ -1097,9 +1067,7 @@ HealPowder: ; efad
cp $0
jr nz, .asm_efc9
ld c, $f
- ld a, $1
- ld hl, $71c2
- rst FarCall
+ callba ChangeHappiness
call $77d6
@@ -1133,7 +1101,118 @@ Miracleberry: ; efcc
; efda
-INCBIN "baserom.gbc", $efda, $f0a9 - $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
@@ -1147,9 +1226,7 @@ RevivalHerb: ; f0a9
cp $0
jr nz, .asm_f0c5
ld c, $11
- ld a, $1
- ld hl, $71c2
- rst FarCall
+ callba ChangeHappiness
call $77d6
@@ -1254,9 +1331,7 @@ Function_0xf192: ; f192
pop bc
cp $0
jr nz, .asm_f1a6
- ld a, $1
- ld hl, $71c2
- rst FarCall
+ callba ChangeHappiness
call $77d6
@@ -1267,15 +1342,414 @@ Function_0xf192: ; f192
; f1a9
-INCBIN "baserom.gbc", $f1a9, $f44f - $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
- ld a, $3
- ld hl, $4b95
- rst FarCall
+ callba Functioncb95
ld a, [$d0ec]
cp $1
@@ -1381,26 +1855,18 @@ XSpecial: ; f4c5
ld [hBattleTurn], a
ld [AttackMissed], a
ld [$c70d], a
- ld a, $d
- ld hl, $61ef
- rst FarCall
+ callba Function0x361ef
call WaitSFX
- ld a, $d
- ld hl, $63b8
- rst FarCall
+ callba BattleCommand8c
- ld a, $d
- ld hl, $644c
- rst FarCall
+ callba BattleCommand8e
ld a, [CurBattleMon]
ld [CurPartyMon], a
ld c, $3
- ld a, $1
- ld hl, $71c2
- rst FarCall
+ callba ChangeHappiness
ret
; f504
@@ -1542,17 +2008,13 @@ SuperRod: ; f5ad
; f5b1
Function_0xf5b1: ; f5b1
- ld a, $3
- ld hl, $4f8e
- rst FarCall
+ callba Functioncf8e
ret
; f5b8
Itemfinder: ; f5b8
- ld a, $4
- ld hl, $6580
- rst FarCall
+ callba Function12580
ret
; f5bf
@@ -1593,9 +2055,7 @@ Mysteryberry: ; f5bf
ld [CurMoveNum], a
ld a, $2
ld [$d235], a
- ld a, $f
- ld hl, $64bc
- rst FarCall
+ callba Function3e4bc
pop bc
ld a, b
@@ -1691,9 +2151,7 @@ GorgeousBox: ; f767
; f769
Function_0xf769: ; f769
- ld a, $9
- ld hl, $6f02
- rst FarCall
+ callba Function26f02
ld hl, UnknownText_0xf778
call $1057