From 1660b814e87b6aef80d29bd4b1be8b930d7506e9 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 6 Sep 2013 03:48:02 -0400 Subject: [PATCH] the bomb specials asm dump --- main.asm | 12127 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 12050 insertions(+), 77 deletions(-) diff --git a/main.asm b/main.asm index 7000817a7..903518035 100644 --- a/main.asm +++ b/main.asm @@ -16630,7 +16630,10 @@ SpecialSnorlaxAwake: ; 0xc43d db $24, $09 db $ff -INCBIN "baserom.gbc", $c472, $c478 - $c472 +Functionc472: ; c472 + ld a, [CurPartySpecies] + jp Function37ce +; c478 SpecialGameboyCheck: ; c478 ; check cgb @@ -16656,7 +16659,29 @@ SpecialGameboyCheck: ; c478 ld [ScriptVar], a ret -INCBIN "baserom.gbc", $c48f, $c4b9 - $c48f +Functionc48f: ; c48f + ld a, $0 + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + ld a, $2 + ld [MusicFade], a + ret +; c49f + +Functionc49f: ; c49f + call FadeToMenu + callba Function1dd702 + call Function2b4d + ret +; c4ac + +Functionc4ac: ; c4ac + call FadeToMenu + callba Function84688 + call Function2b4d + ret +; c4b9 SpecialTrainerHouse: ; 0xc4b9 ld a, 0 @@ -16874,7 +16899,56 @@ PrintNumber_AdvancePointer: ; c64a ret ; 0xc658 -INCBIN "baserom.gbc", $c658, $c6ea - $c658 +Functionc658: ; c658 + xor a + ld [CurPartyMon], a + ld hl, PartySpecies +.asm_c65f + ld a, [hli] + cp $ff + jr z, .asm_c676 + cp $fd + jr z, .asm_c66d + push hl + call Functionc677 + pop hl + +.asm_c66d + ld a, [CurPartyMon] + inc a + ld [CurPartyMon], a + jr .asm_c65f + +.asm_c676 + ret +; c677 + +Functionc677: ; c677 + ld a, $0 + call GetPartyParamLocation + ld d, h + ld e, l + ld hl, $0020 + add hl, de + xor a + ld [hli], a + ld [hl], a + ld hl, $0024 + add hl, de + ld b, h + ld c, l + dec bc + dec bc + ld a, [hli] + ld [bc], a + inc bc + ld a, [hl] + ld [bc], a + callba Functionf8b9 + ret +; c699 + +INCBIN "baserom.gbc", $c699, $c6ea - $c699 Functionc6ea: ; c6ea @@ -19370,7 +19444,179 @@ Functiondcb6: ; dcb6 ; dd21 -INCBIN "baserom.gbc", $dd21, $de6e - $dd21 +Functiondd21: ; dd21 + ld a, [BreedMon1Species] + ld [CurPartySpecies], a + ld de, $0022 + call StartSFX + call WaitSFX + call Functione698 + ld a, b + ld [DefaultFlypoint], a + ld a, e + ld [CurPartyLevel], a + xor a + ld [$d10b], a + jp Functiondd64 +; dd42 + +Functiondd42: ; dd42 + ld a, [BreedMon2Species] + ld [CurPartySpecies], a + ld de, $0022 + call StartSFX + call WaitSFX + call Functione6b3 + ld a, b + ld [DefaultFlypoint], a + ld a, e + ld [CurPartyLevel], a + ld a, $1 + ld [$d10b], a + jp Functiondd64 +; dd64 + +Functiondd64: ; dd64 + ld hl, PartyCount + ld a, [hl] + cp $6 + jr nz, .asm_dd6e + scf + ret + +.asm_dd6e + inc a + ld [hl], a + ld c, a + ld b, $0 + add hl, bc + ld a, [$d10b] + and a + ld a, [BreedMon1Species] + ld de, BreedMon1Nick + jr z, .asm_dd86 + ld a, [BreedMon2Species] + ld de, BreedMon2Nick + +.asm_dd86 + ld [hli], a + ld [CurSpecies], a + ld a, $ff + ld [hl], a + ld hl, PartyMon1Nickname + ld a, [PartyCount] + dec a + call SkipNames + push hl + ld h, d + ld l, e + pop de + call CopyBytes + push hl + ld hl, PartyMon1OT + ld a, [PartyCount] + dec a + call SkipNames + ld d, h + ld e, l + pop hl + call CopyBytes + push hl + call Functionde1a + pop hl + ld bc, $0020 + call CopyBytes + call GetBaseData + call Functionde1a + ld b, d + ld c, e + ld hl, $001f + add hl, bc + ld a, [CurPartyLevel] + ld [hl], a + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + ld hl, $000a + add hl, bc + push bc + ld b, $1 + call Functione167 + ld hl, PartyMon1Move1 + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + ld a, $1 + ld [Buffer1], a + ld a, $1b + call Predef + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + callba Functionc677 + ld a, [CurPartyLevel] + ld d, a + callab Function50e47 + pop bc + ld hl, $0008 + add hl, bc + ld a, [hMultiplicand] + ld [hli], a + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hl], a + and a + ret +; de1a + +Functionde1a: ; de1a + ld a, [PartyCount] + dec a + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + ret +; de2a + +Functionde2a: ; de2a + ld de, BreedMon1Nick + call Functionde44 + xor a + ld [$d10b], a + jp Functione039 +; de37 + +Functionde37: ; de37 + ld de, BreedMon2Nick + call Functionde44 + xor a + ld [$d10b], a + jp Functione039 +; de44 + +Functionde44: ; de44 + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + call SkipNames + call CopyBytes + ld a, [CurPartyMon] + ld hl, PartyMon1OT + call SkipNames + call CopyBytes + ld a, [CurPartyMon] + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + ld bc, $0020 + jp CopyBytes +; de6e Functionde6e: ; de6e @@ -20310,7 +20556,37 @@ Functione5bb: ; e5bb ret ; e5d9 -INCBIN "baserom.gbc", $e5d9, $e6ce - $e5d9 +INCBIN "baserom.gbc", $e5d9, $e698 - $e5d9 + +Functione698: ; e698 + ld hl, BreedMon1Species + ld de, TempMonSpecies + ld bc, $0020 + call CopyBytes + callab Function50e1b + ld a, [$df2b] + ld b, a + ld a, d + ld e, a + sub b + ld d, a + ret +; e6b3 + +Functione6b3: ; e6b3 + ld hl, BreedMon2Species + ld de, TempMonSpecies + ld bc, $0020 + call CopyBytes + callab Function50e1b + ld a, [$df64] + ld b, a + ld a, d + ld e, a + sub b + ld d, a + ret +; e6ce Functione6ce: ; e6ce @@ -20728,7 +21004,41 @@ Functionf881: ; f881 ret ; f8b9 -INCBIN "baserom.gbc", $f8b9, $f8ec - $f8b9 +Functionf8b9: ; f8b9 + ld a, $17 + call GetPartyParamLocation + push hl + ld a, $2 + call GetPartyParamLocation + pop de + xor a + ld [$cfa9], a + ld [MonType], a + ld c, $4 +.asm_f8ce + ld a, [hli] + and a + ret z + push hl + push de + push bc + call Functionf8ec + pop bc + pop de + ld a, [de] + and $c0 + ld b, a + ld a, [$d265] + add b + ld [de], a + inc de + ld hl, $cfa9 + inc [hl] + pop hl + dec c + jr nz, .asm_f8ce + ret +; f8ec Functionf8ec: ; f8ec @@ -21326,7 +21636,18 @@ Function11485: ; 11485 ret ; 11490 -INCBIN "baserom.gbc", $11490, $114dd - $11490 +Function11490: ; 11490 + ld a, $14 + ld [$d46c], a + ld a, $0 + ld [$d46d], a + call UpdateTime + ld hl, $dc35 + call Function11613 + ret +; 114a4 + +INCBIN "baserom.gbc", $114a4, $114dd - $114a4 Function114dd: ; 114dd @@ -22037,7 +22358,229 @@ UnknownScript_0x122c1: ; 0x122c1 end ; 0x122ce -INCBIN "baserom.gbc", $122ce, $124c8 - $122ce +INCBIN "baserom.gbc", $122ce, $12324 - $122ce + +Function12324: ; 12324 + ld a, [PartyCount] + and a + ret z + ld a, [ScriptVar] + ld [Buffer1], a + ld a, [rOBP1] + ld [Buffer2], a + call Function1233e + ld a, [Buffer2] + call Functiond24 + ret +; 1233e + +Function1233e: ; 1233e + xor a + ld [$d1ec], a +.asm_12342 + ld a, [Buffer1] + ld e, a + ld d, $0 + ld hl, $6365 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d1ec] + ld e, a + inc a + ld [$d1ec], a + add hl, de + ld a, [hl] + cp $5 + jr z, .asm_12364 + ld hl, $6377 + rst JumpTable + jr .asm_12342 + +.asm_12364 + ret +; 12365 + +INCBIN "baserom.gbc", $12365, $12377 - $12365 + +Table12377: ; 12377 + dw Function12383 + dw Function12393 + dw Function123a1 + dw Function123bf + dw Function123c8 + dw Function123db +; 12383 + +Function12383: ; 12383 + call Function12434 + ld de, $63fc + ld hl, $87c0 + ld bc, $0402 + call Request2bpp + ret +; 12393 + +Function12393: ; 12393 + ld hl, $c480 + ld de, $63dc + call Function124a3 + call Function124a3 + jr Function123a7 + +Function123a1: ; 123a1 + ld hl, $c480 + ld de, $641c + +Function123a7: ; 123a7 + ld a, [PartyCount] + ld b, a +.asm_123ab + call Function124a3 + push de + ld de, $0012 + call StartSFX + pop de + ld c, $1e + call DelayFrames + dec b + jr nz, .asm_123ab + ret +; 123bf + +Function123bf: ; 123bf + ld de, $000d + call StartMusic + jp Function12459 +; 123c8 + +Function123c8: ; 123c8 + ld de, $00aa + call StartSFX + call Function12459 + call WaitSFX + ld de, $000d + call StartSFX + ret +; 123db + +Function123db: ; 123db + ret +; 123dc + +INCBIN "baserom.gbc", $123dc, $12434 - $123dc + +Function12434: ; 12434 + call Function3218 + jr nz, .asm_1243e + ld a, $e0 + ld [rOBP1], a + ret + +.asm_1243e + ld hl, $6451 + ld de, CurMart + ld bc, $0008 + ld a, $5 + call Function306b + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 12451 + +INCBIN "baserom.gbc", $12451, $12459 - $12451 + +Function12459: ; 12459 + ld c, $8 +.asm_1245b + push bc + call Function12469 + ld c, $a + call DelayFrames + pop bc + dec c + jr nz, .asm_1245b + ret +; 12469 + +Function12469: ; 12469 + call Function3218 + jr nz, .asm_12475 + ld a, [rOBP1] + xor $28 + ld [rOBP1], a + ret + +.asm_12475 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, CurMart + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + ld c, $3 +.asm_12486 + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + dec hl + ld a, d + ld [hld], a + ld a, e + ld [hli], a + inc hl + inc hl + inc hl + dec c + jr nz, .asm_12486 + pop de + dec hl + ld a, d + ld [hld], a + ld a, e + ld [hl], a + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 124a3 + +Function124a3: ; 124a3 + push bc + ld a, [Buffer1] + ld bc, $1020 + cp $1 + jr z, .asm_124b1 + ld bc, $0000 + +.asm_124b1 + ld a, [de] + add c + inc de + ld [hli], a + ld a, [de] + add b + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + pop bc + ret +; 124c1 + +INCBIN "baserom.gbc", $124c1, $124c8 - $124c1 UnknownScript_0x124c8: ; 0x124c8 refreshscreen $0 @@ -23503,7 +24046,64 @@ Function12f50: ; 12f50 ret ; 12f5b -INCBIN "baserom.gbc", $12f5b, $12fba - $12f5b +Function12f5b: ; 12f5b + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Functione58 + call Function12f73 + pop bc + ld a, b + ld [Options], a + push af + call WhiteBGMap + pop af + ret +; 12f73 + +Function12f73: ; 12f73 + call Function13172 + ld de, $6fb2 + call Function1bb1 + call Function131ef + ld hl, $cfa5 + set 6, [hl] + jr Function12f93 + +Function12f86: ; 12f86 + call Function1bd3 + bit 1, a + jp nz, Function12f9f + bit 0, a + jp nz, Function12f9c + +Function12f93: ; 12f93 + call Function13235 + call Function13256 + jp Function12f86 +; 12f9c + +Function12f9c: ; 12f9c + and a + jr Function12fa0 + +Function12f9f: ; 12f9f + scf + +Function12fa0: ; 12fa0 + push af + xor a + ld [$d0e3], a + ld hl, $cfa5 + res 6, [hl] + call ClearSprites + call ClearTileMap + pop af + ret +; 12fb2 + +INCBIN "baserom.gbc", $12fb2, $12fba - $12fb2 Function12fba: ; 12fba ld a, [CurPartySpecies] @@ -24408,7 +25008,14 @@ Function13575: ; 13575 ; 135db -INCBIN "baserom.gbc", $135db, $135eb - $135db +Function135db: ; 135db + xor a + ld [$df9c], a + ld a, $14 + ld [$dc79], a + callba Function11490 + ret +; 135eb UnknownScript_0x135eb: ; 0x135eb writecode $3, $6 @@ -24831,7 +25438,54 @@ Function13988: ; 13988 ret ; 139a8 -INCBIN "baserom.gbc", $139a8, $139ed - $139a8 +Function139a8: ; 139a8 + ld c, $a + ld hl, $79fe +.asm_139ad + push bc + push hl + ld e, [hl] + inc hl + ld d, [hl] + ld b, $0 + call EventFlagAction + pop hl + inc hl + inc hl + pop bc + dec c + jr nz, .asm_139ad + ld c, $5 +.asm_139c0 + push bc +.asm_139c1 + call Random + cp $fa + jr nc, .asm_139c1 + ld c, $19 + call SimpleDivide + ld e, b + ld d, $0 + ld hl, $79fe + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + push de + ld b, $2 + call EventFlagAction + pop de + ld a, c + and a + jr nz, .asm_139c1 + ld b, $1 + call EventFlagAction + pop bc + dec c + jr nz, .asm_139c0 + ret +; 139ed Function139ed: ; 139ed ld hl, $79fe @@ -24847,7 +25501,49 @@ Function139ed: ; 139ed ret ; 139fe -INCBIN "baserom.gbc", $139fe, $13b87 - $139fe +INCBIN "baserom.gbc", $139fe, $13a12 - $139fe + +Function13a12: ; 13a12 + ld hl, PartyMon1CurHP + ld a, [hli] + or [hl] + jr z, .asm_13a2b + ld hl, PartyCount + ld a, $1 + ld [hli], a + inc hl + ld a, [hl] + ld [$df9b], a + ld [hl], $ff + xor a + ld [ScriptVar], a + ret + +.asm_13a2b + ld a, $1 + ld [ScriptVar], a + ret +; 13a31 + +Function13a31: ; 13a31 + ld hl, $dcd9 + ld a, [$df9b] + ld [hl], a + ld b, $1 +.asm_13a3a + ld a, [hli] + cp $ff + jr z, .asm_13a42 + inc b + jr .asm_13a3a + +.asm_13a42 + ld a, b + ld [PartyCount], a + ret +; 13a47 + +INCBIN "baserom.gbc", $13a47, $13b87 - $13a47 GetSquareRoot: ; 13b87 @@ -26595,7 +27291,49 @@ Function14a07: ; 14a07 ret ; 14a1a -INCBIN "baserom.gbc", $14a1a, $14b5f - $14a1a +INCBIN "baserom.gbc", $14a1a, $14a58 - $14a1a + +Function14a58: ; 14a58 + call Function14b54 + callba Function14056 + callba Function1050d9 + call Function14df7 + call Function14e13 + call Function14e76 + call Function14e8b + callba Function44725 + callba Function1406a + call Function14b5a + ret +; 14a83 + +INCBIN "baserom.gbc", $14a83, $14ab2 - $14a83 + +Function14ab2: ; 14ab2 + call Function14b89 + jr c, .asm_14ac1 + call Function14b54 + call Function14be3 + call Function14b5a + and a + +.asm_14ac1 + ret +; 14ac2 + +INCBIN "baserom.gbc", $14ac2, $14b54 - $14ac2 + +Function14b54: ; 14b54 + ld a, $1 + ld [$c2cd], a + ret +; 14b5a + +Function14b5a: ; 14b5a + xor a + ld [$c2cd], a + ret +; 14b5f Function14b5f: ; 14b5f @@ -26625,7 +27363,87 @@ Function14b85: ; 14b85 ret ; 14b89 -INCBIN "baserom.gbc", $14b89, $14c10 - $14b89 +Function14b89: ; 14b89 + ld a, [$cfcd] + and a + jr z, .asm_14ba8 + call Function14bcb + jr z, .asm_14b9e + ld hl, $5297 + call Function14baf + jr nz, .asm_14bad + jr .asm_14ba8 + +.asm_14b9e + ld hl, $5292 + call Function14baf + jr nz, .asm_14bad + jr .asm_14bab + +.asm_14ba8 + call Function14cbb + +.asm_14bab + and a + ret + +.asm_14bad + scf + ret +; 14baf + +Function14baf: ; 14baf + ld b, $5 + call Function269a + call Function1d58 + ld bc, $0007 + call Function1dd2 + ld a, [$cfa9] + dec a + call Function1c17 + push af + call Functiond90 + pop af + and a + ret +; 14bcb + +Function14bcb: ; 14bcb + ld a, $1 + call GetSRAMBank + ld hl, $a009 + ld a, [hli] + ld c, [hl] + ld b, a + call CloseSRAM + ld a, [PlayerID] + cp b + ret nz + ld a, [$d47c] + cp c + ret +; 14be3 + +Function14be3: ; 14be3 + call Function14c99 + call Function14c10 + ld c, $20 + call DelayFrames + ld a, [Options] + push af + ld a, $3 + ld [Options], a + ld hl, $528d + call PrintText + pop af + ld [Options], a + ld de, $0025 + call WaitPlaySFX + call WaitSFX + ld c, $1e + call DelayFrames + ret +; 14c10 Function14c10: ; 14c10 @@ -26708,7 +27526,24 @@ Function14c90: ; 14c90 jr .asm_14c93 ; 14c99 -INCBIN "baserom.gbc", $14c99, $14cbb - $14c99 +Function14c99: ; 14c99 + xor a + ld [hJoypadReleased], a + ld [hJoypadPressed], a + ld [hJoypadSum], a + ld [hJoypadDown], a + ld a, [Options] + push af + ld a, $3 + ld [Options], a + ld hl, $5288 + call PrintText + pop af + ld [Options], a + ld c, $10 + call DelayFrames + ret +; 14cbb Function14cbb: ; 14cbb @@ -27321,7 +28156,67 @@ Function1541d: ; 1541d jr .asm_1541d ; 15440 -INCBIN "baserom.gbc", $15440, $156b3 - $15440 +INCBIN "baserom.gbc", $15440, $1559a - $15440 + +Function1559a: ; 1559a + call Function15650 + ret c + call Function156b3 + ld hl, $5a27 + call Function15a20 + ld hl, $5a2c + call Function157bb + ld hl, $55d6 + call LoadMenuDataHeader +.asm_155b3 + xor a + ld [hBGMapMode], a + call Function1563e + ld [$cf76], a + call Function1e5d + jr c, .asm_155cc + ld a, [MenuSelection] + ld hl, $55e6 + call Function1fa7 + jr nc, .asm_155b3 + +.asm_155cc + call Function156b8 + call Function1c07 + call Function1c17 + ret +; 155d6 + +INCBIN "baserom.gbc", $155d6, $1563e - $155d6 + +Function1563e: ; 1563e + call Function2ead + jr nz, .asm_15646 + ld a, $0 + ret + +.asm_15646 + ld a, [$d95e] + and a + ld a, $1 + ret z + ld a, $2 + ret +; 15650 + +Function15650: ; 15650 + ld a, [PartyCount] + and a + ret nz + ld de, $000f + call StartSFX + ld hl, $5663 + call Function15a20 + scf + ret +; 15663 + +INCBIN "baserom.gbc", $15663, $156b3 - $15663 Function156b3: ; 156b3 ld de, $000d @@ -28766,7 +29661,635 @@ Function160a1: ; 160a1 INCLUDE "items/marts.asm" -INCBIN "baserom.gbc", $16218, $16be4 - $16218 +Function16218: ; 16218 + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + xor a + ld [$cf63], a +.asm_16223 + ld a, [$cf63] + bit 7, a + jr nz, .asm_1622f + call Function16233 + jr .asm_16223 + +.asm_1622f + pop af + ld [$ffaa], a + ret +; 16233 + +Function16233: ; 16233 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $6242 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 16242 + +INCBIN "baserom.gbc", $16242, $166d6 - $16242 + +Function166d6: ; 166d6 + ld hl, DaycareMan + bit 0, [hl] + jr nz, .asm_166fe + ld hl, DaycareMan + ld a, $0 + call Function1678f + jr c, .asm_16724 + call Function16798 + jr c, .asm_16721 + callba Functionde2a + ld hl, DaycareMan + set 0, [hl] + call Function167f6 + call Function16a3b + ret + +.asm_166fe + callba Functione698 + ld hl, BreedMon1Nick + call Function1686d + call Function16807 + jr c, .asm_16721 + callba Functiondd21 + call Function16850 + ld hl, DaycareMan + res 0, [hl] + res 5, [hl] + jr .asm_16724 + +.asm_16721 + call Function1689b + +.asm_16724 + ld a, $13 + call Function1689b + ret +; 1672a + +Function1672a: ; 1672a + ld hl, DaycareLady + bit 0, [hl] + jr nz, .asm_16752 + ld hl, DaycareLady + ld a, $2 + call Function16781 + jr c, .asm_1677b + call Function16798 + jr c, .asm_16778 + callba Functionde37 + ld hl, DaycareLady + set 0, [hl] + call Function167f6 + call Function16a3b + ret + +.asm_16752 + callba Functione6b3 + ld hl, BreedMon2Nick + call Function1686d + call Function16807 + jr c, .asm_16778 + callba Functiondd42 + call Function16850 + ld hl, DaycareLady + res 0, [hl] + ld hl, DaycareMan + res 5, [hl] + jr .asm_1677b + +.asm_16778 + call Function1689b + +.asm_1677b + ld a, $13 + call Function1689b + ret +; 16781 + +Function16781: ; 16781 + bit 7, [hl] + jr nz, .asm_16788 + set 7, [hl] + inc a + +.asm_16788 + call Function1689b + call Function1dcf + ret +; 1678f + +Function1678f: ; 1678f + set 7, [hl] + call Function1689b + call Function1dcf + ret +; 16798 + +Function16798: ; 16798 + ld a, [PartyCount] + cp $2 + jr c, .asm_167e5 + ld a, $4 + call Function1689b + ld b, $6 + callba Function5001d + jr c, .asm_167dd + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_167e1 + callba Functione538 + jr c, .asm_167e9 + ld hl, PartyMon1Item + ld bc, $0030 + ld a, [CurPartyMon] + call AddNTimes + ld d, [hl] + callba Functionb9e76 + jr c, .asm_167ed + ld hl, PartyMon1Nickname + ld a, [CurPartyMon] + call GetNick + and a + ret + +.asm_167dd + ld a, $12 + scf + ret + +.asm_167e1 + ld a, $6 + scf + ret + +.asm_167e5 + ld a, $7 + scf + ret + +.asm_167e9 + ld a, $8 + scf + ret + +.asm_167ed + ld a, $a + scf + ret +; 167f1 + +INCBIN "baserom.gbc", $167f1, $167f6 - $167f1 + +Function167f6: ; 167f6 + ld a, $5 + call Function1689b + ld a, [CurPartySpecies] + call Function37ce + ld a, $9 + call Function1689b + ret +; 16807 + +Function16807: ; 16807 + ld a, [$d087] + and a + jr nz, .asm_16819 + ld a, $f + call Function1689b + call Function1dcf + jr c, .asm_16844 + jr .asm_1682d + +.asm_16819 + ld a, $b + call Function1689b + call Function1dcf + jr c, .asm_16844 + ld a, $c + call Function1689b + call Function1dcf + jr c, .asm_16844 + +.asm_1682d + ld de, Money + ld bc, $d088 + callba Function1600b + jr c, .asm_16848 + ld a, [PartyCount] + cp $6 + jr nc, .asm_1684c + and a + ret + +.asm_16844 + ld a, $12 + scf + ret + +.asm_16848 + ld a, $11 + scf + ret + +.asm_1684c + ld a, $10 + scf + ret +; 16850 + +Function16850: ; 16850 + ld bc, $d088 + ld de, Money + callba Function15ffa + ld a, $d + call Function1689b + ld a, [CurPartySpecies] + call Function37ce + ld a, $e + call Function1689b + ret +; 1686d + +Function1686d: ; 1686d + ld a, b + ld [StringBuffer2], a + ld a, d + ld [$d087], a + ld de, StringBuffer1 + ld bc, $000b + call CopyBytes + ld hl, $0000 + ld bc, $0064 + ld a, [$d087] + call AddNTimes + ld de, $0064 + add hl, de + xor a + ld [$d088], a + ld a, h + ld [$d089], a + ld a, l + ld [$d08a], a + ret +; 1689b + +Function1689b: ; 1689b + ld e, a + ld d, $0 + ld hl, $68aa + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 168aa + +INCBIN "baserom.gbc", $168aa, $16936 - $168aa + +Function16936: ; 16936 + ld hl, DaycareMan + bit 6, [hl] + jr nz, .asm_16949 + ld hl, .data_16944 + call PrintText + ret + +.data_16944 + db $16 + db $f6 + db $5e + db $6f + db $50 + +.asm_16949 + ld hl, $6993 + call PrintText + call Function1dcf + jr c, .asm_1697c + ld a, [PartyCount] + cp $6 + jr nc, .asm_16987 + call Function169ac + ld hl, DaycareMan + res 6, [hl] + call Function16a3b + ld hl, $6998 + call PrintText + ld de, $0096 + call StartSFX + ld c, $78 + call DelayFrames + ld hl, $699d + jr .asm_1697f + +.asm_1697c + ld hl, $69a2 + +.asm_1697f + call PrintText + xor a + ld [ScriptVar], a + ret + +.asm_16987 + ld hl, $69a7 + call PrintText + ld a, $1 + ld [ScriptVar], a + ret +; 16993 + +INCBIN "baserom.gbc", $16993, $169ac - $16993 + +Function169ac: ; 169ac + ld a, [$df9a] + ld [CurPartyLevel], a + ld hl, PartyCount + ld a, [hl] + cp $6 + jr nc, .asm_16a2f + inc a + ld [hl], a + ld c, a + ld b, $0 + add hl, bc + ld a, $fd + ld [hli], a + ld a, [EggSpecies] + ld [CurSpecies], a + ld [CurPartySpecies], a + ld a, $ff + ld [hl], a + ld hl, PartyMon1Nickname + ld bc, $000b + call Function16a31 + ld hl, EggNick + call CopyBytes + ld hl, PartyMon1OT + ld bc, $000b + call Function16a31 + ld hl, EggOT + call CopyBytes + ld hl, PartyMon1Species + ld bc, $0030 + call Function16a31 + ld hl, EggSpecies + ld bc, $0020 + call CopyBytes + call GetBaseData + ld a, [PartyCount] + dec a + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + ld b, h + ld c, l + ld hl, $0007 + add hl, bc + push hl + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + pop hl + push bc + ld b, $0 + ld a, $c + call Predef + pop bc + ld hl, $0022 + add hl, bc + xor a + ld [hli], a + ld [hl], a + and a + ret + +.asm_16a2f + scf + ret +; 16a31 + +Function16a31: ; 16a31 + ld a, [PartyCount] + dec a + call AddNTimes + ld d, h + ld e, l + ret +; 16a3b + +Function16a3b: ; 16a3b + ld a, [DaycareLady] + bit 0, a + ret z + ld a, [DaycareMan] + bit 0, a + ret z + callab Function16e1d + ld a, [$d265] + and a + ret z + inc a + ret z + ld hl, DaycareMan + set 5, [hl] +.asm_16a59 + call Random + cp $96 + jr c, .asm_16a59 + ld [StepsToEgg], a + jp Function16a66 +; 16a66 + +Function16a66: ; 16a66 + xor a + ld hl, EggSpecies + ld bc, $0020 + call ByteFill + ld hl, EggNick + ld bc, $000b + call ByteFill + ld hl, EggOT + ld bc, $000b + call ByteFill + ld a, [$df21] + ld [TempMonDVs], a + ld a, [$df22] + ld [$d124], a + ld a, [BreedMon1Species] + ld [CurPartySpecies], a + ld a, $3 + ld [MonType], a + ld a, [BreedMon1Species] + cp $84 + ld a, $1 + jr z, .asm_16ab6 + ld a, [BreedMon2Species] + cp $84 + ld a, $0 + jr z, .asm_16ab6 + callba GetGender + ld a, $0 + jr z, .asm_16ab6 + inc a + +.asm_16ab6 + ld [DittoInDaycare], a + and a + ld a, [BreedMon1Species] + jr z, .asm_16ac2 + ld a, [BreedMon2Species] + +.asm_16ac2 + ld [CurPartySpecies], a + callab GetPreEvolution + callab GetPreEvolution + ld a, $5 + ld [CurPartyLevel], a + ld a, [CurPartySpecies] + cp $1d + jr nz, .asm_16ae8 + call Random + cp $80 + ld a, $1d + jr c, .asm_16ae8 + ld a, $20 + +.asm_16ae8 + ld [CurPartySpecies], a + ld [CurSpecies], a + ld [EggSpecies], a + call GetBaseData + ld hl, EggNick + ld de, $6be0 + call CopyName2 + ld hl, PlayerName + ld de, EggOT + ld bc, $000b + call CopyBytes + xor a + ld [$df7c], a + ld de, $df7d + xor a + ld [Buffer1], a + ld a, $1b + call Predef + callba Function170bf + ld hl, $df81 + ld a, [PlayerID] + ld [hli], a + ld a, [$d47c] + ld [hl], a + ld a, [CurPartyLevel] + ld d, a + callab Function50e47 + ld hl, $df83 + ld a, [hMultiplicand] + ld [hli], a + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hl], a + xor a + ld b, $a + ld hl, $df86 +.asm_16b46 + ld [hli], a + dec b + jr nz, .asm_16b46 + ld hl, $df90 + call Random + ld [hli], a + ld [TempMonDVs], a + call Random + ld [hld], a + ld [$d124], a + ld de, $df21 + ld a, [BreedMon1Species] + cp $84 + jr z, .asm_16b98 + ld de, $df5a + ld a, [BreedMon2Species] + cp $84 + jr z, .asm_16b98 + ld a, $3 + ld [MonType], a + push hl + callba GetGender + pop hl + ld de, $df21 + ld bc, $df5a + jr c, .asm_16bab + jr z, .asm_16b90 + ld a, [DittoInDaycare] + and a + jr z, .asm_16b98 + ld d, b + ld e, c + jr .asm_16b98 + +.asm_16b90 + ld a, [DittoInDaycare] + and a + jr nz, .asm_16b98 + ld d, b + ld e, c + +.asm_16b98 + ld a, [de] + inc de + and $f + ld b, a + ld a, [hl] + and $f0 + add b + ld [hli], a + ld a, [de] + and $7 + ld b, a + ld a, [hl] + and $f8 + add b + ld [hl], a + +.asm_16bab + ld hl, StringBuffer1 + ld de, $d050 + ld bc, $000b + call CopyBytes + ld hl, $df7d + ld de, $df92 + ld a, $5 + call Predef + ld hl, $d050 + ld de, StringBuffer1 + ld bc, $000b + call CopyBytes + ld a, [BaseEggSteps] + ld hl, $df96 + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, [CurPartyLevel] + ld [$df9a], a + ret +; 16be0 + +INCBIN "baserom.gbc", $16be0, $16be4 - $16be0 Function16be4: ; 16be4 ld a, [UnownDex] @@ -29006,7 +30529,38 @@ Function16dac: ; 16dac ret ; 16dc7 -INCBIN "baserom.gbc", $16dc7, $16e1d - $16dc7 +Function16dc7: ; 16dc7 + ld hl, $6e04 + call PrintText + callba Function50000 + jr c, .asm_16df8 + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_16dfd + ld hl, $6e09 + call PrintText + call Function2ed3 + callba Function8461a + call Function2b74 + ld a, [$ffac] + and a + jr nz, .asm_16df8 + ld hl, $6e0e + jr .asm_16e00 + +.asm_16df8 + ld hl, $6e13 + jr .asm_16e00 + +.asm_16dfd + ld hl, $6e18 + +.asm_16e00 + call PrintText + ret +; 16e04 + +INCBIN "baserom.gbc", $16e04, $16e1d - $16e04 Function16e1d: ; 16e1d @@ -29196,7 +30750,308 @@ Function16f3e: ; 16f3e jr .loop ; 16f5e -INCBIN "baserom.gbc", $16f5e, $174ba - $16f5e +INCBIN "baserom.gbc", $16f5e, $170bf - $16f5e + +Function170bf: ; 170bf + call Function17197 + ld d, h + ld e, l + ld b, $4 +.asm_170c6 + ld a, [de] + and a + jr z, .asm_170e3 + ld hl, $df7d + ld c, $4 +.asm_170cf + ld a, [de] + cp [hl] + jr z, .asm_170df + inc hl + dec c + jr nz, .asm_170cf + call Function170e4 + jr nc, .asm_170df + call Function17169 + +.asm_170df + inc de + dec b + jr nz, .asm_170c6 + +.asm_170e3 + ret +; 170e4 + +Function170e4: ; 170e4 + push bc + ld a, [EggSpecies] + dec a + ld c, a + ld b, $0 + ld hl, $7b11 + add hl, bc + add hl, bc + ld a, $8 + call GetFarHalfword +.asm_170f6 + ld a, $8 + call GetFarByte + cp $ff + jr z, .asm_17107 + ld b, a + ld a, [de] + cp b + jr z, .asm_17163 + inc hl + jr .asm_170f6 + +.asm_17107 + call Function1720b + ld b, $4 +.asm_1710c + ld a, [de] + cp [hl] + jr z, .asm_17116 + inc hl + dec b + jr z, .asm_17146 + jr .asm_1710c + +.asm_17116 + ld a, [EggSpecies] + dec a + ld c, a + ld b, $0 + ld hl, $65b1 + add hl, bc + add hl, bc + ld a, $10 + call GetFarHalfword +.asm_17127 + ld a, $10 + call GetFarByte + inc hl + and a + jr nz, .asm_17127 +.asm_17130 + ld a, $10 + call GetFarByte + and a + jr z, .asm_17146 + inc hl + ld a, $10 + call GetFarByte + ld b, a + ld a, [de] + cp b + jr z, .asm_17163 + inc hl + jr .asm_17130 + +.asm_17146 + ld hl, $567a +.asm_17149 + ld a, $4 + call GetFarByte + inc hl + and a + jr z, .asm_17166 + ld b, a + ld a, [de] + cp b + jr nz, .asm_17149 + ld [$d262], a + ld a, $e + call Predef + ld a, c + and a + jr z, .asm_17166 + +.asm_17163 + pop bc + scf + ret + +.asm_17166 + pop bc + and a + ret +; 17169 + +Function17169: ; 17169 + push de + push bc + ld a, [de] + ld b, a + ld hl, $df7d + ld c, $4 +.asm_17172 + ld a, [hli] + and a + jr z, .asm_17187 + dec c + jr nz, .asm_17172 + ld de, $df7d + ld hl, $df7e + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + +.asm_17187 + dec hl + ld [hl], b + ld hl, $df7d + ld de, $df92 + ld a, $5 + call Predef + pop bc + pop de + ret +; 17197 + +Function17197: ; 17197 + ld hl, $df47 + ld a, [BreedMon1Species] + cp $84 + jr z, .asm_171b1 + ld a, [BreedMon2Species] + cp $84 + jr z, .asm_171d7 + ld a, [DittoInDaycare] + and a + ret z + ld hl, $df0e + ret + +.asm_171b1 + ld a, [CurPartySpecies] + push af + ld a, [BreedMon2Species] + ld [CurPartySpecies], a + ld a, [$df5a] + ld [TempMonDVs], a + ld a, [$df5b] + ld [$d124], a + ld a, $3 + ld [MonType], a + ld a, $24 + call Predef + jr c, .asm_171fb + jr nz, .asm_171fb + jr .asm_17203 + +.asm_171d7 + ld a, [CurPartySpecies] + push af + ld a, [BreedMon1Species] + ld [CurPartySpecies], a + ld a, [$df21] + ld [TempMonDVs], a + ld a, [$df22] + ld [$d124], a + ld a, $3 + ld [MonType], a + ld a, $24 + call Predef + jr c, .asm_17203 + jr nz, .asm_17203 + +.asm_171fb + ld hl, $df47 + pop af + ld [CurPartySpecies], a + ret + +.asm_17203 + ld hl, $df0e + pop af + ld [CurPartySpecies], a + ret +; 1720b + +Function1720b: ; 1720b + ld hl, $df0e + ld a, [BreedMon1Species] + cp $84 + ret z + ld a, [BreedMon2Species] + cp $84 + jr z, .asm_17220 + ld a, [DittoInDaycare] + and a + ret z + +.asm_17220 + ld hl, $df47 + ret +; 17224 + +INCBIN "baserom.gbc", $17224, $17421 - $17224 + +Function17421: ; 17421 + ld hl, $7467 + call PrintText + ld a, [BreedMon1Species] + call Function37ce + ld a, [DaycareLady] + bit 0, a + jr z, .asm_1745f + call Functionaaf + ld hl, BreedMon2Nick + call Function1746c + jp PrintText + + ld hl, $7462 + call PrintText + ld a, [BreedMon2Species] + call Function37ce + ld a, [DaycareMan] + bit 0, a + jr z, .asm_1745f + call Functionaaf + ld hl, BreedMon1Nick + call Function1746c + jp PrintText + +.asm_1745f + jp Functiona80 +; 17462 + +INCBIN "baserom.gbc", $17462, $1746c - $17462 + +Function1746c: ; 1746c + push bc + ld de, StringBuffer1 + ld bc, $000b + call CopyBytes + call Function16e1d + pop bc + ld a, [$d265] + ld hl, $749c + cp $ff + jr z, .asm_1749b + ld hl, $74a1 + and a + jr z, .asm_1749b + ld hl, $74a6 + cp $e6 + jr nc, .asm_1749b + cp $46 + ld hl, $74ab + jr nc, .asm_1749b + ld hl, $74b0 + +.asm_1749b + ret +; 1749c + +INCBIN "baserom.gbc", $1749c, $174ba - $1749c SECTION "bank6",ROMX,BANK[$6] @@ -31911,7 +33766,17 @@ Function26a3b: ; 26a3b ret ; 26a44 -INCBIN "baserom.gbc", $26a44, $26b8d - $26a44 +Function26a44: ; 26a44 + ld a, c + call Function269dd + ld de, $0005 + add hl, de + ld a, [hl] + ld c, a + ret +; 26a4f + +INCBIN "baserom.gbc", $26a4f, $26b8d - $26a4f DecorationNames: ; 26b8d @@ -32150,7 +34015,116 @@ Function26fdd: ; 26fdd ret ; 26fe3 -INCBIN "baserom.gbc", $26fe3, $2709e - $26fe3 +INCBIN "baserom.gbc", $26fe3, $26feb - $26fe3 + +Function26feb: ; 26feb + ld de, $0004 + ld a, [Bed] + call Function27037 + ld de, $0704 + ld a, [Plant] + call Function27037 + ld de, $0600 + ld a, [Poster] + call Function27037 + call Function27027 + ld de, $0000 + call Function27092 + ld a, [Carpet] + and a + ret z + call Function27085 + ld [hl], a + push af + ld de, $0002 + call Function27092 + pop af + inc a + ld [hli], a + inc a + ld [hli], a + dec a + ld [hl], a + ret +; 27027 + +Function27027: ; 27027 + ld b, $1 + ld a, [Poster] + and a + jr nz, .asm_27031 + ld b, $0 + +.asm_27031 + ld de, $02cc + jp EventFlagAction +; 27037 + +Function27037: ; 27037 + push af + call Function27092 + pop af + and a + ret z + call Function27085 + ld [hl], a + ret +; 27043 + +Function27043: ; 27043 + ld de, $0741 + ld hl, VariableSprites + ld a, [Console] + call Function27074 + ld de, $0742 + ld hl, $d82f + ld a, [LeftOrnament] + call Function27074 + ld de, $0743 + ld hl, $d830 + ld a, [RightOrnament] + call Function27074 + ld de, $0744 + ld hl, $d831 + ld a, [BigDoll] + call Function27074 + ret +; 27074 + +Function27074: ; 27074 + and a + jr z, .asm_27080 + call Function27085 + ld [hl], a + ld b, $0 + jp EventFlagAction + +.asm_27080 + ld b, $1 + jp EventFlagAction +; 27085 + +Function27085: ; 27085 + ld c, a + push de + push hl + callba Function26a44 + pop hl + pop de + ld a, c + ret +; 27092 + +Function27092: ; 27092 + ld a, d + add $4 + ld d, a + ld a, e + add $4 + ld e, a + call Function2a66 + ret +; 2709e Function2709e: ; 2709e @@ -32264,12 +34238,2501 @@ INCLUDE "battle/moves/move_effects_pointers.asm" MoveEffects: ; 2732e INCLUDE "battle/moves/move_effects.asm" -INCBIN "baserom.gbc", $27a28, $27a2d - $27a28 +Function27a28: ; 27a28 + call Function2500e + ld b, a + ret +; 27a2d SECTION "bankA",ROMX,BANK[$A] -INCBIN "baserom.gbc", $28000, $2a0e7 - $28000 +Function28000: ; 28000 + call WhiteBGMap + ld c, $50 + call DelayFrames + call Functionfdb + call ClearSprites + call Function1ad2 + xor a + ld [hSCX], a + ld [hSCY], a + ld c, $50 + call DelayFrames + call Functionfdb + call Function1ad2 + call Functione51 + call Functione58 + callba Function16d69a + call Function3200 + ld hl, $c543 + ld b, $2 + ld c, $c + ld d, h + ld e, l + callba Function4d35b + ld hl, $c56c + ld de, $4419 + call PlaceString + call Function28eff + call Function3200 + ld hl, $cf5d + xor a + ld [hli], a + ld [hl], $50 + ld a, [InLinkBattle] + cp $1 + jp nz, Function28177 + +Function2805d: ; 2805d + call Function28426 + call Function28499 + call Function28434 + xor a + ld [$cf56], a + call Function87d + ld a, [$ffcb] + cp $2 + jr nz, .asm_28091 + ld c, $3 + call DelayFrames + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + +.asm_28091 + ld de, $0000 + call StartMusic + ld c, $3 + call DelayFrames + xor a + ld [rIF], a + ld a, $8 + ld [rIE], a + ld hl, $d1f3 + ld de, EnemyMonSpecies + ld bc, $0011 + call Function75f + ld a, $fe + ld [de], a + ld hl, OverworldMap + ld de, $d26b + ld bc, $01a8 + call Function75f + ld a, $fe + ld [de], a + ld hl, EnemyMoveAnimation + ld de, PlayerSDefLevel + ld bc, $00c8 + call Function75f + xor a + ld [rIF], a + ld a, $1d + ld [rIE], a + call Function287ab + ld hl, $d26b + call Function287ca + push hl + ld bc, $000b + add hl, bc + ld a, [hl] + pop hl + and a + jp z, Function28b22 + cp $7 + jp nc, Function28b22 + ld de, OverworldMap + ld bc, $01a2 + call Function2879e + ld de, PlayerSDefLevel + ld hl, $c813 + ld c, $2 +.asm_280fe + ld a, [de] + inc de + and a + jr z, .asm_280fe + cp $fd + jr z, .asm_280fe + cp $fe + jr z, .asm_280fe + cp $ff + jr z, .asm_2811d + push hl + push bc + ld b, $0 + dec a + ld c, a + add hl, bc + ld a, $fe + ld [hl], a + pop bc + pop hl + jr .asm_280fe + +.asm_2811d + ld hl, $c90f + dec c + jr nz, .asm_280fe + ld hl, OverworldMap + ld de, $d26b + ld bc, $000b + call CopyBytes + ld de, OTPartyCount + ld a, [hli] + ld [de], a + inc de +.asm_28135 + ld a, [hli] + cp $ff + jr z, .asm_2814e + ld [$d265], a + push hl + push de + callab Functionfb908 + pop de + pop hl + ld a, [$d265] + ld [de], a + inc de + jr .asm_28135 + +.asm_2814e + ld [de], a + ld hl, $c813 + call Function2868a + ld a, $a8 + ld [$d102], a + ld a, $d3 + ld [$d103], a + ld de, $0000 + call StartMusic + ld a, [$ffcb] + cp $2 + ld c, $42 + call z, DelayFrames + ld de, $002b + call StartMusic + jp Function287e3 +; 28177 + +Function28177: ; 28177 + call Function28426 + call Function28595 + call Function28434 + call Function29dba + ld a, [ScriptVar] + and a + jp z, Function283b2 + ld a, [$ffcb] + cp $2 + jr nz, .asm_281ae + ld c, $3 + call DelayFrames + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + +.asm_281ae + ld de, $0000 + call StartMusic + ld c, $3 + call DelayFrames + xor a + ld [rIF], a + ld a, $8 + ld [rIE], a + ld hl, $d1f3 + ld de, EnemyMonSpecies + ld bc, $0011 + call Function75f + ld a, $fe + ld [de], a + ld hl, OverworldMap + ld de, $d26b + ld bc, $01c2 + call Function75f + ld a, $fe + ld [de], a + ld hl, EnemyMoveAnimation + ld de, PlayerSDefLevel + ld bc, $00c8 + call Function75f + ld a, [InLinkBattle] + cp $2 + jr nz, .asm_281fd + ld hl, $c9f4 + ld de, $cb84 + ld bc, $0186 + call Function283f2 + +.asm_281fd + xor a + ld [rIF], a + ld a, $1d + ld [rIE], a + ld de, $0000 + call StartMusic + call Function287ab + ld hl, $d26b + call Function287ca + ld de, OverworldMap + ld bc, $01b9 + call Function2879e + ld de, PlayerSDefLevel + ld hl, $c813 + ld c, $2 +.asm_28224 + ld a, [de] + inc de + and a + jr z, .asm_28224 + cp $fd + jr z, .asm_28224 + cp $fe + jr z, .asm_28224 + cp $ff + jr z, .asm_28243 + push hl + push bc + ld b, $0 + dec a + ld c, a + add hl, bc + ld a, $fe + ld [hl], a + pop bc + pop hl + jr .asm_28224 + +.asm_28243 + ld hl, $c90f + dec c + jr nz, .asm_28224 + ld a, [InLinkBattle] + cp $2 + jp nz, .asm_282fe + ld hl, $cb84 +.asm_28254 + ld a, [hli] + cp $20 + jr nz, .asm_28254 +.asm_28259 + ld a, [hli] + cp $fe + jr z, .asm_28259 + cp $20 + jr z, .asm_28259 + dec hl + ld de, $cb84 + ld bc, $0190 + call CopyBytes + ld hl, $cb84 + ld bc, $00c6 +.asm_28272 + ld a, [hl] + cp $21 + jr nz, .asm_28279 + ld [hl], $fe + +.asm_28279 + inc hl + dec bc + ld a, b + or c + jr nz, .asm_28272 + ld de, $cc9e +.asm_28282 + ld a, [de] + inc de + cp $ff + jr z, .asm_28294 + ld hl, $cc4a + dec a + ld b, $0 + ld c, a + add hl, bc + ld [hl], $fe + jr .asm_28282 + +.asm_28294 + ld hl, $cb84 + ld de, $c9f4 + ld b, $6 +.asm_2829c + push bc + ld bc, $0021 + call CopyBytes + ld a, $e + add e + ld e, a + ld a, $0 + adc d + ld d, a + pop bc + dec b + jr nz, .asm_2829c + ld de, $c9f4 + ld b, $6 +.asm_282b4 + push bc + ld a, $21 + add e + ld e, a + ld a, $0 + adc d + ld d, a + ld bc, $000e + call CopyBytes + pop bc + dec b + jr nz, .asm_282b4 + ld b, $6 + ld de, $c9f4 +.asm_282cc + push bc + push de + callba Function1de5c8 + ld a, c + or a + jr z, .asm_282ee + sub $3 + jr nc, .asm_282e4 + callba Function1df203 + jr .asm_282ee + +.asm_282e4 + cp $2 + jr nc, .asm_282ee + callba Function1df220 + +.asm_282ee + pop de + ld hl, $002f + add hl, de + ld d, h + ld e, l + pop bc + dec b + jr nz, .asm_282cc + ld de, $cb0e + xor a + ld [de], a + +.asm_282fe + ld hl, OverworldMap + ld de, $d26b + ld bc, $000b + call CopyBytes + ld de, OTPartyCount + ld bc, $0008 + call CopyBytes + ld de, $d276 + ld bc, $0002 + call CopyBytes + ld de, OTPartyMon1Species + ld bc, $01a4 + call CopyBytes + ld a, $a8 + ld [$d102], a + ld a, $d3 + ld [$d103], a + ld de, $0000 + call StartMusic + ld a, [$ffcb] + cp $2 + ld c, $42 + call z, DelayFrames + ld a, [InLinkBattle] + cp $3 + jr nz, .asm_283a9 + ld a, $c + ld [OtherTrainerClass], a + call Functionfdb + callba Function4d354 + ld hl, Options + ld a, [hl] + push af + and $20 + or $3 + ld [hl], a + ld hl, $d26b + ld de, $c656 + ld bc, $000b + call CopyBytes + call Function222a + ld a, [$c2d7] + push af + ld a, $1 + ld [$c2d7], a + ld a, [rIE] + push af + ld a, [rIF] + push af + xor a + ld [rIF], a + ld a, [rIE] + set 1, a + ld [rIE], a + pop af + ld [rIF], a + ld a, $16 + call Predef + ld a, [rIF] + ld h, a + xor a + ld [rIF], a + pop af + ld [rIE], a + ld a, h + ld [rIF], a + pop af + ld [$c2d7], a + pop af + ld [Options], a + callba Function1500c + jp Function28b22 + +.asm_283a9 + ld de, $002b + call StartMusic + jp Function287e3 +; 283b2 + +Function283b2: ; 283b2 + ld de, $43ed + ld b, $a +.asm_283b7 + call DelayFrame + call Function908 + dec b + jr nz, .asm_283b7 + xor a + ld [hld], a + ld [hl], a + ld [$ff9e], a + push de + ld hl, $c590 + ld b, $4 + ld c, $12 + push de + ld d, h + ld e, l + callba Function4d35b + pop de + pop hl + ld bc, $c5b9 + call Function13e5 + call Function4b6 + call Functionfdb + ld b, $8 + call GetSGBLayout + call Function3200 + ret +; 283ed + +INCBIN "baserom.gbc", $283ed, $283f2 - $283ed + +Function283f2: ; 283f2 + ld a, $1 + ld [$ffcc], a +.asm_283f6 + ld a, [hl] + ld [hSerialSend], a + call Function78a + push bc + ld b, a + inc hl + ld a, $30 +.asm_28401 + dec a + jr nz, .asm_28401 + ld a, [$ffcc] + and a + ld a, b + pop bc + jr z, .asm_28411 + dec hl + xor a + ld [$ffcc], a + jr .asm_283f6 + +.asm_28411 + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_283f6 + ret +; 28419 + +INCBIN "baserom.gbc", $28419, $28426 - $28419 + +Function28426: ; 28426 + ld hl, OverworldMap + ld bc, $0514 +.asm_2842c + xor a + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_2842c + ret +; 28434 + +Function28434: ; 28434 + ld hl, $d1f3 + ld a, $fd + ld b, $7 +.asm_2843b + ld [hli], a + dec b + jr nz, .asm_2843b + ld b, $a +.asm_28441 + call Random + cp $fd + jr nc, .asm_28441 + ld [hli], a + dec b + jr nz, .asm_28441 + ld hl, EnemyMoveAnimation + ld a, $fd + ld [hli], a + ld [hli], a + ld [hli], a + ld b, $c8 + xor a +.asm_28457 + ld [hli], a + dec b + jr nz, .asm_28457 + ld hl, $c818 + ld de, PlayerMoveType + ld bc, $0000 +.asm_28464 + inc c + ld a, c + cp $fd + jr z, .asm_2848c + ld a, b + dec a + jr nz, .asm_2847f + push bc + ld a, [InLinkBattle] + cp $1 + ld b, $d + jr z, .asm_2847a + ld b, $27 + +.asm_2847a + ld a, c + cp b + pop bc + jr z, .asm_28495 + +.asm_2847f + inc hl + ld a, [hl] + cp $fe + jr nz, .asm_28464 + ld a, c + ld [de], a + inc de + ld [hl], $ff + jr .asm_28464 + +.asm_2848c + ld a, $ff + ld [de], a + inc de + ld bc, Start + jr .asm_28464 + +.asm_28495 + ld a, $ff + ld [de], a + ret +; 28499 + +Function28499: ; 28499 + ld de, OverworldMap + ld a, $fd + ld b, $6 +.asm_284a0 + ld [de], a + inc de + dec b + jr nz, .asm_284a0 + ld hl, PlayerName + ld bc, $000b + call CopyBytes + push de + ld hl, PartyCount + ld a, [hli] + ld [de], a + inc de +.asm_284b5 + ld a, [hli] + cp $ff + jr z, .asm_284ce + ld [$d265], a + push hl + push de + callab Functionfb8f1 + pop de + pop hl + ld a, [$d265] + ld [de], a + inc de + jr .asm_284b5 + +.asm_284ce + ld [de], a + pop de + ld hl, $0008 + add hl, de + ld d, h + ld e, l + ld hl, PartyMon1Species + ld c, $6 +.asm_284db + push bc + call Function284f6 + ld bc, $0030 + add hl, bc + pop bc + dec c + jr nz, .asm_284db + ld hl, PartyMonOT + call .asm_284f0 + ld hl, PartyMonNicknames +.asm_284f0 + ld bc, $0042 + jp CopyBytes +; 284f6 + +Function284f6: ; 284f6 + ld b, h + ld c, l + push de + push bc + ld a, [hl] + ld [$d265], a + callab Functionfb8f1 + pop bc + pop de + ld a, [$d265] + ld [de], a + inc de + ld hl, $0022 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + xor a + ld [de], a + inc de + ld hl, $0020 + add hl, bc + ld a, [hl] + ld [de], a + inc de + ld a, [bc] + cp $51 + jr z, .asm_28528 + cp $52 + jr nz, .asm_28530 + +.asm_28528 + ld a, $17 + ld [de], a + inc de + ld [de], a + inc de + jr .asm_28544 + +.asm_28530 + push bc + dec a + ld hl, $542b + ld bc, $0020 + call AddNTimes + ld bc, $0002 + ld a, $14 + call FarCopyBytes + pop bc + +.asm_28544 + push bc + ld hl, $0001 + add hl, bc + ld bc, $001a + call CopyBytes + pop bc + ld hl, $001f + add hl, bc + ld a, [hl] + ld [de], a + ld [CurPartyLevel], a + inc de + push bc + ld hl, $0024 + add hl, bc + ld bc, $0008 + call CopyBytes + pop bc + push de + push bc + ld a, [bc] + dec a + push bc + ld b, $0 + ld c, a + ld hl, $7656 + add hl, bc + ld a, $3e + call GetFarByte + ld [BaseSpecialAttack], a + pop bc + ld hl, $000a + add hl, bc + ld c, $5 + ld b, $1 + ld a, $d + call Predef + pop bc + pop de + ld a, [$ffb5] + ld [de], a + inc de + ld a, [$ffb6] + ld [de], a + inc de + ld h, b + ld l, c + ret +; 28595 + +Function28595: ; 28595 + ld de, OverworldMap + ld a, $fd + ld b, $6 +.asm_2859c + ld [de], a + inc de + dec b + jr nz, .asm_2859c + ld hl, PlayerName + ld bc, $000b + call CopyBytes + ld hl, PartyCount + ld bc, $0008 + call CopyBytes + ld hl, PlayerID + ld bc, $0002 + call CopyBytes + ld hl, PartyMon1Species + ld bc, $0120 + call CopyBytes + ld hl, PartyMon1OT + ld bc, $0042 + call CopyBytes + ld hl, PartyMon1Nickname + ld bc, $0042 + call CopyBytes + ld a, [InLinkBattle] + cp $2 + ret nz + ld de, $c9f4 + ld a, $20 + call Function28682 + ld a, $0 + call GetSRAMBank + ld hl, $a600 + ld b, $6 +.asm_285ef + push bc + ld bc, $0021 + call CopyBytes + ld bc, $000e + add hl, bc + pop bc + dec b + jr nz, .asm_285ef + ld hl, $a600 + ld b, $6 +.asm_28603 + push bc + ld bc, $0021 + add hl, bc + ld bc, $000e + call CopyBytes + pop bc + dec b + jr nz, .asm_28603 + ld b, $6 + ld de, $a600 + ld hl, $c9f9 +.asm_2861a + push bc + push hl + push de + push hl + callba Function1de5c8 + pop de + ld a, c + or a + jr z, .asm_2863f + sub $3 + jr nc, .asm_28635 + callba Function1df1e6 + jr .asm_2863f + +.asm_28635 + cp $2 + jr nc, .asm_2863f + callba Function1df220 + +.asm_2863f + pop de + ld hl, $002f + add hl, de + ld d, h + ld e, l + pop hl + ld bc, $0021 + add hl, bc + pop bc + dec b + jr nz, .asm_2861a + call CloseSRAM + ld hl, $c9f9 + ld bc, $00c6 +.asm_28658 + ld a, [hl] + cp $fe + jr nz, .asm_2865f + ld [hl], $21 + +.asm_2865f + inc hl + dec bc + ld a, b + or c + jr nz, .asm_28658 + ld hl, $cabf + ld de, $cb13 + ld b, $54 + ld c, $0 +.asm_2866f + inc c + ld a, [hl] + cp $fe + jr nz, .asm_2867a + ld [hl], $ff + ld a, c + ld [de], a + inc de + +.asm_2867a + inc hl + dec b + jr nz, .asm_2866f + ld a, $ff + ld [de], a + ret +; 28682 + +Function28682: ; 28682 + ld c, $5 +.asm_28684 + ld [de], a + inc de + dec c + jr nz, .asm_28684 + ret +; 2868a + +Function2868a: ; 2868a + push hl + ld d, h + ld e, l + ld bc, $cbea + ld hl, $cbe8 + ld a, c + ld [hli], a + ld [hl], b + ld hl, OTPartyMon1Species + ld c, $6 +.asm_2869b + push bc + call Function286ba + pop bc + dec c + jr nz, .asm_2869b + pop hl + ld bc, $0108 + add hl, bc + ld de, OTPartyMon1OT + ld bc, $0042 + call CopyBytes + ld de, OTPartyMon1Nickname + ld bc, $0042 + jp CopyBytes +; 286ba + +Function286ba: ; 286ba + ld b, h + ld c, l + ld a, [de] + inc de + push bc + push de + ld [$d265], a + callab Functionfb908 + pop de + pop bc + ld a, [$d265] + ld [bc], a + ld [CurSpecies], a + ld hl, $0022 + add hl, bc + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hl], a + inc de + ld hl, $0020 + add hl, bc + ld a, [de] + inc de + ld [hl], a + ld hl, $cbe8 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, l + ld [$cbe8], a + ld a, h + ld [$cbe9], a + push bc + ld hl, $0001 + add hl, bc + push hl + ld h, d + ld l, e + pop de + push bc + ld a, [hli] + ld b, a + call Function28771 + ld a, b + ld [de], a + inc de + pop bc + ld bc, $0019 + call CopyBytes + pop bc + ld d, h + ld e, l + ld hl, $001f + add hl, bc + ld a, [de] + inc de + ld [hl], a + ld [CurPartyLevel], a + push bc + ld hl, $0024 + add hl, bc + push hl + ld h, d + ld l, e + pop de + ld bc, $0008 + call CopyBytes + pop bc + call GetBaseData + push de + push bc + ld d, h + ld e, l + ld hl, $000a + add hl, bc + ld c, $5 + ld b, $1 + ld a, $d + call Predef + pop bc + pop hl + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hli], a + push hl + push bc + ld hl, $000a + add hl, bc + ld c, $6 + ld b, $1 + ld a, $d + call Predef + pop bc + pop hl + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hli], a + push hl + ld hl, $001b + add hl, bc + ld a, $46 + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hl], a + pop hl + inc de + inc de + ret +; 28771 + +Function28771: ; 28771 + ld a, b + and a + ret z + push hl + ld hl, $4785 +.asm_28778 + ld a, [hli] + and a + jr z, .asm_28783 + cp b + jr z, .asm_28782 + inc hl + jr .asm_28778 + +.asm_28782 + ld b, [hl] + +.asm_28783 + pop hl + ret +; 28785 + +INCBIN "baserom.gbc", $28785, $2879e - $28785 + +Function2879e: ; 2879e +.asm_2879e + ld a, [hli] + cp $fe + jr z, .asm_2879e + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_2879e + ret +; 287ab + +Function287ab: ; 287ab + ld a, [$ffcb] + cp $2 + ret z + ld hl, EnemyMonSpecies + call Function287d8 + ld de, LinkBattleRNs + ld c, $a +.asm_287bb + ld a, [hli] + cp $fe + jr z, .asm_287bb + cp $fd + jr z, .asm_287bb + ld [de], a + inc de + dec c + jr nz, .asm_287bb + ret +; 287ca + +Function287ca: ; 287ca +.asm_287ca + ld a, [hli] + and a + jr z, .asm_287ca + cp $fd + jr z, .asm_287ca + cp $fe + jr z, .asm_287ca + dec hl + ret +; 287d8 + +Function287d8: ; 287d8 +.asm_287d8 + ld a, [hli] + cp $fd + jr z, .asm_287d8 + cp $fe + jr z, .asm_287d8 + dec hl + ret +; 287e3 + +Function287e3: ; 287e3 + call Functionfdb + call Function28ef8 + callba Function16d673 + xor a + ld hl, $cf51 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $1 + ld [$cfa9], a + inc a + ld [$cf56], a + jp Function2888b +; 28803 + +Function28803: ; 28803 + ld a, $1 + ld [MonType], a + ld a, $c1 + ld [$cfa8], a + ld a, [OTPartyCount] + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $9 + ld [$cfa1], a + ld a, $6 + ld [$cfa2], a + ld a, $1 + ld [$cfaa], a + ld a, $10 + ld [$cfa7], a + ld a, $20 + ld [$cfa5], a + xor a + ld [$cfa6], a + +Function28835: ; 28835 + callba Function16d70c + ld a, d + and a + jp z, Function2891c + bit 0, a + jr z, .asm_2885b + ld a, $1 + ld [$d263], a + callab Function50db9 + ld hl, OTPartyMon1Species + callba Function4d319 + jp Function2891c + +.asm_2885b + bit 6, a + jr z, .asm_28883 + ld a, [$cfa9] + ld b, a + ld a, [OTPartyCount] + cp b + jp nz, Function2891c + xor a + ld [MonType], a + call Function1bf7 + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $7f + pop bc + pop hl + ld a, [PartyCount] + ld [$cfa9], a + jr Function2888b + +.asm_28883 + bit 7, a + jp z, Function2891c + jp Function28ac9 +; 2888b + +Function2888b: ; 2888b + callba Function49856 + xor a + ld [MonType], a + ld a, $c1 + ld [$cfa8], a + ld a, [PartyCount] + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $1 + ld [$cfa1], a + ld a, $6 + ld [$cfa2], a + ld a, $1 + ld [$cfaa], a + ld a, $10 + ld [$cfa7], a + ld a, $20 + ld [$cfa5], a + xor a + ld [$cfa6], a + call Function3200 + +Function288c5: ; 288c5 + callba Function16d70c + ld a, d + and a + jr nz, .asm_288d2 + jp Function2891c + +.asm_288d2 + bit 0, a + jr z, .asm_288d9 + jp Function28926 + +.asm_288d9 + bit 7, a + jr z, .asm_288fe + ld a, [$cfa9] + dec a + jp nz, Function2891c + ld a, $1 + ld [MonType], a + call Function1bf7 + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $7f + pop bc + pop hl + ld a, $1 + ld [$cfa9], a + jp Function28803 + +.asm_288fe + bit 6, a + jr z, Function2891c + ld a, [$cfa9] + ld b, a + ld a, [PartyCount] + cp b + jr nz, Function2891c + call Function1bf7 + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $7f + pop bc + pop hl + jp Function28ade +; 2891c + +Function2891c: ; 2891c + ld a, [MonType] + and a + jp z, Function288c5 + jp Function28835 +; 28926 + +Function28926: ; 28926 + call Function309d + ld a, [$cfa9] + push af + ld hl, $c5cc + ld b, $1 + ld c, $12 + call Function28eef + ld hl, $c5e2 + ld de, $4ab4 + call PlaceString + callba Function4d354 + +.asm_28946 + ld a, $7f + ld [$c5eb], a + ld a, $13 + ld [$cfa8], a + ld a, $1 + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $10 + ld [$cfa1], a + ld a, $1 + ld [$cfa2], a + ld a, $1 + ld [$cfa9], a + ld [$cfaa], a + ld a, $20 + ld [$cfa7], a + xor a + ld [$cfa5], a + ld [$cfa6], a + call Function1bd3 + bit 4, a + jr nz, .asm_2898d + bit 1, a + jr z, .asm_289cd +.asm_28983 + pop af + ld [$cfa9], a + call Function30b4 + jp Function2888b + +.asm_2898d + ld a, $7f + ld [$c5e1], a + ld a, $23 + ld [$cfa8], a + ld a, $1 + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $10 + ld [$cfa1], a + ld a, $b + ld [$cfa2], a + ld a, $1 + ld [$cfa9], a + ld [$cfaa], a + ld a, $20 + ld [$cfa7], a + xor a + ld [$cfa5], a + ld [$cfa6], a + call Function1bd3 + bit 5, a + jp nz, .asm_28946 + bit 1, a + jr nz, .asm_28983 + jr .asm_289fe + +.asm_289cd + pop af + ld [$cfa9], a + ld a, $4 + ld [$d263], a + callab Function50db9 + callba Function4d319 + call Function30b4 + ld hl, $c4ba + ld bc, $0601 + ld a, $7f + call Function28b77 + ld hl, $c4c5 + ld bc, $0601 + ld a, $7f + call Function28b77 + jp Function2888b + +.asm_289fe + call Function1bee + pop af + ld [$cfa9], a + dec a + ld [DefaultFlypoint], a + ld [$cf56], a + callba Function16d6ce + ld a, [$cf51] + cp $f + jp z, Function287e3 + ld [$d003], a + call Function28b68 + ld c, $64 + call DelayFrames + callba Functionfb57e + jr c, .asm_28a58 + callba Functionfb5dd + jp nc, Function28b87 + xor a + ld [$cf57], a + ld [$cf52], a + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld hl, $4aaf + ld bc, $c5b9 + call Function13e5 + jr .asm_28a89 + +.asm_28a58 + xor a + ld [$cf57], a + ld [$cf52], a + ld a, [$d003] + ld hl, OTPartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [$d265], a + call GetPokemonName + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld hl, $4ac4 + ld bc, $c5b9 + call Function13e5 + +.asm_28a89 + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + ld hl, $c5b9 + ld de, $4ece + call PlaceString + ld a, $1 + ld [$cf56], a + callba Function16d6ce + ld c, $64 + call DelayFrames + jp Function287e3 +; 28aaf + +INCBIN "baserom.gbc", $28aaf, $28ac9 - $28aaf + +Function28ac9: ; 28ac9 + ld a, [$cfa9] + cp $1 + jp nz, Function2891c + call Function1bf7 + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $7f + pop bc + pop hl + +Function28ade: ; 28ade +.asm_28ade + ld a, $ed + ld [$c5fd], a +.asm_28ae3 + call Functiona57 + ld a, [$ffa9] + and a + jr z, .asm_28ae3 + bit 0, a + jr nz, .asm_28b0b + push af + ld a, $7f + ld [$c5fd], a + pop af + bit 6, a + jr z, .asm_28b03 + ld a, [OTPartyCount] + ld [$cfa9], a + jp Function28803 + +.asm_28b03 + ld a, $1 + ld [$cfa9], a + jp Function2888b + +.asm_28b0b + ld a, $ec + ld [$c5fd], a + ld a, $f + ld [$cf56], a + callba Function16d6ce + ld a, [$cf51] + cp $f + jr nz, .asm_28ade + +Function28b22: ; 28b22 + call Function4b6 + call Functionfdb + ld b, $8 + call GetSGBLayout + call Function3200 + xor a + ld [$cfbb], a + xor a + ld [rSB], a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret +; 28b42 + +INCBIN "baserom.gbc", $28b42, $28b68 - $28b42 + +Function28b68: ; 28b68 + ld a, [$cf51] + ld hl, $c55a + ld bc, $0014 + call AddNTimes + ld [hl], $ec + ret +; 28b77 + +Function28b77: ; 28b77 +.asm_28b77 + push bc + push hl +.asm_28b79 + ld [hli], a + dec c + jr nz, .asm_28b79 + pop hl + ld bc, $0014 + add hl, bc + pop bc + dec b + jr nz, .asm_28b77 + ret +; 28b87 + +Function28b87: ; 28b87 + xor a + ld [$cf57], a + ld [$cf52], a + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld a, [DefaultFlypoint] + ld hl, PartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, $d004 + ld bc, $000b + call CopyBytes + ld a, [$d003] + ld hl, OTPartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [$d265], a + call GetPokemonName + ld hl, $4eb8 + ld bc, $c5b9 + call Function13e5 + call Function1d6e + ld hl, $c536 + ld b, $3 + ld c, $7 + call Function28eef + ld de, $4eab + ld hl, $c54c + call PlaceString + ld a, $8 + ld [$cfa1], a + ld a, $b + ld [$cfa2], a + ld a, $1 + ld [$cfa4], a + ld a, $2 + ld [$cfa3], a + xor a + ld [$cfa5], a + ld [$cfa6], a + ld a, $20 + ld [$cfa7], a + ld a, $3 + ld [$cfa8], a + ld a, $1 + ld [$cfa9], a + ld [$cfaa], a + callba Function4d354 + call Function1bd3 + push af + call Function1d7d + call Function3200 + pop af + bit 1, a + jr nz, .asm_28c33 + ld a, [$cfa9] + dec a + jr z, .asm_28c54 + +.asm_28c33 + ld a, $1 + ld [$cf56], a + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + ld hl, $c5b9 + ld de, $4ece + call PlaceString + callba Function16d6ce + jp Function28ea3 + +.asm_28c54 + ld a, $2 + ld [$cf56], a + callba Function16d6ce + ld a, [$cf51] + dec a + jr nz, .asm_28c7b + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + ld hl, $c5b9 + ld de, $4ece + call PlaceString + jp Function28ea3 + +.asm_28c7b + ld hl, $a600 + ld a, [DefaultFlypoint] + ld bc, $002f + call AddNTimes + ld a, $0 + call GetSRAMBank + ld d, h + ld e, l + ld bc, $002f + add hl, bc + ld a, [DefaultFlypoint] + ld c, a +.asm_28c96 + inc c + ld a, c + cp $6 + jr z, .asm_28ca6 + push bc + ld bc, $002f + call CopyBytes + pop bc + jr .asm_28c96 + +.asm_28ca6 + ld hl, $a600 + ld a, [PartyCount] + dec a + ld bc, $002f + call AddNTimes + push hl + ld hl, $c9f4 + ld a, [$d003] + ld bc, $002f + call AddNTimes + pop de + ld bc, $002f + call CopyBytes + call CloseSRAM + ld hl, PlayerName + ld de, $c6e7 + ld bc, $000b + call CopyBytes + ld a, [DefaultFlypoint] + ld hl, PartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [PlayerSDefLevel], a + push af + ld a, [DefaultFlypoint] + ld hl, PartyMon1OT + call SkipNames + ld de, $c6f2 + ld bc, $000b + call CopyBytes + ld hl, PartyMon1ID + ld a, [DefaultFlypoint] + call GetPartyLocation + ld a, [hli] + ld [PlayerScreens], a + ld a, [hl] + ld [EnemyScreens], a + ld hl, PartyMon1DVs + ld a, [DefaultFlypoint] + call GetPartyLocation + ld a, [hli] + ld [$c6fd], a + ld a, [hl] + ld [$c6fe], a + ld a, [DefaultFlypoint] + ld hl, PartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba Function4f301 + ld a, c + ld [$c701], a + ld hl, $d26b + ld de, $c719 + ld bc, $000b + call CopyBytes + ld a, [$d003] + ld hl, OTPartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [PlayerLightScreenCount], a + ld a, [$d003] + ld hl, OTPartyMon1OT + call SkipNames + ld de, $c724 + ld bc, $000b + call CopyBytes + ld hl, OTPartyMon1ID + ld a, [$d003] + call GetPartyLocation + ld a, [hli] + ld [$c731], a + ld a, [hl] + ld [$c732], a + ld hl, OTPartyMon1AtkDefDV + ld a, [$d003] + call GetPartyLocation + ld a, [hli] + ld [$c72f], a + ld a, [hl] + ld [$c730], a + ld a, [$d003] + ld hl, OTPartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba Function4f301 + ld a, c + ld [$c733], a + ld a, [DefaultFlypoint] + ld [CurPartyMon], a + ld hl, PartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [DefaultFlypoint], a + xor a + ld [$d10b], a + callab Functione039 + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + ld a, $1 + ld [$d1e9], a + ld a, [$d003] + push af + ld hl, OTPartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [$d003], a + ld c, $64 + call DelayFrames + call ClearTileMap + call Functione58 + ld b, $8 + call GetSGBLayout + ld a, [$ffcb] + cp $1 + jr z, .asm_28de4 + ld a, $1e + call Predef + jr .asm_28de9 + +.asm_28de4 + ld a, $1d + call Predef + +.asm_28de9 + pop af + ld c, a + ld [CurPartyMon], a + ld hl, OTPartySpecies + ld d, $0 + ld e, a + add hl, de + ld a, [hl] + ld [CurPartySpecies], a + ld hl, OTPartyMon1Species + ld a, c + call GetPartyLocation + ld de, TempMonSpecies + ld bc, $0030 + call CopyBytes + ld a, $7 + call Predef + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + callab Function421d8 + call Functionfdb + call Function28ef8 + call Function28eff + callba Function4d354 + ld b, $1 + pop af + ld c, a + cp $97 + jr z, .asm_28e49 + ld a, [CurPartySpecies] + cp $97 + jr z, .asm_28e49 + ld b, $2 + ld a, c + cp $fb + jr z, .asm_28e49 + ld a, [CurPartySpecies] + cp $fb + jr z, .asm_28e49 + ld b, $0 + +.asm_28e49 + ld a, b + ld [$cf56], a + push bc + call Function862 + pop bc + ld a, [InLinkBattle] + cp $1 + jr z, .asm_28e63 + ld a, b + and a + jr z, .asm_28e63 + ld a, [$cf52] + cp b + jr nz, .asm_28e49 + +.asm_28e63 + callba Function14a58 + callba Function1060af + callba Function106187 + ld c, $28 + call DelayFrames + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + ld hl, $c5b9 + ld de, $4ebd + call PlaceString + callba Function4d354 + ld c, $32 + call DelayFrames + ld a, [InLinkBattle] + cp $1 + jp z, Function2805d + jp Function28177 +; 28ea3 + +Function28ea3: ; 28ea3 + ld c, $64 + call DelayFrames + jp Function287e3 +; 28eab + +INCBIN "baserom.gbc", $28eab, $28eef - $28eab + +Function28eef: ; 28eef + ld d, h + ld e, l + callba Function16d6ca + ret +; 28ef8 + +Function28ef8: ; 28ef8 + callba Function16d696 + ret +; 28eff + +Function28eff: ; 28eff + callba Function16d6a7 + call Function32f9 + ret +; 28f09 + +INCBIN "baserom.gbc", $28f09, $29bfb - $28f09 + +Function29bfb: ; 29bfb + ld hl, PartySpecies + ld b, $6 +.asm_29c00 + ld a, [hli] + cp $ff + jr z, .asm_29c0c + cp $98 + jr nc, .asm_29c42 + dec b + jr nz, .asm_29c00 + +.asm_29c0c + ld a, [PartyCount] + ld b, a + ld hl, PartyMon1Item +.asm_29c13 + push hl + push bc + ld d, [hl] + callba Functionb9e76 + pop bc + pop hl + jr c, .asm_29c5e + ld de, $0030 + add hl, de + dec b + jr nz, .asm_29c13 + ld hl, PartyMon1Move1 + ld a, [PartyCount] + ld b, a +.asm_29c2e + ld c, $4 +.asm_29c30 + ld a, [hli] + cp $a6 + jr nc, .asm_29c4c + dec c + jr nz, .asm_29c30 + ld de, $002c + add hl, de + dec b + jr nz, .asm_29c2e + xor a + jr .asm_29c63 + +.asm_29c42 + ld [$d265], a + call GetPokemonName + ld a, $1 + jr .asm_29c63 + +.asm_29c4c + push bc + ld [$d265], a + call GetMoveName + call CopyName1 + pop bc + call Function29c67 + ld a, $2 + jr .asm_29c63 + +.asm_29c5e + call Function29c67 + ld a, $3 + +.asm_29c63 + ld [ScriptVar], a + ret +; 29c67 + +Function29c67: ; 29c67 + ld a, [PartyCount] + sub b + ld c, a + inc c + ld b, $0 + ld hl, PartyCount + add hl, bc + ld a, [hl] + ld [$d265], a + call GetPokemonName + ret +; 29c7b + +Function29c7b: ; 29c7b + ld c, $a + call DelayFrames + ld a, $4 + call Function29f17 + ld c, $28 + call DelayFrames + xor a + ld [$ff9e], a + inc a + ld [InLinkBattle], a + ret +; 29c92 + +Function29c92: ; 29c92 + ld c, $3 + call DelayFrames + ld a, $ff + ld [$ffcb], a + xor a + ld [rSB], a + ld [hSerialReceive], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ld c, $3 + call DelayFrames + xor a + ld [rSB], a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + ld c, $3 + call DelayFrames + xor a + ld [rSB], a + ld [hSerialReceive], a + ld [rSC], a + ld c, $3 + call DelayFrames + ld a, $ff + ld [$ffcb], a + ld a, [rIF] + push af + xor a + ld [rIF], a + ld a, $f + ld [rIE], a + pop af + ld [rIF], a + ld hl, $cf5b + xor a + ld [hli], a + ld [hl], a + ld [$ff9e], a + ld [InLinkBattle], a + ret +; 29ce8 + +Function29ce8: ; 29ce8 + ld a, $1 + ld [$cf56], a + ld [$d265], a + ret +; 29cf1 + +Function29cf1: ; 29cf1 + ld a, $2 + ld [$cf56], a + ld [$d265], a + ret +; 29cfa + +Function29cfa: ; 29cfa + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + xor a + ld [$cf56], a + ld [$d265], a + ret +; 29d11 + +Function29d11: ; 29d11 + ld a, [$cf56] + and a + jr z, .asm_29d2f + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + call DelayFrame + call DelayFrame + call DelayFrame + +.asm_29d2f + ld a, $2 + ld [$cf5c], a + ld a, $ff + ld [$cf5b], a +.asm_29d39 + ld a, [$ffcb] + cp $2 + jr z, .asm_29d79 + cp $1 + jr z, .asm_29d79 + ld a, $ff + ld [$ffcb], a + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + ld a, [$cf5b] + dec a + ld [$cf5b], a + jr nz, .asm_29d68 + ld a, [$cf5c] + dec a + ld [$cf5c], a + jr z, .asm_29d8d + +.asm_29d68 + ld a, $1 + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + jr .asm_29d39 + +.asm_29d79 + call Function908 + call DelayFrame + call Function908 + ld c, $32 + call DelayFrames + ld a, $1 + ld [ScriptVar], a + ret + +.asm_29d8d + xor a + ld [ScriptVar], a + ret +; 29d92 + +Function29d92: ; 29d92 + ld a, $1 + ld [$cf56], a + ld hl, $cf5b + ld a, $3 + ld [hli], a + xor a + ld [hl], a + call WaitBGMap + ld a, $2 + ld [$ff9e], a + call DelayFrame + call DelayFrame + call Function29e0c + xor a + ld [$ff9e], a + ld a, [ScriptVar] + and a + ret nz + jp Function29f04 +; 29dba + +Function29dba: ; 29dba + ld a, $5 + ld [$cf56], a + ld hl, $cf5b + ld a, $3 + ld [hli], a + xor a + ld [hl], a + call WaitBGMap + ld a, $2 + ld [$ff9e], a + call DelayFrame + call DelayFrame + call Function29e0c + ld a, [ScriptVar] + and a + jr z, .asm_29e08 + ld bc, rIE +.asm_29de0 + dec bc + ld a, b + or c + jr nz, .asm_29de0 + ld a, [$cf51] + cp $5 + jr nz, .asm_29e03 + ld a, $6 + ld [$cf56], a + ld hl, $cf5b + ld a, $1 + ld [hli], a + ld [hl], $32 + call Function29e0c + ld a, [$cf51] + cp $6 + jr z, .asm_29e08 + +.asm_29e03 + xor a + ld [ScriptVar], a + ret + +.asm_29e08 + xor a + ld [$ff9e], a + ret +; 29e0c + +Function29e0c: ; 29e0c + xor a + ld [$ffca], a + ld a, [$cf5b] + ld h, a + ld a, [$cf5c] + ld l, a + push hl + call Function29e3b + pop hl + jr nz, .asm_29e2f + call Function29e47 + call Function29e53 + call Function29e3b + jr nz, .asm_29e2f + call Function29e47 + xor a + jr .asm_29e31 + +.asm_29e2f + ld a, $1 + +.asm_29e31 + ld [ScriptVar], a + ld hl, $cf5b + xor a + ld [hli], a + ld [hl], a + ret +; 29e3b + +Function29e3b: ; 29e3b + call Function87d + ld hl, $cf5b + ld a, [hli] + inc a + ret nz + ld a, [hl] + inc a + ret +; 29e47 + +Function29e47: ; 29e47 + ld b, $a +.asm_29e49 + call DelayFrame + call Function908 + dec b + jr nz, .asm_29e49 + ret +; 29e53 + +Function29e53: ; 29e53 + dec h + srl h + rr l + srl h + rr l + inc h + ld a, h + ld [$cf5b], a + ld a, l + ld [$cf5c], a + ret +; 29e66 + +Function29e66: ; 29e66 + ld a, [$d265] + push af + callba Function14ab2 + ld a, $1 + jr nc, .asm_29e75 + xor a + +.asm_29e75 + ld [ScriptVar], a + ld c, $1e + call DelayFrames + pop af + ld [$d265], a + ret +; 29e82 + +Function29e82: ; 29e82 + ld a, [$d265] + call Function29f17 + push af + call Function908 + call DelayFrame + call Function908 + pop af + ld b, a + ld a, [$d265] + cp b + jr nz, .asm_29eaa + ld a, [$d265] + inc a + ld [InLinkBattle], a + xor a + ld [$ff9e], a + ld a, $1 + ld [ScriptVar], a + ret + +.asm_29eaa + xor a + ld [ScriptVar], a + ret +; 29eaf + +Function29eaf: ; 29eaf + ld a, $1 + ld [InLinkBattle], a + call Function2ed3 + callab Function28000 + call Function2ee4 + xor a + ld [$ff9e], a + ret +; 29ec4 + +Function29ec4: ; 29ec4 + ld a, $2 + ld [InLinkBattle], a + call Function2ed3 + callab Function28000 + call Function2ee4 + xor a + ld [$ff9e], a + ret +; 29ed9 + +Function29ed9: ; 29ed9 + ld a, $3 + ld [InLinkBattle], a + call Function2ed3 + callab Function28000 + call Function2ee4 + xor a + ld [$ff9e], a + ret +; 29eee + +Function29eee: ; 29eee + xor a + ld [InLinkBattle], a + ld c, $3 + call DelayFrames + jp Function29f04 +; 29efa + +Function29efa: ; 29efa + ld c, $28 + call DelayFrames + ld a, $e + jp Function29f17 +; 29f04 + +Function29f04: ; 29f04 + ld c, $3 + call DelayFrames + ld a, $ff + ld [$ffcb], a + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld [rSC], a + ret +; 29f17 + +Function29f17: ; 29f17 + add $d0 + ld [$cf56], a + ld [$cf57], a + ld a, $2 + ld [$ff9e], a + call DelayFrame + call DelayFrame +.asm_29f29 + call Function83b + ld a, [$cf51] + ld b, a + and $f0 + cp $d0 + jr z, .asm_29f40 + ld a, [$cf52] + ld b, a + and $f0 + cp $d0 + jr nz, .asm_29f29 + +.asm_29f40 + xor a + ld [$ff9e], a + ld a, b + and $f + ret +; 29f47 + +Function29f47: ; 29f47 + ld a, [$ffcb] + cp $1 + ld a, $1 + jr z, .asm_29f50 + dec a + +.asm_29f50 + ld [ScriptVar], a + ret +; 29f54 + +INCBIN "baserom.gbc", $29f54, $2a0e7 - $29f54 Function2a0e7: ; 2a0e7 ; Try to trigger a wild encounter. @@ -32872,7 +37335,189 @@ Function2a4a0: ; 2a4a0 ret ; 2a4ab -INCBIN "baserom.gbc", $2a4ab, $2a5e9 - $2a4ab +Function2a4ab: ; 2a4ab + callba Function90439 + ld d, b + ld e, c + ld hl, WildMons1 + ld bc, $002f + call Function2a288 + jr c, .asm_2a4c6 + ld hl, WildMons3 + call Function2a288 + jr nc, .asm_2a514 + +.asm_2a4c6 + push hl + ld bc, $000d + add hl, bc + ld a, [TimeOfDay] + ld bc, $000e + call AddNTimes +.asm_2a4d4 + call Random + and $3 + jr z, .asm_2a4d4 + dec a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + inc hl + ld c, [hl] + pop hl + ld de, $0005 + add hl, de + inc hl + ld b, $4 +.asm_2a4eb + ld a, [hli] + cp c + jr z, .asm_2a514 + inc hl + dec b + jr nz, .asm_2a4eb + push bc + dec c + ld a, c + call CheckCaughtMon + pop bc + jr nz, .asm_2a514 + ld de, StringBuffer1 + call CopyName1 + ld a, c + ld [$d265], a + call GetPokemonName + ld hl, $651a + call PrintText + xor a + ld [ScriptVar], a + ret + +.asm_2a514 + ld a, $1 + ld [ScriptVar], a + ret +; 2a51a + +INCBIN "baserom.gbc", $2a51a, $2a51f - $2a51a + +Function2a51f: ; 2a51f + callba Function90439 + ld d, b + ld e, c + ld hl, WildMons1 + ld bc, $002f + call Function2a288 + jr c, .asm_2a538 + ld hl, WildMons3 + call Function2a288 + +.asm_2a538 + ld bc, $0005 + add hl, bc + ld a, [TimeOfDay] + inc a + ld bc, $000e +.asm_2a543 + dec a + jr z, .asm_2a549 + add hl, bc + jr .asm_2a543 + +.asm_2a549 + call Random + and $3 + ld c, a + ld b, $0 + add hl, bc + add hl, bc + inc hl + ld a, [hl] + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, StringBuffer4 + ld bc, $000b + jp CopyBytes +; 2a567 + +Function2a567: ; 2a567 + callba Function90439 + ld hl, $5999 + ld a, d + dec a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, $e + call GetFarHalfword +.asm_2a57c + dec e + jr z, .asm_2a58b +.asm_2a57f + ld a, $e + call GetFarByte + inc hl + cp $ff + jr nz, .asm_2a57f + jr .asm_2a57c + +.asm_2a58b + ld a, $e + call GetFarByte + inc hl + cp $50 + jr nz, .asm_2a58b + ld a, $e + call GetFarByte + inc hl + ld bc, $0002 + cp $0 + jr z, .asm_2a5b3 + ld bc, $0006 + cp $1 + jr z, .asm_2a5b3 + ld bc, $0003 + cp $2 + jr z, .asm_2a5b3 + ld bc, $0007 + +.asm_2a5b3 + ld e, $0 + push hl +.asm_2a5b6 + inc e + add hl, bc + ld a, $e + call GetFarByte + cp $ff + jr nz, .asm_2a5b6 + pop hl +.asm_2a5c2 + call Random + and $7 + cp e + jr nc, .asm_2a5c2 + inc a +.asm_2a5cb + dec a + jr z, .asm_2a5d1 + add hl, bc + jr .asm_2a5cb + +.asm_2a5d1 + inc hl + ld a, $e + call GetFarByte + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, StringBuffer4 + ld bc, $000b + jp CopyBytes +; 2a5e9 WildMons1: ; 0x2a5e9 @@ -33418,7 +38063,131 @@ TrainerClassNames: ; 2c1ef db "MYSTICALMAN@" -INCBIN "baserom.gbc", $2c41a, $2c7fb - $2c41a +INCBIN "baserom.gbc", $2c41a, $2c547 - $2c41a + +Function2c547: ; 2c547 + ld hl, $45ef + call PrintText + call Function1dcf + jr c, .asm_2c5c3 + ld hl, $45f4 + call PrintText + callba Function50000 + jr c, .asm_2c5c3 + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_2c5bc + ld a, [CurPartyMon] + ld hl, PartyMon1Move2 + ld bc, $0030 + call AddNTimes + ld a, [hl] + and a + jr z, .asm_2c5ca + ld hl, $45ea + call PrintText + call Function1d6e + callba Function12f5b + push af + call Function2b74 + pop af + jr c, .asm_2c5c3 + ld a, [$cfa9] + push af + ld a, [CurSpecies] + ld [$d265], a + call GetMoveName + ld hl, $45d6 + call PrintText + call Function1dcf + pop bc + jr c, .asm_2c5c3 + call Function2c5f9 + call WaitSFX + ld de, $0097 + call StartSFX + call WaitSFX + ld hl, $45db + call PrintText + ret + +.asm_2c5bc + ld hl, $45e0 + call PrintText + ret + +.asm_2c5c3 + ld hl, $45e5 + call PrintText + ret + +.asm_2c5ca + ld hl, $45d1 + call PrintText + ret +; 2c5d1 + +INCBIN "baserom.gbc", $2c5d1, $2c5f9 - $2c5d1 + +Function2c5f9: ; 2c5f9 + ld a, b + push bc + dec a + ld c, a + ld b, $0 + ld hl, PartyMon1Move1 + add hl, bc + ld a, [CurPartyMon] + ld bc, $0030 + call AddNTimes + pop bc + push bc + inc b +.asm_2c60f + ld a, b + cp $5 + jr z, .asm_2c61b + inc hl + ld a, [hld] + ld [hl], a + inc hl + inc b + jr .asm_2c60f + +.asm_2c61b + xor a + ld [hl], a + pop bc + ld a, b + push bc + dec a + ld c, a + ld b, $0 + ld hl, PartyMon1PP + add hl, bc + ld a, [CurPartyMon] + ld bc, $0030 + call AddNTimes + pop bc + inc b +.asm_2c633 + ld a, b + cp $5 + jr z, .asm_2c63f + inc hl + ld a, [hld] + ld [hl], a + inc hl + inc b + jr .asm_2c633 + +.asm_2c63f + xor a + ld [hl], a + ret +; 2c642 + +INCBIN "baserom.gbc", $2c642, $2c7fb - $2c642 Function2c7fb: ; 2c7fb @@ -44634,7 +49403,44 @@ Function40bdc: ; 40bdc jp [hl] ; 40bf0 -INCBIN "baserom.gbc", $40bf0, $40c65 - $40bf0 +INCBIN "baserom.gbc", $40bf0, $40c30 - $40bf0 + +Function40c30: ; 40c30 + xor a + ld [$c7d2], a + ld hl, PlayerSDefLevel + ld de, AlphabeticalPokedexOrder + ld c, $fb +.asm_40c3c + push bc + ld a, [de] + ld [$d265], a + call Function40bd0 + jr z, .asm_40c51 + ld a, [$d265] + ld [hli], a + ld a, [$c7d2] + inc a + ld [$c7d2], a + +.asm_40c51 + inc de + pop bc + dec c + jr nz, .asm_40c3c + ld a, [$c7d2] + ld c, $0 +.asm_40c5b + cp $fb + jr z, .asm_40c64 + ld [hl], c + inc hl + inc a + jr .asm_40c5b + +.asm_40c64 + ret +; 40c65 AlphabeticalPokedexOrder: ; 0x40c65 INCLUDE "stats/pokedex/order_alpha.asm" @@ -46749,7 +51555,26 @@ Function492b9: ; 492b9 ret ; 4930a -INCBIN "baserom.gbc", $4930a, $49409 - $4930a +INCBIN "baserom.gbc", $4930a, $49336 - $4930a + +Function49336: ; 49336 +.asm_49336 + push bc + push hl +.asm_49338 + ld [hli], a + dec c + jr nz, .asm_49338 + pop hl + ld bc, $0014 + add hl, bc + pop bc + dec b + jr nz, .asm_49336 + ret +; 49346 + +INCBIN "baserom.gbc", $49346, $49409 - $49346 Function49409: ; 49409 @@ -46761,7 +51586,177 @@ Function49409: ; 49409 ret ; 49418 -INCBIN "baserom.gbc", $49418, $49962 - $49418 +INCBIN "baserom.gbc", $49418, $49797 - $49418 + +Function49797: ; 49797 + ld hl, AttrMap + ld bc, $1002 + ld a, $4 + call Function49336 + ld a, $3 + ld [$cded], a + ld [$cef1], a + ld hl, $cddb + ld bc, $0812 + ld a, $5 + call Function49336 + ld hl, $ce7b + ld bc, $0812 + ld a, $6 + call Function49336 + ld hl, $cf19 + ld bc, $0214 + ld a, $4 + call Function49336 + ld a, $3 + ld bc, $0601 + ld hl, $cdf3 + call Function49336 + ld a, $3 + ld bc, $0601 + ld hl, $cdfe + call Function49336 + ld a, $3 + ld bc, $0601 + ld hl, $ce93 + call Function49336 + ld a, $3 + ld bc, $0601 + ld hl, $ce9e + call Function49336 + ld a, $2 + ld hl, $cf1b + ld [hli], a + ld a, $7 + ld [hli], a + ld [hli], a + ld [hli], a + ld a, $2 + ld [hl], a + ld hl, $cf2f + ld a, $3 + ld bc, $0006 + call ByteFill + ret +; 49811 + +Function49811: ; 49811 + ld hl, $5826 + ld de, $d010 + ld bc, $0030 + ld a, $5 + call Function306b + callba Function96a4 + ret +; 49826 + +INCBIN "baserom.gbc", $49826, $49856 - $49826 + +Function49856: ; 49856 + call Function49797 + ret +; 4985a + +INCBIN "baserom.gbc", $4985a, $4989a - $4985a + +Function4989a: ; 4989a + call DelayFrame + ld a, [VramState] + push af + xor a + ld [VramState], a + call Function49912 + ld de, $0750 + ld a, $2c + call Function3b2a + ld hl, $0003 + add hl, bc + ld [hl], $84 + ld hl, $0002 + add hl, bc + ld [hl], $1f + ld hl, $000f + add hl, bc + ld a, $80 + ld [hl], a + ld a, $a0 + ld [$cf64], a + ld d, $0 +.asm_498ca + ld a, [$cf63] + bit 7, a + jr nz, .asm_498ee + push bc + call Function49bae + inc d + push de + ld a, $90 + ld [$c3b5], a + callba Function8cf7a + call Function49935 + ld c, $2 + call DelayFrames + pop de + pop bc + jr .asm_498ca + +.asm_498ee + pop af + ld [VramState], a + call Function498f9 + call Function49bf3 + ret +; 498f9 + +Function498f9: ; 498f9 + ld hl, $c402 + xor a + ld c, $4 +.asm_498ff + ld [hli], a + inc hl + inc hl + inc hl + inc a + dec c + jr nz, .asm_498ff + ld hl, $c410 + ld bc, $0090 + xor a + call ByteFill + ret +; 49912 + +Function49912: ; 49912 + callba Function8cf53 + ld de, $5962 + ld hl, VTiles1 + ld bc, $1204 + call Request2bpp + ld de, $59a2 + ld hl, $8840 + ld bc, $1210 + call Request2bpp + xor a + ld [$cf63], a + ret +; 49935 + +Function49935: ; 49935 + ld hl, $cf64 + ld a, [hl] + and a + jr z, .asm_4993e + dec [hl] + ret + +.asm_4993e + ld hl, $cf63 + set 7, [hl] + ret +; 49944 + +INCBIN "baserom.gbc", $49944, $49962 - $49944 SpecialCelebiGFX: INCBIN "gfx/special/celebi/leaf.2bpp" @@ -46770,7 +51765,95 @@ INCBIN "gfx/special/celebi/2.2bpp" INCBIN "gfx/special/celebi/3.2bpp" INCBIN "gfx/special/celebi/4.2bpp" -INCBIN "baserom.gbc", $49aa2, $49cdc - $49aa2 +INCBIN "baserom.gbc", $49aa2, $49bae - $49aa2 + +Function49bae: ; 49bae + push hl + push bc + push de + ld a, d + ld d, $3 + ld e, d + cp $0 + jr z, .asm_49bd0 + cp d + jr z, .asm_49bd4 + call Function49bed + cp d + jr z, .asm_49bd8 + call Function49bed + cp d + jr z, .asm_49bdc + call Function49bed + cp d + jr c, .asm_49be9 + jr .asm_49be5 + +.asm_49bd0 + ld a, $84 + jr .asm_49bde + +.asm_49bd4 + ld a, $88 + jr .asm_49bde + +.asm_49bd8 + ld a, $8c + jr .asm_49bde + +.asm_49bdc + ld a, $90 + +.asm_49bde + ld hl, $0003 + add hl, bc + ld [hl], a + jr .asm_49be9 + +.asm_49be5 + pop de + ld d, $ff + push de + +.asm_49be9 + pop de + pop bc + pop hl + ret +; 49bed + +Function49bed: ; 49bed + push af + ld a, d + add e + ld d, a + pop af + ret +; 49bf3 + +Function49bf3: ; 49bf3 + ld a, $b + ld [BattleType], a + ret +; 49bf9 + +Function49bf9: ; 49bf9 + ld a, [$d0ee] + bit 6, a + jr z, .asm_49c07 + ld a, $1 + ld [ScriptVar], a + jr .asm_49c0b + +.asm_49c07 + xor a + ld [ScriptVar], a + +.asm_49c0b + ret +; 49c0c + +INCBIN "baserom.gbc", $49c0c, $49cdc - $49c0c MainMenu: ; 49cdc xor a @@ -47560,7 +52643,800 @@ UpdateOTPointer: ; 0x4a83a ret ; 0x4a843 -INCBIN "baserom.gbc", $4a843, $4ae78 - $4a843 +INCBIN "baserom.gbc", $4a843, $4a927 - $4a843 + +Function4a927: ; 4a927 + ld a, [ScriptVar] + ld [CurItem], a + ld hl, PCItems + call PickUpItem + jr c, .asm_4a948 + ld a, [ScriptVar] + ld [CurItem], a + ld hl, NumItems + call PickUpItem + jr c, .asm_4a948 + xor a + ld [ScriptVar], a + ret + +.asm_4a948 + ld a, $1 + ld [ScriptVar], a + ret +; 4a94e + +Function4a94e: ; 4a94e + call FadeToMenu + ld a, $ff + ld hl, DefaultFlypoint + ld bc, $0003 + call ByteFill + xor a + ld [$d018], a + ld [$d019], a + ld b, $14 + call GetSGBLayout + call Function32f9 + call Function4aa22 + jr c, .asm_4a985 + jr z, .asm_4a9a1 + jr .asm_4a97b + +.asm_4a974 + call Function4aa25 + jr c, .asm_4a985 + jr z, .asm_4a9a1 + +.asm_4a97b + call Function4ac58 + ld hl, $d019 + res 1, [hl] + jr .asm_4a974 + +.asm_4a985 + ld a, [$d018] + and a + jr nz, .asm_4a990 + call Function4aba8 + jr c, .asm_4a974 + +.asm_4a990 + call Function2b3c + ld hl, DefaultFlypoint + ld a, $ff + ld bc, $0003 + call ByteFill + scf + jr .asm_4a9af + +.asm_4a9a1 + call Function4a9c3 + jr c, .asm_4a9b0 + call Function4a9d7 + jr c, .asm_4a974 + call Function2b3c + and a + +.asm_4a9af + ret + +.asm_4a9b0 + ld de, $0019 + call StartSFX + ld hl, $69be + call PrintText + jr .asm_4a974 +; 4a9be + +INCBIN "baserom.gbc", $4a9be, $4a9c3 - $4a9be + +Function4a9c3: ; 4a9c3 + ld hl, DefaultFlypoint + ld a, $ff + cp [hl] + jr z, .asm_4a9d5 + inc hl + cp [hl] + jr z, .asm_4a9d5 + inc hl + cp [hl] + jr z, .asm_4a9d5 + and a + ret + +.asm_4a9d5 + scf + ret +; 4a9d7 + +Function4a9d7: ; 4a9d7 + ld a, [DefaultFlypoint] + ld hl, PartyMon1Nickname + call GetNick + ld h, d + ld l, e + ld de, EndFlypoint + ld bc, $0006 + call CopyBytes + ld a, [$d003] + ld hl, PartyMon1Nickname + call GetNick + ld h, d + ld l, e + ld de, $d00c + ld bc, $0006 + call CopyBytes + ld a, [$d004] + ld hl, PartyMon1Nickname + call GetNick + ld h, d + ld l, e + ld de, $d012 + ld bc, $0006 + call CopyBytes + ld hl, $6a1d + call PrintText + call Function1dcf + ret +; 4aa1d + +INCBIN "baserom.gbc", $4aa1d, $4aa22 - $4aa1d + +Function4aa22: ; 4aa22 + call WhiteBGMap + +Function4aa25: ; 4aa25 + callba Function5004f + callba Function50405 + call Function4aad3 + ld a, $9 + ld [PartyMenuActionText], a + callba WritePartyMenuTilemap + xor a + ld [PartyMenuActionText], a + callba PrintPartyMenuText + call Function4aab6 + call WaitBGMap + call Function32f9 + call DelayFrame + call Function4ab1a + jr z, .asm_4aa66 + push af + call Function4aafb + jr c, .asm_4aa67 + call Function4ab06 + jr c, .asm_4aa67 + pop af + +.asm_4aa66 + ret + +.asm_4aa67 + ld hl, $d019 + set 1, [hl] + pop af + ret +; 4aa6e + +INCBIN "baserom.gbc", $4aa6e, $4aa7a - $4aa6e + +Function4aa7a: ; 4aa7a + ld hl, DefaultFlypoint + ld d, $3 +.asm_4aa7f + ld e, $6 + ld a, [hli] + push de + push hl + cp $ff + jr z, .asm_4aab3 + ld hl, $c314 + inc a + ld d, a +.asm_4aa8d + ld a, [hl] + and a + jr z, .asm_4aaa5 + cp d + jr z, .asm_4aa9a + jr .asm_4aaa5 + + ld a, $3 + jr .asm_4aa9c + +.asm_4aa9a + ld a, $2 + +.asm_4aa9c + push hl + ld c, l + ld b, h + ld hl, $0002 + add hl, bc + ld [hl], a + pop hl + +.asm_4aaa5 + ld bc, $0010 + add hl, bc + dec e + jr nz, .asm_4aa8d + pop hl + pop de + dec d + jr nz, .asm_4aa7f + jr .asm_4aab5 + +.asm_4aab3 + pop hl + pop de + +.asm_4aab5 + ret +; 4aab6 + +Function4aab6: ; 4aab6 + ld hl, DefaultFlypoint + ld d, $3 +.asm_4aabb + ld a, [hli] + cp $ff + jr z, .asm_4aad2 + push de + push hl + ld hl, $c4b4 + ld bc, $0028 + call AddNTimes + ld [hl], $ec + pop hl + pop de + dec d + jr nz, .asm_4aabb + +.asm_4aad2 + ret +; 4aad3 + +Function4aad3: ; 4aad3 + ld hl, PartyCount + ld a, [hli] + and a + ret z + ld c, a + xor a + ld [hConnectedMapWidth], a +.asm_4aadd + push bc + push hl + ld e, $0 + callba Function8e83f + ld a, [hConnectedMapWidth] + inc a + ld [hConnectedMapWidth], a + pop hl + pop bc + dec c + jr nz, .asm_4aadd + call Function4aa7a + callba Function8cf69 + ret +; 4aafb + +Function4aafb: ; 4aafb + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_4ab04 + and a + ret + +.asm_4ab04 + scf + ret +; 4ab06 + +Function4ab06: ; 4ab06 + ld a, [CurPartyMon] + ld bc, $0030 + ld hl, PartyMon1CurHP + call AddNTimes + ld a, [hli] + ld b, a + ld a, [hl] + or b + jr nz, .asm_4ab19 + scf + +.asm_4ab19 + ret +; 4ab1a + +Function4ab1a: ; 4ab1a +.asm_4ab1a + ld a, $fb + ld [$cfa8], a + ld a, $26 + ld [$cfa7], a + ld a, $2 + ld [$cfa4], a + call Function4adf7 + call Function1bc9 + call Function4abc3 + jr c, .asm_4ab1a + push af + call Function4ab99 + call nc, Function1bee + pop af + bit 1, a + jr nz, .asm_4ab6d + ld a, [PartyCount] + inc a + ld b, a + ld a, [$cfa9] + ld [$d0d8], a + cp b + jr z, .asm_4ab7e + ld a, [$cfa9] + dec a + ld [CurPartyMon], a + ld c, a + ld b, $0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + ld [CurPartySpecies], a + ld de, $0008 + call StartSFX + call WaitSFX + ld a, $1 + and a + ret + +.asm_4ab6d + ld a, [$cfa9] + ld [$d0d8], a +.asm_4ab73 + ld de, $0008 + call StartSFX + call WaitSFX + scf + ret + +.asm_4ab7e + ld a, $1 + ld [$d018], a + ld a, [$cfaa] + cp $2 + jr z, .asm_4ab73 + ld de, $0008 + call StartSFX + call WaitSFX + xor a + ld [$d018], a + and a + ret +; 4ab99 + +Function4ab99: ; 4ab99 + bit 1, a + jr z, .asm_4aba6 + ld a, [DefaultFlypoint] + cp $ff + jr z, .asm_4aba6 + scf + ret + +.asm_4aba6 + and a + ret +; 4aba8 + +Function4aba8: ; 4aba8 + ld hl, $d004 + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + dec hl + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + dec hl + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + and a + ret + +.asm_4abbe + ld a, $ff + ld [hl], a + scf + ret +; 4abc3 + +Function4abc3: ; 4abc3 + bit 3, a + jr z, .asm_4abd5 + ld a, [PartyCount] + inc a + ld [$cfa9], a + ld a, $1 + ld [$cfaa], a + jr .asm_4ac29 + +.asm_4abd5 + bit 6, a + jr z, .asm_4abeb + ld a, [$cfa9] + ld [$cfa9], a + and a + jr nz, .asm_4ac29 + ld a, [PartyCount] + inc a + ld [$cfa9], a + jr .asm_4ac29 + +.asm_4abeb + bit 7, a + jr z, .asm_4ac08 + ld a, [$cfa9] + ld [$cfa9], a + ld a, [PartyCount] + inc a + inc a + ld b, a + ld a, [$cfa9] + cp b + jr nz, .asm_4ac29 + ld a, $1 + ld [$cfa9], a + jr .asm_4ac29 + +.asm_4ac08 + bit 4, a + jr nz, .asm_4ac10 + bit 5, a + jr z, .asm_4ac56 + +.asm_4ac10 + ld a, [$cfa9] + ld b, a + ld a, [PartyCount] + inc a + cp b + jr nz, .asm_4ac29 + ld a, [$cfaa] + cp $1 + jr z, .asm_4ac26 + ld a, $1 + jr .asm_4ac29 + +.asm_4ac26 + ld [$cfaa], a + +.asm_4ac29 + ld hl, $c4b4 + ld bc, $0d01 + call ClearBox + call Function4aab6 + ld a, [PartyCount] + ld hl, $c4ba +.asm_4ac3b + ld bc, $0028 + add hl, bc + dec a + jr nz, .asm_4ac3b + ld [hl], $7f + ld a, [$cfa9] + ld b, a + ld a, [PartyCount] + inc a + cp b + jr z, .asm_4ac54 + ld a, $1 + ld [$cfaa], a + +.asm_4ac54 + scf + ret + +.asm_4ac56 + and a + ret +; 4ac58 + +Function4ac58: ; 4ac58 + ld bc, $0212 + ld hl, $c5cd + call ClearBox + callba Function8ea4a + ld hl, $6ca2 + call LoadMenuDataHeader + ld hl, $d019 + bit 1, [hl] + jr z, .asm_4ac89 + ld hl, $c5af + ld b, $3 + ld c, $7 + call TextBox + ld hl, $c5c5 + ld de, $6da7 + call PlaceString + jr .asm_4ac96 + +.asm_4ac89 + ld hl, $c55f + ld b, $7 + ld c, $7 + call TextBox + call Function4ad68 + +.asm_4ac96 + ld a, $1 + ld [hBGMapMode], a + call Function4acaa + call Function1c07 + and a + ret +; 4aca2 + +INCBIN "baserom.gbc", $4aca2, $4acaa - $4aca2 + +Function4acaa: ; 4acaa +.asm_4acaa + ld a, $a0 + ld [$cf91], a + ld a, [$d019] + bit 1, a + jr z, .asm_4acc2 + ld a, $2 + ld [$cf92], a + ld a, $c + ld [$cf82], a + jr .asm_4accc + +.asm_4acc2 + ld a, $4 + ld [$cf92], a + ld a, $8 + ld [$cf82], a + +.asm_4accc + ld a, $b + ld [$cf83], a + ld a, $1 + ld [$cf88], a + call Function1c10 + ld hl, $cfa5 + set 6, [hl] + call Function1bc9 + ld de, $0008 + call StartSFX + ld a, [hJoyPressed] + bit 0, a + jr nz, .asm_4acf4 + bit 1, a + jr nz, .asm_4acf3 + jr .asm_4acaa + +.asm_4acf3 + ret + +.asm_4acf4 + ld a, [$d019] + bit 1, a + jr nz, .asm_4ad0e + ld a, [$cfa9] + cp $1 + jr z, Function4ad17 + cp $2 + jp z, Function4ad56 + cp $3 + jp z, Function4ad60 + jr .asm_4acf3 + +.asm_4ad0e + ld a, [$cfa9] + cp $1 + jr z, Function4ad56 + jr .asm_4acf3 + +Function4ad17: ; 4ad17 + call Function4adb2 + jr z, .asm_4ad4a + ld hl, DefaultFlypoint + ld a, $ff + cp [hl] + jr z, .asm_4ad39 + inc hl + cp [hl] + jr z, .asm_4ad39 + inc hl + cp [hl] + jr z, .asm_4ad39 + ld de, $0019 + call WaitPlaySFX + ld hl, UnknownText_0x4ad51 + call PrintText + ret + +.asm_4ad39 + ld a, [CurPartyMon] + ld [hl], a + call Function4a9c3 + ret c + ld a, [$d019] + set 0, a + ld [$d019], a + ret + +.asm_4ad4a + ld a, $ff + ld [hl], a + call Function4adc2 + ret + +UnknownText_0x4ad51: ; 0x4ad51 + ; Only three #MON may enter. + text_jump UnknownText_0x1c521c, BANK(UnknownText_0x1c521c) + db "@" +; 0x4ad56 + +Function4ad56: ; 4ad56 + callba OpenPartyStats + call Function3200 + ret +; 4ad60 + +Function4ad60: ; 4ad60 + callba Function12fba + ret +; 4ad67 + +INCBIN "baserom.gbc", $4ad67, $4ad68 - $4ad67 + +Function4ad68: ; 4ad68 + ld hl, $c59d + ld de, $6d88 + call PlaceString + call Function4adb2 + jr c, .asm_4ad7e + ld hl, $c575 + ld de, $6da0 + jr .asm_4ad84 + +.asm_4ad7e + ld hl, $c575 + ld de, $6d9a + +.asm_4ad84 + call PlaceString + ret +; 4ad88 + +INCBIN "baserom.gbc", $4ad88, $4adb2 - $4ad88 + +Function4adb2: ; 4adb2 + ld hl, DefaultFlypoint + ld a, [CurPartyMon] + cp [hl] + ret z + inc hl + cp [hl] + ret z + inc hl + cp [hl] + ret z + scf + ret +; 4adc2 + +Function4adc2: ; 4adc2 + ld a, [DefaultFlypoint] + cp $ff + jr nz, .asm_4ade5 + ld a, [$d003] + cp $ff + jr nz, .asm_4addd + ld a, [$d004] + ld [DefaultFlypoint], a + ld a, $ff + ld [$d004], a + jr .asm_4ade5 + +.asm_4addd + ld [DefaultFlypoint], a + ld a, $ff + ld [$d003], a + +.asm_4ade5 + ld a, [$d003] + cp $ff + ret nz + ld b, a + ld a, [$d004] + ld [$d003], a + ld a, b + ld [$d004], a + ret +; 4adf7 + +Function4adf7: ; 4adf7 + ld a, [$d019] + bit 0, a + ret z + ld a, [PartyCount] + inc a + ld [$cfa9], a + ld a, $1 + ld [$cfaa], a + ld a, [$d019] + res 0, a + ld [$d019], a + ret +; 4ae12 + +Function4ae12: ; 4ae12 + call Function4ae1f + ld a, $0 + jr c, .asm_4ae1b + ld a, $1 + +.asm_4ae1b + ld [ScriptVar], a + ret +; 4ae1f + +Function4ae1f: ; 4ae1f + ld bc, $0e07 + push bc + ld hl, MenuDataHeader_0x1e1d + call Function1d3c + pop bc + ld a, b + ld [$cf83], a + add $5 + ld [$cf85], a + ld a, c + ld [$cf82], a + add $4 + ld [$cf84], a + call Function1c00 + call Function1d81 + push af + ld c, $f + call DelayFrames + call Function4ae5e + pop af + jr c, .asm_4ae57 + ld a, [$cfa9] + cp $2 + jr z, .asm_4ae57 + and a + ret + +.asm_4ae57 + ld a, $2 + ld [$cfa9], a + scf + ret +; 4ae5e + +Function4ae5e: ; 4ae5e + ld a, [hOAMUpdate] + push af + call Function1c07 + call Function1ad2 + xor a + ld [hOAMUpdate], a + call DelayFrame + ld a, $1 + ld [hOAMUpdate], a + call Function321c + pop af + ld [hOAMUpdate], a + ret +; 4ae78 SECTION "bank13",ROMX,BANK[$13] @@ -47945,7 +53821,34 @@ Function4d1cb: ; 4d1cb ret ; 4d249 -INCBIN "baserom.gbc", $4d249, $4d35b - $4d249 +INCBIN "baserom.gbc", $4d249, $4d319 - $4d249 + +Function4d319: ; 4d319 + ld a, [$cfa9] + dec a + ld [CurPartyMon], a + call LowVolume + ld a, $25 + call Predef + ld a, [CurPartyMon] + inc a + ld [$cfa9], a + call Functionfdb + call WhiteBGMap + call MaxVolume + callba Function28ef8 + callba Function4d354 + callba Function16d673 + callba Function28eff + call Function3200 + ret +; 4d354 + +Function4d354: ; 4d354 + call WaitBGMap + call Function3200 + ret +; 4d35b Function4d35b: ; 4d35b @@ -48322,7 +54225,365 @@ CheckPokerus: ; 4d860 ret ; 4d87a -INCBIN "baserom.gbc", $4d87a, $4db3b - $4d87a +Function4d87a: ; 4d87a + xor a + ld [ScriptVar], a + ld [$d265], a + ld a, [PartyCount] + and a + ret z + ld d, a + ld hl, PartyMon1ID + ld bc, PartySpecies +.asm_4d88d + ld a, [bc] + inc bc + cp $fd + call nz, Function4d939 + push bc + ld bc, $0030 + add hl, bc + pop bc + dec d + jr nz, .asm_4d88d + ld a, $1 + call GetSRAMBank + ld a, [BoxCount] + and a + jr z, .asm_4d8c8 + ld d, a + ld hl, BoxMon1ID + ld bc, BoxSpecies +.asm_4d8af + ld a, [bc] + inc bc + cp $fd + jr z, .asm_4d8bf + call Function4d939 + jr nc, .asm_4d8bf + ld a, $1 + ld [$d265], a + +.asm_4d8bf + push bc + ld bc, $0020 + add hl, bc + pop bc + dec d + jr nz, .asm_4d8af + +.asm_4d8c8 + call CloseSRAM + ld c, $0 +.asm_4d8cd + ld a, [$db72] + and $f + cp c + jr z, .asm_4d90b + ld hl, $599f + ld b, $0 + add hl, bc + add hl, bc + add hl, bc + ld a, [hli] + call GetSRAMBank + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + and a + jr z, .asm_4d90b + push bc + ld b, h + ld c, l + inc bc + ld de, $001c + add hl, de + ld d, a +.asm_4d8f1 + ld a, [bc] + inc bc + cp $fd + jr z, .asm_4d901 + call Function4d939 + jr nc, .asm_4d901 + ld a, $1 + ld [$d265], a + +.asm_4d901 + push bc + ld bc, $0020 + add hl, bc + pop bc + dec d + jr nz, .asm_4d8f1 + pop bc + +.asm_4d90b + inc c + ld a, c + cp $e + jr c, .asm_4d8cd + call CloseSRAM + ld a, [ScriptVar] + and a + ret z + callba Function1060cd + ld a, [$d265] + and a + push af + ld a, [CurPartySpecies] + ld [$d265], a + call GetPokemonName + ld hl, $59c9 + pop af + jr z, .asm_4d936 + ld hl, $59ce + +.asm_4d936 + jp PrintText +; 4d939 + +Function4d939: ; 4d939 + push bc + push de + push hl + ld d, h + ld e, l + ld hl, Buffer1 + ld bc, $8205 + call PrintNum + ld hl, DefaultFlypoint + ld de, $dc9f + ld bc, $8205 + call PrintNum + ld b, $5 + ld c, $0 + ld hl, EndFlypoint + ld de, $d1ee +.asm_4d95d + ld a, [de] + cp [hl] + jr nz, .asm_4d967 + dec de + dec hl + inc c + dec b + jr nz, .asm_4d95d + +.asm_4d967 + pop hl + push hl + ld de, $fffa + add hl, de + ld a, [hl] + pop hl + pop de + push af + ld a, c + ld b, $1 + cp $5 + jr z, .asm_4d984 + ld b, $2 + cp $3 + jr nc, .asm_4d984 + ld b, $3 + cp $2 + jr nz, .asm_4d99b + +.asm_4d984 + inc b + ld a, [ScriptVar] + and a + jr z, .asm_4d98e + cp b + jr c, .asm_4d99b + +.asm_4d98e + dec b + ld a, b + ld [ScriptVar], a + pop bc + ld a, b + ld [CurPartySpecies], a + pop bc + scf + ret + +.asm_4d99b + pop bc + pop bc + and a + ret +; 4d99f + +INCBIN "baserom.gbc", $4d99f, $4d9d3 - $4d99f + +Function4d9d3: ; 4d9d3 + ld hl, StringBuffer3 + ld de, $dc9f + ld bc, $8205 + call PrintNum + ld a, $50 + ld [$d09e], a + ret +; 4d9e5 + +Function4d9e5: ; 4d9e5 + ld a, [$df9c] + and a + jp z, Function4db35 + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + ld hl, PartyCount + ld a, [hl] + cp $6 + jp nc, Function4daa3 + inc a + ld [hl], a + ld c, a + ld b, $0 + add hl, bc + ld a, [$df9c] + ld [hli], a + ld [CurSpecies], a + ld a, $ff + ld [hl], a + ld hl, PartyMon1Species + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + ld hl, $df9c + ld bc, $0030 + call CopyBytes + ld a, [PartyCount] + dec a + ld hl, PartyMon1OT + call SkipNames + ld d, h + ld e, l + ld hl, PlayerName + call CopyBytes + ld a, [CurPartySpecies] + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, $d050 + ld bc, $000b + call CopyBytes + call Function4db3b + jr c, .asm_4da66 + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + xor a + ld [MonType], a + ld de, $d050 + callab Functione3de + +.asm_4da66 + ld a, [PartyCount] + dec a + ld hl, PartyMon1Nickname + call SkipNames + ld d, h + ld e, l + ld hl, $d050 + call CopyBytes + ld a, [PartyCount] + dec a + ld hl, PartyMon1Level + call GetPartyLocation + ld a, [hl] + ld [CurPartyLevel], a + call Function4db49 + ld a, [PartyCount] + dec a + ld hl, PartyMon1CaughtLocation + call GetPartyLocation + ld a, [hl] + and $80 + ld b, $13 + or b + ld [hl], a + xor a + ld [$df9c], a + and a + ld [ScriptVar], a + ret +; 4daa3 + +Function4daa3: ; 4daa3 + ld a, $1 + call GetSRAMBank + ld hl, BoxCount + ld a, [hl] + cp $14 + call CloseSRAM + jr nc, .asm_4db08 + xor a + ld [CurPartyMon], a + ld hl, $df9c + ld de, $d018 + ld bc, $0020 + call CopyBytes + ld hl, PlayerName + ld de, $d00d + ld bc, $000b + call CopyBytes + callab Function51322 + ld a, [CurPartySpecies] + ld [$d265], a + call GetPokemonName + call Function4db3b + ld hl, StringBuffer1 + jr c, .asm_4daf7 + ld a, $2 + ld [MonType], a + ld de, $d050 + callab Functione3de + ld hl, $d050 + +.asm_4daf7 + ld a, $1 + call GetSRAMBank + ld de, BoxMon1Nickname + ld bc, $000b + call CopyBytes + call CloseSRAM + +.asm_4db08 + ld a, $1 + call GetSRAMBank + ld a, [BoxMon1Level] + ld [CurPartyLevel], a + call CloseSRAM + call Function4db83 + ld a, $1 + call GetSRAMBank + ld hl, BoxMon1CaughtLocation + ld a, [hl] + and $80 + ld b, $13 + or b + ld [hl], a + call CloseSRAM + xor a + ld [$df9c], a + ld a, $1 + ld [ScriptVar], a + ret +; 4db35 + +Function4db35: ; 4db35 + ld a, $2 + ld [ScriptVar], a + ret +; 4db3b Function4db3b: ; 4db3b @@ -49529,7 +55790,301 @@ Function4eb27: ; 4eb27 ret ; 4eb38 -INCBIN "baserom.gbc", $4eb38, $4f301 - $4eb38 +INCBIN "baserom.gbc", $4eb38, $4f0bc - $4eb38 + +Function4f0bc: ; 4f0bc + ld a, $0 + call Function4f26d + call Functiona36 + ld b, $6 + callba Function50000 + jr c, .asm_4f0e1 + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_4f0e8 + call IsAPokemon + jr c, .asm_4f0e7 + call Function4f134 + call Function4f0ee + ret + +.asm_4f0e1 + ld a, $5 + call Function4f26d + ret + +.asm_4f0e7 + ret + +.asm_4f0e8 + ld a, $6 + call Function4f26d + ret +; 4f0ee + +Function4f0ee: ; 4f0ee + ld a, [DefaultFlypoint] + ld hl, $70f6 + rst JumpTable + ret +; 4f0f6 + +Table4f0f6: ; 4f0f6 + dw Function4f100 + dw Function4f10e + dw Function4f11f + dw Function4f125 + dw Function4f12b +; 4f100 + +Function4f100: ; 4f100 + ld a, $2 + call Function4f26d + ld a, $3 + call Function4f26d + call Function4f2b4 + ret +; 4f10e + +Function4f10e: ; 4f10e + call Function4f242 + ld a, $4 + call Function4f26d + ld a, $3 + call Function4f26d + call Function4f2b4 + ret +; 4f11f + +Function4f11f: ; 4f11f + ld a, $1 + call Function4f26d + ret +; 4f125 + +Function4f125: ; 4f125 + ld a, $1 + call Function4f26d + ret +; 4f12b + +Function4f12b: ; 4f12b + ld a, $7 + call Function4f26d + call Function4f2b4 + ret +; 4f134 + +Function4f134: ; 4f134 + ld a, $1d + call GetPartyParamLocation + ld a, [hli] + ld [$d03b], a + ld a, [hld] + ld [$d03c], a + or [hl] + jr z, .asm_4f170 + ld a, $1 + ld [DefaultFlypoint], a + ld a, $6 + call GetPartyParamLocation + ld a, [PlayerID] + cp [hl] + jr nz, .asm_4f15f + inc hl + ld a, [$d47c] + jr nz, .asm_4f15f + ld a, $0 + ld [DefaultFlypoint], a + +.asm_4f15f + call Function4f18c + call Function4f242 + call Function4f176 + call Function4f1c5 + call Function4f20a + and a + ret + +.asm_4f170 + ld a, $2 + ld [DefaultFlypoint], a + ret +; 4f176 + +Function4f176: ; 4f176 + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + ld bc, $000b + call AddNTimes + ld de, $d003 + ld bc, $000b + call CopyBytes + ret +; 4f18c + +Function4f18c: ; 4f18c + ld a, $50 + ld hl, $d036 + ld bc, $0004 + call ByteFill + ld a, [$d03b] + and $3f + jr z, .asm_4f1b4 + cp $1 + jr nz, .asm_4f1a4 + ld a, $5 + +.asm_4f1a4 + ld [$d03a], a + ld hl, $d036 + ld de, $d03a + ld bc, $4103 + call PrintNum + ret + +.asm_4f1b4 + ld de, $d036 + ld hl, $71c1 + ld bc, $0004 + call CopyBytes + ret +; 4f1c1 + +INCBIN "baserom.gbc", $4f1c1, $4f1c5 - $4f1c1 + +Function4f1c5: ; 4f1c5 + ld a, [$d03b] + and $c0 + jr z, .asm_4f1df + rlca + rlca + dec a + ld hl, $71e6 + call GetNthString + ld d, h + ld e, l + ld hl, $d01f + call CopyName2 + and a + ret + +.asm_4f1df + ld de, $d01f + call Function4f1f8 + ret +; 4f1e6 + +INCBIN "baserom.gbc", $4f1e6, $4f1f8 - $4f1e6 + +Function4f1f8: ; 4f1f8 + ld hl, $7202 + ld bc, $000b + call CopyBytes + ret +; 4f202 + +INCBIN "baserom.gbc", $4f202, $4f20a - $4f202 + +Function4f20a: ; 4f20a + ld a, [$d03c] + and $7f + jr z, .asm_4f22e + cp $7f + jr z, .asm_4f234 + cp $7e + jr z, .asm_4f23b + ld e, a + callba GetLandmarkName + ld hl, StringBuffer1 + ld de, $d00e + ld bc, $0011 + call CopyBytes + and a + ret + +.asm_4f22e + ld de, $d00e + jp Function4f1f8 + +.asm_4f234 + ld a, $4 + ld [DefaultFlypoint], a + scf + ret + +.asm_4f23b + ld a, $3 + ld [DefaultFlypoint], a + scf + ret +; 4f242 + +Function4f242: ; 4f242 + ld a, [CurPartyMon] + ld hl, PartyMon1OT + ld bc, $000b + call AddNTimes + ld de, $d02a + ld bc, $000b + call CopyBytes + ld hl, $726b + ld a, [$d03c] + bit 7, a + jr z, .asm_4f264 + ld hl, $726c + +.asm_4f264 + ld de, $d035 + ld a, $50 + ld [de], a + ret +; 4f26b + +INCBIN "baserom.gbc", $4f26b, $4f26d - $4f26b + +Function4f26d: ; 4f26d + ld e, a + ld d, $0 + ld hl, $727c + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 4f27c + +INCBIN "baserom.gbc", $4f27c, $4f2b4 - $4f27c + +Function4f2b4: ; 4f2b4 + ld a, $1f + call GetPartyParamLocation + ld a, [$d03a] + ld c, a + ld a, [hl] + sub c + ld c, a + ld hl, $72d6 + ld de, $0003 +.asm_4f2c6 + cp [hl] + jr c, .asm_4f2ce + jr z, .asm_4f2ce + add hl, de + jr .asm_4f2c6 + +.asm_4f2ce + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 4f2d6 + +INCBIN "baserom.gbc", $4f2d6, $4f301 - $4f2d6 Function4f301: ; 4f301 @@ -51342,7 +57897,63 @@ Function50d0a: ; 50d0a ret ; 50d5b -INCBIN "baserom.gbc", $50d5b, $50e1b - $50d5b +INCBIN "baserom.gbc", $50d5b, $50db9 - $50d5b + +Function50db9: ; 50db9 + ld a, [$d263] + cp $1 + jr nz, .asm_50dca + ld hl, OTPartyCount + ld de, OTPartyMon1OT + ld a, $6 + jr .asm_50dfc + +.asm_50dca + cp $4 + jr nz, .asm_50dd8 + ld hl, PartyCount + ld de, PartyMon1OT + ld a, $5 + jr .asm_50dfc + +.asm_50dd8 + cp $5 + jr nz, .asm_50de6 + ld hl, CurMart + ld de, PokemonNames + ld a, $1 + jr .asm_50dfc + +.asm_50de6 + cp $2 + jr nz, .asm_50df4 + ld hl, NumItems + ld de, Function50000 + ld a, $4 + jr .asm_50dfc + +.asm_50df4 + ld hl, CurMart + ld de, Function50000 + ld a, $4 + +.asm_50dfc + ld [$cf61], a + ld a, l + ld [LYOverrides], a + ld a, h + ld [$d101], a + ld a, e + ld [$d102], a + ld a, d + ld [$d103], a + ld bc, $67c1 + ld a, c + ld [$d104], a + ld a, b + ld [$d105], a + ret +; 50e1b Function50e1b: ; 50e1b @@ -51644,7 +58255,120 @@ DecompressPredef: ; 5125d ; 5127c -INCBIN "baserom.gbc", $5127c, $51424 - $5127c +INCBIN "baserom.gbc", $5127c, $51322 - $5127c + +Function51322: ; 51322 + ld a, $1 + call GetSRAMBank + ld hl, BoxCount + call Function513cb + ld a, [BoxCount] + dec a + ld [$d265], a + ld hl, BoxMon1Nickname + ld bc, $000b + ld de, DefaultFlypoint + call Function513e0 + ld a, [BoxCount] + dec a + ld [$d265], a + ld hl, BoxMon1OT + ld bc, $000b + ld de, $d00d + call Function513e0 + ld a, [BoxCount] + dec a + ld [$d265], a + ld hl, BoxMon1Species + ld bc, $0020 + ld de, $d018 + call Function513e0 + ld hl, $d01a + ld de, TempMonMove1 + ld bc, $0004 + call CopyBytes + ld hl, $d02f + ld de, TempMonPP + ld bc, $0004 + call CopyBytes + ld a, [CurPartyMon] + ld b, a + callba Functiondcb6 + jp CloseSRAM +; 5138b + +INCBIN "baserom.gbc", $5138b, $513cb - $5138b + +Function513cb: ; 513cb + inc [hl] + inc hl + ld a, [CurPartyMon] + ld c, a + ld b, $0 + add hl, bc + ld a, [CurPartySpecies] + ld c, a +.asm_513d8 + ld a, [hl] + ld [hl], c + inc hl + inc c + ld c, a + jr nz, .asm_513d8 + ret +; 513e0 + +Function513e0: ; 513e0 + push de + push hl + push bc + ld a, [$d265] + dec a + call AddNTimes + push hl + add hl, bc + ld d, h + ld e, l + pop hl +.asm_513ef + push bc + ld a, [$d265] + ld b, a + ld a, [CurPartyMon] + cp b + pop bc + jr z, .asm_51415 + push hl + push de + push bc + call CopyBytes + pop bc + pop de + pop hl + push hl + ld a, l + sub c + ld l, a + ld a, h + sbc b + ld h, a + pop de + ld a, [$d265] + dec a + ld [$d265], a + jr .asm_513ef + +.asm_51415 + pop bc + pop hl + ld a, [CurPartyMon] + call AddNTimes + ld d, h + ld e, l + pop hl + call CopyBytes + ret +; 51424 BaseData: INCLUDE "stats/base_stats.asm" @@ -53038,7 +59762,112 @@ Function845db: ; 845db ret ; 8461a -INCBIN "baserom.gbc", $8461a, $846f6 - $8461a +Function8461a: ; 8461a + ld a, [$cf65] + push af + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + xor a + ld [hBGMapMode], a + callba Function1dc381 + ld a, $10 + call Function84419 + ld hl, $ff9e + ld a, [hl] + push af + ld [hl], $4 + ld a, $8 + ld [$cf65], a + call Function84742 + call Function843f0 + jr c, .asm_84671 + call Function84411 + ld c, $c + call DelayFrames + xor a + ld [hBGMapMode], a + callba Function1dc47b + ld a, $3 + call Function84419 + ld a, $9 + ld [$cf65], a + call Function84742 + call Function843f0 + +.asm_84671 + pop af + ld [$ff9e], a + call Function84411 + call Function84735 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Function84425 + pop af + ld [$cf65], a + ret +; 84688 + +Function84688: ; 84688 + ld a, [$cf65] + push af + callba Function1dd709 + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + ld hl, $ff9e + ld a, [hl] + push af + ld [hl], $4 + ld a, $10 + call Function84419 + call Function84742 + ld a, $9 + ld [$cf65], a + call Function843f0 + jr c, .asm_846e2 + call Function84411 + ld c, $c + call DelayFrames + call Function309d + xor a + ld [hBGMapMode], a + callba Function1dd7ae + ld a, $3 + call Function84419 + call Function30b4 + call Function84742 + ld a, $9 + ld [$cf65], a + call Function843f0 + +.asm_846e2 + pop af + ld [$ff9e], a + call Function84411 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Function84425 + pop af + ld [$cf65], a + ret +; 846f6 Function846f6: ; 846f6 ld a, [hJoyDown] @@ -53948,7 +60777,358 @@ Function86810: ; 86810 SECTION "bank22",ROMX,BANK[$22] -INCBIN "baserom.gbc", $88000, $88258 - $88000 +Function88000: ; 88000 + ld hl, $4007 + call PrintText + ret +; 88007 + +INCBIN "baserom.gbc", $88007, $8800c - $88007 + +Function8800c: ; 8800c + ld hl, $4013 + call PrintText + ret +; 88013 + +INCBIN "baserom.gbc", $88013, $88018 - $88013 + +Function88018: ; 88018 + call Function1d6e + ld c, $1 + xor a + ld [$d0e4], a + ld [$dca4], a +.asm_88024 + push bc + call Function88000 + pop bc + ld a, c + ld [MenuSelection], a + call Function88055 + ld a, c + ld [ScriptVar], a + and a + jr z, .asm_88051 + ld [CurItem], a + ld a, [$cfa9] + ld c, a + push bc + call Function8800c + call Function880c2 + pop bc + jr nc, .asm_88024 + ld a, [$d10c] + ld [$dca4], a + call Function88161 + +.asm_88051 + call Function1d7d + ret +; 88055 + +Function88055: ; 88055 + callba Function24c64 + jr c, .asm_88083 + ld hl, $4086 + call Function1d3c + ld a, [MenuSelection] + ld [$cf88], a + xor a + ld [hBGMapMode], a + call Function352f + call Function1ad2 + call Function350c + ld a, [$cf73] + cp $2 + jr z, .asm_88083 + ld a, [MenuSelection] + cp $ff + jr nz, .asm_88084 + +.asm_88083 + xor a + +.asm_88084 + ld c, a + ret +; 88086 + +INCBIN "baserom.gbc", $88086, $880c2 - $88086 + +Function880c2: ; 880c2 + ld a, [CurItem] + ld [MenuSelection], a + call Function88139 + jr z, .asm_88109 + ld a, [$d10c] + ld [$d10d], a + ld a, $1 + ld [$d10c], a + ld hl, $410d + call LoadMenuDataHeader +.asm_880de + xor a + ld [hBGMapMode], a + call Function1cbb + call Function1ad2 + call Function88116 + call Function88126 + call Function321c + callba Function27a28 + jr nc, .asm_880de + push bc + call PlayClickSFX + pop bc + ld a, b + cp $ff + jr z, .asm_88109 + ld a, [$d10c] + ld [$d10c], a + scf + +.asm_88109 + call Function1c17 + ret +; 8810d + +INCBIN "baserom.gbc", $8810d, $88116 - $8810d + +Function88116: ; 88116 + call Function1cfd + ld de, $0015 + add hl, de + ld d, h + ld e, l + callba Function24ab4 + ret +; 88126 + +Function88126: ; 88126 + call Function1cfd + ld de, $0032 + add hl, de + ld [hl], $f1 + inc hl + ld de, $d10c + ld bc, $8102 + jp PrintNum +; 88139 + +Function88139: ; 88139 + push bc + ld hl, NumItems + ld a, [CurItem] + ld c, a + ld b, $0 +.asm_88143 + inc hl + ld a, [hli] + cp $ff + jr z, .asm_88153 + cp c + jr nz, .asm_88143 + ld a, [hl] + add b + ld b, a + jr nc, .asm_88143 + ld b, $ff + +.asm_88153 + ld a, b + sub $63 + jr c, .asm_8815a + ld b, $63 + +.asm_8815a + ld a, b + ld [$d10c], a + and a + pop bc + ret +; 88161 + +Function88161: ; 88161 + push de + push bc + ld hl, NumItems + ld a, [CurItem] + ld c, a + ld e, $0 + xor a + ld [$d107], a + ld a, $ff + ld [DefaultFlypoint], a +.asm_88175 + ld a, [$d107] + inc a + ld [$d107], a + inc hl + ld a, [hli] + cp $ff + jr z, .asm_88198 + cp c + jr nz, .asm_88175 + ld d, $0 + push hl + ld hl, DefaultFlypoint + add hl, de + inc e + ld a, [$d107] + dec a + ld [hli], a + ld a, $ff + ld [hl], a + pop hl + jr .asm_88175 + +.asm_88198 + ld a, e + and a + jr z, .asm_881fa + dec a + jr z, .asm_881d0 + ld hl, DefaultFlypoint +.asm_881a2 + ld a, [hl] + ld c, a + push hl +.asm_881a5 + inc hl + ld a, [hl] + cp $ff + jr z, .asm_881c9 + ld b, a + ld a, c + call Function88201 + ld e, a + ld a, b + call Function88201 + sub e + jr z, .asm_881bc + jr c, .asm_881c0 + jr .asm_881a5 + +.asm_881bc + ld a, c + sub b + jr nc, .asm_881a5 + +.asm_881c0 + ld a, c + ld c, b + ld [hl], a + ld a, c + pop hl + ld [hl], a + push hl + jr .asm_881a5 + +.asm_881c9 + pop hl + inc hl + ld a, [hl] + cp $ff + jr nz, .asm_881a2 + +.asm_881d0 + ld hl, DefaultFlypoint +.asm_881d3 + ld a, [hl] + cp $ff + jr z, .asm_881fa + push hl + ld [$d107], a + call Function88211 + pop hl + ld a, [$d10c] + and a + jr z, .asm_881fa + push hl + ld a, [hli] + ld c, a +.asm_881e9 + ld a, [hli] + cp $ff + jr z, .asm_881f6 + cp c + jr c, .asm_881e9 + dec a + dec hl + ld [hli], a + jr .asm_881e9 + +.asm_881f6 + pop hl + inc hl + jr .asm_881d3 + +.asm_881fa + ld a, [$d10c] + and a + pop bc + pop de + ret +; 88201 + +Function88201: ; 88201 + push hl + push bc + ld hl, NumItems + inc hl + ld c, a + ld b, $0 + add hl, bc + add hl, bc + inc hl + ld a, [hl] + pop bc + pop hl + ret +; 88211 + +Function88211: ; 88211 + push bc + ld hl, NumItems + ld a, [$d107] + ld c, a + ld b, $0 + inc hl + add hl, bc + add hl, bc + ld a, [CurItem] + ld c, a + ld a, [hli] + cp $ff + jr z, .asm_88243 + cp c + jr nz, .asm_88243 + ld a, [$d10c] + ld c, a + ld a, [hl] + sub c + ld b, c + jr nc, .asm_88235 + add c + ld b, a + +.asm_88235 + push bc + ld hl, NumItems + ld a, b + ld [$d10c], a + call Function2f53 + pop bc + ld a, c + sub b + +.asm_88243 + ld [$d10c], a + pop bc + ret +; 88248 + +INCBIN "baserom.gbc", $88248, $88258 - $88248 MovePlayerPicRight: ; 88258 hlcoord 6, 4 @@ -55857,7 +63037,373 @@ Function8ae4e: ; 8ae4e ret ; 8ae68 -INCBIN "baserom.gbc", $8ae68, $8b170 - $8ae68 +Function8ae68: ; 8ae68 + ld a, [ScriptVar] + ld hl, $6ed5 + and a + jr z, .asm_8ae79 + ld d, $0 + ld e, $5 +.asm_8ae75 + add hl, de + dec a + jr nz, .asm_8ae75 + +.asm_8ae79 + call LoadMenuDataHeader + xor a + ld [hBGMapMode], a + call Function1cbb + call Function1ad2 + call Function321c + call Function1cfd + inc hl + ld d, $0 + ld e, $14 + add hl, de + add hl, de + ld a, [ScriptVar] + ld c, a + ld de, $6ebc + and a + jr z, .asm_8aea5 +.asm_8ae9c + ld a, [de] + inc de + cp $ff + jr nz, .asm_8ae9c + dec c + jr nz, .asm_8ae9c + +.asm_8aea5 + call Function8af09 + ld bc, $0939 + add hl, bc + call Function8aee9 + call Function3200 + call Functiona36 + call PlayClickSFX + call Function1c17 + ret +; 8aebc + +INCBIN "baserom.gbc", $8aebc, $8aee9 - $8aebc + +Function8aee9: ; 8aee9 +.asm_8aee9 + ld a, [de] + cp $ff + ret z + cp $60 + ld a, $d + jr c, .asm_8aef5 + ld a, $5 + +.asm_8aef5 + call Function8aefd + inc hl + inc hl + inc de + jr .asm_8aee9 +; 8aefd + +Function8aefd: ; 8aefd + push hl + ld [hli], a + ld [hld], a + ld b, $0 + ld c, $14 + add hl, bc + ld [hli], a + ld [hl], a + pop hl + ret +; 8af09 + +Function8af09: ; 8af09 + push hl + push de +.asm_8af0b + ld a, [de] + cp $ff + jr z, .asm_8af19 + ld c, a + call Function8af1c + inc hl + inc hl + inc de + jr .asm_8af0b + +.asm_8af19 + pop de + pop hl + ret +; 8af1c + +Function8af1c: ; 8af1c + push hl + ld a, c + cp $60 + jr z, .asm_8af3b + cp $62 + jr z, .asm_8af4b + cp $64 + jr z, .asm_8af5b + ld [hli], a + inc a + ld [hld], a + dec a + ld b, $0 + ld c, $14 + add hl, bc + ld c, $10 + add c + ld [hli], a + inc a + ld [hl], a + pop hl + ret + +.asm_8af3b + ld [hl], $5b + inc hl + ld [hl], $5c + ld bc, $0013 + add hl, bc + ld [hl], $4d + inc hl + ld [hl], $5d + pop hl + ret + +.asm_8af4b + ld [hl], $4e + inc hl + ld [hl], $4f + ld bc, $0013 + add hl, bc + ld [hl], $5e + inc hl + ld [hl], $5f + pop hl + ret + +.asm_8af5b + ld [hl], $2 + inc hl + ld [hl], $3 + ld bc, $0013 + add hl, bc + ld [hl], $3 + inc hl + ld [hl], $2 + pop hl + ret +; 8af6b + +Function8af6b: ; 8af6b + xor a + ld [$cf76], a + ld hl, $6fa9 + call Function1d3c + ld a, [$dc4a] + ld c, a + callba Functionb8f8f + ld a, [$cf83] + add c + add $2 + ld [$cf85], a + call Function1c00 + call Function1e5d + callba Function4ae5e + ld b, $0 + ld a, [MenuSelection] + ld c, a + ld a, [$dc4a] + and $3 + cp c + jr nz, .asm_8afa4 + ld b, $1 + +.asm_8afa4 + ld a, b + ld [ScriptVar], a + ret +; 8afa9 + +INCBIN "baserom.gbc", $8afa9, $8afd4 - $8afa9 + +Function8afd4: ; 8afd4 + xor a + ld [$d0e4], a + ld a, $1 + ld [MenuSelection], a + call Function8b0d6 + call Function8b090 + ld hl, $7072 + call PrintText + jr .asm_8aff1 + +.asm_8afeb + ld hl, $7072 + call Function105a + +.asm_8aff1 + call DelayFrame + call Function1ad2 + call Function8b097 + call Function8b0e2 + jr z, .asm_8b05f + ld [$cf75], a + call Function8b154 + ld a, [hl] + ld [$d265], a + call GetItemName + ld hl, $7077 + call Function105a + call Function1dcf + jr c, .asm_8afeb + ld a, [$cf75] + call Function8b154 + inc hl + ld a, [hld] + ld c, a + ld a, [$dc4b] + cp c + jr c, .asm_8b047 + ld a, [hli] + push hl + ld [CurItem], a + ld a, $1 + ld [$d10c], a + ld hl, NumItems + call Function2f66 + pop hl + jr nc, .asm_8b04c + ld a, [hl] + ld c, a + ld a, [$dc4b] + sub c + ld [$dc4b], a + call Function8b097 + jr .asm_8b051 + +.asm_8b047 + ld hl, $7081 + jr .asm_8b05a + +.asm_8b04c + ld hl, $7086 + jr .asm_8b05a + +.asm_8b051 + ld de, $0022 + call StartSFX + ld hl, $707c + +.asm_8b05a + call Function105a + jr .asm_8afeb + +.asm_8b05f + call Function1c17 + call Function1c17 + ld hl, $708b + call PrintText + call Functiona36 + call PlayClickSFX + ret +; 8b072 + +INCBIN "baserom.gbc", $8b072, $8b090 - $8b072 + +Function8b090: ; 8b090 + ld hl, $70d1 + call LoadMenuDataHeader + ret +; 8b097 + +Function8b097: ; 8b097 + ld de, $dc4b + call Function8b09e + ret +; 8b09e + +Function8b09e: ; 8b09e + push de + xor a + ld [hBGMapMode], a + ld hl, $70d1 + call Function1d3c + call Function1cbb + call Function1ad2 + call Function1cfd + ld bc, $0015 + add hl, bc + ld de, $70ca + call PlaceString + ld h, b + ld l, c + inc hl + ld a, $7f + ld [hli], a + ld [hld], a + pop de + ld bc, $0102 + call PrintNum + ret +; 8b0ca + +INCBIN "baserom.gbc", $8b0ca, $8b0d6 - $8b0ca + +Function8b0d6: ; 8b0d6 + ld hl, $70dd + call LoadMenuDataHeader + ret +; 8b0dd + +INCBIN "baserom.gbc", $8b0dd, $8b0e2 - $8b0dd + +Function8b0e2: ; 8b0e2 + ld hl, $7113 + call Function1d3c + ld a, [MenuSelection] + ld [$cf88], a + xor a + ld [$cf76], a + ld [hBGMapMode], a + call Function352f + call Function1ad2 + call Function350c + ld a, [MenuSelection] + ld c, a + ld a, [$cfa9] + ld [MenuSelection], a + ld a, [$cf73] + cp $2 + jr z, .asm_8b111 + ld a, c + and a + ret nz + +.asm_8b111 + xor a + ret +; 8b113 + +INCBIN "baserom.gbc", $8b113, $8b154 - $8b113 + +Function8b154: ; 8b154 + dec a + ld hl, $715e + ld b, $0 + ld c, a + add hl, bc + add hl, bc + ret +; 8b15e + +INCBIN "baserom.gbc", $8b15e, $8b170 - $8b15e SpecialDratini: ; 0x8b170 ; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party. @@ -55970,7 +63516,136 @@ GetNthPartyMon: ; 0x8b1ce scf ret -INCBIN "baserom.gbc", $8b1e1, $8b342 - $8b1e1 +Function8b1e1: ; 8b1e1 + ld de, $71ed + call Function8b25b + ret z + call Function8b231 + scf + ret +; 8b1ed + +INCBIN "baserom.gbc", $8b1ed, $8b201 - $8b1ed + +Function8b201: ; 8b201 + ld hl, StringBuffer2 + ld [hl], $f9 + inc hl + ld [hl], $50 + ld de, $7215 + call Function8b25b + ret z + call Function8b231 + scf + ret +; 8b215 + +INCBIN "baserom.gbc", $8b215, $8b231 - $8b215 + +Function8b231: ; 8b231 + ld hl, $7238 + call PrintText + ret +; 8b238 + +INCBIN "baserom.gbc", $8b238, $8b25b - $8b238 + +Function8b25b: ; 8b25b + ld bc, $0000 +.asm_8b25e + call Function8b26c + call c, Function8b28e + call Function8b276 + jr nz, .asm_8b25e + ld a, b + and a + ret +; 8b26c + +Function8b26c: ; 8b26c + push de + push bc + call Function8b27a + ld a, c + rst JumpTable + pop bc + pop de + ret +; 8b276 + +Function8b276: ; 8b276 + inc c + ld a, [de] + cp c + ret +; 8b27a + +Function8b27a: ; 8b27a + inc de + ld a, [de] + ld l, a + inc de + ld a, [de] + ld h, a + ret +; 8b281 + +Function8b281: ; 8b281 + inc de + inc de + inc de + ld a, [de] + ld l, a + inc de + ld a, [de] + ld h, a + ret +; 8b28a + +Function8b28a: ; 8b28a + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 8b28e + +Function8b28e: ; 8b28e + push de + push bc + ld a, b + and a + call z, Function8b29d + pop bc + call Function8b2a9 + ld b, $1 + pop de + ret +; 8b29d + +Function8b29d: ; 8b29d + push de + call Function8b281 + call Function8b28a + call PrintText + pop de + ret +; 8b2a9 + +Function8b2a9: ; 8b2a9 + push bc + call Function8b281 + inc hl + inc hl + ld b, $0 + add hl, bc + add hl, bc + call Function8b28a + call PrintText + pop bc + ret +; 8b2bb + +INCBIN "baserom.gbc", $8b2bb, $8b342 - $8b2bb Function8b342: ; 8b342 @@ -56480,7 +64155,38 @@ Function8c084: ; 8c084 ret ; 8c092 -INCBIN "baserom.gbc", $8c092, $8c0c1 - $8c092 +Function8c092: ; 8c092 + call Function8c0c1 + ld c, $9 + call GetTimePalFade + ld b, $4 +.asm_8c09c + call DmgToCgbTimePals + inc hl + inc hl + inc hl + ld c, $7 + call DelayFrames + dec b + jr nz, .asm_8c09c + ret +; 8c0ab + +Function8c0ab: ; 8c0ab + ld c, $0 + call GetTimePalFade + ld b, $4 + call Function8c15e + ret +; 8c0b6 + +Function8c0b6: ; 8c0b6 + ld c, $9 + call GetTimePalFade + ld b, $4 + call Function8c16d + ret +; 8c0c1 Function8c0c1: ; 8c0c1 @@ -57041,7 +64747,323 @@ Function8ca0c: ; 8ca0c jp [hl] ; 8ca1b -INCBIN "baserom.gbc", $8ca1b, $8cf4f - $8ca1b +INCBIN "baserom.gbc", $8ca1b, $8cc04 - $8ca1b + +Function8cc04: ; 8cc04 + ld a, [ScriptVar] + and a + jr nz, .asm_8cc14 + ld a, $1 + ld bc, $4060 + ld de, $fca0 + jr .asm_8cc1c + +.asm_8cc14 + ld a, $ff + ld bc, $c0a0 + ld de, $b460 + +.asm_8cc1c + ld h, a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, h + ld [$d191], a + ld a, c + ld [$d192], a + ld a, b + ld [$d193], a + ld a, e + ld [$d194], a + ld a, d + ld [$d195], a + ld a, [hSCX] + push af + ld a, [hSCY] + push af + call Function8ccc9 + ld hl, $ff9e + ld a, [hl] + push af + ld [hl], $1 +.asm_8cc48 + ld a, [$cf63] + and a + jr z, .asm_8cc66 + bit 7, a + jr nz, .asm_8cc6b + callab Function8cf69 + call Function8cdf7 + call Function8cc99 + call Function3b0c + call DelayFrame + jr .asm_8cc48 + +.asm_8cc66 + call Function8ceae + jr .asm_8cc48 + +.asm_8cc6b + pop af + ld [$ff9e], a + call WhiteBGMap + xor a + ld [hLCDStatCustom], a + ld [$ffc7], a + ld [$ffc8], a + ld [hSCX], a + ld [Requested2bppSource], a + ld [$cf69], a + ld [Requested2bppDest], a + ld [$cf6b], a + ld [Requested2bpp], a + call ClearTileMap + pop af + ld [hSCY], a + pop af + ld [hSCX], a + xor a + ld [hBGMapMode], a + pop af + ld [rSVBK], a + ret +; 8cc99 + +Function8cc99: ; 8cc99 + ld hl, $d200 + ld c, $2f + ld a, [$cf64] + add a + ld [hSCX], a + call Function8ccc4 + ld c, $30 + ld a, [$cf65] + call Function8ccc4 + ld c, $31 + ld a, [$cf64] + add a + call Function8ccc4 + ld a, [$d191] + ld d, a + ld hl, $cf64 + ld a, [hl] + add d + add d + ld [hl], a + ret +; 8ccc4 + +Function8ccc4: ; 8ccc4 +.asm_8ccc4 + ld [hli], a + dec c + jr nz, .asm_8ccc4 + ret +; 8ccc9 + +Function8ccc9: ; 8ccc9 + call WhiteBGMap + call ClearSprites + call DisableLCD + callab Function8cf53 + call Function8cdc3 + call Function8cd27 + ld a, $90 + ld [hWY], a + call EnableLCD + xor a + ld [hBGMapMode], a + ld [hSCX], a + ld [hSCY], a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba GetPlayerIcon + pop af + ld [rSVBK], a + ld hl, VTiles0 + ld c, $4 + call Request2bpp + ld hl, $00c0 + add hl, de + ld d, h + ld e, l + ld hl, $8040 + ld c, $4 + call Request2bpp + call Function8cda6 + ld hl, $cf63 + xor a + ld [hli], a + ld a, [$d192] + ld [hli], a + ld [hli], a + ld [hli], a + ld de, $0005 + call StartMusic2 + ret +; 8cd27 + +Function8cd27: ; 8cd27 + ld hl, VBGMap0 + xor a +.asm_8cd2b + call Function8cd74 + ld b, $10 + call Function8cd6c + inc a + cp $12 + jr c, .asm_8cd2b + ld hl, $98c0 + ld de, $4eff + ld c, $14 + call Function8cd65 + ld hl, $98e0 + ld de, $4f13 + ld c, $14 + call Function8cd65 + ld hl, $9900 + ld de, $4f27 + ld c, $14 + call Function8cd65 + ld hl, $9920 + ld de, $4f3b + ld c, $14 + call Function8cd65 + ret +; 8cd65 + +Function8cd65: ; 8cd65 +.asm_8cd65 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_8cd65 + ret +; 8cd6c + +Function8cd6c: ; 8cd6c +.asm_8cd6c + ld [hl], e + inc hl + ld [hl], d + inc hl + dec b + jr nz, .asm_8cd6c + ret +; 8cd74 + +Function8cd74: ; 8cd74 + push hl + ld e, a + ld d, $0 + ld hl, $4d82 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + pop hl + ret +; 8cd82 + +INCBIN "baserom.gbc", $8cd82, $8cda6 - $8cd82 + +Function8cda6: ; 8cda6 + ld hl, LYOverrides + ld bc, $0090 + ld a, [$d192] + call ByteFill + ld hl, $d200 + ld bc, $0090 + ld a, [$d192] + call ByteFill + ld a, $43 + ld [hLCDStatCustom], a + ret +; 8cdc3 + +Function8cdc3: ; 8cdc3 + ld a, $1 + ld [rVBK], a + ld hl, VBGMap0 + ld bc, $0080 + ld a, $2 + call ByteFill + ld hl, $9880 + ld bc, $0140 + xor a + call ByteFill + ld hl, $99c0 + ld bc, $0080 + ld a, $2 + call ByteFill + ld hl, $9907 + ld bc, $0006 + ld a, $4 + call ByteFill + ld a, $0 + ld [rVBK], a + ret +; 8cdf7 + +Function8cdf7: ; 8cdf7 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $4e06 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8ce06 + +INCBIN "baserom.gbc", $8ce06, $8ceae - $8ce06 + +Function8ceae: ; 8ceae + callba Function8cf69 + call Function8cdf7 + call Function8cc99 + call Function3b0c + call DelayFrame + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [TimeOfDayPal] + push af + ld a, [$d19a] + push af + ld a, [TimeOfDay] + and $3 + ld [TimeOfDayPal], a + ld a, $1 + ld [$d19a], a + ld b, $9 + call GetSGBLayout + call UpdateTimePals + ld a, [rBGP] + ld [$cfc7], a + ld a, [rOBP0] + ld [$cfc8], a + ld a, [rOBP1] + ld [$cfc9], a + pop af + ld [$d19a], a + pop af + ld [TimeOfDayPal], a + pop af + ld [rSVBK], a + ret +; 8ceff + +INCBIN "baserom.gbc", $8ceff, $8cf4f - $8ceff Function8cf4f: ; 8cf4f call Function3238 @@ -58400,7 +66422,171 @@ Function90375: ; 90375 ret ; 90380 -INCBIN "baserom.gbc", $90380, $909f2 - $90380 +INCBIN "baserom.gbc", $90380, $9039a - $90380 + +Function9039a: ; 9039a + push hl + ld hl, $445f + ld bc, $000c + call AddNTimes + ld a, [hli] + ld b, [hl] + ld c, a + pop hl + ret +; 903a9 + +INCBIN "baserom.gbc", $903a9, $90439 - $903a9 + +Function90439: ; 90439 + ld a, [$dbf9] + call Function9039a + ld d, c + ld e, b + push de + ld a, [$dbf9] + ld hl, $4461 + ld bc, $000c + call AddNTimes + ld b, [hl] + inc hl + ld c, [hl] + push bc + call GetWorldMapLocation + ld e, a + callba GetLandmarkName + pop bc + pop de + ret +; 9045f + +INCBIN "baserom.gbc", $9045f, $90913 - $9045f + +Function90913: ; 90913 + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + ld de, $4903 + ld hl, $8ef0 + ld bc, $2401 + call Request1bpp + ld de, $490b + ld hl, $8f50 + ld bc, $2401 + call Request1bpp + xor a + ld [DefaultFlypoint], a +.asm_90936 + ld hl, $c590 + ld bc, $0412 + call TextBox + call Function1d6e + ld hl, $4a3f + call PrintText + ld hl, $c4e5 + ld b, $2 + ld c, $9 + call TextBox + ld hl, $c4ea + ld [hl], $ef + ld hl, $c526 + ld [hl], $f5 + ld hl, $c50e + call Function909de + call Function321c + ld c, $a + call DelayFrames +.asm_9096a + call Functiona57 + call Function90993 + jr nc, .asm_9096a + call Function1c07 + call Function1ad2 + ld hl, $4a44 + call PrintText + call Function1dcf + jr c, .asm_90936 + ld a, [DefaultFlypoint] + ld [StringBuffer2], a + call $0663 + call Functione51 + pop af + ld [$ffaa], a + ret +; 90993 + +Function90993: ; 90993 + ld a, [hJoyPressed] + and $1 + jr z, .asm_9099b + scf + ret + +.asm_9099b + ld hl, $ffa9 + ld a, [hl] + and $40 + jr nz, .asm_909ba + ld a, [hl] + and $80 + jr nz, .asm_909ad + call DelayFrame + and a + ret + +.asm_909ad + ld hl, DefaultFlypoint + ld a, [hl] + and a + jr nz, .asm_909b6 + ld a, $7 + +.asm_909b6 + dec a + ld [hl], a + jr .asm_909c6 + +.asm_909ba + ld hl, DefaultFlypoint + ld a, [hl] + cp $6 + jr c, .asm_909c4 + ld a, $ff + +.asm_909c4 + inc a + ld [hl], a + +.asm_909c6 + xor a + ld [hBGMapMode], a + ld hl, $c4fa + ld b, $2 + ld c, $9 + call ClearBox + ld hl, $c50e + call Function909de + call WaitBGMap + and a + ret +; 909de + +Function909de: ; 909de + push hl + ld a, [DefaultFlypoint] + ld e, a + ld d, $0 + ld hl, $49f2 + add hl, de + add hl, de + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + call PlaceString + ret +; 909f2 dw Sunday dw Monday @@ -58427,7 +66613,35 @@ Saturday: db "SATURDAY@" -INCBIN "baserom.gbc", $90a3f, $90c4e - $90a3f +INCBIN "baserom.gbc", $90a3f, $90a54 - $90a3f + +Function90a54: ; 90a54 + ld a, [$d4c2] + set 7, a + ld [$d4c2], a + ld hl, $c5b9 + ld bc, $0312 + call ClearBox + ld hl, $4a6c + call Function13e5 + ret +; 90a6c + +INCBIN "baserom.gbc", $90a6c, $90a88 - $90a6c + +Function90a88: ; 90a88 + ld a, [$d4c2] + res 7, a + ld [$d4c2], a + ld hl, $c5b9 + ld bc, $0312 + call ClearBox + ld hl, $4aa0 + call Function13e5 + ret +; 90aa0 + +INCBIN "baserom.gbc", $90aa0, $90c4e - $90aa0 Function90c4e: ; 90c4e call Functiond79 @@ -61968,7 +70182,43 @@ WildRockMonTable: ; b83de db $ff ; end ; b83e5 -INCBIN "baserom.gbc", $b83e5, $b9229 - $b83e5 +INCBIN "baserom.gbc", $b83e5, $b8f8f - $b83e5 + +Functionb8f8f: ; b8f8f + ld a, c + swap a + and $f + ld hl, $4ff9 + ld d, $0 + ld e, a + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + ld b, a + push hl + inc hl + ld a, c + and $f + ld c, a + push hl + ld hl, $4fb8 + ld e, b + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + call _hl_ + pop hl + ld c, [hl] + ret +; b8fb8 + +INCBIN "baserom.gbc", $b8fb8, $b9229 - $b8fb8 Functionb9229: ; b9229 ld a, [CurPartyMon] @@ -65485,7 +73735,148 @@ Functionfb53e: ; fb53e ret ; fb57e -INCBIN "baserom.gbc", $fb57e, $fb6ed - $fb57e +Functionfb57e: ; fb57e + ld a, [$d003] + ld hl, OTPartyMon1Species + call GetPartyLocation + push hl + ld a, [$d003] + inc a + ld c, a + ld b, $0 + ld hl, OTPartyCount + add hl, bc + ld a, [hl] + pop hl + cp $fd + jr z, .asm_fb59c + cp [hl] + jr nz, .asm_fb5db + +.asm_fb59c + ld b, h + ld c, l + ld hl, $001f + add hl, bc + ld a, [hl] + cp $65 + jr nc, .asm_fb5db + ld a, [InLinkBattle] + cp $1 + jr nz, .asm_fb5d9 + ld hl, OTPartySpecies + ld a, [$d003] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + cp $51 + jr z, .asm_fb5d9 + cp $52 + jr z, .asm_fb5d9 + ld [CurSpecies], a + call GetBaseData + ld hl, $cbea + add hl, bc + add hl, bc + ld a, [BaseType1] + cp [hl] + jr nz, .asm_fb5db + inc hl + ld a, [BaseType2] + cp [hl] + jr nz, .asm_fb5db + +.asm_fb5d9 + and a + ret + +.asm_fb5db + scf + ret +; fb5dd + +Functionfb5dd: ; fb5dd + ld a, [DefaultFlypoint] + ld d, a + ld a, [PartyCount] + ld b, a + ld c, $0 +.asm_fb5e7 + ld a, c + cp d + jr z, .asm_fb5f8 + push bc + ld a, c + ld hl, PartyMon1CurHP + call GetPartyLocation + pop bc + ld a, [hli] + or [hl] + jr nz, .asm_fb60b + +.asm_fb5f8 + inc c + dec b + jr nz, .asm_fb5e7 + ld a, [$d003] + ld hl, OTPartyMon1CurHP + call GetPartyLocation + ld a, [hli] + or [hl] + jr nz, .asm_fb60b + scf + ret + +.asm_fb60b + and a + ret +; fb60d + +Functionfb60d: ; fb60d + ld hl, $c4a4 + ld de, PlayerName + call PlaceString + ld a, $14 + ld [bc], a + ld hl, $c544 + ld de, $d26b + call PlaceString + ld a, $14 + ld [bc], a + ld hl, $c4bb + ld de, PartySpecies + call Functionfb634 + ld hl, $c55b + ld de, OTPartySpecies + +Functionfb634: ; fb634 + ld c, $0 +.asm_fb636 + ld a, [de] + cp $ff + ret z + ld [$d265], a + push bc + push hl + push de + push hl + ld a, c + ld [hProduct], a + call GetPokemonName + pop hl + call PlaceString + pop de + inc de + pop hl + ld bc, $0014 + add hl, bc + pop bc + inc c + jr .asm_fb636 +; fb656 + +INCBIN "baserom.gbc", $fb656, $fb6ed - $fb656 Functionfb6ed: ; fb6ed ld hl, $780f @@ -65657,7 +74048,38 @@ Functionfb802: ; fb802 ret ; fb80f -INCBIN "baserom.gbc", $fb80f, $fb877 - $fb80f +INCBIN "baserom.gbc", $fb80f, $fb841 - $fb80f + +Functionfb841: ; fb841 + ld a, [ScriptVar] + call Function37f3 + jr c, .asm_fb876 + ld hl, CryPitch + ld a, [hli] + ld h, [hl] + ld l, a + ld bc, $fec0 + add hl, bc + ld a, l + ld [CryPitch], a + ld a, h + ld [CryEcho], a + ld hl, CryLength + ld a, [hli] + ld h, [hl] + ld l, a + ld bc, $0060 + add hl, bc + ld a, l + ld [CryLength], a + ld a, h + ld [$c2b3], a + callba PlayCry + call WaitSFX + +.asm_fb876 + ret +; fb877 Functionfb877: ; fb877 ld a, [$ffde] @@ -65712,7 +74134,42 @@ Functionfb8c8: ; fb8c8 ret ; fb8f1 -INCBIN "baserom.gbc", $fb8f1, $fba18 - $fb8f1 +Functionfb8f1: ; fb8f1 + push bc + push hl + ld a, [$d265] + ld b, a + ld c, $0 + ld hl, $791c +.asm_fb8fc + inc c + ld a, [hli] + cp b + jr nz, .asm_fb8fc + ld a, c + ld [$d265], a + pop hl + pop bc + ret +; fb908 + +Functionfb908: ; fb908 + push bc + push hl + ld a, [$d265] + dec a + ld hl, $791c + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [$d265], a + pop hl + pop bc + ret +; fb91c + +INCBIN "baserom.gbc", $fb91c, $fba18 - $fb91c Functionfba18: ; fba18 @@ -65736,11 +74193,115 @@ Functionfba18: ; fba18 ret ; fba2e -INCBIN "baserom.gbc", $fba2e, $fbbfc - $fba2e +INCBIN "baserom.gbc", $fba2e, $fbb32 - $fba2e + +Functionfbb32: ; fbb32 + callba Function50000 + jr c, .asm_fbb9e + ld a, [CurPartySpecies] + cp $81 + jr nz, .asm_fbba4 + ld a, [CurPartyMon] + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + push hl + ld bc, $0015 + add hl, bc + ld d, h + ld e, l + pop hl + ld bc, $0006 + add hl, bc + ld b, h + ld c, l + call CalcMagikarpLength + call Functionfbbdb + callba Function105f33 + ld hl, $7ba9 + call PrintText + ld hl, Buffer1 + ld de, $dfe8 + ld c, $2 + call StringCmp + jr nc, .asm_fbb98 + ld hl, Buffer1 + ld de, $dfe8 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld a, [CurPartyMon] + ld hl, PartyMon1OT + call SkipNames + call CopyBytes + ld a, $3 + ld [ScriptVar], a + ret + +.asm_fbb98 + ld a, $2 + ld [ScriptVar], a + ret + +.asm_fbb9e + ld a, $1 + ld [ScriptVar], a + ret + +.asm_fbba4 + xor a + ld [ScriptVar], a + ret +; fbba9 + +INCBIN "baserom.gbc", $fbba9, $fbbae - $fbba9 + +Functionfbbae: ; fbbae + ld hl, $96e0 + ld de, $7bbb + ld bc, $3e02 + call Request2bpp + ret +; fbbbb + +INCBIN "baserom.gbc", $fbbbb, $fbbdb - $fbbbb + +Functionfbbdb: ; fbbdb + call Functionfbbae + ld hl, StringBuffer1 + ld de, Buffer1 + ld bc, $4102 + call PrintNum + ld [hl], $6e + inc hl + ld de, Buffer2 + ld bc, $4102 + call PrintNum + ld [hl], $6f + inc hl + ld [hl], $50 + ret +; fbbfc INCLUDE "battle/magikarp_length.asm" -INCBIN "baserom.gbc", $fbccf, $fbced - $fbccf +INCBIN "baserom.gbc", $fbccf, $fbcd2 - $fbccf + +Functionfbcd2: ; fbcd2 + ld a, [$dfe8] + ld [Buffer1], a + ld a, [$dfe9] + ld [Buffer2], a + call Functionfbbdb + ld hl, $7ce8 + call PrintText + ret +; fbce8 + +INCBIN "baserom.gbc", $fbce8, $fbced - $fbce8 INCLUDE "battle/hidden_power.asm" @@ -68459,7 +77020,33 @@ Function1006dc: ; 1006dc ret ; 1006fd -INCBIN "baserom.gbc", $1006fd, $10079c - $1006fd +Function1006fd: ; 1006fd + ld a, $4 + ld hl, $a800 + call GetSRAMBank + xor a + ld [hli], a + ld [hli], a + ld [hli], a + call CloseSRAM + ret +; 10070d + +Function10070d: ; 10070d + ld a, $4 + ld hl, $a800 + call GetSRAMBank + xor a + ld [hli], a + ld a, $a + ld [hli], a + xor a + ld [hli], a + call CloseSRAM + ret +; 100720 + +INCBIN "baserom.gbc", $100720, $10079c - $100720 Function10079c: ; 10079c @@ -68568,7 +77155,44 @@ Function100826: ; 100826 ret ; 100846 -INCBIN "baserom.gbc", $100846, $1008e0 - $100846 +INCBIN "baserom.gbc", $100846, $1008a6 - $100846 + +Function1008a6: ; 1008a6 + ld a, $4 + ld hl, $a800 + call GetSRAMBank + ld a, [hli] + ld [StringBuffer2], a + ld a, [hli] + ld [$d087], a + ld a, [hli] + ld [$d088], a + call CloseSRAM + ld a, [$d088] + ld b, a + ld a, $0 + sub b + jr nc, .asm_1008c8 + add $3c + +.asm_1008c8 + ld b, a + ld a, [$d087] + ld c, a + ld a, $a + sbc c + ld c, a + jr c, .asm_1008da + ld a, [StringBuffer2] + and a + jr nz, .asm_1008da + ret + +.asm_1008da + call Function10070d + ld c, $0 + ret +; 1008e0 Function1008e0: ; 1008e0 @@ -69430,7 +78054,39 @@ Function100ed4: ; 100ed4 ret ; 100edf -INCBIN "baserom.gbc", $100edf, $101231 - $100edf +INCBIN "baserom.gbc", $100edf, $1011f1 - $100edf + +Function1011f1: ; 1011f1 + ld a, $4 + call GetSRAMBank + ld a, [$a60c] + ld [$dc41], a + call CloseSRAM + ld hl, $dc41 + res 4, [hl] + ld hl, GameTimerPause + bit 7, [hl] + jr z, .asm_101210 + ld hl, $dc41 + set 4, [hl] + +.asm_101210 + call Function10209c + xor a + ld [$dc5f], a + ld [$dc60], a + ld a, $4 + ld [InLinkBattle], a + ret +; 101220 + +Function101220: ; 101220 + xor a + ld [InLinkBattle], a + ret +; 101225 + +INCBIN "baserom.gbc", $101225, $101231 - $101225 Function101231: ; 101231 ld d, $2 @@ -69566,7 +78222,17 @@ Function10202c: ; 10202c ret ; 102048 -INCBIN "baserom.gbc", $102048, $1020ea - $102048 +INCBIN "baserom.gbc", $102048, $10209c - $102048 + +Function10209c: ; 10209c + ld a, $ff + ld hl, $dc42 + ld bc, $0008 + call ByteFill + ret +; 1020a8 + +INCBIN "baserom.gbc", $1020a8, $1020ea - $1020a8 Function1020ea: ; 1020ea ld hl, $dc41 @@ -69708,7 +78374,320 @@ Function1021e0: ; 1021e0 ret ; 1021ea -INCBIN "baserom.gbc", $1021ea, $10389d - $1021ea +INCBIN "baserom.gbc", $1021ea, $103612 - $1021ea + +Function103612: ; 103612 + ld hl, $7640 + call LoadMenuDataHeader + ld a, [$dc40] + and $f + jr z, .asm_103622 + ld [$cf88], a + +.asm_103622 + call Function1d81 + call Function1c17 + jr c, .asm_10363b + ld a, [$cfa9] + ld [ScriptVar], a + ld c, a + ld a, [$dc40] + and $f0 + or c + ld [$dc40], a + ret + +.asm_10363b + xor a + ld [ScriptVar], a + ret +; 103640 + +INCBIN "baserom.gbc", $103640, $10366e - $103640 + +Function10366e: ; 10366e + callba Function10632f + bit 7, c + jr z, .asm_10369b + ld hl, $775d + call PrintText + call Function1dcf + jr c, .asm_103696 + callba Function8b1e1 + jr nc, .asm_103690 + call Functiona36 + jr .asm_103696 + +.asm_103690 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_103696 + xor a + ld [ScriptVar], a + ret + +.asm_10369b + ld hl, $dc40 + bit 7, [hl] + set 7, [hl] + jr nz, .asm_1036b5 + ld hl, $7762 + call PrintText + call Function1dcf + jr c, .asm_1036b5 + call Function1036f9 + call Functiona36 + +.asm_1036b5 + call Function103700 + jr c, .asm_1036f4 + ld hl, $7747 + call LoadMenuDataHeader + call Function1d81 + call Function1c07 + jr c, .asm_1036f4 + ld a, [$cfa9] + cp $1 + jr z, .asm_1036d9 + cp $2 + jr z, .asm_1036f4 + cp $3 + jr z, .asm_1036ec + jr .asm_1036b5 + +.asm_1036d9 + callba Function8b1e1 + jr nc, .asm_1036e6 + call Functiona36 + jr .asm_1036f4 + +.asm_1036e6 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_1036ec + call Function1036f9 + call Functiona36 + jr .asm_1036b5 + +.asm_1036f4 + xor a + ld [ScriptVar], a + ret +; 1036f9 + +Function1036f9: ; 1036f9 + ld hl, $7767 + call PrintText + ret +; 103700 + +Function103700: ; 103700 + ld c, $a + ld hl, $dc20 + bit 4, [hl] + jr z, .asm_10370f + callba Function1008a6 + +.asm_10370f + ld a, c + ld [StringBuffer2], a + ld a, [StringBuffer2] + cp $5 + jr nc, .asm_103724 + cp $2 + jr nc, .asm_10372c + cp $1 + jr nc, .asm_103734 + jr .asm_10373c + +.asm_103724 + ld hl, $776c + call PrintText + and a + ret + +.asm_10372c + ld hl, $7771 + call PrintText + and a + ret + +.asm_103734 + ld hl, $7776 + call PrintText + and a + ret + +.asm_10373c + ld hl, $777b + call PrintText + call Functiona36 + scf + ret +; 103747 + +INCBIN "baserom.gbc", $103747, $103780 - $103747 + +Function103780: ; 103780 + ld a, [$d265] + push af + call Function10378c + pop af + ld [$d265], a + ret +; 10378c + +Function10378c: ; 10378c + ld c, $0 + ld hl, $dc20 + bit 4, [hl] + jr nz, .asm_10379c + ld c, $1 + ld hl, $dc20 + set 4, [hl] + +.asm_10379c + push bc + callba Function14ab2 + pop bc + jr c, .asm_1037b5 + ld a, $1 + ld [ScriptVar], a + ld a, c + and a + ret z + callba Function1006fd + ret + +.asm_1037b5 + xor a + ld [ScriptVar], a + ld a, c + and a + ret z + ld hl, $dc20 + res 4, [hl] + ret +; 1037c2 + +Function1037c2: ; 1037c2 + call Function103823 + jr c, .asm_1037de + ld a, [$dc5f] + and a + jr z, .asm_1037de + ld hl, $77e6 + call PrintText + call Function1dcf + jr c, .asm_1037de + ld a, $1 + ld [ScriptVar], a + ret + +.asm_1037de + xor a + ld [$dc5f], a + ld [ScriptVar], a + ret +; 1037e6 + +INCBIN "baserom.gbc", $1037e6, $1037eb - $1037e6 + +Function1037eb: ; 1037eb + call Function103823 + jr nc, .asm_103807 + ld hl, $7819 + call PrintText + call Functiona36 + ld hl, $781e + call PrintText + call Functiona36 + xor a + ld [ScriptVar], a + ret + +.asm_103807 + ld a, [$dc60] + and a + jr nz, .asm_103813 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_103813 + ld a, $2 + ld [ScriptVar], a + ret +; 103819 + +INCBIN "baserom.gbc", $103819, $103823 - $103819 + +Function103823: ; 103823 + callba Function10632f + bit 7, c + jr nz, .asm_103838 + callba Function1008a6 + ld a, c + cp $1 + jr c, .asm_10383a + +.asm_103838 + xor a + ret + +.asm_10383a + scf + ret +; 10383c + +Function10383c: ; 10383c + ld a, $1 + ld [$dc60], a + xor a + ld hl, $dc5c + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $7876 + call PrintText + call Functiona36 + callba Script_reloadmappart + callba Function4a94e + jr c, .asm_103870 + ld hl, DefaultFlypoint + ld de, $dc5c + ld bc, $0003 + call CopyBytes + xor a + ld [ScriptVar], a + ret + +.asm_103870 + ld a, $1 + ld [ScriptVar], a + ret +; 103876 + +INCBIN "baserom.gbc", $103876, $10387b - $103876 + +Function10387b: ; 10387b + callba Function10632f + bit 7, c + ret nz + callba Function1008a6 + ld a, c + ld [StringBuffer2], a + ld hl, $7898 + call PrintText + call Functiona36 + ret +; 103898 + +INCBIN "baserom.gbc", $103898, $10389d - $103898 SECTION "bank41",ROMX,BANK[$41] @@ -70093,7 +79072,14 @@ EnteredConnection: ; 1046c4 ; 1046c6 -INCBIN "baserom.gbc", $1046c6, $10486d - $1046c6 +INCBIN "baserom.gbc", $1046c6, $1047eb - $1046c6 + +Function1047eb: ; 1047eb + ld b, $9 + jp GetSGBLayout +; 1047f0 + +INCBIN "baserom.gbc", $1047f0, $10486d - $1047f0 Function10486d: ; 10486d @@ -70143,7 +79129,20 @@ Function10486d: ; 10486d ret ; 1048ba -INCBIN "baserom.gbc", $1048ba, $1050c8 - $1048ba +INCBIN "baserom.gbc", $1048ba, $1050b9 - $1048ba + +Function1050b9: ; 1050b9 + call Function105106 + ld hl, $abe3 + ld a, [hl] + inc a + jr nz, .asm_1050c5 + ld [hld], a + ld [hl], a + +.asm_1050c5 + jp CloseSRAM +; 1050c8 Function1050c8: ; 1050c8 call Function105106 @@ -70552,7 +79551,13 @@ UpdateUsedMoves: ; 105ed0 HallOfFame2: ; 0x105ef6 ret -INCBIN "baserom.gbc", $105ef7, $105f79 - $105ef7 +INCBIN "baserom.gbc", $105ef7, $105f33 - $105ef7 + +Function105f33: ; 105f33 + ret +; 105f34 + +INCBIN "baserom.gbc", $105f34, $105f79 - $105f34 Function105f79: ; 105f79 ret @@ -70605,7 +79610,19 @@ Function106094: ; 106094 ret ; 106095 -INCBIN "baserom.gbc", $106095, $1060b5 - $106095 +INCBIN "baserom.gbc", $106095, $1060a2 - $106095 + +Function1060a2: ; 1060a2 + ret +; 1060a3 + +INCBIN "baserom.gbc", $1060a3, $1060af - $1060a3 + +Function1060af: ; 1060af + ret +; 1060b0 + +INCBIN "baserom.gbc", $1060b0, $1060b5 - $1060b0 Function1060b5: ; 1060b5 ret @@ -70624,7 +79641,13 @@ Function1060c1: ; 1060c1 ret ; 1060c2 -INCBIN "baserom.gbc", $1060c2, $1060d3 - $1060c2 +INCBIN "baserom.gbc", $1060c2, $1060cd - $1060c2 + +Function1060cd: ; 1060cd + ret +; 1060ce + +INCBIN "baserom.gbc", $1060ce, $1060d3 - $1060ce Function1060d3: ; 1060d3 @@ -70870,7 +79893,20 @@ Function1062ff: ; 1062ff ret ; 10630f -INCBIN "baserom.gbc", $10630f, $106462 - $10630f +Function10630f: ; 10630f + xor a + ld [ScriptVar], a + ret +; 106314 + +INCBIN "baserom.gbc", $106314, $10632f - $106314 + +Function10632f: ; 10632f + or a + ret +; 106331 + +INCBIN "baserom.gbc", $106331, $106462 - $106331 Function106462: ; 106462 ret @@ -70920,7 +79956,238 @@ INCBIN "baserom.gbc", $1065ad, $106dbc - $1065ad SECTION "bank42",ROMX,BANK[$42] -INCBIN "baserom.gbc", $108000, $109407 - $108000 +INCBIN "baserom.gbc", $108000, $108016 - $108000 + +Function108016: ; 108016 + ld a, $0 + ld [$cf65], a + ld de, $4021 + jp Function108089 +; 108021 + +INCBIN "baserom.gbc", $108021, $108089 - $108021 + +Function108089: ; 108089 + ld hl, BattleEnded + ld [hl], e + inc hl + ld [hl], d + ld a, [$ffde] + push af + xor a + ld [$ffde], a + ld hl, VramState + ld a, [hl] + push af + res 0, [hl] + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function108157 +.asm_1080a6 + call Function10824b + jr nc, .asm_1080a6 + pop af + ld [Options], a + pop af + ld [VramState], a + pop af + ld [$ffde], a + ret +; 1080b7 + +INCBIN "baserom.gbc", $1080b7, $108157 - $1080b7 + +Function108157: ; 108157 + xor a + ld [$cf63], a + call WhiteBGMap + call ClearSprites + call ClearTileMap + call DisableLCD + call Function1081ad + call Function1081ca + call Functione51 + call Functione58 + call EnableLCD + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + xor a + ld hl, $c300 + ld [hli], a + ld [hl], $0 + call DelayFrame + ld a, [PlayerSDefLevel] + ld de, PlayerAccLevel + call Function108239 + ld a, [PlayerLightScreenCount] + ld de, PlayerReflectCount + call Function108239 + xor a + call Function108b98 + call Function108af4 + ret +; 1081ad + +Function1081ad: ; 1081ad + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, $1800 + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + ld hl, VTiles0 + ld bc, $1800 + xor a + call ByteFill + ret +; 1081ca + +Function1081ca: ; 1081ca + ld a, $1 + ld [rVBK], a + ld hl, VBGMap0 + ld bc, $0800 + ld a, $0 + call ByteFill + ld a, $0 + ld [rVBK], a + ld hl, VBGMap0 + ld bc, $0800 + ld a, $7f + call ByteFill + ret +; 1081e9 + +INCBIN "baserom.gbc", $1081e9, $108239 - $1081e9 + +Function108239: ; 108239 + push de + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + pop de + ld bc, $000b + call CopyBytes + ret +; 10824b + +Function10824b: ; 10824b + ld a, [$cf63] + bit 7, a + jr nz, .asm_10825a + call Function10827b + call DelayFrame + and a + ret + +.asm_10825a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + call Functione51 + call Functione58 + callba Function106462 + callba Function106464 + scf + ret +; 10827b + +Function10827b: ; 10827b + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $428a + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 10828a + +INCBIN "baserom.gbc", $10828a, $108af4 - $10828a + +Function108af4: ; 108af4 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [$cf65] + and $1 + jr z, .asm_108b1c + ld hl, $5187 + ld de, Unkn2Pals + ld bc, $0040 + call CopyBytes + ld hl, $5187 + ld de, OBPals + ld bc, $0040 + call CopyBytes + jr .asm_108b34 + +.asm_108b1c + ld hl, $5147 + ld de, Unkn2Pals + ld bc, $0040 + call CopyBytes + ld hl, $5147 + ld de, OBPals + ld bc, $0040 + call CopyBytes + +.asm_108b34 + pop af + ld [rSVBK], a + ld a, $e4 + call Functioncf8 + ld a, $e4 + call DmgToCgbBGPals + call DelayFrame + ret +; 108b45 + +INCBIN "baserom.gbc", $108b45, $108b98 - $108b45 + +Function108b98: ; 108b98 + ld d, a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [$cf65] + and $1 + xor d + jr z, .asm_108bad + ld hl, $4ba0 + jr .asm_108bb0 + +.asm_108bad + ld hl, $4b98 + +.asm_108bb0 + ld de, $d038 + ld bc, $0040 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 108bbd + +INCBIN "baserom.gbc", $108bbd, $109407 - $108bbd IntroLogoGFX: ; 109407 INCBIN "gfx/intro/logo.lz" @@ -71769,7 +81036,14 @@ Function1161b8: ; 1161b8 jp [hl] ; 1161c7 -INCBIN "baserom.gbc", $1161c7, $117a7f - $1161c7 +INCBIN "baserom.gbc", $1161c7, $117656 - $1161c7 + +Function117656: ; 117656 + callba GiveOddEgg + ret +; 11765d + +INCBIN "baserom.gbc", $11765d, $117a7f - $11765d ; everything from here to the end of the bank is related to the @@ -72121,7 +81395,384 @@ Function117cdd: ; 0x117cdd SECTION "bank46",ROMX,BANK[$46] -INCBIN "baserom.gbc", $118000, $118ba5 - $118000 +Function118000: ; 118000 + ld a, $1 + ld [$cd38], a + jr .asm_11800b + + xor a + ld [$cd38], a + +.asm_11800b + call Function1183cb + ld a, $18 + ld [$cd33], a + ld a, $19 + ld [$cd34], a + ld a, $4 + ld [$c3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_118024 + call Functiona57 + call Function118473 + ld a, [$cf66] + cp $1b + jr c, .asm_118037 + ld a, [$cd34] + ld [$cf66], a + +.asm_118037 + call Function1184a5 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [$cf66] + ld hl, $cd33 + cp [hl] + jr nz, .asm_118024 + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 11805f + +Function11805f: ; 11805f + ld a, $1 + ld [$cd38], a + call Function1183cb + ld a, $18 + ld [$cd33], a + ld a, $19 + ld [$cd34], a + ld a, $4 + ld [$c3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11807d + call Functiona57 + call Function118473 + ld a, [$cf66] + cp $1b + jr c, .asm_118090 + ld a, [$cd34] + ld [$cf66], a + +.asm_118090 + call Function11857c + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [$cf66] + ld hl, $cd33 + cp [hl] + jr nz, .asm_11807d + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 1180b8 + +INCBIN "baserom.gbc", $1180b8, $11811a - $1180b8 + +Function11811a: ; 11811a + ld a, 1 + ld [$cd38], a + jr Function118125 + +Function118121: ; 118121 + xor a + ld [$cd38], a + +Function118125: ; 118125 + call Function1183cb + ld a, $3 + ld [$cd33], a + ld a, $d + ld [$cd34], a + ld a, $4 + ld [$c3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11813e + call Functiona57 + call Function118473 + ld a, [$cf66] + cp $f + jr c, .asm_118151 + ld a, [$cd34] + ld [$cf66], a + +.asm_118151 + call Function11854d + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [$cf66] + ld hl, $cd33 + cp [hl] + jr nz, .asm_11813e + xor a + ld [Unkn1Pals], a + pop af + ld [rSVBK], a + call Function118452 + call Function118180 + call Function222a + ret +; 118180 + +Function118180: ; 118180 + ld a, [ScriptVar] + and a + ret nz + ld a, [$cd38] + and a + ret z + ld a, $5 + call GetSRAMBank + ld hl, $cd69 + ld de, $a89c + ld bc, $0016 + call CopyBytes + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld de, $d202 + ld c, $96 + callba Function17d0b3 + jr c, .asm_1181d0 + ld de, $d202 + ld bc, $0196 + callba Function17d1e1 + jr c, .asm_1181d0 + ld hl, $d202 + ld de, $a8b2 + ld bc, $0096 + call CopyBytes +.asm_1181c9 + pop af + ld [rSVBK], a + call CloseSRAM + ret + +.asm_1181d0 + ld a, $d3 + ld [$c300], a + ld [ScriptVar], a + jr .asm_1181c9 +; 1181da + +Function1181da: ; 1181da + call Function1183cb + ld a, $2 + ld [$cd38], a + ld a, $21 + ld [$cd33], a + ld a, $22 + ld [$cd34], a + ld a, $4 + ld [$c3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_1181f8 + call Functiona57 + call Function118473 + ld a, [$cf66] + cp $28 + jr c, .asm_11820b + ld a, [$cd34] + ld [$cf66], a + +.asm_11820b + call Function1185c3 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [$cf66] + ld hl, $cd33 + cp [hl] + jr nz, .asm_1181f8 + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 118233 + +INCBIN "baserom.gbc", $118233, $1183cb - $118233 + +Function1183cb: ; 1183cb + di + ld a, [rIE] + ld [$cd32], a + call Function2fef + xor a + ld [rIF], a + ld [$c300], a + ld [$c301], a + ld [$c302], a + ld [$cd80], a + ld [$cd65], a + ld [$cd66], a + ld [$cd67], a + ld [$cd68], a + ld [$c31a], a + ld [$cd89], a + ld [$cd8a], a + ld [$cd8b], a + ld [$c3ec], a + ld [$c3ed], a + ld [$c3ee], a + ld [$c3ef], a + ld hl, VramState + ld a, [hl] + ld [$cd7f], a + set 1, [hl] + ld a, $f + ld [rIE], a + ld a, $1 + ld [$ffc9], a + ld [$ffe9], a + ei + callba Function106462 + callba Function106464 + callba Function115d99 + callba Function11615a + ld a, $5 + call GetSRAMBank + xor a + ld [$bfff], a + call CloseSRAM + ret +; 118440 + +INCBIN "baserom.gbc", $118440, $118452 - $118440 + +Function118452: ; 118452 + di + xor a + ld [$ffc9], a + ld [$ffe9], a + ld [$ff9e], a + call Function2ff7 + xor a + ld [rIF], a + ld a, [$cd32] + ld [rIE], a + ei + ld a, [$cd7f] + ld [VramState], a + ld a, [$c300] + ld [ScriptVar], a + ret +; 118473 + +Function118473: ; 118473 + ld a, [$cd65] + and a + ret z + ld a, [$cd66] + inc a + ld [$cd66], a + cp $3c + ret nz + xor a + ld [$cd66], a + ld a, [$cd67] + inc a + ld [$cd67], a + cp $3c + ret nz + ld a, [$cd68] + inc a + ld [$cd68], a + cp $63 + jr z, .asm_1184a0 + xor a + ld [$cd67], a + ret + +.asm_1184a0 + xor a + ld [$cd65], a + ret +; 1184a5 + +Function1184a5: ; 1184a5 + ld a, [$cf66] + ld e, a + ld d, $0 + ld hl, $44b4 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1184b4 + +INCBIN "baserom.gbc", $1184b4, $11854d - $1184b4 + +Function11854d: ; 11854d + ld a, [$cf66] + ld e, a + ld d, $0 + ld hl, $455c + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11855c + +INCBIN "baserom.gbc", $11855c, $11857c - $11855c + +Function11857c: ; 11857c + ld a, [$cf66] + ld e, a + ld d, $0 + ld hl, $458b + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11858b + +INCBIN "baserom.gbc", $11858b, $1185c3 - $11858b + +Function1185c3: ; 1185c3 + ld a, [$cf66] + ld e, a + ld d, $0 + ld hl, $45d2 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1185d2 + +INCBIN "baserom.gbc", $1185d2, $118ba5 - $1185d2 ExchangeDownloadURL: ; 0x118ba5 ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt" @@ -72148,7 +81799,22 @@ IndexDownloadURL: ; 0x118ce4 db $0 -INCBIN "baserom.gbc", $118d35, $11aa13 - $118d35 +INCBIN "baserom.gbc", $118d35, $11a8fa - $118d35 + +Function11a8fa: ; 11a8fa + ld a, [$c31a] + ld e, a + ld d, $0 + ld hl, $6909 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11a909 + +INCBIN "baserom.gbc", $11a909, $11aa13 - $11a909 UnknownText_0x11aa13: ; 0x11aa13 db $0, "SAVE FILE will be", $4f @@ -72248,7 +81914,620 @@ UnknownText_0x11ac1f: ; 0x11ac1f db "Please wait…", $57 ; 0x11ac3e -INCBIN "baserom.gbc", $11ac3e, $11b98f - $11ac3e +Function11ac3e: ; 11ac3e + call SpeechTextBox + call FadeToMenu + callab Function8e814 + call Function11ac51 + call Function2b3c + ret +; 11ac51 + +Function11ac51: ; 11ac51 + xor a + ld [hBGMapMode], a + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + xor a + ld [$ffde], a + ld [$cd49], a + ld [$cd4a], a + ld [$cd4c], a + ld [$cd4d], a + ld [$cd4e], a + call Function11ad1b + call DelayFrame +.asm_11ac82 + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_11aca8 + call Function11b314 + call Function11acb7 + call Function11ad6e + ld a, $78 + ld [$c3b5], a + callba Function8cf7a + callba Function104061 + jr .asm_11ac82 + +.asm_11aca8 + call ClearSprites + pop af + ld [$ffaa], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret +; 11acb7 + +Function11acb7: ; 11acb7 + ld hl, $7a44 + ld a, [$cd49] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + ld de, $c51e + ld a, [hli] + ld [de], a + ld de, $c52c + ld bc, $0007 + call CopyBytes + ld a, [$cd49] + inc a + ld [$cd49], a + ld a, [hl] + cp $ff + jr nz, .asm_11aceb + xor a + ld [$cd49], a + +.asm_11aceb + ld hl, $7b7d + ld a, [$cd4a] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + ld de, $c557 + ld bc, $0007 + call CopyBytes + ld a, [$cd4a] + inc a + ld [$cd4a], a + inc hl + ld a, [hl] + cp $ff + ret nz + xor a + ld [$cd4a], a + ret +; 11ad1b + +Function11ad1b: ; 11ad1b + call WhiteBGMap + call ClearSprites + call ClearTileMap + callba Function17c000 + ld a, [$cfa9] + ld [$cd82], a + dec a + ld [hConnectedMapWidth], a + ld a, $10 + ld [$c3b7], a + ld hl, $683f + ld a, $23 + ld e, $4 + rst FarCall + ld hl, $683f + ld a, $23 + ld e, $5 + rst FarCall + ld hl, PlayerSDefLevel + ld bc, $0115 + xor a + call ByteFill + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ld [$cd30], a + ld a, $2 + ld [$c7d4], a + callba Function40bdc + ret +; 11ad6e + +Function11ad6e: ; 11ad6e + ld a, [$cf63] + ld hl, $6d78 + call Function11b239 + jp [hl] +; 11ad78 + +INCBIN "baserom.gbc", $11ad78, $11b239 - $11ad78 + +Function11b239: ; 11b239 + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 11b242 + +INCBIN "baserom.gbc", $11b242, $11b314 - $11b242 + +Function11b314: ; 11b314 + call Function11b31b + call Function11b3d9 + ret +; 11b31b + +Function11b31b: ; 11b31b + ld hl, $7350 + ld a, [$cf63] + cp $2 + jr c, .asm_11b349 + ld a, [$c7d1] + cp $4 + jr nc, .asm_11b344 + cp $3 + jr c, .asm_11b349 + ld a, [$cf63] + cp $2 + jr z, .asm_11b349 + cp $3 + jr z, .asm_11b349 + cp $6 + jr z, .asm_11b349 + ld bc, $737b + jr .asm_11b34c + +.asm_11b344 + ld bc, $7389 + jr .asm_11b34c + +.asm_11b349 + ld bc, $736d + +.asm_11b34c + call Function11b397 + ret +; 11b350 + +INCBIN "baserom.gbc", $11b350, $11b397 - $11b350 + +Function11b397: ; 11b397 + ld de, Sprites +.asm_11b39a + ld a, [hl] + cp $ff + ret z + ld a, [$c7d1] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [bc] + inc bc + ld [de], a + inc de + ld a, $5 + ld [de], a + inc de + jr .asm_11b39a +; 11b3b6 + +INCBIN "baserom.gbc", $11b3b6, $11b3d9 - $11b3b6 + +Function11b3d9: ; 11b3d9 + ld de, $c470 + push de + ld a, [$c7d2] + dec a + ld e, a + ld a, [$c7d1] + ld hl, $c7d0 + add [hl] + cp e + jr z, .asm_11b40d + ld hl, $0000 + ld bc, $0070 + call AddNTimes + ld e, l + ld d, h + ld b, $0 + ld a, d + or e + jr z, .asm_11b40f + ld a, [$c7d2] + ld c, a +.asm_11b401 + ld a, e + sub c + ld e, a + ld a, d + sbc $0 + ld d, a + jr c, .asm_11b40f + inc b + jr .asm_11b401 + +.asm_11b40d + ld b, $70 + +.asm_11b40f + ld a, $15 + add b + pop hl + ld [hli], a + cp $41 + jr c, .asm_11b42b + ld a, [$cf63] + cp $4 + jr z, .asm_11b43b + cp $5 + jr z, .asm_11b43b + cp $7 + jr z, .asm_11b43b + cp $8 + jr z, .asm_11b43b + +.asm_11b42b + ld a, $9b + ld [hli], a + ld a, [$cd4c] + add $3c + ld [hli], a + ld a, [$cd4c] + add $1 + ld [hl], a + ret + +.asm_11b43b + ld a, $9b + ld [hli], a + ld a, $39 + ld [hli], a + xor a + ld [hl], a + ret +; 11b444 + +Function11b444: ; 11b444 + call Function11b44b + call Function11b45c + ret +; 11b44b + +Function11b44b: ; 11b44b + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + call UpdateTime + ret +; 11b45c + +Function11b45c: ; 11b45c +.asm_11b45c + call Function11b46a + call DelayFrame + ld a, [$cf63] + cp $4 + jr nz, .asm_11b45c + ret +; 11b46a + +Function11b46a: ; 11b46a + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $7479 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11b479 + +INCBIN "baserom.gbc", $11b479, $11b5e8 - $11b479 + +Function11b5e8: ; 11b5e8 + ld a, $0 + call GetSRAMBank + ld hl, $d4ba + ld de, EnemyMoveAnimation + ld bc, $0004 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, EnemyMoveAnimation + ld de, $b08c + ld bc, $0004 + call CopyBytes + ld a, $2 + ld [$a800], a + ld a, [$a81f] + ld [$cd2a], a + ld a, [$a820] + ld [$cd2b], a + ld a, [$a821] + ld [$cd2c], a + ld a, [$a822] + ld [$cd2d], a + ld a, [$a823] + ld [$cd2e], a + ld a, [$a824] + ld [$cd2f], a + ld a, [$a825] + ld [$cd30], a + ld a, [$a826] + ld [$cd31], a + call CloseSRAM + call Function11b44b + call Function11b64c + ret +; 11b64c + +Function11b64c: ; 11b64c +.asm_11b64c + call Function11b65a + call DelayFrame + ld a, [$cf63] + cp $1 + jr nz, .asm_11b64c + ret +; 11b65a + +Function11b65a: ; 11b65a + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $7669 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11b669 + +INCBIN "baserom.gbc", $11b669, $11b7e5 - $11b669 + +Function11b7e5: ; 11b7e5 + ld a, [EnemyMovePP] + ld [PlayerLightScreenCount], a + ld [CurPartySpecies], a + ld a, [$cd81] + ld [$c74e], a + ld hl, $c63d + ld de, $c724 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld a, [PlayerMoveAccuracy] + ld [$c731], a + ld a, [PlayerMovePP] + ld [$c732], a + ld hl, $c622 + ld a, [hli] + ld [$c72f], a + ld a, [hl] + ld [$c730], a + ld bc, EnemyMovePP + callba Function4f301 + ld a, c + ld [$c733], a + call SpeechTextBox + call FadeToMenu + callba Function108016 + callba Function17d1f1 + ld a, $1 + ld [$d1e9], a + ld a, $2 + ld [InLinkBattle], a + callba Function421d8 + xor a + ld [InLinkBattle], a + callba Function14a58 + ld a, $5 + call GetSRAMBank + ld a, $5 + ld [$a800], a + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call Function2147 + ld a, d + or e + jr z, .asm_11b872 + ld a, $1 + ld [de], a + +.asm_11b872 + call Function2b3c + call Function3d47 + ret +; 11b879 + +Function11b879: ; 11b879 + callba Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, $5 + call GetSRAMBank + ld a, [$a800] + ld [ScriptVar], a + ld a, [$a890] + ld [$cd49], a + ld a, [$a891] + ld [$cd4a], a + ld a, [$a892] + ld [$cd4b], a + ld a, [$a893] + ld [$cd4c], a + call CloseSRAM + ld a, [ScriptVar] + and a + ret z + ld hl, $cd4c + ld a, [hRTCDayHi] + cp [hl] + ret nz + dec hl + ld a, [hRTCDayLo] + cp [hl] + ret nz + ld hl, $cd4a + ld a, [hRTCHours] + cp [hl] + jr nc, .asm_11b8d8 + ld a, $18 + sub [hl] + ld hl, hRTCHours + add [hl] + ld [$cd4c], a + ld a, [hRTCMinutes] + ld [$cd4b], a + xor a + ld [$cd4a], a + jr .asm_11b8e2 + +.asm_11b8d8 + ld a, [hRTCMinutes] + ld [$cd4b], a + ld a, [hRTCHours] + ld [$cd4c], a + +.asm_11b8e2 + xor a + ld l, a + ld h, a + ld b, a + ld d, a + ld a, [$cd4b] + ld e, a + ld a, [$cd4c] + ld c, $3c + call AddNTimes + add hl, de + push hl + xor a + ld l, a + ld h, a + ld b, a + ld d, a + ld a, [$cd49] + ld e, a + ld a, [$cd4a] + ld c, $3c + call AddNTimes + add hl, de + ld a, l + cpl + add $1 + ld e, a + ld a, h + cpl + adc $0 + ld d, a + pop hl + add hl, de + ld de, $ff88 + add hl, de + bit 7, h + ret z + ld a, $2 + ld [ScriptVar], a + ret +; 11b920 + +Function11b920: ; 11b920 + call Function11b44b + ld a, $5 + call GetSRAMBank + ld hl, $a81f + ld de, $c626 + ld bc, $0008 + call CopyBytes + call CloseSRAM + call Function118000 + ret +; 11b93b + +Function11b93b: ; 11b93b + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + ld hl, $a823 + ld de, EnemyMoveAnimation + ld bc, $008f + call CopyBytes + call CloseSRAM + ld a, $8 + ld [BGMapBuffer], a + ld a, $c6 + ld [$cd21], a + ld a, $11 + ld [CreditsTimer], a + ld a, $c6 + ld [$cd23], a + ld a, $41 + ld [$cd24], a + ld a, $c6 + ld [$cd25], a + ld a, $46 + ld [$cd26], a + ld a, $c6 + ld [$cd27], a + ld a, $4b + ld [$cd28], a + ld a, $c6 + ld [$cd29], a + call Function11b98f + callba Function14a58 + ret +; 11b98f Function11b98f: ; 11b98f ld hl, PartyCount @@ -72348,7 +82627,15 @@ Function11b98f: ; 11b98f ret ; 11ba38 -INCBIN "baserom.gbc", $11ba38, $11bc9e - $11ba38 +Function11ba38: ; 11ba38 + callba Functione538 + ret c + xor a + ld [ScriptVar], a + ret +; 11ba44 + +INCBIN "baserom.gbc", $11ba44, $11bc9e - $11ba44 SECTION "bank47",ROMX,BANK[$47] @@ -72666,7 +82953,78 @@ Function11c156: ; 11c156 jr .asm_11c18f ; 11c1ab -INCBIN "baserom.gbc", $11c1ab, $11c254 - $11c1ab +Function11c1ab: ; 11c1ab + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + call Function11c1b9 + pop af + ld [$ffaa], a + ret +; 11c1b9 + +Function11c1b9: ; 11c1b9 + call Function11c1ca + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call Function11c283 + pop af + ld [rSVBK], a + ret +; 11c1ca + +Function11c1ca: ; 11c1ca + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ld [$cd23], a + ld [BGMapBuffer], a + ld [$cd21], a + ld [CreditsTimer], a + ld [$cd35], a + ld [$cd2b], a + ld a, $ff + ld [$cd24], a + ld a, [$cfa9] + dec a + call Function11c254 + call WhiteBGMap + call ClearSprites + call Functionfdb + call Function11d323 + call Function32f9 + call DisableLCD + ld hl, $567e + ld de, VTiles2 + ld bc, $0060 + call CopyBytes + ld hl, $56de + ld de, VTiles0 + call Decompress + call EnableLCD + callba Function104061 + callba Function8cf53 + callba Function1500c + callba Function40c30 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, PlayerSDefLevel + ld de, LYOverrides + ld bc, Start + call CopyBytes + pop af + ld [rSVBK], a + call Function11d4aa + call Function11d3ba + ret +; 11c254 Function11c254: ; 11c254 push af @@ -72689,7 +83047,281 @@ Function11c254: ; 11c254 ret ; 11c277 -INCBIN "baserom.gbc", $11c277, $11f686 - $11c277 +INCBIN "baserom.gbc", $11c277, $11c283 - $11c277 + +Function11c283: ; 11c283 +.asm_11c283 + call Functiona57 + ld a, [hJoyPressed] + ld [hJoypadPressed], a + ld a, [$cf63] + bit 7, a + jr nz, .asm_11c2a2 + call Function11c2ac + callba Function8cf69 + callba Function104061 + jr .asm_11c283 + +.asm_11c2a2 + callba Function8cf53 + call ClearSprites + ret +; 11c2ac + +Function11c2ac: ; 11c2ac + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $42bb + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11c2bb + +INCBIN "baserom.gbc", $11c2bb, $11d323 - $11c2bb + +Function11d323: ; 11d323 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $533a + ld de, Unkn1Pals + ld bc, $0080 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 11d33a + +INCBIN "baserom.gbc", $11d33a, $11d3ba - $11d33a + +Function11d3ba: ; 11d3ba + ld a, [rSVBK] + push af + ld hl, BattleMonSpclDef + ld a, $0 + ld [$cd2d], a + ld [hli], a + ld a, $d8 + ld [$cd2e], a + ld [hl], a + ld a, $fe + ld [$cd2f], a + ld a, $54 + ld [$cd30], a + ld a, $a8 + ld [$cd31], a + ld a, $c6 + ld [$cd32], a + ld a, $4a + ld [$cd33], a + ld a, $c6 + ld [$cd34], a + ld hl, $723c + ld a, $2d + +Function11d3ef: ; 11d3ef + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + push hl + ld hl, Unkn1Pals + add hl, de + ld a, [$cd2d] + ld e, a + ld a, [$cd2e] + ld d, a + push bc +.asm_11d406 + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, .asm_11d406 + ld a, [$cd2f] + ld l, a + ld a, [$cd30] + ld h, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, l + ld [$cd2f], a + ld a, h + ld [$cd30], a + push bc + pop hl + ld c, $0 +.asm_11d43d + ld a, [hl] + cp $ff + jr z, .asm_11d453 + call Function11d493 + jr nz, .asm_11d44a + inc hl + jr .asm_11d43d + +.asm_11d44a + ld a, [hli] + ld [de], a + inc de + xor a + ld [de], a + inc de + inc c + jr .asm_11d43d + +.asm_11d453 + pop hl + ld b, $0 + add hl, bc + push hl + pop bc + ld a, [$cd31] + ld l, a + ld a, [$cd32] + ld h, a + ld a, c + ld [hli], a + ld a, b + ld [hli], a + ld a, l + ld [$cd31], a + ld a, h + ld [$cd32], a + ld a, [$cd33] + ld l, a + ld a, [$cd34] + ld h, a + ld a, e + ld [$cd2d], a + ld [hli], a + ld a, d + ld [$cd2e], a + ld [hli], a + ld a, l + ld [$cd33], a + ld a, h + ld [$cd34], a + pop hl + pop af + dec a + jr z, .asm_11d48f + jp Function11d3ef + +.asm_11d48f + pop af + ld [rSVBK], a + ret +; 11d493 + +Function11d493: ; 11d493 + push hl + push bc + push de + dec a + ld hl, rSVBK + ld e, $1 + ld [hl], e + call CheckCaughtMon + ld hl, rSVBK + ld e, $5 + ld [hl], e + pop de + pop bc + pop hl + ret +; 11d4aa + +Function11d4aa: ; 11d4aa + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, $5aac + ld bc, $7220 + xor a + ld [$cd2d], a + inc a + ld [$cd2e], a + ld a, $e +.asm_11d4c1 + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld hl, $0005 + add hl, de + ld a, [bc] + inc bc + inc bc + push bc +.asm_11d4cf + push af + push hl + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld hl, Unkn1Pals + add hl, de + ld a, [$cd2d] + ld [hli], a + inc a + ld [$cd2d], a + ld a, [$cd2e] + ld [hl], a + pop hl + ld de, $0008 + add hl, de + pop af + dec a + jr nz, .asm_11d4cf + ld hl, $cd2d + xor a + ld [hli], a + inc [hl] + pop bc + pop hl + pop af + dec a + jr nz, .asm_11d4c1 + pop af + ld [rSVBK], a + ret +; 11d4fe + +INCBIN "baserom.gbc", $11d4fe, $11f686 - $11d4fe SECTION "bank48",ROMX,BANK[$48] @@ -73516,7 +84148,114 @@ INCBIN "gfx/pics/201r/back.lz" SECTION "bank5B",ROMX,BANK[$5B] -INCBIN "baserom.gbc", $16c000, $16d69a - $16c000 +INCBIN "baserom.gbc", $16c000, $16d421 - $16c000 + +Function16d421: ; 16d421 + ld de, $4fc1 + ld hl, VTiles2 + ld bc, $5b46 + call Get2bpp + ret +; 16d42e + +Function16d42e: ; 16d42e + ld hl, $5465 + ld de, TileMap + ld bc, $0168 + call CopyBytes + ret +; 16d43b + +INCBIN "baserom.gbc", $16d43b, $16d61d - $16d43b + +Function16d61d: ; 16d61d + ld h, d + ld l, e + push bc + push hl + call Function16d640 + pop hl + pop bc + ld de, $0939 + add hl, de + inc b + inc b + inc c + inc c + ld a, $7 +.asm_16d630 + push bc + push hl +.asm_16d632 + ld [hli], a + dec c + jr nz, .asm_16d632 + pop hl + ld de, $0014 + add hl, de + pop bc + dec b + jr nz, .asm_16d630 + ret +; 16d640 + +Function16d640: ; 16d640 + push hl + ld a, $30 + ld [hli], a + inc a + call Function16d66d + inc a + ld [hl], a + pop hl + ld de, $0014 + add hl, de +.asm_16d64f + push hl + ld a, $33 + ld [hli], a + ld a, $7f + call Function16d66d + ld [hl], $34 + pop hl + ld de, $0014 + add hl, de + dec b + jr nz, .asm_16d64f + ld a, $35 + ld [hli], a + ld a, $36 + call Function16d66d + ld [hl], $37 + ret +; 16d66d + +Function16d66d: ; 16d66d + ld d, c +.asm_16d66e + ld [hli], a + dec d + jr nz, .asm_16d66e + ret +; 16d673 + +Function16d673: ; 16d673 + call Function16d696 + call Function16d6ae + callba Function49856 + callba Functionfb60d + ld hl, $c5fe + ld de, $568f + call PlaceString + ret +; 16d68f + +INCBIN "baserom.gbc", $16d68f, $16d696 - $16d68f + +Function16d696: ; 16d696 + call Function16d421 + ret +; 16d69a Function16d69a: ; 16d69a @@ -73527,12 +84266,387 @@ Function16d69a: ; 16d69a ret ; 16d6a7 -INCBIN "baserom.gbc", $16d6a7, $16d7fe - $16d6a7 +Function16d6a7: ; 16d6a7 + callba Function49811 + ret +; 16d6ae + +Function16d6ae: ; 16d6ae + call Function16d42e + ld hl, $55cd + ld de, TileMap + ld bc, $0028 + call CopyBytes + ld hl, $55f5 + ld de, $c5e0 + ld bc, $0028 + call CopyBytes + ret +; 16d6ca + +Function16d6ca: ; 16d6ca + call Function16d61d + ret +; 16d6ce + +Function16d6ce: ; 16d6ce + call Function1d6e + call Function16d6e1 + callba Function87d + call Function1d7d + call Function3200 + ret +; 16d6e1 + +Function16d6e1: ; 16d6e1 + ld hl, $c56c + ld b, $1 + ld c, $a + ld a, $10 + call Predef + ld hl, $c581 + ld de, $5701 + call PlaceString + call WaitBGMap + call Function3200 + ld c, $32 + jp DelayFrames +; 16d701 + +INCBIN "baserom.gbc", $16d701, $16d70c - $16d701 + +Function16d70c: ; 16d70c + call Function16d725 + call Function16d713 + ret +; 16d713 + +Function16d713: ; 16d713 + push bc + push af + ld a, [$ffa9] + and $f0 + ld b, a + ld a, [hJoyPressed] + and $f + or b + ld b, a + pop af + ld a, b + pop bc + ld d, a + ret +; 16d725 + +Function16d725: ; 16d725 + ld hl, $cfa6 + res 7, [hl] + ld a, [hBGMapMode] + push af + call Function16d734 + pop af + ld [hBGMapMode], a + ret +; 16d734 + +Function16d734: ; 16d734 +.asm_16d734 + call Function16d77a + call Function16d759 + call Function16d76a + jr nc, .asm_16d758 + callba Function24270 + jr c, .asm_16d758 + ld a, [$cfa5] + bit 7, a + jr nz, .asm_16d758 + call Function16d713 + ld b, a + ld a, [$cfa8] + and b + jr z, .asm_16d734 + +.asm_16d758 + ret +; 16d759 + +Function16d759: ; 16d759 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + pop af + ld [hOAMUpdate], a + xor a + ld [hBGMapMode], a + ret +; 16d76a + +Function16d76a: ; 16d76a +.asm_16d76a + call RTC + call Function16d7e7 + ret c + ld a, [$cfa5] + bit 7, a + jr z, .asm_16d76a + and a + ret +; 16d77a + +Function16d77a: ; 16d77a + ld hl, $cfac + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + cp $1f + jr nz, .asm_16d792 + ld a, [$cfab] + ld [hl], a + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], a + pop bc + pop hl + +.asm_16d792 + ld a, [$cfa1] + ld b, a + ld a, [$cfa2] + ld c, a + call Function1d05 + ld a, [$cfa7] + swap a + and $f + ld c, a + ld a, [$cfa9] + ld b, a + xor a + dec b + jr z, .asm_16d7b1 +.asm_16d7ad + add c + dec b + jr nz, .asm_16d7ad + +.asm_16d7b1 + ld c, $14 + call AddNTimes + ld a, [$cfa7] + and $f + ld c, a + ld a, [$cfaa] + ld b, a + xor a + dec b + jr z, .asm_16d7c8 +.asm_16d7c4 + add c + dec b + jr nz, .asm_16d7c4 + +.asm_16d7c8 + ld c, a + add hl, bc + ld a, [hl] + cp $1f + jr z, .asm_16d7de + ld [$cfab], a + ld [hl], $1f + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $1f + pop bc + pop hl + +.asm_16d7de + ld a, l + ld [$cfac], a + ld a, h + ld [$cfad], a + ret +; 16d7e7 + +Function16d7e7: ; 16d7e7 + ld a, [$cfa5] + bit 6, a + jr z, .asm_16d7f4 + callba Function8cf62 + +.asm_16d7f4 + call Functiona57 + call Function16d713 + and a + ret z + scf + ret +; 16d7fe SECTION "bank5C",ROMX,BANK[$5C] -INCBIN "baserom.gbc", $170000, $170923 - $170000 +INCBIN "baserom.gbc", $170000, $1700b0 - $170000 + +Function1700b0: ; 1700b0 + call Function17021e + callba Function118121 + ret +; 1700ba + +Function1700ba: ; 1700ba + call Function17021e + callba Function11811a + ret +; 1700c4 + +INCBIN "baserom.gbc", $1700c4, $170114 - $1700c4 + +Function170114: ; 170114 + call Function17021e + call Function170121 + callba Function11805f + ret +; 170121 + +Function170121: ; 170121 + ld a, $5 + call GetSRAMBank + ld hl, $a948 + ld de, EnemyMoveAnimation + ld bc, $00f6 + call CopyBytes + call CloseSRAM + call Function170c8b + ret +; 170139 + +INCBIN "baserom.gbc", $170139, $170215 - $170139 + +Function170215: ; 170215 + xor a + ld [$cf63], a + call Function17022c + ret +; 17021d + +Function17021d: ; 17021d + ret +; 17021e + +Function17021e: ; 17021e + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ret +; 17022c + +Function17022c: ; 17022c +.asm_17022c + call Function17023a + call DelayFrame + ld a, [$cf63] + cp $1 + jr nz, .asm_17022c + ret +; 17023a + +Function17023a: ; 17023a + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $4249 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170249 + +INCBIN "baserom.gbc", $170249, $1704e1 - $170249 + +Function1704e1: ; 1704e1 + call SpeechTextBox + call FadeToMenu + call Function17021e + call Function1704f1 + call Function2b3c + ret +; 1704f1 + +Function1704f1: ; 1704f1 + call WhiteBGMap + call ClearSprites + call Functionfdb +.asm_1704fa + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_17050f + call Function170510 + callba Function104061 + jr .asm_1704fa + +.asm_17050f + ret +; 170510 + +Function170510: ; 170510 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $451f + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17051f + +INCBIN "baserom.gbc", $17051f, $170687 - $17051f + +Function170687: ; 170687 + ld a, [ScriptVar] + ld e, a + ld d, $0 + ld hl, $4696 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170696 + +INCBIN "baserom.gbc", $170696, $17089a - $170696 + +Function17089a: ; 17089a + ld a, [$cfcd] + and a + jr z, .asm_1708ad + callba Function14bcb + jr z, .asm_1708ab + xor a + jr .asm_1708ad + +.asm_1708ab + ld a, $1 + +.asm_1708ad + ld [ScriptVar], a + ret +; 1708b1 + +INCBIN "baserom.gbc", $1708b1, $170923 - $1708b1 Function170923: ; 170923 @@ -73548,7 +84662,85 @@ Function170923: ; 170923 ret ; 17093c -INCBIN "baserom.gbc", $17093c, $17367f - $17093c +INCBIN "baserom.gbc", $17093c, $170b44 - $17093c + +Function170b44: ; 170b44 + callba Function1f8000 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, $d10a + ld a, [hl] + dec a + ld c, a + ld b, $0 + pop af + ld [rSVBK], a + ld hl, $4b90 + add hl, bc + ld a, [hl] + ld [$cd49], a + ld a, [ScriptVar] + dec a + sla a + ld e, a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld d, $0 + ld hl, MapObjects + add hl, bc + inc hl + ld a, [$cd49] + ld [hl], a + ld hl, UsedSprites + add hl, de + ld [hli], a + ld [$ffbd], a + ld a, [hl] + ld [$ffbe], a + callba Function143c8 + ret +; 170b90 + +INCBIN "baserom.gbc", $170b90, $170bd2 - $170b90 + +Function170bd2: ; 170bd2 + ret +; 170bd3 + +Function170bd3: ; 170bd3 + callba Function8b201 + jr c, .asm_170bde + xor a + jr .asm_170be0 + +.asm_170bde + ld a, $1 + +.asm_170be0 + ld [ScriptVar], a + ret +; 170be4 + +INCBIN "baserom.gbc", $170be4, $170c8b - $170be4 + +Function170c8b: ; 170c8b + ld hl, LastPlayerCounterMove + ld b, $5 +.asm_170c90 + ld a, [hl] + xor $ff + ld [hli], a + dec b + jr nz, .asm_170c90 + ret +; 170c98 + +INCBIN "baserom.gbc", $170c98, $17367f - $170c98 SECTION "bank5D",ROMX,BANK[$5D] @@ -73649,7 +84841,427 @@ Function17c000: ; 17c000 ret ; 17c083 -INCBIN "baserom.gbc", $17c083, $17f036 - $17c083 +INCBIN "baserom.gbc", $17c083, $17d0b3 - $17c083 + +Function17d0b3: ; 17d0b3 +.asm_17d0b3 + ld a, [de] + inc de + and a + jr z, .asm_17d0ee + cp $60 + jr nc, .asm_17d0ee + cp $4e + jr z, .asm_17d0ee + cp $50 + jr z, .asm_17d0ee + cp $5 + jr c, .asm_17d0ec + cp $14 + jr c, .asm_17d0ee + cp $19 + jr c, .asm_17d0ec + cp $1d + jr c, .asm_17d0ee + cp $26 + jr c, .asm_17d0ec + cp $35 + jr c, .asm_17d0ee + cp $3a + jr c, .asm_17d0ec + cp $3f + jr c, .asm_17d0ee + cp $40 + jr c, .asm_17d0ec + cp $49 + jr c, .asm_17d0ee + +.asm_17d0ec + scf + ret + +.asm_17d0ee + dec c + jr nz, .asm_17d0b3 + and a + ret +; 17d0f3 + +INCBIN "baserom.gbc", $17d0f3, $17d1e1 - $17d0f3 + +Function17d1e1: ; 17d1e1 +.asm_17d1e1 + ld a, [de] + inc de + cp $4e + jr nz, .asm_17d1ea + dec b + jr z, .asm_17d1ef + +.asm_17d1ea + dec c + jr nz, .asm_17d1e1 + and a + ret + +.asm_17d1ef + scf + ret +; 17d1f1 + +Function17d1f1: ; 17d1f1 + ld a, [CurPartySpecies] + dec a + call SetSeenAndCaughtMon + ld a, [CurPartySpecies] + cp $c9 + jr nz, .asm_17d223 + ld hl, PartyMon1DVs + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld a, $2d + call Predef + callab Functionfba18 + ld a, [$def4] + and a + jr nz, .asm_17d223 + ld a, [UnownLetter] + ld [$def4], a + +.asm_17d223 + ret +; 17d224 + +Function17d224: ; 17d224 + ld a, [ScriptVar] + and a + jr nz, .asm_17d234 + ld a, $4 + ld [ScriptVar], a + ld hl, $526a + jr .asm_17d23c + +.asm_17d234 + ld a, $4 + ld [ScriptVar], a + ld hl, $528f + +.asm_17d23c + call LoadMenuDataHeader + call Function17d246 + call Function1c17 + ret +; 17d246 + +Function17d246: ; 17d246 + call Function1d81 + jr c, .asm_17d264 + ld a, [ScriptVar] + cp $5 + jr nz, .asm_17d25d + ld a, [$cfa9] + cp $3 + ret z + jr c, .asm_17d25d + dec a + jr .asm_17d260 + +.asm_17d25d + ld a, [$cfa9] + +.asm_17d260 + ld [ScriptVar], a + ret + +.asm_17d264 + ld a, $4 + ld [ScriptVar], a + ret +; 17d26a + +INCBIN "baserom.gbc", $17d26a, $17d2b6 - $17d26a + +Function17d2b6: ; 17d2b6 + call Function17d2c0 + callba Function1181da + ret +; 17d2c0 + +Function17d2c0: ; 17d2c0 + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ret +; 17d2ce + +Function17d2ce: ; 17d2ce + ld a, $5 + call GetSRAMBank + ld a, [$aa72] + call CloseSRAM + and a + jr nz, .asm_17d2e2 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_17d2e2 + call Function17d314 + ret c + call SpeechTextBox + call FadeToMenu + ld a, [rSVBK] + push af + ld a, $4 + ld [rSVBK], a + call Function17d370 + call Function17d45a + pop af + ld [rSVBK], a + ld de, $0066 + ld a, e + ld [CurMusic], a + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + call StartMusic + call Function222a + call Function2b3c + ret +; 17d314 + +Function17d314: ; 17d314 + ld a, $5 + call GetSRAMBank + ld a, [$b1b1] + call CloseSRAM + cp $21 + jr nc, .asm_17d354 + ld a, $6 + call GetSRAMBank + ld l, $0 + ld h, l + ld de, $a006 + ld a, [$a004] + ld c, a + ld a, [$a005] + ld b, a +.asm_17d336 + push bc + ld a, [de] + inc de + ld c, a + ld b, $0 + add hl, bc + pop bc + dec bc + ld a, b + or c + jr nz, .asm_17d336 + ld a, [$a002] + cp l + jr nz, .asm_17d354 + ld a, [$a003] + cp h + jr nz, .asm_17d354 + call CloseSRAM + and a + ret + +.asm_17d354 + call CloseSRAM + ld a, $5 + call GetSRAMBank + xor a + ld hl, $aa73 + ld bc, $000c + call ByteFill + call CloseSRAM + ld a, $2 + ld [ScriptVar], a + scf + ret +; 17d370 + +Function17d370: ; 17d370 + xor a + ld [$cd77], a + ld [$cd78], a + ld [$cd79], a + dec a + ld [$cd6c], a + call WhiteBGMap + call ClearSprites + call Functionfdb + callba Function104061 + call DisableLCD + ld hl, $8ee0 + ld de, EnemyMoveAnimation + ld bc, $0010 + call CopyBytes + ld a, $1 + ld [rVBK], a + ld hl, $66fe + ld de, VTiles1 + ld bc, $0480 + call CopyBytes + xor a + ld hl, $97f0 + ld bc, $0010 + call ByteFill + ld hl, EnemyMoveAnimation + ld de, $8ee0 + ld bc, $0010 + call CopyBytes + xor a + ld [rVBK], a + ld hl, $6b7e + ld de, $9600 + ld bc, $0010 + call CopyBytes + call EnableLCD + call Function17d60b + ld a, $0 + ld [BGMapBuffer], a + ld a, $d0 + ld [$cd21], a + ld a, $6 + call GetSRAMBank + ld hl, $a006 + ld de, Unkn1Pals + ld bc, $1000 + call CopyBytes + call CloseSRAM + ret +; 17d3f6 + +INCBIN "baserom.gbc", $17d3f6, $17d45a - $17d3f6 + +Function17d45a: ; 17d45a +.asm_17d45a + call Functiona57 + ld a, [$cd77] + bit 7, a + jr nz, .asm_17d46f + call Function17d474 + callba Function104061 + jr .asm_17d45a + +.asm_17d46f + xor a + ld [ScriptVar], a + ret +; 17d474 + +Function17d474: ; 17d474 + ld a, [$cd77] + ld e, a + ld d, $0 + ld hl, $5483 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17d483 + +INCBIN "baserom.gbc", $17d483, $17d60b - $17d483 + +Function17d60b: ; 17d60b + ld a, $5 + call GetSRAMBank + ld hl, $b1d3 + ld de, EnemyMoveAnimation + ld bc, $0020 + call CopyBytes + ld a, [$b1b1] + ld c, a + ld a, [$b1b2] + ld b, a + ld a, [$b1b3] + ld l, a + ld a, [$b1b4] + ld h, a + call CloseSRAM + ld a, $6 + call GetSRAMBank + ld de, $c708 + ld a, c + and a + jr z, .asm_17d684 +.asm_17d63b + push bc + ld a, l + ld [de], a + inc de + ld a, h + ld [de], a + inc de + ld bc, $000a + add hl, bc + pop bc + ld a, [hli] + ld [$cd4a], a + ld a, [hli] + ld [$cd49], a + push hl + push de + ld hl, EnemyMoveAnimation + ld e, b + ld d, $0 + add hl, de + ld a, [hli] + ld [$cd4b], a + ld a, [hl] + ld [$cd4c], a + pop de + pop hl + inc b + inc b + dec c + dec c + jr z, .asm_17d684 + push bc + push de + ld a, [$cd49] + ld c, a + ld a, [$cd4a] + ld b, a + ld a, [$cd4b] + ld e, a + ld a, [$cd4c] + ld d, a +.asm_17d67a + add hl, de + dec bc + ld a, c + or b + jr nz, .asm_17d67a + pop de + pop bc + jr .asm_17d63b + +.asm_17d684 + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $c708 + ld de, $b1b3 + ld a, [$b1b1] + ld c, a + ld a, [$b1b2] + ld b, a + call CopyBytes + call CloseSRAM + ret +; 17d6a1 + +INCBIN "baserom.gbc", $17d6a1, $17f036 - $17d6a1 Function17f036: ; 17f036 @@ -74558,7 +86170,20 @@ Function17f524: ; 17f524 jr .asm_17f536 ; 17f53d -INCBIN "baserom.gbc", $17f53d, $17f555 - $17f53d +Function17f53d: ; 17f53d + call FadeToMenu + xor a + ld [$c303], a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + call Function17f555 + pop af + ld [rSVBK], a + call Function2b4d + ret +; 17f555 Function17f555: ; 17f555 .asm_17f555 @@ -75235,11 +86860,281 @@ UnownFont: ; 1dc000 INCBIN "gfx/misc/unown_font.2bpp" ; 1dc1b0 -INCBIN "baserom.gbc", $1dc1b0, $1dc5a1 - $1dc1b0 +INCBIN "baserom.gbc", $1dc1b0, $1dc381 - $1dc1b0 + +Function1dc381: ; 1dc381 + call WhiteBGMap + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call Functione58 + ld de, $4591 + ld hl, $9710 + ld bc, $7701 + call Request1bpp + ld de, $4599 + ld hl, $96e0 + ld bc, $7701 + call Request1bpp + ld de, $4a90 + ld hl, $93f0 + ld bc, $3e01 + call Get2bpp + xor a + ld [MonType], a + callba Function5084a + ld hl, $c52c + ld b, $9 + ld c, $12 + call TextBox + ld hl, $c4d0 + ld a, [TempMonLevel] + call Function383d + ld hl, $c4d4 + ld [hl], $71 + inc hl + ld de, TempMonMaxHP + ld bc, $0203 + call PrintNum + ld a, [CurPartySpecies] + ld [$d265], a + ld [CurSpecies], a + ld hl, PartyMon1Nickname + call Function1dc50e + ld hl, $c4f8 + call PlaceString + ld hl, $c521 + ld [hl], $f3 + call GetPokemonName + ld hl, $c522 + call PlaceString + ld hl, $c4a8 + ld [hl], $74 + inc hl + ld [hl], $e8 + inc hl + ld de, $d265 + ld bc, $8103 + call PrintNum + ld hl, $c555 + ld de, $4550 + call PlaceString + ld hl, PartyMon1OT + call Function1dc50e + ld hl, $c558 + call PlaceString + ld hl, $c57d + ld de, $4559 + call PlaceString + ld hl, $c580 + ld de, TempMonID + ld bc, $8205 + call PrintNum + ld hl, $c5b9 + ld de, $4554 + call PlaceString + ld hl, $c5bf + ld a, [TempMonMove1] + call Function1dc51a + call Function1dc52c + ld hl, TempMonDVs + ld a, $2d + call Predef + ld hl, $c2c6 + xor a + ld [hl], a + ld a, [CurPartySpecies] + cp $c9 + jr z, .asm_1dc469 + inc [hl] + +.asm_1dc469 + ld hl, TileMap + call Function378b + call WaitBGMap + ld b, $3 + call GetSGBLayout + call Function32f9 + ret +; 1dc47b + +Function1dc47b: ; 1dc47b + call WhiteBGMap + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call Functione58 + xor a + ld [MonType], a + callba Function5084a + ld hl, TileMap + ld b, $f + ld c, $12 + call TextBox + ld bc, $0014 + ld de, TileMap + ld hl, $c4b4 + call CopyBytes + ld hl, $c4a7 + ld a, [TempMonMove2] + call Function1dc51a + ld hl, $c4cf + ld a, [TempMonMove3] + call Function1dc51a + ld hl, $c4f7 + ld a, [TempMonMove4] + call Function1dc51a + ld hl, $c533 + ld de, $455d + call PlaceString + ld hl, $c53c + ld de, TempMonAtk + call Function1dc507 + ld hl, $c564 + ld de, TempMonDef + call Function1dc507 + ld hl, $c58c + ld de, TempMonSpclAtk + call Function1dc507 + ld hl, $c5b4 + ld de, TempMonSpclDef + call Function1dc507 + ld hl, $c5dc + ld de, TempMonSpd + call Function1dc507 + call WaitBGMap + ld b, $3 + call GetSGBLayout + call Function32f9 + ret +; 1dc507 + +Function1dc507: ; 1dc507 + ld bc, $0203 + call PrintNum + ret +; 1dc50e + +Function1dc50e: ; 1dc50e + ld bc, $000b + ld a, [CurPartyMon] + call AddNTimes + ld e, l + ld d, h + ret +; 1dc51a + +Function1dc51a: ; 1dc51a + and a + jr z, .asm_1dc525 + ld [$d265], a + call GetMoveName + jr .asm_1dc528 + +.asm_1dc525 + ld de, $4584 + +.asm_1dc528 + call PlaceString + ret +; 1dc52c + +Function1dc52c: ; 1dc52c + callba GetGender + ld a, $7f + jr c, .asm_1dc53c + ld a, $ef + jr nz, .asm_1dc53c + ld a, $f5 + +.asm_1dc53c + ld hl, $c4d9 + ld [hl], a + ld bc, TempMonDVs + callba CheckShininess + ret nc + ld hl, $c4da + ld [hl], $3f + ret +; 1dc550 + +INCBIN "baserom.gbc", $1dc550, $1dc5a1 - $1dc550 INCLUDE "tilesets/data_7.asm" -INCBIN "baserom.gbc", $1dd6a9, $1ddf1c - $1dd6a9 +INCBIN "baserom.gbc", $1dd6a9, $1dd702 - $1dd6a9 + +Function1dd702: ; 1dd702 + call Function1dd709 + call Functiona80 + ret +; 1dd709 + +Function1dd709: ; 1dd709 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + ld hl, $5805 + ld de, VTiles2 + call Decompress + ld hl, $5c4b + ld de, TileMap + ld bc, $0168 + call CopyBytes + ld de, $5760 + ld hl, $c506 + call PlaceString + ld de, $5767 + ld hl, $c513 + call PlaceString + ld de, PlayerName + ld hl, $c50d + call PlaceString + ld de, $5768 + ld hl, $c542 + call PlaceString + call EnableLCD + call WaitBGMap + ld b, $8 + call GetSGBLayout + call Function32f9 + call DelayFrame + ret +; 1dd760 + +INCBIN "baserom.gbc", $1dd760, $1dd7ae - $1dd760 + +Function1dd7ae: ; 1dd7ae + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld hl, $5db3 + ld de, TileMap + ld bc, $0168 + call CopyBytes + ld de, $57fa + ld hl, $c4a8 + call PlaceString + ld de, $57f0 + ld hl, $c5cf + call PlaceString + ld hl, $c5d8 + ld de, GameTimeHours + ld bc, $0204 + call PrintNum + ld [hl], $67 + inc hl + ld de, GameTimeMinutes + ld bc, $8102 + call PrintNum + ret +; 1dd7f0 + +INCBIN "baserom.gbc", $1dd7f0, $1ddf1c - $1dd7f0 Function1ddf1c: ; 1ddf1c @@ -75413,7 +87308,85 @@ Function1de5c8: ; 1de5c8 ret ; 1de5e6 -INCBIN "baserom.gbc", $1de5e6, $1df238 - $1de5e6 +INCBIN "baserom.gbc", $1de5e6, $1df1e6 - $1de5e6 + +Function1df1e6: ; 1df1e6 + ld b, $21 + ld h, d + ld l, e +.asm_1df1ea + ld a, [hl] + cp $dc + jr nz, .asm_1df1f3 + ld a, $d4 + jr .asm_1df1fd + +.asm_1df1f3 + sub $d4 + jr c, .asm_1df1fe + cp $3 + jr nc, .asm_1df1fe + add $cd + +.asm_1df1fd + ld [hl], a + +.asm_1df1fe + inc hl + dec b + jr nz, .asm_1df1ea + ret +; 1df203 + +Function1df203: ; 1df203 + ld b, $21 + ld h, d + ld l, e +.asm_1df207 + ld a, [hl] + cp $d4 + jr nz, .asm_1df210 + ld a, $dc + jr .asm_1df21a + +.asm_1df210 + sub $cd + jr c, .asm_1df21b + cp $3 + jr nc, .asm_1df21b + add $d4 + +.asm_1df21a + ld [hl], a + +.asm_1df21b + inc hl + dec b + jr nz, .asm_1df207 + ret +; 1df220 + +Function1df220: ; 1df220 + ld b, $21 + ld h, d + ld l, e +.asm_1df224 + ld a, [hl] + and $f0 + cp $d0 + jr nz, .asm_1df233 + ld a, [hl] + add $8 + and $f + or $d0 + ld [hl], a + +.asm_1df233 + inc hl + dec b + jr nz, .asm_1df224 + ret +; 1df238 SECTION "bank78",ROMX,BANK[$78]