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.asm534
1 files changed, 532 insertions, 2 deletions
diff --git a/items/item_effects.asm b/items/item_effects.asm
index 342f61926..13d96f0a4 100644
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -1133,7 +1133,120 @@ 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
+ ld a, BANK(Function0x365d7)
+ ld hl, Function0x365d7
+ rst $8 ; ; indirect jump to Function0x365d7 (365d7 (d:65d7))
+ 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
@@ -1267,8 +1380,425 @@ 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)
+ ld a, BANK(Function5004f)
+ ld hl, Function5004f
+ rst $8 ; ; indirect jump to Function5004f (5004f (14:404f))
+ ld a, BANK(Function50405)
+ ld hl, Function50405
+ rst $8 ; ; indirect jump to Function50405 (50405 (14:4405))
+ ld a, BANK(Function503e0)
+ ld hl, Function503e0
+ rst $8 ; ; indirect jump to Function503e0 (503e0 (14:43e0))
+ ld a, BANK(WritePartyMenuTilemap)
+ ld hl, WritePartyMenuTilemap
+ rst $8 ; ; indirect jump to WritePartyMenuTilemap (5005f (14:405f))
+ ld a, BANK(PrintPartyMenuText)
+ ld hl, PrintPartyMenuText
+ rst $8 ; ; indirect jump to PrintPartyMenuText (5049a (14:449a))
+ call WaitBGMap
+ call Function32f9
+ call DelayFrame
+ ld a, BANK(PartyMenuSelect)
+ ld hl, PartyMenuSelect
+ rst $8 ; ; indirect jump to PartyMenuSelect (50457 (14:4457))
+ 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
+ ld a, BANK(WritePartyMenuTilemap)
+ ld hl, WritePartyMenuTilemap
+ rst $8 ; ; indirect jump to WritePartyMenuTilemap (5005f (14:405f))
+ ld a, BANK(Function50566)
+ ld hl, Function50566
+ rst $8 ; ; indirect jump to Function50566 (50566 (14:4566))
+ 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