diff options
Diffstat (limited to 'scripts')
223 files changed, 29063 insertions, 0 deletions
diff --git a/scripts/agatha.asm b/scripts/agatha.asm new file mode 100755 index 00000000..749f84e7 --- /dev/null +++ b/scripts/agatha.asm @@ -0,0 +1,157 @@ +AgathaScript: ; 7642d (1d:642d) + call AgathaScript_76443 + call EnableAutoTextBoxDrawing + ld hl, AgathaTrainerHeaders + ld de, AgathaScriptPointers + ld a, [W_AGATHACURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_AGATHACURSCRIPT], a + ret + +AgathaScript_76443: ; 76443 (1d:6443) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d865] + bit 1, a + jr z, .asm_76457 + ld a, $e + jp AgathaScript_76459 +.asm_76457 + ld a, $3b + +AgathaScript_76459: ; 76459 (1d:6459) + ld [$d09f], a + ld bc, $2 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +AgathaScript_76464: ; 76464 (1d:6464) + xor a + ld [W_AGATHACURSCRIPT], a + ret + +AgathaScriptPointers: ; 76469 (1d:6469) + dw AgathaScript0 + dw Func_324c + dw AgathaScript2 + dw AgathaScript3 + dw AgathaScript4 + +AgathaScript4: ; 76473 (1d:6473) + ret +asm_76474: ; 76474 (1d:6474) + ld hl, $ccd3 + ld a, $40 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $6 + ld [$cd38], a + call Func_3486 + ld a, $3 + ld [W_AGATHACURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +AgathaScript0: ; 76490 (1d:6490) + ld hl, CoordsData_764d1 + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + xor a + ld [H_NEWLYPRESSEDBUTTONS], a + ld [H_CURRENTPRESSEDBUTTONS], a + ld [$ccd3], a + ld [$cd38], a + ld a, [wWhichTrade] ; $cd3d + cp $3 + jr c, .asm_764b4 + ld hl, $d865 + bit 6, [hl] + set 6, [hl] + jr z, asm_76474 +.asm_764b4 + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, $40 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + call Func_3486 + ld a, $3 + ld [W_AGATHACURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CoordsData_764d1: ; 764d1 (1d:64d1) + db $0A,$04 + db $0A,$05 + db $0B,$04 + db $0B,$05 + db $FF + +AgathaScript3: ; 764da (1d:64da) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_AGATHACURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +AgathaScript2: ; 764ed (1d:64ed) + call EndTrainerBattle + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, AgathaScript_76464 + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, $1 + ld [W_GARYCURSCRIPT], a + ret + +AgathaTextPointers: ; 76505 (1d:6505) + dw AgathaText1 + dw AgathaText2 + +AgathaTrainerHeaders: ; 76509 (1d:6509) +AgathaTrainerHeader0: ; 76509 (1d:6509) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d865 ; flag's byte + dw AgathaBeforeBattleText ; 0x6520 TextBeforeBattle + dw AgathaAfterBattleText ; 0x652a TextAfterBattle + dw AgathaEndBattleText ; 0x6525 TextEndBattle + dw AgathaEndBattleText ; 0x6525 TextEndBattle + + db $ff + +AgathaText1: ; 76516 (1d:6516) + db $08 ; asm + ld hl, AgathaTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +AgathaBeforeBattleText: ; 76520 (1d:6520) + TX_FAR _AgathaBeforeBattleText + db "@" + +AgathaEndBattleText: ; 76525 (1d:6525) + TX_FAR _AgathaEndBattleText + db "@" + +AgathaAfterBattleText: ; 7652a (1d:652a) + TX_FAR _AgathaAfterBattleText + db "@" + +AgathaText2: ; 7652f (1d:652f) + TX_FAR _AgathaText2 + db "@" diff --git a/scripts/battlecenterm.asm b/scripts/battlecenterm.asm new file mode 100755 index 00000000..846b78fb --- /dev/null +++ b/scripts/battlecenterm.asm @@ -0,0 +1,38 @@ +BattleCenterMScript: ; 4fd10 (13:7d10) + call EnableAutoTextBoxDrawing + ld a, [$ffaa] + cp $2 + ld a, $8 + jr z, .asm_4fd1d ; 0x4fd19 $2 + ld a, $c +.asm_4fd1d + ld [$ff8d], a + ld a, $1 + ld [$ff8c], a + call Func_34ae + ld hl, $d72d + bit 0, [hl] + set 0, [hl] + ret nz + ld hl, $c214 + ld a, $8 + ld [hli], a + ld a, $a + ld [hl], a + ld a, $8 + ld [$c119], a + ld a, [$ffaa] + cp $2 + ret z + ld a, $7 + ld [$c215], a + ld a, $c + ld [$c119], a + ret + +BattleCenterMTextPointers: ; 4fd4c (13:7d4c) + dw BattleCenterMText1 + +BattleCenterMText1: ; 4fd4e (13:7d4e) + TX_FAR _BattleCenterMText1 + db "@" diff --git a/scripts/bikeshop.asm b/scripts/bikeshop.asm new file mode 100755 index 00000000..a4e06601 --- /dev/null +++ b/scripts/bikeshop.asm @@ -0,0 +1,153 @@ +BikeShopScript: ; 1d73c (7:573c) + jp EnableAutoTextBoxDrawing + +BikeShopTextPointers: ; 1d73f (7:573f) + dw BikeShopText1 + dw BikeShopText2 + dw BikeShopText3 + +BikeShopText1: ; 1d745 (7:5745) + db $08 ; asm + ld a, [$d75f] + bit 0, a + jr z, .asm_260d4 ; 0x1d74b + ld hl, BikeShopText_1d82f + call PrintText + jp .Done +.asm_260d4 ; 0x1d756 + ld b, BIKE_VOUCHER + call IsItemInBag + jr z, .asm_41190 ; 0x1d75b + ld hl, BikeShopText_1d81f + call PrintText + ld bc, (BICYCLE << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, BIKE_VOUCHER + ldh [$db], a + ld b, BANK(RemoveItemByID) + ld hl, RemoveItemByID + call Bankswitch + ld hl, $d75f + set 0, [hl] + ld hl, BikeShopText_1d824 + call PrintText + jr .Done +.BagFull + ld hl, BikeShopText_1d834 + call PrintText + jr .Done +.asm_41190 ; 0x1d78c + ld hl, BikeShopText_1d810 + call PrintText + xor a + ld [$cc26], a + ld [$cc2a], a + ld a, $3 + ld [$cc29], a + ld a, $1 + ld [$cc28], a + ld a, $2 + ld [$cc24], a + ld a, $1 + ld [$cc25], a + ld hl, $d730 + set 6, [hl] + ld hl, wTileMap + ld b, $4 + ld c, $f + call TextBoxBorder + call UpdateSprites + FuncCoord 2, 2 ; $c3ca + ld hl, Coord + ld de, BikeShopMenuText + call PlaceString + FuncCoord 8, 3 ; $c3e4 + ld hl, Coord + ld de, BikeShopMenuPrice + call PlaceString + ld hl, BikeShopText_1d815 + call PrintText + call HandleMenuInput + bit 1, a + jr nz, .asm_b7579 ; 0x1d7dc + ld hl, $d730 + res 6, [hl] + ld a, [$cc26] + and a + jr nz, .asm_b7579 ; 0x1d7e7 + ld hl, BikeShopText_1d81a + call PrintText +.asm_b7579 ; 0x1d7ef + ld hl, BikeShopText_1d82a + call PrintText +.Done + jp TextScriptEnd + +BikeShopMenuText: ; 1d7f8 (7:57f8) + db "BICYCLE" + next "CANCEL@" + +BikeShopMenuPrice: ; 1d807 (7:5807) + db "¥1000000@" + +BikeShopText_1d810: ; 1d810 (7:5810) + TX_FAR _BikeShopText_1d810 + db "@" + +BikeShopText_1d815: ; 1d815 (7:5815) + TX_FAR _BikeShopText_1d815 + db "@" + +BikeShopText_1d81a: ; 1d81a (7:581a) + TX_FAR _BikeShopText_1d81a + db "@" + +BikeShopText_1d81f: ; 1d81f (7:581f) + TX_FAR _BikeShopText_1d81f + db "@" + +BikeShopText_1d824: ; 1d824 (7:5824) + TX_FAR _BikeShopText_1d824 ; 0x98eb2 + db $11, "@" + +BikeShopText_1d82a: ; 1d82a (7:582a) + TX_FAR _BikeShopText_1d82a + db "@" + +BikeShopText_1d82f: ; 1d82f (7:582f) + TX_FAR _BikeShopText_1d82f + db "@" + +BikeShopText_1d834: ; 1d834 (7:5834) + TX_FAR _BikeShopText_1d834 + db "@" + +BikeShopText2: ; 1d839 (7:5839) + db $08 ; asm + ld hl, BikeShopText_1d843 + call PrintText + jp TextScriptEnd + +BikeShopText_1d843: ; 1d843 (7:5843) + TX_FAR _BikeShopText_1d843 + db "@" + +BikeShopText3: ; 1d848 (7:5848) + db $08 ; asm + ld a, [$d75f] + bit 0, a + ld hl, BikeShopText_1d861 + jr nz, .asm_34d2d ; 0x1d851 + ld hl, BikeShopText_1d85c +.asm_34d2d ; 0x1d856 + call PrintText + jp TextScriptEnd + +BikeShopText_1d85c: ; 1d85c (7:585c) + TX_FAR _BikeShopText_1d85c + db "@" + +BikeShopText_1d861: ; 1d861 (7:5861) + TX_FAR _BikeShopText_1d861 + db "@" diff --git a/scripts/billshouse.asm b/scripts/billshouse.asm new file mode 100755 index 00000000..6d397de1 --- /dev/null +++ b/scripts/billshouse.asm @@ -0,0 +1,208 @@ +BillsHouseScript: ; 1e76a (7:676a) + call EnableAutoTextBoxDrawing + ld a, [W_BILLSHOUSECURSCRIPT] + ld hl, BillsHouseScriptPointers + jp CallFunctionInTable + +BillsHouseScriptPointers: ; 1e776 (7:6776) + dw BillsHouseScript0 + dw BillsHouseScript1 + dw BillsHouseScript2 + dw BillsHouseScript3 + dw BillsHouseScript4 + dw BillsHouseScript5 + +BillsHouseScript0: ; 1e782 (7:6782) + ret + +BillsHouseScript1: ; 1e783 (7:6783) + ld a, [$c109] + and a + ld de, MovementData_1e79c + jr nz, .asm_1e78f ; 0x1e78a $3 + ld de, MovementData_1e7a0 +.asm_1e78f + ld a, $1 + ld [$ff8c], a + call MoveSprite + ld a, $2 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +MovementData_1e79c: ; 1e79c (7:679c) + db $40,$40,$40,$FF + +MovementData_1e7a0: ; 1e7a0 (7:67a0) + db $C0,$40,$40,$80,$40,$FF + +BillsHouseScript2: ; 1e7a6 (7:67a6) + ld a, [$d730] + bit 0, a + ret nz + ld a, $61 + ld [$cc4d], a + ld a, $11 + call Predef + ld hl, $d7f2 + set 6, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $3 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +BillsHouseScript3: ; 1e7c5 (7:67c5) + ld a, [$d7f2] + bit 3, a + ret z + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $2 + ld [$cf13], a + ld a, $c + ld [$ffeb], a + ld a, $40 + ld [$ffec], a + ld a, $6 + ld [$ffed], a + ld a, $5 + ld [$ffee], a + call Func_32f9 + ld a, $62 + ld [$cc4d], a + ld a, $15 + call Predef + ld c, $8 + call DelayFrames + ld a, $2 + ld [$ff8c], a + ld de, MovementData_1e807 + call MoveSprite + ld a, $4 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +MovementData_1e807: ; 1e807 (7:6807) + db $00,$C0,$C0,$C0,$00,$FF + +BillsHouseScript4: ; 1e80d (7:680d) + ld a, [$d730] + bit 0, a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d7f2 + set 5, [hl] + ld hl, $d7f1 + set 0, [hl] + ld a, $0 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +BillsHouseScript5: ; 1e827 (7:6827) + ld a, $4 + ld [$ff8c], a + call DisplayTextID + ld a, $0 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +BillsHouseTextPointers: ; 1e834 (7:6834) + dw BillsHouseText1 + dw BillsHouseText2 + dw BillsHouseText3 + dw BillsHouseText4 + +BillsHouseText4: ; 1e83c (7:683c) + db $fd + +BillsHouseText1: ; 1e83d (7:683d) + db $8 + ld hl, BillsHouseText_1e865 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, asm_6b196 ; 0x1e84b $d +asm_4d03c: ; 1e84d (7:684d) + ld hl, BillsHouseText_1e86a + call PrintText + ld a, $1 + ld [W_BILLSHOUSECURSCRIPT], a + jr asm_fd4e2 ; 0x1e858 $8 +asm_6b196: ; 1e85a (7:685a) + ld hl, BillsHouseText_1e86f + call PrintText + jr asm_4d03c ; 0x1e860 $eb +asm_fd4e2 ; 0x1e862 + jp TextScriptEnd + +BillsHouseText_1e865: ; 1e865 (7:6865) + TX_FAR _BillsHouseText_1e865 ; 0x8d267 + db "@" + +BillsHouseText_1e86a: ; 1e86a (7:686a) + TX_FAR _BillsHouseText_1e86a ; 0x8d345 + db "@" + +BillsHouseText_1e86f: ; 1e86f (7:686f) + TX_FAR _BillsHouseText_1e86f ; 0x8d391 + db "@" + +BillsHouseText2: ; 1e874 (7:6874) + db $08 ; asm + ld a, [$d7f2] + bit 4, a + jr nz, .asm_5491f ; 0x1e87a + ld hl, BillThankYouText + call PrintText + ld bc, (S_S__TICKET << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, SSTicketReceivedText + call PrintText + ld hl, $d7f2 + set 4, [hl] + ld a, $7 + ld [$cc4d], a + ld a, $15 + call Predef + ld a, $9 + ld [$cc4d], a + ld a, $11 + call Predef +.asm_5491f ; 0x1e8a9 + ld hl, BillsHouseText_1e8cb + call PrintText + jr .asm_bd408 ; 0x1e8af +.BagFull + ld hl, SSTicketNoRoomText + call PrintText +.asm_bd408 ; 0x1e8b7 + jp TextScriptEnd + +BillThankYouText: ; 1e8ba (7:68ba) + TX_FAR _BillThankYouText + db "@" + +SSTicketReceivedText: ; 1e8bf (7:68bf) + TX_FAR _SSTicketReceivedText + db $11, $6, "@" + +SSTicketNoRoomText: ; 1e8c6 (7:68c6) + TX_FAR _SSTicketNoRoomText + db "@" + +BillsHouseText_1e8cb: ; 1e8cb (7:68cb) + TX_FAR _BillsHouseText_1e8cb + db "@" + +BillsHouseText3: ; 1e8d0 (7:68d0) + db $08 ; asm + ld hl, BillsHouseText_1e8da + call PrintText + jp TextScriptEnd + +BillsHouseText_1e8da: ; 1e8da (7:68da) + TX_FAR _BillsHouseText_1e8da + db "@" diff --git a/scripts/blueshouse.asm b/scripts/blueshouse.asm new file mode 100755 index 00000000..1699160f --- /dev/null +++ b/scripts/blueshouse.asm @@ -0,0 +1,90 @@ +BluesHouseScript: ; 19b3b (6:5b3b) + call EnableAutoTextBoxDrawing + ld hl,BluesHouseScriptPointers + ld a,[W_BLUESHOUSECURSCRIPT] + jp CallFunctionInTable + +BluesHouseScriptPointers: ; 19b47 (6:5b47) + dw BluesHouseScript0 + dw BluesHouseScript1 + +BluesHouseScript0: ; 19b4b (6:5b4b) + ld hl,$D74A + set 1,[hl] + + ; trigger the next script + ld a,1 + ld [W_BLUESHOUSECURSCRIPT],a + ret + +BluesHouseScript1: ; 19b56 (6:5b56) + ret + +BluesHouseTextPointers: ; 19b57 (6:5b57) + dw BluesHouseText1 + dw BluesHouseText2 + dw BluesHouseText3 + +BluesHouseText1: ; 19b5d (6:5b5d) + db 8 + ld a,[$D74A] + bit 0,a + jr nz,.GotMap + ld a,[$D74B] + bit 5,a + jr nz,.GiveMap + ld hl,DaisyInitialText + call PrintText + jr .done +.GiveMap + ld hl,DaisyOfferMapText + call PrintText + ld bc,(TOWN_MAP << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a,$29 + ld [$CC4D],a + ld a,$11 + call Predef ; hide table map object + ld hl,GotMapText + call PrintText + ld hl,$D74A + set 0,[hl] + jr .done +.GotMap + ld hl,DaisyUseMapText + call PrintText + jr .done +.BagFull + ld hl,DaisyBagFullText + call PrintText +.done + jp TextScriptEnd + +DaisyInitialText: ; 19baa (6:5baa) + TX_FAR _DaisyInitialText + db "@" + +DaisyOfferMapText: ; 19baf (6:5baf) + TX_FAR _DaisyOfferMapText + db "@" + +GotMapText: ; 19bb4 (6:5bb4) + TX_FAR _GotMapText + db $11,"@" + +DaisyBagFullText: ; 19bba (6:5bba) + TX_FAR _DaisyBagFullText + db "@" + +DaisyUseMapText: ; 19bbf (6:5bbf) + TX_FAR _DaisyUseMapText + db "@" + +BluesHouseText2: ; 0x19bc4 Daisy, walking around + TX_FAR _BluesHouseText2 + db "@" + +BluesHouseText3: ; 0x19bc9 map on table + TX_FAR _BluesHouseText3 + db "@" diff --git a/scripts/bruno.asm b/scripts/bruno.asm new file mode 100755 index 00000000..60d579b2 --- /dev/null +++ b/scripts/bruno.asm @@ -0,0 +1,154 @@ +BrunoScript: ; 762d6 (1d:62d6) + call BrunoScript_762ec + call EnableAutoTextBoxDrawing + ld hl, BrunoTrainerHeaders + ld de, BrunoScriptPointers + ld a, [W_BRUNOCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_BRUNOCURSCRIPT], a + ret + +BrunoScript_762ec: ; 762ec (1d:62ec) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d864] + bit 1, a + jr z, .asm_76300 + ld a, $5 + jp BrunoScript_76302 +.asm_76300 + ld a, $24 + +BrunoScript_76302: ; 76302 (1d:6302) + ld [$d09f], a + ld bc, $2 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +BrunoScript_7630d: ; 7630d (1d:630d) + xor a + ld [W_BRUNOCURSCRIPT], a + ret + +BrunoScriptPointers: ; 76312 (1d:6312) + dw BrunoScript0 + dw Func_324c + dw BrunoScript2 + dw BrunoScript3 + dw BrunoScript4 + +BrunoScript4: ; 7631c (1d:631c) + ret +asm_7631d: ; 7631d (1d:631d) + ld hl, $ccd3 + ld a, $40 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $6 + ld [$cd38], a + call Func_3486 + ld a, $3 + ld [W_BRUNOCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +BrunoScript0: ; 76339 (1d:6339) + ld hl, CoordsData_7637a + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + xor a + ld [H_NEWLYPRESSEDBUTTONS], a + ld [H_CURRENTPRESSEDBUTTONS], a + ld [$ccd3], a + ld [$cd38], a + ld a, [wWhichTrade] ; $cd3d + cp $3 + jr c, .asm_7635d + ld hl, $d864 + bit 6, [hl] + set 6, [hl] + jr z, asm_7631d +.asm_7635d + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, $40 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + call Func_3486 + ld a, $3 + ld [W_BRUNOCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CoordsData_7637a: ; 7637a (1d:637a) + db $0A,$04 + db $0A,$05 + db $0B,$04 + db $0B,$05 + db $FF + +BrunoScript3: ; 76383 (1d:6383) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_BRUNOCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +BrunoScript2: ; 76396 (1d:6396) + call EndTrainerBattle + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, BrunoScript_7630d + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp DisplayTextID + +BrunoTextPointers: ; 763a8 (1d:63a8) + dw BrunoText1 + dw BrunoText2 + +BrunoTrainerHeaders: ; 763ac (1d:63ac) +BrunoTrainerHeader0: ; 763ac (1d:63ac) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d864 ; flag's byte + dw BrunoBeforeBattleText ; 0x63c3 TextBeforeBattle + dw BrunoAfterBattleText ; 0x63cd TextAfterBattle + dw BrunoEndBattleText ; 0x63c8 TextEndBattle + dw BrunoEndBattleText ; 0x63c8 TextEndBattle + + db $ff + +BrunoText1: ; 763b9 (1d:63b9) + db $08 ; asm + ld hl, BrunoTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +BrunoBeforeBattleText: ; 763c3 (1d:63c3) + TX_FAR _BrunoBeforeBattleText + db "@" + +BrunoEndBattleText: ; 763c8 (1d:63c8) + TX_FAR _BrunoEndBattleText + db "@" + +BrunoAfterBattleText: ; 763cd (1d:63cd) + TX_FAR _BrunoAfterBattleText + db "@" + +BrunoText2: ; 763d2 (1d:63d2) + TX_FAR _UnnamedText_763d2 + db "@" diff --git a/scripts/celadoncity.asm b/scripts/celadoncity.asm new file mode 100755 index 00000000..2f2a3128 --- /dev/null +++ b/scripts/celadoncity.asm @@ -0,0 +1,136 @@ +CeladonCityScript: ; 19956 (6:5956) + call EnableAutoTextBoxDrawing + ld hl, $d77e + res 0, [hl] + res 7, [hl] + ld hl, $d816 + res 7, [hl] + ret + +CeladonCityTextPointers: ; 19966 (6:5966) + dw CeladonCityText1 + dw CeladonCityText2 + dw CeladonCityText3 + dw CeladonCityText4 + dw CeladonCityText5 + dw CeladonCityText6 + dw CeladonCityText7 + dw CeladonCityText8 + dw CeladonCityText9 + dw CeladonCityText10 + dw CeladonCityText11 + dw PokeCenterSignText + dw CeladonCityText13 + dw CeladonCityText14 + dw CeladonCityText15 + dw CeladonCityText16 + dw CeladonCityText17 + dw CeladonCityText18 + +CeladonCityText1: ; 1998a (6:598a) + TX_FAR _CeladonCityText1 + db "@" + +CeladonCityText2: ; 1998f (6:598f) + TX_FAR _CeladonCityText2 + db "@" + +CeladonCityText3: ; 19994 (6:5994) + TX_FAR _CeladonCityText3 + db "@" + +CeladonCityText4: ; 19999 (6:5999) + TX_FAR _CeladonCityText4 + db "@" + +CeladonCityText5: ; 1999e (6:599e) + db $08 ; asm + ld a, [$d777] + bit 0, a + jr nz, .asm_7053f ; 0x199a4 + ld hl, TM41PreText + call PrintText + ld bc, (TM_41 << 8) | 1 + call GiveItem + jr c, .Success + ld hl, TM41NoRoomText + call PrintText + jr .Done +.Success + ld hl, ReceivedTM41Text + call PrintText + ld hl, $d777 + set 0, [hl] + jr .Done +.asm_7053f ; 0x199c9 + ld hl, TM41ExplanationText + call PrintText +.Done + jp TextScriptEnd + +TM41PreText: ; 199d2 (6:59d2) + TX_FAR _TM41PreText + db "@" + +ReceivedTM41Text: ; 199d7 (6:59d7) + TX_FAR _ReceivedTM41Text + db $0B, "@" + +TM41ExplanationText: ; 199dd (6:59dd) + TX_FAR _TM41ExplanationText + db "@" + +TM41NoRoomText: ; 199e2 (6:59e2) + TX_FAR _TM41NoRoomText + db "@" + +CeladonCityText6: ; 199e7 (6:59e7) + TX_FAR _CeladonCityText6 + db "@" + +CeladonCityText7: ; 199ec (6:59ec) + TX_FAR _CeladonCityText7 + db $08 ; asm + ld a, POLIWRATH + call PlayCry + jp TextScriptEnd + +CeladonCityText8: ; 199f9 (6:59f9) + TX_FAR _CeladonCityText8 + db "@" + +CeladonCityText9: ; 199fe (6:59fe) + TX_FAR _CeladonCityText9 + db "@" + +CeladonCityText10: ; 19a03 (6:5a03) + TX_FAR _CeladonCityText10 + db "@" + +CeladonCityText11: ; 19a08 (6:5a08) + TX_FAR _CeladonCityText11 + db "@" + +CeladonCityText13: ; 19a0d (6:5a0d) + TX_FAR _CeladonCityText13 + db "@" + +CeladonCityText14: ; 19a12 (6:5a12) + TX_FAR _CeladonCityText14 + db "@" + +CeladonCityText15: ; 19a17 (6:5a17) + TX_FAR _CeladonCityText15 + db "@" + +CeladonCityText16: ; 19a1c (6:5a1c) + TX_FAR _CeladonCityText16 + db "@" + +CeladonCityText17: ; 19a21 (6:5a21) + TX_FAR _CeladonCityText17 + db "@" + +CeladonCityText18: ; 19a26 (6:5a26) + TX_FAR _CeladonCityText18 + db "@" diff --git a/scripts/celadondiner.asm b/scripts/celadondiner.asm new file mode 100755 index 00000000..06cce8fd --- /dev/null +++ b/scripts/celadondiner.asm @@ -0,0 +1,67 @@ +CeladonDinerScript: ; 49151 (12:5151) + call EnableAutoTextBoxDrawing + ret + +CeladonDinerTextPointers: ; 49155 (12:5155) + dw CeladonDinerText1 + dw CeladonDinerText2 + dw CeladonDinerText3 + dw CeladonDinerText4 + dw CeladonDinerText5 + +CeladonDinerText1: ; 4915f (12:515f) + TX_FAR _CeladonDinerText1 + db "@" + +CeladonDinerText2: ; 49164 (12:5164) + TX_FAR _CeladonDinerText2 + db "@" + +CeladonDinerText3: ; 49169 (12:5169) + TX_FAR _CeladonDinerText3 + db "@" + +CeladonDinerText4: ; 4916e (12:516e) + TX_FAR _CeladonDinerText4 + db "@" + +CeladonDinerText5: ; 49173 (12:5173) + db $08 ; asm + ld a, [$d783] + bit 0, a + jr nz, .asm_eb14d ; 0x49179 + ld hl, CeladonDinerText_491a7 + call PrintText + ld bc, (COIN_CASE << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, $d783 + set 0, [hl] + ld hl, ReceivedCoinCaseText + call PrintText + jr .asm_68b61 ; 0x49194 +.BagFull + ld hl, CoinCaseNoRoomText + call PrintText + jr .asm_68b61 ; 0x4919c +.asm_eb14d ; 0x4919e + ld hl, CeladonDinerText_491b7 + call PrintText +.asm_68b61 ; 0x491a4 + jp TextScriptEnd + +CeladonDinerText_491a7: ; 491a7 (12:51a7) + TX_FAR _CeladonDinerText_491a7 + db "@" + +ReceivedCoinCaseText: ; 491ac (12:51ac) + TX_FAR _ReceivedCoinCaseText + db $11, "@" + +CoinCaseNoRoomText: ; 491b2 (12:51b2) + TX_FAR _CoinCaseNoRoomText + db "@" + +CeladonDinerText_491b7: ; 491b7 (12:51b7) + TX_FAR _CeladonDinerText_491b7 + db "@" diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm new file mode 100755 index 00000000..f4e23d6e --- /dev/null +++ b/scripts/celadongamecorner.asm @@ -0,0 +1,536 @@ +CeladonGameCornerScript: ; 48bbd (12:4bbd) + call CeladonGameCornerScript_48bcf + call CeladonGameCornerScript_48bec + call EnableAutoTextBoxDrawing + ld hl, CeladonGameCornerScriptPointers + ld a, [W_CELADONGAMECORNERCURSCRIPT] + jp CallFunctionInTable + +CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + ret z + call GenRandom + ld a, [$ffd3] + cp $7 + jr nc, .asm_48be2 + ld a, $8 +.asm_48be2 + srl a + srl a + srl a + ld [$cd05], a + ret + +CeladonGameCornerScript_48bec: ; 48bec (12:4bec) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d77e] + bit 1, a + ret nz + ld a, $2a + ld [$d09f], a + ld bc, $0208 + ld a, $17 + jp Predef + +CeladonGameCornerScript_48c07: ; 48c07 (12:4c07) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_CELADONGAMECORNERCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CeladonGameCornerScriptPointers: ; 48c12 (12:4c12) + dw CeladonGameCornerScript0 + dw CeladonGameCornerScript1 + dw CeladonGameCornerScript2 + +CeladonGameCornerScript0: ; 48c18 (12:4c18) + ret + +CeladonGameCornerScript1: ; 48c19 (12:4c19) + ld a, [W_ISINBATTLE] + cp $ff + jp z, CeladonGameCornerScript_48c07 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $d + ld [H_SPRITEHEIGHT], a + call DisplayTextID + ld a, $b + ld [H_SPRITEHEIGHT], a + call SetSpriteMovementBytesToFF + ld de, MovementData_48c5a + ld a, [W_YCOORD] + cp $6 + jr nz, .asm_48c43 + ld de, MovementData_48c63 + jr .asm_48c4d +.asm_48c43 + ld a, [W_XCOORD] + cp $8 + jr nz, .asm_48c4d + ld de, MovementData_48c63 +.asm_48c4d + ld a, $b + ld [H_DOWNARROWBLINKCNT2], a + call MoveSprite + ld a, $2 + ld [W_CELADONGAMECORNERCURSCRIPT], a + ret + +MovementData_48c5a: ; 48c5a (12:4c5a) + db $00,$C0,$C0,$40,$C0,$C0,$C0,$C0,$FF + +MovementData_48c63: ; 48c63 (12:4c63) + db $C0,$C0,$C0,$C0,$C0,$FF + +CeladonGameCornerScript2: ; 48c69 (12:4c69) + ld a, [$d730] + bit 0, a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $46 + ld [$cc4d], a + ld a, $11 + call Predef + ld hl, $d126 + set 5, [hl] + set 6, [hl] + ld a, $0 + ld [W_CELADONGAMECORNERCURSCRIPT], a + ret + +CeladonGameCornerTextPointers: ; 48c8a (12:4c8a) + dw CeladonGameCornerText1 + dw CeladonGameCornerText2 + dw CeladonGameCornerText3 + dw CeladonGameCornerText4 + dw CeladonGameCornerText5 + dw CeladonGameCornerText6 + dw CeladonGameCornerText7 + dw CeladonGameCornerText8 + dw CeladonGameCornerText9 + dw CeladonGameCornerText10 + dw CeladonGameCornerText11 + dw CeladonGameCornerText12 + dw CeladonGameCornerText13 + +CeladonGameCornerText1: ; 48ca4 (12:4ca4) + TX_FAR _CeladonGameCornerText1 + db "@" + +CeladonGameCornerText2: ; 48ca9 (12:4ca9) + db $08 ; asm + call CeladonGameCornerScript_48f1e + ld hl, CeladonGameCornerText_48d22 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_c650b ; 0x48cba + ld b,COIN_CASE + call IsItemInBag + jr z, .asm_ed086 ; 0x48cc1 + call Has9990Coins + jr nc, .asm_31338 ; 0x48cc6 + xor a + ldh [$9f], a + ldh [$a1], a + ld a, $10 + ldh [$a0], a + call HasEnoughMoney + jr nc, .asm_b6ef0 ; 0x48cd4 + ld hl, CeladonGameCornerText_48d31 ; $4d31 + jr .asm_e2afd ; 0x48cd9 +.asm_b6ef0 ; 0x48cdb + xor a + ldh [$9f], a + ldh [$a1], a + ld a, $10 + ldh [$a0], a + ld hl, $ffa1 + ld de, $d349 + ld c, $3 + ld a, $c + call Predef + xor a + ldh [$9f], a + ldh [$a0], a + ld a, $50 + ldh [$a1], a + ld de, $d5a5 + ld hl, $ffa1 + ld c, $2 + ld a, $b + call Predef + call CeladonGameCornerScript_48f1e + ld hl, CeladonGameCornerText_48d27 + jr .asm_e2afd ; 0x48d0d +.asm_c650b ; 0x48d0f + ld hl, CeladonGameCornerText_48d2c + jr .asm_e2afd ; 0x48d12 +.asm_31338 ; 0x48d14 + ld hl, CeladonGameCornerText_48d36 + jr .asm_e2afd ; 0x48d17 +.asm_ed086 ; 0x48d19 + ld hl, CeladonGameCornerText_48d3b +.asm_e2afd ; 0x48d1c + call PrintText + jp TextScriptEnd + +CeladonGameCornerText_48d22: ; 48d22 (12:4d22) + TX_FAR _CeladonGameCornerText_48d22 + db "@" + +CeladonGameCornerText_48d27: ; 48d27 (12:4d27) + TX_FAR _CeladonGameCornerText_48d27 + db "@" + +CeladonGameCornerText_48d2c: ; 48d2c (12:4d2c) + TX_FAR _CeladonGameCornerText_48d2c + db "@" + +CeladonGameCornerText_48d31: ; 48d31 (12:4d31) + TX_FAR _CeladonGameCornerText_48d31 + db "@" + +CeladonGameCornerText_48d36: ; 48d36 (12:4d36) + TX_FAR _CeladonGameCornerText_48d36 + db "@" + +CeladonGameCornerText_48d3b: ; 48d3b (12:4d3b) + TX_FAR _CeladonGameCornerText_48d3b + db "@" + +CeladonGameCornerText3: ; 48d40 (12:4d40) + TX_FAR _CeladonGameCornerText3 + db "@" + +CeladonGameCornerText4: ; 48d45 (12:4d45) + TX_FAR _CeladonGameCornerText4 + db "@" + +CeladonGameCornerText5: ; 48d4a (12:4d4a) + db $08 ; asm + ld a, [$d77e] + bit 2, a + jr nz, .asm_d0957 ; 0x48d50 + ld hl, CeladonGameCornerText_48d9c + call PrintText + ld b, COIN_CASE + call IsItemInBag + jr z, .asm_5aef9 ; 0x48d5d + call Has9990Coins + jr nc, .asm_98546 ; 0x48d62 + xor a + ldh [$9f], a + ldh [$a0], a + ld a, $10 + ldh [$a1], a + ld de, $d5a5 + ld hl, $ffa1 + ld c, $2 + ld a, $b + call Predef + ld hl, $d77e + set 2, [hl] + ld a, $1 + ld [$cc3c], a + ld hl, Received10CoinsText + jr .asm_c7d1a ; 0x48d87 +.asm_d0957 ; 0x48d89 + ld hl, CeladonGameCornerText_48dac + jr .asm_c7d1a ; 0x48d8c +.asm_98546 ; 0x48d8e + ld hl, CeladonGameCornerText_48da7 + jr .asm_c7d1a ; 0x48d91 +.asm_5aef9 ; 0x48d93 + ld hl, CeladonGameCornerText_48f19 +.asm_c7d1a ; 0x48d96 + call PrintText + jp TextScriptEnd + +CeladonGameCornerText_48d9c: ; 48d9c (12:4d9c) + TX_FAR _CeladonGameCornerText_48d9c + db "@" + +Received10CoinsText: ; 48da1 (12:4da1) + TX_FAR _Received10CoinsText + db $0B, "@" + +CeladonGameCornerText_48da7: ; 48da7 (12:4da7) + TX_FAR _CeladonGameCornerText_48da7 + db "@" + +CeladonGameCornerText_48dac: ; 48dac (12:4dac) + TX_FAR _CeladonGameCornerText_48dac + db "@" + +CeladonGameCornerText6: ; 48db1 (12:4db1) + TX_FAR _CeladonGameCornerText6 + db "@" + +CeladonGameCornerText7: ; 48db6 (12:4db6) + db $08 ; asm + ld a, [$d77c] + bit 1, a + ld hl, CeladonGameCornerText_48dca ; $4dca + jr z, .asm_be3fd ; 0x48dbf + ld hl, CeladonGameCornerText_48dcf ; $4dcf +.asm_be3fd ; 0x48dc4 + call PrintText + jp TextScriptEnd + +CeladonGameCornerText_48dca: ; 48dca (12:4dca) + TX_FAR _CeladonGameCornerText_48dca + db "@" + +CeladonGameCornerText_48dcf: ; 48dcf (12:4dcf) + TX_FAR _CeladonGameCornerText_48dcf + db "@" + +CeladonGameCornerText8: ; 48dd4 (12:4dd4) + TX_FAR _CeladonGameCornerText8 + db "@" + +CeladonGameCornerText9: ; 48dd9 (12:4dd9) + db $08 ; asm + ld a, [$d77e] + bit 4, a + jr nz, .asm_ed8bc ; 0x48ddf + ld hl, CeladonGameCornerText_48e26 + call PrintText + ld b, COIN_CASE + call IsItemInBag + jr z, .asm_df794 ; 0x48dec + call Has9990Coins + jr nc, .asm_f17c3 ; 0x48df1 + xor a + ldh [$9f], a + ldh [$a0], a + ld a, $20 + ldh [$a1], a + ld de, $d5a5 + ld hl, $ffa1 + ld c, $2 + ld a, $b + call Predef + ld hl, $d77e + set 4, [hl] + ld hl, Received20CoinsText + jr .asm_0ddc2 ; 0x48e11 +.asm_ed8bc ; 0x48e13 + ld hl, CeladonGameCornerText_48e36 + jr .asm_0ddc2 ; 0x48e16 +.asm_f17c3 ; 0x48e18 + ld hl, CeladonGameCornerText_48e31 + jr .asm_0ddc2 ; 0x48e1b +.asm_df794 ; 0x48e1d + ld hl, CeladonGameCornerText_48f19 +.asm_0ddc2 ; 0x48e20 + call PrintText + jp TextScriptEnd + +CeladonGameCornerText_48e26: ; 48e26 (12:4e26) + TX_FAR _CeladonGameCornerText_48e26 + db "@" + +Received20CoinsText: ; 48e2b (12:4e2b) + TX_FAR _Received20CoinsText + db $0B, "@" + +CeladonGameCornerText_48e31: ; 48e31 (12:4e31) + TX_FAR _CeladonGameCornerText_48e31 + db "@" + +CeladonGameCornerText_48e36: ; 48e36 (12:4e36) + TX_FAR _CeladonGameCornerText_48e36 + db "@" + +CeladonGameCornerText10: ; 48e3b (12:4e3b) + db $08 ; asm + ld a, [$d77e] + bit 3, a + jr nz, .asm_ff080 ; 0x48e41 + ld hl, CeladonGameCornerText_48e88 ; $4e88 + call PrintText + ld b,COIN_CASE + call IsItemInBag + jr z, .asm_4fb0c ; 0x48e4e + call Has9990Coins + jr z, .asm_9505a ; 0x48e53 + xor a + ldh [$9f], a + ldh [$a0], a + ld a, $20 + ldh [$a1], a + ld de, $d5a5 + ld hl, $ffa1 + ld c, $2 + ld a, $b + call Predef + ld hl, $d77e + set 3, [hl] + ld hl, CeladonGameCornerText_48e8d + jr .asm_78d65 ; 0x48e73 +.asm_ff080 ; 0x48e75 + ld hl, CeladonGameCornerText_48e98 + jr .asm_78d65 ; 0x48e78 +.asm_9505a ; 0x48e7a + ld hl, CeladonGameCornerText_48e93 + jr .asm_78d65 ; 0x48e7d +.asm_4fb0c ; 0x48e7f + ld hl, CeladonGameCornerText_48f19 +.asm_78d65 ; 0x48e82 + call PrintText + jp TextScriptEnd + +CeladonGameCornerText_48e88: ; 48e88 (12:4e88) + TX_FAR _CeladonGameCornerText_48e88 + db "@" + +CeladonGameCornerText_48e8d: ; 48e8d (12:4e8d) + TX_FAR _CeladonGameCornerText_48e8d ; 0x9dceb + db $0B, "@" + +CeladonGameCornerText_48e93: ; 48e93 (12:4e93) + TX_FAR _CeladonGameCornerText_48e93 + db "@" + +CeladonGameCornerText_48e98: ; 48e98 (12:4e98) + TX_FAR _CeladonGameCornerText_48e98 + db "@" + +CeladonGameCornerText11: ; 48e9d (12:4e9d) + db $08 ; asm + ld hl, CeladonGameCornerText_48ece + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, CeladonGameCornerText_48ed3 + ld de, CeladonGameCornerText_48ed3 + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + xor a + ldh [$b4], a + ldh [$b3], a + ldh [$b2], a + ld a, $1 + ld [W_CELADONGAMECORNERCURSCRIPT], a + jp TextScriptEnd + +CeladonGameCornerText_48ece: ; 48ece (12:4ece) + TX_FAR _CeladonGameCornerText_48ece + db "@" + +CeladonGameCornerText_48ed3: ; 48ed3 (12:4ed3) + TX_FAR _CeladonGameCornerText_48ed3 + db "@" + +CeladonGameCornerText13: ; 48ed8 (12:4ed8) + TX_FAR _CeladonGameCornerText_48ed8 + db "@" + +CeladonGameCornerText12: ; 48edd (12:4edd) + db $08 ; asm + ld a, $1 + ld [$cc3c], a + ld hl, CeladonGameCornerText_48f09 + call PrintText + call WaitForSoundToFinish + ld a, (SFX_02_57 - SFX_Headers_02) / 3 + call PlaySound + call WaitForSoundToFinish + ld hl, $d77e + set 1, [hl] + ld a, $43 + ld [$d09f], a + ld bc, $0208 + ld a, $17 + call Predef + jp TextScriptEnd + +CeladonGameCornerText_48f09: ; 48f09 (12:4f09) + TX_FAR _CeladonGameCornerText_48f09 ; 0x9ddb0 + db $8 + ld a, (SFX_02_49 - SFX_Headers_02) / 3 + call PlaySound + call WaitForSoundToFinish + jp TextScriptEnd + +CeladonGameCornerText_48f19: ; 48f19 (12:4f19) + TX_FAR _CeladonGameCornerText_48f19 + db "@" + +CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e) + ld hl, $d730 + set 6, [hl] + FuncCoord 11, 0 ; $c3ab + ld hl, Coord + ld b, $5 + ld c, $7 + call TextBoxBorder + call UpdateSprites + FuncCoord 12, 1 ; $c3c0 + ld hl, Coord + ld b, $4 + ld c, $7 + call ClearScreenArea + FuncCoord 12, 2 ; $c3d4 + ld hl, Coord + ld de, GameCornerMoneyText + call PlaceString + FuncCoord 12, 3 ; $c3e8 + ld hl, Coord + ld de, GameCornerBlankText1 + call PlaceString + FuncCoord 12, 3 ; $c3e8 + ld hl, Coord + ld de, $d347 + ld c, $a3 + call PrintBCDNumber + FuncCoord 12, 4 ; $c3fc + ld hl, Coord + ld de, GameCornerCoinText + call PlaceString + FuncCoord 12, 5 ; $c410 + ld hl, Coord + ld de, GameCornerBlankText2 + call PlaceString + FuncCoord 15, 5 ; $c413 + ld hl, Coord + ld de, $d5a4 + ld c, $82 + call PrintBCDNumber + ld hl, $d730 + res 6, [hl] + ret + +GameCornerMoneyText: ; 48f7a (12:4f7a) + db "MONEY@" + +GameCornerCoinText: ; 48f80 (12:4f80) + db "COIN@" + +GameCornerBlankText1: ; 48f85 (12:4f85) + db " @" + +GameCornerBlankText2: ; 48f8d (12:4f8d) + db " @" + +Has9990Coins: ; 48f95 (12:4f95) + ld a, $99 + ld [$ffa0], a + ld a, $90 + ld [$ffa1], a + jp HasEnoughCoins diff --git a/scripts/celadongym.asm b/scripts/celadongym.asm new file mode 100755 index 00000000..67102fb7 --- /dev/null +++ b/scripts/celadongym.asm @@ -0,0 +1,343 @@ +CeladonGymScript: ; 4890a (12:490a) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + call nz, CeladonGymScript_48927 + call EnableAutoTextBoxDrawing + ld hl, CeladonGymTrainerHeaders + ld de, CeladonGymScriptPointers + ld a, [W_CELADONGYMCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_CELADONGYMCURSCRIPT], a + ret + +CeladonGymScript_48927: ; 48927 (12:4927) + ld hl, Gym4CityName ; $4930 + ld de, Gym4LeaderName ; $493d + jp LoadGymLeaderAndCityName + +Gym4CityName: ; 48930 (12:4930) + db "CELADON CITY@" + +Gym4LeaderName: ; 4893d (12:493d) + db "ERIKA@" + +CeladonGymText_48943: ; 48943 (12:4943) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_CELADONGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CeladonGymScriptPointers: ; 4894e (12:494e) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + dw CeladonGymScript3 + +CeladonGymScript3: ; 48956 (12:4956) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, CeladonGymText_48943 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + +CeladonGymText_48963: ; 48963 (12:4963) + ld a, $9 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d77c + set 1, [hl] + ld bc, (TM_21 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $a + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d77c + set 0, [hl] + jr .asm_4898c +.BagFull + ld a, $b + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_4898c + ld hl, W_OBTAINEDBADGES + set 3, [hl] + ld hl, $d72a + set 3, [hl] + + ; deactivate gym trainers + ld a, [$d77c] + or %11111100 + ld [$d77c], a + ld hl, $d77d + set 0, [hl] + + jp CeladonGymText_48943 + +CeladonGymTextPointers: ; 489a6 (12:49a6) + dw CeladonGymText1 + dw CeladonGymText2 + dw CeladonGymText3 + dw CeladonGymText4 + dw CeladonGymText5 + dw CeladonGymText6 + dw CeladonGymText7 + dw CeladonGymText8 + dw CeladonGymText9 + dw TM21Text + dw TM21NoRoomText + +CeladonGymTrainerHeaders: ; 489bc (12:49bc) +CeladonGymTrainerHeader0: ; 489bc (12:49bc) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d77c ; flag's byte + dw CeladonGymBattleText2 ; 0x4a8b TextBeforeBattle + dw CeladonGymAfterBattleText2 ; 0x4a95 TextAfterBattle + dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle + dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle + +CeladonGymTrainerHeader2: ; 489c8 (12:49c8) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d77c ; flag's byte + dw CeladonGymBattleText3 ; 0x4aa4 TextBeforeBattle + dw CeladonGymAfterBattleText3 ; 0x4aae TextAfterBattle + dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle + dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle + +CeladonGymTrainerHeader3: ; 489d4 (12:49d4) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d77c ; flag's byte + dw CeladonGymBattleText4 ; 0x4abd TextBeforeBattle + dw CeladonGymAfterBattleText4 ; 0x4ac7 TextAfterBattle + dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle + dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle + +CeladonGymTrainerHeader4: ; 489e0 (12:49e0) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d77c ; flag's byte + dw CeladonGymBattleText5 ; 0x4ad6 TextBeforeBattle + dw CeladonGymAfterBattleText5 ; 0x4ae0 TextAfterBattle + dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle + dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle + +CeladonGymTrainerHeader5: ; 489ec (12:49ec) + db $6 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d77c ; flag's byte + dw CeladonGymBattleText6 ; 0x4aef TextBeforeBattle + dw CeladonGymAfterBattleText6 ; 0x4af9 TextAfterBattle + dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle + dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle + +CeladonGymTrainerHeader6: ; 489f8 (12:49f8) + db $7 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d77c ; flag's byte + dw CeladonGymBattleText7 ; 0x4b08 TextBeforeBattle + dw CeladonGymAfterBattleText7 ; 0x4b12 TextAfterBattle + dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle + dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle + +CeladonGymTrainerHeader7: ; 48a04 (12:4a04) + db $8 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d77c ; flag's byte + dw CeladonGymBattleText8 ; 0x4b21 TextBeforeBattle + dw CeladonGymAfterBattleText8 ; 0x4b2b TextAfterBattle + dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle + dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle + + db $ff + +CeladonGymText1: ; 48a11 (12:4a11) + db $08 ; asm + ld a, [$d77c] + bit 1, a + jr z, .asm_16064 ; 0x48a17 + bit 0, a + jr nz, .asm_3b22c ; 0x48a1b + call z, CeladonGymText_48963 + call DisableWaitingAfterTextDisplay + jr .asm_96252 ; 0x48a23 +.asm_3b22c ; 0x48a25 + ld hl, CeladonGymText_48a68 + call PrintText + jr .asm_96252 ; 0x48a2b +.asm_16064 ; 0x48a2d + ld hl, CeladonGymText_48a5e + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, CeladonGymText_48a63 + ld de, CeladonGymText_48a63 + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $4 + ld [$d05c], a + ld a, $3 + ld [W_CELADONGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a +.asm_96252 ; 0x48a5b + jp TextScriptEnd + +CeladonGymText_48a5e: ; 48a5e (12:4a5e) + TX_FAR _CeladonGymText_48a5e + db "@" + +CeladonGymText_48a63: ; 48a63 (12:4a63) + TX_FAR _CeladonGymText_48a63 + db "@" + +CeladonGymText_48a68: ; 48a68 (12:4a68) + TX_FAR _CeladonGymText_48a68 + db "@" + +CeladonGymText9: ; 48a6d (12:4a6d) + TX_FAR _CeladonGymText9 + db "@" + +TM21Text: ; 48a72 (12:4a72) + TX_FAR _ReceivedTM21Text + db $0B + TX_FAR _TM21ExplanationText + db "@" + +TM21NoRoomText: ; 48a7c (12:4a7c) + TX_FAR _TM21NoRoomText + db "@" + +CeladonGymText2: ; 48a81 (12:4a81) + db $08 ; asm + ld hl, CeladonGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +CeladonGymBattleText2: ; 48a8b (12:4a8b) + TX_FAR _CeladonGymBattleText2 + db "@" + +CeladonGymEndBattleText2: ; 48a90 (12:4a90) + TX_FAR _CeladonGymEndBattleText2 + db "@" + +CeladonGymAfterBattleText2: ; 48a95 (12:4a95) + TX_FAR _CeladonGymAfterBattleText2 + db "@" + +CeladonGymText3: ; 48a9a (12:4a9a) + db $08 ; asm + ld hl, CeladonGymTrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +CeladonGymBattleText3: ; 48aa4 (12:4aa4) + TX_FAR _CeladonGymBattleText3 + db "@" + +CeladonGymEndBattleText3: ; 48aa9 (12:4aa9) + TX_FAR _CeladonGymEndBattleText3 + db "@" + +CeladonGymAfterBattleText3: ; 48aae (12:4aae) + TX_FAR _CeladonGymAfterBattleText3 + db "@" + +CeladonGymText4: ; 48ab3 (12:4ab3) + db $08 ; asm + ld hl, CeladonGymTrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +CeladonGymBattleText4: ; 48abd (12:4abd) + TX_FAR _CeladonGymBattleText4 + db "@" + +CeladonGymEndBattleText4: ; 48ac2 (12:4ac2) + TX_FAR _CeladonGymEndBattleText4 + db "@" + +CeladonGymAfterBattleText4: ; 48ac7 (12:4ac7) + TX_FAR _CeladonGymAfterBattleText4 + db "@" + +CeladonGymText5: ; 48acc (12:4acc) + db $08 ; asm + ld hl, CeladonGymTrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +CeladonGymBattleText5: ; 48ad6 (12:4ad6) + TX_FAR _CeladonGymBattleText5 + db "@" + +CeladonGymEndBattleText5: ; 48adb (12:4adb) + TX_FAR _CeladonGymEndBattleText5 + db "@" + +CeladonGymAfterBattleText5: ; 48ae0 (12:4ae0) + TX_FAR _CeladonGymAfterBattleText5 + db "@" + +CeladonGymText6: ; 48ae5 (12:4ae5) + db $08 ; asm + ld hl, CeladonGymTrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +CeladonGymBattleText6: ; 48aef (12:4aef) + TX_FAR _CeladonGymBattleText6 + db "@" + +CeladonGymEndBattleText6: ; 48af4 (12:4af4) + TX_FAR _CeladonGymEndBattleText6 + db "@" + +CeladonGymAfterBattleText6: ; 48af9 (12:4af9) + TX_FAR _CeladonGymAfterBattleText6 + db "@" + +CeladonGymText7: ; 48afe (12:4afe) + db $08 ; asm + ld hl, CeladonGymTrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +CeladonGymBattleText7: ; 48b08 (12:4b08) + TX_FAR _CeladonGymBattleText7 + db "@" + +CeladonGymEndBattleText7: ; 48b0d (12:4b0d) + TX_FAR _CeladonGymEndBattleText7 + db "@" + +CeladonGymAfterBattleText7: ; 48b12 (12:4b12) + TX_FAR _CeladonGymAfterBattleText7 + db "@" + +CeladonGymText8: ; 48b17 (12:4b17) + db $08 ; asm + ld hl, CeladonGymTrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +CeladonGymBattleText8: ; 48b21 (12:4b21) + TX_FAR _CeladonGymBattleText8 + db "@" + +CeladonGymEndBattleText8: ; 48b26 (12:4b26) + TX_FAR _CeladonGymEndBattleText8 + db "@" + +CeladonGymAfterBattleText8: ; 48b2b (12:4b2b) + TX_FAR _CeladonGymAfterBattleText8 + db "@" diff --git a/scripts/celadonhotel.asm b/scripts/celadonhotel.asm new file mode 100755 index 00000000..a0f80ff6 --- /dev/null +++ b/scripts/celadonhotel.asm @@ -0,0 +1,19 @@ +CeladonHotelScript: ; 49269 (12:5269) + jp EnableAutoTextBoxDrawing + +CeladonHotelTextPointers: ; 4926c (12:526c) + dw CeladonHotelText1 + dw CeladonHotelText2 + dw CeladonHotelText3 + +CeladonHotelText1: ; 49272 (12:5272) + TX_FAR _CeladonHotelText1 + db "@" + +CeladonHotelText2: ; 49277 (12:5277) + TX_FAR _CeladonHotelText2 + db "@" + +CeladonHotelText3: ; 4927c (12:527c) + TX_FAR _CeladonHotelText3 + db "@" diff --git a/scripts/celadonhouse.asm b/scripts/celadonhouse.asm new file mode 100755 index 00000000..aa94f2fd --- /dev/null +++ b/scripts/celadonhouse.asm @@ -0,0 +1,20 @@ +CeladonHouseScript: ; 4920e (12:520e) + call EnableAutoTextBoxDrawing + ret + +CeladonHouseTextPointers: ; 49212 (12:5212) + dw CeladonHouseText1 + dw CeladonHouseText2 + dw CeladonHouseText3 + +CeladonHouseText1: ; 49218 (12:5218) + TX_FAR _CeladonHouseText1 + db "@" + +CeladonHouseText2: ; 4921d (12:521d) + TX_FAR _CeladonHouseText2 + db "@" + +CeladonHouseText3: ; 49222 (12:5222) + TX_FAR _CeladonHouseText3 + db "@" diff --git a/scripts/celadonmansion1.asm b/scripts/celadonmansion1.asm new file mode 100755 index 00000000..14832dbe --- /dev/null +++ b/scripts/celadonmansion1.asm @@ -0,0 +1,39 @@ +CeladonMansion1Script: ; 48694 (12:4694) + jp EnableAutoTextBoxDrawing + +CeladonMansion1TextPointers: ; 48697 (12:4697) + dw CeladonMansion1Text1 + dw CeladonMansion1Text2 + dw CeladonMansion1Text3 + dw CeladonMansion1Text4 + dw CeladonMansion1Text5 + +CeladonMansion1_486a1: ; 486a1 (12:46a1) + call PlayCry + jp TextScriptEnd + +CeladonMansion1Text1: ; 486a7 (12:46a7) + TX_FAR _CeladonMansion1Text1 + db $08 ; asm + ld a, MEOWTH + jp CeladonMansion1_486a1 + +CeladonMansion1Text2: ; 486b1 (12:46b1) + TX_FAR _CeladonMansion1Text2 + db "@" + +CeladonMansion1Text3: ; 486b6 (12:46b6) + TX_FAR _CeladonMansion1Text3 + db $8 + ld a, CLEFAIRY + jp CeladonMansion1_486a1 + +CeladonMansion1Text4: ; 486c0 (12:46c0) + TX_FAR _CeladonMansion1Text4 + db $8 + ld a, NIDORAN_F + jp CeladonMansion1_486a1 + +CeladonMansion1Text5: ; 486ca (12:46ca) + TX_FAR _CeladonMansion1Text5 + db "@" diff --git a/scripts/celadonmansion2.asm b/scripts/celadonmansion2.asm new file mode 100755 index 00000000..7f7e5d45 --- /dev/null +++ b/scripts/celadonmansion2.asm @@ -0,0 +1,10 @@ +CeladonMansion2Script: ; 4873a (12:473a) + call EnableAutoTextBoxDrawing + ret + +CeladonMansion2TextPointers: ; 4873e (12:473e) + dw CeladonMansion2Text1 + +CeladonMansion2Text1: ; 48740 (12:4740) + TX_FAR _CeladonMansion2Text1 + db "@" diff --git a/scripts/celadonmansion3.asm b/scripts/celadonmansion3.asm new file mode 100755 index 00000000..19342548 --- /dev/null +++ b/scripts/celadonmansion3.asm @@ -0,0 +1,73 @@ +CeladonMansion3Script: ; 48790 (12:4790) + jp EnableAutoTextBoxDrawing + +CeladonMansion3TextPointers: ; 48793 (12:4793) + dw ProgrammerText + dw GraphicArtistText + dw WriterText + dw DirectorText + dw GameFreakPCText1 + dw GameFreakPCText2 + dw GameFreakPCText3 + dw GameFreakSignText + +ProgrammerText: ; 487a3 (12:47a3) + TX_FAR _ProgrammerText + db "@" + +GraphicArtistText: ; 487a8 (12:47a8) + TX_FAR _GraphicArtistText + db "@" + +WriterText: ; 487ad (12:47ad) + TX_FAR _WriterText + db "@" + +DirectorText: ; 487b2 (12:47b2) + db $08 ; asm + + ; check pokédex + ld hl, wPokedexOwned + ld b, wPokedexOwnedEnd - wPokedexOwned + call CountSetBits + ld a, [$d11e] + cp 150 + jr nc, .CompletedDex + ld hl, .GameDesigner + jr .done +.CompletedDex + ld hl, .CompletedDexText +.done + call PrintText + jp TextScriptEnd + +.GameDesigner ; 487d0 (12:47d0) + TX_FAR _GameDesignerText + db "@" + +.CompletedDexText + TX_FAR _CompletedDexText + db $6 + db $8 ; asm + ld hl, DisplayDiploma + ld b, BANK(DisplayDiploma) + call Bankswitch + ld a, $1 + ld [$cc3c], a + jp TextScriptEnd + +GameFreakPCText1: ; 487eb (12:47eb) + TX_FAR _CeladonMansion3Text5 + db "@" + +GameFreakPCText2: ; 487f0 (12:47f0) + TX_FAR _CeladonMansion3Text6 + db "@" + +GameFreakPCText3: ; 487f5 (12:47f5) + TX_FAR _CeladonMansion3Text7 + db "@" + +GameFreakSignText: ; 487fa (12:47fa) + TX_FAR _CeladonMansion3Text8 + db "@" diff --git a/scripts/celadonmansion4.asm b/scripts/celadonmansion4.asm new file mode 100755 index 00000000..f9045bcd --- /dev/null +++ b/scripts/celadonmansion4.asm @@ -0,0 +1,9 @@ +CeladonMansion4Script: ; 4886b (12:486b) + jp EnableAutoTextBoxDrawing + +CeladonMansion4TextPointers: ; 4886e (12:486e) + dw CeladonMansion4Text1 + +CeladonMansion4Text1: ; 48870 (12:4870) + TX_FAR _CeladonMansion4Text1 + db "@" diff --git a/scripts/celadonmansion5.asm b/scripts/celadonmansion5.asm new file mode 100755 index 00000000..1d03ae5e --- /dev/null +++ b/scripts/celadonmansion5.asm @@ -0,0 +1,22 @@ +CeladonMansion5Script: ; 1dd3a (7:5d3a) + jp EnableAutoTextBoxDrawing + +CeladonMansion5TextPointers: ; 1dd3d (7:5d3d) + dw CeladonMansion5Text1 + dw CeladonMansion5Text2 + +CeladonMansion5Text1: ; 1dd41 (7:5d41) + TX_FAR _CeladonMansion5Text1 + db "@" + +CeladonMansion5Text2: ; 1dd46 (7:5d46) + db $08 ; asm + ld bc,(EEVEE << 8) | 25 + call GivePokemon + jr nc, .asm_24365 ; 0x1dd4d + ld a, $45 + ld [$cc4d], a + ld a, $11 + call Predef +.asm_24365 ; 0x1dd59 + jp TextScriptEnd diff --git a/scripts/celadonmart1.asm b/scripts/celadonmart1.asm new file mode 100755 index 00000000..041af8b3 --- /dev/null +++ b/scripts/celadonmart1.asm @@ -0,0 +1,19 @@ +CeladonMart1Script: ; 60f86 (18:4f86) + jp EnableAutoTextBoxDrawing + +CeladonMart1TextPointers: ; 60f89 (18:4f89) + dw CeladonMart1Text1 + dw CeladonMart1Text2 + dw CeladonMart1Text3 + +CeladonMart1Text1: ; 60f8f (18:4f8f) + TX_FAR _CeladonMart1Text1 + db "@" + +CeladonMart1Text2: ; 60f94 (18:4f94) + TX_FAR _CeladonMart1Text2 + db "@" + +CeladonMart1Text3: ; 60f99 (18:4f99) + TX_FAR _CeladonMart1Text3 + db "@" diff --git a/scripts/celadonmart2.asm b/scripts/celadonmart2.asm new file mode 100755 index 00000000..92f04399 --- /dev/null +++ b/scripts/celadonmart2.asm @@ -0,0 +1,21 @@ +CeladonMart2Script: ; 560f5 (15:60f5) + jp EnableAutoTextBoxDrawing + +CeladonMart2TextPointers: ; 560f8 (15:60f8) + dw CeladonMart2Text1 + dw CeladonMart2Text2 + dw CeladonMart2Text3 + dw CeladonMart2Text4 + dw CeladonMart2Text5 + +CeladonMart2Text3: ; 56102 (15:6102) + TX_FAR _CeladonMart2Text3 + db "@" + +CeladonMart2Text4: ; 56107 (15:6107) + TX_FAR _CeladonMart2Text4 + db "@" + +CeladonMart2Text5: ; 5610c (15:610c) + TX_FAR _CeladonMart2Text5 + db "@" diff --git a/scripts/celadonmart3.asm b/scripts/celadonmart3.asm new file mode 100755 index 00000000..969fa5f8 --- /dev/null +++ b/scripts/celadonmart3.asm @@ -0,0 +1,109 @@ +CeladonMart3Script: ; 48225 (12:4225) + jp EnableAutoTextBoxDrawing + +CeladonMart3TextPointers: ; 48228 (12:4228) + dw CeladonMart3Text1 + dw CeladonMart3Text2 + dw CeladonMart3Text3 + dw CeladonMart3Text4 + dw CeladonMart3Text5 + dw CeladonMart3Text6 + dw CeladonMart3Text7 + dw CeladonMart3Text8 + dw CeladonMart3Text9 + dw CeladonMart3Text10 + dw CeladonMart3Text11 + dw CeladonMart3Text12 + dw CeladonMart3Text13 + dw CeladonMart3Text14 + dw CeladonMart3Text15 + dw CeladonMart3Text16 + dw CeladonMart3Text17 + +CeladonMart3Text1: ; 4824a (12:424a) + db $08 ; asm + ld a, [$d778] + bit 7, a + jr nz, .asm_a5463 ; 0x48250 + ld hl, TM18PreReceiveText + call PrintText + ld bc, (TM_18 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, $d778 + set 7, [hl] + ld hl, ReceivedTM18Text + jr .asm_81359 ; 0x48268 +.BagFull + ld hl, TM18NoRoomText + jr .asm_81359 ; 0x4826d +.asm_a5463 ; 0x4826f + ld hl, TM18ExplanationText +.asm_81359 ; 0x48272 + call PrintText + jp TextScriptEnd + +TM18PreReceiveText: ; 48278 (12:4278) + TX_FAR _TM18PreReceiveText + db "@" + +ReceivedTM18Text: ; 4827d (12:427d) + TX_FAR _ReceivedTM18Text + db $0B, "@" + +TM18ExplanationText: ; 48283 (12:4283) + TX_FAR _TM18ExplanationText + db "@" + +TM18NoRoomText: ; 48288 (12:4288) + TX_FAR _TM18NoRoomText + db "@" + +CeladonMart3Text2: ; 4828d (12:428d) + TX_FAR _CeladonMart3Text2 + db "@" + +CeladonMart3Text3: ; 48292 (12:4292) + TX_FAR _CeladonMart3Text3 + db "@" + +CeladonMart3Text4: ; 48297 (12:4297) + TX_FAR _CeladonMart3Text4 + db "@" + +CeladonMart3Text5: ; 4829c (12:429c) + TX_FAR _CeladonMart3Text5 + db "@" + +CeladonMart3Text12 +CeladonMart3Text10: ; 482a1 (12:42a1) +CeladonMart3Text8: ; 482a1 (12:42a1) +CeladonMart3Text6: ; 482a1 (12:42a1) + TX_FAR _CeladonMart3Text6 + db "@" + +CeladonMart3Text7: ; 482a6 (12:42a6) + TX_FAR _CeladonMart3Text7 + db "@" + +CeladonMart3Text9: ; 482ab (12:42ab) + TX_FAR _CeladonMart3Text9 + db "@" + +CeladonMart3Text11: ; 482b0 (12:42b0) + TX_FAR _CeladonMart3Text11 + db "@" + +CeladonMart3Text13: ; 482b5 (12:42b5) + TX_FAR _CeladonMart3Text13 + db "@" + +CeladonMart3Text14: ; 482ba (12:42ba) + TX_FAR _CeladonMart3Text14 + db "@" + +CeladonMart3Text17: ; 482bf (12:42bf) +CeladonMart3Text16: ; 482bf (12:42bf) +CeladonMart3Text15: ; 482bf (12:42bf) + TX_FAR _CeladonMart3Text15 + db "@" diff --git a/scripts/celadonmart4.asm b/scripts/celadonmart4.asm new file mode 100755 index 00000000..dfe2b90a --- /dev/null +++ b/scripts/celadonmart4.asm @@ -0,0 +1,20 @@ +CeladonMart4Script: ; 48356 (12:4356) + jp EnableAutoTextBoxDrawing + +CeladonMart4TextPointers: ; 48359 (12:4359) + dw CeladonMart4Text1 + dw CeladonMart4Text2 + dw CeladonMart4Text3 + dw CeladonMart4Text4 + +CeladonMart4Text2: ; 48361 (12:4361) + TX_FAR _CeladonMart4Text2 + db "@" + +CeladonMart4Text3: ; 48366 (12:4366) + TX_FAR _CeladonMart4Text3 + db "@" + +CeladonMart4Text4: ; 4836b (12:436b) + TX_FAR _CeladonMart4Text4 + db "@" diff --git a/scripts/celadonmart5.asm b/scripts/celadonmart5.asm new file mode 100755 index 00000000..9bd7f991 --- /dev/null +++ b/scripts/celadonmart5.asm @@ -0,0 +1,21 @@ +CeladonMart5Script: ; 49069 (12:5069) + jp EnableAutoTextBoxDrawing + +CeladonMart5TextPointers: ; 4906c (12:506c) + dw CeladonMart5Text1 + dw CeladonMart5Text2 + dw CeladonMart5Text3 + dw CeladonMart5Text4 + dw CeladonMart5Text5 + +CeladonMart5Text1: ; 49076 (12:5076) + TX_FAR _CeladonMart5Text1 + db "@" + +CeladonMart5Text2: ; 4907b (12:507b) + TX_FAR _CeladonMart5Text2 + db "@" + +CeladonMart5Text5: ; 49080 (12:5080) + TX_FAR _CeladonMart5Text5 + db "@" diff --git a/scripts/celadonmartelevator.asm b/scripts/celadonmartelevator.asm new file mode 100755 index 00000000..9712ef04 --- /dev/null +++ b/scripts/celadonmartelevator.asm @@ -0,0 +1,71 @@ +CeladonMartElevatorScript: ; 48600 (12:4600) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + push hl + call nz, CeladonMartElevatorScript_4861c + pop hl + bit 7, [hl] + res 7, [hl] + call nz, CeladonMartElevatorScript_48654 + xor a + ld [$cf0c], a + inc a + ld [$cc3c], a + ret + +CeladonMartElevatorScript_4861c: ; 4861c (12:461c) + ld hl, $d3af + ld a, [$d73b] + ld b, a + ld a, [$d73c] + ld c, a + call CeladonMartElevatorScript_4862a + +CeladonMartElevatorScript_4862a: ; 4862a (12:462a) + inc hl + inc hl + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ret + +CeladonMartElevatorScript_48631: ; 48631 (12:4631) + ld hl, CeladonMartElavatorFloors ; $4643 + call LoadItemList + ld hl, CeldaonMartElevatorWarpMaps ; $464a + ld de, $cc5b + ld bc, $000a + jp CopyData + +CeladonMartElavatorFloors: ; 48643 (12:4643) + db $05 ; num elements in list + db $56, $57, $58, $59, $5A ; "1F", "2F", "3F", "4F, "5F" + db $FF ; terminator + +CeldaonMartElevatorWarpMaps: ; 4864a (12:464a) +; first byte is warp number +; second byte is map number +; These specify where the player goes after getting out of the elevator. + db $05, CELADON_MART_1 + db $02, CELADON_MART_2 + db $02, CELADON_MART_3 + db $02, CELADON_MART_4 + db $02, CELADON_MART_5 + +CeladonMartElevatorScript_48654: ; 48654 (12:4654) + ld b, BANK(ShakeElevator) + ld hl, ShakeElevator + jp Bankswitch + +CeladonMartElevatorTextPointers: ; 4865c (12:465c) + dw CeladonMartElevatorText1 + +CeladonMartElevatorText1: ; 4865e (12:465e) + db $08 ; asm + call CeladonMartElevatorScript_48631 + ld hl, CeldaonMartElevatorWarpMaps ; $464a + ld a, $61 + call Predef + jp TextScriptEnd diff --git a/scripts/celadonmartroof.asm b/scripts/celadonmartroof.asm new file mode 100755 index 00000000..d1765575 --- /dev/null +++ b/scripts/celadonmartroof.asm @@ -0,0 +1,263 @@ +CeladonMartRoofScript: ; 483d5 (12:43d5) + jp EnableAutoTextBoxDrawing + +CeladonMartRoofScript_483d8: ; 483d8 (12:43d8) + xor a + ld [$cd37], a + ld de, $cc5b + ld hl, CeladonMartRoofDrinkList ; $4408 +.asm_483e2 + ld a, [hli] + and a + jr z, .asm_48404 + push hl + push de + ld [$d11e], a + ld b, a + ld a, $1c + call Predef ; indirect jump to Func_f8a5 (f8a5 (3:78a5)) + pop de + pop hl + ld a, b + and a + jr z, .asm_483e2 + ld a, [$d11e] + ld [de], a + inc de + push hl + ld hl, $cd37 + inc [hl] + pop hl + jr .asm_483e2 +.asm_48404 + ld a, $ff + ld [de], a + ret + +CeladonMartRoofDrinkList: ; 48408 (12:4408) + db FRESH_WATER + db SODA_POP + db LEMONADE + db $00 + +CeladonMartRoofScript_4840c: ; 4840c (12:440c) + ld hl, $d730 + set 6, [hl] + ld hl, CeladonMartRoofText_484ee ; $44ee + call PrintText + xor a + ld [wCurrentMenuItem], a ; $cc26 + ld a, $3 + ld [wMenuWatchedKeys], a ; $cc29 + ld a, [$cd37] + dec a + ld [wMaxMenuItem], a ; $cc28 + ld a, $2 + ld [wTopMenuItemY], a ; $cc24 + ld a, $1 + ld [wTopMenuItemX], a ; $cc25 + ld a, [$cd37] + dec a + ld bc, $2 + ld hl, $3 + call AddNTimes + dec l + ld b, l + ld c, $c + ld hl, wTileMap + call TextBoxBorder + call UpdateSprites + call CeladonMartRoofScript_48532 + ld hl, $d730 + res 6, [hl] + call HandleMenuInput + bit 1, a + ret nz + ld hl, $cc5b + ld a, [wCurrentMenuItem] ; $cc26 + ld d, $0 + ld e, a + add hl, de + ld a, [hl] + ld [$ffdb], a + cp FRESH_WATER + jr z, .asm_484b6 + cp SODA_POP + jr z, .asm_48492 + ld a, [$d778] + bit 6, a + jr nz, .asm_484e0 + ld hl, CeladonMartRoofText_48515 ; $4515 + call PrintText + call RemoveItemByIDBank12 + ld bc, (TM_49 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedTM49Text + call PrintText + ld hl, $d778 + set 6, [hl] + ret +.asm_48492 + ld a, [$d778] + bit 5, a + jr nz, .asm_484e0 + ld hl, CeladonMartRoofText_48504 ; $4504 + call PrintText + call RemoveItemByIDBank12 + ld bc, (TM_48 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, CeladonMartRoofText_4850a ; $450a + call PrintText + ld hl, $d778 + set 5, [hl] + ret +.asm_484b6 + ld a, [$d778] + bit 4, a + jr nz, .asm_484e0 + ld hl, CeladonMartRoofText_484f3 ; $44f3 + call PrintText + call RemoveItemByIDBank12 + ld bc, (TM_13 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, CeladonMartRoofText_484f9 ; $44f9 + call PrintText + ld hl, $d778 + set 4, [hl] + ret +.BagFull + ld hl, CeladonMartRoofText_48526 ; $4526 + jp PrintText +.asm_484e0 + ld hl, CeladonMartRoofText_4852c ; $452c + jp PrintText + +RemoveItemByIDBank12: ; 484e6 (12:44e6) + ld b, BANK(RemoveItemByID) + ld hl, RemoveItemByID + jp Bankswitch + +CeladonMartRoofText_484ee: ; 484ee (12:44ee) + TX_FAR _CeladonMartRoofText_484ee + db "@" + +CeladonMartRoofText_484f3: ; 484f3 (12:44f3) + TX_FAR _CeladonMartRoofText_484f3 + db $0d + db "@" + +CeladonMartRoofText_484f9: ; 484f9 (12:44f9) + TX_FAR _CeladonMartRoofText_484f9 + db $0b + TX_FAR _CeladonMartRoofText_484fe + db $0d + db "@" + +CeladonMartRoofText_48504: ; 48504 (12:4504) + TX_FAR _CeladonMartRoofText_48504 + db $0d + db "@" + +CeladonMartRoofText_4850a: ; 4850a (12:450a) + TX_FAR _CeladonMartRoofText_4850a + db $0b + TX_FAR _CeladonMartRoofText_4850f + db $0d + db "@" + +CeladonMartRoofText_48515: ; 48515 (12:4515) + TX_FAR _CeladonMartRoofText_48515 + db $0d + db "@" + +ReceivedTM49Text: ; 4851b (12:451b) + TX_FAR _ReceivedTM49Text + db $0b + TX_FAR _CeladonMartRoofText_48520 + db $0d + db "@" + +CeladonMartRoofText_48526: ; 48526 (12:4526) + TX_FAR _CeladonMartRoofText_48526 + db $0d + db "@" + +CeladonMartRoofText_4852c: ; 4852c (12:452c) + TX_FAR _CeladonMartRoofText_4852c + db $0d + db "@" + +CeladonMartRoofScript_48532: ; 48532 (12:4532) + ld hl, $cc5b + xor a + ld [$ffdb], a +.asm_48538 + ld a, [hli] + cp $ff + ret z + push hl + ld [$d11e], a + call GetItemName + FuncCoord 2, 2 ; $c3ca + ld hl, Coord + ld a, [$ffdb] + ld bc, $28 + call AddNTimes + ld de, $cd6d + call PlaceString + ld hl, $ffdb + inc [hl] + pop hl + jr .asm_48538 + +CeladonMartRoofTextPointers: ; 4855b (12:455b) + dw CeladonMartRoofText1 + dw CeladonMartRoofText2 + dw CeladonMartRoofText5 + dw CeladonMartRoofText5 + dw CeladonMartRoofText5 + dw CeladonMartRoofText6 + +CeladonMartRoofText1: ; 48567 (12:4567) + TX_FAR _CeladonMartRoofText1 + db "@" + +CeladonMartRoofText2: ; 4856c (12:456c) + db $08 ; asm + call CeladonMartRoofScript_483d8 + ld a, [$cd37] + and a + jr z, .asm_914b9 ; 0x48574 + ld a, $1 + ld [$cc3c], a + ld hl, CeladonMartRoofText4 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_05aa4 ; 0x48588 + call CeladonMartRoofScript_4840c + jr .asm_05aa4 ; 0x4858d +.asm_914b9 ; 0x4858f + ld hl, CeladonMartRoofText3 + call PrintText +.asm_05aa4 ; 0x48595 + jp TextScriptEnd + +CeladonMartRoofText3: ; 48598 (12:4598) + TX_FAR _CeladonMartRoofText_48598 + db "@" + +CeladonMartRoofText4: ; 4859d (12:459d) + TX_FAR _CeladonMartRoofText4 + db "@" + +CeladonMartRoofText5: ; 485a2 (12:45a2) + db $f5 + +CeladonMartRoofText6: ; 485a3 (12:45a3) + TX_FAR _CeladonMartRoofText6 + db "@" diff --git a/scripts/celadonpokecenter.asm b/scripts/celadonpokecenter.asm new file mode 100755 index 00000000..e7bfd1d2 --- /dev/null +++ b/scripts/celadonpokecenter.asm @@ -0,0 +1,23 @@ +CeladonPokecenterScript: ; 488b8 (12:48b8) + call Func_22fa + jp EnableAutoTextBoxDrawing + +CeladonPokecenterTextPointers: ; 488be (12:48be) + dw CeladonPokecenterText1 + dw CeladonPokecenterText2 + dw CeladonPokecenterText3 + dw CeladonPokecenterText4 + +CeladonPokecenterText4: ; 488c6 (12:48c6) + db $f6 + +CeladonPokecenterText1: ; 488c7 (12:48c7) + db $ff + +CeladonPokecenterText2: ; 488c8 (12:48c8) + TX_FAR _CeladonPokecenterText2 + db "@" + +CeladonPokecenterText3: ; 488cd (12:48cd) + TX_FAR _CeladonPokecenterText3 + db "@" diff --git a/scripts/celadonprizeroom.asm b/scripts/celadonprizeroom.asm new file mode 100755 index 00000000..2cfd01d0 --- /dev/null +++ b/scripts/celadonprizeroom.asm @@ -0,0 +1,20 @@ +CeladonPrizeRoomScript: ; 490f0 (12:50f0) + jp EnableAutoTextBoxDrawing + +CeladonPrizeRoomTextPointers: ; 490f3 (12:50f3) + dw CeladonPrizeRoomText1 + dw CeladonPrizeRoomText2 + dw CeladonPrizeRoomText3 + dw CeladonPrizeRoomText3 + dw CeladonPrizeRoomText3 + +CeladonPrizeRoomText1: ; 490fd (12:50fd) + TX_FAR _CeladonPrizeRoomText1 + db "@" + +CeladonPrizeRoomText2: ; 49102 (12:5102) + TX_FAR _CeladonPrizeRoomText2 + db "@" + +CeladonPrizeRoomText3: ; 49107 (12:5107) + db $f7 diff --git a/scripts/ceruleancity.asm b/scripts/ceruleancity.asm new file mode 100755 index 00000000..0879fb74 --- /dev/null +++ b/scripts/ceruleancity.asm @@ -0,0 +1,448 @@ +CeruleanCityScript: ; 19480 (6:5480) + call EnableAutoTextBoxDrawing + ld hl, CeruleanCityScriptPointers + ld a, [W_CERULEANCITYCURSCRIPT] + jp CallFunctionInTable + +CeruleanCityScript_1948c: ; 1948c (6:548c) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_CERULEANCITYCURSCRIPT], a + ld a, $5 + ld [$cc4d], a + ld a, $11 + jp Predef + +CeruleanCityScriptPointers: ; 1949d (6:549d) + dw CeruleanCityScript0 + dw CeruleanCityScript1 + dw CeruleanCityScript2 + dw CeruleanCityScript3 + dw CeruleanCityScript4 + +CeruleanCityScript4: ; 194a7 (6:54a7) + ld a, [W_ISINBATTLE] + cp $ff + jp z, CeruleanCityScript_1948c + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d75b + set 7, [hl] + ld a, $2 + ld [$ff8c], a + call DisplayTextID + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_CERULEANCITYCURSCRIPT], a + ret + +CeruleanCityScript0: ; 194c8 (6:54c8) + ld a, [$d75b] + bit 7, a + jr nz, .asm_194f7 ; 0x194cd $28 + ld hl, CeruleanCityCoords1 + call ArePlayerCoordsInArray + jr nc, .asm_194f7 ; 0x194d5 $20 + ld a, [$cd3d] + cp $1 + ld a, $8 + ld b, $0 + jr nz, .asm_194e6 ; 0x194e0 $4 + ld a, $4 + ld b, $4 +.asm_194e6 + ld [$d528], a + ld a, b + ld [$c129], a + call Delay3 + ld a, $2 + ld [$ff8c], a + jp DisplayTextID +.asm_194f7 + ld a, [$d75a] + bit 0, a + ret nz + ld hl, CeruleanCityCoords2 + call ArePlayerCoordsInArray + ret nc + ld a, [$d700] + and a + jr z, .asm_19512 ; 0x19508 $8 + ld a, $ff + ld [$c0ee], a + call PlaySound +.asm_19512 + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, [W_XCOORD] + cp $14 + jr z, .asm_19535 ; 0x19526 $d + ld a, $1 + ld [$ff8c], a + ld a, $5 + ld [$ff8b], a + call Func_3500 + ld [hl], $19 +.asm_19535 + ld a, $5 + ld [$cc4d], a + ld a, $15 + call Predef + ld de, CeruleanCityMovement1 + ld a, $1 + ld [$ff8c], a + call MoveSprite + ld a, $1 + ld [W_CERULEANCITYCURSCRIPT], a + ret + +CeruleanCityCoords1: ; 1954f (6:554f) + db $07,$1e + db $09,$1e + db $ff + +CeruleanCityCoords2: ; 19554 (6:5554) + db $06,$14 + db $06,$15 + db $ff + +CeruleanCityMovement1: ; 19559 (6:5559) + db $00,$00,$00,$FF + +CeruleanCityScript_1955d: ; 1955d (6:555d) + ld a,1 + ld [$ff8c],a + xor a + ld [$ff8d],a + jp Func_34a6 ; face object + +CeruleanCityScript1: ; 19567 (6:5567) + ld a, [$d730] + bit 0, a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $1 + ld [$ff8c], a + call DisplayTextID + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, CeruleanCityText_1966d + ld de, CeruleanCityText_19672 + call PreBattleSaveRegisters + ld a, SONY1 + $c8 + ld [W_CUROPPONENT], a + + ; select which team to use during the encounter + ld a, [W_RIVALSTARTER] + cp SQUIRTLE + jr nz, .NotSquirtle ; 0x19592 $4 + ld a, $7 + jr .done +.NotSquirtle + cp BULBASAUR + jr nz, .Charmander ; 0x1959a $4 + ld a, $8 + jr .done +.Charmander + ld a, $9 +.done + ld [W_TRAINERNO], a + + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + call CeruleanCityScript_1955d + ld a, $2 + ld [W_CERULEANCITYCURSCRIPT], a + ret + +CeruleanCityScript2: ; 195b1 (6:55b1) + ld a, [$d057] + cp $ff + jp z, CeruleanCityScript_1948c + call CeruleanCityScript_1955d + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d75a + set 0, [hl] + ld a, $1 + ld [$ff8c], a + call DisplayTextID + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $1 + ld [$ff8c], a + call SetSpriteMovementBytesToFF + ld a, [W_XCOORD] + cp $14 + jr nz, .asm_195f0 ; 0x195e9 $5 + ld de, CeruleanCityMovement4 + jr .asm_195f3 ; 0x195ee $3 +.asm_195f0 + ld de, CeruleanCityMovement3 +.asm_195f3 + ld a, $1 + ld [$ff8c], a + call MoveSprite + ld a, $3 + ld [W_CERULEANCITYCURSCRIPT], a + ret + +CeruleanCityMovement3: ; 19600 (6:5600) + db $80,$00,$00,$00,$00,$00,$00,$FF + +CeruleanCityMovement4: ; 19608 (6:5608) + db $c0,$00,$00,$00,$00,$00,$00,$FF + +CeruleanCityScript3: ; 19610 (6:5610) + ld a, [$d730] + bit 0, a + ret nz + ld a, $5 + ld [$cc4d], a + ld a, $11 + call Predef + xor a + ld [wJoypadForbiddenButtonsMask], a + call Func_2307 + ld a, $0 + ld [W_CERULEANCITYCURSCRIPT], a + ret + +CeruleanCityTextPointers: ; 1962d (6:562d) + dw CeruleanCityText1 + dw CeruleanCityText2 + dw CeruleanCityText3 + dw CeruleanCityText4 + dw CeruleanCityText5 + dw CeruleanCityText6 + dw CeruleanCityText7 + dw CeruleanCityText8 + dw CeruleanCityText9 + dw CeruleanCityText10 + dw CeruleanCityText11 + dw CeruleanCityText12 + dw CeruleanCityText13 + dw MartSignText + dw PokeCenterSignText + dw CeruleanCityText16 + dw CeruleanCityText17 + +CeruleanCityText1: ; 1964f (6:564f) + db $08 ; asm + ld a, [$d75a] ; rival battle flag + bit 0, a + ; do pre-battle text + jr z, .PreBattleText + ; or talk about bill + ld hl, CeruleanCityText_19677 + call PrintText + jr .end ; 0x1965d +.PreBattleText ; 0x1965f + ld hl, CeruleanCityText_19668 + call PrintText +.end ; 0x19665 + jp TextScriptEnd + +CeruleanCityText_19668: ; 19668 (6:5668) + TX_FAR _CeruleanCityText_19668 + db "@" + +CeruleanCityText_1966d: ; 1966d (6:566d) + TX_FAR _CeruleanCityText_1966d + db "@" + +CeruleanCityText_19672: ; 19672 (6:5672) + TX_FAR _CeruleanCityText_19672 + db "@" + +CeruleanCityText_19677: ; 19677 (6:5677) + TX_FAR _CeruleanCityText_19677 + db "@" + +CeruleanCityText2: ; 1967c (6:567c) + db $8 + ld a, [$d75b] + bit 7, a + jr nz, .asm_4ca20 ; 0x19682 $29 + ld hl, CeruleanCityText_196d9 + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, CeruleanCityText_196ee + ld de, CeruleanCityText_196ee + call PreBattleSaveRegisters + ld a, [$ff8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $4 + ld [W_CERULEANCITYCURSCRIPT], a + jp TextScriptEnd +.asm_4ca20 ; 0x196ad + ld hl, CeruleanCityText_196f3 + call PrintText + ld bc, $e401 + call GiveItem + jr c, .Success + ld hl, TM28NoRoomText + call PrintText + jr .Done +.Success + ld a, $1 + ld [$cc3c], a + ld hl, ReceivedTM28Text + call PrintText + ld b, BANK(Func_74872) + ld hl, Func_74872 + call Bankswitch +.Done + jp TextScriptEnd + +CeruleanCityText_196d9: ; 196d9 (6:56d9) + TX_FAR _CeruleanCityText_196d9 + db "@" + +ReceivedTM28Text: ; 196de (6:56de) + TX_FAR _ReceivedTM28Text + db $0B + TX_FAR _ReceivedTM28Text2 + db $0D, "@" + +TM28NoRoomText: ; 196e9 (6:56e9) + TX_FAR _TM28NoRoomText + db "@" + +CeruleanCityText_196ee: ; 196ee (6:56ee) + TX_FAR _CeruleanCityText_196ee + db "@" + +CeruleanCityText_196f3: ; 196f3 (6:56f3) + TX_FAR _CeruleanCityText_196f3 + db "@" + +CeruleanCityText3: ; 196f8 (6:56f8) + TX_FAR _CeruleanCityText3 + db "@" + +CeruleanCityText4: ; 196fd (6:56fd) + TX_FAR _CeruleanCityText4 + db "@" + +CeruleanCityText5: ; 19702 (6:5702) + TX_FAR _CeruleanCityText5 + db "@" + +CeruleanCityText11: ; 19707 (6:5707) +CeruleanCityText6: ; 19707 (6:5707) + TX_FAR _CeruleanCityText6 + db "@" + +CeruleanCityText7: ; 1970c (6:570c) + db $08 ; asm + ldh a, [$d3] + cp $b4 + jr c, .asm_e9fc9 ; 0x19711 + ld hl, CeruleanCityText_19730 + call PrintText + jr .asm_d486e ; 0x19719 +.asm_e9fc9 ; 0x1971b + cp $64 + jr c, .asm_df99b ; 0x1971d + ld hl, CeruleanCityText_19735 + call PrintText + jr .asm_d486e ; 0x19725 +.asm_df99b ; 0x19727 + ld hl, CeruleanCityText_1973a + call PrintText +.asm_d486e ; 0x1972d + jp TextScriptEnd + +CeruleanCityText_19730: ; 19730 (6:5730) + TX_FAR _CeruleanCityText_19730 + db "@" + +CeruleanCityText_19735: ; 19735 (6:5735) + TX_FAR _CeruleanCityText_19735 + db "@" + +CeruleanCityText_1973a: ; 1973a (6:573a) + TX_FAR _CeruleanCityText_1973a + db "@" + +CeruleanCityText8: ; 1973f (6:573f) + db $08 ; asm + ldh a, [$d3] + cp $b4 + jr c, .asm_e28da ; 0x19744 + ld hl, CeruleanCityText_1976f + call PrintText + jr .asm_f2f38 ; 0x1974c +.asm_e28da ; 0x1974e + cp $78 + jr c, .asm_15d08 ; 0x19750 + ld hl, CeruleanCityText_19774 + call PrintText + jr .asm_f2f38 ; 0x19758 +.asm_15d08 ; 0x1975a + cp $3c + jr c, .asm_d7fea ; 0x1975c + ld hl, CeruleanCityText_19779 + call PrintText + jr .asm_f2f38 ; 0x19764 +.asm_d7fea ; 0x19766 + ld hl, CeruleanCityText_1977e + call PrintText +.asm_f2f38 ; 0x1976c + jp TextScriptEnd + +CeruleanCityText_1976f: ; 1976f (6:576f) + TX_FAR _CeruleanCityText_1976f + db "@" + +CeruleanCityText_19774: ; 19774 (6:5774) + TX_FAR _CeruleanCityText_19774 + db "@" + +CeruleanCityText_19779: ; 19779 (6:5779) + TX_FAR _CeruleanCityText_19779 + db "@" + +CeruleanCityText_1977e: ; 1977e (6:577e) + TX_FAR _CeruleanCityText_1977e + db "@" + +CeruleanCityText9: ; 19783 (6:5783) + TX_FAR _CeruleanCityText9 + db "@" + +CeruleanCityText10: ; 19788 (6:5788) + TX_FAR _CeruleanCityText10 + db "@" + +CeruleanCityText12: ; 1978d (6:578d) + TX_FAR _CeruleanCityText12 + db "@" + +CeruleanCityText13: ; 19792 (6:5792) + TX_FAR _CeruleanCityText13 + db "@" + +CeruleanCityText16: ; 19797 (6:5797) + TX_FAR _CeruleanCityText16 + db "@" + +CeruleanCityText17: ; 1979c (6:579c) + TX_FAR _CeruleanCityText17 + db "@" diff --git a/scripts/ceruleangym.asm b/scripts/ceruleangym.asm new file mode 100755 index 00000000..7d35cf71 --- /dev/null +++ b/scripts/ceruleangym.asm @@ -0,0 +1,224 @@ +CeruleanGymScript: ; 5c6b3 (17:46b3) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + call nz, CeruleanGymScript_5c6d0 + call EnableAutoTextBoxDrawing + ld hl, CeruleanGymTrainerHeaders + ld de, CeruleanGymScriptPointers + ld a, [W_CERULEANGYMCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_CERULEANGYMCURSCRIPT], a + ret + +CeruleanGymScript_5c6d0: ; 5c6d0 (17:46d0) + ld hl, Gym2CityName ; $46d9 + ld de, Gym2LeaderName ; $46e7 + jp LoadGymLeaderAndCityName + +Gym2CityName: ; 5c6d9 (17:46d9) + db "CERULEAN CITY@" + +Gym2LeaderName: ; 5c6e7 (17:46e7) + db "MISTY@" + +CeruleanGymScript_5c6ed: ; 5c6ed (17:46ed) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_CERULEANGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CeruleanGymScriptPointers: ; 5c6f8 (17:46f8) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + dw CeruleanGymScript3 + +CeruleanGymScript3: ; 5c700 (17:4700) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, CeruleanGymScript_5c6ed + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + +CeruleanGymScript_5c70d: ; 5c70d (17:470d) + ld a, $5 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d75e + set 7, [hl] + ld bc, (TM_11 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $6 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d75e + set 6, [hl] + jr .asm_5c736 +.BagFull + ld a, $7 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_5c736 + ld hl, W_OBTAINEDBADGES + set 1, [hl] + ld hl, $d72a + set 1, [hl] + + ; deactivate gym trainers + ld hl, $d75e + set 2, [hl] + set 3, [hl] + + jp CeruleanGymScript_5c6ed + +CeruleanGymTextPointers: ; 5c74a (17:474a) + dw CeruleanGymText1 + dw CeruleanGymText2 + dw CeruleanGymText3 + dw CeruleanGymText4 + dw CeruleanGymText5 + dw CeruleanGymText6 + dw CeruleanGymText7 + +CeruleanGymTrainerHeaders: ; 5c758 (17:4758) +CeruleanGymTrainerHeader0: ; 5c758 (17:4758) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d75e ; flag's byte + dw CeruleanGymBattleText1 ; 0x47e9 TextBeforeBattle + dw CeruleanGymAfterBattleText1 ; 0x47f3 TextAfterBattle + dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle + dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle + +CeruleanGymTrainerHeader1: ; 5c764 (17:4764) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d75e ; flag's byte + dw CeruleanGymBattleText2 ; 0x4802 TextBeforeBattle + dw CeruleanGymAfterBattleText2 ; 0x480c TextAfterBattle + dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle + dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle + + db $ff + +CeruleanGymText1: ; 5c771 (17:4771) + db $08 ; asm + ld a, [$d75e] + bit 7, a + jr z, .asm_10854 ; 0x5c777 + bit 6, a + jr nz, .asm_37a1b ; 0x5c77b + call z, CeruleanGymScript_5c70d + call DisableWaitingAfterTextDisplay + jr .asm_95b04 ; 0x5c783 +.asm_37a1b ; 0x5c785 + ld hl, CeruleanGymText_5c7c3 + call PrintText + jr .asm_95b04 ; 0x5c78b +.asm_10854 ; 0x5c78d + ld hl, CeruleanGymText_5c7be + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, CeruleanGymText_5c7d8 + ld de, CeruleanGymText_5c7d8 + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $2 + ld [$d05c], a + xor a + ldh [$b4], a + ld a, $3 + ld [W_CERULEANGYMCURSCRIPT], a +.asm_95b04 ; 0x5c7bb + jp TextScriptEnd + +CeruleanGymText_5c7be: ; 5c7be (17:47be) + TX_FAR _CeruleanGymText_5c7be + db "@" + +CeruleanGymText_5c7c3: ; 5c7c3 (17:47c3) + TX_FAR _CeruleanGymText_5c7c3 + db "@" + +CeruleanGymText5: ; 5c7c8 (17:47c8) + TX_FAR _CeruleanGymText_5c7c8 + db "@" + +CeruleanGymText6: ; 5c7cd (17:47cd) +ReceivedTM11Text: ; 5c7cd (17:47cd) + TX_FAR _ReceivedTM11Text + db $0B, "@" + +CeruleanGymText7: ; 5c7d3 (17:47d3) + TX_FAR _CeruleanGymText_5c7d3 + db "@" + +CeruleanGymText_5c7d8: ; 5c7d8 (17:47d8) + TX_FAR _CeruleanGymText_5c7d8 + db $11, $6, "@" + +CeruleanGymText2: ; 5c7df (17:47df) + db $08 ; asm + ld hl, CeruleanGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +CeruleanGymBattleText1: ; 5c7e9 (17:47e9) + TX_FAR _CeruleanGymBattleText1 + db "@" + +CeruleanGymEndBattleText1: ; 5c7ee (17:47ee) + TX_FAR _CeruleanGymEndBattleText1 + db "@" + +CeruleanGymAfterBattleText1: ; 5c7f3 (17:47f3) + TX_FAR _CeruleanGymAfterBattleText1 + db "@" + +CeruleanGymText3: ; 5c7f8 (17:47f8) + db $08 ; asm + ld hl, CeruleanGymTrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +CeruleanGymBattleText2: ; 5c802 (17:4802) + TX_FAR _CeruleanGymBattleText2 + db "@" + +CeruleanGymEndBattleText2: ; 5c807 (17:4807) + TX_FAR _CeruleanGymEndBattleText2 + db "@" + +CeruleanGymAfterBattleText2: ; 5c80c (17:480c) + TX_FAR _CeruleanGymAfterBattleText2 + db "@" + +CeruleanGymText4: ; 5c811 (17:4811) + db $08 ; asm + ld a, [$d75e] + bit 7, a + jr nz, .asm_f80ce ; 0x5c817 + ld hl, CeruleanGymText_5c82a + call PrintText + jr .asm_18a31 ; 0x5c81f +.asm_f80ce ; 0x5c821 + ld hl, CeruleanGymText_5c82f + call PrintText +.asm_18a31 ; 0x5c827 + jp TextScriptEnd + +CeruleanGymText_5c82a: ; 5c82a (17:482a) + TX_FAR _CeruleanGymText_5c82a + db "@" + +CeruleanGymText_5c82f: ; 5c82f (17:482f) + TX_FAR _CeruleanGymText_5c82f + db "@" diff --git a/scripts/ceruleanhouse1.asm b/scripts/ceruleanhouse1.asm new file mode 100755 index 00000000..6bc1cd30 --- /dev/null +++ b/scripts/ceruleanhouse1.asm @@ -0,0 +1,18 @@ +CeruleanHouse1Script: ; 1d6f6 (7:56f6) + jp EnableAutoTextBoxDrawing + +CeruleanHouse1TextPointers: ; 1d6f9 (7:56f9) + dw CeruleanHouse1Text1 + dw CeruleanHouse1Text2 + +CeruleanHouse1Text1: ; 1d6fd (7:56fd) + TX_FAR _CeruleanHouse1Text1 + db "@" + +CeruleanHouse1Text2: ; 1d702 (7:5702) + db $08 ; asm + ld a, $6 + ld [wWhichTrade], a + ld a, $54 + call Predef + jp TextScriptEnd diff --git a/scripts/ceruleanhouse2.asm b/scripts/ceruleanhouse2.asm new file mode 100755 index 00000000..eae26047 --- /dev/null +++ b/scripts/ceruleanhouse2.asm @@ -0,0 +1,109 @@ +CeruleanHouse2Script: ; 74e09 (1d:4e09) + ld a, $1 + ld [$cf0c], a + dec a + ld [$cc3c], a + ret + +CeruleanHouse2TextPointers: ; 74e13 (1d:4e13) + dw CeruleanHouse2Text1 + +CeruleanHouse2Text1: ; 74e15 (1d:4e15) + db $8 + ld hl, CeruleanHouse2Text_74e77 + call PrintText + xor a + ld [wCurrentMenuItem], a + ld [wListScrollOffset], a +.asm_74e23 + ld hl, CeruleanHouse2Text_74e7c + call PrintText + ld hl, BadgeItemList + call LoadItemList + ld hl, $cf7b + ld a, l + ld [$cf8b], a + ld a, h + ld [$cf8c], a + xor a + ld [$cf93], a + ld [$cc35], a + ld a, SPECIALLISTMENU + ld [wListMenuID], a + call DisplayListMenuID + jr c, .asm_74e60 ; 0x74e49 $15 + ld hl, TextPointers_74e86 + ld a, [$cf91] + sub $15 + add a + ld d, $0 + ld e, a + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + jr .asm_74e23 ; 0x74e5e $c3 +.asm_74e60 + xor a + ld [wListScrollOffset], a + ld hl, CeruleanHouse2Text_74e81 + call PrintText + jp TextScriptEnd + +BadgeItemList: ; 74e6d (1d:4e6d) + db $8,BOULDERBADGE,CASCADEBADGE,THUNDERBADGE,RAINBOWBADGE,SOULBADGE,MARSHBADGE,VOLCANOBADGE,EARTHBADGE,$FF + +CeruleanHouse2Text_74e77: ; 74e77 (1d:4e77) + TX_FAR _CeruleanHouse2Text_74e77 + db "@" + +CeruleanHouse2Text_74e7c: ; 74e7c (1d:4e7c) + TX_FAR _CeruleanHouse2Text_74e7c + db "@" + +CeruleanHouse2Text_74e81: ; 74e81 (1d:4e81) + TX_FAR _CeruleanHouse2Text_74e81 + db "@" + +TextPointers_74e86: ; 74e86 (1d:4e86) + dw CeruleanHouse2Text_74e96 + dw CeruleanHouse2Text_74e9b + dw CeruleanHouse2Text_74ea0 + dw CeruleanHouse2Text_74ea5 + dw CeruleanHouse2Text_74eaa + dw CeruleanHouse2Text_74eaf + dw CeruleanHouse2Text_74eb4 + dw CeruleanHouse2Text_74eb9 + +CeruleanHouse2Text_74e96: ; 74e96 (1d:4e96) + TX_FAR _CeruleanHouse2Text_74e96 + db "@" + +CeruleanHouse2Text_74e9b: ; 74e9b (1d:4e9b) + TX_FAR _CeruleanHouse2Text_74e9b + db "@" + +CeruleanHouse2Text_74ea0: ; 74ea0 (1d:4ea0) + TX_FAR _CeruleanHouse2Text_74ea0 + db "@" + +CeruleanHouse2Text_74ea5: ; 74ea5 (1d:4ea5) + TX_FAR _CeruleanHouse2Text_74ea5 + db "@" + +CeruleanHouse2Text_74eaa: ; 74eaa (1d:4eaa) + TX_FAR _CeruleanHouse2Text_74eaa + db "@" + +CeruleanHouse2Text_74eaf: ; 74eaf (1d:4eaf) + TX_FAR _CeruleanHouse2Text_74eaf + db "@" + +CeruleanHouse2Text_74eb4: ; 74eb4 (1d:4eb4) + TX_FAR _CeruleanHouse2Text_74eb4 + db "@" + +CeruleanHouse2Text_74eb9: ; 74eb9 (1d:4eb9) + TX_FAR _CeruleanHouse2Text_74eb9 + db "@" diff --git a/scripts/ceruleanhousetrashed.asm b/scripts/ceruleanhousetrashed.asm new file mode 100755 index 00000000..1bb60564 --- /dev/null +++ b/scripts/ceruleanhousetrashed.asm @@ -0,0 +1,40 @@ +CeruleanHouseTrashedScript: ; 1d685 (7:5685) + call EnableAutoTextBoxDrawing + ret + +CeruleanHouseTrashedTextPointers: ; 1d689 (7:5689) + dw CeruleanHouseTrashedText1 + dw CeruleanHouseTrashedText2 + dw CeruleanHouseTrashedText3 + +CeruleanHouseTrashedText1: ; 1d68f (7:568f) + db $08 ; asm + ld b, $e4 + ld a, $1c + call Predef + and b + jr z, .asm_f8734 ; 0x1d698 + ld hl, CeruleanHouseTrashedText_1d6b0 + call PrintText + jr .asm_8dfe9 ; 0x1d6a0 +.asm_f8734 ; 0x1d6a2 + ld hl, CeruleanHouseTrashedText_1d6ab + call PrintText +.asm_8dfe9 ; 0x1d6a8 + jp TextScriptEnd + +CeruleanHouseTrashedText_1d6ab: ; 1d6ab (7:56ab) + TX_FAR _CeruleanTrashedText_1d6ab + db "@" + +CeruleanHouseTrashedText_1d6b0: ; 1d6b0 (7:56b0) + TX_FAR _CeruleanTrashedText_1d6b0 + db "@" + +CeruleanHouseTrashedText2: ; 1d6b5 (7:56b5) + TX_FAR _CeruleanHouseTrashedText2 + db "@" + +CeruleanHouseTrashedText3: ; 1d6ba (7:56ba) + TX_FAR _CeruleanHouseTrashedText3 + db "@" diff --git a/scripts/ceruleanmart.asm b/scripts/ceruleanmart.asm new file mode 100755 index 00000000..7aea6d47 --- /dev/null +++ b/scripts/ceruleanmart.asm @@ -0,0 +1,15 @@ +CeruleanMartScript: ; 5c895 (17:4895) + jp EnableAutoTextBoxDrawing + +CeruleanMartTextPointers: ; 5c898 (17:4898) + dw CeruleanMartText1 + dw CeruleanMartText2 + dw CeruleanMartText3 + +CeruleanMartText2: ; 5c89e (17:489e) + TX_FAR _CeruleanMartText2 + db "@" + +CeruleanMartText3: ; 5c8a3 (17:48a3) + TX_FAR _CeruleanMartText3 + db "@" diff --git a/scripts/ceruleanpokecenter.asm b/scripts/ceruleanpokecenter.asm new file mode 100755 index 00000000..b6f88b41 --- /dev/null +++ b/scripts/ceruleanpokecenter.asm @@ -0,0 +1,23 @@ +CeruleanPokecenterScript: ; 5c645 (17:4645) + call Func_22fa + jp EnableAutoTextBoxDrawing + +CeruleanPokecenterTextPointers: ; 5c64b (17:464b) + dw CeruleanPokecenterText1 + dw CeruleanPokecenterText2 + dw CeruleanPokecenterText3 + dw CeruleanPokecenterText4 + +CeruleanPokecenterText4: ; 5c653 (17:4653) + db $f6 + +CeruleanPokecenterText1: ; 5c654 (17:4654) + db $ff + +CeruleanPokecenterText2: ; 5c655 (17:4655) + TX_FAR _CeruleanPokecenterText1 + db "@" + +CeruleanPokecenterText3: ; 5c65a (17:465a) + TX_FAR _CeruleanPokecenterText3 + db "@" diff --git a/scripts/cinnabargym.asm b/scripts/cinnabargym.asm new file mode 100755 index 00000000..1d66a1bf --- /dev/null +++ b/scripts/cinnabargym.asm @@ -0,0 +1,483 @@ +CinnabarGymScript: ; 7574a (1d:574a) + call CinnabarGymScript_75759 + call EnableAutoTextBoxDrawing + ld hl, CinnabarGymScriptPointers + ld a, [W_CINNABARGYMCURSCRIPT] + jp CallFunctionInTable + +CinnabarGymScript_75759: ; 75759 (1d:5759) + ld hl, $D126 + bit 6, [hl] + res 6, [hl] + push hl + call nz, CinnabarGymScript_75772 + pop hl + bit 5, [hl] + res 5, [hl] + call nz, Func_3ead + ld hl, $D79B + res 7, [hl] + ret +CinnabarGymScript_75772: ; 75772 (1d:5772) + ld hl, Gym7CityName + ld de, Gym7LeaderName + jp LoadGymLeaderAndCityName + +Gym7CityName: ; 7577b (1d:577b) + db "CINNABAR ISLAND@" +Gym7LeaderName: ; 7578b (1d:578b) + db "BLAINE@" + +CinnabarGymScript_75792: ; 75792 (1d:5792) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_CINNABARGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ld [$da38], a + ret + +CinnabarGymScript_757a0: ; 757a0 (1d:57a0) + ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + ld [wTrainerHeaderFlagBit], a + ret + +CinnabarGymScriptPointers: ; 757a6 (1d:57a6) + dw CinnabarGymScript0 + dw CinnabarGymScript1 + dw CinnabarGymScript2 + dw CinnabarGymScript3 + +CinnabarGymScript0: ; 757ae (1d:57ae) + ld a, [$da38] + and a + ret z + ld [$ff8c], a + cp $4 + jr nz, .asm_757c3 ; 0x757b7 $a + ld a, $4 + ld [$d528], a + ld de, MovementData_757d7 + jr .asm_757cb ; 0x757c1 $8 +.asm_757c3 + ld de, MovementData_757da + ld a, $1 + ld [$d528], a +.asm_757cb + call MoveSprite + ld a, $1 + ld [W_CINNABARGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +MovementData_757d7: ; 757d7 (1d:57d7) + db $80,$40,$FF + +MovementData_757da: ; 757da (1d:57da) + db $80,$FF + +CinnabarGymScript1: ; 757dc (1d:57dc) + ld a, [$d730] + bit 0, a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, [$da38] + ld [wTrainerHeaderFlagBit], a + ld [$ff8c], a + jp DisplayTextID + +CinnabarGymScript_757f1: ; 757f1 (1d:57f1) + ld a, $10 + jp Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + +CinnabarGymScript2: ; 757f6 (1d:57f6) + ld a, [$d057] + cp $ff + jp z, CinnabarGymScript_75792 + ld a, [wTrainerHeaderFlagBit] + ld [$ffdb], a + ld c, a + ld b, $2 + ld hl, $d79a + call CinnabarGymScript_757f1 + ld a, c + and a + jr nz, .asm_7581b ; 0x7580e $b + call WaitForSoundToFinish + ld a, (SFX_02_57 - SFX_Headers_02) / 3 + call PlaySound + call WaitForSoundToFinish +.asm_7581b + ld a, [wTrainerHeaderFlagBit] + ld [$ffdb], a + ld c, a + ld b, $1 + ld hl, $d79a + call CinnabarGymScript_757f1 + ld a, [wTrainerHeaderFlagBit] + sub $2 + ld c, a + ld b, $1 + ld hl, $d79c + call CinnabarGymScript_757f1 + call Func_3ead + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [$da38], a + ld a, $0 + ld [W_CINNABARGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CinnabarGymScript3: ; 7584a (1d:584a) + ld a, [$d057] + cp $ff + jp z, CinnabarGymScript_75792 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a +CinnabarGymScript3_75857: ; 75857 (1d:5857) + ld a, $a + ld [$ff8c], a + call DisplayTextID + ld hl, $d79a + set 1, [hl] + ld bc, (TM_38 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $b + ld [$ff8c], a + call DisplayTextID + ld hl, $d79a + set 0, [hl] + jr .asm_75880 ; 0x75877 $7 +.BagFull + ld a, $c + ld [$ff8c], a + call DisplayTextID +.asm_75880 + ld hl, W_OBTAINEDBADGES + set 6, [hl] + ld hl, $d72a + set 6, [hl] + + ; deactivate gym trainers + ld a, [$d79a] + or %11111100 + ld [$d79a], a + ld hl, $d79b + set 0, [hl] + + ld hl, $d126 + set 5, [hl] + + jp CinnabarGymScript_75792 + +CinnabarGymTextPointers: ; 7589f (1d:589f) + dw CinnabarGymText1 + dw CinnabarGymText2 + dw CinnabarGymText3 + dw CinnabarGymText4 + dw CinnabarGymText5 + dw CinnabarGymText6 + dw CinnabarGymText7 + dw CinnabarGymText8 + dw CinnabarGymText9 + dw BlaineBadgeText + dw ReceivedTM38Text + dw TM38NoRoomText + +CinnabarGymScript_758b7: ; 758b7 (1d:58b7) + ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld a, [$cf13] + cp $1 + jr z, .asm_758d4 + ld a, $2 + jr .asm_758d6 +.asm_758d4 + ld a, $3 +.asm_758d6 + ld [W_CINNABARGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + jp TextScriptEnd + +CinnabarGymText1: ; 758df (1d:58df) + db $8 + ld a, [$d79a] + bit 1, a + jr z, .asm_d9332 ; 0x758e5 $16 + bit 0, a + jr nz, .asm_3012f ; 0x758e9 $9 + call z, CinnabarGymScript3_75857 + call DisableWaitingAfterTextDisplay + jp TextScriptEnd +.asm_3012f ; 0x758f4 + ld hl, BlaineFireBlastText + call PrintText + jp TextScriptEnd +.asm_d9332 ; 0x758fd + ld hl, BlaineBattleText + call PrintText + ld hl, BlaineEndBattleText + ld de, BlaineEndBattleText + call PreBattleSaveRegisters + ld a, $7 + ld [$d05c], a + jp CinnabarGymScript_758b7 + +BlaineBattleText: ; 75914 (1d:5914) + TX_FAR _BlaineBattleText + db "@" + +BlaineEndBattleText: ; 75919 (1d:5919) + TX_FAR _BlaineEndBattleText + db $11 + db $d + db "@" + +BlaineFireBlastText: ; 75920 (1d:5920) + TX_FAR _BlaineFireBlastText + db "@" + +BlaineBadgeText: ; 75925 (1d:5925) + TX_FAR _BlaineBadgeText + db "@" + +ReceivedTM38Text: ; 7592a (1d:592a) + TX_FAR _ReceivedTM38Text + db $0B + TX_FAR _TM38ExplanationText + db "@" + +TM38NoRoomText: ; 75934 (1d:5934) + TX_FAR _TM38NoRoomText + db "@" + +CinnabarGymText2: ; 75939 (1d:5939) + db $08 ; asm + call CinnabarGymScript_757a0 + ld a, [$d79a] + bit 2, a + jr nz, .asm_46bb4 ; 0x75942 + ld hl, CinnabarGymText_7595f + call PrintText + ld hl, CinnabarGymText_75964 + ld de, CinnabarGymText_75964 ; $5964 XXX + call PreBattleSaveRegisters + jp CinnabarGymScript_758b7 +.asm_46bb4 ; 0x75956 + ld hl, CinnabarGymText_75969 + call PrintText + jp TextScriptEnd + +CinnabarGymText_7595f: ; 7595f (1d:595f) + TX_FAR _CinnabarGymText_7595f + db "@" + +CinnabarGymText_75964: ; 75964 (1d:5964) + TX_FAR _CinnabarGymText_75964 + db "@" + +CinnabarGymText_75969: ; 75969 (1d:5969) + TX_FAR _CinnabarGymText_75969 + db "@" + +CinnabarGymText3: ; 7596e (1d:596e) + db $08 ; asm + call CinnabarGymScript_757a0 + ld a, [$d79a] + bit 3, a + jr nz, .asm_4b406 ; 0x75977 + ld hl, CinnabarGymText_75994 + call PrintText + ld hl, CinnabarGymText_75999 + ld de, CinnabarGymText_75999 ; $5999 XXX + call PreBattleSaveRegisters + jp CinnabarGymScript_758b7 +.asm_4b406 ; 0x7598b + ld hl, CinnabarGymText_7599e + call PrintText + jp TextScriptEnd + +CinnabarGymText_75994: ; 75994 (1d:5994) + TX_FAR _CinnabarGymText_75994 + db "@" + +CinnabarGymText_75999: ; 75999 (1d:5999) + TX_FAR _CinnabarGymText_75999 + db "@" + +CinnabarGymText_7599e: ; 7599e (1d:599e) + TX_FAR _CinnabarGymText_7599e + db "@" + +CinnabarGymText4: ; 759a3 (1d:59a3) + db $08 ; asm + call CinnabarGymScript_757a0 + ld a, [$d79a] + bit 4, a + jr nz, .asm_c0673 ; 0x759ac + ld hl, CinnabarGymText_759c9 + call PrintText + ld hl, CinnabarGymText_759ce + ld de, CinnabarGymText_759ce ; $59ce XXX + call PreBattleSaveRegisters + jp CinnabarGymScript_758b7 +.asm_c0673 ; 0x759c0 + ld hl, CinnabarGymText_759d3 + call PrintText + jp TextScriptEnd + +CinnabarGymText_759c9: ; 759c9 (1d:59c9) + TX_FAR _CinnabarGymText_759c9 + db "@" + +CinnabarGymText_759ce: ; 759ce (1d:59ce) + TX_FAR _CinnabarGymText_759ce + db "@" + +CinnabarGymText_759d3: ; 759d3 (1d:59d3) + TX_FAR _CinnabarGymText_759d3 + db "@" + +CinnabarGymText5: ; 759d8 (1d:59d8) + db $08 ; asm + call CinnabarGymScript_757a0 + ld a, [$d79a] + bit 5, a + jr nz, .asm_5cfd7 ; 0x759e1 + ld hl, CinnabarGymText_759fe + call PrintText + ld hl, CinnabarGymText_75a03 + ld de, CinnabarGymText_75a03 ; $5a03 XXX + call PreBattleSaveRegisters + jp CinnabarGymScript_758b7 +.asm_5cfd7 ; 0x759f5 + ld hl, CinnabarGymText_75a08 + call PrintText + jp TextScriptEnd + +CinnabarGymText_759fe: ; 759fe (1d:59fe) + TX_FAR _CinnabarGymText_759fe + db "@" + +CinnabarGymText_75a03: ; 75a03 (1d:5a03) + TX_FAR _CinnabarGymText_75a03 + db "@" + +CinnabarGymText_75a08: ; 75a08 (1d:5a08) + TX_FAR _CinnabarGymText_75a08 + db "@" + +CinnabarGymText6: ; 75a0d (1d:5a0d) + db $08 ; asm + call CinnabarGymScript_757a0 + ld a, [$d79a] + bit 6, a + jr nz, .asm_776b4 ; 0x75a16 + ld hl, CinnabarGymText_75a33 + call PrintText + ld hl, CinnabarGymText_75a38 + ld de, CinnabarGymText_75a38 + call PreBattleSaveRegisters + jp CinnabarGymScript_758b7 +.asm_776b4 ; 0x75a2a + ld hl, CinnabarGymText_75a3d + call PrintText + jp TextScriptEnd + +CinnabarGymText_75a33: ; 75a33 (1d:5a33) + TX_FAR _CinnabarGymText_75a33 + db "@" + +CinnabarGymText_75a38: ; 75a38 (1d:5a38) + TX_FAR _CinnabarGymText_75a38 + db "@" + +CinnabarGymText_75a3d: ; 75a3d (1d:5a3d) + TX_FAR _CinnabarGymText_75a3d + db "@" + +CinnabarGymText7: ; 75a42 (1d:5a42) + db $08 ; asm + call CinnabarGymScript_757a0 + ld a, [$d79a] + bit 7, a + jr nz, .asm_2f755 ; 0x75a4b + ld hl, CinnabarGymText_75a68 + call PrintText + ld hl, CinnabarGymText_75a6d + ld de, CinnabarGymText_75a6d + call PreBattleSaveRegisters + jp CinnabarGymScript_758b7 +.asm_2f755 ; 0x75a5f + ld hl, CinnabarGymText_75a72 + call PrintText + jp TextScriptEnd + +CinnabarGymText_75a68: ; 75a68 (1d:5a68) + TX_FAR _CinnabarGymText_75a68 + db "@" + +CinnabarGymText_75a6d: ; 75a6d (1d:5a6d) + TX_FAR _CinnabarGymText_75a6d + db "@" + +CinnabarGymText_75a72: ; 75a72 (1d:5a72) + TX_FAR _CinnabarGymText_75a72 + db "@" + +CinnabarGymText8: ; 75a77 (1d:5a77) + db $08 ; asm + call CinnabarGymScript_757a0 + ld a, [$d79b] + bit 0, a + jr nz, .asm_d87be ; 0x75a80 + ld hl, CinnabarGymText_75a9d + call PrintText + ld hl, CinnabarGymText_75aa2 + ld de, CinnabarGymText_75aa2 ; $5aa2 XXX + call PreBattleSaveRegisters + jp CinnabarGymScript_758b7 +.asm_d87be ; 0x75a94 + ld hl, CinnabarGymText_75aa7 + call PrintText + jp TextScriptEnd + +CinnabarGymText_75a9d: ; 75a9d (1d:5a9d) + TX_FAR _CinnabarGymText_75a9d + db "@" + +CinnabarGymText_75aa2: ; 75aa2 (1d:5aa2) + TX_FAR _CinnabarGymText_75aa2 + db "@" + +CinnabarGymText_75aa7: ; 75aa7 (1d:5aa7) + TX_FAR _CinnabarGymText_75aa7 + db "@" + +CinnabarGymText9: ; 75aac (1d:5aac) + db $08 ; asm + ld a, [$d79a] + bit 1, a + jr nz, .asm_627d9 ; 0x75ab2 + ld hl, CinnabarGymText_75ac2 + jr .asm_0b11d ; 0x75ab7 +.asm_627d9 ; 0x75ab9 + ld hl, CinnabarGymText_75ac7 +.asm_0b11d ; 0x75abc + call PrintText + jp TextScriptEnd + +CinnabarGymText_75ac2: ; 75ac2 (1d:5ac2) + TX_FAR _CinnabarGymText_75ac2 + db "@" + +CinnabarGymText_75ac7: ; 75ac7 (1d:5ac7) + TX_FAR _CinnabarGymText_75ac7 + db "@" diff --git a/scripts/cinnabarisland.asm b/scripts/cinnabarisland.asm new file mode 100755 index 00000000..ab77926a --- /dev/null +++ b/scripts/cinnabarisland.asm @@ -0,0 +1,87 @@ +CinnabarIslandScript: ; 1ca19 (7:4a19) + call EnableAutoTextBoxDrawing + ld hl, $d126 + set 5, [hl] + ld hl, $d796 + res 0, [hl] + ld hl, $d7a3 + res 1, [hl] + ld hl, CinnabarIslandScriptPointers + ld a, [W_CINNABARISLANDCURSCRIPT] + jp CallFunctionInTable + +CinnabarIslandScriptPointers: ; 1ca34 (7:4a34) + dw CinnabarIslandScript0 + dw CinnabarIslandScript1 + +CinnabarIslandScript0: ; 1ca38 (7:4a38) + ld b, SECRET_KEY + call IsItemInBag + ret nz + ld a, [W_YCOORD] + cp $4 + ret nz + ld a, [W_XCOORD] + cp $12 + ret nz + ld a, $8 + ld [$d528], a + ld a, $8 + ld [$ff8c], a + call DisplayTextID + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $1 + ld [$cd38], a + ld a, $80 + ld [$ccd3], a + call Func_3486 + xor a + ld [$c109], a + ld [wJoypadForbiddenButtonsMask], a + ld a, $1 + ld [W_CINNABARISLANDCURSCRIPT], a + ret + +CinnabarIslandScript1: ; 1ca73 (7:4a73) + ld a, [$cd38] + and a + ret nz + call Delay3 + ld a, $0 + ld [W_CINNABARISLANDCURSCRIPT], a + ret + +CinnabarIslandTextPointers: ; 1ca81 (7:4a81) + dw CinnabarIslandText1 + dw CinnabarIslandText2 + dw CinnabarIslandText3 + dw MartSignText + dw PokeCenterSignText + dw CinnabarIslandText6 + dw CinnabarIslandText7 + dw CinnabarIslandText8 + +CinnabarIslandText8: ; 1ca91 (7:4a91) + TX_FAR _CinnabarIslandText8 + db "@" + +CinnabarIslandText1: ; 1ca96 (7:4a96) + TX_FAR _CinnabarIslandText1 + db "@" + +CinnabarIslandText2: ; 1ca9b (7:4a9b) + TX_FAR _CinnabarIslandText2 + db "@" + +CinnabarIslandText3: ; 1caa0 (7:4aa0) + TX_FAR _CinnabarIslandText3 + db "@" + +CinnabarIslandText6: ; 1caa5 (7:4aa5) + TX_FAR _CinnabarIslandText6 + db "@" + +CinnabarIslandText7: ; 1caaa (7:4aaa) + TX_FAR _CinnabarIslandText7 + db "@" diff --git a/scripts/cinnabarmart.asm b/scripts/cinnabarmart.asm new file mode 100755 index 00000000..2abd7b67 --- /dev/null +++ b/scripts/cinnabarmart.asm @@ -0,0 +1,15 @@ +CinnabarMartScript: ; 75e7e (1d:5e7e) + jp EnableAutoTextBoxDrawing + +CinnabarMartTextPointers: ; 75e81 (1d:5e81) + dw CinnabarMartText1 + dw CinnabarMartText2 + dw CinnabarMartText3 + +CinnabarMartText2: ; 75e87 (1d:5e87) + TX_FAR _CinnabarMartText2 + db "@" + +CinnabarMartText3: ; 75e8c (1d:5e8c) + TX_FAR _CinnabarMartText3 + db "@" diff --git a/scripts/cinnabarpokecenter.asm b/scripts/cinnabarpokecenter.asm new file mode 100755 index 00000000..a2a41592 --- /dev/null +++ b/scripts/cinnabarpokecenter.asm @@ -0,0 +1,23 @@ +CinnabarPokecenterScript: ; 75e2c (1d:5e2c) + call Func_22fa + jp EnableAutoTextBoxDrawing + +CinnabarPokecenterTextPointers: ; 75e32 (1d:5e32) + dw CinnabarPokecenterText1 + dw CinnabarPokecenterText2 + dw CinnabarPokecenterText3 + dw CinnabarPokecenterText4 + +CinnabarPokecenterText1: ; 75e3a (1d:5e3a) + db $ff + +CinnabarPokecenterText2: ; 75e3b (1d:5e3b) + TX_FAR _CinnabarPokecenterText1 + db "@" + +CinnabarPokecenterText3: ; 75e40 (1d:5e40) + TX_FAR _CinnabarPokecenterText3 + db "@" + +CinnabarPokecenterText4: ; 75e45 (1d:5e45) + db $f6 diff --git a/scripts/copycatshouse1f.asm b/scripts/copycatshouse1f.asm new file mode 100755 index 00000000..230a3ca3 --- /dev/null +++ b/scripts/copycatshouse1f.asm @@ -0,0 +1,22 @@ +CopycatsHouse1FScript: ; 75ec3 (1d:5ec3) + jp EnableAutoTextBoxDrawing + +CopycatsHouse1FTextPointers: ; 75ec6 (1d:5ec6) + dw CopycatsHouse1FText1 + dw CopycatsHouse1FText2 + dw CopycatsHouse1FText3 + +CopycatsHouse1FText1: ; 75ecc (1d:5ecc) + TX_FAR _CopycatsHouse1FText1 + db "@" + +CopycatsHouse1FText2: ; 75ed1 (1d:5ed1) + TX_FAR _CopycatsHouse1FText2 + db "@" + +CopycatsHouse1FText3: ; 75ed6 (1d:5ed6) + TX_FAR _CopycatsHouse1FText3 + db $8 + ld a, CHANSEY + call PlayCry + jp TextScriptEnd diff --git a/scripts/copycatshouse2f.asm b/scripts/copycatshouse2f.asm new file mode 100755 index 00000000..3dd64a3a --- /dev/null +++ b/scripts/copycatshouse2f.asm @@ -0,0 +1,104 @@ +CopycatsHouse2FScript: ; 5cc71 (17:4c71) + jp EnableAutoTextBoxDrawing + +CopycatsHouse2FTextPointers: ; 5cc74 (17:4c74) + dw CopycatsHouse2FText1 + dw CopycatsHouse2FText2 + dw CopycatsHouse2FText3 + dw CopycatsHouse2FText4 + dw CopycatsHouse2FText5 + dw CopycatsHouse2FText6 + dw CopycatsHouse2FText7 + +CopycatsHouse2FText1: ; 5cc82 (17:4c82) + db $08 ; asm + ld a, [$d7af] + bit 0, a + jr nz, .asm_7ccf3 ; 0x5cc88 + ld a, $1 + ld [$cc3c], a + ld hl, CopycatsHouse2FText_5ccd4 + call PrintText + ld b, POKE_DOLL + call IsItemInBag + jr z, .asm_62ecd ; 0x5cc9a + ld hl, TM31PreReceiveText + call PrintText + ld bc, (TM_31 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedTM31Text + call PrintText + ld a, POKE_DOLL + ldh [$db], a + ld b, BANK(RemoveItemByID) + ld hl, RemoveItemByID + call Bankswitch + ld hl, $d7af + set 0, [hl] + jr .asm_62ecd ; 0x5ccc1 +.BagFull + ld hl, TM31NoRoomText + call PrintText + jr .asm_62ecd ; 0x5ccc9 +.asm_7ccf3 ; 0x5cccb + ld hl, TM31ExplanationText2 + call PrintText +.asm_62ecd ; 0x5ccd1 + jp TextScriptEnd + +CopycatsHouse2FText_5ccd4: ; 5ccd4 (17:4cd4) + TX_FAR _CopycatsHouse2FText_5ccd4 + db "@" + +TM31PreReceiveText: ; 5ccd9 (17:4cd9) + TX_FAR _TM31PreReceiveText + db "@" + +ReceivedTM31Text: ; 5ccde (17:4cde) + TX_FAR _ReceivedTM31Text + db $0B +TM31ExplanationText1: ; 5cce3 (17:4ce3) + TX_FAR _TM31ExplanationText1 + db $d, "@" + +TM31ExplanationText2: ; 5cce9 (17:4ce9) + TX_FAR _TM31ExplanationText2 + db "@" + +TM31NoRoomText: ; 5ccee (17:4cee) + TX_FAR _TM31NoRoomText + db $d, "@" + +CopycatsHouse2FText2: ; 5ccf4 (17:4cf4) + TX_FAR _CopycatsHouse2FText2 + db "@" + +CopycatsHouse2FText5: ; 5ccf9 (17:4cf9) +CopycatsHouse2FText4: ; 5ccf9 (17:4cf9) +CopycatsHouse2FText3: ; 5ccf9 (17:4cf9) + TX_FAR _CopycatsHouse2FText3 + db "@" + +CopycatsHouse2FText6: ; 5ccfe (17:4cfe) + TX_FAR _CopycatsHouse2FText6 + db "@" + +CopycatsHouse2FText7: ; 5cd03 (17:4d03) + db $08 ; asm + ld a, [$c109] + cp $4 + ld hl, CopycatsHouse2FText_5cd1c + jr nz, .asm_399a4 ; 0x5cd0c + ld hl, CopycatsHouse2FText_5cd17 +.asm_399a4 ; 0x5cd11 + call PrintText + jp TextScriptEnd + +CopycatsHouse2FText_5cd17: ; 5cd17 (17:4d17) + TX_FAR _CopycatsHouse2FText_5cd17 + db "@" + +CopycatsHouse2FText_5cd1c: ; 5cd1c (17:4d1c) + TX_FAR _CopycatsHouse2FText_5cd1c + db "@" diff --git a/scripts/daycarem.asm b/scripts/daycarem.asm new file mode 100755 index 00000000..c8d6ffaf --- /dev/null +++ b/scripts/daycarem.asm @@ -0,0 +1,274 @@ +DayCareMScript: ; 5624f (15:624f) + jp EnableAutoTextBoxDrawing + +DayCareMTextPointers: ; 56252 (15:6252) + dw DayCareMText1 + +DayCareMText1: ; 56254 (15:6254) + db $8 + call SaveScreenTilesToBuffer2 + ld a, [W_DAYCARE_IN_USE] + and a + jp nz, DayCareMScript_562e1 + ld hl, DayCareMText_5640f + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + ld hl, DayCareMText_5643b + jp nz, DayCareMScript_56409 + ld a, [$d163] + dec a + ld hl, DayCareMText_56445 + jp z, DayCareMScript_56409 + ld hl, DayCareMText_56414 + call PrintText + xor a + ld [$cfcb], a + ld [$d07d], a + ld [$cc35], a + call DisplayPartyMenu + push af + call GBPalWhiteOutWithDelay3 + call Func_3dbe + call LoadGBPal + pop af + ld hl, DayCareMText_56437 + jp c, DayCareMScript_56409 + ld hl, Func_2171b + ld b, BANK(Func_2171b) + call Bankswitch + ld hl, DayCareMText_5644a + jp c, DayCareMScript_56409 + xor a + ld [$cc2b], a + ld a, [wWhichPokemon] + ld hl, $d2b5 + call GetPartyMonName + ld hl, DayCareMText_56419 + call PrintText + ld a, $1 + ld [W_DAYCARE_IN_USE], a + ld a, $3 + ld [$cf95], a + call Func_3a68 + xor a + ld [$cf95], a + call RemovePokemon + ld a, [$cf91] + call PlayCry + ld hl, DayCareMText_5641e + jp DayCareMScript_56409 + +DayCareMScript_562e1: ; 562e1 (15:62e1) + xor a + ld hl, W_DAYCAREMONNAME + call GetPartyMonName + ld a, $3 + ld [$cc49], a + call LoadMonData + ld hl, Func_58f43 + ld b, BANK(Func_58f43) + call Bankswitch + ld a, d + cp $64 + jr c, .asm_56315 + ld d, $64 + ld hl, CalcExperience + ld b, BANK(CalcExperience) + call Bankswitch + ld hl, $da6d + ld a, [H_NUMTOPRINT] + ld [hli], a + ld a, [$ff97] + ld [hli], a + ld a, [$ff98] + ld [hl], a + ld d, $64 + +.asm_56315 + xor a + ld [wTrainerEngageDistance], a + ld hl, $da62 + ld a, [hl] + ld [wTrainerSpriteOffset], a + cp d + ld [hl], d + ld hl, DayCareMText_56432 + jr z, .asm_56333 + ld a, [wTrainerSpriteOffset] + ld b, a + ld a, d + sub b + ld [wTrainerEngageDistance], a + ld hl, DayCareMText_56423 + +.asm_56333 + call PrintText + ld a, [W_NUMINPARTY] + cp $6 + ld hl, DayCareMText_56440 + jp z, .asm_56403 + ld de, wTrainerFacingDirection + xor a + ld [de], a + inc de + ld [de], a + ld hl, wTrainerScreenX + ld a, $1 + ld [hli], a + ld [hl], $0 + ld a, [wTrainerEngageDistance] + inc a + ld b, a + ld c, $2 +.asm_56357 + push hl + push de + push bc + ld a, $b + call Predef + pop bc + pop de + pop hl + dec b + jr nz, .asm_56357 + ld hl, DayCareMText_56428 + call PrintText + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + call YesNoChoice + ld hl, DayCareMText_56437 + ld a, [wCurrentMenuItem] + and a + jp nz, .asm_56403 + ld hl, wTrainerFacingDirection + ld [$ff9f], a + ld a, [hli] + ld [$ffa0], a + ld a, [hl] + ld [$ffa1], a + call HasEnoughMoney + jr nc, .asm_56396 + ld hl, DayCareMText_56454 + jp .asm_56403 + +.asm_56396 + xor a + ld [W_DAYCARE_IN_USE], a + ld hl, wTrainerEngageDistance + ld [hli], a + inc hl + ld de, $d349 + ld c, $3 + ld a, $c + call Predef + ld a, (SFX_02_5a - SFX_Headers_02) / 3 + call PlaySoundWaitForCurrent + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + ld hl, DayCareMText_5644f + call PrintText + ld a, $2 + ld [$cf95], a + call Func_3a68 + ld a, [W_DAYCAREMONDATA] + ld [$cf91], a + ld a, [W_NUMINPARTY] + dec a + push af + ld bc, $002c + push bc + ld hl, W_PARTYMON1_MOVE1 + call AddNTimes + ld d, h + ld e, l + ld a, $1 + ld [wHPBarMaxHP], a + ld a, $3e + call Predef + pop bc + pop af + ld hl, W_PARTYMON1_HP + call AddNTimes + ld d, h + ld e, l + ld bc, $0021 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ld a, [$cf91] + call PlayCry + ld hl, DayCareMText_5642d + jr DayCareMScript_56409 + +.asm_56403 + ld a, [wTrainerSpriteOffset] + ld [$da62], a + +DayCareMScript_56409: ; 56409 (15:6409) + call PrintText + jp TextScriptEnd + +DayCareMText_5640f: ; 5640f (15:640f) + TX_FAR _DayCareMText_5640f + db "@" + +DayCareMText_56414: ; 56414 (15:6414) + TX_FAR _DayCareMText_56414 + db "@" + +DayCareMText_56419: ; 56419 (15:6419) + TX_FAR _DayCareMText_56419 + db "@" + +DayCareMText_5641e: ; 5641e (15:641e) + TX_FAR _DayCareMText_5641e + db "@" + +DayCareMText_56423: ; 56423 (15:6423) + TX_FAR _DayCareMText_56423 + db "@" + +DayCareMText_56428: ; 56428 (15:6428) + TX_FAR _DayCareMText_56428 + db "@" + +DayCareMText_5642d: ; 5642d (15:642d) + TX_FAR _DayCareMText_5642d + db "@" + +DayCareMText_56432: ; 56432 (15:6432) + TX_FAR _DayCareMText_56432 + db "@" + +DayCareMText_56437: ; 56437 (15:6437) + TX_FAR _DayCareMText_56437 ; 0x8c000 +DayCareMText_5643b: ; 5643b (15:643b) + TX_FAR _DayCareMText_5643b ; 0x8c013 + db "@" + +DayCareMText_56440: ; 56440 (15:6440) + TX_FAR _DayCareMText_56440 + db "@" + +DayCareMText_56445: ; 56445 (15:6445) + TX_FAR _DayCareMText_56445 + db "@" + +DayCareMText_5644a: ; 5644a (15:644a) + TX_FAR _DayCareMText_5644a + db "@" + +DayCareMText_5644f: ; 5644f (15:644f) + TX_FAR _DayCareMText_5644f + db "@" + +DayCareMText_56454: ; 56454 (15:6454) + TX_FAR _DayCareMText_56454 + db "@" diff --git a/scripts/diglettscave.asm b/scripts/diglettscave.asm new file mode 100755 index 00000000..efbf9713 --- /dev/null +++ b/scripts/diglettscave.asm @@ -0,0 +1,5 @@ +DiglettsCaveScript: ; 61f6e (18:5f6e) + jp EnableAutoTextBoxDrawing + +DiglettsCaveTextPointers: ; 61f71 (18:5f71) + db "@" diff --git a/scripts/diglettscaveroute11.asm b/scripts/diglettscaveroute11.asm new file mode 100755 index 00000000..89c235dc --- /dev/null +++ b/scripts/diglettscaveroute11.asm @@ -0,0 +1,12 @@ +DiglettsCaveEntranceRoute11Script: ; 1e5ba (7:65ba) + call EnableAutoTextBoxDrawing + ld a, $16 + ld [$d365], a + ret + +DiglettsCaveEntranceRoute11TextPointers: ; 1e5c3 (7:65c3) + dw DiglettsCaveEntranceRoute11Text1 + +DiglettsCaveEntranceRoute11Text1: ; 1e5c5 (7:65c5) + TX_FAR _DiglettsCaveEntRoute11Text1 + db "@" diff --git a/scripts/diglettscaveroute2.asm b/scripts/diglettscaveroute2.asm new file mode 100755 index 00000000..93080be1 --- /dev/null +++ b/scripts/diglettscaveroute2.asm @@ -0,0 +1,11 @@ +DiglettsCaveRoute2Script: ; 1deb0 (7:5eb0) + ld a, $d + ld [$d365], a + jp EnableAutoTextBoxDrawing + +DiglettsCaveRoute2TextPointers: ; 1deb8 (7:5eb8) + dw DiglettsCaveRoute2Text1 + +DiglettsCaveRoute2Text1: ; 1deba (7:5eba) + TX_FAR _DiglettsCaveRoute2Text1 + db "@" diff --git a/scripts/fanclub.asm b/scripts/fanclub.asm new file mode 100755 index 00000000..8ea8d36d --- /dev/null +++ b/scripts/fanclub.asm @@ -0,0 +1,181 @@ +FanClubScript: ; 59b70 (16:5b70) + jp EnableAutoTextBoxDrawing + +FanClubBikeInBag: +; check if any bike paraphernalia in bag + ld a, [$d771] + bit 1, a ; got bike voucher? + ret nz + ld b, BICYCLE + call IsItemInBag + ret nz + ld b, BIKE_VOUCHER + jp IsItemInBag + +FanClubTextPointers: ; 59b84 (16:5b84) + dw FanClubText1 + dw FanClubText2 + dw FanClubText3 + dw FanClubText4 + dw FanClubText5 + dw FanClubText6 + dw FanClubText7 + dw FanClubText8 + +FanClubText1: +; pikachu fan + db $08 ; asm + ld a, [$d771] + bit 7, a + jr nz, .mineisbetter + ld hl, .normaltext + call PrintText + ld hl, $d771 + set 6, [hl] + jr .done +.mineisbetter + ld hl, .bettertext + call PrintText + ld hl, $d771 + res 7, [hl] +.done + jp TextScriptEnd + +.normaltext + TX_FAR PikachuFanText + db "@" + +.bettertext + TX_FAR PikachuFanBetterText + db "@" + +FanClubText2: +; seel fan + db $08 ; asm + ld a, [$d771] + bit 6, a + jr nz, .mineisbetter + ld hl, .normaltext + call PrintText + ld hl, $d771 + set 7, [hl] + jr .done +.mineisbetter + ld hl, .bettertext + call PrintText + ld hl, $d771 + res 6, [hl] +.done + jp TextScriptEnd + +.normaltext + TX_FAR SeelFanText + db "@" + +.bettertext + TX_FAR SeelFanBetterText + db "@" + +FanClubText3: +; pikachu + db $8 + ld hl, .text + call PrintText + ld a, PIKACHU + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +.text + TX_FAR FanClubPikachuText + db "@" + +FanClubText4: +; seel + db $08 ; asm + ld hl, .text + call PrintText + ld a, SEEL + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +.text + TX_FAR FanClubSeelText + db "@" + +FanClubText5: +; chair + db $08 ; asm + call FanClubBikeInBag + jr nz, .nothingleft + + ld hl, .meetchairtext + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .nothanks + + ; tell the story + ld hl, .storytext + call PrintText + ld bc, (BIKE_VOUCHER << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, .receivedvouchertext + call PrintText + ld hl, $d771 + set 1, [hl] + jr .done +.BagFull + ld hl, .bagfulltext + call PrintText + jr .done +.nothanks + ld hl, .nostorytext + call PrintText + jr .done +.nothingleft + ld hl, .finaltext + call PrintText +.done + jp TextScriptEnd + +.meetchairtext + TX_FAR FanClubMeetChairText + db "@" + +.storytext + TX_FAR FanClubChairStoryText + db "@" + +.receivedvouchertext + TX_FAR ReceivedBikeVoucherText + db $11 + TX_FAR ExplainBikeVoucherText + db "@" + +.nostorytext + TX_FAR FanClubNoStoryText + db "@" + +.finaltext + TX_FAR FanClubChairFinalText + db "@" + +.bagfulltext + TX_FAR FanClubBagFullText + db "@" + +FanClubText6: ; 59c88 (16:5c88) + TX_FAR _FanClubText6 + db "@" + +FanClubText7: ; 59c8d (16:5c8d) + TX_FAR _FanClubText7 + db "@" + +FanClubText8: ; 59c92 (16:5c92) + TX_FAR _FanClubText8 + db "@" diff --git a/scripts/fightingdojo.asm b/scripts/fightingdojo.asm new file mode 100755 index 00000000..4dc7fe7b --- /dev/null +++ b/scripts/fightingdojo.asm @@ -0,0 +1,337 @@ +FightingDojoScript: ; 5cd5d (17:4d5d) + call EnableAutoTextBoxDrawing + ld hl, FightingDojoTrainerHeaders + ld de, FightingDojoScriptPointers + ld a, [W_FIGHTINGDOJOCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_FIGHTINGDOJOCURSCRIPT], a + ret + +FightingDojoScript_5cd70: ; 5cd70 (17:4d70) + xor a + ld [$cd6b], a + ld [$d642], a + ld [$da39], a + ret + +FightingDojoScriptPointers: ; 5cd7b (17:4d7b) + dw FightingDojoScript1 + dw Func_324c + dw EndTrainerBattle + dw FightingDojoScript3 + +FightingDojoScript1: ; 5cd83 (17:4d83) + ld a, [$d7b1] + bit 0, a + ret nz + call CheckFightingMapTrainers + ld a, [wTrainerHeaderFlagBit] + and a + ret nz + ld a, [$d7b1] + bit 1, a + ret nz + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld [$cf0d], a + ld a, [W_YCOORD] + cp $3 + ret nz + ld a, [W_XCOORD] + cp $4 + ret nz + ld a, $1 + ld [$cf0d], a + ld a, $1 + ld [$d528], a + ld a, $1 + ld [$ff8c], a + ld a, $8 + ld [$ff8d], a + call Func_34a6 + ld a, $1 + ld [$ff8c], a + call DisplayTextID + ret + +FightingDojoScript3: ; 5cdc6 (17:4dc6) + ld a, [$d057] + cp $ff + jp z, FightingDojoScript_5cd70 + ld a, [$cf0d] + and a + jr z, .asm_5cde4 + ld a, $1 + ld [$d528], a + ld a, $1 + ld [$ff8c], a + ld a, $8 + ld [$ff8d], a + call Func_34a6 + +.asm_5cde4 + ld a, $f0 + ld [$cd6b], a + ld a, [$d7b1] + or $3e + ld [$d7b1], a + ld a, $8 + ld [$ff8c], a + call DisplayTextID + xor a + ld [$cd6b], a + ld [$d642], a + ld [$da39], a + ret + +FightingDojoTextPointers: ; 5ce03 (17:4e03) + dw FightingDojoText1 + dw FightingDojoText2 + dw FightingDojoText3 + dw FightingDojoText4 + dw FightingDojoText5 + dw FightingDojoText6 + dw FightingDojoText7 + dw FightingDojoText8 + +FightingDojoTrainerHeaders: ; 5ce13 (17:4e13) +FightingDojoTrainerHeader0: ; 5ce13 (17:4e13) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7b1 ; flag's byte + dw FightingDojoBattleText1 ; 0x4eac TextBeforeBattle + dw FightingDojoAfterBattleText1 ; 0x4eb6 TextAfterBattle + dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle + dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle + +FightingDojoTrainerHeader1: ; 5ce1f (17:4e1f) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7b1 ; flag's byte + dw FightingDojoBattleText2 ; 0x4ec5 TextBeforeBattle + dw FightingDojoAfterBattleText2 ; 0x4ecf TextAfterBattle + dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle + dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle + +FightingDojoTrainerHeader2: ; 5ce2b (17:4e2b) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b1 ; flag's byte + dw FightingDojoBattleText3 ; 0x4ede TextBeforeBattle + dw FightingDojoAfterBattleText3 ; 0x4ee8 TextAfterBattle + dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle + dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle + +FightingDojoTrainerHeader3: ; 5ce37 (17:4e37) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b1 ; flag's byte + dw FightingDojoBattleText4 ; 0x4ef7 TextBeforeBattle + dw FightingDojoAfterBattleText4 ; 0x4f01 TextAfterBattle + dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle + dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle + + db $ff + +FightingDojoText1: ; 5ce44 (17:4e44) + db $08 ; asm + ld a, [$d7b1] + bit 0, a + jp nz, .continue1 + bit 1, a + jp nz, .continue2 + ld hl, FightingDojoText_5ce8e + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, FightingDojoText_5ce93 + ld de, FightingDojoText_5ce93 + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $3 + ld [W_FIGHTINGDOJOCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + jr .asm_9dba4 ; 0x5ce7b +.continue1 ; 0x5ce7d + ld hl, FightingDojoText_5ce9d + call PrintText + jr .asm_9dba4 ; 0x5ce83 +.continue2 ; 0x5ce85f + ld hl, FightingDojoText8 + call PrintText +.asm_9dba4 ; 0x5ce8b + jp TextScriptEnd + +FightingDojoText_5ce8e: ; 5ce8e (17:4e8e) + TX_FAR _FightingDojoText_5ce8e + db "@" + +FightingDojoText_5ce93: ; 5ce93 (17:4e93) + TX_FAR _FightingDojoText_5ce93 + db "@" + +FightingDojoText8: ; 5ce98 (17:4e98) + TX_FAR _FightingDojoText_5ce98 + db "@" + +FightingDojoText_5ce9d: ; 5ce9d (17:4e9d) + TX_FAR _FightingDojoText_5ce9d + db "@" + +FightingDojoText2: ; 5cea2 (17:4ea2) + db $08 ; asm + ld hl, FightingDojoTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +FightingDojoBattleText1: ; 5ceac (17:4eac) + TX_FAR _FightingDojoBattleText1 + db "@" + +FightingDojoEndBattleText1: ; 5ceb1 (17:4eb1) + TX_FAR _FightingDojoEndBattleText1 + db "@" + +FightingDojoAfterBattleText1: ; 5ceb6 (17:4eb6) + TX_FAR _FightingDojoAfterBattleText1 + db "@" + +FightingDojoText3: ; 5cebb (17:4ebb) + db $08 ; asm + ld hl, FightingDojoTrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +FightingDojoBattleText2: ; 5cec5 (17:4ec5) + TX_FAR _FightingDojoBattleText2 + db "@" + +FightingDojoEndBattleText2: ; 5ceca (17:4eca) + TX_FAR _FightingDojoEndBattleText2 + db "@" + +FightingDojoAfterBattleText2: ; 5cecf (17:4ecf) + TX_FAR _FightingDojoAfterBattleText2 + db "@" + +FightingDojoText4: ; 5ced4 (17:4ed4) + db $08 ; asm + ld hl, FightingDojoTrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +FightingDojoBattleText3: ; 5cede (17:4ede) + TX_FAR _FightingDojoBattleText3 + db "@" + +FightingDojoEndBattleText3: ; 5cee3 (17:4ee3) + TX_FAR _FightingDojoEndBattleText3 + db "@" + +FightingDojoAfterBattleText3: ; 5cee8 (17:4ee8) + TX_FAR _FightingDojoAfterBattleText3 + db "@" + +FightingDojoText5: ; 5ceed (17:4eed) + db $08 ; asm + ld hl, FightingDojoTrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +FightingDojoBattleText4: ; 5cef7 (17:4ef7) + TX_FAR _FightingDojoBattleText4 + db "@" + +FightingDojoEndBattleText4: ; 5cefc (17:4efc) + TX_FAR _FightingDojoEndBattleText4 + db "@" + +FightingDojoAfterBattleText4: ; 5cf01 (17:4f01) + TX_FAR _FightingDojoAfterBattleText4 + db "@" + +FightingDojoText6: ; 5cf06 (17:4f06) +; Hitmonlee Poké Ball + db $08 ; asm + ld a, [$d7b1] + and %11000000 + jr z, .GetMon + ld hl, OtherHitmonText + call PrintText + jr .done +.GetMon + ld a, HITMONLEE + call DisplayPokedex + ld hl, WantHitmonleeText + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .done + ld a, [$cf91] + ld b, a + ld c, 30 + call GivePokemon + jr nc, .done + + ; once Poké Ball is taken, hide sprite + ld a, $4a + ld [$cc4d], a + ld a, $11 + call Predef + ld hl, $d7b1 + set 6, [hl] + set 0, [hl] +.done + jp TextScriptEnd + +WantHitmonleeText: ; 5cf49 (17:4f49) + TX_FAR _WantHitmonleeText + db "@" + +FightingDojoText7: ; 5cf4e (17:4f4e) +; Hitmonchan Poké Ball + db $08 ; asm + ld a, [$d7b1] + and %11000000 + jr z, .GetMon + ld hl, OtherHitmonText + call PrintText + jr .done +.GetMon + ld a, HITMONCHAN + call DisplayPokedex + ld hl, WantHitmonchanText + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .done + ld a, [$cf91] + ld b, a + ld c,30 + call GivePokemon + jr nc, .done + ld hl, $d7b1 + set 7, [hl] + set 0, [hl] + + ; once Poké Ball is taken, hide sprite + ld a, $4b + ld [$cc4d], a + ld a, $11 + call Predef +.done + jp TextScriptEnd + +WantHitmonchanText: ; 5cf91 (17:4f91) + TX_FAR _WantHitmonchanText + db "@" + +OtherHitmonText: ; 5cf96 (17:4f96) + TX_FAR _OtherHitmonText + db "@" diff --git a/scripts/fuchsiacity.asm b/scripts/fuchsiacity.asm new file mode 100755 index 00000000..9014dffe --- /dev/null +++ b/scripts/fuchsiacity.asm @@ -0,0 +1,170 @@ +FuchsiaCityScript: ; 19a2b (6:5a2b) + jp EnableAutoTextBoxDrawing + +FuchsiaCityTextPointers: ; 19a2e (6:5a2e) + dw FuchsiaCityText1 + dw FuchsiaCityText2 + dw FuchsiaCityText3 + dw FuchsiaCityText4 + dw FuchsiaCityText5 + dw FuchsiaCityText6 + dw FuchsiaCityText7 + dw FuchsiaCityText8 + dw FuchsiaCityText9 + dw FuchsiaCityText10 + dw FuchsiaCityText11 + dw FuchsiaCityText12 + dw FuchsiaCityText13 + dw MartSignText + dw PokeCenterSignText + dw FuchsiaCityText16 + dw FuchsiaCityText17 + dw FuchsiaCityText18 + dw FuchsiaCityText19 + dw FuchsiaCityText20 + dw FuchsiaCityText21 + dw FuchsiaCityText22 + dw FuchsiaCityText23 + dw FuchsiaCityText24 + +FuchsiaCityText1: ; 19a5e (6:5a5e) + TX_FAR _FuchsiaCityText1 + db "@" + +FuchsiaCityText2: ; 19a63 (6:5a63) + TX_FAR _FuchsiaCityText2 + db "@" + +FuchsiaCityText3: ; 19a68 (6:5a68) + TX_FAR _FuchsiaCityText3 + db "@" + +FuchsiaCityText4: ; 19a6d (6:5a6d) + TX_FAR _FuchsiaCityText4 + db "@" + +FuchsiaCityText5: ; 19a72 (6:5a72) +FuchsiaCityText6: ; 19a72 (6:5a72) +FuchsiaCityText7: ; 19a72 (6:5a72) +FuchsiaCityText8: ; 19a72 (6:5a72) +FuchsiaCityText9: ; 19a72 (6:5a72) +FuchsiaCityText10: ; 19a72 (6:5a72) + TX_FAR _FuchsiaCityText5 + db "@" + +FuchsiaCityText12: ; 19a77 (6:5a77) +FuchsiaCityText11: ; 19a77 (6:5a77) + TX_FAR _FuchsiaCityText11 + db "@" + +FuchsiaCityText13: ; 19a7c (6:5a7c) + TX_FAR _FuchsiaCityText13 + db "@" + +FuchsiaCityText16: ; 19a81 (6:5a81) + TX_FAR _FuchsiaCityText16 + db "@" + +FuchsiaCityText17: ; 19a86 (6:5a86) + TX_FAR _FuchsiaCityText17 + db "@" + +FuchsiaCityText18: ; 19a8b (6:5a8b) + TX_FAR _FuchsiaCityText18 + db "@" + +FuchsiaCityText19: ; 19a90 (6:5a90) + db $08 ; asm + ld hl, FuchsiaCityChanseyText + call PrintText + ld a, CHANSEY + call DisplayPokedex + jp TextScriptEnd + +FuchsiaCityChanseyText: ; 19a9f (6:5a9f) + TX_FAR _FuchsiaCityChanseyText + db "@" + +FuchsiaCityText20: ; 19aa4 (6:5aa4) + db $08 ; asm + ld hl, FuchsiaCityVoltorbText + call PrintText + ld a, VOLTORB + call DisplayPokedex + jp TextScriptEnd + +FuchsiaCityVoltorbText: ; 19ab3 (6:5ab3) + TX_FAR _FuchsiaCityVoltorbText + db "@" + +FuchsiaCityText21: ; 19ab8 (6:5ab8) + db $08 ; asm + ld hl, FuchsiaCityKangaskhanText + call PrintText + ld a, KANGASKHAN + call DisplayPokedex + jp TextScriptEnd + +FuchsiaCityKangaskhanText: ; 19ac7 (6:5ac7) + TX_FAR _FuchsiaCityKangaskhanText + db "@" + +FuchsiaCityText22: ; 19acc (6:5acc) + db $08 ; asm + ld hl, FuchsiaCitySlowpokeText + call PrintText + ld a, SLOWPOKE + call DisplayPokedex + jp TextScriptEnd + +FuchsiaCitySlowpokeText: ; 19adb (6:5adb) + TX_FAR _FuchsiaCitySlowpokeText + db "@" + +FuchsiaCityText23: ; 19ae0 (6:5ae0) + db $08 ; asm + ld hl, FuchsiaCityLaprasText + call PrintText + ld a, LAPRAS + call DisplayPokedex + jp TextScriptEnd + +FuchsiaCityLaprasText: ; 19aef (6:5aef) + TX_FAR _FuchsiaCityLaprasText + db "@" + +FuchsiaCityText24: ; 19af4 (6:5af4) + db $08 ; asm + ld a, [$d7f6] + bit 6, a + jr nz, .asm_3b4e8 ; 0x19afa + bit 7, a + jr nz, .asm_667d5 ; 0x19afe + ld hl, FuchsiaCityText_19b2a + call PrintText + jr .asm_4343f ; 0x19b06 +.asm_3b4e8 ; 0x19b08 + ld hl, FuchsiaCityOmanyteText + call PrintText + ld a, OMANYTE + jr .asm_81556 ; 0x19b10 +.asm_667d5 ; 0x19b12 + ld hl, FuchsiaCityKabutoText + call PrintText + ld a, KABUTO +.asm_81556 ; 0x19b1a + call DisplayPokedex +.asm_4343f ; 0x19b1d + jp TextScriptEnd + +FuchsiaCityOmanyteText: ; 19b20 (6:5b20) + TX_FAR _FuchsiaCityOmanyteText + db "@" + +FuchsiaCityKabutoText: ; 19b25 (6:5b25) + TX_FAR _FuchsiaCityKabutoText + db "@" + +FuchsiaCityText_19b2a: ; 19b2a (6:5b2a) + TX_FAR _FuchsiaCityText_19b2a + db "@" diff --git a/scripts/fuchsiagym.asm b/scripts/fuchsiagym.asm new file mode 100755 index 00000000..789c2367 --- /dev/null +++ b/scripts/fuchsiagym.asm @@ -0,0 +1,336 @@ +FuchsiaGymScript: ; 7543d (1d:543d) + call FuchsiaGymScript_75453 + call EnableAutoTextBoxDrawing + ld hl, FuchsiaGymTrainerHeaders + ld de, FuchsiaGymScriptPointers + ld a, [W_FUCHSIAGYMCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_FUCHSIAGYMCURSCRIPT], a + ret + +FuchsiaGymScript_75453: ; 75453 (1d:5453) + ld hl, $D126 + bit 6, [hl] + res 6, [hl] + ret z + ld hl, Gym5CityName + ld de, Gym5LeaderName + call LoadGymLeaderAndCityName + ret + +Gym5CityName: ; 75465 (1d:5465) + db "FUCHSIA CITY@" +Gym5LeaderName: ; 75472 (1d:5472) + db "KOGA@" + +FuchsiaGymScript_75477: ; 75477 (1d:5477) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_FUCHSIAGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +FuchsiaGymScriptPointers: ; 75482 (1d:5482) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + dw FuchsiaGymScript3 + +FuchsiaGymScript3: ; 7548a (1d:548a) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, FuchsiaGymScript_75477 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a +FuchsiaGymScript3_75497: ; 75497 (1d:5497) + ld a, $9 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d792 + set 1, [hl] + ld bc, (TM_06 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $a + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d792 + set 0, [hl] + jr .asm_754c0 +.BagFull + ld a, $b + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_754c0 + ld hl, W_OBTAINEDBADGES + set 4, [hl] + ld hl, $d72a + set 4, [hl] + + ; deactivate gym trainers + ld a, [$d792] + or %11111100 + ld [$d792], a + + jp FuchsiaGymScript_75477 + +FuchsiaGymTextPointers: ; 754d5 (1d:54d5) + dw FuchsiaGymText1 + dw FuchsiaGymText2 + dw FuchsiaGymText3 + dw FuchsiaGymText4 + dw FuchsiaGymText5 + dw FuchsiaGymText6 + dw FuchsiaGymText7 + dw FuchsiaGymText8 + dw FuchsiaGymText9 + dw FuchsiaGymText10 + dw FuchsiaGymText11 + +FuchsiaGymTrainerHeaders: ; 754eb (1d:54eb) +FuchsiaGymTrainerHeader0: ; 754eb (1d:54eb) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d792 ; flag's byte + dw FuchsiaGymBattleText1 ; 0x55ae TextBeforeBattle + dw FuchsiaGymAfterBattleText1 ; 0x55b8 TextAfterBattle + dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle + dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle + +FuchsiaGymTrainerHeader2: ; 754f7 (1d:54f7) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d792 ; flag's byte + dw FuchsiaGymBattleText2 ; 0x55c7 TextBeforeBattle + dw FuchsiaGymAfterBattleText2 ; 0x55d1 TextAfterBattle + dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle + dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle + +FuchsiaGymTrainerHeader3: ; 75503 (1d:5503) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d792 ; flag's byte + dw FuchsiaGymBattleText3 ; 0x55e0 TextBeforeBattle + dw FuchsiaGymAfterBattleText3 ; 0x55ea TextAfterBattle + dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle + dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle + +FuchsiaGymTrainerHeader4: ; 7550f (1d:550f) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d792 ; flag's byte + dw FuchsiaGymBattleText4 ; 0x55f9 TextBeforeBattle + dw FuchsiaGymAfterBattleText4 ; 0x5603 TextAfterBattle + dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle + dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle + +FuchsiaGymTrainerHeader5: ; 7551b (1d:551b) + db $6 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d792 ; flag's byte + dw FuchsiaGymBattleText5 ; 0x5612 TextBeforeBattle + dw FuchsiaGymAfterBattleText5 ; 0x561c TextAfterBattle + dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle + dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle + +FuchsiaGymTrainerHeader6: ; 75527 (1d:5527) + db $7 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d792 ; flag's byte + dw FuchsiaGymBattleText6 ; 0x562b TextBeforeBattle + dw FuchsiaGymAfterBattleText6 ; 0x5635 TextAfterBattle + dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle + dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle + + db $ff + +FuchsiaGymText1: ; 75534 (1d:5534) + db $08 ; asm + ld a, [$d792] + bit 1, a + jr z, .asm_181b6 ; 0x7553a + bit 0, a + jr nz, .asm_adc3b ; 0x7553e + call z, FuchsiaGymScript3_75497 + call DisableWaitingAfterTextDisplay + jr .asm_e84c6 ; 0x75546 +.asm_adc3b ; 0x75548 + ld hl, UnnamedText_7558b + call PrintText + jr .asm_e84c6 ; 0x7554e +.asm_181b6 ; 0x75550 + ld hl, UnnamedText_75581 + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, UnnamedText_75586 + ld de, UnnamedText_75586 + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $5 + ld [$d05c], a + xor a + ldh [$b4], a + ld a, $3 + ld [W_FUCHSIAGYMCURSCRIPT], a +.asm_e84c6 ; 0x7557e + jp TextScriptEnd + +UnnamedText_75581: ; 75581 (1d:5581) + TX_FAR _UnnamedText_75581 + db "@" + +UnnamedText_75586: ; 75586 (1d:5586) + TX_FAR _UnnamedText_75586 + db "@" + +UnnamedText_7558b: ; 7558b (1d:558b) + TX_FAR _UnnamedText_7558b + db "@" + +FuchsiaGymText9: ; 75590 (1d:5590) + TX_FAR _UnnamedText_75590 + db "@" + +FuchsiaGymText10: ; 75595 (1d:5595) + TX_FAR _ReceivedTM06Text + db $11 + +TM06ExplanationText: ; 7559a (1d:559a) + TX_FAR _TM06ExplanationText + db "@" + +FuchsiaGymText11: ; 7559f (1d:559f) + TX_FAR _TM06NoRoomText + db "@" + +FuchsiaGymText2: ; 755a4 (1d:55a4) + db $08 ; asm + ld hl, FuchsiaGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +FuchsiaGymBattleText1: ; 755ae (1d:55ae) + TX_FAR _FuchsiaGymBattleText1 + db "@" + +FuchsiaGymEndBattleText1: ; 755b3 (1d:55b3) + TX_FAR _FuchsiaGymEndBattleText1 + db "@" + +FuchsiaGymAfterBattleText1: ; 755b8 (1d:55b8) + TX_FAR _FuchsiaGymAfterBattleText1 + db "@" + +FuchsiaGymText3: ; 755bd (1d:55bd) + db $08 ; asm + ld hl, FuchsiaGymTrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +FuchsiaGymBattleText2: ; 755c7 (1d:55c7) + TX_FAR _FuchsiaGymBattleText2 + db "@" + +FuchsiaGymEndBattleText2: ; 755cc (1d:55cc) + TX_FAR _FuchsiaGymEndBattleText2 + db "@" + +FuchsiaGymAfterBattleText2: ; 755d1 (1d:55d1) + TX_FAR _FuchsiaGymAfterBattleText2 + db "@" + +FuchsiaGymText4: ; 755d6 (1d:55d6) + db $08 ; asm + ld hl, FuchsiaGymTrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +FuchsiaGymBattleText3: ; 755e0 (1d:55e0) + TX_FAR _FuchsiaGymBattleText3 + db "@" + +FuchsiaGymEndBattleText3: ; 755e5 (1d:55e5) + TX_FAR _FuchsiaGymEndBattleText3 + db "@" + +FuchsiaGymAfterBattleText3: ; 755ea (1d:55ea) + TX_FAR _FuchsiaGymAfterBattleText3 + db "@" + +FuchsiaGymText5: ; 755ef (1d:55ef) + db $08 ; asm + ld hl, FuchsiaGymTrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +FuchsiaGymBattleText4: ; 755f9 (1d:55f9) + TX_FAR _FuchsiaGymBattleText4 + db "@" + +FuchsiaGymEndBattleText4: ; 755fe (1d:55fe) + TX_FAR _FuchsiaGymEndBattleText4 + db "@" + +FuchsiaGymAfterBattleText4: ; 75603 (1d:5603) + TX_FAR _FuchsiaGymAfterBattleText4 + db "@" + +FuchsiaGymText6: ; 75608 (1d:5608) + db $08 ; asm + ld hl, FuchsiaGymTrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +FuchsiaGymBattleText5: ; 75612 (1d:5612) + TX_FAR _FuchsiaGymBattleText5 + db "@" + +FuchsiaGymEndBattleText5: ; 75617 (1d:5617) + TX_FAR _FuchsiaGymEndBattleText5 + db "@" + +FuchsiaGymAfterBattleText5: ; 7561c (1d:561c) + TX_FAR _FuchsiaGymAfterBattleText5 + db "@" + +FuchsiaGymText7: ; 75621 (1d:5621) + db $08 ; asm + ld hl, FuchsiaGymTrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +FuchsiaGymBattleText6: ; 7562b (1d:562b) + TX_FAR _FuchsiaGymBattleText6 + db "@" + +FuchsiaGymEndBattleText6: ; 75630 (1d:5630) + TX_FAR _FuchsiaGymEndBattleText6 + db "@" + +FuchsiaGymAfterBattleText6: ; 75635 (1d:5635) + TX_FAR _FuchsiaGymAfterBattleText6 + db "@" + +FuchsiaGymText8: ; 7563a (1d:563a) + db $08 ; asm + ld a, [$d792] + bit 1, a + ld hl, UnnamedText_75653 + jr nz, .asm_50671 ; 0x75643 + ld hl, UnnamedText_7564e +.asm_50671 ; 0x75648 + call PrintText + jp TextScriptEnd + +UnnamedText_7564e: ; 7564e (1d:564e) + TX_FAR _UnnamedText_7564e + db "@" + +UnnamedText_75653: ; 75653 (1d:5653) + TX_FAR _UnnamedText_75653 + db "@" diff --git a/scripts/fuchsiahouse1.asm b/scripts/fuchsiahouse1.asm new file mode 100755 index 00000000..4d5e6eb1 --- /dev/null +++ b/scripts/fuchsiahouse1.asm @@ -0,0 +1,20 @@ +FuchsiaHouse1Script: ; 75018 (1d:5018) + call EnableAutoTextBoxDrawing + ret + +FuchsiaHouse1TextPointers: ; 7501c (1d:501c) + dw FuchsiaHouse1Text1 + dw FuchsiaHouse1Text2 + dw FuchsiaHouse1Text3 + +FuchsiaHouse1Text1: ; 75022 (1d:5022) + TX_FAR _FuchsiaHouse1Text1 + db "@" + +FuchsiaHouse1Text2: ; 75027 (1d:5027) + TX_FAR _FuchsiaHouse1Text2 + db "@" + +FuchsiaHouse1Text3: ; 7502c (1d:502c) + TX_FAR _FuchsiaHouse1Text3 + db "@" diff --git a/scripts/fuchsiahouse2.asm b/scripts/fuchsiahouse2.asm new file mode 100755 index 00000000..3d1156cb --- /dev/null +++ b/scripts/fuchsiahouse2.asm @@ -0,0 +1,118 @@ +FuchsiaHouse2Script: ; 750b5 (1d:50b5) + jp EnableAutoTextBoxDrawing + +FuchsiaHouse2TextPointers: ; 750b8 (1d:50b8) + dw FuchsiaHouse2Text1 + dw Predef5CText + dw BoulderText + dw FuchsiaHouse2Text4 + dw FuchsiaHouse2Text5 + +FuchsiaHouse2Text1: ; 750c2 (1d:50c2) + db $08 ; asm + ld a, [$d78e] + bit 0, a + jr nz, .subtract ; 0x750c8 + ld b,GOLD_TEETH + call IsItemInBag + jr nz, .asm_3f30f ; 0x750cf + ld a, [$d78e] + bit 1, a + jr nz, .asm_60cba ; 0x750d6 + ld hl, WardenGibberishText1 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + ld hl, WardenGibberishText3 + jr nz, .asm_61238 ; 0x750e8 + ld hl, WardenGibberishText2 +.asm_61238 ; 0x750ed + call PrintText + jr .asm_52039 ; 0x750f0 +.asm_3f30f ; 0x750f2 + ld hl, WardenTeethText1 + call PrintText + ld a, GOLD_TEETH + ldh [$db], a + ld b, BANK(RemoveItemByID) + ld hl, RemoveItemByID + call Bankswitch + ld hl, $d78e + set 1, [hl] +.asm_60cba ; 0x75109 + ld hl, WardenThankYouText + call PrintText + ld bc,(HM_04 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedHM04Text + call PrintText + ld hl, $d78e + set 0, [hl] + jr .asm_52039 ; 0x75122 +.subtract ; 0x75124 + ld hl, HM04ExplanationText + call PrintText + jr .asm_52039 ; 0x7512a +.BagFull + ld hl, HM04NoRoomText + call PrintText +.asm_52039 ; 0x75132 + jp TextScriptEnd + +WardenGibberishText1: ; 75135 (1d:5135) + TX_FAR _WardenGibberishText1 + db "@" + +WardenGibberishText2: ; 7513a (1d:513a) + TX_FAR _WardenGibberishText2 + db "@" + +WardenGibberishText3: ; 7513f (1d:513f) + TX_FAR _WardenGibberishText3 + db "@" + +WardenTeethText1: ; 75144 (1d:5144) + TX_FAR _WardenTeethText1 + db $0b + +WardenTeethText2: ; 75149 (1d:5149) + TX_FAR _WardenTeethText2 + db "@" + +WardenThankYouText: ; 7514e (1d:514e) + TX_FAR _WardenThankYouText + db "@" + +ReceivedHM04Text: ; 75153 (1d:5153) + TX_FAR _ReceivedHM04Text + db $0B, "@" + +HM04ExplanationText: ; 75159 (1d:5159) + TX_FAR _HM04ExplanationText + db "@" + +HM04NoRoomText: ; 7515e (1d:515e) + TX_FAR _HM04NoRoomText + db "@" + +FuchsiaHouse2Text5: ; 75163 (1d:5163) +FuchsiaHouse2Text4: ; 75163 (1d:5163) + db $08 ; asm + ldh a, [$8c] + cp $4 + ld hl, FuchsiaHouse2Text_7517b + jr nz, .asm_4c9a2 ; 0x7516b + ld hl, FuchsiaHouse2Text_75176 +.asm_4c9a2 ; 0x75170 + call PrintText + jp TextScriptEnd + +FuchsiaHouse2Text_75176: ; 75176 (1d:5176) + TX_FAR _FuchsiaHouse2Text_75176 + db "@" + +FuchsiaHouse2Text_7517b: ; 7517b (1d:517b) + TX_FAR _FuchsiaHouse2Text_7517b + db "@" diff --git a/scripts/fuchsiahouse3.asm b/scripts/fuchsiahouse3.asm new file mode 100755 index 00000000..ec5654ba --- /dev/null +++ b/scripts/fuchsiahouse3.asm @@ -0,0 +1,75 @@ +FuchsiaHouse3Script: ; 5617c (15:617c) + jp EnableAutoTextBoxDrawing + +FuchsiaHouse3TextPointers: ; 5617f (15:617f) + dw FuchsiaHouse3Text1 + +FuchsiaHouse3Text1: ; 56181 (15:6181) + db $08 ; asm + ld a, [$d728] + bit 4, a + jr nz, .after + + ld hl, FuchsiaHouse3Text_561bd + call PrintText + + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .refused + + ld bc, (GOOD_ROD << 8) | 1 + call GiveItem + jr nc, .full + + ld hl, $d728 + set 4, [hl] + + ld hl, FuchsiaHouse3Text_561c2 + jr .talk + +.full + ld hl, FuchsiaHouse3Text_5621c + jr .talk + +.refused + ld hl, FuchsiaHouse3Text_56212 + jr .talk + +.after + ld hl, FuchsiaHouse3Text_56217 + +.talk + call PrintText + jp TextScriptEnd + +FuchsiaHouse3Text_561bd: ; 561bd (15:61bd) + TX_FAR _FuchsiaHouse3Text_561bd + db "@" + +FuchsiaHouse3Text_561c2: ; 561c2 (15:61c2) + TX_FAR _FuchsiaHouse3Text_561c2 ; 0xa06e8 + db $0B + db "@" + +UnnamedText_561c8: ; 561c8 + para "つり こそ" + line "おとこの ロマン だ!" + + para "へぼいつりざおは" + line "コイキングしか つれ なんだが" + line "この いいつりざおなら" + line "もっと いいもんが つれるんじゃ!" + done + +FuchsiaHouse3Text_56212: ; 56212 (15:6212) + TX_FAR _FuchsiaHouse3Text_56212 + db "@" + +FuchsiaHouse3Text_56217: ; 56217 (15:6217) + TX_FAR _FuchsiaHouse3Text_56217 + db "@" + +FuchsiaHouse3Text_5621c: ; 5621c (15:621c) + TX_FAR _FuchsiaHouse3Text_5621c + db "@" diff --git a/scripts/fuchsiamart.asm b/scripts/fuchsiamart.asm new file mode 100755 index 00000000..792dafa2 --- /dev/null +++ b/scripts/fuchsiamart.asm @@ -0,0 +1,15 @@ +FuchsiaMartScript: ; 1dd88 (7:5d88) + jp EnableAutoTextBoxDrawing + +FuchsiaMartTextPointers: ; 1dd8b (7:5d8b) + dw FuchsiaMartText1 + dw FuchsiaMartText2 + dw FuchsiaMartText3 + +FuchsiaMartText2: ; 1dd91 (7:5d91) + TX_FAR _FuchsiaMartText2 + db "@" + +FuchsiaMartText3: ; 1dd96 (7:5d96) + TX_FAR _FuchsiaMartText3 + db "@" diff --git a/scripts/fuchsiameetingroom.asm b/scripts/fuchsiameetingroom.asm new file mode 100755 index 00000000..140a5ccc --- /dev/null +++ b/scripts/fuchsiameetingroom.asm @@ -0,0 +1,20 @@ +FuchsiaMeetingRoomScript: ; 756e3 (1d:56e3) + call EnableAutoTextBoxDrawing + ret + +FuchsiaMeetingRoomTextPointers: ; 756e7 (1d:56e7) + dw FuchsiaMeetingRoomText1 + dw FuchsiaMeetingRoomText2 + dw FuchsiaMeetingRoomText3 + +FuchsiaMeetingRoomText1: ; 756ed (1d:56ed) + TX_FAR _FuchsiaMeetingRoomText1 + db "@" + +FuchsiaMeetingRoomText2: ; 756f2 (1d:56f2) + TX_FAR _FuchsiaMeetingRoomText2 + db "@" + +FuchsiaMeetingRoomText3: ; 756f7 (1d:56f7) + TX_FAR _FuchsiaMeetingRoomText3 + db "@" diff --git a/scripts/fuchsiapokecenter.asm b/scripts/fuchsiapokecenter.asm new file mode 100755 index 00000000..621a483f --- /dev/null +++ b/scripts/fuchsiapokecenter.asm @@ -0,0 +1,23 @@ +FuchsiaPokecenterScript: ; 75063 (1d:5063) + call Func_22fa + jp EnableAutoTextBoxDrawing + +FuchsiaPokecenterTextPointers: ; 75069 (1d:5069) + dw FuchsiaPokecenterText1 + dw FuchsiaPokecenterText2 + dw FuchsiaPokecenterText3 + dw FuchsiaPokecenterText4 + +FuchsiaPokecenterText1: ; 75071 (1d:5071) + db $ff + +FuchsiaPokecenterText2: ; 75072 (1d:5072) + TX_FAR _FuchsiaPokecenterText1 + db "@" + +FuchsiaPokecenterText3: ; 75077 (1d:5077) + TX_FAR _FuchsiaPokecenterText3 + db "@" + +FuchsiaPokecenterText4: ; 7507c (1d:507c) + db $f6 diff --git a/scripts/gary.asm b/scripts/gary.asm new file mode 100755 index 00000000..aeb04f78 --- /dev/null +++ b/scripts/gary.asm @@ -0,0 +1,297 @@ +GaryScript: ; 75f1d (1d:5f1d) + call EnableAutoTextBoxDrawing + ld hl, GaryScriptPointers + ld a, [W_GARYCURSCRIPT] + jp CallFunctionInTable + +GaryScript_75f29: ; 75f29 (1d:5f29) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_GARYCURSCRIPT], a + ret + +GaryScriptPointers: ; 75f31 (1d:5f31) + dw GaryScript0 + dw GaryScript1 + dw GaryScript2 + dw GaryScript3 + dw GaryScript4 + dw GaryScript5 + dw GaryScript6 + dw GaryScript7 + dw GaryScript8 + dw GaryScript9 + dw GaryScript10 + +GaryScript0: ; 75f47 (1d:5f47) + ret + +GaryScript1: ; 75f48 (1d:5f48) + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld hl, $ccd3 + ld de, RLEMovement75f63 + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld a, $2 + ld [W_GARYCURSCRIPT], a + ret + +RLEMovement75f63: ; 75f63 (1d:5f63) + db $40,1 + db $10,1 + db $40,3 + db $ff + +GaryScript2: ; 75f6a (1d:5f6a) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d355 + res 7, [hl] + ld a, $1 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, GaryText_760f9 + ld de, GaryText_760fe + call PreBattleSaveRegisters + ld a, SONY3 + $c8 + ld [W_CUROPPONENT], a + + ; select which team to use during the encounter + ld a, [W_RIVALSTARTER] + cp SQUIRTLE + jr nz, .NotSquirtle ; 0x75f9f $4 + ld a, $1 + jr .done +.NotSquirtle + cp BULBASAUR + jr nz, .Charmander ; 0x75fa7 $4 + ld a, $2 + jr .done +.Charmander + ld a, $3 +.done + ld [W_TRAINERNO], a + + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $3 + ld [W_GARYCURSCRIPT], a + ret + +GaryScript3: ; 75fbb (1d:5fbb) + ld a, [W_ISINBATTLE] + cp $ff + jp z, GaryScript_75f29 + call UpdateSprites ; move sprites + ld hl, $d867 + set 1, [hl] + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $1 + ld [$ff8c], a + call GaryScript_760c8 + ld a, $1 + ld [$ff8c], a + call SetSpriteMovementBytesToFF + ld a, $4 + ld [W_GARYCURSCRIPT], a + ret + +GaryScript4: ; 75fe4 (1d:5fe4) + ld b, BANK(Music_Cities1AlternateTempo) + ld hl, Music_Cities1AlternateTempo + call Bankswitch + ld a, $2 + ld [$ff8c], a + call GaryScript_760c8 + ld a, $2 + ld [$ff8c], a + call SetSpriteMovementBytesToFF + ld de, MovementData_76014 + ld a, $2 + ld [$ff8c], a + call MoveSprite + ld a, $d6 + ld [$cc4d], a + ld a, $15 + call Predef + ld a, $5 + ld [W_GARYCURSCRIPT], a + ret + +MovementData_76014: ; 76014 (1d:6014) + db $40,$40,$40,$40,$40,$FF + +GaryScript5: ; 7601a (1d:601a) + ld a, [$d730] + bit 0, a + ret nz + ld a, $2 + ld [$d528], a + ld a, $1 + ld [$ff8c], a + ld a, $8 + ld [$ff8d], a + call Func_34a6 + ld a, $2 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $3 + ld [$ff8c], a + call GaryScript_760c8 + ld a, $6 + ld [W_GARYCURSCRIPT], a + ret + +GaryScript6: ; 76047 (1d:6047) + ld a, $2 + ld [$ff8c], a + ld a, $c + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $4 + ld [$ff8c], a + call GaryScript_760c8 + ld a, $7 + ld [W_GARYCURSCRIPT], a + ret + +GaryScript7: ; 7605f (1d:605f) + ld a, $2 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $5 + ld [$ff8c], a + call GaryScript_760c8 + ld de, MovementData_76080 + ld a, $2 + ld [$ff8c], a + call MoveSprite + ld a, $8 + ld [W_GARYCURSCRIPT], a + ret + +MovementData_76080: ; 76080 (1d:6080) + db $40,$40,$FF + +GaryScript8: ; 76083 (1d:6083) + ld a, [$d730] + bit 0, a + ret nz + ld a, $d6 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $9 + ld [W_GARYCURSCRIPT], a + ret + +GaryScript9: ; 76099 (1d:6099) + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld hl, $ccd3 + ld de, RLEMovement760b4 + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld a, $a + ld [W_GARYCURSCRIPT], a + ret + +RLEMovement760b4 ; 760b4 (1d:60b4) + db $40,4 + db $20,1 + db $ff + +GaryScript10: ; 760b9 (1d:60b9) + ld a, [$cd38] + and a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_GARYCURSCRIPT], a + ret + +GaryScript_760c8 ; 760c8 (1d:60c8) + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + call DisplayTextID + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ret + +GaryTextPointers: ; 760d6 (1d:60d6) + dw GaryText1 + dw GaryText2 + dw GaryText3 + dw GaryText4 + dw GaryText5 + +GaryText1: ; 760e0 (1d:60e0) + db $08 ; asm + ld a, [$d867] + bit 1, a + ld hl, GaryText_760f4 + jr z, .asm_17e9f ; 0x760e9 + ld hl, GaryText_76103 +.asm_17e9f ; 0x760ee + call PrintText + jp TextScriptEnd + +GaryText_760f4: ; 760f4 (1d:60f4) + TX_FAR _GaryText_760f4 + db "@" + +GaryText_760f9: ; 760f9 (1d:60f9) + TX_FAR _GaryText_760f9 + db "@" + +GaryText_760fe: ; 760fe (1d:60fe) + TX_FAR _GaryText_760fe + db "@" + +GaryText_76103: ; 76103 (1d:6103) + TX_FAR _GaryText_76103 + db "@" + +GaryText2: ; 76108 (1d:6108) + TX_FAR _GaryText2 + db "@" + +GaryText3: ; 7610d (1d:610d) + db $8 + ld a, [$d717] + ld [$d11e], a + call GetMonName + ld hl, GaryText_76120 + call PrintText + jp TextScriptEnd + +GaryText_76120: ; 76120 (1d:6120) + TX_FAR _GaryText_76120 + db "@" + +GaryText4: ; 76125 (1d:6125) + TX_FAR _GaryText_76125 + db "@" + +GaryText5: ; 7612a (1d:612a) + TX_FAR _GaryText_7612a + db "@" diff --git a/scripts/halloffameroom.asm b/scripts/halloffameroom.asm new file mode 100755 index 00000000..25a59a36 --- /dev/null +++ b/scripts/halloffameroom.asm @@ -0,0 +1,117 @@ +HallofFameRoomScript: ; 5a49e (16:649e) + call EnableAutoTextBoxDrawing + ld hl, HallofFameRoomScriptPointers + ld a, [W_HALLOFFAMEROOMCURSCRIPT] + jp CallFunctionInTable + +HallofFameRoomScript_5a4aa: ; 5a4aa (16:64aa) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_HALLOFFAMEROOMCURSCRIPT], a + ret + +HallofFameRoomScriptPointers: ; 5a4b2 (16:64b2) + dw HallofFameRoomScript0 + dw HallofFameRoomScript1 + dw HallofFameRoomScript2 + dw HallofFameRoomScript3 + +HallofFameRoomScript3: ; 5a4ba (16:64ba) + ret + +HallofFameRoomScript2: ; 5a4bb (16:64bb) + call Delay3 + ld a, [$d358] + push af + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $55 + call Predef + pop af + ld [$d358], a + ld hl, W_FLAGS_D733 + res 1, [hl] + inc hl + set 0, [hl] + xor a + ld hl, W_LORELEICURSCRIPT + ld [hli], a + ld [hli], a + ld [hl], a + ld [W_LANCECURSCRIPT], a + ld [W_HALLOFFAMEROOMCURSCRIPT], a + ld hl, $d863 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + xor a + ld [W_HALLOFFAMEROOMCURSCRIPT], a + ld a, $0 + ld [$d719], a + ld b, BANK(SaveSAVtoSRAM) + ld hl, SaveSAVtoSRAM + call Bankswitch + ld b, $5 +.asm_5a4ff + ld c, $78 + call DelayFrames + dec b + jr nz, .asm_5a4ff ; 0x5a505 $f8 + call WaitForTextScrollButtonPress + jp InitGame + +HallofFameRoomScript0: ; 5a50d (16:650d) + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld hl, $ccd3 + ld de, RLEMovement5a528 + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld a, $1 + ld [W_HALLOFFAMEROOMCURSCRIPT], a + ret + +RLEMovement5a528: ; 5a528 (16:6528) + db $40,$5 + db $ff + +HallofFameRoomScript1: ; 5a52b (16:652b) + ld a, [$cd38] + and a + ret nz + ld a, $1 + ld [$d528], a + ld a, $1 + ld [$ff8c], a + call SetSpriteMovementBytesToFF + ld a, $8 + ld [$ff8d], a + call Func_34a6 + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + inc a + ld [$d528], a + ld a, $1 + ld [$ff8c], a + call DisplayTextID + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld a, $8 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $2 + ld [W_HALLOFFAMEROOMCURSCRIPT], a + ret + +HallofFameRoomTextPointers: ; 5a56a (16:656a) + dw HallofFameRoomText1 + +HallofFameRoomText1: ; 5a56c (16:656c) + TX_FAR _HallofFameRoomText1 + db "@" diff --git a/scripts/indigoplateau.asm b/scripts/indigoplateau.asm new file mode 100755 index 00000000..9e4802ba --- /dev/null +++ b/scripts/indigoplateau.asm @@ -0,0 +1,4 @@ +IndigoPlateauScript: ; 50935 (14:4935) + ret + +IndigoPlateauTextPointers: ; 50936 (14:4936) diff --git a/scripts/indigoplateaulobby.asm b/scripts/indigoplateaulobby.asm new file mode 100755 index 00000000..861939b6 --- /dev/null +++ b/scripts/indigoplateaulobby.asm @@ -0,0 +1,41 @@ +IndigoPlateauLobbyScript: ; 19c5b (6:5c5b) + call Func_22fa + call EnableAutoTextBoxDrawing + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + ret z + ld hl, $d869 + res 7, [hl] + ld hl, $d734 + bit 1, [hl] + res 1, [hl] + ret z + ld hl, $d863 + xor a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ret + +IndigoPlateauLobbyTextPointers: ; 19c7f (6:5c7f) + dw IndigoPlateauLobbyText1 + dw IndigoPlateauLobbyText2 + dw IndigoPlateauLobbyText3 + dw IndigoPlateauLobbyText4 + dw IndigoPlateauLobbyText5 + +IndigoPlateauLobbyText1: ; 19c89 (6:5c89) + db $ff + +IndigoPlateauLobbyText2: ; 19c8a (6:5c8a) + TX_FAR _IndigoPlateauLobbyText1 + db "@" + +IndigoPlateauLobbyText3: ; 19c8f (6:5c8f) + TX_FAR _IndigoPlateauLobbyText3 + db "@" + +IndigoPlateauLobbyText5: ; 19c94 (6:5c94) + db $f6 diff --git a/scripts/lab1.asm b/scripts/lab1.asm new file mode 100755 index 00000000..a4ec9b41 --- /dev/null +++ b/scripts/lab1.asm @@ -0,0 +1,30 @@ +Lab1Script: ; 75b8c (1d:5b8c) + call EnableAutoTextBoxDrawing + ret + +Lab1TextPointers: ; 75b90 (1d:5b90) + dw Lab1Text1 + dw Lab1Text2 + dw Lab1Text3 + dw Lab1Text4 + dw Lab1Text5 + +Lab1Text1: ; 75b9a (1d:5b9a) + TX_FAR _Lab1Text1 + db "@" + +Lab1Text2: ; 75b9f (1d:5b9f) + TX_FAR _Lab1Text2 + db "@" + +Lab1Text3: ; 75ba4 (1d:5ba4) + TX_FAR _Lab1Text3 + db "@" + +Lab1Text4: ; 75ba9 (1d:5ba9) + TX_FAR _Lab1Text4 + db "@" + +Lab1Text5: ; 75bae (1d:5bae) + TX_FAR _Lab1Text5 + db "@" diff --git a/scripts/lab2.asm b/scripts/lab2.asm new file mode 100755 index 00000000..a626de98 --- /dev/null +++ b/scripts/lab2.asm @@ -0,0 +1,26 @@ +Lab2Script: ; 75c21 (1d:5c21) + jp EnableAutoTextBoxDrawing + +Lab2TextPointers: ; 75c24 (1d:5c24) + dw Lab2Text1 + dw Lab2Text2 + dw Lab2Text3 + +Lab2Text1: ; 75c2a (1d:5c2a) + TX_FAR _Lab2Text1 + db "@" + +Lab2Text2: ; 75c2f (1d:5c2f) + db $8 + ld a, $7 + ld [wWhichTrade], a + jr asm_78552 ; 0x75c35 $6 + +Lab2Text3: ; 75c37 (1d:5c37) + db $8 + ld a, $8 + ld [wWhichTrade], a +asm_78552: ; 75c3d (1d:5c3d) + ld a, $54 + call Predef + jp TextScriptEnd diff --git a/scripts/lab3.asm b/scripts/lab3.asm new file mode 100755 index 00000000..d56aba26 --- /dev/null +++ b/scripts/lab3.asm @@ -0,0 +1,63 @@ +Lab3Script: ; 75c87 (1d:5c87) + jp EnableAutoTextBoxDrawing + +Lab3TextPointers: ; 75c8a (1d:5c8a) + dw Lab3Text1 + dw Lab3Text2 + dw Lab3Text3 + dw Lab3Text4 + dw Lab3Text5 + +Lab3Text1: ; 75c94 (1d:5c94) + db $08 ; asm + ld a, [$d7a1] + bit 7, a + jr nz, .asm_e551a ; 0x75c9a + ld hl, TM35PreReceiveText + call PrintText + ld bc, (TM_35 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedTM35Text + call PrintText + ld hl, $d7a1 + set 7, [hl] + jr .asm_eb896 ; 0x75cb5 +.BagFull + ld hl, TM35NoRoomText + call PrintText + jr .asm_eb896 ; 0x75cbd +.asm_e551a ; 0x75cbf + ld hl, TM35ExplanationText + call PrintText +.asm_eb896 ; 0x75cc5 + jp TextScriptEnd + +TM35PreReceiveText: ; 75cc8 (1d:5cc8) + TX_FAR _TM35PreReceiveText + db "@" + +ReceivedTM35Text: ; 75ccd (1d:5ccd) + TX_FAR _ReceivedTM35Text + db $0B, "@" + +TM35ExplanationText: ; 75cd3 (1d:5cd3) + TX_FAR _TM35ExplanationText + db "@" + +TM35NoRoomText: ; 75cd8 (1d:5cd8) + TX_FAR _TM35NoRoomText + db "@" + +Lab3Text2: ; 75cdd (1d:5cdd) + TX_FAR _Lab3Text2 + db "@" + +Lab3Text4: ; 75ce2 (1d:5ce2) +Lab3Text3: ; 75ce2 (1d:5ce2) + TX_FAR _Lab3Text3 + db "@" + +Lab3Text5: ; 75ce7 (1d:5ce7) + TX_FAR _Lab3Text5 + db "@" diff --git a/scripts/lab4.asm b/scripts/lab4.asm new file mode 100755 index 00000000..b8a73432 --- /dev/null +++ b/scripts/lab4.asm @@ -0,0 +1,117 @@ +Lab4Script: ; 75d31 (1d:5d31) + jp EnableAutoTextBoxDrawing + +Lab4TextPointers: ; 75d34 (1d:5d34) + dw Lab4Text1 + dw Lab4Text2 + +Lab4Script_75d38: ; 75d38 (1d:5d38) + xor a + ld [$cd37], a + ld de, $cc5b + ld hl, FossilsList +.asm_75d42 + ld a, [hli] + and a + jr z, .asm_75d64 + push hl + push de + ld [$d11e], a + ld b, a + ld a, $1c + call Predef ; indirect jump to Func_f8a5 (f8a5 (3:78a5)) + pop de + pop hl + ld a, b + and a + jr z, .asm_75d42 + ld a, [$d11e] + ld [de], a + inc de + push hl + ld hl, $cd37 + inc [hl] + pop hl + jr .asm_75d42 +.asm_75d64 + ld a, $ff + ld [de], a + ret + +FossilsList: ; 75d68 (1d:5d68) + db DOME_FOSSIL + db HELIX_FOSSIL + db OLD_AMBER + db $00 + +Lab4Text1: ; 75d6c (1d:5d6c) + db $8 + ld a, [$d7a3] + bit 0, a + jr nz, .asm_75d96 ; 0x75d72 $22 + ld hl, Lab4Text_75dc6 + call PrintText + call Lab4Script_75d38 + ld a, [$cd37] + and a + jr z, .asm_75d8d ; 0x75d81 $a + ld b, BANK(GiveFossilToCinnabarLab) + ld hl, GiveFossilToCinnabarLab + call Bankswitch + jr .asm_75d93 ; 0x75d8b $6 +.asm_75d8d + ld hl, Lab4Text_75dcb + call PrintText +.asm_75d93 + jp TextScriptEnd +.asm_75d96 + bit 1, a + jr z, .asm_75da2 ; 0x75d98 $8 + ld hl, Lab4Text_75dd0 + call PrintText + jr .asm_75d93 ; 0x75da0 $f1 +.asm_75da2 + call LoadFossilItemAndMonNameBank1D + ld hl, Lab4Text_75dd5 + call PrintText + ld hl, $d7a3 + set 2, [hl] + ld a, [W_FOSSILMON] + ld b, a + ld c, $1e + call GivePokemon + jr nc, .asm_75d93 ; 0x75db9 $d8 + ld hl, $d7a3 + res 0, [hl] + res 1, [hl] + res 2, [hl] + jr .asm_75d93 ; 0x75dc4 $cd + +Lab4Text_75dc6: ; 75dc6 (1d:5dc6) + TX_FAR _Lab4Text_75dc6 + db "@" + +Lab4Text_75dcb: ; 75dcb (1d:5dcb) + TX_FAR _Lab4Text_75dcb + db "@" + +Lab4Text_75dd0: ; 75dd0 (1d:5dd0) + TX_FAR _Lab4Text_75dd0 + db "@" + +Lab4Text_75dd5: ; 75dd5 (1d:5dd5) + TX_FAR _Lab4Text_75dd5 + db "@" + +Lab4Text2: ; 75dda (1d:5dda) + db $08 ; asm + ld a, $3 + ld [wWhichTrade], a + ld a, $54 + call Predef + jp TextScriptEnd + +LoadFossilItemAndMonNameBank1D: ; 75de8 (1d:5de8) + ld b, BANK(LoadFossilItemAndMonName) + ld hl, LoadFossilItemAndMonName + jp Bankswitch diff --git a/scripts/lance.asm b/scripts/lance.asm new file mode 100755 index 00000000..445b4052 --- /dev/null +++ b/scripts/lance.asm @@ -0,0 +1,166 @@ +LanceScript: ; 5a2ae (16:62ae) + call LanceScript_5a2c4 + call EnableAutoTextBoxDrawing + ld hl, LanceTrainerHeaders + ld de, LanceScriptPointers + ld a, [W_LANCECURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_LANCECURSCRIPT], a + ret + +LanceScript_5a2c4: ; 5a2c4 (16:62c4) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d866] + bit 7, a + jr nz, .asm_5a2da + ld a, $31 + ld b, $32 + jp LanceScript_5a2de +.asm_5a2da + ld a, $72 + ld b, $73 + +LanceScript_5a2de: ; 5a2de (16:62de) + push bc + ld [$d09f], a + ld bc, $602 + call LanceScript_5a2f0 + pop bc + ld a, b + ld [$d09f], a + ld bc, $603 + +LanceScript_5a2f0: ; 5a2f0 (16:62f0) + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +LanceScript_5a2f5: ; 5a2f5 (16:62f5) + xor a + ld [W_LANCECURSCRIPT], a + ret + +LanceScriptPointers: ; 5a2fa (16:62fa) + dw LanceScript0 + dw Func_324c + dw LanceScript2 + dw LanceScript3 + dw LanceScript4 + +LanceScript4: ; 5a304 (16:6304) + ret + +LanceScript0: ; 5a305 (16:6305) + ld a, [$d866] + bit 6, a + ret nz + ld hl, CoordsData_5a33e + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, [wWhichTrade] ; $cd3d + cp $3 + jr nc, .asm_5a325 + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp DisplayTextID +.asm_5a325 + cp $5 + jr z, LanceScript_5a35b + ld hl, $d866 + bit 7, [hl] + set 7, [hl] + ret nz + ld hl, $d126 + set 5, [hl] + ld a, (SFX_02_57 - SFX_Headers_02) / 3 + call PlaySound + jp LanceScript_5a2c4 + +CoordsData_5a33e: ; 5a33e (16:633e) + db $01,$05 + db $02,$06 + db $0B,$05 + db $0B,$06 + db $10,$18 + db $FF + +LanceScript2: ; 5a349 (16:6349) + call EndTrainerBattle + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, LanceScript_5a2f5 + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp DisplayTextID + +LanceScript_5a35b: ; 5a35b (16:635b) + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld hl, $ccd3 + ld de, RLEList_5a379 + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld a, $3 + ld [W_LANCECURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +RLEList_5a379: ; 5a379 (16:6379) + db $40, $0C + db $20, $0C + db $80, $07 + db $20, $06 + db $FF + +LanceScript3: ; 5a382 (16:6382) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_LANCECURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +LanceTextPointers: ; 5a395 (16:6395) + dw LanceText1 + +LanceTrainerHeaders: ; 5a397 (16:6397) +LanceTrainerHeader0: ; 5a397 (16:6397) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d866 ; flag's byte + dw LanceBeforeBattleText ; 0x63ae TextBeforeBattle + dw LanceAfterBattleText ; 0x63b8 TextAfterBattle + dw LanceEndBattleText ; 0x63b3 TextEndBattle + dw LanceEndBattleText ; 0x63b3 TextEndBattle + + db $ff + +LanceText1: ; 5a3a4 (16:63a4) + db $08 ; asm + ld hl, LanceTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +LanceBeforeBattleText: ; 5a3ae (16:63ae) + TX_FAR _LanceBeforeBattleText + db "@" + +LanceEndBattleText: ; 5a3b3 (16:63b3) + TX_FAR _LanceEndBattleText + db "@" + +LanceAfterBattleText: ; 5a3b8 (16:63b8) + TX_FAR _LanceAfterBattleText + db $8 + ld hl, $d866 + set 6, [hl] + jp TextScriptEnd diff --git a/scripts/lavenderhouse1.asm b/scripts/lavenderhouse1.asm new file mode 100755 index 00000000..0f7bf417 --- /dev/null +++ b/scripts/lavenderhouse1.asm @@ -0,0 +1,116 @@ +LavenderHouse1Script: ; 1d8a8 (7:58a8) + call EnableAutoTextBoxDrawing + ret + +LavenderHouse1TextPointers: ; 1d8ac (7:58ac) + dw LavenderHouse1Text1 + dw LavenderHouse1Text2 + dw LavenderHouse1Text3 + dw LavenderHouse1Text4 + dw LavenderHouse1Text5 + dw LavenderHouse1Text6 + +LavenderHouse1Text1: ; 1d8b8 (7:58b8) + db $08 ; asm + ld a, [$d7e0] + bit 7, a + jr nz, .asm_72e5d ; 0x1d8be + ld hl, LavenderHouse1Text_1d8d1 + call PrintText + jr .asm_6957f ; 0x1d8c6 +.asm_72e5d ; 0x1d8c8 + ld hl, LavenderHouse1Text_1d8d6 + call PrintText +.asm_6957f ; 0x1d8ce + jp TextScriptEnd + +LavenderHouse1Text_1d8d1: ; 1d8d1 (7:58d1) + TX_FAR _LavenderHouse1Text_1d8d1 + db "@" + +LavenderHouse1Text_1d8d6: ; 1d8d6 (7:58d6) + TX_FAR _LavenderHouse1Text_1d8d6 + db "@" + +LavenderHouse1Text2: ; 1d8db (7:58db) + db $08 ; asm + ld a, [$d7e0] + bit 7, a + jr nz, .asm_06470 ; 0x1d8e1 + ld hl, LavenderHouse1Text_1d8f4 + call PrintText + jr .asm_3d208 ; 0x1d8e9 +.asm_06470 ; 0x1d8eb + ld hl, LavenderHouse1Text_1d8f9 + call PrintText +.asm_3d208 ; 0x1d8f1 + jp TextScriptEnd + +LavenderHouse1Text_1d8f4: ; 1d8f4 (7:58f4) + TX_FAR _LavenderHouse1Text_1d8f4 + db "@" + +LavenderHouse1Text_1d8f9: ; 1d8f9 (7:58f9) + TX_FAR _LavenderHouse1Text_1d8f9 + db "@" + +LavenderHouse1Text3: ; 1d8fe (7:58fe) + TX_FAR _LavenderHouse1Text3 + db $8 + ld a, PSYDUCK + call PlayCry + jp TextScriptEnd + +LavenderHouse1Text4: ; 1d90b (7:590b) + TX_FAR _LavenderHouse1Text4 + db $8 + ld a, NIDORINO + call PlayCry + jp TextScriptEnd + +LavenderHouse1Text5: ; 1d918 (7:5918) + db $08 ; asm + ld a, [$d76c] + bit 0, a + jr nz, .asm_15ac2 ; 0x1d91e + ld hl, LavenderHouse1Text_1d94c + call PrintText + ld bc, (POKE_FLUTE << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedFluteText + call PrintText + ld hl, $d76c + set 0, [hl] + jr .asm_da749 ; 0x1d939 +.BagFull + ld hl, FluteNoRoomText + call PrintText + jr .asm_da749 ; 0x1d941 +.asm_15ac2 ; 0x1d943 + ld hl, MrFujiAfterFluteText + call PrintText +.asm_da749 ; 0x1d949 + jp TextScriptEnd + +LavenderHouse1Text_1d94c: ; 1d94c (7:594c) + TX_FAR _LavenderHouse1Text_1d94c + db "@" + +ReceivedFluteText: ; 1d951 (7:5951) + TX_FAR _ReceivedFluteText + db $11 + TX_FAR _FluteExplanationText + db "@" + +FluteNoRoomText: ; 1d95b (7:595b) + TX_FAR _FluteNoRoomText + db "@" + +MrFujiAfterFluteText: ; 1d960 (7:5960) + TX_FAR _MrFujiAfterFluteText + db "@" + +LavenderHouse1Text6: ; 1d965 (7:5965) + TX_FAR _LavenderHouse1Text6 + db "@" diff --git a/scripts/lavenderhouse2.asm b/scripts/lavenderhouse2.asm new file mode 100755 index 00000000..db4f0cab --- /dev/null +++ b/scripts/lavenderhouse2.asm @@ -0,0 +1,36 @@ +LavenderHouse2Script: ; 1d9ae (7:59ae) + call EnableAutoTextBoxDrawing + ret + +LavenderHouse2TextPointers: ; 1d9b2 (7:59b2) + dw LavenderHouse2Text1 + dw LavenderHouse2Text2 + +LavenderHouse2Text1: ; 1d9b6 (7:59b6) + TX_FAR _LavenderHouse2Text1 + db $8 + ld a, CUBONE + call PlayCry + jp TextScriptEnd + +LavenderHouse2Text2: ; 1d9c3 (7:59c3) + db $08 ; asm + ld a, [$d7e0] + bit 7, a + jr nz, .asm_65711 ; 0x1d9c9 + ld hl, LavenderHouse2Text_1d9dc + call PrintText + jr .asm_64be1 ; 0x1d9d1 +.asm_65711 ; 0x1d9d3 + ld hl, LavenderHouse2Text_1d9e1 + call PrintText +.asm_64be1 ; 0x1d9d9 + jp TextScriptEnd + +LavenderHouse2Text_1d9dc: ; 1d9dc (7:59dc) + TX_FAR _LavenderHouse2Text_1d9dc + db "@" + +LavenderHouse2Text_1d9e1: ; 1d9e1 (7:59e1) + TX_FAR _LavenderHouse2Text_1d9e1 + db "@" diff --git a/scripts/lavendermart.asm b/scripts/lavendermart.asm new file mode 100755 index 00000000..78870a66 --- /dev/null +++ b/scripts/lavendermart.asm @@ -0,0 +1,33 @@ +LavenderMartScript: ; 5c92c (17:492c) + jp EnableAutoTextBoxDrawing + +LavenderMartTextPointers: ; 5c92f (17:492f) + dw LavenderMartText1 + dw LavenderMartText2 + dw LavenderMartText3 + +LavenderMartText2: ; 5c935 (17:4935) + TX_FAR _LavenderMartText2 + db "@" + +LavenderMartText3: ; 5c93a (17:493a) + db $08 ; asm + ld a, [$d7e0] + bit 7, a + jr nz, .asm_c88d4 ; 0x5c940 + ld hl, LavenderMart_5c953 + call PrintText + jr .asm_6d225 ; 0x5c948 +.asm_c88d4 ; 0x5c94a + ld hl, LavenderMart_5c958 + call PrintText +.asm_6d225 ; 0x5c950 + jp TextScriptEnd + +LavenderMart_5c953: ; 5c953 (17:4953) + TX_FAR _LavenderMart_5c953 + db "@" + +LavenderMart_5c958: ; 5c958 (17:4958) + TX_FAR _LavenderMart_5c958 + db "@" diff --git a/scripts/lavenderpokecenter.asm b/scripts/lavenderpokecenter.asm new file mode 100755 index 00000000..31a50aef --- /dev/null +++ b/scripts/lavenderpokecenter.asm @@ -0,0 +1,23 @@ +LavenderPokecenterScript: ; 5c8da (17:48da) + call Func_22fa + jp EnableAutoTextBoxDrawing + +LavenderPokecenterTextPointers: ; 5c8e0 (17:48e0) + dw LavenderPokecenterText1 + dw LavenderPokecenterText2 + dw LavenderPokecenterText3 + dw LavenderPokecenterText4 + +LavenderPokecenterText4: ; 5c8e8 (17:48e8) + db $f6 + +LavenderPokecenterText1: ; 5c8e9 (17:48e9) + db $ff + +LavenderPokecenterText2: ; 5c8ea (17:48ea) + TX_FAR _LavenderPokecenterText1 + db "@" + +LavenderPokecenterText3: ; 5c8ef (17:48ef) + TX_FAR _LavenderPokecenterText3 + db "@" diff --git a/scripts/lavendertown.asm b/scripts/lavendertown.asm new file mode 100755 index 00000000..41eb0242 --- /dev/null +++ b/scripts/lavendertown.asm @@ -0,0 +1,63 @@ +LavenderTownScript: ; 4410b (11:410b) + jp EnableAutoTextBoxDrawing + +LavenderTownTextPointers: ; 4410e (11:410e) + dw LavenderTownText1 + dw LavenderTownText2 + dw LavenderTownText3 + dw LavenderTownText4 + dw LavenderTownText5 + dw MartSignText + dw PokeCenterSignText + dw LavenderTownText8 + dw LavenderTownText9 + +LavenderTownText1: ; 44120 (11:4120) + db $08 ; asm + ld hl, LavenderTownText_4413c + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + ld hl, LavenderTownText_44146 + jr nz, .asm_40831 ; 0x44131 + ld hl, LavenderTownText_44141 +.asm_40831 ; 0x44136 + call PrintText + jp TextScriptEnd + +LavenderTownText_4413c: ; 4413c (11:413c) + TX_FAR _LavenderTownText_4413c + db "@" + +LavenderTownText_44141: ; 44141 (11:4141) + TX_FAR _LavenderTownText_44141 + db "@" + +LavenderTownText_44146: ; 44146 (11:4146) + TX_FAR _LavenderTownText_44146 + db "@" + +LavenderTownText2: ; 4414b (11:414b) + TX_FAR _LavenderTownText2 + db "@" + +LavenderTownText3: ; 44150 (11:4150) + TX_FAR _LavenderTownText3 + db "@" + +LavenderTownText4: ; 44155 (11:4155) + TX_FAR _LavenderTownText4 + db "@" + +LavenderTownText5: ; 4415a (11:415a) + TX_FAR _LavenderTownText5 + db "@" + +LavenderTownText8: ; 4415f (11:415f) + TX_FAR _LavenderTownText8 + db "@" + +LavenderTownText9: ; 44164 (11:4164) + TX_FAR _LavenderTownText9 + db "@" diff --git a/scripts/lorelei.asm b/scripts/lorelei.asm new file mode 100755 index 00000000..eb2da2bd --- /dev/null +++ b/scripts/lorelei.asm @@ -0,0 +1,153 @@ +LoreleiScript: ; 7617b (1d:617b) + call LoreleiScript_76191 + call EnableAutoTextBoxDrawing + ld hl, LoreleiTrainerHeaders + ld de, LoreleiScriptPointers + ld a, [W_LORELEICURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_LORELEICURSCRIPT], a + ret + +LoreleiScript_76191: ; 76191 (1d:6191) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, $d734 + set 1, [hl] + ld a, [$d863] + bit 1, a + jr z, .asm_761a9 + ld a, $5 + jr .asm_761ab +.asm_761a9 + ld a, $24 +.asm_761ab + ld [$d09f], a + ld bc, $2 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +LoreleiScript_761b6: ; 761b6 (1d:61b6) + xor a + ld [W_LORELEICURSCRIPT], a + ret + +LoreleiScriptPointers: ; 761bb (1d:61bb) + dw LoreleiScript0 + dw Func_324c + dw LoreleiScript2 + dw LoreleiScript3 + dw LoreleiScript4 + +LoreleiScript4: ; 761c5 (1d:61c5) + ret +asm_761c6: ; 761c6 (1d:61c6) + ld hl, $ccd3 + ld a, $40 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $6 + ld [$cd38], a + call Func_3486 + ld a, $3 + ld [W_LORELEICURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret +LoreleiScript0: ; 761e2 (1d:61e2) + ld hl, CoordsData_76223 + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + xor a + ld [H_NEWLYPRESSEDBUTTONS], a + ld [H_CURRENTPRESSEDBUTTONS], a + ld [$ccd3], a + ld [$cd38], a + ld a, [wWhichTrade] ; $cd3d + cp $3 + jr c, .asm_76206 + ld hl, $d863 + bit 6, [hl] + set 6, [hl] + jr z, asm_761c6 +.asm_76206 + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, $40 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + call Func_3486 + ld a, $3 + ld [W_LORELEICURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CoordsData_76223: ; 76223 (1d:6223) + db $0A,$04 + db $0A,$05 + db $0B,$04 + db $0B,$05 + db $FF + +LoreleiScript3: ; 7622c (1d:622c) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_LORELEICURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret +LoreleiScript2: ; 7623f (1d:623f) + call EndTrainerBattle + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, LoreleiScript_761b6 + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp DisplayTextID + +LoreleiTextPointers: ; 76251 (1d:6251) + dw LoreleiText1 + dw LoreleiText2 + +LoreleiTrainerHeaders: ; 76255 (1d:6255) +LoreleiTrainerHeader0: ; 76255 (1d:6255) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d863 ; flag's byte + dw LoreleiBeforeBattleText ; 0x626c TextBeforeBattle + dw LoreleiAfterBattleText ; 0x6276 TextAfterBattle + dw LoreleiEndBattleText ; 0x6271 TextEndBattle + dw LoreleiEndBattleText ; 0x6271 TextEndBattle + + db $ff + +LoreleiText1: ; 76262 (1d:6262) + db $08 ; asm + ld hl, LoreleiTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +LoreleiBeforeBattleText: ; 7626c (1d:626c) + TX_FAR _LoreleiBeforeBattleText + db "@" + +LoreleiEndBattleText: ; 76271 (1d:6271) + TX_FAR _LoreleiEndBattleText + db "@" + +LoreleiAfterBattleText: ; 76276 (1d:6276) + TX_FAR _LoreleiAfterBattleText + db "@" + +LoreleiText2: ; 7627b (1d:627b) + TX_FAR _LoreleiText2 + db "@" diff --git a/scripts/mansion1.asm b/scripts/mansion1.asm new file mode 100755 index 00000000..d68e2183 --- /dev/null +++ b/scripts/mansion1.asm @@ -0,0 +1,139 @@ +Mansion1Script: ; 442af (11:42af) + call Mansion1Subscript1 + call EnableAutoTextBoxDrawing + ld hl, Mansion1TrainerHeaders + ld de, Mansion1ScriptPointers + ld a, [W_MANSION1CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_MANSION1CURSCRIPT], a + ret + +Mansion1Subscript1: ; 442c5 (11:42c5) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d796] + bit 0, a + jr nz, .asm_442ec ; 0x442d2 $18 + ld bc, $060c + call Mansion1Script_4430b + ld bc, $0308 + call Mansion1Script_44304 + ld bc, $080a + call Mansion1Script_44304 + ld bc, $0d0d + jp Mansion1Script_44304 +.asm_442ec + ld bc, $060c + call Mansion1Script_44304 + ld bc, $0308 + call Mansion1Script_4430b + ld bc, $080a + call Mansion1Script_4430b + ld bc, $0d0d + jp Mansion1Script_4430b + +Mansion1Script_44304: ; 44304 (11:4304) + ld a, $2d + ld [$d09f], a + jr asm_44310 + +Mansion1Script_4430b: ; 4430b (11:430b) + ld a, $e + ld [$d09f], a +asm_44310: ; 44310 (11:4310) + ld a, $17 + call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + ret + +Func_44316: ; 44316 (11:4316) + ld a, [$c109] + cp $4 + ret nz + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $4 + ld [H_SPRITEHEIGHT], a + jp DisplayTextID + +Mansion1ScriptPointers: ; 44326 (11:4326) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Mansion1TextPointers: ; 4432c (11:432c) + dw Mansion1Text1 + dw Predef5CText + dw Predef5CText + dw Mansion1Text4 + +Mansion1TrainerHeaders: ; 44334 (11:4334) +Mansion1TrainerHeader0: ; 44334 (11:4334) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d798 ; flag's byte + dw Mansion1BattleText2 ; 0x434b TextBeforeBattle + dw Mansion1AfterBattleText2 ; 0x4355 TextAfterBattle + dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle + dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle + + db $ff + +Mansion1Text1: ; 44341 (11:4341) + db $08 ; asm + ld hl, Mansion1TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Mansion1BattleText2: ; 4434b (11:434b) + TX_FAR _Mansion1BattleText2 + db "@" + +Mansion1EndBattleText2: ; 44350 (11:4350) + TX_FAR _Mansion1EndBattleText2 + db "@" + +Mansion1AfterBattleText2: ; 44355 (11:4355) + TX_FAR _Mansion1AfterBattleText2 + db "@" + +Mansion1Text4: ; 4435a (11:435a) + db $8 + ld hl, MansionSwitchText + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_4438c ; 0x44368 $22 + ld a, $1 + ld [$cc3c], a + ld hl, $d126 + set 5, [hl] + ld hl, MansionSwitchPressedText + call PrintText + ld a, (SFX_02_57 - SFX_Headers_02) / 3 + call PlaySound + ld hl, $d796 + bit 0, [hl] + set 0, [hl] + jr z, .asm_44392 ; 0x44386 $a + res 0, [hl] + jr .asm_44392 ; 0x4438a $6 +.asm_4438c + ld hl, MansionSwitchNotPressedText + call PrintText +.asm_44392 + jp TextScriptEnd + +MansionSwitchText: ; 44395 (11:4395) + TX_FAR _MansionSwitchText + db "@" + +MansionSwitchPressedText: ; 4439a (11:439a) + TX_FAR _MansionSwitchPressedText + db "@" + +MansionSwitchNotPressedText: ; 4439f (11:439f) + TX_FAR _MansionSwitchNotPressedText + db "@" diff --git a/scripts/mansion2.asm b/scripts/mansion2.asm new file mode 100755 index 00000000..203a3a66 --- /dev/null +++ b/scripts/mansion2.asm @@ -0,0 +1,145 @@ +Mansion2Script: ; 51fd8 (14:5fd8) + call Mansion2Script_51fee + call EnableAutoTextBoxDrawing + ld hl, Mansion2TrainerHeaders + ld de, Mansion2ScriptPointers + ld a, [W_MANSION2CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_MANSION2CURSCRIPT], a + ret + +Mansion2Script_51fee: ; 51fee (14:5fee) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d796] + bit 0, a + jr nz, .asm_52016 + ld a, $e + ld bc, $204 + call Mansion2Script_5202f + ld a, $54 + ld bc, $409 + call Mansion2Script_5202f + ld a, $5f + ld bc, $b03 + call Mansion2Script_5202f + ret +.asm_52016 + ld a, $5f + ld bc, $204 + call Mansion2Script_5202f + ld a, $e + ld bc, $409 + call Mansion2Script_5202f + ld a, $e + ld bc, $b03 + call Mansion2Script_5202f + ret + +Mansion2Script_5202f: ; 5202f (14:602f) + ld [$d09f], a + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +Mansion2Script_52037: ; 52037 (14:6037) + ld a, [$c109] + cp $4 + ret nz + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $5 + ld [H_SPRITEHEIGHT], a + jp DisplayTextID + +Mansion2ScriptPointers: ; 52047 (14:6047) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Mansion2TextPointers: ; 5204d (14:604d) + dw Mansion2Text1 + dw Predef5CText + dw Mansion2Text3 + dw Mansion2Text4 + dw Mansion2Text5 + +Mansion2TrainerHeaders: ; 52057 (14:6057) +Mansion2TrainerHeader0: ; 52057 (14:6057) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d847 ; flag's byte + dw Mansion2BattleText1 ; 0x606e TextBeforeBattle + dw Mansion2AfterBattleText1 ; 0x6078 TextAfterBattle + dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle + dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle + + db $ff + +Mansion2Text1: ; 52064 (14:6064) + db $08 ; asm + ld hl, Mansion2TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Mansion2BattleText1: ; 5206e (14:606e) + TX_FAR _Mansion2BattleText1 + db "@" + +Mansion2EndBattleText1: ; 52073 (14:6073) + TX_FAR _Mansion2EndBattleText1 + db "@" + +Mansion2AfterBattleText1: ; 52078 (14:6078) + TX_FAR _Mansion2AfterBattleText1 + db "@" + +Mansion2Text3: ; 5207d (14:607d) + TX_FAR _Mansion2Text3 + db "@" + +Mansion2Text4: ; 52082 (14:6082) + TX_FAR _Mansion2Text4 + db "@" + +Mansion3Text6: ; 52087 (14:6087) +Mansion2Text5: ; 52087 (14:6087) + db $8 + ld hl, Mansion2Text_520c2 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_520b9 ; 0x52095 $22 + ld a, $1 + ld [$cc3c], a + ld hl, $d126 + set 5, [hl] + ld hl, Mansion2Text_520c7 + call PrintText + ld a, (SFX_02_57 - SFX_Headers_02) / 3 + call PlaySound + ld hl, $d796 + bit 0, [hl] + set 0, [hl] + jr z, .asm_520bf ; 0x520b3 $a + res 0, [hl] + jr .asm_520bf ; 0x520b7 $6 +.asm_520b9 + ld hl, Mansion2Text_520cc + call PrintText +.asm_520bf + jp TextScriptEnd + +Mansion2Text_520c2: ; 520c2 (14:60c2) + TX_FAR _Mansion2Text_520c2 + db "@" + +Mansion2Text_520c7: ; 520c7 (14:60c7) + TX_FAR _Mansion2Text_520c7 + db "@" + +Mansion2Text_520cc: ; 520cc (14:60cc) + TX_FAR _Mansion2Text_520cc + db "@" diff --git a/scripts/mansion3.asm b/scripts/mansion3.asm new file mode 100755 index 00000000..9ad9454a --- /dev/null +++ b/scripts/mansion3.asm @@ -0,0 +1,153 @@ +Mansion3Script: ; 521ee (14:61ee) + call Mansion3Script_52204 + call EnableAutoTextBoxDrawing + ld hl, Mansion3TrainerHeader0 + ld de, Mansion3ScriptPointers + ld a, [W_MANSION3CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_MANSION3CURSCRIPT], a + ret + +Mansion3Script_52204: ; 52204 (14:6204) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d796] + bit 0, a + jr nz, .asm_52224 + ld a, $e + ld bc, $207 + call Mansion2Script_5202f + ld a, $5f + ld bc, $507 + call Mansion2Script_5202f + ret +.asm_52224 + ld a, $5f + ld bc, $207 + call Mansion2Script_5202f + ld a, $e + ld bc, $507 + call Mansion2Script_5202f + ret + +Mansion3ScriptPointers: ; 52235 (14:6235) + dw Mansion3Script0 + dw Func_324c + dw EndTrainerBattle + +Mansion3Script0: ; 5223b (14:623b) + ld hl, CoordsData_52254 + call Mansion3Script_5225b + ld a, [$d71e] + and a + jp z, CheckFightingMapTrainers + cp $3 + ld a, $a5 + jr nz, .asm_52250 + ld a, $d6 +.asm_52250 + ld [$d71d], a + ret + +CoordsData_52254: ; 52254 (14:6254) + db $0E,$10 + db $0E,$11 + db $0E,$13 + db $FF + +Mansion3Script_5225b: ; 5225b (14:625b) + xor a + ld [$d71e], a + ld a, [$d72d] + bit 4, a + ret nz + call ArePlayerCoordsInArray + ret nc + ld a, [wWhichTrade] ; $cd3d + ld [$d71e], a + ld hl, $d72d + set 4, [hl] + ld hl, $d732 + set 4, [hl] + ret + +Func_5227a: ; 5227a (14:627a) + ld a, [$c109] + cp $4 + ret nz + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $6 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp DisplayTextID + +Mansion3TextPointers: ; 5228a (14:628a) + dw Mansion3Text1 + dw Mansion3Text2 + dw Predef5CText + dw Predef5CText + dw Mansion3Text5 + dw Mansion3Text6 + +Mansion3TrainerHeaders: ; 52296 (14:6296) +Mansion3TrainerHeader0: ; 52296 (14:6296) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d849 ; flag's byte + dw Mansion3BattleText1 ; 0x62c3 TextBeforeBattle + dw Mansion3AfterBattleText1 ; 0x62cd TextAfterBattle + dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle + dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle + +Mansion3TrainerHeader2: ; 522a2 (14:62a2) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d849 ; flag's byte + dw Mansion3BattleText2 ; 0x62d2 TextBeforeBattle + dw Mansion3AfterBattleText2 ; 0x62dc TextAfterBattle + dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle + dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle + + db $ff + +Mansion3Text1: ; 522af (14:62af) + db $08 ; asm + ld hl, Mansion3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Mansion3Text2: ; 522b9 (14:62b9) + db $08 ; asm + ld hl, Mansion3TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Mansion3BattleText1: ; 522c3 (14:62c3) + TX_FAR _Mansion3BattleText1 + db "@" + +Mansion3EndBattleText1: ; 522c8 (14:62c8) + TX_FAR _Mansion3EndBattleText1 + db "@" + +Mansion3AfterBattleText1: ; 522cd (14:62cd) + TX_FAR _Mansion3AfterBattleText1 + db "@" + +Mansion3BattleText2: ; 522d2 (14:62d2) + TX_FAR _Mansion3BattleText2 + db "@" + +Mansion3EndBattleText2: ; 522d7 (14:62d7) + TX_FAR _Mansion3EndBattleText2 + db "@" + +Mansion3AfterBattleText2: ; 522dc (14:62dc) + TX_FAR _Mansion3AfterBattleText2 + db "@" + +Mansion3Text5: ; 522e1 (14:62e1) + TX_FAR _Mansion3Text5 + db "@" diff --git a/scripts/mansion4.asm b/scripts/mansion4.asm new file mode 100755 index 00000000..78082ced --- /dev/null +++ b/scripts/mansion4.asm @@ -0,0 +1,132 @@ +Mansion4Script: ; 523b9 (14:63b9) + call Mansion4Script_523cf + call EnableAutoTextBoxDrawing + ld hl, Mansion4TrainerHeader0 + ld de, Mansion4ScriptPointers + ld a, [W_MANSION4CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_MANSION4CURSCRIPT], a + ret + +Mansion4Script_523cf: ; 523cf (14:63cf) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d796] + bit 0, a + jr nz, .asm_523ff + ld a, $e + ld bc, $80d + call Mansion2Script_5202f + ld a, $e + ld bc, $b06 + call Mansion2Script_5202f + ld a, $5f + ld bc, $304 + call Mansion2Script_5202f + ld a, $54 + ld bc, $808 + call Mansion2Script_5202f + ret +.asm_523ff + ld a, $2d + ld bc, $80d + call Mansion2Script_5202f + ld a, $5f + ld bc, $b06 + call Mansion2Script_5202f + ld a, $e + ld bc, $304 + call Mansion2Script_5202f + ld a, $e + ld bc, $808 + call Mansion2Script_5202f + ret + +Func_52420: ; 52420 (14:6420) + ld a, [$c109] + cp $4 + ret nz + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $9 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp DisplayTextID + +Mansion4ScriptPointers: ; 52430 (14:6430) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Mansion4TextPointers: ; 52436 (14:6436) + dw Mansion4Text1 + dw Mansion4Text2 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Mansion4Text7 + dw Predef5CText + dw Mansion3Text6 + +Mansion4TrainerHeaders: ; 52448 (14:6448) +Mansion4TrainerHeader0: ; 52448 (14:6448) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d84b ; flag's byte + dw Mansion4BattleText1 ; 0x6475 TextBeforeBattle + dw Mansion4AfterBattleText1 ; 0x647f TextAfterBattle + dw Mansion4EndBattleText1 ; 0x647a TextEndBattle + dw Mansion4EndBattleText1 ; 0x647a TextEndBattle + +Mansion4TrainerHeader2: ; 52454 (14:6454) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d84b ; flag's byte + dw Mansion4BattleText2 ; 0x6484 TextBeforeBattle + dw Mansion4AfterBattleText2 ; 0x648e TextAfterBattle + dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle + dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle + + db $ff + +Mansion4Text1: ; 52461 (14:6461) + db $08 ; asm + ld hl, Mansion4TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Mansion4Text2: ; 5246b (14:646b) + db $08 ; asm + ld hl, Mansion4TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Mansion4BattleText1: ; 52475 (14:6475) + TX_FAR _Mansion4BattleText1 + db "@" + +Mansion4EndBattleText1: ; 5247a (14:647a) + TX_FAR _Mansion4EndBattleText1 + db "@" + +Mansion4AfterBattleText1: ; 5247f (14:647f) + TX_FAR _Mansion4AfterBattleText1 + db "@" + +Mansion4BattleText2: ; 52484 (14:6484) + TX_FAR _Mansion4BattleText2 + db "@" + +Mansion4EndBattleText2: ; 52489 (14:6489) + TX_FAR _Mansion4EndBattleText2 + db "@" + +Mansion4AfterBattleText2: ; 5248e (14:648e) + TX_FAR _Mansion4AfterBattleText2 + db "@" + +Mansion4Text7: ; 52493 (14:6493) + TX_FAR _Mansion4Text7 + db "@" diff --git a/scripts/mtmoon1.asm b/scripts/mtmoon1.asm new file mode 100755 index 00000000..1954391c --- /dev/null +++ b/scripts/mtmoon1.asm @@ -0,0 +1,225 @@ +MtMoon1Script: ; 499c8 (12:59c8) + call EnableAutoTextBoxDrawing + ld hl, MtMoon1TrainerHeader0 + ld de, MtMoon1ScriptPointers + ld a, [W_MTMOON1CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_MTMOON1CURSCRIPT], a + ret + +MtMoon1ScriptPointers: ; 499db (12:59db) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +MtMoon1TextPointers: ; 499e1 (12:59e1) + dw MtMoon1Text1 + dw MtMoon1Text2 + dw MtMoon1Text3 + dw MtMoon1Text4 + dw MtMoon1Text5 + dw MtMoon1Text6 + dw MtMoon1Text7 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw MtMoon1Text14 + +MtMoon1TrainerHeaders: ; 499fd (12:59fd) +MtMoon1TrainerHeader0: ; 499fd (12:59fd) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7f5 ; flag's byte + dw MtMoon1BattleText2 ; 0x5a98 TextBeforeBattle + dw MtMoon1AfterBattleText2 ; 0x5aa2 TextAfterBattle + dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle + dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle + +MtMoon1TrainerHeader2: ; 49a09 (12:5a09) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f5 ; flag's byte + dw MtMoon1BattleText3 ; 0x5aa7 TextBeforeBattle + dw MtMoon1AfterBattleText3 ; 0x5ab1 TextAfterBattle + dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle + dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle + +MtMoon1TrainerHeader3: ; 49a15 (12:5a15) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f5 ; flag's byte + dw MtMoon1BattleText4 ; 0x5ab6 TextBeforeBattle + dw MtMoon1AfterBattleText4 ; 0x5ac0 TextAfterBattle + dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle + dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle + +MtMoon1TrainerHeader4: ; 49a21 (12:5a21) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f5 ; flag's byte + dw MtMoon1BattleText5 ; 0x5ac5 TextBeforeBattle + dw MtMoon1AfterBattleText5 ; 0x5acf TextAfterBattle + dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle + dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle + +MtMoon1TrainerHeader5: ; 49a2d (12:5a2d) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f5 ; flag's byte + dw MtMoon1BattleText6 ; 0x5ad4 TextBeforeBattle + dw MtMoon1AfterBattleText6 ; 0x5ade TextAfterBattle + dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle + dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle + +MtMoon1TrainerHeader6: ; 49a39 (12:5a39) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f5 ; flag's byte + dw MtMoon1BattleText7 ; 0x5ae3 TextBeforeBattle + dw MtMoon1AfterBattleText7 ; 0x5aed TextAfterBattle + dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle + dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle + +MtMoon1TrainerHeader7: ; 49a45 (12:5a45) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f5 ; flag's byte + dw MtMoon1BattleText8 ; 0x5af2 TextBeforeBattle + dw MtMoon1AfterBattleText8 ; 0x5afc TextAfterBattle + dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle + dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle + + db $ff + +MtMoon1Text1: ; 49a52 (12:5a52) + db $08 ; asm + ld hl, MtMoon1TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +MtMoon1Text2: ; 49a5c (12:5a5c) + db $08 ; asm + ld hl, MtMoon1TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +MtMoon1Text3: ; 49a66 (12:5a66) + db $08 ; asm + ld hl, MtMoon1TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +MtMoon1Text4: ; 49a70 (12:5a70) + db $08 ; asm + ld hl, MtMoon1TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +MtMoon1Text5: ; 49a7a (12:5a7a) + db $08 ; asm + ld hl, MtMoon1TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +MtMoon1Text6: ; 49a84 (12:5a84) + db $08 ; asm + ld hl, MtMoon1TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +MtMoon1Text7: ; 49a8e (12:5a8e) + db $08 ; asm + ld hl, MtMoon1TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +MtMoon1BattleText2: ; 49a98 (12:5a98) + TX_FAR _MtMoon1BattleText2 + db "@" + +MtMoon1EndBattleText2: ; 49a9d (12:5a9d) + TX_FAR _MtMoon1EndBattleText2 + db "@" + +MtMoon1AfterBattleText2: ; 49aa2 (12:5aa2) + TX_FAR _MtMoon1AfterBattleText2 + db "@" + +MtMoon1BattleText3: ; 49aa7 (12:5aa7) + TX_FAR _MtMoon1BattleText3 + db "@" + +MtMoon1EndBattleText3: ; 49aac (12:5aac) + TX_FAR _MtMoon1EndBattleText3 + db "@" + +MtMoon1AfterBattleText3: ; 49ab1 (12:5ab1) + TX_FAR _MtMoon1AfterBattleText3 + db "@" + +MtMoon1BattleText4: ; 49ab6 (12:5ab6) + TX_FAR _MtMoon1BattleText4 + db "@" + +MtMoon1EndBattleText4: ; 49abb (12:5abb) + TX_FAR _MtMoon1EndBattleText4 + db "@" + +MtMoon1AfterBattleText4: ; 49ac0 (12:5ac0) + TX_FAR _MtMoon1AfterBattleText4 + db "@" + +MtMoon1BattleText5: ; 49ac5 (12:5ac5) + TX_FAR _MtMoon1BattleText5 + db "@" + +MtMoon1EndBattleText5: ; 49aca (12:5aca) + TX_FAR _MtMoon1EndBattleText5 + db "@" + +MtMoon1AfterBattleText5: ; 49acf (12:5acf) + TX_FAR _MtMoon1AfterBattleText5 + db "@" + +MtMoon1BattleText6: ; 49ad4 (12:5ad4) + TX_FAR _MtMoon1BattleText6 + db "@" + +MtMoon1EndBattleText6: ; 49ad9 (12:5ad9) + TX_FAR _MtMoon1EndBattleText6 + db "@" + +MtMoon1AfterBattleText6: ; 49ade (12:5ade) + TX_FAR _MtMoon1AfterBattleText6 + db "@" + +MtMoon1BattleText7: ; 49ae3 (12:5ae3) + TX_FAR _MtMoon1BattleText7 + db "@" + +MtMoon1EndBattleText7: ; 49ae8 (12:5ae8) + TX_FAR _MtMoon1EndBattleText7 + db "@" + +MtMoon1AfterBattleText7: ; 49aed (12:5aed) + TX_FAR _MtMoon1AfterBattleText7 + db "@" + +MtMoon1BattleText8: ; 49af2 (12:5af2) + TX_FAR _MtMoon1BattleText8 + db "@" + +MtMoon1EndBattleText8: ; 49af7 (12:5af7) + TX_FAR _MtMoon1EndBattleText8 + db "@" + +MtMoon1AfterBattleText8: ; 49afc (12:5afc) + TX_FAR _MtMoon1AfterBattleText8 + db "@" + +MtMoon1Text14: ; 49b01 (12:5b01) + TX_FAR _MtMoon1Text14 + db "@" diff --git a/scripts/mtmoon2.asm b/scripts/mtmoon2.asm new file mode 100755 index 00000000..03e9d9cb --- /dev/null +++ b/scripts/mtmoon2.asm @@ -0,0 +1,10 @@ +MtMoon2Script: ; 51a42 (14:5a42) + call EnableAutoTextBoxDrawing + ret + +MtMoon2TextPointers: ; 51a46 (14:5a46) + dw MtMoonText1 + +MtMoonText1: ; 51a48 (14:5a48) + TX_FAR _MtMoonText1 + db "@" diff --git a/scripts/mtmoon3.asm b/scripts/mtmoon3.asm new file mode 100755 index 00000000..669d6fe4 --- /dev/null +++ b/scripts/mtmoon3.asm @@ -0,0 +1,414 @@ +MtMoon3Script: ; 49d0b (12:5d0b) + call EnableAutoTextBoxDrawing + ld hl, MtMoon3TrainerHeader0 ; $5e48 + ld de, MtMoon3ScriptPointers + ld a, [W_MTMOON3CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_MTMOON3CURSCRIPT], a + ld a, [$d7f6] + bit 1, a + ret z + ld hl, CoordsData_49d37 + call ArePlayerCoordsInArray + jr nc, .asm_49d31 ; 0x49d29 $6 + ld hl, $d72e + set 4, [hl] + ret +.asm_49d31 + ld hl, $d72e + res 4, [hl] + ret + +CoordsData_49d37: ; 49d37 (12:5d37) + db $05,$0B + db $05,$0C + db $05,$0D + db $05,$0E + db $06,$0B + db $06,$0C + db $06,$0D + db $06,$0E + db $07,$0B + db $07,$0C + db $07,$0D + db $07,$0E + db $08,$0B + db $08,$0C + db $08,$0D + db $08,$0E + db $FF + +MtMoon3Script_49d58: ; 49d58 (12:5d58) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_MTMOON3CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +MtMoon3ScriptPointers: ; 49d63 (12:5d63) + dw MtMoon3Script0 + dw Func_324c + dw EndTrainerBattle + dw MtMoon3Script3 + dw MtMoon3Script4 + dw MtMoon3Script5 + +MtMoon3Script0: ; 49d6f (12:5d6f) + ld a, [$d7f6] + bit 1, a + jp nz, MtMoon3Script_49d91 + ld a, [W_YCOORD] ; $d361 + cp $8 + jp nz, MtMoon3Script_49d91 + ld a, [W_XCOORD] ; $d362 + cp $d + jp nz, MtMoon3Script_49d91 + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp DisplayTextID + +MtMoon3Script_49d91: ; 49d91 (12:5d91) + ld a, [$d7f6] + and $c0 + jp z, CheckFightingMapTrainers + ret + +MtMoon3Script3: ; 49d9a (12:5d9a) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, MtMoon3Script_49d58 + call UpdateSprites + call Delay3 + ld hl, $d7f6 + set 1, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_MTMOON3CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +MtMoon3Script4: ; 49dba (12:5dba) + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call SetSpriteMovementBytesToFF + ld hl, CoordsData_49dea + call ArePlayerCoordsInArray + jr c, .asm_49dd7 + ld hl, CoordsData_49df1 + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + ld de, MovementData_49df9 + jr .asm_49dda +.asm_49dd7 + ld de, MovementData_49df8 +.asm_49dda + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call MoveSprite + ld a, $5 + ld [W_MTMOON3CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CoordsData_49dea: ; 49dea (12:5dea) + db $07,$0C + db $06,$0B + db $05,$0C + db $FF + +CoordsData_49df1: ; 49df1 (12:5df1) + db $07,$0D + db $06,$0E + db $05,$0E + db $FF + +MovementData_49df8: ; 49df8 (12:5df8) + db $C0 + +MovementData_49df9: ; 49df9 (12:5df9) + db $40,$FF + +MtMoon3Script5: ; 49dfb (12:5dfb) + ld a, [$d730] + bit 0, a + ret nz + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $1 + ld [$cc3c], a + ld a, $a + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, [$d7f6] + bit 6, a + jr z, .asm_49e1d + ld a, $6e + jr .asm_49e1f +.asm_49e1d + ld a, $6d +.asm_49e1f + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_MTMOON3CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +MtMoon3TextPointers: ; 49e34 (12:5e34) + dw MtMoon3Text1 + dw MtMoon3Text2 + dw MtMoon3Text3 + dw MtMoon3Text4 + dw MtMoon3Text5 + dw MtMoon3Text6 + dw MtMoon3Text7 + dw Predef5CText + dw Predef5CText + dw MtMoon3Text_49f99 + +MtMoon3TrainerHeaders: ; 49e48 (12:5e48) +MtMoon3TrainerHeader0: ; 49e48 (12:5e48) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7f6 ; flag's byte + dw MtMoon3BattleText2 ; 0x5f9f TextBeforeBattle + dw MtMoon3AfterBattleText2 ; 0x5fa9 TextAfterBattle + dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle + dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle + +MtMoon3TrainerHeader2: ; 49e54 (12:5e54) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7f6 ; flag's byte + dw MtMoon3BattleText3 ; 0x5fae TextBeforeBattle + dw MtMoon3AfterBattleText3 ; 0x5fb8 TextAfterBattle + dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle + dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle + +MtMoon3TrainerHeader3: ; 49e60 (12:5e60) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7f6 ; flag's byte + dw MtMoon3BattleText4 ; 0x5fbd TextBeforeBattle + dw MtMoon3AfterBattleText4 ; 0x5fc7 TextAfterBattle + dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle + dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle + +MtMoon3TrainerHeader4: ; 49e6c (12:5e6c) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7f6 ; flag's byte + dw MtMoon3BattleText5 ; 0x5fcc TextBeforeBattle + dw MtMoon3AfterBattleText5 ; 0x5fd6 TextAfterBattle + dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle + dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle + + db $ff + +MtMoon3Text1: ; 49e79 (12:5e79) + db $08 ; asm + ld a, [$d7f6] + bit 1, a + jr z, .asm_be1e0 ; 0x49e7f + and $c0 + jr nz, .asm_f8cd4 ; 0x49e83 + ld hl, MtMoon3Text_49f8f + call PrintText + jr .asm_f1fba ; 0x49e8b +.asm_be1e0 ; 0x49e8d + ld hl, MtMoon3Text_49f85 + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, MtMoon3Text_49f8a + ld de, MtMoon3Text_49f8a + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $3 + ld [W_MTMOON3CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + jr .asm_f1fba ; 0x49eb6 +.asm_f8cd4 ; 0x49eb8 + ld hl, MtMoon3Text_49f94 + call PrintText +.asm_f1fba ; 0x49ebe + jp TextScriptEnd + +MtMoon3Text2: ; 49ec1 (12:5ec1) + db $08 ; asm + ld hl, MtMoon3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +MtMoon3Text3: ; 49ecb (12:5ecb) + db $08 ; asm + ld hl, MtMoon3TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +MtMoon3Text4: ; 49ed5 (12:5ed5) + db $08 ; asm + ld hl, MtMoon3TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +MtMoon3Text5: ; 49edf (12:5edf) + db $08 ; asm + ld hl, MtMoon3TrainerHeader4 ; $5e6c + call TalkToTrainer + jp TextScriptEnd + +MtMoon3Text6: ; 49ee9 (12:5ee9) + db $08 ; asm + ld a, $1 + ld [$cc3c], a + ld hl, MtMoon3Text_49f24 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_1fa5e ; 0x49efc + ld bc,(DOME_FOSSIL << 8) | 1 + call GiveItem + jp nc, MtMoon3Script_49f76 + call MtMoon3Script_49f69 + ld a, $6d + ld [$cc4d], a + ld a, $11 + call Predef + ld hl, $d7f6 + set 6, [hl] + ld a, $4 + ld [W_MTMOON3CURSCRIPT], a + ld [W_CURMAPSCRIPT], a +.asm_1fa5e ; 0x49f21 + jp TextScriptEnd + +MtMoon3Text_49f24: ; 49f24 (12:5f24) + TX_FAR _MtMoon3Text_49f24 + db "@" + +MtMoon3Text7: ; 49f29 (12:5f29) + db $08 ; asm + ld a, $1 + ld [$cc3c], a + ld hl, MtMoon3Text_49f64 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_8e988 ; 0x49f3c + ld bc, (HELIX_FOSSIL << 8) | 1 + call GiveItem + jp nc, MtMoon3Script_49f76 + call MtMoon3Script_49f69 + ld a, $6e + ld [$cc4d], a + ld a, $11 + call Predef + ld hl, $d7f6 + set 7, [hl] + ld a, $4 + ld [W_MTMOON3CURSCRIPT], a + ld [W_CURMAPSCRIPT], a +.asm_8e988 ; 0x49f61 + jp TextScriptEnd + +MtMoon3Text_49f64: ; 49f64 (12:5f64) + TX_FAR _MtMoon3Text_49f64 + db "@" + +MtMoon3Script_49f69: ; 49f69 (12:5f69) + ld hl, MtMoon3Text_49f6f + jp PrintText + +MtMoon3Text_49f6f: ; 49f6f (12:5f6f) + TX_FAR _MtMoon3Text_49f6f ; 0x80995 + db $11, $d, "@" + +MtMoon3Script_49f76: ; 49f76 (12:5f76) + ld hl, MtMoon3Text_49f7f + call PrintText + jp TextScriptEnd + +MtMoon3Text_49f7f: ; 49f7f (12:5f7f) + TX_FAR _MtMoon3Text_49f7f ; 0x809a8 + db $d, "@" + +MtMoon3Text_49f85: ; 49f85 (12:5f85) + TX_FAR _MtMoon3Text_49f85 + db "@" + +MtMoon3Text_49f8a: ; 49f8a (12:5f8a) + TX_FAR _MtMoon3Text_49f8a + db "@" + +MtMoon3Text_49f8f: ; 49f8f (12:5f8f) + TX_FAR _MtMoon3Text_49f8f + db "@" + +MtMoon3Text_49f94: ; 49f94 (12:5f94) + TX_FAR _MtMoon3Text_49f94 + db "@" + +MtMoon3Text_49f99: ; 49f99 (12:5f99) + TX_FAR _MtMoon3Text_49f99 + db $11, "@" + +MtMoon3BattleText2: ; 49f9f (12:5f9f) + TX_FAR _MtMoon3BattleText2 + db "@" + +MtMoon3EndBattleText2: ; 49fa4 (12:5fa4) + TX_FAR _MtMoon3EndBattleText2 + db "@" + +MtMoon3AfterBattleText2: ; 49fa9 (12:5fa9) + TX_FAR _MtMoon3AfterBattleText2 + db "@" + +MtMoon3BattleText3: ; 49fae (12:5fae) + TX_FAR _MtMoon3BattleText3 + db "@" + +MtMoon3EndBattleText3: ; 49fb3 (12:5fb3) + TX_FAR _MtMoon3EndBattleText3 + db "@" + +MtMoon3AfterBattleText3: ; 49fb8 (12:5fb8) + TX_FAR _MtMoon3AfterBattleText3 + db "@" + +MtMoon3BattleText4: ; 49fbd (12:5fbd) + TX_FAR _MtMoon3BattleText4 + db "@" + +MtMoon3EndBattleText4: ; 49fc2 (12:5fc2) + TX_FAR _MtMoon3EndBattleText4 + db "@" + +MtMoon3AfterBattleText4: ; 49fc7 (12:5fc7) + TX_FAR _MtMoon3AfterBattleText4 + db "@" + +MtMoon3BattleText5: ; 49fcc (12:5fcc) + TX_FAR _MtMoon3BattleText5 + db "@" + +MtMoon3EndBattleText5: ; 49fd1 (12:5fd1) + TX_FAR _MtMoon3EndBattleText5 + db "@" + +MtMoon3AfterBattleText5: ; 49fd6 (12:5fd6) + TX_FAR _MtMoon3AfterBattleText5 + db "@" diff --git a/scripts/mtmoonpokecenter.asm b/scripts/mtmoonpokecenter.asm new file mode 100755 index 00000000..01272c30 --- /dev/null +++ b/scripts/mtmoonpokecenter.asm @@ -0,0 +1,97 @@ +MtMoonPokecenterScript: ; 492cf (12:52cf) + call Func_22fa + jp EnableAutoTextBoxDrawing + +MtMoonPokecenterTextPointers: ; 492d5 (12:52d5) + dw MtMoonPokecenterText1 + dw MtMoonPokecenterText2 + dw MtMoonPokecenterText3 + dw MtMoonPokecenterText4 + dw MtMoonPokecenterText5 + dw MtMoonPokecenterText6 + +MtMoonPokecenterText1: ; 492e1 (12:52e1) + db $ff + +MtMoonPokecenterText2: ; 492e2 (12:52e2) + TX_FAR _MtMoonPokecenterText1 + db "@" + +MtMoonPokecenterText3: ; 492e7 (12:52e7) + TX_FAR _MtMoonPokecenterText3 + db "@" + +MtMoonPokecenterText4: ; 492ec (12:52ec) + db $08 ; asm + ld a, [$d7c6] + add a + jp c, .asm_49353 + ld hl, MtMoonPokecenterText_4935c + call PrintText + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + call YesNoChoice + ld a, [$cc26] + and a + jp nz, .asm_4934e + ldh [$9f], a + ldh [$a1], a + ld a, $5 + ldh [$a0], a + call HasEnoughMoney + jr nc, .asm_faa09 ; 0x49317 + ld hl, MtMoonPokecenterText_49366 + jr .asm_49356 ; 0x4931c +.asm_faa09 ; 0x4931e + ld bc,(MAGIKARP << 8) | 5 + call GivePokemon + jr nc, .asm_49359 ; 0x49324 + xor a + ld [wWhichTrade], a + ld [$cd3f], a + ld a, $5 + ld [$cd3e], a + ld hl, $cd3f + ld de, $d349 + ld c, $3 + ld a, $c + call Predef + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + ld hl, $d7c6 + set 7, [hl] + jr .asm_49359 ; 0x4934c +.asm_4934e ; 0x4934e + ld hl, MtMoonPokecenterText_49361 + jr .asm_49356 ; 0x49351 +.asm_49353 ; 0x49353 + ld hl, MtMoonPokecenterText_4936b +.asm_49356 ; 0x49356 + call PrintText +.asm_49359 ; 0x49359 + jp TextScriptEnd + +MtMoonPokecenterText_4935c: ; 4935c (12:535c) + TX_FAR _MtMoonPokecenterText_4935c + db "@" + +MtMoonPokecenterText_49361: ; 49361 (12:5361) + TX_FAR _MtMoonPokecenterText_49361 + db "@" + +MtMoonPokecenterText_49366: ; 49366 (12:5366) + TX_FAR _MtMoonPokecenterText_49366 + db "@" + +MtMoonPokecenterText_4936b: ; 4936b (12:536b) + TX_FAR _MtMoonPokecenterText_4936b + db "@" + +MtMoonPokecenterText5: ; 49370 (12:5370) + TX_FAR _MtMoonPokecenterText5 + db "@" + +MtMoonPokecenterText6: ; 49375 (12:5375) + db $f6 diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm new file mode 100755 index 00000000..04261346 --- /dev/null +++ b/scripts/museum1f.asm @@ -0,0 +1,253 @@ +Museum1FScript: ; 5c0f7 (17:40f7) + ld a, $1 + ld [$cf0c], a + xor a + ld [$cc3c], a + ld hl, Museum1FScriptPointers + ld a, [W_MUSEUM1FCURSCRIPT] + jp CallFunctionInTable + +Museum1FScriptPointers: ; 5c109 (17:4109) + dw Museum1FScript0 + dw Museum1FScript1 + +Museum1FScript0: ; 5c10d (17:410d) + ld a, [W_YCOORD] + cp $4 + ret nz + ld a, [W_XCOORD] + cp $9 + jr z, .asm_5c120 ; 0x5c118 $6 + ld a, [W_XCOORD] + cp $a + ret nz +.asm_5c120 + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $1 + ld [$ff8c], a + jp DisplayTextID + +Museum1FScript1: ; 5c12a (17:412a) + ret + +Museum1FTextPointers: ; 5c12b (17:412b) + dw Museum1FText1 + dw Museum1FText2 + dw Museum1FText3 + dw Museum1FText4 + dw Museum1FText5 + +Museum1FText1: ; 5c135 (17:4135) + db $8 + ld a, [W_YCOORD] + cp $4 + jr nz, .asm_8774b + ld a, [W_XCOORD] + cp $d + jp z, Museum1FScript_5c1f9 + jr .asm_b8709 +.asm_8774b + cp $3 + jr nz, .asm_d49e7 + ld a, [W_XCOORD] + cp $c + jp z, Museum1FScript_5c1f9 +.asm_d49e7 + ld a, [$d754] + bit 0, a + jr nz, .asm_31a16 + ld hl, Museum1FText_5c23d + call PrintText + jp asm_d1145 +.asm_b8709 + ld a, [$d754] + bit 0, a + jr z, .asm_3ded4 +.asm_31a16 + ld hl, Museum1FText_5c242 + call PrintText + jp asm_d1145 +.asm_3ded4 + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld hl, Museum1FText_5c21f + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_de133 + xor a + ld [$ff9f], a + ld [$ffa0], a + ld a, $50 + ld [$ffa1], a + call HasEnoughMoney + jr nc, .asm_0f3e3 + ld hl, Museum1FText_5c229 + call PrintText + jp .asm_de133 +.asm_0f3e3 + ld hl, Museum1FText_5c224 + call PrintText + ld hl, $d754 + set 0, [hl] + xor a + ld [$cd3d], a + ld [$cd3e], a + ld a, $50 + ld [$cd3f], a + ld hl, $cd3f + ld de, $d349 + ld c, $3 + ld a, $c + call Predef + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + ld a, (SFX_02_5a - SFX_Headers_02) / 3 + call PlaySoundWaitForCurrent + call WaitForSoundToFinish + jr .asm_0b094 +.asm_de133 + ld hl, Museum1FText_5c21a ; $421a + call PrintText + ld a, $1 + ld [$cd38], a + ld a, $80 + ld [$ccd3], a + call Func_3486 + call UpdateSprites + jr asm_d1145 +.asm_0b094 + ld a, $1 + ld [W_MUSEUM1FCURSCRIPT], a + jr asm_d1145 + +Museum1FScript_5c1f9: ; 5c1f9 (17:41f9) + ld hl, Museum1FText_5c22e + call PrintText + call YesNoChoice + ld a, [$cc26] + cp $0 + jr nz, .asm_d1144 + ld hl, Museum1FText_5c233 + call PrintText + jr asm_d1145 +.asm_d1144 + ld hl, Museum1FText_5c238 + call PrintText +asm_d1145: ; 5c217 (17:4217) + jp TextScriptEnd + +Museum1FText_5c21a: ; 5c21a (17:421a) + TX_FAR _Museum1FText_5c21a + db "@" + +Museum1FText_5c21f: ; 5c21f (17:421f) + TX_FAR _Museum1FText_5c21f + db "@" + +Museum1FText_5c224: ; 5c224 (17:4224) + TX_FAR _Museum1FText_5c224 + db "@" + +Museum1FText_5c229: ; 5c229 (17:4229) + TX_FAR _Museum1FText_5c229 + db "@" + +Museum1FText_5c22e: ; 5c22e (17:422e) + TX_FAR _Museum1FText_5c22e + db "@" + +Museum1FText_5c233: ; 5c233 (17:4233) + TX_FAR _Museum1FText_5c233 + db "@" + +Museum1FText_5c238: ; 5c238 (17:4238) + TX_FAR _Museum1FText_5c238 + db "@" + +Museum1FText_5c23d: ; 5c23d (17:423d) + TX_FAR _Museum1FText_5c23d + db "@" + +Museum1FText_5c242: ; 5c242 (17:4242) + TX_FAR _Museum1FText_5c242 + db "@" + +Museum1FText2: ; 5c247 (17:4247) + db $08 ; asm + ld hl, Museum1FText_5c251 + call PrintText + jp TextScriptEnd + +Museum1FText_5c251: ; 5c251 (17:4251) + TX_FAR _Museum1FText_5c251 + db "@" + +Museum1FText3: ; 5c256 (17:4256) + db $08 ; asm + ld a, [$d754] + bit 1, a + jr nz, .asm_16599 ; 0x5c25c + ld hl, Museum1FText_5c28e + call PrintText + ld bc, (OLD_AMBER << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, $d754 + set 1, [hl] + ld a, $34 + ld [$cc4d], a + ld a, $11 + call Predef + ld hl, ReceivedOldAmberText + jr .asm_52e0f ; 0x5c27e +.BagFull + ld hl, Museum1FText_5c29e + jr .asm_52e0f ; 0x5c283 +.asm_16599 ; 0x5c285 + ld hl, Museum1FText_5c299 +.asm_52e0f ; 0x5c288 + call PrintText + jp TextScriptEnd + +Museum1FText_5c28e: ; 5c28e (17:428e) + TX_FAR _Museum1FText_5c28e + db "@" + +ReceivedOldAmberText: ; 5c293 (17:4293) + TX_FAR _ReceivedOldAmberText + db $0B, "@" + +Museum1FText_5c299: ; 5c299 (17:4299) + TX_FAR _Museum1FText_5c299 + db "@" + +Museum1FText_5c29e: ; 5c29e (17:429e) + TX_FAR _Museum1FText_5c29e + db "@" + +Museum1FText4: ; 5c2a3 (17:42a3) + db $08 ; asm + ld hl, Museum1FText_5c2ad + call PrintText + jp TextScriptEnd + +Museum1FText_5c2ad: ; 5c2ad (17:42ad) + TX_FAR _Museum1FText_5c2ad + db "@" + +Museum1FText5: ; 5c2b2 (17:42b2) + db $08 ; asm + ld hl, Museum1FText_5c2bc + call PrintText + jp TextScriptEnd + +Museum1FText_5c2bc: ; 5c2bc (17:42bc) + TX_FAR _Museum1FText_5c2bc + db "@" diff --git a/scripts/museum2f.asm b/scripts/museum2f.asm new file mode 100755 index 00000000..0f8a63ec --- /dev/null +++ b/scripts/museum2f.asm @@ -0,0 +1,39 @@ +Museum2FScript: ; 5c317 (17:4317) + jp EnableAutoTextBoxDrawing + +Museum2FTextPointers: ; 5c31a (17:431a) + dw Museum2FText1 + dw Museum2FText2 + dw Museum2FText3 + dw Museum2FText4 + dw Museum2FText5 + dw Museum2FText6 + dw Museum2FText7 + +Museum2FText1: ; 5c328 (17:4328) + TX_FAR _Museum2FText1 + db "@" + +Museum2FText2: ; 5c32d (17:432d) + TX_FAR _Museum2FText2 + db "@" + +Museum2FText3: ; 5c332 (17:4332) + TX_FAR _Museum2FText3 + db "@" + +Museum2FText4: ; 5c337 (17:4337) + TX_FAR _Museum2FText4 + db "@" + +Museum2FText5: ; 5c33c (17:433c) + TX_FAR _Museum2FText5 + db "@" + +Museum2FText6: ; 5c341 (17:4341) + TX_FAR _Museum2FText6 + db "@" + +Museum2FText7: ; 5c346 (17:4346) + TX_FAR _Museum2FText7 + db "@" diff --git a/scripts/namerater.asm b/scripts/namerater.asm new file mode 100755 index 00000000..73113b9d --- /dev/null +++ b/scripts/namerater.asm @@ -0,0 +1,109 @@ +NameRaterScript: ; 1da12 (7:5a12) + jp EnableAutoTextBoxDrawing + +NameRaterScript_1da15: ; 1da15 (7:5a15) + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + ret + +NameRaterScript_1da20: ; 1da20 (7:5a20) + ld hl, W_PARTYMON1OT + ld bc, $000b + ld a, [wWhichPokemon] + call AddNTimes + ld de, W_PLAYERNAME + ld c, $b + call .asm_1da47 + jr c, .asm_1da52 ; 0x1da34 $1c + ld hl, $d177 + ld bc, $002c + ld a, [wWhichPokemon] + call AddNTimes + ld de, $d359 + ld c, $2 +.asm_1da47 + ld a, [de] + cp [hl] + jr nz, .asm_1da52 ; 0x1da49 $7 + inc hl + inc de + dec c + jr nz, .asm_1da47 ; 0x1da4e $f7 + and a + ret +.asm_1da52 + scf + ret + +NameRaterTextPointers: ; 1da54 (7:5a54) + dw NameRaterText1 + +NameRaterText1: ; 1da56 (7:5a56) + db $8 + call SaveScreenTilesToBuffer2 + ld hl, NameRaterText_1dab3 + call NameRaterScript_1da15 + jr nz, .asm_1daae ; 0x1da60 $4c + ld hl, NameRaterText_1dab8 + call PrintText + xor a + ld [$d07d], a + ld [$cfcb], a + ld [$cc35], a + call DisplayPartyMenu + push af + call GBPalWhiteOutWithDelay3 + call Func_3dbe + call LoadGBPal + pop af + jr c, .asm_1daae ; 0x1da80 $2c + call GetPartyMonName2 + call NameRaterScript_1da20 + ld hl, NameRaterText_1dad1 + jr c, .asm_1daa8 ; 0x1da8b $1b + ld hl, NameRaterText_1dabd + call NameRaterScript_1da15 + jr nz, .asm_1daae ; 0x1da93 $19 + ld hl, NameRaterText_1dac2 + call PrintText + ld b, BANK(Func_655c) + ld hl, Func_655c + call Bankswitch + jr c, .asm_1daae ; 0x1daa3 $9 + ld hl, NameRaterText_1dac7 +.asm_1daa8 + call PrintText + jp TextScriptEnd +.asm_1daae + ld hl, NameRaterText_1dacc + jr .asm_1daa8 ; 0x1dab1 $f5 + +NameRaterText_1dab3: ; 1dab3 (7:5ab3) + TX_FAR _NameRaterText_1dab3 + db "@" + +NameRaterText_1dab8: ; 1dab8 (7:5ab8) + TX_FAR _NameRaterText_1dab8 + db "@" + +NameRaterText_1dabd: ; 1dabd (7:5abd) + TX_FAR _NameRaterText_1dabd + db "@" + +NameRaterText_1dac2: ; 1dac2 (7:5ac2) + TX_FAR _NameRaterText_1dac2 + db "@" + +NameRaterText_1dac7: ; 1dac7 (7:5ac7) + TX_FAR _NameRaterText_1dac7 + db "@" + +NameRaterText_1dacc: ; 1dacc (7:5acc) + TX_FAR _NameRaterText_1dacc + db "@" + +NameRaterText_1dad1: ; 1dad1 (7:5ad1) + TX_FAR _NameRaterText_1dad1 + db "@" diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm new file mode 100755 index 00000000..01b9c62b --- /dev/null +++ b/scripts/oakslab.asm @@ -0,0 +1,1244 @@ +OaksLabScript: ; 1cb0e (7:4b0e) + ld a, [$d74b] + bit 6, a + call nz, OaksLabScript_1d076 + ld a, $1 + ld [$cf0c], a + xor a + ld [$cc3c], a + ld hl, OaksLabScriptPointers + ld a, [W_OAKSLABCURSCRIPT] + jp CallFunctionInTable + +OaksLabScriptPointers: ; 1cb28 (7:4b28) + dw OaksLabScript0 + dw OaksLabScript1 + dw OaksLabScript2 + dw OaksLabScript3 + dw OaksLabScript4 + dw OaksLabScript5 + dw OaksLabScript6 + dw OaksLabScript7 + dw OaksLabScript8 + dw OaksLabScript9 + dw OaksLabScript10 + dw OaksLabScript11 + dw OaksLabScript12 + dw OaksLabScript13 + dw OaksLabScript14 + dw OaksLabScript15 + dw OaksLabScript16 + dw OaksLabScript17 + dw OaksLabScript18 + +OaksLabScript0: ; 1cb4e (7:4b4e) + ld a, [$d74b] + bit 7, a + ret z + ld a, [$cf10] + and a + ret nz + ld a, $31 + ld [$cc4d], a + ld a, $15 + call Predef + ld hl, $d72e + res 4, [hl] + + ld a, $1 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript1: ; 1cb6e (7:4b6e) + ld a, $8 + ld [$ff8c], a + ld de, OakEntryMovement + call MoveSprite + + ld a, $2 + ld [W_OAKSLABCURSCRIPT], a + ret + +OakEntryMovement: ; 1cb7e (7:4b7e) + db $40,$40,$40,$FF + +OaksLabScript2: ; 1cb82 (7:4b82) + ld a, [$d730] + bit 0, a + ret nz + ld a, $31 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $2e + ld [$cc4d], a + ld a, $15 + call Predef + + ld a, $3 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript3: ; 1cba2 (7:4ba2) + call Delay3 + ld hl, $ccd3 + ld de, PlayerEntryMovementRLE + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld a, $1 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $5 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + + ld a, $4 + ld [W_OAKSLABCURSCRIPT], a + ret + +PlayerEntryMovementRLE: ; 1cbcf (7:4bcf) + db $40, $8, $ff + +OaksLabScript4: ; 1cbd2 (7:4bd2) + ld a, [$cd38] + and a + ret nz + ld hl, $d747 + set 0, [hl] + ld hl, $d74b + set 0, [hl] + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 ; face object + call UpdateSprites + ld hl, W_FLAGS_D733 + res 1, [hl] + call Func_2307 + + ld a, $5 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript5: ; 1cbfd (7:4bfd) + ld a, $fc + ld [wJoypadForbiddenButtonsMask], a + ld a, $11 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, $12 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, $13 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, $14 + ld [$ff8c], a + call DisplayTextID + ld hl, $d74b + set 1, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + + ld a, $6 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript6: ; 1cc36 (7:4c36) + ld a, [W_YCOORD] + cp $6 + ret nz + ld a, $5 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $1 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + call UpdateSprites + ld a, $c + ld [$ff8c], a + call DisplayTextID + ld a, $1 + ld [$cd38], a + ld a, $40 + ld [$ccd3], a + call Func_3486 + ld a, $8 + ld [$d528], a + + ld a, $7 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript7: ; 1cc72 (7:4c72) + ld a, [$cd38] + and a + ret nz + call Delay3 + + ld a, $6 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript8: ; 1cc80 (7:4c80) + ld a, [W_PLAYERSTARTER] + cp CHARMANDER + jr z, .Charmander ; 0x1cc85 $6 + cp SQUIRTLE + jr z, .Squirtle ; 0x1cc89 $1d + jr .Bulbasaur ; 0x1cc8b $38 +.Charmander + ld de, .MiddleBallMovement1 + ld a, [W_YCOORD] + cp $4 ; is the player standing below the table? + jr z, .asm_1ccf3 ; 0x1cc95 $5c + ld de, .MiddleBallMovement2 + jr .asm_1ccf3 ; 0x1cc9a $57 + +.MiddleBallMovement1 + db 0,0,$C0,$C0,$C0,$40,$FF +.MiddleBallMovement2 + db 0,$C0,$C0,$C0,$FF + +.Squirtle + ld de, .RightBallMovement1 + ld a, [W_YCOORD] + cp $4 ; is the player standing below the table? + jr z, .asm_1ccf3 ; 0x1ccb0 $41 + ld de, .RightBallMovement2 + jr .asm_1ccf3 ; 0x1ccb5 $3c + +.RightBallMovement1 + db 0,0,$C0,$C0,$C0,$C0,$40,$FF +.RightBallMovement2 + db 0,$C0,$C0,$C0,$C0,$FF + +.Bulbasaur + ld de, .LeftBallMovement1 + ld a, [W_XCOORD] + cp $9 ; is the player standing to the right of the table? + jr nz, .asm_1ccf3 ; 0x1cccd $24 + push hl + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8b], a + call Func_34fc + push hl + ld [hl], $4c + inc hl + inc hl + ld [hl], $0 + pop hl + inc h + ld [hl], $8 + inc hl + ld [hl], $9 + ld de, .LeftBallMovement2 ; the rival is not currently onscreen, so account for that + pop hl + jr .asm_1ccf3 ; 0x1cced $4 + +.LeftBallMovement1 + db $00,$C0 ; not yet terminated! +.LeftBallMovement2 + db $C0,$FF + +.asm_1ccf3 + ld a, $1 + ld [$ff8c], a + call MoveSprite + + ld a, $9 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript9: ; 1cd00 (7:4d00) + ld a, [$d730] + bit 0, a + ret nz + ld a, $fc + ld [wJoypadForbiddenButtonsMask], a + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $d + ld [$ff8c], a + call DisplayTextID + ld a, [$cd3e] + cp $2 + jr nz, .asm_1cd28 ; 0x1cd22 $4 + ld a, $2b + jr .asm_1cd32 ; 0x1cd26 $a +.asm_1cd28 + cp $3 + jr nz, .asm_1cd30 ; 0x1cd2a $4 + ld a, $2c + jr .asm_1cd32 ; 0x1cd2e $2 +.asm_1cd30 + ld a, $2d +.asm_1cd32 + ld [$cc4d], a + ld a, $11 + call Predef + call Delay3 + ld a, [$cd3d] + ld [W_RIVALSTARTER], a + ld [$cf91], a + ld [$d11e], a + call GetMonName + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $e + ld [$ff8c], a + call DisplayTextID + ld hl, $d74b + set 2, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + + ld a, $a + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript10: ; 1cd6d (7:4d6d) + ld a, [W_YCOORD] + cp $6 + ret nz + ld a, $1 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $8 + ld [$d528], a + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic ; play music + ld a, $f + ld [$ff8c], a + call DisplayTextID + ld a, $1 + ld [$ff9b], a + ld a, $1 + swap a + ld [$ff95], a + ld a, $22 + call Predef + ld a, [$ff95] + dec a + ld [$ff95], a + ld a, $20 + call Predef + ld de, $cc97 + ld a, $1 + ld [$ff8c], a + call MoveSprite + + ld a, $b + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript11: ; 1cdb9 (7:4db9) + ld a, [$d730] + bit 0, a + ret nz + + ; define which team rival uses, and fight it + ld a, SONY1 + $C8 + ld [W_CUROPPONENT], a + ld a, [W_RIVALSTARTER] + cp SQUIRTLE + jr nz, .NotSquirtle ; 0x1cdc9 $4 + ld a, $1 + jr .done ; 0x1cdcd $a +.NotSquirtle + cp BULBASAUR + jr nz, .Charmander ; 0x1cdd1 $4 + ld a, $2 + jr .done ; 0x1cdd5 $2 +.Charmander + ld a, $3 +.done + ld [W_TRAINERNO], a + ld a, $1 + ld [$cf13], a + call Func_32ef + ld hl, OaksLabText_1d3be + ld de, OaksLabText_1d3c3 + call PreBattleSaveRegisters + ld hl, $d72d + set 6, [hl] + set 7, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $8 + ld [$d528], a + ld a, $c + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript12: ; 1ce03 (7:4e03) + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $8 + ld [$d528], a + call UpdateSprites + ld a, $1 + ld [$cf13], a + call Func_32f9 + ld a, $1 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $7 + call Predef + ld hl, $d74b + set 3, [hl] + + ld a, $d + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript13: ; 1ce32 (7:4e32) + ld c, $14 + call DelayFrames + ld a, $10 + ld [$ff8c], a + call DisplayTextID + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $1 + ld [$ff8c], a + ld de, .RivalExitMovement + call MoveSprite + ld a, [W_XCOORD] + cp $4 + ; move left or right depending on where the player is standing + jr nz, .asm_1ce5b ; 0x1ce55 $4 + ld a, $c0 + jr .asm_1ce5d ; 0x1ce59 $2 +.asm_1ce5b + ld a, $80 +.asm_1ce5d + ld [$cc5b], a + + ld a, $e + ld [W_OAKSLABCURSCRIPT], a + ret + +.RivalExitMovement + db $E0,$00,$00,$00,$00,$00,$FF + +OaksLabScript14: ; 1ce6d (7:4e6d) + ld a, [$d730] + bit 0, a + jr nz, .asm_1ce8c ; 0x1ce72 $18 + ld a, $2a + ld [$cc4d], a + ld a, $11 + call Predef + xor a + ld [wJoypadForbiddenButtonsMask], a + call Func_2307 ; reset to map music + ld a, $12 + ld [W_OAKSLABCURSCRIPT], a + jr .done ; 0x1ce8a $23 +.asm_1ce8c + ld a, [$cf0f] + cp $5 + jr nz, .asm_1cea8 ; 0x1ce91 $15 + ld a, [W_XCOORD] + cp $4 + jr nz, .asm_1cea1 ; 0x1ce98 $7 + ld a, $c + ld [$c109], a + jr .done ; 0x1ce9f $e +.asm_1cea1 + ld a, $8 + ld [$c109], a + jr .done ; 0x1cea6 $7 +.asm_1cea8 + cp $4 + ret nz + xor a + ld [$c109], a +.done + ret + +OaksLabScript15: ; 1ceb0 (7:4eb0) + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + call EnableAutoTextBoxDrawing + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $15 + ld [$ff8c], a + call DisplayTextID + call OaksLabScript_1d02b + ld a, $2a + ld [$cc4d], a + ld a, $15 + call Predef + ld a, [$cd37] + ld [$d157], a + ld b, $0 + ld c, a + ld hl, $cc97 + ld a, $40 + call FillMemory + ld [hl], $ff + ld a, $1 + ld [$ff8c], a + ld de, $cc97 + call MoveSprite + + ld a, $10 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript_1cefd ; 1cefd (7:4efd) + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $8 + ld [$ff8c], a + xor a + ld [$ff8d], a + jp Func_34a6 ; face object + +OaksLabScript16: ; 1cf12 (7:4f12) + ld a, [$d730] + bit 0, a + ret nz + call EnableAutoTextBoxDrawing + call Func_2307 + ld a, $fc + ld [wJoypadForbiddenButtonsMask], a + call OaksLabScript_1cefd + ld a, $16 + ld [$ff8c], a + call DisplayTextID + call DelayFrame + call OaksLabScript_1cefd + ld a, $17 + ld [$ff8c], a + call DisplayTextID + call DelayFrame + call OaksLabScript_1cefd + ld a, $18 + ld [$ff8c], a + call DisplayTextID + call DelayFrame + ld a, $19 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, $2f + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $30 + ld [$cc4d], a + ld a, $11 + call Predef + call OaksLabScript_1cefd + ld a, $1a + ld [$ff8c], a + call DisplayTextID + ld a, $1 + ld [$ff8c], a + ld a, $c + ld [$ff8d], a + call Func_34a6 ; face object + call Delay3 + ld a, $1b + ld [$ff8c], a + call DisplayTextID + ld hl, $d74b + set 5, [hl] + ld hl, $d74e + set 0, [hl] + ld a, $1 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $2 + ld [$cc4d], a + ld a, $15 + call Predef + ld a, [$d157] + ld b, $0 + ld c, a + ld hl, $cc97 + xor a + call FillMemory + ld [hl], $ff + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $1 + ld [$ff8c], a + ld de, $cc97 + call MoveSprite + + ld a, $11 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript17: ; 1cfd4 (7:4fd4) + ld a, [$d730] + bit 0, a + ret nz + call Func_2307 + ld a, $2a + ld [$cc4d], a + ld a, $11 + call Predef + ld hl, $d7eb + set 0, [hl] + res 1, [hl] + set 7, [hl] + ld a, $22 + ld [$cc4d], a + ld a, $15 + call Predef + ld a, $5 + ld [W_PALLETTOWNCURSCRIPT], a + xor a + ld [wJoypadForbiddenButtonsMask], a + + ld a, $12 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript18: ; 1d009 (7:5009) + ret + +OaksLabScript_1d00a: ; 1d00a (7:500a) + ld hl, wBagItems + ld bc, $0000 +.asm_1d010 + ld a, [hli] + cp $ff + ret z + cp OAKS_PARCEL + jr z, .GotParcel ; 0x1d016 $4 + inc hl + inc c + jr .asm_1d010 ; 0x1d01a $f4 +.GotParcel + ld hl, $d31d + ld a, c + ld [wWhichPokemon], a + ld a, $1 + ld [$cf96], a + jp RemoveItemFromInventory + +OaksLabScript_1d02b: ; 1d02b (7:502b) + ld a, $7c + ld [$ffeb], a + ld a, $8 + ld [$ffee], a + ld a, [W_YCOORD] + cp $3 + jr nz, .asm_1d045 ; 0x1d038 $b + ld a, $4 + ld [$cd37], a + ld a, $30 + ld b, $b + jr .asm_1d068 ; 0x1d043 $23 +.asm_1d045 + cp $1 + jr nz, .asm_1d054 ; 0x1d047 $b + ld a, $2 + ld [$cd37], a + ld a, $30 + ld b, $9 + jr .asm_1d068 ; 0x1d052 $14 +.asm_1d054 + ld a, $3 + ld [$cd37], a + ld b, $a + ld a, [W_XCOORD] + cp $4 + jr nz, .asm_1d066 ; 0x1d060 $4 + ld a, $40 + jr .asm_1d068 ; 0x1d064 $2 +.asm_1d066 + ld a, $20 +.asm_1d068 + ld [$ffec], a + ld a, b + ld [$ffed], a + ld a, $1 + ld [$cf13], a + call Func_32f9 + ret + +OaksLabScript_1d076: ; 1d076 (7:5076) + ld hl, OaksLabTextPointers + $36 ; $50b8 ; starts at OaksLabText28 + ld a, l + ld [W_MAPTEXTPTR], a + ld a, h + ld [W_MAPTEXTPTR+1], a + ret + +OaksLabTextPointers: ; 1d082 (7:5082) + dw OaksLabText1 + dw OaksLabText2 + dw OaksLabText3 + dw OaksLabText4 + dw OaksLabText5 + dw OaksLabText6 + dw OaksLabText7 + dw OaksLabText8 + dw OaksLabText9 + dw OaksLabText10 + dw OaksLabText11 + dw OaksLabText12 + dw OaksLabText13 + dw OaksLabText14 + dw OaksLabText15 + dw OaksLabText16 + dw OaksLabText17 + dw OaksLabText18 + dw OaksLabText19 + dw OaksLabText20 + dw OaksLabText21 + dw OaksLabText22 + dw OaksLabText23 + dw OaksLabText24 + dw OaksLabText25 + dw OaksLabText26 + dw OaksLabText27 + dw OaksLabText28 + dw OaksLabText29 + dw OaksLabText30 + dw OaksLabText31 + dw OaksLabText32 + dw OaksLabText33 + dw OaksLabText34 + dw OaksLabText35 + dw OaksLabText36 + dw OaksLabText37 + dw OaksLabText38 + +OaksLabText28: ; 1d0ce (7:50ce) +OaksLabText1: ; 1d0ce (7:50ce) + db $08 ; asm + ld a, [$d74b] + bit 0, a + jr nz, .asm_1d0de ; 0x1d0d4 + ld hl, OaksLabGaryText1 + call PrintText + jr .asm_1d0f0 ; 0x1d0dc +.asm_1d0de ; 0x1d0de + bit 2, a + jr nz, .asm_1d0ea ; 0x1d0e0 + ld hl, OaksLabText40 + call PrintText + jr .asm_1d0f0 ; 0x1d0e8 +.asm_1d0ea ; 0x1d0ea + ld hl, OaksLabText41 + call PrintText +.asm_1d0f0 ; 0x1d0f0 + jp TextScriptEnd + +OaksLabGaryText1: ; 1d0f3 (7:50f3) + TX_FAR _OaksLabGaryText1 + db "@" + +OaksLabText40: ; 1d0f8 (7:50f8) + TX_FAR _OaksLabText40 + db "@" + +OaksLabText41: ; 1d0fd (7:50fd) + TX_FAR _OaksLabText41 + db "@" + +OaksLabText29: ; 1d102 (7:5102) +OaksLabText2: ; 1d102 (7:5102) + db $8 + ld a, SQUIRTLE + ld [$cd3d], a + ld a, $3 + ld [$cd3e], a + ld a, CHARMANDER + ld b, $2 + jr OaksLabScript_1d133 ; 0x1d111 $20 + +OaksLabText30: ; 1d113 (7:5113) +OaksLabText3: ; 1d113 (7:5113) + db $8 + ld a, BULBASAUR + ld [$cd3d], a + ld a, $4 + ld [$cd3e], a + ld a, SQUIRTLE + ld b, $3 + jr OaksLabScript_1d133 ; 0x1d122 $f + +OaksLabText31: ; 1d124 (7:5124) +OaksLabText4: ; 1d124 (7:5124) + db $8 + ld a, CHARMANDER + ld [$cd3d], a + ld a, $2 + ld [$cd3e], a + ld a, BULBASAUR + ld b, $4 + +OaksLabScript_1d133: ; 1d133 (7:5133) + ld [$cf91], a + ld [$d11e], a + ld a, b + ld [$cf13], a + ld a, [$d74b] + bit 2, a + jp nz, OaksLabScript_1d22d + bit 1, a + jr nz, OaksLabScript_1d157 ; 0x1d147 $e + ld hl, OaksLabText39 + call PrintText + jp TextScriptEnd + +OaksLabText39: ; 1d152 (7:5152) + TX_FAR _OaksLabText39 + db "@" + +OaksLabScript_1d157: ; 1d157 (7:5157) + ld a, $5 + ld [$ff8c], a + ld a, $9 + ld [$ff8b], a + call Func_34fc + ld [hl], $0 + ; manually fixed some disassembler issues around here + ld a, $1 + ld [$FF8c], a + ld a, $9 + ld [$ff8b], a + call Func_34fc + ld [hl], $c + ld hl, $d730 + set 6, [hl] + ld a, $46 + call Predef + ld hl, $d730 + res 6, [hl] + call ReloadMapData + ld c, $a + call DelayFrames + ld a, [$cf13] + cp $2 + jr z, OaksLabLookAtCharmander + cp $3 + jr z, OaksLabLookAtSquirtle + jr OaksLabLookAtBulbasaur + +OaksLabLookAtCharmander ; 0x1d195 + ld hl, OaksLabCharmanderText + jr OaksLabMonChoiceMenu +OaksLabCharmanderText: ; 1d19a (7:519a) + TX_FAR _OaksLabCharmanderText + db "@" + +OaksLabLookAtSquirtle: ; 1d19f (7:519f) + ld hl, OaksLabSquirtleText + jr OaksLabMonChoiceMenu +OaksLabSquirtleText: ; 1d1a4 (7:51a4) + TX_FAR _OaksLabSquirtleText + db "@" + +OaksLabLookAtBulbasaur: ; 1d1a9 (7:51a9) + ld hl, OaksLabBulbasaurText + jr OaksLabMonChoiceMenu +OaksLabBulbasaurText: ; 1d1ae (7:51ae) + TX_FAR _OaksLabBulbasaurText + db "@" + +OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3) + call PrintText + ld a, $1 + ld [$cc3c], a + call YesNoChoice ; yes/no menu + ld a, [$cc26] + and a + jr nz, OaksLabMonChoiceEnd + ld a, [$cf91] + ld [$d717], a + ld [$d11e], a + call GetMonName + ld a, [$cf13] + cp $2 + jr nz, asm_1d1db ; 0x1d1d5 $4 + ld a, $2b + jr asm_1d1e5 ; 0x1d1d9 $a +asm_1d1db: ; 1d1db (7:51db) + cp $3 + jr nz, asm_1d1e3 ; 0x1d1dd $4 + ld a, $2c + jr asm_1d1e5 ; 0x1d1e1 $2 +asm_1d1e3: ; 1d1e3 (7:51e3) + ld a, $2d +asm_1d1e5: ; 1d1e5 (7:51e5) + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $1 + ld [$cc3c], a + ld hl, OaksLabMonEnergeticText + call PrintText + ld hl, OaksLabReceivedMonText + call PrintText + xor a + ld [$cc49], a + ld a, $5 + ld [$d127], a + ld a, [$cf91] + ld [$d11e], a + call AddPokemonToParty + ld hl, $d72e + set 3, [hl] + ld a, $fc + ld [wJoypadForbiddenButtonsMask], a + ld a, $8 + ld [W_OAKSLABCURSCRIPT], a +OaksLabMonChoiceEnd: ; 1d21f (7:521f) + jp TextScriptEnd + +OaksLabMonEnergeticText: ; 1d222 (7:5222) + TX_FAR _OaksLabMonEnergeticText + db "@" + +OaksLabReceivedMonText: ; 1d227 (7:5227) + TX_FAR _OaksLabReceivedMonText + db $11, "@" + +OaksLabScript_1d22d: ; 1d22d (7:522d) + ld a, $5 + ld [$ff8c], a + ld a, $9 + ld [$ff8b], a + call Func_34fc + ld [hl], $0 + ld hl, OaksLabLastMonText + call PrintText + jp TextScriptEnd + +OaksLabLastMonText: ; 1d243 (7:5243) + TX_FAR _OaksLabLastMonText + db "@" + +OaksLabText32: ; 1d248 (7:5248) +OaksLabText5: ; 1d248 (7:5248) + db $08 ; asm + ld a, [$d747] + bit 6, a + jr nz, .asm_50e81 ; 0x1d24e + ld hl, $d2f7 + ld b, $13 + call CountSetBits + ld a, [$d11e] + cp $2 + jr c, .asm_b28b0 ; 0x1d25d + ld a, [$d74b] + bit 5, a + jr z, .asm_b28b0 ; 0x1d264 +.asm_50e81 ; 0x1d266 + ld hl, OaksLabText_1d31d + call PrintText + ld a, $1 + ld [$cc3c], a + ld a, $56 + call Predef + jp .asm_0f042 +.asm_b28b0 ; 0x1d279 + ld b,POKE_BALL + call IsItemInBag + jr nz, .asm_17c30 ; 0x1d27e + ld a, [$d7eb] + bit 5, a + jr nz, .asm_f1adc ; 0x1d285 + ld a, [$d74b] + bit 5, a + jr nz, .asm_333a2 ; 0x1d28c + bit 3, a + jr nz, .asm_76269 ; 0x1d290 + ld a, [$d72e] + bit 3, a + jr nz, .asm_4a5e0 ; 0x1d297 + ld hl, OaksLabText_1d2f0 + call PrintText + jr .asm_0f042 ; 0x1d29f +.asm_4a5e0 ; 0x1d2a1 + ld hl, OaksLabText_1d2f5 + call PrintText + jr .asm_0f042 ; 0x1d2a7 +.asm_76269 ; 0x1d2a9 + ld b, OAKS_PARCEL + call IsItemInBag + jr nz, .asm_a8fcf ; 0x1d2ae + ld hl, OaksLabText_1d2fa + call PrintText + jr .asm_0f042 ; 0x1d2b6 +.asm_a8fcf ; 0x1d2b8 + ld hl, OaksLabDeliverParcelText + call PrintText + call OaksLabScript_1d00a + ld a, $f + ld [W_OAKSLABCURSCRIPT], a + jr .asm_0f042 ; 0x1d2c6 +.asm_333a2 ; 0x1d2c8 + ld hl, OaksLabAroundWorldText + call PrintText + jr .asm_0f042 ; 0x1d2ce +.asm_f1adc ; 0x1d2d0 + ld hl, $d74b + bit 4, [hl] + set 4, [hl] + jr nz, .asm_17c30 ; 0x1d2d7 + ld bc, (POKE_BALL << 8) | 5 + call GiveItem + ld hl, OaksLabGivePokeballsText + call PrintText + jr .asm_0f042 ; 0x1d2e5 +.asm_17c30 ; 0x1d2e7 + ld hl, OaksLabPleaseVisitText + call PrintText +.asm_0f042 ; 0x1d2ed + jp TextScriptEnd + +OaksLabText_1d2f0: ; 1d2f0 (7:52f0) + TX_FAR _OaksLabText_1d2f0 + db "@" + +OaksLabText_1d2f5: ; 1d2f5 (7:52f5) + TX_FAR _OaksLabText_1d2f5 + db "@" + +OaksLabText_1d2fa: ; 1d2fa (7:52fa) + TX_FAR _OaksLabText_1d2fa + db "@" + +OaksLabDeliverParcelText: ; 1d2ff (7:52ff) + TX_FAR _OaksLabDeliverParcelText1 + db $11 + TX_FAR _OaksLabDeliverParcelText2 + db "@" + +OaksLabAroundWorldText: ; 1d309 (7:5309) + TX_FAR _OaksLabAroundWorldText + db "@" + +OaksLabGivePokeballsText: ; 1d30e (7:530e) + TX_FAR _OaksLabGivePokeballsText1 + db $11 + TX_FAR _OaksLabGivePokeballsText2 + db "@" + +OaksLabPleaseVisitText: ; 1d318 (7:5318) + TX_FAR _OaksLabPleaseVisitText + db "@" + +OaksLabText_1d31d: ; 1d31d (7:531d) + TX_FAR _OaksLabText_1d31d + db "@" + +OaksLabText34: ; 1d322 (7:5322) +OaksLabText33: ; 1d322 (7:5322) +OaksLabText7: ; 1d322 (7:5322) +OaksLabText6: ; 1d322 (7:5322) + db $08 ; asm + ld hl, OaksLabText_1d32c + call PrintText + jp TextScriptEnd + +OaksLabText_1d32c: ; 1d32c (7:532c) + TX_FAR _OaksLabText_1d32c + db "@" + +OaksLabText35: ; 1d331 (7:5331) +OaksLabText8: ; 1d331 (7:5331) + TX_FAR _OaksLabText8 + db "@" + +OaksLabText36: ; 1d336 (7:5336) +OaksLabText9: ; 1d336 (7:5336) + db $08 ; asm + ld hl, OaksLabText_1d340 + call PrintText + jp TextScriptEnd + +OaksLabText_1d340: ; 1d340 (7:5340) + TX_FAR _OaksLabText_1d340 + db "@" + +OaksLabText17: ; 1d345 (7:5345) + db $8 + ld hl, OaksLabRivalWaitingText + call PrintText + jp TextScriptEnd + +OaksLabRivalWaitingText: ; 1d34f (7:534f) + TX_FAR _OaksLabRivalWaitingText + db "@" + +OaksLabText18: ; 1d354 (7:5354) + db $8 + ld hl, OaksLabChooseMonText + call PrintText + jp TextScriptEnd + +OaksLabChooseMonText: ; 1d35e (7:535e) + TX_FAR _OaksLabChooseMonText + db "@" + +OaksLabText19: ; 1d363 (7:5363) + db $8 + ld hl, OaksLabRivalInterjectionText + call PrintText + jp TextScriptEnd + +OaksLabRivalInterjectionText: ; 1d36d (7:536d) + TX_FAR _OaksLabRivalInterjectionText + db "@" + +OaksLabText20: ; 1d372 (7:5372) + db $8 + ld hl, OaksLabBePatientText + call PrintText + jp TextScriptEnd + +OaksLabBePatientText: ; 1d37c (7:537c) + TX_FAR _OaksLabBePatientText + db "@" + +OaksLabText12: ; 1d381 (7:5381) + db $8 + ld hl, OaksLabLeavingText + call PrintText + jp TextScriptEnd + +OaksLabLeavingText: ; 1d38b (7:538b) + TX_FAR _OaksLabLeavingText + db "@" + +OaksLabText13: ; 1d390 (7:5390) + db $8 + ld hl, OaksLabRivalPickingMonText + call PrintText + jp TextScriptEnd + +OaksLabRivalPickingMonText: ; 1d39a (7:539a) + TX_FAR _OaksLabRivalPickingMonText + db "@" + +OaksLabText14: ; 1d39f (7:539f) + db $8 + ld hl, OaksLabRivalReceivedMonText + call PrintText + jp TextScriptEnd + +OaksLabRivalReceivedMonText: ; 1d3a9 (7:53a9) + TX_FAR _OaksLabRivalReceivedMonText + db $11, "@" + +OaksLabText15: ; 1d3af (7:53af) + db $8 + ld hl, OaksLabRivalChallengeText + call PrintText + jp TextScriptEnd + +OaksLabRivalChallengeText: ; 1d3b9 (7:53b9) + TX_FAR _OaksLabRivalChallengeText + db "@" + +OaksLabText_1d3be: ; 1d3be (7:53be) + TX_FAR _OaksLabText_1d3be + db "@" + +OaksLabText_1d3c3: ; 1d3c3 (7:53c3) + TX_FAR _OaksLabText_1d3c3 + db "@" + +OaksLabText16: ; 1d3c8 (7:53c8) + db $8 + ld hl, OaksLabRivalToughenUpText + call PrintText + jp TextScriptEnd + +OaksLabRivalToughenUpText: ; 1d3d2 (7:53d2) + TX_FAR _OaksLabRivalToughenUpText + db "@" + +OaksLabText21: ; 1d3d7 (7:53d7) + TX_FAR _OaksLabText21 + db "@" + +OaksLabText22: ; 1d3dc (7:53dc) + TX_FAR _OaksLabText22 + db "@" + +OaksLabText23: ; 1d3e1 (7:53e1) + TX_FAR _OaksLabText23 + db "@" + +OaksLabText24: ; 1d3e6 (7:53e6) + TX_FAR _OaksLabText24 + db "@" + +OaksLabText25: ; 1d3eb (7:53eb) + TX_FAR _OaksLabText25 + db $11, "@" + +OaksLabText26: ; 1d3f1 (7:53f1) + TX_FAR _OaksLabText26 + db "@" + +OaksLabText27: ; 1d3f6 (7:53f6) + TX_FAR _OaksLabText27 + db "@" + +OaksLabText38: ; 1d3fb (7:53fb) +OaksLabText37: ; 1d3fb (7:53fb) +OaksLabText11: ; 1d3fb (7:53fb) +OaksLabText10: ; 1d3fb (7:53fb) + db $08 ; asm + ld hl, OaksLabText_1d405 + call PrintText + jp TextScriptEnd + +OaksLabText_1d405: ; 1d405 (7:5405) + TX_FAR _OaksLabText_1d405 + db "@" diff --git a/scripts/pallettown.asm b/scripts/pallettown.asm new file mode 100755 index 00000000..e1b51cf6 --- /dev/null +++ b/scripts/pallettown.asm @@ -0,0 +1,228 @@ +PalletTownScript: ; 18e5b (6:4e5b) + ld a,[$D74B] + bit 4,a + jr z,.next + ld hl,$D747 + set 6,[hl] +.next + call EnableAutoTextBoxDrawing + ld hl,PalletTownScriptPointers + ld a,[W_PALLETTOWNCURSCRIPT] + jp CallFunctionInTable + +PalletTownScriptPointers: ; 18e73 (6:4e73) + dw PalletTownScript0 + dw PalletTownScript1 + dw PalletTownScript2 + dw PalletTownScript3 + dw PalletTownScript4 + dw PalletTownScript5 + dw PalletTownScript6 + +PalletTownScript0: ; 18e81 (6:4e81) + ld a,[$D747] + bit 0,a + ret nz + ld a,[W_YCOORD] + cp 1 ; is player near north exit? + ret nz + xor a + ld [H_CURRENTPRESSEDBUTTONS],a + ld a,4 + ld [$D528],a + ld a,$FF + call PlaySound ; stop music + ld a, BANK(Music_MeetProfOak) + ld c,a ; song bank + ld a, MUSIC_MEET_PROF_OAK ; “oak appears” music + call PlayMusic ; plays music + ld a,$FC + ld [wJoypadForbiddenButtonsMask],a + ld hl,$D74B + set 7,[hl] + + ; trigger the next script + ld a,1 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript1: ; 18eb2 (6:4eb2) + xor a + ld [$CF0D],a + ld a,1 + ld [$FF8C],a + call DisplayTextID + ld a,$FF + ld [wJoypadForbiddenButtonsMask],a + ld a,0 + ld [$CC4D],a + ld a,$15 + call Predef + + ; trigger the next script + ld a,2 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript2: ; 18ed2 (6:4ed2) + ld a,1 + ld [$FF8C],a + ld a,4 + ld [$FF8D],a + call Func_34a6 + call Delay3 + ld a,1 + ld [W_YCOORD],a + ld a,1 + ld [$FF9B],a + ld a,1 + swap a + ld [$FF95],a + ld a,$22 + call Predef + ld hl,$FF95 + dec [hl] + ld a,$20 + call Predef ; load Oak’s movement into $CC97 + ld de,$CC97 + ld a,1 ; oak + ld [$FF8C],a + call MoveSprite + ld a,$FF + ld [wJoypadForbiddenButtonsMask],a + + ; trigger the next script + ld a,3 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript3: ; 18f12 (6:4f12) + ld a,[$D730] + bit 0,a + ret nz + xor a + ld [$C109],a + ld a,1 + ld [$CF0D],a + ld a,$FC + ld [wJoypadForbiddenButtonsMask],a + ld a,1 + ld [$FF8C],a + call DisplayTextID + ld a,$FF + ld [wJoypadForbiddenButtonsMask],a + ld a,1 + ld [$CF13],a + xor a + ld [$CF10],a + ld a,1 + ld [$CC57],a + ld a,[H_LOADEDROMBANK] + ld [$CC58],a + + ; trigger the next script + ld a,4 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript4: ; 18f4b (6:4f4b) + ld a,[$CC57] + and a + ret nz + + ; trigger the next script + ld a,5 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript5: ; 18f56 (6:4f56) + ld a,[$D74A] + bit 2,a + jr nz,.next + and 3 + cp 3 + jr nz,.next + ld hl,$D74A + set 2,[hl] + ld a,$27 + ld [$CC4D],a + ld a,$11 + call Predef + ld a,$28 + ld [$CC4D],a + ld a,$15 + jp Predef +.next + ld a,[$D74B] + bit 4,a + ret z + ld hl,$D74B + set 6,[hl] +PalletTownScript6: ; 18f87 (6:4f87) + ret + +PalletTownTextPointers: ; 18f88 (6:4f88) + dw PalletTownText1 + dw PalletTownText2 + dw PalletTownText3 + dw PalletTownText4 + dw PalletTownText5 + dw PalletTownText6 + dw PalletTownText7 + +PalletTownText1: ; 18f96 (6:4f96) + db 8 + ld a,[$CF0D] + and a + jr nz,.next + ld a,1 + ld [$CC3C],a + ld hl,OakAppearsText + jr .done +.next + ld hl,OakWalksUpText +.done + call PrintText + jp TextScriptEnd + +OakAppearsText: ; 18fb0 (6:4fb0) + TX_FAR _OakAppearsText + db 8 + ld c,10 + call DelayFrames + xor a + ld [$CD4F],a + ld [$CD50],a + ld a,$4C + call Predef ; display ! over head + ld a,4 + ld [$D528],a + jp TextScriptEnd + +OakWalksUpText: ; 18fce (6:4fce) + TX_FAR _OakWalksUpText + db "@" + +PalletTownText2: ; 0x18fd3 girl + TX_FAR _PalletTownText2 + db "@" + +PalletTownText3: ; 0x18fd8 fat man + TX_FAR _PalletTownText3 + db "@" + +PalletTownText4: ; 0x18fdd sign by lab + TX_FAR _PalletTownText4 + db "@" + +PalletTownText5: ; 0x18fe2 sign by fence + TX_FAR _PalletTownText5 + db "@" + +PalletTownText6: ; 0x18fe7 sign by Red’s house + TX_FAR _PalletTownText6 + db "@" + +PalletTownText7: ; 0x18fec sign by Blue’s house + TX_FAR _PalletTownText7 + db "@" diff --git a/scripts/pewtercity.asm b/scripts/pewtercity.asm new file mode 100755 index 00000000..e738dedf --- /dev/null +++ b/scripts/pewtercity.asm @@ -0,0 +1,321 @@ +PewterCityScript: ; 19237 (6:5237) + call EnableAutoTextBoxDrawing + ld hl, PewterCityScriptPointers + ld a, [W_PEWTERCITYCURSCRIPT] + jp CallFunctionInTable + +PewterCityScriptPointers: ; 19243 (6:5243) + dw PewterCityScript0 + dw PewterCityScript1 + dw PewterCityScript2 + dw PewterCityScript3 + dw PewterCityScript4 + dw PewterCityScript5 + dw PewterCityScript6 + +PewterCityScript0: ; 19251 (6:5251) + xor a + ld [W_MUSEUM1FCURSCRIPT], a + ld hl, $d754 + res 0, [hl] + call PewterCityScript_1925e + ret + +PewterCityScript_1925e: ; 1925e (6:525e) + ld a, [$d755] + bit 7, a + ret nz + ld hl, CoordsData_19277 + call ArePlayerCoordsInArray + ret nc + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $5 + ld [$ff8c], a + jp DisplayTextID + +CoordsData_19277: ; 19277 (6:5277) + db $11,$23 + db $11,$24 + db $12,$25 + db $13,$25 + db $ff + +PewterCityScript1: ; 19280 (6:5280) + ld a, [$cc57] + and a + ret nz + ld a, $3 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 + ld a, $34 + ld [$ff8d], a + call Func_34b9 + call Func_2307 + ld hl, wFlags_0xcd60 + set 4, [hl] + ld a, $d + ld [$ff8c], a + call DisplayTextID + ld a, $3c + ld [$ffeb], a + ld a, $30 + ld [$ffec], a + ld a, $c + ld [$ffed], a + ld a, $11 + ld [$ffee], a + ld a, $3 + ld [$cf13], a + call Func_32f9 + ld a, $3 + ld [$ff8c], a + ld de, MovementData_PewterMuseumGuyExit ; $52ce + call MoveSprite + ld a, $2 + ld [W_PEWTERCITYCURSCRIPT], a + ret + +MovementData_PewterMuseumGuyExit: ; 192ce (6:52ce) + db $00,$00,$00,$00,$FF + +PewterCityScript2: ; 192d3 (6:52d3) + ld a, [$d730] + bit 0, a + ret nz + ld a, $3 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $3 + ld [W_PEWTERCITYCURSCRIPT], a + ret + +PewterCityScript3: ; 192e9 (6:52e9) + ld a, $3 + ld [$cf13], a + call Func_32fe + ld a, $3 + ld [$cc4d], a + ld a, $15 + call Predef + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_PEWTERCITYCURSCRIPT], a + ret + +PewterCityScript4: ; 19305 (6:5305) + ld a, [$cc57] + and a + ret nz + ld a, $5 + ld [$ff8c], a + ld a, $8 + ld [$ff8d], a + call Func_34a6 + ld a, $18 + ld [$ff8d], a + call Func_34b9 + call Func_2307 + ld hl, wFlags_0xcd60 + set 4, [hl] + ld a, $e + ld [$ff8c], a + call DisplayTextID + ld a, $3c + ld [$ffeb], a + ld a, $40 + ld [$ffec], a + ld a, $16 + ld [$ffed], a + ld a, $10 + ld [$ffee], a + ld a, $5 + ld [$cf13], a + call Func_32f9 + ld a, $5 + ld [$ff8c], a + ld de, MovementData_PewterGymGuyExit + call MoveSprite + ld a, $5 + ld [W_PEWTERCITYCURSCRIPT], a + ret + +MovementData_PewterGymGuyExit: ; 19353 (6:5353) + db $C0,$C0,$C0,$C0,$C0,$FF + +PewterCityScript5: ; 19359 (6:5359) + ld a, [$d730] + bit 0, a + ret nz + ld a, $4 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $6 + ld [W_PEWTERCITYCURSCRIPT], a + ret + +PewterCityScript6: ; 1936f (6:536f) + ld a, $5 + ld [$cf13], a + call Func_32fe + ld a, $4 + ld [$cc4d], a + ld a, $15 + call Predef + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_PEWTERCITYCURSCRIPT], a + ret + +PewterCityTextPointers: ; 1938b (6:538b) + dw PewterCityText1 + dw PewterCityText2 + dw PewterCityText3 + dw PewterCityText4 + dw PewterCityText5 + dw PewterCityText6 + dw PewterCityText7 + dw MartSignText + dw PokeCenterSignText + dw PewterCityText10 + dw PewterCityText11 + dw PewterCityText12 + dw PewterCityText13 + dw PewterCityText14 + +PewterCityText1: ; 193a7 (6:53a7) + TX_FAR _PewterCityText1 + db "@" + +PewterCityText2: ; 193ac (6:53ac) + TX_FAR _PewterCityText2 + db "@" + +PewterCityText3: ; 193b1 (6:53b1) + db $08 ; asm + ld hl, PewterCityText_193f1 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_f46a9 ; 0x193bf + ld hl, PewterCityText_193f6 + call PrintText + jr .asm_ac429 ; 0x193c7 +.asm_f46a9 ; 0x193c9 + ld hl, PewterCityText_193fb + call PrintText + xor a + ldh [$b3], a + ldh [$b4], a + ld [$cf10], a + ld a, $2 + ld [$cc57], a + ldh a, [$b8] + ld [$cc58], a + ld a, $3 + ld [$cf13], a + call Func_32f4 + ld a, $1 + ld [W_PEWTERCITYCURSCRIPT], a +.asm_ac429 ; 0x193ee + jp TextScriptEnd + +PewterCityText_193f1: ; 193f1 (6:53f1) + TX_FAR _PewterCityText_193f1 + db "@" + +PewterCityText_193f6: ; 193f6 (6:53f6) + TX_FAR _PewterCityText_193f6 + db "@" + +PewterCityText_193fb: ; 193fb (6:53fb) + TX_FAR _PewterCityText_193fb + db "@" + +PewterCityText13: ; 19400 (6:5400) + TX_FAR _PewterCityText13 + db "@" + +PewterCityText4: ; 19405 (6:5405) + db $8 + ld hl, PewterCityText_19427 + call PrintText + call YesNoChoice + ld a, [$cc26] + cp $0 + jr nz, .asm_e4603 + ld hl, PewterCityText_1942c + call PrintText + jr .asm_e4604 ; 0x1941c $6 +.asm_e4603 + ld hl, PewterCityText_19431 + call PrintText +.asm_e4604 ; 0x19424 + jp TextScriptEnd + +PewterCityText_19427: ; 19427 (6:5427) + TX_FAR _PewterCityText_19427 + db "@" + +PewterCityText_1942c: ; 1942c (6:542c) + TX_FAR _PewterCityText_1942c + db "@" + +PewterCityText_19431: ; 19431 (6:5431) + TX_FAR _PewterCityText_19431 + db "@" + +PewterCityText5: ; 19436 (6:5436) + db $08 ; asm + ld hl, PewterCityText_1945d + call PrintText + xor a + ldh [$b4], a + ld [$cf10], a + ld a, $3 + ld [$cc57], a + ldh a, [$b8] + ld [$cc58], a + ld a, $5 + ld [$cf13], a + call Func_32f4 + ld a, $4 + ld [W_PEWTERCITYCURSCRIPT], a + jp TextScriptEnd + +PewterCityText_1945d: ; 1945d (6:545d) + TX_FAR _PewterCityText_1945d + db "@" + +PewterCityText14: ; 19462 (6:5462) + +PewterCityText_19462: ; 19462 (6:5462) + TX_FAR _PewterCityText_19462 + db "@" + +PewterCityText6: ; 19467 (6:5467) + TX_FAR _PewterCityText6 + db "@" + +PewterCityText7: ; 1946c (6:546c) + TX_FAR _PewterCityText7 + db "@" + +PewterCityText10: ; 19471 (6:5471) + TX_FAR _PewterCityText10 + db "@" + +PewterCityText11: ; 19476 (6:5476) + TX_FAR _PewterCityText11 + db "@" + +PewterCityText12: ; 1947b (6:547b) + TX_FAR _PewterCityText12 + db "@" diff --git a/scripts/pewtergym.asm b/scripts/pewtergym.asm new file mode 100755 index 00000000..2ba001d4 --- /dev/null +++ b/scripts/pewtergym.asm @@ -0,0 +1,237 @@ +PewterGymScript: ; 5c387 (17:4387) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + call nz, PewterGymScript_5c3a4 + call EnableAutoTextBoxDrawing + ld hl, PewterGymTrainerHeaders + ld de, PewterGymScriptPointers + ld a, [W_PEWTERGYMCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_PEWTERGYMCURSCRIPT], a + ret + +PewterGymScript_5c3a4: ; 5c3a4 (17:43a4) + ld hl, Gym1CityName ; $43ad + ld de, Gym1LeaderName ; $43b9 + jp LoadGymLeaderAndCityName + +Gym1CityName: ; 5c3ad (17:43ad) + db "PEWTER CITY@" + +Gym1LeaderName: ; 5c3b9 (17:43b9) + db "BROCK@" + +PewterGymScript_5c3bf: ; 5c3bf (17:43bf) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_PEWTERGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PewterGymScriptPointers: ; 5c3ca (17:43ca) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + dw PewterGymScript3 + +PewterGymScript3: ; 5c3d2 (17:43d2) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, PewterGymScript_5c3bf + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + +PewterGymScript_5c3df: ; 5c3df (17:43df) + ld a, $4 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d755 + set 7, [hl] + ld bc, (TM_34 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $5 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d755 + set 6, [hl] + jr .asm_5c408 +.BagFull + ld a, $6 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_5c408 + ld hl, W_OBTAINEDBADGES + set 0, [hl] + ld hl, $d72a + set 0, [hl] + + ld a, $4 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + ld a, $22 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + + ld hl, $d7eb + res 0, [hl] + res 7, [hl] + + ; deactivate gym trainers + ld hl, $d755 + set 2, [hl] + + jp PewterGymScript_5c3bf + +PewterGymTextPointers: ; 5c435 (17:4435) + dw PewterGymText1 + dw PewterGymText2 + dw PewterGymText3 + dw PewterGymText4 + dw PewterGymText5 + dw PewterGymText6 + +PewterGymTrainerHeaders: ; 5c441 (17:4441) +PewterGymTrainerHeader0: ; 5c441 (17:4441) + db $2 ; flag's bit + db ($5 << 4) ; trainer's view range + dw $d755 ; flag's byte + dw PewterGymBattleText1 ; 0x44d0 TextBeforeBattle + dw PewterGymAfterBattleText1 ; 0x44da TextAfterBattle + dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle + dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle + + db $ff + +PewterGymText1: ; 5c44e (17:444e) + db $08 ; asm + ld a, [$d755] + bit 7, a + jr z, .asm_4a735 ; 0x5c454 + bit 6, a + jr nz, .asm_ff7d0 ; 0x5c458 + call z, PewterGymScript_5c3df + call DisableWaitingAfterTextDisplay + jr .asm_e0ffb ; 0x5c460 +.asm_ff7d0 ; 0x5c462 + ld hl, PewterGymText_5c4a3 + call PrintText + jr .asm_e0ffb ; 0x5c468 +.asm_4a735 ; 0x5c46a + ld hl, PewterGymText_5c49e + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, PewterGymText_5c4bc + ld de, PewterGymText_5c4bc + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $1 + ld [$d05c], a + xor a + ldh [$b4], a + ld a, $3 + ld [W_PEWTERGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a +.asm_e0ffb ; 0x5c49b + jp TextScriptEnd + +PewterGymText_5c49e: ; 5c49e (17:449e) + TX_FAR _PewterGymText_5c49e + db "@" + +PewterGymText_5c4a3: ; 5c4a3 (17:44a3) + TX_FAR _PewterGymText_5c4a3 + db "@" + +PewterGymText4: ; 5c4a8 (17:44a8) + TX_FAR _TM34PreReceiveText + db "@" + +PewterGymText5: ; 5c4ad (17:44ad) + TX_FAR _ReceivedTM34Text + db $0B + TX_FAR _TM34ExplanationText + db "@" + +PewterGymText6: ; 5c4b7 (17:44b7) + TX_FAR _TM34NoRoomText + db "@" + +PewterGymText_5c4bc: ; 5c4bc (17:44bc) + TX_FAR _PewterGymText_5c4bc + db $0B + TX_FAR _PewterGymText_5c4c1 + db "@" + +PewterGymText2: ; 5c4c6 (17:44c6) + db $08 ; asm + ld hl, PewterGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +PewterGymBattleText1: ; 5c4d0 (17:44d0) + TX_FAR _PewterGymBattleText1 + db "@" + +PewterGymEndBattleText1: ; 5c4d5 (17:44d5) + TX_FAR _PewterGymEndBattleText1 + db "@" + +PewterGymAfterBattleText1: ; 5c4da (17:44da) + TX_FAR _PewterGymAfterBattleText1 + db "@" + +PewterGymText3: ; 5c4df (17:44df) + db $08 ; asm + ld a, [$d72a] + bit 0, a + jr nz, .asm_71369 ; 0x5c4e5 + ld hl, PewterGymText_5c515 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_6123a ; 0x5c4f4 + ld hl, PewterGymText_5c51a + call PrintText + jr .asm_d1578 ; 0x5c4fc +.asm_6123a ; 0x5c4fe + ld hl, PewterGymText_5c524 + call PrintText +.asm_d1578 ; 0x5c504 + ld hl, PewterGymText_5c51f + call PrintText + jr .asm_07013 ; 0x5c50a +.asm_71369 ; 0x5c50c + ld hl, PewterGymText_5c529 + call PrintText +.asm_07013 ; 0x5c512 + jp TextScriptEnd + +PewterGymText_5c515: ; 5c515 (17:4515) + TX_FAR _PewterGymText_5c515 + db "@" + +PewterGymText_5c51a: ; 5c51a (17:451a) + TX_FAR _PewterGymText_5c51a + db "@" + +PewterGymText_5c51f: ; 5c51f (17:451f) + TX_FAR _PewterGymText_5c51f + db "@" + +PewterGymText_5c524: ; 5c524 (17:4524) + TX_FAR _PewterGymText_5c524 + db "@" + +PewterGymText_5c529: ; 5c529 (17:4529) + TX_FAR _PewterGymText_5c529 + db "@" diff --git a/scripts/pewterhouse1.asm b/scripts/pewterhouse1.asm new file mode 100755 index 00000000..05d27a14 --- /dev/null +++ b/scripts/pewterhouse1.asm @@ -0,0 +1,23 @@ +PewterHouse1Script: ; 1d5f3 (7:55f3) + jp EnableAutoTextBoxDrawing + +PewterHouse1TextPointers: ; 1d5f6 (7:55f6) + dw PewterHouse1Text1 + dw PewterHouse1Text2 + dw PewterHouse1Text3 + +PewterHouse1Text1: ; 1d5fc (7:55fc) + TX_FAR _PewterHouse1Text1 + db $08 ; asm + ld a, NIDORAN_M + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +PewterHouse1Text2: ; 1d60c (7:560c) + TX_FAR _PewterHouse1Text2 + db "@" + +PewterHouse1Text3: ; 1d611 (7:5611) + TX_FAR _PewterHouse1Text3 + db "@" diff --git a/scripts/pewterhouse2.asm b/scripts/pewterhouse2.asm new file mode 100755 index 00000000..92e40de2 --- /dev/null +++ b/scripts/pewterhouse2.asm @@ -0,0 +1,14 @@ +PewterHouse2Script: ; 1d648 (7:5648) + jp EnableAutoTextBoxDrawing + +PewterHouse2TextPointers: ; 1d64b (7:564b) + dw PewterHouse2Text1 + dw PewterHouse2Text2 + +PewterHouse2Text1: ; 1d64f (7:564f) + TX_FAR _PewterHouse2Text1 + db "@" + +PewterHouse2Text2: ; 1d654 (7:5654) + TX_FAR _PewterHouse2Text2 + db "@" diff --git a/scripts/pewtermart.asm b/scripts/pewtermart.asm new file mode 100755 index 00000000..3abe2a93 --- /dev/null +++ b/scripts/pewtermart.asm @@ -0,0 +1,30 @@ +PewterMartScript: ; 74cad (1d:4cad) + call EnableAutoTextBoxDrawing + ld a, $1 + ld [$cf0c], a + ret + +PewterMartTextPointers: ; 74cb6 (1d:4cb6) + dw PewterMartText1 + dw PewterMartText2 + dw PewterMartText3 + +PewterMartText2: ; 74cbc (1d:4cbc) + db $08 ; asm + ld hl, PewterMartText_74cc6 + call PrintText + jp TextScriptEnd + +PewterMartText_74cc6: ; 74cc6 (1d:4cc6) + TX_FAR _PewterMartText_74cc6 + db "@" + +PewterMartText3: ; 74ccb (1d:4ccb) + db $08 ; asm + ld hl, PewterMartText_74cd5 + call PrintText + jp TextScriptEnd + +PewterMartText_74cd5: ; 74cd5 (1d:4cd5) + TX_FAR _PewterMartText_74cd5 + db "@" diff --git a/scripts/pewterpokecenter.asm b/scripts/pewterpokecenter.asm new file mode 100755 index 00000000..4b97a01d --- /dev/null +++ b/scripts/pewterpokecenter.asm @@ -0,0 +1,75 @@ +PewterPokecenterScript: ; 5c587 (17:4587) + call Func_22fa + jp EnableAutoTextBoxDrawing + +PewterPokecenterTextPointers: ; 5c58d (17:458d) + dw PewterPokecenterText1 + dw PewterPokecenterText2 + dw PewterPokecenterText3 + dw PewterPokecenterText4 + +PewterPokecenterText1: ; 5c595 (17:4595) + db $ff + +PewterPokecenterText2: ; 5c596 (17:4596) + TX_FAR _PewterPokecenterText1 + db "@" + +PewterPokecenterText3: ; 5c59b (17:459b) + db $8 + ld a, $1 + ld [$cc3c], a + ld hl, PewterPokecenterText5 + call PrintText + ld a, $ff + call PlaySound + ld c, $20 + call DelayFrames + ld hl, Unknown_5c608 ; $4608 + ld de, $cd3f + ld bc, $0004 + call CopyData + ld a, [$c132] + ld hl, $cd3f +.asm_5c5c3 + cp [hl] + inc hl + jr nz, .asm_5c5c3 ; 0x5c5c5 $fc + dec hl + push hl + ld c, BANK(Music_JigglypuffSong) + ld a, MUSIC_JIGGLYPUFF_SONG + call PlayMusic + pop hl +.asm_5c5d1 + ld a, [hl] + ld [$c132], a + push hl + ld hl, $cd3f + ld de, $cd3e + ld bc, $0004 + call CopyData + ld a, [$cd3e] + ld [$cd42], a + pop hl + ld c, $18 + call DelayFrames + ld a, [$c026] + ld b, a + ld a, [$c027] + or b + jr nz, .asm_5c5d1 ; 0x5c5f6 $d9 + ld c, $30 + call DelayFrames + call Func_2307 + jp TextScriptEnd + +PewterPokecenterText5: ; 5c603 (17:4603) + TX_FAR _PewterPokecenterText5 + db "@" + +Unknown_5c608: ; 5c608 (17:4608) + db $30, $38, $34, $3c + +PewterPokecenterText4: ; 5c60c (17:460c) + db $f6 diff --git a/scripts/pokemontower1.asm b/scripts/pokemontower1.asm new file mode 100755 index 00000000..4887e740 --- /dev/null +++ b/scripts/pokemontower1.asm @@ -0,0 +1,29 @@ +PokemonTower1Script: ; 6042c (18:442c) + jp EnableAutoTextBoxDrawing + +PokemonTower1TextPointers: ; 6042f (18:442f) + dw PokemonTower1Text1 + dw PokemonTower1Text2 + dw PokemonTower1Text3 + dw PokemonTower1Text4 + dw PokemonTower1Text5 + +PokemonTower1Text1: ; 60439 (18:4439) + TX_FAR _PokemonTower1Text1 + db "@" + +PokemonTower1Text2: ; 6043e (18:443e) + TX_FAR _PokemonTower1Text2 + db "@" + +PokemonTower1Text3: ; 60443 (18:4443) + TX_FAR _PokemonTower1Text3 + db "@" + +PokemonTower1Text4: ; 60448 (18:4448) + TX_FAR _PokemonTower1Text4 + db "@" + +PokemonTower1Text5: ; 6044d (18:444d) + TX_FAR _PokemonTower1Text5 + db "@" diff --git a/scripts/pokemontower2.asm b/scripts/pokemontower2.asm new file mode 100755 index 00000000..0dbb3a93 --- /dev/null +++ b/scripts/pokemontower2.asm @@ -0,0 +1,180 @@ +PokemonTower2Script: ; 604f2 (18:44f2) + call EnableAutoTextBoxDrawing + ld hl, PokemonTower2ScriptPointers + ld a, [W_POKEMONTOWER2CURSCRIPT] + jp CallFunctionInTable + +PokemonTower2Script_604fe: ; 604fe (18:44fe) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_POKEMONTOWER2CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower2ScriptPointers: ; 60509 (18:4509) + dw PokemonTower2Script0 + dw PokemonTower2Script1 + dw PokemonTower2Script2 + +PokemonTower2Script0: ; 6050f (18:450f) + ld a, [$d764] + bit 7, a + ret nz + ld hl, CoordsData_6055e ; $455e + call ArePlayerCoordsInArray + ret nc + ld a, $ff + ld [$c0ee], a + call PlaySound + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic + ld hl, $d764 + res 6, [hl] + ld a, [$cd3d] + cp $1 + ld a, $8 + ld b, $0 + jr nz, .asm_60544 ; 0x60539 $9 + ld hl, $d764 + set 6, [hl] + ld a, $2 + ld b, $c +.asm_60544 + ld [$d528], a + ld a, $1 + ld [$ff8c], a + ld a, b + ld [$ff8d], a + call Func_34a6 + ld a, $1 + ld [$ff8c], a + call DisplayTextID + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld [H_NEWLYPRESSEDBUTTONS], a + ret + +CoordsData_6055e: ; 6055e (18:455e) + db $05,$0F + db $06,$0E + db $0F ; isn't this supposed to end in $ff? + +PokemonTower2Script1: ; 60563 (18:4563) + ld a, [$d057] + cp $ff + jp z, PokemonTower2Script_604fe + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d764 + set 7, [hl] + ld a, $1 + ld [$ff8c], a + call DisplayTextID + ld de, MovementData_605b2 + ld a, [$d764] + bit 6, a + jr nz, .asm_60589 ; 0x60584 $3 + ld de, MovementData_605a9 +.asm_60589 + ld a, $1 + ld [$ff8c], a + call MoveSprite + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $2 + ld [W_POKEMONTOWER2CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +MovementData_605a9: ; 605a9 (18:45a9) + db $C0,$00,$00,$C0,$00,$00,$C0,$C0,$FF + +MovementData_605b2: ; 605b2 (18:45b2) + db $00,$00,$C0,$C0,$C0,$C0,$00,$00,$FF + +PokemonTower2Script2: ; 605bb (18:45bb) + ld a, [$d730] + bit 0, a + ret nz + ld a, $38 + ld [$cc4d], a + ld a, $11 + call Predef + xor a + ld [wJoypadForbiddenButtonsMask], a + call Func_2307 + ld a, $0 + ld [W_POKEMONTOWER2CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower2TextPointers: ; 605db (18:45db) + dw PokemonTower2Text1 + dw PokemonTower2Text2 + +PokemonTower2Text1: ; 605df (18:45df) + db $08 ; asm + ld a, [$d764] + bit 7, a + jr z, .asm_16f24 ; 0x605e5 + ld hl, PokemonTower2Text_6063c + call PrintText + jr .asm_41852 ; 0x605ed +.asm_16f24 ; 0x605ef + ld hl, PokemonTower2Text_6062d + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, PokemonTower2Text_60632 + ld de, PokemonTower2Text_60637 ; XXX $4637 + call PreBattleSaveRegisters + ld a, SONY2 + $c8 + ld [W_CUROPPONENT], a + + ; select which team to use during the encounter + ld a, [W_RIVALSTARTER] + cp SQUIRTLE + jr nz, .NotSquirtle ; 0x6060f + ld a, $4 + jr .done +.NotSquirtle ; 0x60615 + cp BULBASAUR + jr nz, .Charmander ; 0x60617 + ld a, $5 + jr .done +.Charmander ; 0x6061d + ld a, $6 +.done + ld [W_TRAINERNO], a + + ld a, $1 + ld [W_POKEMONTOWER2CURSCRIPT], a + ld [W_CURMAPSCRIPT], a +.asm_41852 ; 0x6062a + jp TextScriptEnd + +PokemonTower2Text_6062d: ; 6062d (18:462d) + TX_FAR _PokemonTower2Text_6062d + db "@" + +PokemonTower2Text_60632: ; 60632 (18:4632) + TX_FAR _PokemonTower2Text_60632 + db "@" + +PokemonTower2Text_60637: ; 60637 (18:4637) + TX_FAR _PokemonTower2Text_60637 + db "@" + +PokemonTower2Text_6063c: ; 6063c (18:463c) + TX_FAR _PokemonTower2Text_6063c + db "@" + +PokemonTower2Text2: ; 60641 (18:4641) + TX_FAR _PokemonTower2Text2 + db "@" diff --git a/scripts/pokemontower3.asm b/scripts/pokemontower3.asm new file mode 100755 index 00000000..74568a83 --- /dev/null +++ b/scripts/pokemontower3.asm @@ -0,0 +1,102 @@ +PokemonTower3Script: ; 606cc (18:46cc) + call EnableAutoTextBoxDrawing + ld hl, PokemonTower3TrainerHeaders + ld de, PokemonTower3ScriptPointers + ld a, [W_POKEMONTOWER3CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_POKEMONTOWER3CURSCRIPT], a + ret + +PokemonTower3ScriptPointers: ; 606df (18:46df) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +PokemonTower3TextPointers: ; 606e5 (18:46e5) + dw PokemonTower3Text1 + dw PokemonTower3Text2 + dw PokemonTower3Text3 + dw Predef5CText + +PokemonTower3TrainerHeaders: ; 606ed (18:46ed) +PokemonTower3TrainerHeader0: ; 606ed (18:46ed) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d765 ; flag's byte + dw PokemonTower3BattleText1 ; 0x4730 TextBeforeBattle + dw PokemonTower3AfterBattleText1 ; 0x473a TextAfterBattle + dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle + dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle + +PokemonTower3TrainerHeader1: ; 606f9 (18:46f9) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d765 ; flag's byte + dw PokemonTower3BattleText2 ; 0x473f TextBeforeBattle + dw PokemonTower3AfterBattleText2 ; 0x4749 TextAfterBattle + dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle + dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle + +PokemonTower3TrainerHeader2: ; 60705 (18:4705) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d765 ; flag's byte + dw PokemonTower3BattleText3 ; 0x474e TextBeforeBattle + dw PokemonTower3AfterBattleText3 ; 0x4758 TextAfterBattle + dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle + dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle + db $ff + +PokemonTower3Text1: ; 60712 (18:4712) + db $08 ; asm + ld hl, PokemonTower3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower3Text2: ; 6071c (18:471c) + db $08 ; asm + ld hl, PokemonTower3TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower3Text3: ; 60726 (18:4726) + db $08 ; asm + ld hl, PokemonTower3TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower3BattleText1: ; 60730 (18:4730) + TX_FAR _PokemonTower3BattleText1 + db "@" + +PokemonTower3EndBattleText1: ; 60735 (18:4735) + TX_FAR _PokemonTower3EndBattleText1 + db "@" + +PokemonTower3AfterBattleText1: ; 6073a (18:473a) + TX_FAR _PokemonTower3AfterBattleText1 + db "@" + +PokemonTower3BattleText2: ; 6073f (18:473f) + TX_FAR _PokemonTower3BattleText2 + db "@" + +PokemonTower3EndBattleText2: ; 60744 (18:4744) + TX_FAR _PokemonTower3EndBattleText2 + db "@" + +PokemonTower3AfterBattleText2: ; 60749 (18:4749) + TX_FAR _PokemonTower3AfterBattleText2 + db "@" + +PokemonTower3BattleText3: ; 6074e (18:474e) + TX_FAR _PokemonTower3BattleText3 + db "@" + +PokemonTower3EndBattleText3: ; 60753 (18:4753) + TX_FAR _PokemonTower3EndBattleText3 + db "@" + +PokemonTower3AfterBattleText3: ; 60758 (18:4758) + TX_FAR _PokemonTower3AfterBattleText3 + db "@" diff --git a/scripts/pokemontower4.asm b/scripts/pokemontower4.asm new file mode 100755 index 00000000..05fcb23f --- /dev/null +++ b/scripts/pokemontower4.asm @@ -0,0 +1,105 @@ +PokemonTower4Script: ; 607f6 (18:47f6) + call EnableAutoTextBoxDrawing + ld hl, PokemonTower4TrainerHeaders + ld de, PokemonTower4ScriptPointers + ld a, [W_POKEMONTOWER4CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_POKEMONTOWER4CURSCRIPT], a + ret + +PokemonTower4ScriptPointers: ; 60809 (18:4809) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +PokemonTower4TextPointers: ; 6080f (18:480f) + dw PokemonTower4Text1 + dw PokemonTower4Text2 + dw PokemonTower4Text3 + dw Predef5CText + dw Predef5CText + dw Predef5CText + +PokemonTower4TrainerHeaders: ; 6081b (18:481b) +PokemonTower4TrainerHeader0: ; 6081b (18:481b) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d766 ; flag's byte + dw PokemonTower4BattleText1 ; 0x485e TextBeforeBattle + dw PokemonTower4AfterBattleText1 ; 0x4868 TextAfterBattle + dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle + dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle + +PokemonTower4TrainerHeader1: ; 60827 (18:4827) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d766 ; flag's byte + dw PokemonTower4BattleText2 ; 0x486d TextBeforeBattle + dw PokemonTower4AfterBattleText2 ; 0x4877 TextAfterBattle + dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle + dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle + +PokemonTower4TrainerHeader2: ; 60833 (18:4833) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d766 ; flag's byte + dw PokemonTower4BattleText3 ; 0x487c TextBeforeBattle + dw PokemonTower4AfterBattleText3 ; 0x4886 TextAfterBattle + dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle + dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle + + db $ff + +PokemonTower4Text1: ; 60840 (18:4840) + db $08 ; asm + ld hl, PokemonTower4TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower4Text2: ; 6084a (18:484a) + db $08 ; asm + ld hl, PokemonTower4TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower4Text3: ; 60854 (18:4854) + db $08 ; asm + ld hl, PokemonTower4TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower4BattleText1: ; 6085e (18:485e) + TX_FAR _PokemonTower4BattleText1 + db "@" + +PokemonTower4EndBattleText1: ; 60863 (18:4863) + TX_FAR _PokemonTower4EndBattleText1 + db "@" + +PokemonTower4AfterBattleText1: ; 60868 (18:4868) + TX_FAR _PokemonTower4AfterBattleText1 + db "@" + +PokemonTower4BattleText2: ; 6086d (18:486d) + TX_FAR _PokemonTower4BattleText2 + db "@" + +PokemonTower4EndBattleText2: ; 60872 (18:4872) + TX_FAR _PokemonTower4EndBattleText2 + db "@" + +PokemonTower4AfterBattleText2: ; 60877 (18:4877) + TX_FAR _PokemonTower4AfterBattleText2 + db "@" + +PokemonTower4BattleText3: ; 6087c (18:487c) + TX_FAR _PokemonTower4BattleText3 + db "@" + +PokemonTower4EndBattleText3: ; 60881 (18:4881) + TX_FAR _PokemonTower4EndBattleText3 + db "@" + +PokemonTower4AfterBattleText3: ; 60886 (18:4886) + TX_FAR _PokemonTower4AfterBattleText3 + db "@" diff --git a/scripts/pokemontower5.asm b/scripts/pokemontower5.asm new file mode 100755 index 00000000..5c43c7da --- /dev/null +++ b/scripts/pokemontower5.asm @@ -0,0 +1,181 @@ +PokemonTower5Script: ; 60932 (18:4932) + call EnableAutoTextBoxDrawing + ld hl, PokemonTower5TrainerHeaders + ld de, PokemonTower5ScriptPointers + ld a, [W_POKEMONTOWER5CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_POKEMONTOWER5CURSCRIPT], a + ret + +PokemonTower5ScriptPointers: ; 60945 (18:4945) + dw PokemonTower5Script0 + dw Func_324c + dw EndTrainerBattle + +PokemonTower5Script0: ; 6094b (18:494b) + ld hl, CoordsData_60992 ; $4992 + call ArePlayerCoordsInArray + jr c, .asm_60960 + ld hl, $d72e + res 4, [hl] + ld hl, $d767 + res 7, [hl] + jp CheckFightingMapTrainers +.asm_60960 + ld hl, $d767 + bit 7, [hl] + set 7, [hl] + ret nz + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d72e + set 4, [hl] + ld a, $7 + call Predef ; indirect jump to HealParty (f6a5 (3:76a5)) + call GBFadeOut2 + call Delay3 + call Delay3 + call GBFadeIn2 + ld a, $7 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + xor a + ld [wJoypadForbiddenButtonsMask], a + ret + +CoordsData_60992: ; 60992 (18:4992) + db $08,$0A + db $08,$0B + db $09,$0A + db $09,$0B + db $FF + +PokemonTower5TextPointers: ; 6099b (18:499b) + dw PokemonTower5Text1 + dw PokemonTower5Text2 + dw PokemonTower5Text3 + dw PokemonTower5Text4 + dw PokemonTower5Text5 + dw Predef5CText + dw PokemonTower5Text7 + +PokemonTower5TrainerHeaders: ; 609a9 (18:49a9) +PokemonTower5TrainerHeader0: ; 609a9 (18:49a9) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d767 ; flag's byte + dw PokemonTower5BattleText1 ; 0x49e9 TextBeforeBattle + dw PokemonTower5AfterBattleText1 ; 0x49f3 TextAfterBattle + dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle + dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle + +PokemonTower5TrainerHeader1: ; 609b5 (18:49b5) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d767 ; flag's byte + dw PokemonTower5BattleText2 ; 0x4a02 TextBeforeBattle + dw PokemonTower5AfterBattleText2 ; 0x4a0c TextAfterBattle + dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle + dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle + +PokemonTower5TrainerHeader2: ; 609c1 (18:49c1) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d767 ; flag's byte + dw PokemonTower5BattleText3 ; 0x4a1b TextBeforeBattle + dw PokemonTower5AfterBattleText3 ; 0x4a25 TextAfterBattle + dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle + dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle + +PokemonTower5TrainerHeader3: ; 609cd (18:49cd) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d767 ; flag's byte + dw PokemonTower5BattleText4 ; 0x4a34 TextBeforeBattle + dw PokemonTower5AfterBattleText4 ; 0x4a3e TextAfterBattle + dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle + dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle + + db $ff + +PokemonTower5Text1: ; 609da (18:49da) + TX_FAR _PokemonTower5Text1 + db "@" + +PokemonTower5Text2: ; 609df (18:49df) + db $08 ; asm + ld hl, PokemonTower5TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower5BattleText1: ; 609e9 (18:49e9) + TX_FAR _PokemonTower5BattleText1 + db "@" + +PokemonTower5EndBattleText1: ; 609ee (18:49ee) + TX_FAR _PokemonTower5EndBattleText1 + db "@" + +PokemonTower5AfterBattleText1: ; 609f3 (18:49f3) + TX_FAR _PokemonTower5AfterBattleText1 + db "@" + +PokemonTower5Text3: ; 609f8 (18:49f8) + db $08 ; asm + ld hl, PokemonTower5TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower5BattleText2: ; 60a02 (18:4a02) + TX_FAR _PokemonTower5BattleText2 + db "@" + +PokemonTower5EndBattleText2: ; 60a07 (18:4a07) + TX_FAR _PokemonTower5EndBattleText2 + db "@" + +PokemonTower5AfterBattleText2: ; 60a0c (18:4a0c) + TX_FAR _PokemonTower5AfterBattleText2 + db "@" + +PokemonTower5Text4: ; 60a11 (18:4a11) + db $08 ; asm + ld hl, PokemonTower5TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower5BattleText3: ; 60a1b (18:4a1b) + TX_FAR _PokemonTower5BattleText3 + db "@" + +PokemonTower5EndBattleText3: ; 60a20 (18:4a20) + TX_FAR _PokemonTower5EndBattleText3 + db "@" + +PokemonTower5AfterBattleText3: ; 60a25 (18:4a25) + TX_FAR _PokemonTower5AfterBattleText3 + db "@" + +PokemonTower5Text5: ; 60a2a (18:4a2a) + db $08 ; asm + ld hl, PokemonTower5TrainerHeader3 ; $49cd + call TalkToTrainer + jp TextScriptEnd + +PokemonTower5BattleText4: ; 60a34 (18:4a34) + TX_FAR _PokemonTower5BattleText4 + db "@" + +PokemonTower5EndBattleText4: ; 60a39 (18:4a39) + TX_FAR _PokemonTower5EndBattleText4 + db "@" + +PokemonTower5AfterBattleText4: ; 60a3e (18:4a3e) + TX_FAR _PokemonTower5AfterBattleText4 + db "@" + +PokemonTower5Text7: ; 60a43 (18:4a43) + TX_FAR _PokemonTower5Text7 + db "@" diff --git a/scripts/pokemontower6.asm b/scripts/pokemontower6.asm new file mode 100755 index 00000000..e3d8a4c4 --- /dev/null +++ b/scripts/pokemontower6.asm @@ -0,0 +1,215 @@ +PokemonTower6Script: ; 60aef (18:4aef) + call EnableAutoTextBoxDrawing + ld hl, PokemonTower6TrainerHeaders + ld de, PokemonTower6ScriptPointers + ld a, [W_POKEMONTOWER6CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_POKEMONTOWER6CURSCRIPT], a + ret + +Func_60b02: ; 60b02 (18:4b02) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_POKEMONTOWER6CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower6ScriptPointers: ; 60b0d (18:4b0d) + dw PokemonTower6Script0 + dw Func_324c + dw EndTrainerBattle + dw PokemonTower6Script3 + dw PokemonTower6Script4 + +PokemonTower6Script0: ; 60b17 (18:4b17) + ld a, [$d768] + bit 7, a + jp nz, CheckFightingMapTrainers + ld hl, CoordsData_60b45 ; $4b45 + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $6 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, MAROWAK + ld [W_CUROPPONENT], a ; $d059 + ld a, 30 + ld [W_CURENEMYLVL], a ; $d127 + ld a, $4 + ld [W_POKEMONTOWER6CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CoordsData_60b45: ; 60b45 (18:4b45) + db $10,$0A,$FF + +PokemonTower6Script4: ; 60b48 (18:4b48) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, Func_60b02 + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld a, [$d72d] + bit 6, a + ret nz + call UpdateSprites + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, [$cf0b] + and a + jr nz, .asm_60b82 + ld hl, $d768 + set 7, [hl] + ld a, $7 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_POKEMONTOWER6CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret +.asm_60b82 + ld a, $1 + ld [$cd38], a + ld a, $10 + ld [$ccd3], a + xor a + ld [$c206], a + ld [$cd3b], a + ld hl, $d730 + set 7, [hl] + ld a, $3 + ld [W_POKEMONTOWER6CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower6Script3: ; 60ba1 (18:4ba1) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [W_POKEMONTOWER6CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower6TextPointers: ; 60bb1 (18:4bb1) + dw PokemonTower6Text1 + dw PokemonTower6Text2 + dw PokemonTower6Text3 + dw Predef5CText + dw Predef5CText + dw PokemonTower6Text6 + dw PokemonTower6Text7 + +PokemonTower6TrainerHeaders: ; 60bbf (18:4bbf) +PokemonTower6TrainerHeader0: ; 60bbf (18:4bbf) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d768 ; flag's byte + dw PokemonTower6BattleText1 ; 0x4c29 TextBeforeBattle + dw PokemonTower6AfterBattleText1 ; 0x4c33 TextAfterBattle + dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle + dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle + +PokemonTower6TrainerHeader1: ; 60bcb (18:4bcb) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d768 ; flag's byte + dw PokemonTower6BattleText2 ; 0x4c38 TextBeforeBattle + dw PokemonTower6AfterBattleText2 ; 0x4c42 TextAfterBattle + dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle + dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle + +PokemonTower6TrainerHeader2: ; 60bd7 (18:4bd7) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d768 ; flag's byte + dw PokemonTower6BattleText3 ; 0x4c47 TextBeforeBattle + dw PokemonTower6AfterBattleText3 ; 0x4c51 TextAfterBattle + dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle + dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle + + db $ff + +PokemonTower6Text1: ; 60be4 (18:4be4) + db $08 ; asm + ld hl, PokemonTower6TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower6Text2: ; 60bee (18:4bee) + db $08 ; asm + ld hl, PokemonTower6TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower6Text3: ; 60bf8 (18:4bf8) + db $08 ; asm + ld hl, PokemonTower6TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower6Text7: ; 60c02 (18:4c02) + db $8 + ld hl, PokemonTower2Text_60c1f + call PrintText + ld a, MAROWAK + call PlayCry + call WaitForSoundToFinish + ld c, $1e + call DelayFrames + ld hl, PokemonTower2Text_60c24 + call PrintText + jp TextScriptEnd + +PokemonTower2Text_60c1f: ; 60c1f (18:4c1f) + TX_FAR _PokemonTower2Text_60c1f + db "@" + +PokemonTower2Text_60c24: ; 60c24 (18:4c24) + TX_FAR _PokemonTower2Text_60c24 + db "@" + +PokemonTower6BattleText1: ; 60c29 (18:4c29) + TX_FAR _PokemonTower6BattleText1 + db "@" + +PokemonTower6EndBattleText1: ; 60c2e (18:4c2e) + TX_FAR _PokemonTower6EndBattleText1 + db "@" + +PokemonTower6AfterBattleText1: ; 60c33 (18:4c33) + TX_FAR _PokemonTower6AfterBattleText1 + db "@" + +PokemonTower6BattleText2: ; 60c38 (18:4c38) + TX_FAR _PokemonTower6BattleText2 + db "@" + +PokemonTower6EndBattleText2: ; 60c3d (18:4c3d) + TX_FAR _PokemonTower6EndBattleText2 + db "@" + +PokemonTower6AfterBattleText2: ; 60c42 (18:4c42) + TX_FAR _PokemonTower6AfterBattleText2 + db "@" + +PokemonTower6BattleText3: ; 60c47 (18:4c47) + TX_FAR _PokemonTower6BattleText3 + db "@" + +PokemonTower6EndBattleText3: ; 60c4c (18:4c4c) + TX_FAR _PokemonTower6EndBattleText3 + db "@" + +PokemonTower6AfterBattleText3: ; 60c51 (18:4c51) + TX_FAR _PokemonTower6AfterBattleText3 + db "@" + +PokemonTower6Text6: ; 60c56 (18:4c56) + TX_FAR _PokemonTower6Text6 + db "@" diff --git a/scripts/pokemontower7.asm b/scripts/pokemontower7.asm new file mode 100755 index 00000000..6dddebb2 --- /dev/null +++ b/scripts/pokemontower7.asm @@ -0,0 +1,282 @@ +PokemonTower7Script: ; 60d05 (18:4d05) + call EnableAutoTextBoxDrawing + ld hl, PokemonTower7TrainerHeaders + ld de, PokemonTower7ScriptPointers + ld a, [W_POKEMONTOWER7CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_POKEMONTOWER7CURSCRIPT], a + ret + +PokemonTower7Script_60d18: ; 60d18 (18:4d18) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_POKEMONTOWER7CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower7ScriptPointers: ; 60d23 (18:4d23) + dw CheckFightingMapTrainers + dw Func_324c + dw PokemonTower7Script2 + dw PokemonTower7Script3 + dw PokemonTower7Script4 + +PokemonTower7Script2: ; 60d23 (18:4d23) + ld hl, wFlags_0xcd60 + res 0, [hl] + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, PokemonTower7Script_60d18 + call EndTrainerBattle + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, [$cf13] + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + call PokemonTower7Script_60db6 + ld a, $3 + ld [W_POKEMONTOWER7CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower7Script3: ; 60d56 (18:4d56) + ld a, [$d730] + bit 0, a + ret nz + ld hl, W_MISSABLEOBJECTLIST + ld a, [$cf13] + ld b, a +.missableObjectsListLoop + ld a, [hli] + cp b ; search for sprite ID in missing objects list + ld a, [hli] + jr nz, .missableObjectsListLoop + ld [$cc4d], a ; remove missable object + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [$cf13], a + ld [wTrainerHeaderFlagBit], a + ld [$da38], a + ld a, $0 + ld [W_POKEMONTOWER7CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower7Script4: ; 60d86 (18:4d86) + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld a, $43 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + ld a, $4 + ld [$c109], a + ld a, $95 + ld [H_DOWNARROWBLINKCNT1], a ; $ff8b + ld a, $1 + ld [$d42f], a + ld a, $4 + ld [$d365], a + ld hl, $d72d + set 3, [hl] + ld a, $0 + ld [W_POKEMONTOWER7CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PokemonTower7Script_60db6: ; 60db6 (18:4db6) + ld hl, CoordsData_60de3 ; $4de3 + ld a, [$cf13] + dec a + swap a + ld d, $0 + ld e, a + add hl, de + ld a, [W_YCOORD] ; $d361 + ld b, a + ld a, [W_XCOORD] ; $d362 + ld c, a +.asm_60dcb + ld a, [hli] + cp b + jr nz, .asm_60dde + ld a, [hli] + cp c + jr nz, .asm_60ddf + ld a, [hli] + ld d, [hl] + ld e, a + ld a, [$cf13] + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp MoveSprite +.asm_60dde + inc hl +.asm_60ddf + inc hl + inc hl + jr .asm_60dcb + +CoordsData_60de3: ; 60de3 (18:4de3) + db $0C,$09 + dw MovementData_60e13 + db $0B,$0A + dw MovementData_60e1b + db $0B,$0B + dw MovementData_60e22 + db $0B,$0C + dw MovementData_60e22 + db $0A,$0C + dw MovementData_60e28 + db $09,$0B + dw MovementData_60e30 + db $09,$0A + dw MovementData_60e22 + db $09,$09 + dw MovementData_60e22 + db $08,$09 + dw MovementData_60e37 + db $07,$0A + dw MovementData_60e22 + db $07,$0B + dw MovementData_60e22 + db $07,$0C + dw MovementData_60e22 + +MovementData_60e13: ; 60e13 + db $C0,$00,$00,$00,$00,$00,$80,$FF + +MovementData_60e1b: ; 60e1b + db $00,$C0,$00,$00,$00,$00,$FF + +MovementData_60e22: ; 60e22 + db $00,$00,$00,$00,$00,$FF + +MovementData_60e28: ; 60e28 + db $80,$00,$00,$00,$00,$00,$00,$FF + +MovementData_60e30: ; 60e30 + db $00,$00,$00,$80,$00,$00,$FF + +MovementData_60e37: ; 60e37 + db $C0,$00,$00,$00,$00,$00,$00,$FF + +PokemonTower7TextPointers: ; 60e3f (18:4e3f) + dw PokemonTower7Text1 + dw PokemonTower7Text2 + dw PokemonTower7Text3 + dw PokemonTower7Text4 + +PokemonTower7TrainerHeaders: ; 60e47 (18:4e47) +PokemonTower7TrainerHeader0: ; 60e47 (18:4e47) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d769 ; flag's byte + dw PokemonTower7BattleText1 ; 0x4ec9 TextBeforeBattle + dw PokemonTower7AfterBattleText1 ; 0x4ed3 TextAfterBattle + dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle + dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle + +PokemonTower7TrainerHeader1: ; 60e53 (18:4e53) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d769 ; flag's byte + dw PokemonTower7BattleText2 ; 0x4ed8 TextBeforeBattle + dw PokemonTower7AfterBattleText2 ; 0x4ee2 TextAfterBattle + dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle + dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle + +PokemonTower7TrainerHeader2: ; 60e5f (18:4e5f) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d769 ; flag's byte + dw PokemonTower7BattleText3 ; 0x4ee7 TextBeforeBattle + dw PokemonTower7AfterBattleText3 ; 0x4ef1 TextAfterBattle + dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle + dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle + + db $ff + +PokemonTower7Text1: ; 60e6c (18:4e6c) + db $08 ; asm + ld hl, PokemonTower7TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower7Text2: ; 60e76 (18:4e76) + db $08 ; asm + ld hl, PokemonTower7TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower7Text3: ; 60e80 (18:4e80) + db $08 ; asm + ld hl, PokemonTower7TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +PokemonTower7Text4: ; 60e8a (18:4e8a) + db $08 ; asm + ld hl, PokemonTower7Text_60ec4 + call PrintText + ld hl, $d7e0 + set 7, [hl] + ld hl, $d769 + set 7, [hl] + ld a, $44 + ld [$cc4d], a + ld a, $15 + call Predef + ld a, $17 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $18 + ld [$cc4d], a + ld a, $15 + call Predef + ld a, $4 + ld [W_POKEMONTOWER7CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + jp TextScriptEnd + +PokemonTower7Text_60ec4: ; 60ec4 (18:4ec4) + TX_FAR _PokemonTower7Text_60ec4 + db "@" + +PokemonTower7BattleText1: ; 60ec9 (18:4ec9) + TX_FAR _PokemonTower7BattleText1 + db "@" + +PokemonTower7EndBattleText1: ; 60ece (18:4ece) + TX_FAR _PokemonTower7EndBattleText1 + db "@" + +PokemonTower7AfterBattleText1: ; 60ed3 (18:4ed3) + TX_FAR _PokemonTower7AfterBattleText1 + db "@" + +PokemonTower7BattleText2: ; 60ed8 (18:4ed8) + TX_FAR _PokemonTower7BattleText2 + db "@" + +PokemonTower7EndBattleText2: ; 60edd (18:4edd) + TX_FAR _PokemonTower7EndBattleText2 + db "@" + +PokemonTower7AfterBattleText2: ; 60ee2 (18:4ee2) + TX_FAR _PokemonTower7AfterBattleText2 + db "@" + +PokemonTower7BattleText3: ; 60ee7 (18:4ee7) + TX_FAR _PokemonTower7BattleText3 + db "@" + +PokemonTower7EndBattleText3: ; 60eec (18:4eec) + TX_FAR _PokemonTower7EndBattleText3 + db "@" + +PokemonTower7AfterBattleText3: ; 60ef1 (18:4ef1) + TX_FAR _PokemonTower7AfterBattleText3 + db "@" diff --git a/scripts/powerplant.asm b/scripts/powerplant.asm new file mode 100755 index 00000000..d5e126dc --- /dev/null +++ b/scripts/powerplant.asm @@ -0,0 +1,176 @@ +PowerPlantScript: ; 1e2c6 (7:62c6) + call EnableAutoTextBoxDrawing + ld hl, PowerPlantTrainerHeaders + ld de, PowerPlantScriptPointers + ld a, [W_POWERPLANTCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_POWERPLANTCURSCRIPT], a + ret + +PowerPlantScriptPointers: ; 1e2d9 (7:62d9) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +PowerPlantTextPointers: ; 1e2df (7:62df) + dw PowerPlantText1 + dw PowerPlantText2 + dw PowerPlantText3 + dw PowerPlantText4 + dw PowerPlantText5 + dw PowerPlantText6 + dw PowerPlantText7 + dw PowerPlantText8 + dw PowerPlantText9 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + +PowerPlantTrainerHeaders: ; 1e2fb (7:62fb) +PowerPlantTrainerHeader0: ; 1e2fb (7:62fb) + db 1 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw VoltorbBattleText ; TextBeforeBattle + dw VoltorbBattleText ; TextAfterBattle + dw VoltorbBattleText ; TextEndBattle + dw VoltorbBattleText ; TextEndBattle + +PowerPlantTrainerHeader1: ; 1e307 (7:6307) + db 2 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw VoltorbBattleText ; TextBeforeBattle + dw VoltorbBattleText ; TextAfterBattle + dw VoltorbBattleText ; TextEndBattle + dw VoltorbBattleText ; TextEndBattle + +PowerPlantTrainerHeader2: ; 1e313 (7:6313) + db 3 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw VoltorbBattleText ; TextBeforeBattle + dw VoltorbBattleText ; TextAfterBattle + dw VoltorbBattleText ; TextEndBattle + dw VoltorbBattleText ; TextEndBattle + +PowerPlantTrainerHeader3: ; 1e31f (7:631f) + db 4 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw VoltorbBattleText ; TextBeforeBattle + dw VoltorbBattleText ; TextAfterBattle + dw VoltorbBattleText ; TextEndBattle + dw VoltorbBattleText ; TextEndBattle + +PowerPlantTrainerHeader4: ; 1e32b (7:632b) + db 5 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw VoltorbBattleText ; TextBeforeBattle + dw VoltorbBattleText ; TextAfterBattle + dw VoltorbBattleText ; TextEndBattle + dw VoltorbBattleText ; TextEndBattle + +PowerPlantTrainerHeader5: ; 1e337 (7:6337) + db 6 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw VoltorbBattleText ; TextBeforeBattle + dw VoltorbBattleText ; TextAfterBattle + dw VoltorbBattleText ; TextEndBattle + dw VoltorbBattleText ; TextEndBattle + +PowerPlantTrainerHeader6: ; 1e343 (7:6343) + db 7 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw VoltorbBattleText ; TextBeforeBattle + dw VoltorbBattleText ; TextAfterBattle + dw VoltorbBattleText ; TextEndBattle + dw VoltorbBattleText ; TextEndBattle + +PowerPlantTrainerHeader7: ; 1e34f (7:634f) + db 8 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw VoltorbBattleText ; TextBeforeBattle + dw VoltorbBattleText ; TextAfterBattle + dw VoltorbBattleText ; TextEndBattle + dw VoltorbBattleText ; TextEndBattle + +PowerPlantTrainerHeader8: ; 1e35b (7:635b) + db 9 ; flag's bit + db 0 ; view range + dw $d7d3 ; flag's byte + dw ZapdosBattleText ; TextBeforeBattle + dw ZapdosBattleText ; TextAfterBattle + dw ZapdosBattleText ; TextEndBattle + dw ZapdosBattleText ; TextEndBattle + + db $ff + +asm_234cc: ; 1e368 (7:6368) + call TalkToTrainer + ld a, [W_CURMAPSCRIPT] + ld [W_POWERPLANTCURSCRIPT], a + jp TextScriptEnd + +PowerPlantText1: ; 1e374 (7:6374) + db $8 ; asm + ld hl, PowerPlantTrainerHeader0 ; $62fb + jr asm_234cc ; 0x1e378 $ee + +PowerPlantText2: ; 1e37a (7:637a) + db $8 ; asm + ld hl, PowerPlantTrainerHeader1 ; $6307 + jr asm_234cc ; 0x1e37e $e8 + +PowerPlantText3: ; 1e380 (7:6380) + db $8 ; asm + ld hl, PowerPlantTrainerHeader2 ; $6313 + jr asm_234cc ; 0x1e384 $e2 + +PowerPlantText4: ; 1e386 (7:6386) + db $8 ; asm + ld hl, PowerPlantTrainerHeader3 ; $631f + jr asm_234cc ; 0x1e38a $dc + +PowerPlantText5: ; 1e38c (7:638c) + db $8 ; asm + ld hl, PowerPlantTrainerHeader4 ; $632b + jr asm_234cc ; 0x1e390 $d6 + +PowerPlantText6: ; 1e392 (7:6392) + db $8 ; asm + ld hl, PowerPlantTrainerHeader5 ; $6337 + jr asm_234cc ; 0x1e396 $d0 + +PowerPlantText7: ; 1e398 (7:6398) + db $8 ; asm + ld hl, PowerPlantTrainerHeader6 ; $6343 + jr asm_234cc ; 0x1e39c $ca + +PowerPlantText8: ; 1e39e (7:639e) + db $8 ; asm + ld hl, PowerPlantTrainerHeader7 ; $634f + jr asm_234cc ; 0x1e3a2 $c4 + +PowerPlantText9: ; 1e3a4 (7:63a4) + db $8 ; asm + ld hl, PowerPlantTrainerHeader8 ; $635b + jr asm_234cc ; 0x1e3a8 $be + +VoltorbBattleText: ; 1e3aa (7:63aa) + TX_FAR _VoltorbBattleText + db "@" + +ZapdosBattleText: ; 1e3af (7:63af) + TX_FAR _ZapdosBattleText + db $8 + ld a, ZAPDOS + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd diff --git a/scripts/redshouse1f.asm b/scripts/redshouse1f.asm new file mode 100755 index 00000000..b787669e --- /dev/null +++ b/scripts/redshouse1f.asm @@ -0,0 +1,69 @@ +RedsHouse1FScript: ; 48168 (12:4168) + jp EnableAutoTextBoxDrawing + +RedsHouse1FTextPointers: ; 4816b (12:416b) + dw RedsHouse1FText1 + dw RedsHouse1FText2 + +RedsHouse1FText1: ; 4816f (12:416f) ; 416F Mom + db 8 + ld a, [$D72E] + bit 3, a + jr nz, .heal ; if player has received a Pokémon from Oak, heal team + ld hl, MomWakeUpText + call PrintText + jr .done +.heal + call MomHealPokemon +.done + jp TextScriptEnd + +MomWakeUpText: ; 48185 (12:4185) + TX_FAR _MomWakeUpText + db "@" + +MomHealPokemon: ; 4818a (12:418a) + ld hl, MomHealText1 + call PrintText + call GBFadeOut2 + call ReloadMapData + PREDEF HealPartyPredef + ld a, MUSIC_PKMN_HEALED + ld [$C0EE], a + call PlaySound ; play sound? +.next + ld a, [$C026] + cp MUSIC_PKMN_HEALED + jr z, .next + ld a, [$D35B] + ld [$C0EE], a + call PlaySound + call GBFadeIn2 + ld hl, MomHealText2 + jp PrintText + +MomHealText1: ; 481bc (12:41bc) + TX_FAR _MomHealText1 + db "@" +MomHealText2: ; 481c1 (12:41c1) + TX_FAR _MomHealText2 + db "@" + +RedsHouse1FText2: ; 0x481c6 TV + db 8 + ld a,[$C109] + cp 4 + ld hl,TVWrongSideText + jr nz,.done ; if player is not facing up + ld hl,StandByMeText +.done + call PrintText + jp TextScriptEnd + +StandByMeText: ; 481da (12:41da) + TX_FAR _StandByMeText + db "@" + +TVWrongSideText: ; 481df (12:41df) + TX_FAR _TVWrongSideText + db "@" diff --git a/scripts/redshouse2f.asm b/scripts/redshouse2f.asm new file mode 100755 index 00000000..1004860c --- /dev/null +++ b/scripts/redshouse2f.asm @@ -0,0 +1,24 @@ +RedsHouse2FScript: ; 5c0b0 (17:40b0) + call EnableAutoTextBoxDrawing + ld hl,RedsHouse2FScriptPointers + ld a,[W_REDSHOUSE2CURSCRIPT] + jp CallFunctionInTable + +RedsHouse2FScriptPointers: ; 5c0bc (17:40bc) + dw RedsHouse2FScript0 + dw RedsHouse2FScript1 + +RedsHouse2FScript0: ; 5c0c0 (17:40c0) + xor a + ld [H_CURRENTPRESSEDBUTTONS],a + ld a,8 + ld [$D528],a + ld a,1 + ld [W_REDSHOUSE2CURSCRIPT],a + ret + +RedsHouse2FScript1: ; 5c0ce (17:40ce) + ret + +RedsHouse2FTextPointers: ; 5c0cf (17:40cf) + db "@" diff --git a/scripts/rockethideout1.asm b/scripts/rockethideout1.asm new file mode 100755 index 00000000..ce88ff90 --- /dev/null +++ b/scripts/rockethideout1.asm @@ -0,0 +1,193 @@ +RocketHideout1Script: ; 44bca (11:4bca) + call RocketHideout1Script_44be0 + call EnableAutoTextBoxDrawing + ld hl, RocketHideout1TrainerHeaders + ld de, RocketHideout1ScriptPointers + ld a, [W_ROCKETHIDEOUT1CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROCKETHIDEOUT1CURSCRIPT], a + ret + +RocketHideout1Script_44be0: ; 44be0 (11:4be0) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d815] + bit 7, a + jr nz, .asm_44c01 + bit 5, a + jr nz, .asm_44bf7 + ld a, $54 + jr .asm_44c03 +.asm_44bf7 + ld a, (SFX_02_57 - SFX_Headers_02) / 3 + call PlaySound + ld hl, $d815 + bit 7, [hl] +.asm_44c01 + ld a, $e +.asm_44c03 + ld [$d09f], a + ld bc, $080c + ld a, $17 + jp Predef + +RocketHideout1ScriptPointers: ; 44c0e (11:4c0e) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +RocketHideout1TextPointers: ; 44c14 (11:4c14) + dw RocketHideout1Text1 + dw RocketHideout1Text2 + dw RocketHideout1Text3 + dw RocketHideout1Text4 + dw RocketHideout1Text5 + dw Predef5CText + dw Predef5CText + +RocketHideout1TrainerHeaders: ; 44c22 (11:4c22) +RocketHideout1TrainerHeader0: ; 44c22 (11:4c22) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d815 ; flag's byte + dw RocketHideout1BattleText2 ; 0x4ca1 TextBeforeBattle + dw RocketHideout1AfterBattleTxt2 ; 0x4cab TextAfterBattle + dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle + dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle + +RocketHideout1TrainerHeader2: ; 44c2e (11:4c2e) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d815 ; flag's byte + dw RocketHideout1BattleText3 ; 0x4cb0 TextBeforeBattle + dw RocketHideout1AfterBattleTxt3 ; 0x4cba TextAfterBattle + dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle + dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle + +RocketHideout1TrainerHeader3: ; 44c3a (11:4c3a) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d815 ; flag's byte + dw RocketHideout1BattleText4 ; 0x4cbf TextBeforeBattle + dw RocketHideout1AfterBattleTxt4 ; 0x4cc9 TextAfterBattle + dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle + dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle + +RocketHideout1TrainerHeader4: ; 44c46 (11:4c46) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d815 ; flag's byte + dw RocketHideout1BattleText5 ; 0x4cce TextBeforeBattle + dw RocketHideout1AfterBattleTxt5 ; 0x4cd8 TextAfterBattle + dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle + dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle + +RocketHideout1TrainerHeader5: ; 44c52 (11:4c52) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d815 ; flag's byte + dw RocketHideout1BattleText6 ; 0x4cdd TextBeforeBattle + dw RocketHideout1AfterBattleTxt6 ; 0x4ce2 TextAfterBattle + dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle + dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle + + db $ff + +RocketHideout1Text1: ; 44c5f (11:4c5f) + db $08 ; asm + ld hl, RocketHideout1TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout1Text2: ; 44c69 (11:4c69) + db $08 ; asm + ld hl, RocketHideout1TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout1Text3: ; 44c73 (11:4c73) + db $08 ; asm + ld hl, RocketHideout1TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout1Text4: ; 44c7d (11:4c7d) + db $08 ; asm + ld hl, RocketHideout1TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout1Text5: ; 44c87 (11:4c87) + db $08 ; asm + ld hl, RocketHideout1TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout1EndBattleText6: ; 44c91 (11:4c91) + TX_FAR _RocketHideout1EndBattleText6 + db $8 + ld hl, $d815 + set 5, [hl] + ld hl, RocketHideout1Text_44c9f + ret + +RocketHideout1Text_44c9f: ; 44c9f (11:4c9f) + db $6, "@" + +RocketHideout1BattleText2: ; 44ca1 (11:4ca1) + TX_FAR _RocketHideout1BattleText2 + db "@" + +RocketHideout1EndBattleText2: ; 44ca6 (11:4ca6) + TX_FAR _RocketHideout1EndBattleText2 + db "@" + +RocketHideout1AfterBattleTxt2: ; 44cab (11:4cab) + TX_FAR _RocketHideout1AfterBattleTxt2 + db "@" + +RocketHideout1BattleText3: ; 44cb0 (11:4cb0) + TX_FAR _RocketHideout1BattleText3 + db "@" + +RocketHideout1EndBattleText3: ; 44cb5 (11:4cb5) + TX_FAR _RocketHideout1EndBattleText3 + db "@" + +RocketHideout1AfterBattleTxt3: ; 44cba (11:4cba) + TX_FAR _RocketHideout1AfterBattleTxt3 + db "@" + +RocketHideout1BattleText4: ; 44cbf (11:4cbf) + TX_FAR _RocketHideout1BattleText4 + db "@" + +RocketHideout1EndBattleText4: ; 44cc4 (11:4cc4) + TX_FAR _RocketHideout1EndBattleText4 + db "@" + +RocketHideout1AfterBattleTxt4: ; 44cc9 (11:4cc9) + TX_FAR _RocketHideout1AfterBattleTxt4 + db "@" + +RocketHideout1BattleText5: ; 44cce (11:4cce) + TX_FAR _RocketHideout1BattleText5 + db "@" + +RocketHideout1EndBattleText5: ; 44cd3 (11:4cd3) + TX_FAR _RocketHideout1EndBattleText5 + db "@" + +RocketHideout1AfterBattleTxt5: ; 44cd8 (11:4cd8) + TX_FAR _RocketHideout1AfterBattleTxt5 + db "@" + +RocketHideout1BattleText6: ; 44cdd (11:4cdd) + TX_FAR _RocketHideout1BattleText6 + db "@" + +RocketHideout1AfterBattleTxt6: ; 44ce2 (11:4ce2) + TX_FAR _RocketHideout1AfterBattleTxt6 + db "@" diff --git a/scripts/rockethideout2.asm b/scripts/rockethideout2.asm new file mode 100755 index 00000000..ac427373 --- /dev/null +++ b/scripts/rockethideout2.asm @@ -0,0 +1,501 @@ +RocketHideout2Script: ; 44e27 (11:4e27) + call EnableAutoTextBoxDrawing + ld hl, RocketHideout2TrainerHeaders + ld de, RocketHideout2ScriptPointers + ld a, [W_ROCKETHIDEOUT2CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROCKETHIDEOUT2CURSCRIPT], a + ret + +RocketHideout2ScriptPointers: ; 44e3a (11:4e3a) + dw RocketHideout2Script0 + dw Func_324c + dw EndTrainerBattle + dw RocketHideout2Script3 + +RocketHideout2Script0: ; 44e42 (11:4e42) + ld a, [W_YCOORD] + ld b, a + ld a, [W_XCOORD] + ld c, a + ld hl, RocketHideout2ArrowTilePlayerMovement + call Func_3442 + cp $ff + jp z, CheckFightingMapTrainers + ld hl, $d736 + set 7, [hl] + call Func_3486 + ld a, (SFX_02_52 - SFX_Headers_02) / 3 + call PlaySound + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld a, $3 + ld [W_CURMAPSCRIPT], a + ret + +;format: +;db y,x +;dw pointer to movement +RocketHideout2ArrowTilePlayerMovement: ; 44e6d (11:4e6d) + db $9,$4 + dw RocketHideout2ArrowMovement1 + db $b,$4 + dw RocketHideout2ArrowMovement2 + db $f,$4 + dw RocketHideout2ArrowMovement3 + db $10,$4 + dw RocketHideout2ArrowMovement4 + db $13,$4 + dw RocketHideout2ArrowMovement1 + db $16,$4 + dw RocketHideout2ArrowMovement5 + db $e,$5 + dw RocketHideout2ArrowMovement6 + db $16,$6 + dw RocketHideout2ArrowMovement7 + db $18,$6 + dw RocketHideout2ArrowMovement8 + db $9,$8 + dw RocketHideout2ArrowMovement9 + db $c,$8 + dw RocketHideout2ArrowMovement10 + db $f,$8 + dw RocketHideout2ArrowMovement8 + db $13,$8 + dw RocketHideout2ArrowMovement9 + db $17,$8 + dw RocketHideout2ArrowMovement11 + db $e,$9 + dw RocketHideout2ArrowMovement12 + db $16,$9 + dw RocketHideout2ArrowMovement12 + db $9,$a + dw RocketHideout2ArrowMovement13 + db $a,$a + dw RocketHideout2ArrowMovement14 + db $f,$a + dw RocketHideout2ArrowMovement15 + db $11,$a + dw RocketHideout2ArrowMovement16 + db $13,$a + dw RocketHideout2ArrowMovement17 + db $19,$a + dw RocketHideout2ArrowMovement2 + db $e,$b + dw RocketHideout2ArrowMovement18 + db $10,$b + dw RocketHideout2ArrowMovement19 + db $12,$b + dw RocketHideout2ArrowMovement12 + db $9,$c + dw RocketHideout2ArrowMovement20 + db $b,$c + dw RocketHideout2ArrowMovement21 + db $d,$c + dw RocketHideout2ArrowMovement22 + db $11,$c + dw RocketHideout2ArrowMovement23 + db $a,$d + dw RocketHideout2ArrowMovement24 + db $c,$d + dw RocketHideout2ArrowMovement25 + db $10,$d + dw RocketHideout2ArrowMovement26 + db $12,$d + dw RocketHideout2ArrowMovement27 + db $13,$d + dw RocketHideout2ArrowMovement28 + db $16,$d + dw RocketHideout2ArrowMovement29 + db $17,$d + dw RocketHideout2ArrowMovement30 + db $11,$e + dw RocketHideout2ArrowMovement31 + db $10,$f + dw RocketHideout2ArrowMovement12 + db $e,$10 + dw RocketHideout2ArrowMovement32 + db $10,$10 + dw RocketHideout2ArrowMovement33 + db $12,$10 + dw RocketHideout2ArrowMovement34 + db $a,$11 + dw RocketHideout2ArrowMovement35 + db $b,$11 + dw RocketHideout2ArrowMovement36 + db $FF + +;format: direction, count +;right: $10 +;left: $20 +;up: $40 +;down: $80 +;each list is read starting from the $FF and working backwards +RocketHideout2ArrowMovement1: ; 44f1a (11:4f1a) + db $20,$02 + db $FF + +RocketHideout2ArrowMovement2: ; 44f1d (11:4f1d) + db $10,$04 + db $FF + +RocketHideout2ArrowMovement3: ; 44f20 (11:4f20) + db $40,$04 + db $10,$04 + db $FF + +RocketHideout2ArrowMovement4: ; 44f25 (11:4f25) + db $40,$04 + db $10,$04 + db $40,$01 + db $FF + +RocketHideout2ArrowMovement5: ; 44f2c (11:4f2c) + db $20,$02 + db $40,$03 + db $FF + +RocketHideout2ArrowMovement6: ; 44f31 (11:4f31) + db $80,$02 + db $10,$04 + db $FF + +RocketHideout2ArrowMovement7: ; 44f36 (11:4f36) + db $40,$02 + db $FF + +RocketHideout2ArrowMovement8: ; 44f39 (11:4f39) + db $40,$04 + db $FF + +RocketHideout2ArrowMovement9: ; 44f3c (11:4f3c) + db $20,$06 + db $FF + +RocketHideout2ArrowMovement10: ; 44f3f (11:4f3f) + db $40,$01 + db $FF + +RocketHideout2ArrowMovement11: ; 44f42 (11:4f42) + db $20,$06 + db $40,$04 + db $FF + +RocketHideout2ArrowMovement12: ; 44f47 (11:4f47) + db $80,$02 + db $FF + +RocketHideout2ArrowMovement13: ; 44f4a (11:4f4a) + db $20,$08 + db $FF + +RocketHideout2ArrowMovement14: ; 44f4d (11:4f4d) + db $20,$08 + db $40,$01 + db $FF + +RocketHideout2ArrowMovement15: ; 44f52 (11:4f52) + db $20,$08 + db $40,$06 + db $FF + +RocketHideout2ArrowMovement16: ; 44f57 (11:4f57) + db $40,$02 + db $10,$04 + db $FF + +RocketHideout2ArrowMovement17: ; 44f5c (11:4f5c) + db $40,$02 + db $10,$04 + db $40,$02 + db $FF + +RocketHideout2ArrowMovement18: ; 44f63 (11:4f63) + db $80,$02 + db $10,$04 + db $80,$02 + db $FF + +RocketHideout2ArrowMovement19: ; 44f6a (11:4f6a) + db $80,$02 + db $10,$04 + db $FF + +RocketHideout2ArrowMovement20: ; 44f6f (11:4f6f) + db $20,$0A + db $FF + +RocketHideout2ArrowMovement21: ; 44f72 (11:4f72) + db $20,$0A + db $40,$02 + db $FF + +RocketHideout2ArrowMovement22: ; 44f77 (11:4f77) + db $20,$0A + db $40,$04 + db $FF + +RocketHideout2ArrowMovement23: ; 44f7c (11:4f7c) + db $40,$02 + db $10,$02 + db $FF + +RocketHideout2ArrowMovement24: ; 44f81 (11:4f81) + db $10,$01 + db $80,$02 + db $FF + +RocketHideout2ArrowMovement25: ; 44f86 (11:4f86) + db $10,$01 + db $FF + +RocketHideout2ArrowMovement26: ; 44f89 (11:4f89) + db $80,$02 + db $10,$02 + db $FF + +RocketHideout2ArrowMovement27: ; 44f8e (11:4f8e) + db $80,$02 + db $20,$02 + db $FF + +RocketHideout2ArrowMovement28: ; 44f93 (11:4f93) + db $40,$02 + db $10,$04 + db $40,$02 + db $20,$03 + db $FF + +RocketHideout2ArrowMovement29: ; 44f9c (11:4f9c) + db $80,$02 + db $20,$04 + db $FF + +RocketHideout2ArrowMovement30: ; 44fa1 (11:4fa1) + db $20,$06 + db $40,$04 + db $20,$05 + db $FF + +RocketHideout2ArrowMovement31: ; 44fa8 (11:4fa8) + db $40,$02 + db $FF + +RocketHideout2ArrowMovement32: ; 44fab (11:4fab) + db $40,$01 + db $FF + +RocketHideout2ArrowMovement33: ; 44fae (11:4fae) + db $40,$03 + db $FF + +RocketHideout2ArrowMovement34: ; 44fb1 (11:4fb1) + db $40,$05 + db $FF + +RocketHideout2ArrowMovement35: ; 44fb4 (11:4fb4) + db $10,$01 + db $80,$02 + db $20,$04 + db $FF + +RocketHideout2ArrowMovement36: ; 44fbb (11:4fbb) + db $20,$0A + db $40,$02 + db $20,$05 + db $FF + +RocketHideout2Script3: ; 44fc2 (11:4fc2) + ld a, [$cd38] + and a + jr nz, LoadSpinnerArrowTiles + xor a + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d736 + res 7, [hl] + ld a, $0 + ld [W_CURMAPSCRIPT], a + ret + +LoadSpinnerArrowTiles: ; 44fd7 (11:4fd7) + ld a, [$c102] + srl a + srl a + ld hl, SpinnerPlayerFacingDirections ; $5083 + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [$c102], a + ld a, [W_CURMAPTILESET] ; $d367 + cp FACILITY + ld hl, SpinnerArrowTilePointers1 ; $5023 + jr z, .asm_44ff6 + ld hl, SpinnerArrowTilePointers2 ; $5053 +.asm_44ff6 + ld a, [$cd38] + bit 0, a + jr nz, .asm_45001 + ld de, $18 + add hl, de +.asm_45001 + ld a, $4 + ld bc, $0 +.asm_45006 + push af + push hl + push bc + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + call CopyVideoData + pop bc + ld a, $6 + add c + ld c, a + pop hl + pop af + dec a + jr nz, .asm_45006 + ret + +SpinnerArrowTilePointers1: ; 45023 (11:5023) + dw SpinnerArrowAnimTiles ;address from within tileset graphics + db 1 ;number of tiles to copy? + db BANK(SpinnerArrowAnimTiles) ;bank of tileset graphics + dw $9200 ;where to load in VRAM + + dw SpinnerArrowAnimTiles + $10 + db 1 + db BANK(SpinnerArrowAnimTiles) + dw $9210 + + dw SpinnerArrowAnimTiles + $20 + db 1 + db BANK(SpinnerArrowAnimTiles) + dw $9300 + + dw SpinnerArrowAnimTiles + $30 + db 1 + db BANK(SpinnerArrowAnimTiles) + dw $9310 + + dw Facility_GFX + $200 + db 1 + db BANK(Facility_GFX) + dw $9200 + + dw Facility_GFX + $210 + db 1 + db BANK(Facility_GFX) + dw $9210 + + dw Facility_GFX + $300 + db 1 + db BANK(Facility_GFX) + dw $9300 + + dw Facility_GFX + $310 + db 1 + db BANK(Facility_GFX) + dw $9310 + +SpinnerArrowTilePointers2: ; 45053 (11:5053) + dw SpinnerArrowAnimTiles + $10 + db 1 + db BANK(SpinnerArrowAnimTiles) + dw $93C0 + + dw SpinnerArrowAnimTiles + $30 + db 1 + db BANK(SpinnerArrowAnimTiles) + dw $93D0 + + dw SpinnerArrowAnimTiles + db 1 + db BANK(SpinnerArrowAnimTiles) + dw $94C0 + + dw SpinnerArrowAnimTiles + $20 + db 1 + db BANK(SpinnerArrowAnimTiles) + dw $94D0 + + dw Gym_GFX + $3C0 + db 1 + db BANK(Facility_GFX) + dw $93C0 + + dw Gym_GFX + $3D0 + db 1 + db BANK(Facility_GFX) + dw $93D0 + + dw Gym_GFX + $4C0 + db 1 + db BANK(Facility_GFX) + dw $94C0 + + dw Gym_GFX + $4D0 + db 1 + db BANK(Facility_GFX) + dw $94D0 + +SpinnerPlayerFacingDirections: ; 45083 (11:5083) +; This isn't the order of the facing directions. Rather, it's a list of +; the facing directions that come next. For example, when the player is +; facing down (00), the next facing direction is left (08). + db $08 ; down -> left + db $0C ; up -> right + db $04 ; left -> up + db $00 ; right -> down + +; these tiles are the animation for the tiles that push the player in dungeons like Rocket HQ +SpinnerArrowAnimTiles: ; 45087 (11:5087) + INCBIN "gfx/spinner_arrow.2bpp" + +RocketHideout2TextPointers: ; 450c7 (11:50c7) + dw RocketHideout2Text1 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + +RocketHideout2TrainerHeaders: ; 450d1 (11:50d1) +RocketHideout2TrainerHeader0: ; 450d1 (11:50d1) + db $1 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d817 ; flag's byte + dw RocketHideout2BattleText2 ; 0x50e8 TextBeforeBattle + dw RocketHideout2AfterBattleTxt2 ; 0x50f2 TextAfterBattle + dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle + dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle + + db $ff + +RocketHideout2Text1: ; 450de (11:50de) + db $08 ; asm + ld hl, RocketHideout2TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout2BattleText2: ; 450e8 (11:50e8) + TX_FAR _RocketHideout2BattleText2 + db "@" + +RocketHideout2EndBattleText2: ; 450ed (11:50ed) + TX_FAR _RocketHideout2EndBattleText2 + db "@" + +RocketHideout2AfterBattleTxt2: ; 450f2 (11:50f2) + TX_FAR _RocketHideout2AfterBattleTxt2 + db "@" diff --git a/scripts/rockethideout3.asm b/scripts/rockethideout3.asm new file mode 100755 index 00000000..d9e1d077 --- /dev/null +++ b/scripts/rockethideout3.asm @@ -0,0 +1,211 @@ +RocketHideout3Script: ; 45225 (11:5225) + call EnableAutoTextBoxDrawing + ld hl, RocketHideout3TrainerHeaders + ld de, RocketHideout3ScriptPointers + ld a, [W_ROCKETHIDEOUT3CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROCKETHIDEOUT3CURSCRIPT], a + ret + +RocketHideout3ScriptPointers: ; 45238 (11:5238) + dw RocketHideout3Script0 + dw Func_324c + dw EndTrainerBattle + dw RocketHideout3Script3 + +RocketHideout3Script0: ; 45240 (11:5240) + ld a, [W_YCOORD] + ld b, a + ld a, [W_XCOORD] + ld c, a + ld hl, RocketHideout3ArrowTilePlayerMovement + call Func_3442 + cp $ff + jp z, CheckFightingMapTrainers + ld hl, $d736 + set 7, [hl] + call Func_3486 + ld a, (SFX_02_52 - SFX_Headers_02) / 3 + call PlaySound + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld a, $3 + ld [W_CURMAPSCRIPT], a + ret + +;format: +;db y,x +;dw pointer to movement +RocketHideout3ArrowTilePlayerMovement: ; 4526b (11:526b) + db $d,$a + dw RocketHideout3ArrowMovement6 + db $13,$a + dw RocketHideout3ArrowMovement1 + db $12,$b + dw RocketHideout3ArrowMovement2 + db $b,$c + dw RocketHideout3ArrowMovement3 + db $11,$c + dw RocketHideout3ArrowMovement4 + db $14,$c + dw RocketHideout3ArrowMovement5 + db $10,$d + dw RocketHideout3ArrowMovement6 + db $b,$e + dw RocketHideout3ArrowMovement7 + db $f,$e + dw RocketHideout3ArrowMovement6 + db $11,$e + dw RocketHideout3ArrowMovement8 + db $13,$e + dw RocketHideout3ArrowMovement9 + db $10,$f + dw RocketHideout3ArrowMovement7 + db $12,$f + dw RocketHideout3ArrowMovement10 + db $d,$10 + dw RocketHideout3ArrowMovement11 + db $c,$11 + dw RocketHideout3ArrowMovement10 + db $10,$12 + dw RocketHideout3ArrowMovement12 + db $FF + +;format: direction, count +;right: $10 +;left: $20 +;up: $40 +;down: $80 +;each list is read starting from the $FF and working backwards +RocketHideout3ArrowMovement1: ; 452ac (11:52ac) + db $10,$04 + db $40,$04 + db $10,$04 + db $FF + +RocketHideout3ArrowMovement2: ; 452b3 (11:52b3) + db $80,$04 + db $10,$04 + db $FF + +RocketHideout3ArrowMovement3: ; 452b8 (11:52b8) + db $20,$02 + db $FF + +RocketHideout3ArrowMovement4: ; 452bb (11:52bb) + db $10,$04 + db $40,$02 + db $10,$02 + db $FF + +RocketHideout3ArrowMovement5: ; 452c2 (11:52c2) + db $10,$04 + db $40,$02 + db $10,$02 + db $40,$03 + db $FF + +RocketHideout3ArrowMovement6: ; 452cb (11:52cb) + db $10,$04 + db $FF + +RocketHideout3ArrowMovement7: ; 452ce (11:52ce) + db $10,$02 + db $FF + +RocketHideout3ArrowMovement8: ; 452d1 (11:52d1) + db $10,$04 + db $40,$02 + db $FF + +RocketHideout3ArrowMovement9: ; 452d6 (11:52d6) + db $10,$04 + db $40,$04 + db $FF + +RocketHideout3ArrowMovement10: ; 452db (11:52db) + db $80,$04 + db $FF + +RocketHideout3ArrowMovement11: ; 452de (11:52de) + db $40,$02 + db $FF + +RocketHideout3ArrowMovement12: ; 452e1 (11:52e1) + db $40,$01 + db $FF + +RocketHideout3Script3 ; 452e4 (11:452e4) + ld a, [$cd38] + and a + jp nz, LoadSpinnerArrowTiles + xor a + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d736 + res 7, [hl] + ld a, $0 + ld [W_CURMAPSCRIPT], a + ret + +RocketHideout3TextPointers: ; 452fa (11:52fa) + dw RocketHideout3Text1 + dw RocketHideout3Text2 + dw Predef5CText + dw Predef5CText + +RocketHideout3TrainerHeaders: ; 45302 (11:5302) +RocketHideout3TrainerHeader0: ; 45302 (11:5302) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d819 ; flag's byte + dw RocketHideout3BattleText2 ; 0x5325 TextBeforeBattle + dw RocketHideout3AfterBattleTxt2 ; 0x532f TextAfterBattle + dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle + dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle + +RocketHideout3TrainerHeader2: ; 4530e (11:530e) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d819 ; flag's byte + dw RocketHideout3BattleTxt ; 0x533e TextBeforeBattle + dw RocketHideout3AfterBattleText3 ; 0x5348 TextAfterBattle + dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle + dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle + + db $ff + +RocketHideout3Text1: ; 4531b (11:531b) + db $08 ; asm + ld hl, RocketHideout3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout3BattleText2: ; 45325 (11:5325) + TX_FAR _RocketHideout3BattleText2 + db "@" + +RocketHideout3EndBattleText2: ; 4532a (11:532a) + TX_FAR _RocketHideout3EndBattleText2 + db "@" + +RocketHideout3AfterBattleTxt2: ; 4532f (11:532f) + TX_FAR _RocketHideout3AfterBattleTxt2 + db "@" + +RocketHideout3Text2: ; 45334 (11:5334) + db $08 ; asm + ld hl, RocketHideout3TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout3BattleTxt: ; 4533e (11:533e) + TX_FAR _RocketHideout3BattleTxt + db "@" + +RocketHideout3EndBattleText3: ; 45343 (11:5343) + TX_FAR _RocketHideout3EndBattleText3 + db "@" + +RocketHideout3AfterBattleText3: ; 45348 (11:5348) + TX_FAR _RocketHide3AfterBattleText3 + db "@" diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm new file mode 100755 index 00000000..5e245e8d --- /dev/null +++ b/scripts/rockethideout4.asm @@ -0,0 +1,232 @@ +RocketHideout4Script: ; 4545d (11:545d) + call RocketHideout4Script_45473 + call EnableAutoTextBoxDrawing + ld hl, RocketHideout4TrainerHeader0 + ld de, RocketHideout4ScriptPointers + ld a, [W_ROCKETHIDEOUT4CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROCKETHIDEOUT4CURSCRIPT], a + ret + +RocketHideout4Script_45473: ; 45473 (11:5473) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld a, [$d81b] + bit 5, a + jr nz, .asm_45496 + and $c + cp $c + jr z, .asm_4548c + ld a, $2d + jr .asm_45498 +.asm_4548c + ld a, (SFX_02_57 - SFX_Headers_02) / 3 + call PlaySound + ld hl, $d81b + set 5, [hl] +.asm_45496 + ld a, $e +.asm_45498 + ld [$d09f], a + ld bc, $050c + ld a, $17 + jp Predef + +RocketHideout4Script_454a3: ; 454a3 (11:54a3) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROCKETHIDEOUT4CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +RocketHideout4ScriptPointers: ; 454ae (11:54ae)c + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + dw RocketHideout4Script3 + +RocketHideout4Script3: ; 454b6 (11:54b6) + ld a, [W_ISINBATTLE] + cp $ff + jp z, RocketHideout4Script_454a3 + call UpdateSprites + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d81b + set 7, [hl] + ld a, $a + ld [H_SPRITEHEIGHT], a + call DisplayTextID + call GBFadeIn1 + ld a, $83 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $87 + ld [$cc4d], a + ld a, $15 + call Predef + call UpdateSprites + call GBFadeOut1 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d126 + set 5, [hl] + ld a, $0 + ld [W_ROCKETHIDEOUT4CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +RocketHideout4TextPointers: ; 45501 (11:5501) + dw RocketHideout4Text1 + dw RocketHideout4Text2 + dw RocketHideout4Text3 + dw RocketHideout4Text4 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw RocketHideout4Text10 + +RocketHideout4TrainerHeaders: ; 45515 (11:5515) +RocketHideout4TrainerHeader0: ; 45515 (11:5515) + db $2 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d81b ; flag's byte + dw RocketHideout4BattleText2 ; 0x5593 TextBeforeBattle + dw RocketHideout4AfterBattleText2 ; 0x559d TextAfterBattle + dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle + dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle + +RocketHideout4TrainerHeader2: ; 45521 (11:5521) + db $3 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d81b ; flag's byte + dw RocketHideout4BattleText3 ; 0x55ac TextBeforeBattle + dw RocketHideout4AfterBattleText3 ; 0x55b6 TextAfterBattle + dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle + dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle + +RocketHideout4TrainerHeader3: ; 4552d (11:552d) + db $4 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d81b ; flag's byte + dw RocketHideout4BattleText4 ; 0x55c5 TextBeforeBattle + dw RocketHideout4AfterBattleText4 ; 0x55cf TextAfterBattle + dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle + dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle + + db $ff + +RocketHideout4Text1: ; 4553a (11:553a) + db $08 ; asm + ld a, [$d81b] + bit 7, a + jp nz, .asm_545571 + ld hl, RocketHideout4Text_4557a + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, RocketHideout4Text_4557f + ld de, RocketHideout4Text_4557f + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + xor a + ldh [$b4], a + ld a, $3 + ld [W_ROCKETHIDEOUT4CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + jr .asm_209f0 ; 0x4556f +.asm_545571 + ld hl, RocketHideout4Text10 + call PrintText +.asm_209f0 ; 0x45577 + jp TextScriptEnd + +RocketHideout4Text_4557a: ; 4557a (11:557a) + TX_FAR _RocketHideout4Text_4557a + db "@" + +RocketHideout4Text_4557f: ; 4557f (11:557f) + TX_FAR _RocketHideout4Text_4557f + db "@" + +RocketHideout4Text10: ; 45584 (11:5584) + TX_FAR _RocketHideout4Text_45584 + db "@" + +RocketHideout4Text2: ; 45589 (11:5589) + db $08 ; asm + ld hl, RocketHideout4TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout4BattleText2: ; 45593 (11:5593) + TX_FAR _RocketHideout4BattleText2 + db "@" + +RocketHideout4EndBattleText2: ; 45598 (11:5598) + TX_FAR _RocketHideout4EndBattleText2 + db "@" + +RocketHideout4AfterBattleText2: ; 4559d (11:559d) + TX_FAR _RocketHide4AfterBattleText2 + db "@" + +RocketHideout4Text3: ; 455a2 (11:55a2) + db $08 ; asm + ld hl, RocketHideout4TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout4BattleText3: ; 455ac (11:55ac) + TX_FAR _RocketHideout4BattleText3 + db "@" + +RocketHideout4EndBattleText3: ; 455b1 (11:55b1) + TX_FAR _RocketHideout4EndBattleText3 + db "@" + +RocketHideout4AfterBattleText3: ; 455b6 (11:55b6) + TX_FAR _RocketHide4AfterBattleText3 + db "@" + +RocketHideout4Text4: ; 455bb (11:55bb) + db $08 ; asm + ld hl, RocketHideout4TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +RocketHideout4BattleText4: ; 455c5 (11:55c5) + TX_FAR _RocketHideout4BattleText4 + db "@" + +RocketHideout4EndBattleText4: ; 455ca (11:55ca) + TX_FAR _RocketHideout4EndBattleText4 + db "@" + +RocketHideout4AfterBattleText4: ; 455cf (11:55cf) + db $8 + ld hl, RocketHideout4Text_455ec ; $55ec + call PrintText + ld hl, $d81b + bit 6, [hl] + set 6, [hl] + jr nz, .asm_455e9 ; 0x455dd $a + ld a, $88 + ld [$cc4d], a + ld a, $15 + call Predef +.asm_455e9 + jp TextScriptEnd + +RocketHideout4Text_455ec: ; 455ec (11:55ec) + TX_FAR _RocketHideout4Text_455ec + db "@" diff --git a/scripts/rockethideoutelevator.asm b/scripts/rockethideoutelevator.asm new file mode 100755 index 00000000..0e499553 --- /dev/null +++ b/scripts/rockethideoutelevator.asm @@ -0,0 +1,84 @@ +RocketHideoutElevatorScript: ; 45710 (11:5710) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + push hl + call nz, RocketHideoutElevatorScript_4572c + pop hl + bit 7, [hl] + res 7, [hl] + call nz, RocketHideoutElevatorScript_4575f + xor a + ld [$cf0c], a + inc a + ld [$cc3c], a + ret + +RocketHideoutElevatorScript_4572c: ; 4572c (11:572c) + ld hl, $d3af + ld a, [$d73b] + ld b, a + ld a, [$d73c] + ld c, a + call RocketHideoutElevatorScript_4573a + +RocketHideoutElevatorScript_4573a: ; 4573a (11:573a) + inc hl + inc hl + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ret + +RocketHideoutElevatorScript_45741: ; 45741 (11:5741) + ld hl, RocketHideoutElavatorFloors ; $5754 + call LoadItemList + ld hl, RocketHideoutElevatorWarpMaps ; $5759 + ld de, $cc5b + ld bc, $0006 + call CopyData + ret + +RocketHideoutElavatorFloors: ; 45754 (11:5754) + db $03 ; num elements in list + db $55, $54, $61 ; "B1F", "B2F", "B4F" + db $FF ; terminator + +RocketHideoutElevatorWarpMaps: ; 45759 (11:5759) +; first byte is warp number +; second byte is map number +; These specify where the player goes after getting out of the elevator. + db $04, ROCKET_HIDEOUT_1 + db $04, ROCKET_HIDEOUT_2 + db $02, ROCKET_HIDEOUT_4 + +RocketHideoutElevatorScript_4575f: ; 4575f (11:575f) + call Delay3 + ld b, BANK(ShakeElevator) + ld hl, ShakeElevator + call Bankswitch + ret + +RocketHideoutElevatorTextPointers: ; 4576b (11:576b) + dw RocketHideoutElevatorText1 + +RocketHideoutElevatorText1: ; 4576d (11:576d) + db $08 ; asm + ld b, LIFT_KEY + call IsItemInBag + jr z, .asm_8d8f0 ; 0x45773 + call RocketHideoutElevatorScript_45741 + ld hl, RocketHideoutElevatorWarpMaps ; $5759 + ld a, $61 + call Predef + jr .asm_46c43 ; 0x45780 +.asm_8d8f0 ; 0x45782 + ld hl, RocketHideoutElevatorText_4578b + call PrintText +.asm_46c43 ; 0x45788 + jp TextScriptEnd + +RocketHideoutElevatorText_4578b: ; 4578b (11:578b) + TX_FAR _RocketElevatorText_4578b ; 0x82438 + db $d, "@" diff --git a/scripts/rocktunnel1.asm b/scripts/rocktunnel1.asm new file mode 100755 index 00000000..be49e494 --- /dev/null +++ b/scripts/rocktunnel1.asm @@ -0,0 +1,214 @@ +RockTunnel1Script: ; 444dc (11:44dc) + call EnableAutoTextBoxDrawing + ld hl, RockTunnel1TrainerHeaders + ld de, RockTunnel1ScriptPointers + ld a, [W_ROCKTUNNEL1CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROCKTUNNEL1CURSCRIPT], a + ret + +RockTunnel1ScriptPointers: ; 444ef (11:44ef) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +RockTunnel1TextPointers: ; 444f5 (11:44f5) + dw RockTunnel1Text1 + dw RockTunnel1Text2 + dw RockTunnel1Text3 + dw RockTunnel1Text4 + dw RockTunnel1Text5 + dw RockTunnel1Text6 + dw RockTunnel1Text7 + dw RockTunnel1Text8 + +RockTunnel1TrainerHeaders: ; 44505 (11:4505) +RockTunnel1TrainerHeader1: ; 44505 (11:4505) + db $1 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d2 ; flag's byte + dw RockTunnel1BattleText1 ; 0x4588 TextBeforeBattle + dw RockTunnel1AfterBattleText1 ; 0x4592 TextAfterBattle + dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle + dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle + +RockTunnel1TrainerHeader2: ; 44511 (11:4511) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d2 ; flag's byte + dw RockTunnel1BattleText2 ; 0x4597 TextBeforeBattle + dw RockTunnel1AfterBattleText2 ; 0x45a1 TextAfterBattle + dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle + dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle + +RockTunnel1TrainerHeader3: ; 4451d (11:451d) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d2 ; flag's byte + dw RockTunnel1BattleText3 ; 0x45a6 TextBeforeBattle + dw RockTunnel1AfterBattleText3 ; 0x45b0 TextAfterBattle + dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle + dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle + +RockTunnel1TrainerHeader4: ; 44529 (11:4529) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d2 ; flag's byte + dw RockTunnel1BattleText4 ; 0x45b5 TextBeforeBattle + dw RockTunnel1AfterBattleText4 ; 0x45bf TextAfterBattle + dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle + dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle + +RockTunnel1TrainerHeader5: ; 44535 (11:4535) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d2 ; flag's byte + dw RockTunnel1BattleText5 ; 0x45c4 TextBeforeBattle + dw RockTunnel1AfterBattleText5 ; 0x45ce TextAfterBattle + dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle + dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle + +RockTunnel1TrainerHeader6: ; 44541 (11:4541) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d2 ; flag's byte + dw RockTunnel1BattleText6 ; 0x45d3 TextBeforeBattle + dw RockTunnel1AfterBattleText6 ; 0x45dd TextAfterBattle + dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle + dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle + +RockTunnel1TrainerHeader7: ; 4454d (11:454d) + db $7 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d2 ; flag's byte + dw RockTunnel1BattleText7 ; 0x45e2 TextBeforeBattle + dw RockTunnel1AfterBattleText7 ; 0x45ec TextAfterBattle + dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle + dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle + + db $ff + +RockTunnel1Text1: ; 4455a (11:455a) + db $8 + ld hl, RockTunnel1TrainerHeader1 ; $4505 + jr asm_0c916 ; 0x4455e $22 + +RockTunnel1Text2: ; 44560 (11:4560) + db $8 + ld hl, RockTunnel1TrainerHeader2 ; $4511 + jr asm_0c916 ; 0x44564 $1c + +RockTunnel1Text3: ; 44566 (11:4566) + db $8 + ld hl, RockTunnel1TrainerHeader3 ; $451d + jr asm_0c916 ; 0x4456a $16 + +RockTunnel1Text4: ; 4456c (11:456c) + db $8 + ld hl, RockTunnel1TrainerHeader4 ; $4529 + jr asm_0c916 ; 0x44570 $10 + +RockTunnel1Text5: ; 44572 (11:4572) + db $8 + ld hl, RockTunnel1TrainerHeader5 ; $4535 + jr asm_0c916 ; 0x44576 $a + +RockTunnel1Text6: ; 44578 (11:4578) + db $8 + ld hl, RockTunnel1TrainerHeader6 ; $4541 + jr asm_0c916 ; 0x4457c $4 + +RockTunnel1Text7: ; 4457e (11:457e) + db $8 + ld hl, RockTunnel1TrainerHeader7 ; $454d +asm_0c916: ; 44582 (11:4582) + call TalkToTrainer + jp TextScriptEnd + +RockTunnel1BattleText1: ; 44588 (11:4588) + TX_FAR _RockTunnel1BattleText1 + db "@" + +RockTunnel1EndBattleText1: ; 4458d (11:458d) + TX_FAR _RockTunnel1EndBattleText1 + db "@" + +RockTunnel1AfterBattleText1: ; 44592 (11:4592) + TX_FAR _RockTunnel1AfterBattleText1 + db "@" + +RockTunnel1BattleText2: ; 44597 (11:4597) + TX_FAR _RockTunnel1BattleText2 + db "@" + +RockTunnel1EndBattleText2: ; 4459c (11:459c) + TX_FAR _RockTunnel1EndBattleText2 + db "@" + +RockTunnel1AfterBattleText2: ; 445a1 (11:45a1) + TX_FAR _RockTunnel1AfterBattleText2 + db "@" + +RockTunnel1BattleText3: ; 445a6 (11:45a6) + TX_FAR _RockTunnel1BattleText3 + db "@" + +RockTunnel1EndBattleText3: ; 445ab (11:45ab) + TX_FAR _RockTunnel1EndBattleText3 + db "@" + +RockTunnel1AfterBattleText3: ; 445b0 (11:45b0) + TX_FAR _RockTunnel1AfterBattleText3 + db "@" + +RockTunnel1BattleText4: ; 445b5 (11:45b5) + TX_FAR _RockTunnel1BattleText4 + db "@" + +RockTunnel1EndBattleText4: ; 445ba (11:45ba) + TX_FAR _RockTunnel1EndBattleText4 + db "@" + +RockTunnel1AfterBattleText4: ; 445bf (11:45bf) + TX_FAR _RockTunnel1AfterBattleText4 + db "@" + +RockTunnel1BattleText5: ; 445c4 (11:45c4) + TX_FAR _RockTunnel1BattleText5 + db "@" + +RockTunnel1EndBattleText5: ; 445c9 (11:45c9) + TX_FAR _RockTunnel1EndBattleText5 + db "@" + +RockTunnel1AfterBattleText5: ; 445ce (11:45ce) + TX_FAR _RockTunnel1AfterBattleText5 + db "@" + +RockTunnel1BattleText6: ; 445d3 (11:45d3) + TX_FAR _RockTunnel1BattleText6 + db "@" + +RockTunnel1EndBattleText6: ; 445d8 (11:45d8) + TX_FAR _RockTunnel1EndBattleText6 + db "@" + +RockTunnel1AfterBattleText6: ; 445dd (11:45dd) + TX_FAR _RockTunnel1AfterBattleText6 + db "@" + +RockTunnel1BattleText7: ; 445e2 (11:45e2) + TX_FAR _RockTunnel1BattleText7 + db "@" + +RockTunnel1EndBattleText7: ; 445e7 (11:45e7) + TX_FAR _RockTunnel1EndBattleText7 + db "@" + +RockTunnel1AfterBattleText7: ; 445ec (11:45ec) + TX_FAR _RockTunnel1AfterBattleText7 + db "@" + +RockTunnel1Text8: ; 445f1 (11:45f1) + TX_FAR _RockTunnel1Text8 + db "@" diff --git a/scripts/rocktunnel2.asm b/scripts/rocktunnel2.asm new file mode 100755 index 00000000..62f4fe18 --- /dev/null +++ b/scripts/rocktunnel2.asm @@ -0,0 +1,242 @@ +RockTunnel2Script: ; 45feb (11:5feb) + call EnableAutoTextBoxDrawing + ld hl, RockTunnel2TrainerHeaders + ld de, RockTunnel2ScriptPointers + ld a, [W_ROCKTUNNEL2CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROCKTUNNEL2CURSCRIPT], a + ret + +RockTunnel2ScriptPointers: ; 45ffe (11:5ffe) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +RockTunnel2TextPointers: ; 46004 (11:6004) + dw RockTunnel2Text1 + dw RockTunnel2Text2 + dw RockTunnel2Text3 + dw RockTunnel2Text4 + dw RockTunnel2Text5 + dw RockTunnel2Text6 + dw RockTunnel2Text7 + dw RockTunnel2Text8 + +RockTunnel2TrainerHeaders: ; 46014 (11:6014) +RockTunnel2TrainerHeader0: ; 46014 (11:6014) + db $1 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d87d ; flag's byte + dw RockTunnel2BattleText2 ; 0x60c5 TextBeforeBattle + dw RockTunnel2AfterBattleText2 ; 0x60cf TextAfterBattle + dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle + dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle + +RockTunnel2TrainerHeader2: ; 46020 (11:6020) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d87d ; flag's byte + dw RockTunnel2BattleText3 ; 0x60d4 TextBeforeBattle + dw RockTunnel2AfterBattleText3 ; 0x60de TextAfterBattle + dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle + dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle + +RockTunnel2TrainerHeader3: ; 4602c (11:602c) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d87d ; flag's byte + dw RockTunnel2BattleText4 ; 0x60e3 TextBeforeBattle + dw RockTunnel2AfterBattleText4 ; 0x60ed TextAfterBattle + dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle + dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle + +RockTunnel2TrainerHeader4: ; 46038 (11:6038) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d87d ; flag's byte + dw RockTunnel2BattleText5 ; 0x60f2 TextBeforeBattle + dw RockTunnel2AfterBattleText5 ; 0x60fc TextAfterBattle + dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle + dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle + +RockTunnel2TrainerHeader5: ; 46044 (11:6044) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d87d ; flag's byte + dw RockTunnel2BattleText6 ; 0x6101 TextBeforeBattle + dw RockTunnel2AfterBattleText6 ; 0x610b TextAfterBattle + dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle + dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle + +RockTunnel2TrainerHeader6: ; 46050 (11:6050) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d87d ; flag's byte + dw RockTunnel2BattleText7 ; 0x6110 TextBeforeBattle + dw RockTunnel2AfterBattleText7 ; 0x611a TextAfterBattle + dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle + dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle + +RockTunnel2TrainerHeader7: ; 4605c (11:605c) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d87d ; flag's byte + dw RockTunnel2BattleText8 ; 0x611f TextBeforeBattle + dw RockTunnel2AfterBattleText8 ; 0x6129 TextAfterBattle + dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle + dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle + +RockTunnel2TrainerHeader8: ; 46068 (11:6068) + db $8 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d87d ; flag's byte + dw RockTunnel2BattleText9 ; 0x612e TextBeforeBattle + dw RockTunnel2AfterBattleText9 ; 0x6138 TextAfterBattle + dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle + dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle + + db $ff + +RockTunnel2Text1: ; 46075 (11:6075) + db $08 ; asm + ld hl, RockTunnel2TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +RockTunnel2Text2: ; 4607f (11:607f) + db $08 ; asm + ld hl, RockTunnel2TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +RockTunnel2Text3: ; 46089 (11:6089) + db $08 ; asm + ld hl, RockTunnel2TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +RockTunnel2Text4: ; 46093 (11:6093) + db $08 ; asm + ld hl, RockTunnel2TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +RockTunnel2Text5: ; 4609d (11:609d) + db $08 ; asm + ld hl, RockTunnel2TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +RockTunnel2Text6: ; 460a7 (11:60a7) + db $08 ; asm + ld hl, RockTunnel2TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +RockTunnel2Text7: ; 460b1 (11:60b1) + db $08 ; asm + ld hl, RockTunnel2TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +RockTunnel2Text8: ; 460bb (11:60bb) + db $08 ; asm + ld hl, RockTunnel2TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +RockTunnel2BattleText2: ; 460c5 (11:60c5) + TX_FAR _RockTunnel2BattleText2 + db "@" + +RockTunnel2EndBattleText2: ; 460ca (11:60ca) + TX_FAR _RockTunnel2EndBattleText2 + db "@" + +RockTunnel2AfterBattleText2: ; 460cf (11:60cf) + TX_FAR _RockTunnel2AfterBattleText2 + db "@" + +RockTunnel2BattleText3: ; 460d4 (11:60d4) + TX_FAR _RockTunnel2BattleText3 + db "@" + +RockTunnel2EndBattleText3: ; 460d9 (11:60d9) + TX_FAR _RockTunnel2EndBattleText3 + db "@" + +RockTunnel2AfterBattleText3: ; 460de (11:60de) + TX_FAR _RockTunnel2AfterBattleText3 + db "@" + +RockTunnel2BattleText4: ; 460e3 (11:60e3) + TX_FAR _RockTunnel2BattleText4 + db "@" + +RockTunnel2EndBattleText4: ; 460e8 (11:60e8) + TX_FAR _RockTunnel2EndBattleText4 + db "@" + +RockTunnel2AfterBattleText4: ; 460ed (11:60ed) + TX_FAR _RockTunnel2AfterBattleText4 + db "@" + +RockTunnel2BattleText5: ; 460f2 (11:60f2) + TX_FAR _RockTunnel2BattleText5 + db "@" + +RockTunnel2EndBattleText5: ; 460f7 (11:60f7) + TX_FAR _RockTunnel2EndBattleText5 + db "@" + +RockTunnel2AfterBattleText5: ; 460fc (11:60fc) + TX_FAR _RockTunnel2AfterBattleText5 + db "@" + +RockTunnel2BattleText6: ; 46101 (11:6101) + TX_FAR _RockTunnel2BattleText6 + db "@" + +RockTunnel2EndBattleText6: ; 46106 (11:6106) + TX_FAR _RockTunnel2EndBattleText6 + db "@" + +RockTunnel2AfterBattleText6: ; 4610b (11:610b) + TX_FAR _RockTunnel2AfterBattleText6 + db "@" + +RockTunnel2BattleText7: ; 46110 (11:6110) + TX_FAR _RockTunnel2BattleText7 + db "@" + +RockTunnel2EndBattleText7: ; 46115 (11:6115) + TX_FAR _RockTunnel2EndBattleText7 + db "@" + +RockTunnel2AfterBattleText7: ; 4611a (11:611a) + TX_FAR _RockTunnel2AfterBattleText7 + db "@" + +RockTunnel2BattleText8: ; 4611f (11:611f) + TX_FAR _RockTunnel2BattleText8 + db "@" + +RockTunnel2EndBattleText8: ; 46124 (11:6124) + TX_FAR _RockTunnel2EndBattleText8 + db "@" + +RockTunnel2AfterBattleText8: ; 46129 (11:6129) + TX_FAR _RockTunnel2AfterBattleText8 + db "@" + +RockTunnel2BattleText9: ; 4612e (11:612e) + TX_FAR _RockTunnel2BattleText9 + db "@" + +RockTunnel2EndBattleText9: ; 46133 (11:6133) + TX_FAR _RockTunnel2EndBattleText9 + db "@" + +RockTunnel2AfterBattleText9: ; 46138 (11:6138) + TX_FAR _RockTunnel2AfterBattleText9 + db "@" diff --git a/scripts/rocktunnelpokecenter.asm b/scripts/rocktunnelpokecenter.asm new file mode 100755 index 00000000..62336edc --- /dev/null +++ b/scripts/rocktunnelpokecenter.asm @@ -0,0 +1,23 @@ +RockTunnelPokecenterScript: ; 493ba (12:53ba) + call Func_22fa + jp EnableAutoTextBoxDrawing + +RockTunnelPokecenterTextPointers: ; 493c0 (12:53c0) + dw RockTunnelPokecenterText1 + dw RockTunnelPokecenterText2 + dw RockTunnelPokecenterText3 + dw RockTunnelPokecenterText4 + +RockTunnelPokecenterText1: ; 493c8 (12:53c8) + db $ff + +RockTunnelPokecenterText2: ; 493c9 (12:53c9) + TX_FAR _RockTunnelPokecenterText1 + db "@" + +RockTunnelPokecenterText3: ; 493ce (12:53ce) + TX_FAR _RockTunnelPokecenterText3 + db "@" + +RockTunnelPokecenterText4: ; 493d3 (12:53d3) + db $f6 diff --git a/scripts/route1.asm b/scripts/route1.asm new file mode 100755 index 00000000..1faf5a48 --- /dev/null +++ b/scripts/route1.asm @@ -0,0 +1,53 @@ +Route1Script: ; 1caaf (7:4aaf) + jp EnableAutoTextBoxDrawing + +Route1TextPointers: ; 1cab2 (7:4ab2) + dw Route1Text1 + dw Route1Text2 + dw Route1Text3 + +Route1Text1: ; 1cab8 (7:4ab8) + db $08 ; asm + ld hl, $d7bf + bit 0, [hl] + set 0, [hl] + jr nz, .asm_02840 ; 0x1cac0 + ld hl, Route1ViridianMartSampleText + call PrintText + ld bc, (POTION << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, Route1Text_1cae8 ; $4ae8 + jr .asm_46d43 ; 0x1cad3 +.BagFull + ld hl, Route1Text_1caf3 ; $4af3 + jr .asm_46d43 ; 0x1cad8 +.asm_02840 ; 0x1cada + ld hl, Route1Text_1caee ; $4aee +.asm_46d43 ; 0x1cadd + call PrintText + jp TextScriptEnd + +Route1ViridianMartSampleText: ; 1cae3 (7:4ae3) + TX_FAR _Route1ViridianMartSampleText + db "@" + +Route1Text_1cae8: ; 1cae8 (7:4ae8) + TX_FAR _Route1Text_1cae8 + db $0b,"@" + +Route1Text_1caee: ; 1caee (7:4aee) + TX_FAR _Route1Text_1caee + db "@" + +Route1Text_1caf3: ; 1caf3 (7:4af3) + TX_FAR _Route1Text_1caf3 + db "@" + +Route1Text2: ; 1caf8 (7:4af8) + TX_FAR _Route1Text2 + db "@" + +Route1Text3: ; 1cafd (7:4afd) + TX_FAR _Route1Text3 + db "@" diff --git a/scripts/route10.asm b/scripts/route10.asm new file mode 100755 index 00000000..1e0ecb91 --- /dev/null +++ b/scripts/route10.asm @@ -0,0 +1,199 @@ +Route10Script: ; 59336 (16:5336) + call EnableAutoTextBoxDrawing + ld hl, Route10TrainerHeaders + ld de, Route10ScriptPointers + ld a, [W_ROUTE10CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE10CURSCRIPT], a + ret + +Route10ScriptPointers: ; 59349 (16:5349) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route10TextPointers: ; 5934f (16:534f) + dw Route10Text1 + dw Route10Text2 + dw Route10Text3 + dw Route10Text4 + dw Route10Text5 + dw Route10Text6 + dw Route10Text7 + dw PokeCenterSignText + dw Route10Text9 + dw Route10Text10 + +Route10TrainerHeaders: ; 59363 (16:5363) +Route10TrainerHeader0: ; 59363 (16:5363) + db $1 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d1 ; flag's byte + dw Route10BattleText1 ; 0x53b6 TextBeforeBattle + dw Route10AfterBattleText1 ; 0x53c0 TextAfterBattle + dw Route10EndBattleText1 ; 0x53bb TextEndBattle + dw Route10EndBattleText1 ; 0x53bb TextEndBattle + +Route10TrainerHeader1: ; 5936f (16:536f) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d1 ; flag's byte + dw Route10BattleText2 ; 0x53cf TextBeforeBattle + dw Route10AfterBattleText2 ; 0x53d9 TextAfterBattle + dw Route10EndBattleText2 ; 0x53d4 TextEndBattle + dw Route10EndBattleText2 ; 0x53d4 TextEndBattle + +Route10TrainerHeader2: ; 5937b (16:537b) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d1 ; flag's byte + dw Route10BattleText3 ; 0x53e8 TextBeforeBattle + dw Route10AfterBattleText3 ; 0x53f2 TextAfterBattle + dw Route10EndBattleText3 ; 0x53ed TextEndBattle + dw Route10EndBattleText3 ; 0x53ed TextEndBattle + +Route10TrainerHeader3: ; 59387 (16:5387) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d1 ; flag's byte + dw Route10BattleText4 ; 0x5401 TextBeforeBattle + dw Route10AfterBattleText4 ; 0x540b TextAfterBattle + dw Route10EndBattleText4 ; 0x5406 TextEndBattle + dw Route10EndBattleText4 ; 0x5406 TextEndBattle + +Route10TrainerHeader4: ; 59393 (16:5393) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d1 ; flag's byte + dw Route10BattleText5 ; 0x541a TextBeforeBattle + dw Route10AfterBattleText5 ; 0x5424 TextAfterBattle + dw Route10EndBattleText5 ; 0x541f TextEndBattle + dw Route10EndBattleText5 ; 0x541f TextEndBattle + +Route10TrainerHeader5: ; 5939f (16:539f) + db $6 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d1 ; flag's byte + dw Route10BattleText6 ; 0x5433 TextBeforeBattle + dw Route10AfterBattleText6 ; 0x543d TextAfterBattle + dw Route10EndBattleText6 ; 0x5438 TextEndBattle + dw Route10EndBattleText6 ; 0x5438 TextEndBattle + + db $ff + +Route10Text1: ; 593ac (16:53ac) + db $08 ; asm + ld hl, Route10TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route10BattleText1: ; 593b6 (16:53b6) + TX_FAR _Route10BattleText1 + db "@" + +Route10EndBattleText1: ; 593bb (16:53bb) + TX_FAR _Route10EndBattleText1 + db "@" + +Route10AfterBattleText1: ; 593c0 (16:53c0) + TX_FAR _Route10AfterBattleText1 + db "@" + +Route10Text2: ; 593c5 (16:53c5) + db $08 ; asm + ld hl, Route10TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route10BattleText2: ; 593cf (16:53cf) + TX_FAR _Route10BattleText2 + db "@" + +Route10EndBattleText2: ; 593d4 (16:53d4) + TX_FAR _Route10EndBattleText2 + db "@" + +Route10AfterBattleText2: ; 593d9 (16:53d9) + TX_FAR _Route10AfterBattleText2 + db "@" + +Route10Text3: ; 593de (16:53de) + db $08 ; asm + ld hl, Route10TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route10BattleText3: ; 593e8 (16:53e8) + TX_FAR _Route10BattleText3 + db "@" + +Route10EndBattleText3: ; 593ed (16:53ed) + TX_FAR _Route10EndBattleText3 + db "@" + +Route10AfterBattleText3: ; 593f2 (16:53f2) + TX_FAR _Route10AfterBattleText3 + db "@" + +Route10Text4: ; 593f7 (16:53f7) + db $08 ; asm + ld hl, Route10TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route10BattleText4: ; 59401 (16:5401) + TX_FAR _Route10BattleText4 + db "@" + +Route10EndBattleText4: ; 59406 (16:5406) + TX_FAR _Route10EndBattleText4 + db "@" + +Route10AfterBattleText4: ; 5940b (16:540b) + TX_FAR _Route10AfterBattleText4 + db "@" + +Route10Text5: ; 59410 (16:5410) + db $08 ; asm + ld hl, Route10TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route10BattleText5: ; 5941a (16:541a) + TX_FAR _Route10BattleText5 + db "@" + +Route10EndBattleText5: ; 5941f (16:541f) + TX_FAR _Route10EndBattleText5 + db "@" + +Route10AfterBattleText5: ; 59424 (16:5424) + TX_FAR _Route10AfterBattleText5 + db "@" + +Route10Text6: ; 59429 (16:5429) + db $08 ; asm + ld hl, Route10TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route10BattleText6: ; 59433 (16:5433) + TX_FAR _Route10BattleText6 + db "@" + +Route10EndBattleText6: ; 59438 (16:5438) + TX_FAR _Route10EndBattleText6 + db "@" + +Route10AfterBattleText6: ; 5943d (16:543d) + TX_FAR _Route10AfterBattleText6 + db "@" + +Route10Text9: ; 59442 (16:5442) +Route10Text7: ; 59442 (16:5442) + TX_FAR _Route10Text7 ; _Route10Text9 + db "@" + +Route10Text10: ; 59447 (16:5447) + TX_FAR _Route10Text10 + db "@" diff --git a/scripts/route11.asm b/scripts/route11.asm new file mode 100755 index 00000000..6217569e --- /dev/null +++ b/scripts/route11.asm @@ -0,0 +1,303 @@ +Route11Script: ; 5944c (16:544c) + call EnableAutoTextBoxDrawing + ld hl, Route11TrainerHeaders + ld de, Route11ScriptPointers + ld a, [W_ROUTE11CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE11CURSCRIPT], a + ret + +Route11ScriptPointers: ; 5945f (16:545f) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route11TextPointers: ; 59465 (16:5465) + dw Route11Text1 + dw Route11Text2 + dw Route11Text3 + dw Route11Text4 + dw Route11Text5 + dw Route11Text6 + dw Route11Text7 + dw Route11Text8 + dw Route11Text9 + dw Route11Text10 + dw Route11Text11 + +Route11TrainerHeaders: ; 5947b (16:547b) +Route11TrainerHeader0: ; 5947b (16:547b) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText1 ; 0x54fe TextBeforeBattle + dw Route11AfterBattleText1 ; 0x5508 TextAfterBattle + dw Route11EndBattleText1 ; 0x5503 TextEndBattle + dw Route11EndBattleText1 ; 0x5503 TextEndBattle + +Route11TrainerHeader1: ; 59487 (16:5487) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText2 ; 0x5517 TextBeforeBattle + dw Route11AfterBattleText2 ; 0x5521 TextAfterBattle + dw Route11EndBattleText2 ; 0x551c TextEndBattle + dw Route11EndBattleText2 ; 0x551c TextEndBattle + +Route11TrainerHeader2: ; 59493 (16:5493) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText3 ; 0x5530 TextBeforeBattle + dw Route11AfterBattleText3 ; 0x553a TextAfterBattle + dw Route11EndBattleText3 ; 0x5535 TextEndBattle + dw Route11EndBattleText3 ; 0x5535 TextEndBattle + +Route11TrainerHeader3: ; 5949f (16:549f) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText4 ; 0x5549 TextBeforeBattle + dw Route11AfterBattleText4 ; 0x5553 TextAfterBattle + dw Route11EndBattleText4 ; 0x554e TextEndBattle + dw Route11EndBattleText4 ; 0x554e TextEndBattle + +Route11TrainerHeader4: ; 594ab (16:54ab) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText5 ; 0x5562 TextBeforeBattle + dw Route11AfterBattleText5 ; 0x556c TextAfterBattle + dw Route11EndBattleText5 ; 0x5567 TextEndBattle + dw Route11EndBattleText5 ; 0x5567 TextEndBattle + +Route11TrainerHeader5: ; 594b7 (16:54b7) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText6 ; 0x557b TextBeforeBattle + dw Route11AfterBattleText6 ; 0x5585 TextAfterBattle + dw Route11EndBattleText6 ; 0x5580 TextEndBattle + dw Route11EndBattleText6 ; 0x5580 TextEndBattle + +Route11TrainerHeader6: ; 594c3 (16:54c3) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText7 ; 0x5594 TextBeforeBattle + dw Route11AfterBattleText7 ; 0x559e TextAfterBattle + dw Route11EndBattleText7 ; 0x5599 TextEndBattle + dw Route11EndBattleText7 ; 0x5599 TextEndBattle + +Route11TrainerHeader7: ; 594cf (16:54cf) + db $8 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText8 ; 0x55ad TextBeforeBattle + dw Route11AfterBattleText8 ; 0x55b7 TextAfterBattle + dw Route11EndBattleText8 ; 0x55b2 TextEndBattle + dw Route11EndBattleText8 ; 0x55b2 TextEndBattle + +Route11TrainerHeader8: ; 594db (16:54db) + db $9 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText9 ; 0x55c6 TextBeforeBattle + dw Route11AfterBattleText9 ; 0x55d0 TextAfterBattle + dw Route11EndBattleText9 ; 0x55cb TextEndBattle + dw Route11EndBattleText9 ; 0x55cb TextEndBattle + +Route11TrainerHeader9: ; 594e7 (16:54e7) + db $a ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d5 ; flag's byte + dw Route11BattleText10 ; 0x55df TextBeforeBattle + dw Route11AfterBattleText10 ; 0x55e9 TextAfterBattle + dw Route11EndBattleText10 ; 0x55e4 TextEndBattle + dw Route11EndBattleText10 ; 0x55e4 TextEndBattle + + db $ff + +Route11Text1: ; 594f4 (16:54f4) + db $8 + ld hl, Route11TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText1: ; 594fe (16:54fe) + TX_FAR _Route11BattleText1 + db "@" + +Route11EndBattleText1: ; 59503 (16:5503) + TX_FAR _Route11EndBattleText1 + db "@" + +Route11AfterBattleText1: ; 59508 (16:5508) + TX_FAR _Route11AfterBattleText1 + db "@" + +Route11Text2: ; 5950d (16:550d) + db $08 ; asm + ld hl, Route11TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText2: ; 59517 (16:5517) + TX_FAR _Route11BattleText2 + db "@" + +Route11EndBattleText2: ; 5951c (16:551c) + TX_FAR _Route11EndBattleText2 + db "@" + +Route11AfterBattleText2: ; 59521 (16:5521) + TX_FAR _Route11AfterBattleText2 + db "@" + +Route11Text3: ; 59526 (16:5526) + db $08 ; asm + ld hl, Route11TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText3: ; 59530 (16:5530) + TX_FAR _Route11BattleText3 + db "@" + +Route11EndBattleText3: ; 59535 (16:5535) + TX_FAR _Route11EndBattleText3 + db "@" + +Route11AfterBattleText3: ; 5953a (16:553a) + TX_FAR _Route11AfterBattleText3 + db "@" + +Route11Text4: ; 5953f (16:553f) + db $08 ; asm + ld hl, Route11TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText4: ; 59549 (16:5549) + TX_FAR _Route11BattleText4 + db "@" + +Route11EndBattleText4: ; 5954e (16:554e) + TX_FAR _Route11EndBattleText4 + db "@" + +Route11AfterBattleText4: ; 59553 (16:5553) + TX_FAR _Route11AfterBattleText4 + db "@" + +Route11Text5: ; 59558 (16:5558) + db $08 ; asm + ld hl, Route11TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText5: ; 59562 (16:5562) + TX_FAR _Route11BattleText5 + db "@" + +Route11EndBattleText5: ; 59567 (16:5567) + TX_FAR _Route11EndBattleText5 + db "@" + +Route11AfterBattleText5: ; 5956c (16:556c) + TX_FAR _Route11AfterBattleText5 + db "@" + +Route11Text6: ; 59571 (16:5571) + db $08 ; asm + ld hl, Route11TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText6: ; 5957b (16:557b) + TX_FAR _Route11BattleText6 + db "@" + +Route11EndBattleText6: ; 59580 (16:5580) + TX_FAR _Route11EndBattleText6 + db "@" + +Route11AfterBattleText6: ; 59585 (16:5585) + TX_FAR _Route11AfterBattleText6 + db "@" + +Route11Text7: ; 5958a (16:558a) + db $08 ; asm + ld hl, Route11TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText7: ; 59594 (16:5594) + TX_FAR _Route11BattleText7 + db "@" + +Route11EndBattleText7: ; 59599 (16:5599) + TX_FAR _Route11EndBattleText7 + db "@" + +Route11AfterBattleText7: ; 5959e (16:559e) + TX_FAR _Route11AfterBattleText7 + db "@" + +Route11Text8: ; 595a3 (16:55a3) + db $08 ; asm + ld hl, Route11TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText8: ; 595ad (16:55ad) + TX_FAR _Route11BattleText8 + db "@" + +Route11EndBattleText8: ; 595b2 (16:55b2) + TX_FAR _Route11EndBattleText8 + db "@" + +Route11AfterBattleText8: ; 595b7 (16:55b7) + TX_FAR _Route11AfterBattleText8 + db "@" + +Route11Text9: ; 595bc (16:55bc) + db $08 ; asm + ld hl, Route11TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText9: ; 595c6 (16:55c6) + TX_FAR _Route11BattleText9 + db "@" + +Route11EndBattleText9: ; 595cb (16:55cb) + TX_FAR _Route11EndBattleText9 + db "@" + +Route11AfterBattleText9: ; 595d0 (16:55d0) + TX_FAR _Route11AfterBattleText9 + db "@" + +Route11Text10: ; 595d5 (16:55d5) + db $08 ; asm + ld hl, Route11TrainerHeader9 + call TalkToTrainer + jp TextScriptEnd + +Route11BattleText10: ; 595df (16:55df) + TX_FAR _Route11BattleText10 + db "@" + +Route11EndBattleText10: ; 595e4 (16:55e4) + TX_FAR _Route11EndBattleText10 + db "@" + +Route11AfterBattleText10: ; 595e9 (16:55e9) + TX_FAR _Route11AfterBattleText10 + db "@" + +Route11Text11: ; 595ee (16:55ee) + TX_FAR _Route11Text11 + db "@" diff --git a/scripts/route11gate.asm b/scripts/route11gate.asm new file mode 100755 index 00000000..e53fc63a --- /dev/null +++ b/scripts/route11gate.asm @@ -0,0 +1,9 @@ +Route11GateScript: ; 4940c (12:540c) + jp EnableAutoTextBoxDrawing + +Route11GateTextPointers: ; 4940f (12:540f) + dw Route11GateText1 + +Route11GateText1: ; 49411 (12:5411) + TX_FAR _Route11GateText1 + db "@" diff --git a/scripts/route11gateupstairs.asm b/scripts/route11gateupstairs.asm new file mode 100755 index 00000000..0ee428c4 --- /dev/null +++ b/scripts/route11gateupstairs.asm @@ -0,0 +1,81 @@ +Route11GateUpstairsScript: ; 49454 (12:5454) + jp DisableAutoTextBoxDrawing + +Route11GateUpstairsTextPointers: ; 49457 (12:5457) + dw Route11GateUpstairsText1 + dw Route11GateUpstairsText2 + dw Route11GateUpstairsText3 + dw Route11GateUpstairsText4 + +Route11GateUpstairsText1: ; 4945f (12:545f) + db $08 ; asm + xor a + ld [wWhichTrade], a + ld a, $54 + call Predef +asm_49469: ; 49469 (12:5469) + jp TextScriptEnd + +Route11GateUpstairsText2: ; 4946c (12:546c) + db $8 + ld a, [$d7d6] + add a + jr c, .asm_4949b ; 0x49471 $28 + ld a, $1e + ld [$ffdb], a + ld a, $47 + ld [$ffdc], a + ld [$d11e], a + call GetItemName + ld h, d + ld l, e + ld de, $cc5b + ld bc, $000d + call CopyData + ld a, $62 + call Predef + ld a, [$ffdb] + dec a + jr nz, .asm_494a1 ; 0x49494 $b + ld hl, $d7d6 + set 7, [hl] +.asm_4949b + ld hl, Route11GateUpstairsText_494a3 + call PrintText +.asm_494a1 + jr asm_49469 ; 0x494a1 $c6 + +Route11GateUpstairsText_494a3: ; 494a3 (12:54a3) + TX_FAR _Route11GateUpstairsText_494a3 + db "@" + +Route11GateUpstairsText3: ; 494a8 (12:54a8) + db $08 ; asm + ld a, [$c109] + cp $4 + jp nz, Route12GateUpstairsScript_495c9 + ld a, [$d7d8] + bit 7, a ; fought snorlax? + ld hl, BinocularsSnorlaxText + jr z, .print + ld hl, BinocularsNoSnorlaxText +.print + call PrintText + jp TextScriptEnd + +BinocularsSnorlaxText: + TX_FAR _BinocularsSnorlaxText + db "@" + +BinocularsNoSnorlaxText: + TX_FAR _BinocularsNoSnorlaxText + db "@" + +Route11GateUpstairsText4: ; 494ce (12:54ce) + db $8 + ld hl, Route11GateUpstairsText_494d5 ; $54d5 + jp Route12GateUpstairsScript_495c9 + +Route11GateUpstairsText_494d5: ; 494d5 (12:54d5) + TX_FAR _Route11GateUpstairsText_494d5 + db "@" diff --git a/scripts/route12.asm b/scripts/route12.asm new file mode 100755 index 00000000..5bbdac3f --- /dev/null +++ b/scripts/route12.asm @@ -0,0 +1,292 @@ +Route12Script: ; 595f3 (16:55f3) + call EnableAutoTextBoxDrawing + ld hl, Route12TrainerHeaders + ld de, Route12ScriptPointers + ld a, [W_ROUTE12CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE12CURSCRIPT], a + ret + +Route12Script_59606: ; 59606 (16:5606) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROUTE12CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route12ScriptPointers: ; 59611 (16:5611) + dw Route12Script0 + dw Func_324c + dw EndTrainerBattle + dw Route12Script3 + +Route12Script0: ; 59619 (16:5619) + ld hl, $d7d8 + bit 7, [hl] + jp nz, CheckFightingMapTrainers + bit 6, [hl] + res 6, [hl] + jp z, CheckFightingMapTrainers + ld a, $d + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, SNORLAX + ld [W_CUROPPONENT], a ; $d059 + ld a, 30 + ld [W_CURENEMYLVL], a ; $d127 + ld a, $1d + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + ld a, $3 + ld [W_ROUTE12CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route12Script3: ; 5964c (16:564c) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jr z, Route12Script_59606 + call UpdateSprites + ld a, [$cf0b] + cp $2 + jr z, .asm_59664 + ld a, $e + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_59664 + ld hl, $d7d8 + set 7, [hl] + call Delay3 + ld a, $0 + ld [W_ROUTE12CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route12TextPointers: ; 59675 (16:5675) + dw Route12Text1 + dw Route12Text2 + dw Route12Text3 + dw Route12Text4 + dw Route12Text5 + dw Route12Text6 + dw Route12Text7 + dw Route12Text8 + dw Predef5CText + dw Predef5CText + dw Route12Text11 + dw Route12Text12 + dw Route12Text13 + dw Route12Text14 + +Route12TrainerHeaders: ; 59691 (16:5691) +Route12TrainerHeader0: ; 59691 (16:5691) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d7 ; flag's byte + dw Route12BattleText1 ; 0x56ff TextBeforeBattle + dw Route12AfterBattleText1 ; 0x5709 TextAfterBattle + dw Route12EndBattleText1 ; 0x5704 TextEndBattle + dw Route12EndBattleText1 ; 0x5704 TextEndBattle + +Route12TrainerHeader1: ; 5969d (16:569d) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d7 ; flag's byte + dw Route12BattleText2 ; 0x5718 TextBeforeBattle + dw Route12AfterBattleText2 ; 0x5722 TextAfterBattle + dw Route12EndBattleText2 ; 0x571d TextEndBattle + dw Route12EndBattleText2 ; 0x571d TextEndBattle + +Route12TrainerHeader2: ; 596a9 (16:56a9) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d7 ; flag's byte + dw Route12BattleText3 ; 0x5731 TextBeforeBattle + dw Route12AfterBattleText3 ; 0x573b TextAfterBattle + dw Route12EndBattleText3 ; 0x5736 TextEndBattle + dw Route12EndBattleText3 ; 0x5736 TextEndBattle + +Route12TrainerHeader3: ; 596b5 (16:56b5) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d7 ; flag's byte + dw Route12BattleText4 ; 0x574a TextBeforeBattle + dw Route12AfterBattleText4 ; 0x5754 TextAfterBattle + dw Route12EndBattleText4 ; 0x574f TextEndBattle + dw Route12EndBattleText4 ; 0x574f TextEndBattle + +Route12TrainerHeader4: ; 596c1 (16:56c1) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d7 ; flag's byte + dw Route12BattleText5 ; 0x5763 TextBeforeBattle + dw Route12AfterBattleText5 ; 0x576d TextAfterBattle + dw Route12EndBattleText5 ; 0x5768 TextEndBattle + dw Route12EndBattleText5 ; 0x5768 TextEndBattle + +Route12TrainerHeader5: ; 596cd (16:56cd) + db $7 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d7 ; flag's byte + dw Route12BattleText6 ; 0x577c TextBeforeBattle + dw Route12AfterBattleText6 ; 0x5786 TextAfterBattle + dw Route12EndBattleText6 ; 0x5781 TextEndBattle + dw Route12EndBattleText6 ; 0x5781 TextEndBattle + +Route12TrainerHeader6: ; 596d9 (16:56d9) + db $8 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7d7 ; flag's byte + dw Route12BattleText7 ; 0x5795 TextBeforeBattle + dw Route12AfterBattleText7 ; 0x579f TextAfterBattle + dw Route12EndBattleText7 ; 0x579a TextEndBattle + dw Route12EndBattleText7 ; 0x579a TextEndBattle + + db $ff + +Route12Text1: ; 596e6 (16:56e6) + TX_FAR _Route12Text1 + db "@" + +Route12Text13: ; 596eb (16:56eb) + TX_FAR _Route12Text13 + db "@" + +Route12Text14: ; 596f0 (16:56f0) + TX_FAR _Route12Text14 + db "@" + +Route12Text2: ; 596f5 (16:56f5) + db $08 ; asm + ld hl, Route12TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route12BattleText1: ; 596ff (16:56ff) + TX_FAR _Route12BattleText1 + db "@" + +Route12EndBattleText1: ; 59704 (16:5704) + TX_FAR _Route12EndBattleText1 + db "@" + +Route12AfterBattleText1: ; 59709 (16:5709) + TX_FAR _Route12AfterBattleText1 + db "@" + +Route12Text3: ; 5970e (16:570e) + db $08 ; asm + ld hl, Route12TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route12BattleText2: ; 59718 (16:5718) + TX_FAR _Route12BattleText2 + db "@" + +Route12EndBattleText2: ; 5971d (16:571d) + TX_FAR _Route12EndBattleText2 + db "@" + +Route12AfterBattleText2: ; 59722 (16:5722) + TX_FAR _Route12AfterBattleText2 + db "@" + +Route12Text4: ; 59727 (16:5727) + db $08 ; asm + ld hl, Route12TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route12BattleText3: ; 59731 (16:5731) + TX_FAR _Route12BattleText3 + db "@" + +Route12EndBattleText3: ; 59736 (16:5736) + TX_FAR _Route12EndBattleText3 + db "@" + +Route12AfterBattleText3: ; 5973b (16:573b) + TX_FAR _Route12AfterBattleText3 + db "@" + +Route12Text5: ; 59740 (16:5740) + db $08 ; asm + ld hl, Route12TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route12BattleText4: ; 5974a (16:574a) + TX_FAR _Route12BattleText4 + db "@" + +Route12EndBattleText4: ; 5974f (16:574f) + TX_FAR _Route12EndBattleText4 + db "@" + +Route12AfterBattleText4: ; 59754 (16:5754) + TX_FAR _Route12AfterBattleText4 + db "@" + +Route12Text6: ; 59759 (16:5759) + db $08 ; asm + ld hl, Route12TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route12BattleText5: ; 59763 (16:5763) + TX_FAR _Route12BattleText5 + db "@" + +Route12EndBattleText5: ; 59768 (16:5768) + TX_FAR _Route12EndBattleText5 + db "@" + +Route12AfterBattleText5: ; 5976d (16:576d) + TX_FAR _Route12AfterBattleText5 + db "@" + +Route12Text7: ; 59772 (16:5772) + db $08 ; asm + ld hl, Route12TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route12BattleText6: ; 5977c (16:577c) + TX_FAR _Route12BattleText6 + db "@" + +Route12EndBattleText6: ; 59781 (16:5781) + TX_FAR _Route12EndBattleText6 + db "@" + +Route12AfterBattleText6: ; 59786 (16:5786) + TX_FAR _Route12AfterBattleText6 + db "@" + +Route12Text8: ; 5978b (16:578b) + db $08 ; asm + ld hl, Route12TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route12BattleText7: ; 59795 (16:5795) + TX_FAR _Route12BattleText7 + db "@" + +Route12EndBattleText7: ; 5979a (16:579a) + TX_FAR _Route12EndBattleText7 + db "@" + +Route12AfterBattleText7: ; 5979f (16:579f) + TX_FAR _Route12AfterBattleText7 + db "@" + +Route12Text11: ; 597a4 (16:57a4) + TX_FAR _Route12Text11 + db "@" + +Route12Text12: ; 597a9 (16:57a9) + TX_FAR _Route12Text12 + db "@" diff --git a/scripts/route12gate.asm b/scripts/route12gate.asm new file mode 100755 index 00000000..d8f09c92 --- /dev/null +++ b/scripts/route12gate.asm @@ -0,0 +1,9 @@ +Route12GateScript: ; 49504 (12:5504) + jp EnableAutoTextBoxDrawing + +Route12GateTextPointers: ; 49507 (12:5507) + dw Route12GateText1 + +Route12GateText1: ; 49509 (12:5509) + TX_FAR _Route12GateText1 + db "@" diff --git a/scripts/route12gateupstairs.asm b/scripts/route12gateupstairs.asm new file mode 100755 index 00000000..97da1b58 --- /dev/null +++ b/scripts/route12gateupstairs.asm @@ -0,0 +1,79 @@ +Route12GateUpstairsScript: ; 49560 (12:5560) + jp DisableAutoTextBoxDrawing + +Route12GateUpstairsTextPointers: ; 49563 (12:5563) + dw Route12GateUpstairsText1 + dw Route12GateUpstairsText2 + dw Route12GateUpstairsText3 + +Route12GateUpstairsText1: ; 49569 (12:5569) + db $08 ; asm + ld a, [$d7d7] + rrca + jr c, .asm_0ad3c ; 0x4956e + ld hl, TM39PreReceiveText + call PrintText + ld bc, (TM_39 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedTM39Text + call PrintText + ld hl, $d7d7 + set 0, [hl] + jr .asm_4ba56 ; 0x49589 +.BagFull + ld hl, TM39NoRoomText + call PrintText + jr .asm_4ba56 ; 0x49591 +.asm_0ad3c ; 0x49593 + ld hl, TM39ExplanationText + call PrintText +.asm_4ba56 ; 0x49599 + jp TextScriptEnd + +TM39PreReceiveText: ; 4959c (12:559c) + TX_FAR _TM39PreReceiveText + db "@" + +ReceivedTM39Text: ; 495a1 (12:55a1) + TX_FAR _ReceivedTM39Text + db $0B, "@" + +TM39ExplanationText: ; 495a7 (12:55a7) + TX_FAR _TM39ExplanationText + db "@" + +TM39NoRoomText: ; 495ac (12:55ac) + TX_FAR _TM39NoRoomText + db "@" + +Route12GateUpstairsText2: ; 495b1 (12:55b1) + db $08 ; asm + ld hl, Route12GateUpstairsText_495b8 + jp Route12GateUpstairsScript_495c9 + +Route12GateUpstairsText_495b8: ; 495b8 (12:55b8) + TX_FAR _Route12GateUpstairsText_495b8 + db "@" + +Route12GateUpstairsText3: ; 495bd (12:55bd) + db $8 + ld hl, Route12GateUpstairsText_495c4 + jp Route12GateUpstairsScript_495c9 + +Route12GateUpstairsText_495c4: ; 495c4 (12:55c4) + TX_FAR _Route12GateUpstairsText_495c4 + db "@" + +Route12GateUpstairsScript_495c9: ; 495c9 (12:55c9) + ld a, [$c109] + cp $4 + jr z, .asm_495d4 ; 0x495ce $4 + ld a, $1 + jr .asm_495d8 ; 0x495d2 $4 +.asm_495d4 + call PrintText + xor a +.asm_495d8 + ld [$cc3c], a + jp TextScriptEnd diff --git a/scripts/route12house.asm b/scripts/route12house.asm new file mode 100755 index 00000000..6b2f5e52 --- /dev/null +++ b/scripts/route12house.asm @@ -0,0 +1,57 @@ +Route12HouseScript: ; 5647f (15:647f) + jp EnableAutoTextBoxDrawing + +Route12HouseTextPointers: ; 56482 (15:6482) + dw Route12HouseText1 + +Route12HouseText1: ; 56484 (15:6484) + db $08 ; asm + ld a, [$d728] + bit 5, a + jr nz, .asm_b4cad + ld hl, Route12HouseText_564c0 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_a2d76 + ld bc, (SUPER_ROD << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, $d728 + set 5, [hl] + ld hl, Route12HouseText_564c5 + jr .asm_df984 +.BagFull + ld hl, Route12HouseText_564d9 + jr .asm_df984 +.asm_a2d76 + ld hl, Route12HouseText_564cf + jr .asm_df984 ; 0x564b5 +.asm_b4cad + ld hl, Route12HouseText_564d4 +.asm_df984 + call PrintText + jp TextScriptEnd + +Route12HouseText_564c0: ; 564c0 (15:64c0) + TX_FAR _Route12HouseText_564c0 + db "@" + +Route12HouseText_564c5: ; 564c5 (15:64c5) + TX_FAR _Route12HouseText_564c5 ; 0x8ca00 + db $0B + TX_FAR _Route12HouseText_564ca ; 0x8ca4f + db "@" + +Route12HouseText_564cf: ; 564cf (15:64cf) + TX_FAR _Route12HouseText_564cf + db "@" + +Route12HouseText_564d4: ; 564d4 (15:64d4) + TX_FAR _Route12HouseText_564d4 + db "@" + +Route12HouseText_564d9: ; 564d9 (15:64d9) + TX_FAR _Route12HouseText_564d9 + db "@" diff --git a/scripts/route13.asm b/scripts/route13.asm new file mode 100755 index 00000000..3c2fea04 --- /dev/null +++ b/scripts/route13.asm @@ -0,0 +1,313 @@ +Route13Script: ; 5581e (15:581e) + call EnableAutoTextBoxDrawing + ld hl, Route13TrainerHeaders + ld de, Route13ScriptPointers + ld a, [W_ROUTE13CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE13CURSCRIPT], a + ret + +Route13ScriptPointers: ; 55831 (15:5831) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route13TextPointers: ; 55837 (15:5837) + dw Route13Text1 + dw Route13Text2 + dw Route13Text3 + dw Route13Text4 + dw Route13Text5 + dw Route13Text6 + dw Route13Text7 + dw Route13Text8 + dw Route13Text9 + dw Route13Text10 + dw Route13Text11 + dw Route13Text12 + dw Route13Text13 + +Route13TrainerHeaders: ; 55851 (15:5851) +Route13TrainerHeader0: ; 55851 (15:5851) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText2 ; 0x58d4 TextBeforeBattle + dw Route13AfterBattleText2 ; 0x58de TextAfterBattle + dw Route13EndBattleText2 ; 0x58d9 TextEndBattle + dw Route13EndBattleText2 ; 0x58d9 TextEndBattle + +Route13TrainerHeader2: ; 5585d (15:585d) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText3 ; 0x58ed TextBeforeBattle + dw Route13AfterBattleText3 ; 0x58f7 TextAfterBattle + dw Route13EndBattleText3 ; 0x58f2 TextEndBattle + dw Route13EndBattleText3 ; 0x58f2 TextEndBattle + +Route13TrainerHeader3: ; 55869 (15:5869) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText4 ; 0x5906 TextBeforeBattle + dw Route13AfterBattleText4 ; 0x5910 TextAfterBattle + dw Route13EndBattleText4 ; 0x590b TextEndBattle + dw Route13EndBattleText4 ; 0x590b TextEndBattle + +Route13TrainerHeader4: ; 55875 (15:5875) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText5 ; 0x591f TextBeforeBattle + dw Route13AfterBattleText5 ; 0x5929 TextAfterBattle + dw Route13EndBattleText5 ; 0x5924 TextEndBattle + dw Route13EndBattleText5 ; 0x5924 TextEndBattle + +Route13TrainerHeader5: ; 55881 (15:5881) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText6 ; 0x5938 TextBeforeBattle + dw Route13AfterBattleText6 ; 0x5942 TextAfterBattle + dw Route13EndBattleText6 ; 0x593d TextEndBattle + dw Route13EndBattleText6 ; 0x593d TextEndBattle + +Route13TrainerHeader6: ; 5588d (15:588d) + db $6 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText7 ; 0x5951 TextBeforeBattle + dw Route13AfterBattleText7 ; 0x595b TextAfterBattle + dw Route13EndBattleText7 ; 0x5956 TextEndBattle + dw Route13EndBattleText7 ; 0x5956 TextEndBattle + +Route13TrainerHeader7: ; 55899 (15:5899) + db $7 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText8 ; 0x596a TextBeforeBattle + dw Route13AfterBattleText8 ; 0x5974 TextAfterBattle + dw Route13EndBattleText8 ; 0x596f TextEndBattle + dw Route13EndBattleText8 ; 0x596f TextEndBattle + +Route13TrainerHeader8: ; 558a5 (15:58a5) + db $8 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText9 ; 0x5983 TextBeforeBattle + dw Route13AfterBattleText9 ; 0x598d TextAfterBattle + dw Route13EndBattleText9 ; 0x5988 TextEndBattle + dw Route13EndBattleText9 ; 0x5988 TextEndBattle + +Route13TrainerHeader9: ; 558b1 (15:58b1) + db $9 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText10 ; 0x599c TextBeforeBattle + dw Route13AfterBattleText10 ; 0x59a6 TextAfterBattle + dw Route13EndBattleText10 ; 0x59a1 TextEndBattle + dw Route13EndBattleText10 ; 0x59a1 TextEndBattle + +Route13TrainerHeader10: ; 558bd (15:58bd) + db $a ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7d9 ; flag's byte + dw Route13BattleText11 ; 0x59b5 TextBeforeBattle + dw Route13AfterBattleText11 ; 0x59bf TextAfterBattle + dw Route13EndBattleText11 ; 0x59ba TextEndBattle + dw Route13EndBattleText11 ; 0x59ba TextEndBattle + + db $ff + +Route13Text1: ; 558ca (15:58ca) + db $08 ; asm + ld hl, Route13TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText2: ; 558d4 (15:58d4) + TX_FAR _Route13BattleText2 + db "@" + +Route13EndBattleText2: ; 558d9 (15:58d9) + TX_FAR _Route13EndBattleText2 + db "@" + +Route13AfterBattleText2: ; 558de (15:58de) + TX_FAR _Route13AfterBattleText2 + db "@" + +Route13Text2: ; 558e3 (15:58e3) + db $08 ; asm + ld hl, Route13TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText3: ; 558ed (15:58ed) + TX_FAR _Route13BattleText3 + db "@" + +Route13EndBattleText3: ; 558f2 (15:58f2) + TX_FAR _Route13EndBattleText3 + db "@" + +Route13AfterBattleText3: ; 558f7 (15:58f7) + TX_FAR _Route13AfterBattleText3 + db "@" + +Route13Text3: ; 558fc (15:58fc) + db $08 ; asm + ld hl, Route13TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText4: ; 55906 (15:5906) + TX_FAR _Route13BattleText4 + db "@" + +Route13EndBattleText4: ; 5590b (15:590b) + TX_FAR _Route13EndBattleText4 + db "@" + +Route13AfterBattleText4: ; 55910 (15:5910) + TX_FAR _Route13AfterBattleText4 + db "@" + +Route13Text4: ; 55915 (15:5915) + db $08 ; asm + ld hl, Route13TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText5: ; 5591f (15:591f) + TX_FAR _Route13BattleText5 + db "@" + +Route13EndBattleText5: ; 55924 (15:5924) + TX_FAR _Route13EndBattleText5 + db "@" + +Route13AfterBattleText5: ; 55929 (15:5929) + TX_FAR _Route13AfterBattleText5 + db "@" + +Route13Text5: ; 5592e (15:592e) + db $08 ; asm + ld hl, Route13TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText6: ; 55938 (15:5938) + TX_FAR _Route13BattleText6 + db "@" + +Route13EndBattleText6: ; 5593d (15:593d) + TX_FAR _Route13EndBattleText6 + db "@" + +Route13AfterBattleText6: ; 55942 (15:5942) + TX_FAR _Route13AfterBattleText6 + db "@" + +Route13Text6: ; 55947 (15:5947) + db $08 ; asm + ld hl, Route13TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText7: ; 55951 (15:5951) + TX_FAR _Route13BattleText7 + db "@" + +Route13EndBattleText7: ; 55956 (15:5956) + TX_FAR _Route13EndBattleText7 + db "@" + +Route13AfterBattleText7: ; 5595b (15:595b) + TX_FAR _Route13AfterBattleText7 + db "@" + +Route13Text7: ; 55960 (15:5960) + db $08 ; asm + ld hl, Route13TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText8: ; 5596a (15:596a) + TX_FAR _Route13BattleText8 + db "@" + +Route13EndBattleText8: ; 5596f (15:596f) + TX_FAR _Route13EndBattleText8 + db "@" + +Route13AfterBattleText8: ; 55974 (15:5974) + TX_FAR _Route13AfterBattleText8 + db "@" + +Route13Text8: ; 55979 (15:5979) + db $08 ; asm + ld hl, Route13TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText9: ; 55983 (15:5983) + TX_FAR _Route13BattleText9 + db "@" + +Route13EndBattleText9: ; 55988 (15:5988) + TX_FAR _Route13EndBattleText9 + db "@" + +Route13AfterBattleText9: ; 5598d (15:598d) + TX_FAR _Route13AfterBattleText9 + db "@" + +Route13Text9: ; 55992 (15:5992) + db $08 ; asm + ld hl, Route13TrainerHeader9 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText10: ; 5599c (15:599c) + TX_FAR _Route13BattleText10 + db "@" + +Route13EndBattleText10: ; 559a1 (15:59a1) + TX_FAR _Route13EndBattleText10 + db "@" + +Route13AfterBattleText10: ; 559a6 (15:59a6) + TX_FAR _Route13AfterBattleText10 + db "@" + +Route13Text10: ; 559ab (15:59ab) + db $08 ; asm + ld hl, Route13TrainerHeader10 + call TalkToTrainer + jp TextScriptEnd + +Route13BattleText11: ; 559b5 (15:59b5) + TX_FAR _Route13BattleText11 + db "@" + +Route13EndBattleText11: ; 559ba (15:59ba) + TX_FAR _Route13EndBattleText11 + db "@" + +Route13AfterBattleText11: ; 559bf (15:59bf) + TX_FAR _Route13AfterBattleText11 + db "@" + +Route13Text11: ; 559c4 (15:59c4) + TX_FAR _Route13Text11 + db "@" + +Route13Text12: ; 559c9 (15:59c9) + TX_FAR _Route13Text12 + db "@" + +Route13Text13: ; 559ce (15:59ce) + TX_FAR _Route13Text13 + db "@" diff --git a/scripts/route14.asm b/scripts/route14.asm new file mode 100755 index 00000000..0f9b49cf --- /dev/null +++ b/scripts/route14.asm @@ -0,0 +1,303 @@ +Route14Script: ; 559d3 (15:59d3) + call EnableAutoTextBoxDrawing + ld hl, Route14TrainerHeaders + ld de, Route14ScriptPointers + ld a, [W_ROUTE14CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE14CURSCRIPT], a + ret + +Route14ScriptPointers: ; 559e6 (15:59e6) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route14TextPointers: ; 559ec (15:59ec) + dw Route14Text1 + dw Route14Text2 + dw Route14Text3 + dw Route14Text4 + dw Route14Text5 + dw Route14Text6 + dw Route14Text7 + dw Route14Text8 + dw Route14Text9 + dw Route14Text10 + dw Route14Text11 + +Route14TrainerHeaders: ; 55a02 (15:5a02) +Route14TrainerHeader0: ; 55a02 (15:5a02) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText1 ; 0x5a85 TextBeforeBattle + dw Route14AfterBattleText1 ; 0x5a8f TextAfterBattle + dw Route14EndBattleText1 ; 0x5a8a TextEndBattle + dw Route14EndBattleText1 ; 0x5a8a TextEndBattle + +Route14TrainerHeader1: ; 55a0e (15:5a0e) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText2 ; 0x5a9e TextBeforeBattle + dw Route14AfterBattleText2 ; 0x5aa8 TextAfterBattle + dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle + dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle + +Route14TrainerHeader2: ; 55a1a (15:5a1a) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText3 ; 0x5ab7 TextBeforeBattle + dw Route14AfterBattleText3 ; 0x5ac1 TextAfterBattle + dw Route14EndBattleText3 ; 0x5abc TextEndBattle + dw Route14EndBattleText3 ; 0x5abc TextEndBattle + +Route14TrainerHeader3: ; 55a26 (15:5a26) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText4 ; 0x5ad0 TextBeforeBattle + dw Route14AfterBattleText4 ; 0x5ada TextAfterBattle + dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle + dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle + +Route14TrainerHeader4: ; 55a32 (15:5a32) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText5 ; 0x5ae9 TextBeforeBattle + dw Route14AfterBattleText5 ; 0x5af3 TextAfterBattle + dw Route14EndBattleText5 ; 0x5aee TextEndBattle + dw Route14EndBattleText5 ; 0x5aee TextEndBattle + +Route14TrainerHeader5: ; 55a3e (15:5a3e) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText6 ; 0x5b02 TextBeforeBattle + dw Route14AfterBattleText6 ; 0x5b0c TextAfterBattle + dw Route14EndBattleText6 ; 0x5b07 TextEndBattle + dw Route14EndBattleText6 ; 0x5b07 TextEndBattle + +Route14TrainerHeader6: ; 55a4a (15:5a4a) + db $7 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText7 ; 0x5b1b TextBeforeBattle + dw Route14AfterBattleText7 ; 0x5b25 TextAfterBattle + dw Route14EndBattleText7 ; 0x5b20 TextEndBattle + dw Route14EndBattleText7 ; 0x5b20 TextEndBattle + +Route14TrainerHeader7: ; 55a56 (15:5a56) + db $8 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText8 ; 0x5b34 TextBeforeBattle + dw Route14AfterBattleText8 ; 0x5b3e TextAfterBattle + dw Route14EndBattleText8 ; 0x5b39 TextEndBattle + dw Route14EndBattleText8 ; 0x5b39 TextEndBattle + +Route14TrainerHeader8: ; 55a62 (15:5a62) + db $9 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText9 ; 0x5b4d TextBeforeBattle + dw Route14AfterBattleText9 ; 0x5b57 TextAfterBattle + dw Route14EndBattleText9 ; 0x5b52 TextEndBattle + dw Route14EndBattleText9 ; 0x5b52 TextEndBattle + +Route14TrainerHeader9: ; 55a6e (15:5a6e) + db $a ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7db ; flag's byte + dw Route14BattleText10 ; 0x5b66 TextBeforeBattle + dw Route14AfterBattleText10 ; 0x5b70 TextAfterBattle + dw Route14EndBattleText10 ; 0x5b6b TextEndBattle + dw Route14EndBattleText10 ; 0x5b6b TextEndBattle + + db $ff + +Route14Text1: ; 55a7b (15:5a7b) + db $08 ; asm + ld hl, Route14TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText1: ; 55a85 (15:5a85) + TX_FAR _Route14BattleText1 + db "@" + +Route14EndBattleText1: ; 55a8a (15:5a8a) + TX_FAR _Route14EndBattleText1 + db "@" + +Route14AfterBattleText1: ; 55a8f (15:5a8f) + TX_FAR _Route14AfterBattleText1 + db "@" + +Route14Text2: ; 55a94 (15:5a94) + db $08 ; asm + ld hl, Route14TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText2: ; 55a9e (15:5a9e) + TX_FAR _Route14BattleText2 + db "@" + +Route14EndBattleText2: ; 55aa3 (15:5aa3) + TX_FAR _Route14EndBattleText2 + db "@" + +Route14AfterBattleText2: ; 55aa8 (15:5aa8) + TX_FAR _Route14AfterBattleText2 + db "@" + +Route14Text3: ; 55aad (15:5aad) + db $08 ; asm + ld hl, Route14TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText3: ; 55ab7 (15:5ab7) + TX_FAR _Route14BattleText3 + db "@" + +Route14EndBattleText3: ; 55abc (15:5abc) + TX_FAR _Route14EndBattleText3 + db "@" + +Route14AfterBattleText3: ; 55ac1 (15:5ac1) + TX_FAR _Route14AfterBattleText3 + db "@" + +Route14Text4: ; 55ac6 (15:5ac6) + db $08 ; asm + ld hl, Route14TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText4: ; 55ad0 (15:5ad0) + TX_FAR _Route14BattleText4 + db "@" + +Route14EndBattleText4: ; 55ad5 (15:5ad5) + TX_FAR _Route14EndBattleText4 + db "@" + +Route14AfterBattleText4: ; 55ada (15:5ada) + TX_FAR _Route14AfterBattleText4 + db "@" + +Route14Text5: ; 55adf (15:5adf) + db $08 ; asm + ld hl, Route14TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText5: ; 55ae9 (15:5ae9) + TX_FAR _Route14BattleText5 + db "@" + +Route14EndBattleText5: ; 55aee (15:5aee) + TX_FAR _Route14EndBattleText5 + db "@" + +Route14AfterBattleText5: ; 55af3 (15:5af3) + TX_FAR _Route14AfterBattleText5 + db "@" + +Route14Text6: ; 55af8 (15:5af8) + db $08 ; asm + ld hl, Route14TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText6: ; 55b02 (15:5b02) + TX_FAR _Route14BattleText6 + db "@" + +Route14EndBattleText6: ; 55b07 (15:5b07) + TX_FAR _Route14EndBattleText6 + db "@" + +Route14AfterBattleText6: ; 55b0c (15:5b0c) + TX_FAR _Route14AfterBattleText6 + db "@" + +Route14Text7: ; 55b11 (15:5b11) + db $08 ; asm + ld hl, Route14TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText7: ; 55b1b (15:5b1b) + TX_FAR _Route14BattleText7 + db "@" + +Route14EndBattleText7: ; 55b20 (15:5b20) + TX_FAR _Route14EndBattleText7 + db "@" + +Route14AfterBattleText7: ; 55b25 (15:5b25) + TX_FAR _Route14AfterBattleText7 + db "@" + +Route14Text8: ; 55b2a (15:5b2a) + db $08 ; asm + ld hl, Route14TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText8: ; 55b34 (15:5b34) + TX_FAR _Route14BattleText8 + db "@" + +Route14EndBattleText8: ; 55b39 (15:5b39) + TX_FAR _Route14EndBattleText8 + db "@" + +Route14AfterBattleText8: ; 55b3e (15:5b3e) + TX_FAR _Route14AfterBattleText8 + db "@" + +Route14Text9: ; 55b43 (15:5b43) + db $08 ; asm + ld hl, Route14TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText9: ; 55b4d (15:5b4d) + TX_FAR _Route14BattleText9 + db "@" + +Route14EndBattleText9: ; 55b52 (15:5b52) + TX_FAR _Route14EndBattleText9 + db "@" + +Route14AfterBattleText9: ; 55b57 (15:5b57) + TX_FAR _Route14AfterBattleText9 + db "@" + +Route14Text10: ; 55b5c (15:5b5c) + db $08 ; asm + ld hl, Route14TrainerHeader9 + call TalkToTrainer + jp TextScriptEnd + +Route14BattleText10: ; 55b66 (15:5b66) + TX_FAR _Route14BattleText10 + db "@" + +Route14EndBattleText10: ; 55b6b (15:5b6b) + TX_FAR _Route14EndBattleText10 + db "@" + +Route14AfterBattleText10: ; 55b70 (15:5b70) + TX_FAR _Route14AfterBattleText10 + db "@" + +Route14Text11: ; 55b75 (15:5b75) + TX_FAR _Route14Text11 + db "@" diff --git a/scripts/route15.asm b/scripts/route15.asm new file mode 100755 index 00000000..f7eaa758 --- /dev/null +++ b/scripts/route15.asm @@ -0,0 +1,296 @@ +Route15Script: ; 597ae (16:57ae) + call EnableAutoTextBoxDrawing + ld hl, Route15TrainerHeaders + ld de, Route15ScriptPointers + ld a, [W_ROUTE15CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE15CURSCRIPT], a + ret + +Route15ScriptPointers: ; 597c1 (16:57c1) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route15TextPointers: ; 597c7 (16:57c7) + dw Route15Text1 + dw Route15Text2 + dw Route15Text3 + dw Route15Text4 + dw Route15Text5 + dw Route15Text6 + dw Route15Text7 + dw Route15Text8 + dw Route15Text9 + dw Route15Text10 + dw Predef5CText + dw Route15Text12 + +Route15TrainerHeaders: ; 597df (16:57df) +Route15TrainerHeader0: ; 597df (16:57df) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText1 ; 0x5898 TextBeforeBattle + dw Route15AfterBattleText1 ; 0x58a2 TextAfterBattle + dw Route15EndBattleText1 ; 0x589d TextEndBattle + dw Route15EndBattleText1 ; 0x589d TextEndBattle + +Route15TrainerHeader1: ; 597eb (16:57eb) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText2 ; 0x58a7 TextBeforeBattle + dw Route15AfterBattleText2 ; 0x58b1 TextAfterBattle + dw Route15EndBattleText2 ; 0x58ac TextEndBattle + dw Route15EndBattleText2 ; 0x58ac TextEndBattle + +Route15TrainerHeader2: ; 597f7 (16:57f7) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText3 ; 0x58b6 TextBeforeBattle + dw Route15AfterBattleText3 ; 0x58c0 TextAfterBattle + dw Route15EndBattleText3 ; 0x58bb TextEndBattle + dw Route15EndBattleText3 ; 0x58bb TextEndBattle + +Route15TrainerHeader3: ; 59803 (16:5803) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText4 ; 0x58c5 TextBeforeBattle + dw Route15AfterBattleText4 ; 0x58cf TextAfterBattle + dw Route15EndBattleText4 ; 0x58ca TextEndBattle + dw Route15EndBattleText4 ; 0x58ca TextEndBattle + +Route15TrainerHeader4: ; 5980f (16:580f) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText5 ; 0x58d4 TextBeforeBattle + dw Route15AfterBattleText5 ; 0x58de TextAfterBattle + dw Route15EndBattleText5 ; 0x58d9 TextEndBattle + dw Route15EndBattleText5 ; 0x58d9 TextEndBattle + +Route15TrainerHeader5: ; 5981b (16:581b) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText6 ; 0x58e3 TextBeforeBattle + dw Route15AfterBattleText6 ; 0x58ed TextAfterBattle + dw Route15EndBattleText6 ; 0x58e8 TextEndBattle + dw Route15EndBattleText6 ; 0x58e8 TextEndBattle + +Route15TrainerHeader6: ; 59827 (16:5827) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText7 ; 0x58f2 TextBeforeBattle + dw Route15AfterBattleText7 ; 0x58fc TextAfterBattle + dw Route15EndBattleText7 ; 0x58f7 TextEndBattle + dw Route15EndBattleText7 ; 0x58f7 TextEndBattle + +Route15TrainerHeader7: ; 59833 (16:5833) + db $8 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText8 ; 0x5901 TextBeforeBattle + dw Route15AfterBattleText8 ; 0x590b TextAfterBattle + dw Route15EndBattleText8 ; 0x5906 TextEndBattle + dw Route15EndBattleText8 ; 0x5906 TextEndBattle + +Route15TrainerHeader8: ; 5983f (16:583f) + db $9 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText9 ; 0x5910 TextBeforeBattle + dw Route15AfterBattleText9 ; 0x591a TextAfterBattle + dw Route15EndBattleText9 ; 0x5915 TextEndBattle + dw Route15EndBattleText9 ; 0x5915 TextEndBattle + +Route15TrainerHeader9: ; 5984b (16:584b) + db $a ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7dd ; flag's byte + dw Route15BattleText10 ; 0x591f TextBeforeBattle + dw Route15AfterBattleText10 ; 0x5929 TextAfterBattle + dw Route15EndBattleText10 ; 0x5924 TextEndBattle + dw Route15EndBattleText10 ; 0x5924 TextEndBattle + + db $ff + +Route15Text1: ; 59858 (16:5858) + db $8 ; asm + ld hl, Route15TrainerHeader0 + jr asm_33cb7 ; 0x5985c $34 + +Route15Text2: ; 5985e (16:585e) + db $8 ; asm + ld hl, Route15TrainerHeader1 + jr asm_33cb7 ; 0x59862 $2e + +Route15Text3: ; 59864 (16:5864) + db $8 ; asm + ld hl, Route15TrainerHeader2 + jr asm_33cb7 ; 0x59868 $28 + +Route15Text4: ; 5986a (16:586a) + db $8 ; asm + ld hl, Route15TrainerHeader3 + jr asm_33cb7 ; 0x5986e $22 + +Route15Text5: ; 59870 (16:5870) + db $8 ; asm + ld hl, Route15TrainerHeader4 + jr asm_33cb7 ; 0x59874 $1c + +Route15Text6: ; 59876 (16:5876) + db $8 ; asm + ld hl, Route15TrainerHeader5 + jr asm_33cb7 ; 0x5987a $16 + +Route15Text7: ; 5987c (16:587c) + db $8 ; asm + ld hl, Route15TrainerHeader6 + jr asm_33cb7 ; 0x59880 $10 + +Route15Text8: ; 59882 (16:5882) + db $8 ; asm + ld hl, Route15TrainerHeader7 + jr asm_33cb7 ; 0x59886 $a + +Route15Text9: ; 59888 (16:5888) + db $8 ; asm + ld hl, Route15TrainerHeader8 + jr asm_33cb7 ; 0x5988c $4 + +Route15Text10: ; 5988e (16:588e) + db $8 ; asm + ld hl, Route15TrainerHeader9 +asm_33cb7: ; 59892 (16:5892) + call TalkToTrainer + jp TextScriptEnd + +Route15BattleText1: ; 59898 (16:5898) + TX_FAR _Route15BattleText1 + db "@" + +Route15EndBattleText1: ; 5989d (16:589d) + TX_FAR _Route15EndBattleText1 + db "@" + +Route15AfterBattleText1: ; 598a2 (16:58a2) + TX_FAR _Route15AfterBattleText1 + db "@" + +Route15BattleText2: ; 598a7 (16:58a7) + TX_FAR _Route15BattleText2 + db "@" + +Route15EndBattleText2: ; 598ac (16:58ac) + TX_FAR _Route15EndBattleText2 + db "@" + +Route15AfterBattleText2: ; 598b1 (16:58b1) + TX_FAR _Route15AfterBattleText2 + db "@" + +Route15BattleText3: ; 598b6 (16:58b6) + TX_FAR _Route15BattleText3 + db "@" + +Route15EndBattleText3: ; 598bb (16:58bb) + TX_FAR _Route15EndBattleText3 + db "@" + +Route15AfterBattleText3: ; 598c0 (16:58c0) + TX_FAR _Route15AfterBattleText3 + db "@" + +Route15BattleText4: ; 598c5 (16:58c5) + TX_FAR _Route15BattleText4 + db "@" + +Route15EndBattleText4: ; 598ca (16:58ca) + TX_FAR _Route15EndBattleText4 + db "@" + +Route15AfterBattleText4: ; 598cf (16:58cf) + TX_FAR _Route15AfterBattleText4 + db "@" + +Route15BattleText5: ; 598d4 (16:58d4) + TX_FAR _Route15BattleText5 + db "@" + +Route15EndBattleText5: ; 598d9 (16:58d9) + TX_FAR _Route15EndBattleText5 + db "@" + +Route15AfterBattleText5: ; 598de (16:58de) + TX_FAR _Route15AfterBattleText5 + db "@" + +Route15BattleText6: ; 598e3 (16:58e3) + TX_FAR _Route15BattleText6 + db "@" + +Route15EndBattleText6: ; 598e8 (16:58e8) + TX_FAR _Route15EndBattleText6 + db "@" + +Route15AfterBattleText6: ; 598ed (16:58ed) + TX_FAR _Route15AfterBattleText6 + db "@" + +Route15BattleText7: ; 598f2 (16:58f2) + TX_FAR _Route15BattleText7 + db "@" + +Route15EndBattleText7: ; 598f7 (16:58f7) + TX_FAR _Route15EndBattleText7 + db "@" + +Route15AfterBattleText7: ; 598fc (16:58fc) + TX_FAR _Route15AfterBattleText7 + db "@" + +Route15BattleText8: ; 59901 (16:5901) + TX_FAR _Route15BattleText8 + db "@" + +Route15EndBattleText8: ; 59906 (16:5906) + TX_FAR _Route15EndBattleText8 + db "@" + +Route15AfterBattleText8: ; 5990b (16:590b) + TX_FAR _Route15AfterBattleText8 + db "@" + +Route15BattleText9: ; 59910 (16:5910) + TX_FAR _Route15BattleText9 + db "@" + +Route15EndBattleText9: ; 59915 (16:5915) + TX_FAR _Route15EndBattleText9 + db "@" + +Route15AfterBattleText9: ; 5991a (16:591a) + TX_FAR _Route15AfterBattleText9 + db "@" + +Route15BattleText10: ; 5991f (16:591f) + TX_FAR _Route15BattleText10 + db "@" + +Route15EndBattleText10: ; 59924 (16:5924) + TX_FAR _Route15EndBattleText10 + db "@" + +Route15AfterBattleText10: ; 59929 (16:5929) + TX_FAR _Route15AfterBattleText10 + db "@" + +Route15Text12: ; 5992e (16:592e) + TX_FAR _Route15Text12 + db "@" diff --git a/scripts/route15gate.asm b/scripts/route15gate.asm new file mode 100755 index 00000000..76e9aadf --- /dev/null +++ b/scripts/route15gate.asm @@ -0,0 +1,9 @@ +Route15GateScript: ; 49602 (12:5602) + jp EnableAutoTextBoxDrawing + +Route15GateTextPointers: ; 49605 (12:5605) + dw Route15GateText1 + +Route15GateText1: ; 49607 (12:5607) + TX_FAR _Route15GateText1 + db "@" diff --git a/scripts/route15gateupstairs.asm b/scripts/route15gateupstairs.asm new file mode 100755 index 00000000..3c2afcd4 --- /dev/null +++ b/scripts/route15gateupstairs.asm @@ -0,0 +1,47 @@ +Route15GateUpstairsScript: ; 4964a (12:564a) + jp DisableAutoTextBoxDrawing + +Route15GateUpstairsTextPointers: ; 4964d (12:564d) + dw Route15GateUpstairsText1 + dw Route15GateUpstairsText2 + +Route15GateUpstairsText1: ; 49651 (12:5651) + db $8 + ld a, [$d7dd] + bit 0, a + jr nz, .asm_49683 ; 0x49657 $2a + ld a, $32 + ld [$ffdb], a + ld a, EXP__ALL + ld [$ffdc], a + ld [$d11e], a + call GetItemName + ld hl, $cd6d + ld de, $cc5b + ld bc, $000d + call CopyData + ld a, $62 + call Predef + ld a, [$ffdb] + cp $1 + jr nz, .asm_49689 ; 0x4967c $b + ld hl, $d7dd + set 0, [hl] +.asm_49683 + ld hl, Route15GateUpstairsText_4968c + call PrintText +.asm_49689 + jp TextScriptEnd + +Route15GateUpstairsText_4968c: ; 4968c (12:568c) + TX_FAR _Route15GateUpstairsText_4968c + db "@" + +Route15GateUpstairsText2: ; 49691 (12:5691) + db $8 + ld hl, Route15GateUpstairsText_49698 + jp Route12GateUpstairsScript_495c9 + +Route15GateUpstairsText_49698: ; 49698 (12:5698) + TX_FAR _Route15GateUpstairsText_49698 + db "@" diff --git a/scripts/route16.asm b/scripts/route16.asm new file mode 100755 index 00000000..08739131 --- /dev/null +++ b/scripts/route16.asm @@ -0,0 +1,263 @@ +Route16Script: ; 59933 (16:5933) + call EnableAutoTextBoxDrawing + ld hl, Route16TrainerHeaders + ld de, Route16ScriptPointers + ld a, [W_ROUTE16CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE16CURSCRIPT], a + ret + +Func_59946: ; 59946 (16:5946) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROUTE16CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route16ScriptPointers: ; 59951 (16:5951) + dw Route16Script0 + dw Func_324c + dw EndTrainerBattle + dw Route16Script3 + +Route16Script0: ; 59959 (16:5959) + ld hl, $d7e0 + bit 1, [hl] + jp nz, CheckFightingMapTrainers + bit 0, [hl] + res 0, [hl] + jp z, CheckFightingMapTrainers + ld a, $a + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, SNORLAX + ld [W_CUROPPONENT], a ; $d059 + ld a, 30 + ld [W_CURENEMYLVL], a ; $d127 + ld a, $21 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + call UpdateSprites + ld a, $3 + ld [W_ROUTE16CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route16Script3: ; 5998f (16:598f) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, Func_59946 + call UpdateSprites + ld a, [$cf0b] + cp $2 + jr z, .asm_599a8 + ld a, $b + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_599a8 + ld hl, $d7e0 + set 1, [hl] + call Delay3 + ld a, $0 + ld [W_ROUTE16CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route16TextPointers: ; 599b9 (16:59b9) + dw Route16Text1 + dw Route16Text2 + dw Route16Text3 + dw Route16Text4 + dw Route16Text5 + dw Route16Text6 + dw Route16Text7 + dw Route16Text8 + dw Route16Text9 + dw Route16Text10 + dw Route16Text11 + +Route16TrainerHeaders: ; 599cf (16:59cf) +Route16TrainerHeader0: ; 599cf (16:59cf) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7df ; flag's byte + dw Route16BattleText1 ; 0x5a22 TextBeforeBattle + dw Route16AfterBattleText1 ; 0x5a2c TextAfterBattle + dw Route16EndBattleText1 ; 0x5a27 TextEndBattle + dw Route16EndBattleText1 ; 0x5a27 TextEndBattle + +Route16TrainerHeader1: ; 599db (16:59db) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7df ; flag's byte + dw Route16BattleText2 ; 0x5a3b TextBeforeBattle + dw Route16AfterBattleText2 ; 0x5a45 TextAfterBattle + dw Route16EndBattleText2 ; 0x5a40 TextEndBattle + dw Route16EndBattleText2 ; 0x5a40 TextEndBattle + +Route16TrainerHeader2: ; 599e7 (16:59e7) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7df ; flag's byte + dw Route16BattleText3 ; 0x5a54 TextBeforeBattle + dw Route16AfterBattleText3 ; 0x5a5e TextAfterBattle + dw Route16EndBattleText3 ; 0x5a59 TextEndBattle + dw Route16EndBattleText3 ; 0x5a59 TextEndBattle + +Route16TrainerHeader3: ; 599f3 (16:59f3) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7df ; flag's byte + dw Route16BattleText4 ; 0x5a6d TextBeforeBattle + dw Route16AfterBattleText4 ; 0x5a77 TextAfterBattle + dw Route16EndBattleText4 ; 0x5a72 TextEndBattle + dw Route16EndBattleText4 ; 0x5a72 TextEndBattle + +Route16TrainerHeader4: ; 599ff (16:59ff) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7df ; flag's byte + dw Route16BattleText5 ; 0x5a86 TextBeforeBattle + dw Route16AfterBattleText5 ; 0x5a90 TextAfterBattle + dw Route16EndBattleText5 ; 0x5a8b TextEndBattle + dw Route16EndBattleText5 ; 0x5a8b TextEndBattle + +Route16TrainerHeader5: ; 59a0b (16:5a0b) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7df ; flag's byte + dw Route16BattleText6 ; 0x5a9f TextBeforeBattle + dw Route16AfterBattleText6 ; 0x5aa9 TextAfterBattle + dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle + dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle + + db $ff + +Route16Text1: ; 59a18 (16:5a18) + db $08 ; asm + ld hl, Route16TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route16BattleText1: ; 59a22 (16:5a22) + TX_FAR _Route16BattleText1 + db "@" + +Route16EndBattleText1: ; 59a27 (16:5a27) + TX_FAR _Route16EndBattleText1 + db "@" + +Route16AfterBattleText1: ; 59a2c (16:5a2c) + TX_FAR _Route16AfterBattleText1 + db "@" + +Route16Text2: ; 59a31 (16:5a31) + db $08 ; asm + ld hl, Route16TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route16BattleText2: ; 59a3b (16:5a3b) + TX_FAR _Route16BattleText2 + db "@" + +Route16EndBattleText2: ; 59a40 (16:5a40) + TX_FAR _Route16EndBattleText2 + db "@" + +Route16AfterBattleText2: ; 59a45 (16:5a45) + TX_FAR _Route16AfterBattleText2 + db "@" + +Route16Text3: ; 59a4a (16:5a4a) + db $08 ; asm + ld hl, Route16TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route16BattleText3: ; 59a54 (16:5a54) + TX_FAR _Route16BattleText3 + db "@" + +Route16EndBattleText3: ; 59a59 (16:5a59) + TX_FAR _Route16EndBattleText3 + db "@" + +Route16AfterBattleText3: ; 59a5e (16:5a5e) + TX_FAR _Route16AfterBattleText3 + db "@" + +Route16Text4: ; 59a63 (16:5a63) + db $08 ; asm + ld hl, Route16TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route16BattleText4: ; 59a6d (16:5a6d) + TX_FAR _Route16BattleText4 + db "@" + +Route16EndBattleText4: ; 59a72 (16:5a72) + TX_FAR _Route16EndBattleText4 + db "@" + +Route16AfterBattleText4: ; 59a77 (16:5a77) + TX_FAR _Route16AfterBattleText4 + db "@" + +Route16Text5: ; 59a7c (16:5a7c) + db $08 ; asm + ld hl, Route16TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route16BattleText5: ; 59a86 (16:5a86) + TX_FAR _Route16BattleText5 + db "@" + +Route16EndBattleText5: ; 59a8b (16:5a8b) + TX_FAR _Route16EndBattleText5 + db "@" + +Route16AfterBattleText5: ; 59a90 (16:5a90) + TX_FAR _Route16AfterBattleText5 + db "@" + +Route16Text6: ; 59a95 (16:5a95) + db $08 ; asm + ld hl, Route16TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route16BattleText6: ; 59a9f (16:5a9f) + TX_FAR _Route16BattleText6 + db "@" + +Route16EndBattleText6: ; 59aa4 (16:5aa4) + TX_FAR _Route16EndBattleText6 + db "@" + +Route16AfterBattleText6: ; 59aa9 (16:5aa9) + TX_FAR _Route16AfterBattleText6 + db "@" + +Route16Text7: ; 59aae (16:5aae) + TX_FAR _Route16Text7 + db "@" + +Route16Text10: ; 59ab3 (16:5ab3) + TX_FAR _Route16Text10 + db "@" + +Route16Text11: ; 59ab8 (16:5ab8) + TX_FAR _Route16Text11 + db "@" + +Route16Text8: ; 59abd (16:5abd) + TX_FAR _Route16Text8 + db "@" + +Route16Text9: ; 59ac2 (16:5ac2) + TX_FAR _Route16Text9 + db "@" diff --git a/scripts/route16gate.asm b/scripts/route16gate.asm new file mode 100755 index 00000000..5131a1ff --- /dev/null +++ b/scripts/route16gate.asm @@ -0,0 +1,121 @@ +Route16GateScript: ; 496be (12:56be) + ld hl, $d732 + res 5, [hl] + call EnableAutoTextBoxDrawing + ld a, [W_ROUTE16GATECURSCRIPT] + ld hl, Route16GateScriptPointers + jp CallFunctionInTable + +Route16GateScriptPointers: ; 496cf (12:56cf) + dw Route16GateScript0 + dw Route16GateScript1 + dw Route16GateScript2 + dw Route16GateScript3 + +Route16GateScript0: ; 496d7 (12:56d7) + call Func_49755 + ret nz + ld hl, CoordsData_49714 + call ArePlayerCoordsInArray + ret nc + ld a, $3 + ld [$ff8c], a + call DisplayTextID + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, [$cd3d] + cp $1 + jr z, .asm_4970e ; 0x496f1 $1b + ld a, [$cd3d] + dec a + ld [$cd38], a + ld b, $0 + ld c, a + ld a, $40 + ld hl, $ccd3 + call FillMemory + call Func_3486 + ld a, $1 + ld [W_ROUTE16GATECURSCRIPT], a + ret +.asm_4970e + ld a, $2 + ld [W_ROUTE16GATECURSCRIPT], a + ret + +CoordsData_49714: ; 49714 (12:5714) + db $07,$04 + db $08,$04 + db $09,$04 + db $0A,$04 + db $FF + +Route16GateScript1: ; 4971d (12:571d) + ld a, [$cd38] + and a + ret nz + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + +Route16GateScript2: ; 49727 (12:5727) + ld a, $1 + ld [H_SPRITEHEIGHT], a + call DisplayTextID + ld a, $1 + ld [$cd38], a + ld a, $10 + ld [$ccd3], a + call Func_3486 + ld a, $3 + ld [W_ROUTE16GATECURSCRIPT], a + ret + +Route16GateScript3: ; 49741 (12:5741) + ld a, [$cd38] + and a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d730 + res 7, [hl] + ld a, $0 + ld [W_ROUTE16GATECURSCRIPT], a + ret + +Func_49755: ; 49755 (12:5755) + ld b, BICYCLE + jp IsItemInBag + +Route16GateTextPointers: ; 4975a (12:575a) + dw Route16GateText1 + dw Route16GateText2 + dw Route16GateText3 + +Route16GateText1: ; 49760 (12:5760) + db $08 ; asm + call Func_49755 + jr z, .asm_0bdf3 ; 0x49764 + ld hl, Route16GateText_4977c + call PrintText + jr .asm_56c9d ; 0x4976c +.asm_0bdf3 ; 0x4976e + ld hl, Route16GateText_49777 + call PrintText +.asm_56c9d ; 0x49774 + jp TextScriptEnd + +Route16GateText_49777: ; 49777 (12:5777) + TX_FAR _Route16GateText_49777 + db "@" + +Route16GateText_4977c: ; 4977c (12:577c) + TX_FAR _Route16GateText_4977c + db "@" + +Route16GateText3: ; 49781 (12:5781) + TX_FAR _Route16GateText_49781 + db "@" + +Route16GateText2: ; 49786 (12:5786) + TX_FAR _Route16GateText2 + db "@" diff --git a/scripts/route16gateupstairs.asm b/scripts/route16gateupstairs.asm new file mode 100755 index 00000000..c9996dcd --- /dev/null +++ b/scripts/route16gateupstairs.asm @@ -0,0 +1,46 @@ +Route16GateUpstairsScript: ; 4980b (12:580b) + jp DisableAutoTextBoxDrawing + +Route16GateUpstairsTextPointers: ; 4980e (12:580e) + dw Route16GateUpstairsText1 + dw Route16GateUpstairsText2 + dw Route16GateUpstairsText3 + dw Route16GateUpstairsText4 + +Route16GateUpstairsText1: ; 49816 (12:5816) + db $08 ; asm + ld hl, Route16GateUpstairsText_49820 + call PrintText + jp TextScriptEnd + +Route16GateUpstairsText_49820: ; 49820 (12:5820) + TX_FAR _Route16GateUpstairsText_49820 + db "@" + +Route16GateUpstairsText2: ; 49825 (12:5825) + db $08 ; asm + ld hl, Route16GateUpstairsText_4982f + call PrintText + jp TextScriptEnd + +Route16GateUpstairsText_4982f: ; 4982f (12:582f) + TX_FAR _Route16GateUpstairsText_4982f + db "@" + +Route16GateUpstairsText3: ; 49834 (12:5834) + db $8 + ld hl, Route16GateUpstairsText_4983b + jp Route12GateUpstairsScript_495c9 + +Route16GateUpstairsText_4983b: ; 4983b (12:583b) + TX_FAR _Route16GateUpstairsText_4983b + db "@" + +Route16GateUpstairsText4: ; 49840 (12:5840) + db $8 + ld hl, Route16GateUpstairsText_49847 ; $5847 + jp Route12GateUpstairsScript_495c9 + +Route16GateUpstairsText_49847: ; 49847 (12:5847) + TX_FAR _Route16GateUpstairsText_49847 + db "@" diff --git a/scripts/route16house.asm b/scripts/route16house.asm new file mode 100755 index 00000000..21c21b79 --- /dev/null +++ b/scripts/route16house.asm @@ -0,0 +1,56 @@ +Route16HouseScript: ; 1e5f8 (7:65f8) + jp EnableAutoTextBoxDrawing + +Route16HouseTextPointers: ; 1e5fb (7:65fb) + dw Route16HouseText1 + dw Route16HouseText2 + +Route16HouseText1: ; 1e5ff (7:65ff) + db $08 ; asm + ld a, [$d7e0] + bit 6, a + ld hl, HM02ExplanationText + jr nz, .asm_13616 ; 0x1e608 + ld hl, Route16HouseText3 + call PrintText + ld bc, (HM_02 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, $d7e0 + set 6, [hl] + ld hl, ReceivedHM02Text + jr .asm_13616 ; 0x1e620 +.BagFull + ld hl, HM02NoRoomText +.asm_13616 ; 0x1e625 + call PrintText + jp TextScriptEnd + +Route16HouseText3: ; 1e62b (7:662b) + TX_FAR _Route16HouseText3 + db "@" + +ReceivedHM02Text: ; 1e630 (7:6630) + TX_FAR _ReceivedHM02Text + db $11, "@" + +HM02ExplanationText: ; 1e636 (7:6636) + TX_FAR _HM02ExplanationText + db "@" + +HM02NoRoomText: ; 1e63b (7:663b) + TX_FAR _HM02NoRoomText + db "@" + +Route16HouseText2: ; 1e640 (7:6640) + db $08 ; asm + ld hl, Route16HouseText_1e652 + call PrintText + ld a, FEAROW + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +Route16HouseText_1e652: ; 1e652 (7:6652) + TX_FAR _Route16HouseText_1e652 + db "@" diff --git a/scripts/route17.asm b/scripts/route17.asm new file mode 100755 index 00000000..976d4236 --- /dev/null +++ b/scripts/route17.asm @@ -0,0 +1,328 @@ +Route17Script: ; 55b7a (15:5b7a) + call EnableAutoTextBoxDrawing + ld hl, Route17TrainerHeaders + ld de, Route17ScriptPointers + ld a, [W_ROUTE17CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE17CURSCRIPT], a + ret + +Route17ScriptPointers: ; 55b8d (15:5b8d) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route17TextPointers: ; 55b93 (15:5b93) + dw Route17Text1 + dw Route17Text2 + dw Route17Text3 + dw Route17Text4 + dw Route17Text5 + dw Route17Text6 + dw Route17Text7 + dw Route17Text8 + dw Route17Text9 + dw Route17Text10 + dw Route17Text11 + dw Route17Text12 + dw Route17Text13 + dw Route17Text14 + dw Route17Text15 + dw Route17Text16 + +Route17TrainerHeaders: ; 55bb3 (15:5bb3) +Route17TrainerHeader0: ; 55bb3 (15:5bb3) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText1 ; 0x5c36 TextBeforeBattle + dw Route17AfterBattleText1 ; 0x5c40 TextAfterBattle + dw Route17EndBattleText1 ; 0x5c3b TextEndBattle + dw Route17EndBattleText1 ; 0x5c3b TextEndBattle + +Route17TrainerHeader1: ; 55bbf (15:5bbf) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText2 ; 0x5c4f TextBeforeBattle + dw Route17AfterBattleText2 ; 0x5c59 TextAfterBattle + dw Route17EndBattleText2 ; 0x5c54 TextEndBattle + dw Route17EndBattleText2 ; 0x5c54 TextEndBattle + +Route17TrainerHeader2: ; 55bcb (15:5bcb) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText3 ; 0x5c68 TextBeforeBattle + dw Route17AfterBattleText3 ; 0x5c72 TextAfterBattle + dw Route17EndBattleText3 ; 0x5c6d TextEndBattle + dw Route17EndBattleText3 ; 0x5c6d TextEndBattle + +Route17TrainerHeader3: ; 55bd7 (15:5bd7) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText4 ; 0x5c81 TextBeforeBattle + dw Route17AfterBattleText4 ; 0x5c8b TextAfterBattle + dw Route17EndBattleText4 ; 0x5c86 TextEndBattle + dw Route17EndBattleText4 ; 0x5c86 TextEndBattle + +Route17TrainerHeader4: ; 55be3 (15:5be3) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText5 ; 0x5c9a TextBeforeBattle + dw Route17AfterBattleText5 ; 0x5ca4 TextAfterBattle + dw Route17EndBattleText5 ; 0x5c9f TextEndBattle + dw Route17EndBattleText5 ; 0x5c9f TextEndBattle + +Route17TrainerHeader5: ; 55bef (15:5bef) + db $6 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText6 ; 0x5cb3 TextBeforeBattle + dw Route17AfterBattleText6 ; 0x5cbd TextAfterBattle + dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle + dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle + +Route17TrainerHeader6: ; 55bfb (15:5bfb) + db $7 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText7 ; 0x5ccc TextBeforeBattle + dw Route17AfterBattleText7 ; 0x5cd6 TextAfterBattle + dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle + dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle + +Route17TrainerHeader7: ; 55c07 (15:5c07) + db $8 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText8 ; 0x5ce5 TextBeforeBattle + dw Route17AfterBattleText8 ; 0x5cef TextAfterBattle + dw Route17EndBattleText8 ; 0x5cea TextEndBattle + dw Route17EndBattleText8 ; 0x5cea TextEndBattle + +Route17TrainerHeader8: ; 55c13 (15:5c13) + db $9 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText9 ; 0x5cfe TextBeforeBattle + dw Route17AfterBattleText9 ; 0x5d08 TextAfterBattle + dw Route17EndBattleText9 ; 0x5d03 TextEndBattle + dw Route17EndBattleText9 ; 0x5d03 TextEndBattle + +Route17TrainerHeader9: ; 55c1f (15:5c1f) + db $a ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e1 ; flag's byte + dw Route17BattleText10 ; 0x5d17 TextBeforeBattle + dw Route17AfterBattleText10 ; 0x5d21 TextAfterBattle + dw Route17EndBattleText10 ; 0x5d1c TextEndBattle + dw Route17EndBattleText10 ; 0x5d1c TextEndBattle + + db $ff + +Route17Text1: ; 55c2c (15:5c2c) + db $08 ; asm + ld hl, Route17TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText1: ; 55c36 (15:5c36) + TX_FAR _Route17BattleText1 + db "@" + +Route17EndBattleText1: ; 55c3b (15:5c3b) + TX_FAR _Route17EndBattleText1 + db "@" + +Route17AfterBattleText1: ; 55c40 (15:5c40) + TX_FAR _Route17AfterBattleText1 + db "@" + +Route17Text2: ; 55c45 (15:5c45) + db $08 ; asm + ld hl, Route17TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText2: ; 55c4f (15:5c4f) + TX_FAR _Route17BattleText2 + db "@" + +Route17EndBattleText2: ; 55c54 (15:5c54) + TX_FAR _Route17EndBattleText2 + db "@" + +Route17AfterBattleText2: ; 55c59 (15:5c59) + TX_FAR _Route17AfterBattleText2 + db "@" + +Route17Text3: ; 55c5e (15:5c5e) + db $08 ; asm + ld hl, Route17TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText3: ; 55c68 (15:5c68) + TX_FAR _Route17BattleText3 + db "@" + +Route17EndBattleText3: ; 55c6d (15:5c6d) + TX_FAR _Route17EndBattleText3 + db "@" + +Route17AfterBattleText3: ; 55c72 (15:5c72) + TX_FAR _Route17AfterBattleText3 + db "@" + +Route17Text4: ; 55c77 (15:5c77) + db $08 ; asm + ld hl, Route17TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText4: ; 55c81 (15:5c81) + TX_FAR _Route17BattleText4 + db "@" + +Route17EndBattleText4: ; 55c86 (15:5c86) + TX_FAR _Route17EndBattleText4 + db "@" + +Route17AfterBattleText4: ; 55c8b (15:5c8b) + TX_FAR _Route17AfterBattleText4 + db "@" + +Route17Text5: ; 55c90 (15:5c90) + db $08 ; asm + ld hl, Route17TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText5: ; 55c9a (15:5c9a) + TX_FAR _Route17BattleText5 + db "@" + +Route17EndBattleText5: ; 55c9f (15:5c9f) + TX_FAR _Route17EndBattleText5 + db "@" + +Route17AfterBattleText5: ; 55ca4 (15:5ca4) + TX_FAR _Route17AfterBattleText5 + db "@" + +Route17Text6: ; 55ca9 (15:5ca9) + db $08 ; asm + ld hl, Route17TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText6: ; 55cb3 (15:5cb3) + TX_FAR _Route17BattleText6 + db "@" + +Route17EndBattleText6: ; 55cb8 (15:5cb8) + TX_FAR _Route17EndBattleText6 + db "@" + +Route17AfterBattleText6: ; 55cbd (15:5cbd) + TX_FAR _Route17AfterBattleText6 + db "@" + +Route17Text7: ; 55cc2 (15:5cc2) + db $08 ; asm + ld hl, Route17TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText7: ; 55ccc (15:5ccc) + TX_FAR _Route17BattleText7 + db "@" + +Route17EndBattleText7: ; 55cd1 (15:5cd1) + TX_FAR _Route17EndBattleText7 + db "@" + +Route17AfterBattleText7: ; 55cd6 (15:5cd6) + TX_FAR _Route17AfterBattleText7 + db "@" + +Route17Text8: ; 55cdb (15:5cdb) + db $08 ; asm + ld hl, Route17TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText8: ; 55ce5 (15:5ce5) + TX_FAR _Route17BattleText8 + db "@" + +Route17EndBattleText8: ; 55cea (15:5cea) + TX_FAR _Route17EndBattleText8 + db "@" + +Route17AfterBattleText8: ; 55cef (15:5cef) + TX_FAR _Route17AfterBattleText8 + db "@" + +Route17Text9: ; 55cf4 (15:5cf4) + db $08 ; asm + ld hl, Route17TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText9: ; 55cfe (15:5cfe) + TX_FAR _Route17BattleText9 + db "@" + +Route17EndBattleText9: ; 55d03 (15:5d03) + TX_FAR _Route17EndBattleText9 + db "@" + +Route17AfterBattleText9: ; 55d08 (15:5d08) + TX_FAR _Route17AfterBattleText9 + db "@" + +Route17Text10: ; 55d0d (15:5d0d) + db $08 ; asm + ld hl, Route17TrainerHeader9 + call TalkToTrainer + jp TextScriptEnd + +Route17BattleText10: ; 55d17 (15:5d17) + TX_FAR _Route17BattleText10 + db "@" + +Route17EndBattleText10: ; 55d1c (15:5d1c) + TX_FAR _Route17EndBattleText10 + db "@" + +Route17AfterBattleText10: ; 55d21 (15:5d21) + TX_FAR _Route17AfterBattleText10 + db "@" + +Route17Text11: ; 55d26 (15:5d26) + TX_FAR _Route17Text11 + db "@" + +Route17Text12: ; 55d2b (15:5d2b) + TX_FAR _Route17Text12 + db "@" + +Route17Text13: ; 55d30 (15:5d30) + TX_FAR _Route17Text13 + db "@" + +Route17Text14: ; 55d35 (15:5d35) + TX_FAR _Route17Text14 + db "@" + +Route17Text15: ; 55d3a (15:5d3a) + TX_FAR _Route17Text15 + db "@" + +Route17Text16: ; 55d3f (15:5d3f) + TX_FAR _Route17Text16 + db "@" diff --git a/scripts/route18.asm b/scripts/route18.asm new file mode 100755 index 00000000..b15f5e42 --- /dev/null +++ b/scripts/route18.asm @@ -0,0 +1,112 @@ +Route18Script: ; 59ac7 (16:5ac7) + call EnableAutoTextBoxDrawing + ld hl, Route18TrainerHeaders + ld de, Route18ScriptPointers + ld a, [W_ROUTE18CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE18CURSCRIPT], a + ret + +Route18ScriptPointers: ; 59ada (16:5ada) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route18TextPointers: ; 59ae0 (16:5ae0) + dw Route18Text1 + dw Route18Text2 + dw Route18Text3 + dw Route18Text4 + dw Route18Text5 + +Route18TrainerHeaders: ; 59aea (16:5aea) +Route18TrainerHeader0: ; 59aea (16:5aea) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e3 ; flag's byte + dw Route18BattleText1 ; 0x5b19 TextBeforeBattle + dw Route18AfterBattleText1 ; 0x5b23 TextAfterBattle + dw Route18EndBattleText1 ; 0x5b1e TextEndBattle + dw Route18EndBattleText1 ; 0x5b1e TextEndBattle + +Route18TrainerHeader1: ; 59af6 (16:5af6) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e3 ; flag's byte + dw Route18BattleText2 ; 0x5b32 TextBeforeBattle + dw Route18AfterBattleText2 ; 0x5b3c TextAfterBattle + dw Route18EndBattleText2 ; 0x5b37 TextEndBattle + dw Route18EndBattleText2 ; 0x5b37 TextEndBattle + +Route18TrainerHeader2: ; 59b02 (16:5b02) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e3 ; flag's byte + dw Route18BattleText3 ; 0x5b4b TextBeforeBattle + dw Route18AfterBattleText3 ; 0x5b55 TextAfterBattle + dw Route18EndBattleText3 ; 0x5b50 TextEndBattle + dw Route18EndBattleText3 ; 0x5b50 TextEndBattle + + db $ff + +Route18Text1: ; 59b0f (16:5b0f) + db $08 ; asm + ld hl, Route18TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route18BattleText1: ; 59b19 (16:5b19) + TX_FAR _Route18BattleText1 + db "@" + +Route18EndBattleText1: ; 59b1e (16:5b1e) + TX_FAR _Route18EndBattleText1 + db "@" + +Route18AfterBattleText1: ; 59b23 (16:5b23) + TX_FAR _Route18AfterBattleText1 + db "@" + +Route18Text2: ; 59b28 (16:5b28) + db $08 ; asm + ld hl, Route18TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route18BattleText2: ; 59b32 (16:5b32) + TX_FAR _Route18BattleText2 + db "@" + +Route18EndBattleText2: ; 59b37 (16:5b37) + TX_FAR _Route18EndBattleText2 + db "@" + +Route18AfterBattleText2: ; 59b3c (16:5b3c) + TX_FAR _Route18AfterBattleText2 + db "@" + +Route18Text3: ; 59b41 (16:5b41) + db $08 ; asm + ld hl, Route18TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route18BattleText3: ; 59b4b (16:5b4b) + TX_FAR _Route18BattleText3 + db "@" + +Route18EndBattleText3: ; 59b50 (16:5b50) + TX_FAR _Route18EndBattleText3 + db "@" + +Route18AfterBattleText3: ; 59b55 (16:5b55) + TX_FAR _Route18AfterBattleText3 + db "@" + +Route18Text4: ; 59b5a (16:5b5a) + TX_FAR _Route18Text4 + db "@" + +Route18Text5: ; 59b5f (16:5b5f) + TX_FAR _Route18Text5 + db "@" diff --git a/scripts/route18gate.asm b/scripts/route18gate.asm new file mode 100755 index 00000000..d55ed412 --- /dev/null +++ b/scripts/route18gate.asm @@ -0,0 +1,112 @@ +Route18GateScript: ; 49876 (12:5876) + ld hl, $d732 + res 5, [hl] + call EnableAutoTextBoxDrawing + ld a, [W_ROUTE18GATECURSCRIPT] + ld hl, Route18GateScriptPointers + jp CallFunctionInTable + +Route18GateScriptPointers: ; 49887 (12:5887) + dw Route18GateScript0 + dw Route18GateScript1 + dw Route18GateScript2 + dw Route18GateScript3 + +Route18GateScript0: ; 4988f (12:588f) + call Func_49755 + ret nz + ld hl, CoordsData_498cc + call ArePlayerCoordsInArray + ret nc + ld a, $2 + ld [$ff8c], a + call DisplayTextID + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, [$cd3d] + cp $1 + jr z, .asm_498c6 ; 0x498a9 $1b + ld a, [$cd3d] + dec a + ld [$cd38], a + ld b, $0 + ld c, a + ld a, $40 + ld hl, $ccd3 + call FillMemory + call Func_3486 + ld a, $1 + ld [W_ROUTE18GATECURSCRIPT], a + ret +.asm_498c6 + ld a, $2 + ld [W_ROUTE18GATECURSCRIPT], a + ret + +CoordsData_498cc: ; 498cc (12:58cc) + db $03,$04 + db $04,$04 + db $05,$04 + db $06,$04 + db $FF + +Route18GateScript1: ; 498d5 (12:58d5) + ld a, [$cd38] + and a + ret nz + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + +Route18GateScript2: ; 498df (12:58df) + ld a, $1 + ld [H_SPRITEHEIGHT], a + call DisplayTextID + ld a, $1 + ld [$cd38], a + ld a, $10 + ld [$ccd3], a + call Func_3486 + ld a, $3 + ld [W_ROUTE18GATECURSCRIPT], a + ret + +Route18GateScript3: ; 498f9 (12:58f9) + ld a, [$cd38] + and a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d730 + res 7, [hl] + ld a, $0 + ld [W_ROUTE18GATECURSCRIPT], a + ret + +Route18GateTextPointers: ; 4990d (12:590d) + dw Route18GateText1 + dw Route18GateText2 + +Route18GateText1: ; 49911 (12:5911) + db $08 ; asm + call Func_49755 + jr z, .asm_3c84d ; 0x49915 + ld hl, Route18GateText_4992d + call PrintText + jr .asm_a8410 ; 0x4991d +.asm_3c84d ; 0x4991f + ld hl, Route18GateText_49928 + call PrintText +.asm_a8410 ; 0x49925 + jp TextScriptEnd + +Route18GateText_49928: ; 49928 (12:5928) + TX_FAR _Route18GateText_49928 + db "@" + +Route18GateText_4992d: ; 4992d (12:592d) + TX_FAR _Route18GateText_4992d + db "@" + +Route18GateText2: ; 49932 (12:5932) + TX_FAR _Route18GateText_49932 + db "@" diff --git a/scripts/route18gateupstairs.asm b/scripts/route18gateupstairs.asm new file mode 100755 index 00000000..d9164d1d --- /dev/null +++ b/scripts/route18gateupstairs.asm @@ -0,0 +1,33 @@ +Route18GateUpstairsScript: ; 49975 (12:5975) + jp DisableAutoTextBoxDrawing + +Route18GateUpstairsTextPointers: ; 49978 (12:5978) + dw Route18GateUpstairsText1 + dw Route18GateUpstairsText2 + dw Route18GateUpstairsText3 + +Route18GateUpstairsText1: ; 4997e (12:597e) + db $08 ; asm + ld a, $5 + ld [wWhichTrade], a + ld a, $54 + call Predef + jp TextScriptEnd + +Route18GateUpstairsText2: ; 4998c (12:598c) + db $8 + ld hl, Route18GateUpstairsText_49993 ; $5993 + jp Route12GateUpstairsScript_495c9 + +Route18GateUpstairsText_49993: ; 49993 (12:5993) + TX_FAR _Route18GateUpstairsText_49993 + db "@" + +Route18GateUpstairsText3: ; 49998 (12:5998) + db $8 + ld hl, Route18GateUpstairsText_4999f ; $599f + jp Route12GateUpstairsScript_495c9 + +Route18GateUpstairsText_4999f: ; 4999f (12:599f) + TX_FAR _Route18GateUpstairsText_4999f + db "@" diff --git a/scripts/route19.asm b/scripts/route19.asm new file mode 100755 index 00000000..8bc641ff --- /dev/null +++ b/scripts/route19.asm @@ -0,0 +1,303 @@ +Route19Script: ; 55d44 (15:5d44) + call EnableAutoTextBoxDrawing + ld hl, Route19TrainerHeaders + ld de, Route19ScriptPointers + ld a, [W_ROUTE19CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE19CURSCRIPT], a + ret + +Route19ScriptPointers: ; 55d57 (15:5d57) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route19TextPointers: ; 55d5d (15:5d5d) + dw Route19Text1 + dw Route19Text2 + dw Route19Text3 + dw Route19Text4 + dw Route19Text5 + dw Route19Text6 + dw Route19Text7 + dw Route19Text8 + dw Route19Text9 + dw Route19Text10 + dw Route19Text11 + +Route19TrainerHeaders: ; 55d73 (15:5d73) +Route19TrainerHeader0: ; 55d73 (15:5d73) + db $1 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText1 ; 0x5e50 TextBeforeBattle + dw Route19AfterBattleText1 ; 0x5e5a TextAfterBattle + dw Route19EndBattleText1 ; 0x5e55 TextEndBattle + dw Route19EndBattleText1 ; 0x5e55 TextEndBattle + +Route19TrainerHeader1: ; 55d7f (15:5d7f) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText2 ; 0x5e5f TextBeforeBattle + dw Route19AfterBattleText2 ; 0x5e69 TextAfterBattle + dw Route19EndBattleText2 ; 0x5e64 TextEndBattle + dw Route19EndBattleText2 ; 0x5e64 TextEndBattle + +Route19TrainerHeader2: ; 55d8b (15:5d8b) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText3 ; 0x5e6e TextBeforeBattle + dw Route19AfterBattleText3 ; 0x5e78 TextAfterBattle + dw Route19EndBattleText3 ; 0x5e73 TextEndBattle + dw Route19EndBattleText3 ; 0x5e73 TextEndBattle + +Route19TrainerHeader3: ; 55d97 (15:5d97) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText4 ; 0x5e7d TextBeforeBattle + dw Route19AfterBattleText4 ; 0x5e87 TextAfterBattle + dw Route19EndBattleText4 ; 0x5e82 TextEndBattle + dw Route19EndBattleText4 ; 0x5e82 TextEndBattle + +Route19TrainerHeader4: ; 55da3 (15:5da3) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText5 ; 0x5e8c TextBeforeBattle + dw Route19AfterBattleText5 ; 0x5e96 TextAfterBattle + dw Route19EndBattleText5 ; 0x5e91 TextEndBattle + dw Route19EndBattleText5 ; 0x5e91 TextEndBattle + +Route19TrainerHeader5: ; 55daf (15:5daf) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText6 ; 0x5e9b TextBeforeBattle + dw Route19AfterBattleText6 ; 0x5ea5 TextAfterBattle + dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle + dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle + +Route19TrainerHeader6: ; 55dbb (15:5dbb) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText7 ; 0x5eaa TextBeforeBattle + dw Route19AfterBattleText7 ; 0x5eb4 TextAfterBattle + dw Route19EndBattleText7 ; 0x5eaf TextEndBattle + dw Route19EndBattleText7 ; 0x5eaf TextEndBattle + +Route19TrainerHeader7: ; 55dc7 (15:5dc7) + db $8 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText8 ; 0x5eb9 TextBeforeBattle + dw Route19AfterBattleText8 ; 0x5ec3 TextAfterBattle + dw Route19EndBattleText8 ; 0x5ebe TextEndBattle + dw Route19EndBattleText8 ; 0x5ebe TextEndBattle + +Route19TrainerHeader8: ; 55dd3 (15:5dd3) + db $9 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText9 ; 0x5ec8 TextBeforeBattle + dw Route19AfterBattleText9 ; 0x5ed2 TextAfterBattle + dw Route19EndBattleText9 ; 0x5ecd TextEndBattle + dw Route19EndBattleText9 ; 0x5ecd TextEndBattle + +Route19TrainerHeader9: ; 55ddf (15:5ddf) + db $a ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e5 ; flag's byte + dw Route19BattleText10 ; 0x5ed7 TextBeforeBattle + dw Route19AfterBattleText10 ; 0x5ee1 TextAfterBattle + dw Route19EndBattleText10 ; 0x5edc TextEndBattle + dw Route19EndBattleText10 ; 0x5edc TextEndBattle + + db $ff + +Route19Text1: ; 55dec (15:5dec) + db $08 ; asm + ld hl, Route19TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route19Text2: ; 55df6 (15:5df6) + db $08 ; asm + ld hl, Route19TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route19Text3: ; 55e00 (15:5e00) + db $08 ; asm + ld hl, Route19TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route19Text4: ; 55e0a (15:5e0a) + db $08 ; asm + ld hl, Route19TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route19Text5: ; 55e14 (15:5e14) + db $08 ; asm + ld hl, Route19TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route19Text6: ; 55e1e (15:5e1e) + db $08 ; asm + ld hl, Route19TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route19Text7: ; 55e28 (15:5e28) + db $08 ; asm + ld hl, Route19TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route19Text8: ; 55e32 (15:5e32) + db $08 ; asm + ld hl, Route19TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route19Text9: ; 55e3c (15:5e3c) + db $08 ; asm + ld hl, Route19TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route19Text10: ; 55e46 (15:5e46) + db $08 ; asm + ld hl, Route19TrainerHeader9 + call TalkToTrainer + jp TextScriptEnd + +Route19BattleText1: ; 55e50 (15:5e50) + TX_FAR _Route19BattleText1 + db "@" + +Route19EndBattleText1: ; 55e55 (15:5e55) + TX_FAR _Route19EndBattleText1 + db "@" + +Route19AfterBattleText1: ; 55e5a (15:5e5a) + TX_FAR _Route19AfterBattleText1 + db "@" + +Route19BattleText2: ; 55e5f (15:5e5f) + TX_FAR _Route19BattleText2 + db "@" + +Route19EndBattleText2: ; 55e64 (15:5e64) + TX_FAR _Route19EndBattleText2 + db "@" + +Route19AfterBattleText2: ; 55e69 (15:5e69) + TX_FAR _Route19AfterBattleText2 + db "@" + +Route19BattleText3: ; 55e6e (15:5e6e) + TX_FAR _Route19BattleText3 + db "@" + +Route19EndBattleText3: ; 55e73 (15:5e73) + TX_FAR _Route19EndBattleText3 + db "@" + +Route19AfterBattleText3: ; 55e78 (15:5e78) + TX_FAR _Route19AfterBattleText3 + db "@" + +Route19BattleText4: ; 55e7d (15:5e7d) + TX_FAR _Route19BattleText4 + db "@" + +Route19EndBattleText4: ; 55e82 (15:5e82) + TX_FAR _Route19EndBattleText4 + db "@" + +Route19AfterBattleText4: ; 55e87 (15:5e87) + TX_FAR _Route19AfterBattleText4 + db "@" + +Route19BattleText5: ; 55e8c (15:5e8c) + TX_FAR _Route19BattleText5 + db "@" + +Route19EndBattleText5: ; 55e91 (15:5e91) + TX_FAR _Route19EndBattleText5 + db "@" + +Route19AfterBattleText5: ; 55e96 (15:5e96) + TX_FAR _Route19AfterBattleText5 + db "@" + +Route19BattleText6: ; 55e9b (15:5e9b) + TX_FAR _Route19BattleText6 + db "@" + +Route19EndBattleText6: ; 55ea0 (15:5ea0) + TX_FAR _Route19EndBattleText6 + db "@" + +Route19AfterBattleText6: ; 55ea5 (15:5ea5) + TX_FAR _Route19AfterBattleText6 + db "@" + +Route19BattleText7: ; 55eaa (15:5eaa) + TX_FAR _Route19BattleText7 + db "@" + +Route19EndBattleText7: ; 55eaf (15:5eaf) + TX_FAR _Route19EndBattleText7 + db "@" + +Route19AfterBattleText7: ; 55eb4 (15:5eb4) + TX_FAR _Route19AfterBattleText7 + db "@" + +Route19BattleText8: ; 55eb9 (15:5eb9) + TX_FAR _Route19BattleText8 + db "@" + +Route19EndBattleText8: ; 55ebe (15:5ebe) + TX_FAR _Route19EndBattleText8 + db "@" + +Route19AfterBattleText8: ; 55ec3 (15:5ec3) + TX_FAR _Route19AfterBattleText8 + db "@" + +Route19BattleText9: ; 55ec8 (15:5ec8) + TX_FAR _Route19BattleText9 + db "@" + +Route19EndBattleText9: ; 55ecd (15:5ecd) + TX_FAR _Route19EndBattleText9 + db "@" + +Route19AfterBattleText9: ; 55ed2 (15:5ed2) + TX_FAR _Route19AfterBattleText9 + db "@" + +Route19BattleText10: ; 55ed7 (15:5ed7) + TX_FAR _Route19BattleText10 + db "@" + +Route19EndBattleText10: ; 55edc (15:5edc) + TX_FAR _Route19EndBattleText10 + db "@" + +Route19AfterBattleText10: ; 55ee1 (15:5ee1) + TX_FAR _Route19AfterBattleText10 + db "@" + +Route19Text11: ; 55ee6 (15:5ee6) + TX_FAR _Route19Text11 + db "@" diff --git a/scripts/route2.asm b/scripts/route2.asm new file mode 100755 index 00000000..fdc5eb6c --- /dev/null +++ b/scripts/route2.asm @@ -0,0 +1,16 @@ +Route2Script: ; 554e3 (15:54e3) + jp EnableAutoTextBoxDrawing + +Route2TextPointers: ; 554e6 (15:54e6) + dw Predef5CText + dw Predef5CText + dw Route2Text3 + dw Route2Text4 + +Route2Text3: ; 554ee (15:54ee) + TX_FAR _Route2Text3 + db "@" + +Route2Text4: ; 554f3 (15:54f3) + TX_FAR _Route2Text4 + db "@" diff --git a/scripts/route20.asm b/scripts/route20.asm new file mode 100755 index 00000000..2d5f3077 --- /dev/null +++ b/scripts/route20.asm @@ -0,0 +1,356 @@ +Route20Script: ; 50ca9 (14:4ca9) + ld hl, $d7e7 + bit 0, [hl] + res 0, [hl] + call nz, Route20Script_50cc6 + call EnableAutoTextBoxDrawing + ld hl, Route20TrainerHeader0 ; $4d3a + ld de, Route20ScriptPointers + ld a, [W_ROUTE20CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE20CURSCRIPT], a + ret + +Route20Script_50cc6: ; 50cc6 (14:4cc6) + ld a, [$d880] + and $3 + cp $3 + jr z, .asm_50cef + ld a, $d7 + call Route20Script_50d0c + ld a, $d8 + call Route20Script_50d0c + ld hl, .MissableObjectIDs ; $4ce8 +.asm_50cdc + ld a, [hli] + cp $ff + jr z, .asm_50cef + push hl + call Route20Script_50d14 + pop hl + jr .asm_50cdc + +.MissableObjectIDs: ; 50ce8 (14:4ce8) + db $D9,$DA,$DB,$DC,$DF,$E0,$FF + +.asm_50cef + ld a, [$d881] + and $3 + cp $3 + ret z + ld a, $dd + call Route20Script_50d0c + ld a, $de + call Route20Script_50d0c + ld a, $e1 + call Route20Script_50d14 + ld a, $e2 + call Route20Script_50d14 + ret + +Route20Script_50d0c: ; 50d0c (14:4d0c) + ld [$cc4d], a + ld a, $15 + jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8)) + +Route20Script_50d14: ; 50d14 (14:4d14) + ld [$cc4d], a + ld a, $11 + jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + +Route20ScriptPointers: ; 50d1c (14:4d1c) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route20TextPointers: ; 50d22 (14:4d22) + dw Route20Text1 + dw Route20Text2 + dw Route20Text3 + dw Route20Text4 + dw Route20Text5 + dw Route20Text6 + dw Route20Text7 + dw Route20Text8 + dw Route20Text9 + dw Route20Text10 + dw Route20Text11 + dw Route20Text12 + +Route20TrainerHeaders: ; 50d3a (14:4d3a) +Route20TrainerHeader0: ; 50d3a (14:4d3a) + db $1 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText1 ; 0x4e17 TextBeforeBattle + dw Route20AfterBattleText1 ; 0x4e21 TextAfterBattle + dw Route20EndBattleText1 ; 0x4e1c TextEndBattle + dw Route20EndBattleText1 ; 0x4e1c TextEndBattle + +Route20TrainerHeader2: ; 50d46 (14:4d46) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText2 ; 0x4e26 TextBeforeBattle + dw Route20AfterBattleText2 ; 0x4e30 TextAfterBattle + dw Route20EndBattleText2 ; 0x4e2b TextEndBattle + dw Route20EndBattleText2 ; 0x4e2b TextEndBattle + +Route20TrainerHeader3: ; 50d52 (14:4d52) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText3 ; 0x4e35 TextBeforeBattle + dw Route20AfterBattleText3 ; 0x4e3f TextAfterBattle + dw Route20EndBattleText3 ; 0x4e3a TextEndBattle + dw Route20EndBattleText3 ; 0x4e3a TextEndBattle + +Route20TrainerHeader4: ; 50d5e (14:4d5e) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText4 ; 0x4e44 TextBeforeBattle + dw Route20AfterBattleText4 ; 0x4e4e TextAfterBattle + dw Route20EndBattleText4 ; 0x4e49 TextEndBattle + dw Route20EndBattleText4 ; 0x4e49 TextEndBattle + +Route20TrainerHeader5: ; 50d6a (14:4d6a) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText5 ; 0x4e53 TextBeforeBattle + dw Route20AfterBattleText5 ; 0x4e5d TextAfterBattle + dw Route20EndBattleText5 ; 0x4e58 TextEndBattle + dw Route20EndBattleText5 ; 0x4e58 TextEndBattle + +Route20TrainerHeader6: ; 50d76 (14:4d76) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText6 ; 0x4e62 TextBeforeBattle + dw Route20AfterBattleText6 ; 0x4e6c TextAfterBattle + dw Route20EndBattleText6 ; 0x4e67 TextEndBattle + dw Route20EndBattleText6 ; 0x4e67 TextEndBattle + +Route20TrainerHeader7: ; 50d82 (14:4d82) + db $7 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText7 ; 0x4e71 TextBeforeBattle + dw Route20AfterBattleText7 ; 0x4e7b TextAfterBattle + dw Route20EndBattleText7 ; 0x4e76 TextEndBattle + dw Route20EndBattleText7 ; 0x4e76 TextEndBattle + +Route20TrainerHeader8: ; 50d8e (14:4d8e) + db $8 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText8 ; 0x4e80 TextBeforeBattle + dw Route20AfterBattleText8 ; 0x4e8a TextAfterBattle + dw Route20EndBattleText8 ; 0x4e85 TextEndBattle + dw Route20EndBattleText8 ; 0x4e85 TextEndBattle + +Route20TrainerHeader9: ; 50d9a (14:4d9a) + db $9 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText9 ; 0x4e8f TextBeforeBattle + dw Route20AfterBattleText9 ; 0x4e99 TextAfterBattle + dw Route20EndBattleText9 ; 0x4e94 TextEndBattle + dw Route20EndBattleText9 ; 0x4e94 TextEndBattle + +Route20TrainerHeader10: ; 50da6 (14:4da6) + db $a ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e7 ; flag's byte + dw Route20BattleText10 ; 0x4e9e TextBeforeBattle + dw Route20AfterBattleText10 ; 0x4ea8 TextAfterBattle + dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle + dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle + + db $ff + +Route20Text1: ; 50db3 (14:4db3) + db $08 ; asm + ld hl, Route20TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route20Text2: ; 50dbd (14:4dbd) + db $08 ; asm + ld hl, Route20TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route20Text3: ; 50dc7 (14:4dc7) + db $08 ; asm + ld hl, Route20TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route20Text4: ; 50dd1 (14:4dd1) + db $08 ; asm + ld hl, Route20TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route20Text5: ; 50ddb (14:4ddb) + db $08 ; asm + ld hl, Route20TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route20Text6: ; 50de5 (14:4de5) + db $08 ; asm + ld hl, Route20TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route20Text7: ; 50def (14:4def) + db $08 ; asm + ld hl, Route20TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route20Text8: ; 50df9 (14:4df9) + db $08 ; asm + ld hl, Route20TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route20Text9: ; 50e03 (14:4e03) + db $08 ; asm + ld hl, Route20TrainerHeader9 + call TalkToTrainer + jp TextScriptEnd + +Route20Text10: ; 50e0d (14:4e0d) + db $08 ; asm + ld hl, Route20TrainerHeader10 + call TalkToTrainer + jp TextScriptEnd + +Route20BattleText1: ; 50e17 (14:4e17) + TX_FAR _Route20BattleText1 + db "@" + +Route20EndBattleText1: ; 50e1c (14:4e1c) + TX_FAR _Route20EndBattleText1 + db "@" + +Route20AfterBattleText1: ; 50e21 (14:4e21) + TX_FAR _Route20AfterBattleText1 + db "@" + +Route20BattleText2: ; 50e26 (14:4e26) + TX_FAR _Route20BattleText2 + db "@" + +Route20EndBattleText2: ; 50e2b (14:4e2b) + TX_FAR _Route20EndBattleText2 + db "@" + +Route20AfterBattleText2: ; 50e30 (14:4e30) + TX_FAR _Route20AfterBattleText2 + db "@" + +Route20BattleText3: ; 50e35 (14:4e35) + TX_FAR _Route20BattleText3 + db "@" + +Route20EndBattleText3: ; 50e3a (14:4e3a) + TX_FAR _Route20EndBattleText3 + db "@" + +Route20AfterBattleText3: ; 50e3f (14:4e3f) + TX_FAR _Route20AfterBattleText3 + db "@" + +Route20BattleText4: ; 50e44 (14:4e44) + TX_FAR _Route20BattleText4 + db "@" + +Route20EndBattleText4: ; 50e49 (14:4e49) + TX_FAR _Route20EndBattleText4 + db "@" + +Route20AfterBattleText4: ; 50e4e (14:4e4e) + TX_FAR _Route20AfterBattleText4 + db "@" + +Route20BattleText5: ; 50e53 (14:4e53) + TX_FAR _Route20BattleText5 + db "@" + +Route20EndBattleText5: ; 50e58 (14:4e58) + TX_FAR _Route20EndBattleText5 + db "@" + +Route20AfterBattleText5: ; 50e5d (14:4e5d) + TX_FAR _Route20AfterBattleText5 + db "@" + +Route20BattleText6: ; 50e62 (14:4e62) + TX_FAR _Route20BattleText6 + db "@" + +Route20EndBattleText6: ; 50e67 (14:4e67) + TX_FAR _Route20EndBattleText6 + db "@" + +Route20AfterBattleText6: ; 50e6c (14:4e6c) + TX_FAR _Route20AfterBattleText6 + db "@" + +Route20BattleText7: ; 50e71 (14:4e71) + TX_FAR _Route20BattleText7 + db "@" + +Route20EndBattleText7: ; 50e76 (14:4e76) + TX_FAR _Route20EndBattleText7 + db "@" + +Route20AfterBattleText7: ; 50e7b (14:4e7b) + TX_FAR _Route20AfterBattleText7 + db "@" + +Route20BattleText8: ; 50e80 (14:4e80) + TX_FAR _Route20BattleText8 + db "@" + +Route20EndBattleText8: ; 50e85 (14:4e85) + TX_FAR _Route20EndBattleText8 + db "@" + +Route20AfterBattleText8: ; 50e8a (14:4e8a) + TX_FAR _Route20AfterBattleText8 + db "@" + +Route20BattleText9: ; 50e8f (14:4e8f) + TX_FAR _Route20BattleText9 + db "@" + +Route20EndBattleText9: ; 50e94 (14:4e94) + TX_FAR _Route20EndBattleText9 + db "@" + +Route20AfterBattleText9: ; 50e99 (14:4e99) + TX_FAR _Route20AfterBattleText9 + db "@" + +Route20BattleText10: ; 50e9e (14:4e9e) + TX_FAR _Route20BattleText10 + db "@" + +Route20EndBattleText10: ; 50ea3 (14:4ea3) + TX_FAR _Route20EndBattleText10 + db "@" + +Route20AfterBattleText10: ; 50ea8 (14:4ea8) + TX_FAR _Route20AfterBattleText10 + db "@" + +Route20Text12: ; 50ead (14:4ead) +Route20Text11: ; 50ead (14:4ead) + TX_FAR _Route20Text11 + db "@" diff --git a/scripts/route21.asm b/scripts/route21.asm new file mode 100755 index 00000000..2332d2c8 --- /dev/null +++ b/scripts/route21.asm @@ -0,0 +1,270 @@ +Route21Script: ; 55eeb (15:5eeb) + call EnableAutoTextBoxDrawing + ld hl, Route21TrainerHeaders + ld de, Route21ScriptPointers + ld a, [W_ROUTE21CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE21CURSCRIPT], a + ret + +Route21ScriptPointers: ; 55efe (15:5efe) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route21TextPointers: ; 55f04 (15:5f04) + dw Route21Text1 + dw Route21Text2 + dw Route21Text3 + dw Route21Text4 + dw Route21Text5 + dw Route21Text6 + dw Route21Text7 + dw Route21Text8 + dw Route21Text9 + +Route21TrainerHeaders: ; 55f16 (15:5f16) +Route21TrainerHeader0: ; 55f16 (15:5f16) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText1 ; 0x5fdd TextBeforeBattle + dw Route21AfterBattleText1 ; 0x5fe7 TextAfterBattle + dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle + dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle + +Route21TrainerHeader1: ; 55f22 (15:5f22) + db $2 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText2 ; 0x5fec TextBeforeBattle + dw Route21AfterBattleText2 ; 0x5ff6 TextAfterBattle + dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle + dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle + +Route21TrainerHeader2: ; 55f2e (15:5f2e) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText3 ; 0x5ffb TextBeforeBattle + dw Route21AfterBattleText3 ; 0x6005 TextAfterBattle + dw Route21EndBattleText3 ; 0x6000 TextEndBattle + dw Route21EndBattleText3 ; 0x6000 TextEndBattle + +Route21TrainerHeader3: ; 55f3a (15:5f3a) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText4 ; 0x600a TextBeforeBattle + dw Route21AfterBattleText4 ; 0x6014 TextAfterBattle + dw Route21EndBattleText4 ; 0x600f TextEndBattle + dw Route21EndBattleText4 ; 0x600f TextEndBattle + +Route21TrainerHeader4: ; 55f46 (15:5f46) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText5 ; 0x6019 TextBeforeBattle + dw Route21AfterBattleText5 ; 0x6023 TextAfterBattle + dw Route21EndBattleText5 ; 0x601e TextEndBattle + dw Route21EndBattleText5 ; 0x601e TextEndBattle + +Route21TrainerHeader5: ; 55f52 (15:5f52) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText6 ; 0x6028 TextBeforeBattle + dw Route21AfterBattleText6 ; 0x6032 TextAfterBattle + dw Route21EndBattleText6 ; 0x602d TextEndBattle + dw Route21EndBattleText6 ; 0x602d TextEndBattle + +Route21TrainerHeader6: ; 55f5e (15:5f5e) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText7 ; 0x6037 TextBeforeBattle + dw Route21AfterBattleText7 ; 0x6041 TextAfterBattle + dw Route21EndBattleText7 ; 0x603c TextEndBattle + dw Route21EndBattleText7 ; 0x603c TextEndBattle + +Route21TrainerHeader7: ; 55f6a (15:5f6a) + db $8 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText8 ; 0x6046 TextBeforeBattle + dw Route21AfterBattleText8 ; 0x6050 TextAfterBattle + dw Route21EndBattleText8 ; 0x604b TextEndBattle + dw Route21EndBattleText8 ; 0x604b TextEndBattle + +Route21TrainerHeader8: ; 55f76 (15:5f76) + db $9 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d7e9 ; flag's byte + dw Route21BattleText9 ; 0x6055 TextBeforeBattle + dw Route21AfterBattleText9 ; 0x605f TextAfterBattle + dw Route21EndBattleText9 ; 0x605a TextEndBattle + dw Route21EndBattleText9 ; 0x605a TextEndBattle + + db $ff + +Route21Text1: ; 55f83 (15:5f83) + db $08 ; asm + ld hl, Route21TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route21Text2: ; 55f8d (15:5f8d) + db $08 ; asm + ld hl, Route21TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route21Text3: ; 55f97 (15:5f97) + db $08 ; asm + ld hl, Route21TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route21Text4: ; 55fa1 (15:5fa1) + db $08 ; asm + ld hl, Route21TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route21Text5: ; 55fab (15:5fab) + db $08 ; asm + ld hl, Route21TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route21Text6: ; 55fb5 (15:5fb5) + db $08 ; asm + ld hl, Route21TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route21Text7: ; 55fbf (15:5fbf) + db $08 ; asm + ld hl, Route21TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route21Text8: ; 55fc9 (15:5fc9) + db $08 ; asm + ld hl, Route21TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route21Text9: ; 55fd3 (15:5fd3) + db $08 ; asm + ld hl, Route21TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route21BattleText1: ; 55fdd (15:5fdd) + TX_FAR _Route21BattleText1 + db "@" + +Route21EndBattleText1: ; 55fe2 (15:5fe2) + TX_FAR _Route21EndBattleText1 + db "@" + +Route21AfterBattleText1: ; 55fe7 (15:5fe7) + TX_FAR _Route21AfterBattleText1 + db "@" + +Route21BattleText2: ; 55fec (15:5fec) + TX_FAR _Route21BattleText2 + db "@" + +Route21EndBattleText2: ; 55ff1 (15:5ff1) + TX_FAR _Route21EndBattleText2 + db "@" + +Route21AfterBattleText2: ; 55ff6 (15:5ff6) + TX_FAR _Route21AfterBattleText2 + db "@" + +Route21BattleText3: ; 55ffb (15:5ffb) + TX_FAR _Route21BattleText3 + db "@" + +Route21EndBattleText3: ; 56000 (15:6000) + TX_FAR _Route21EndBattleText3 + db "@" + +Route21AfterBattleText3: ; 56005 (15:6005) + TX_FAR _Route21AfterBattleText3 + db "@" + +Route21BattleText4: ; 5600a (15:600a) + TX_FAR _Route21BattleText4 + db "@" + +Route21EndBattleText4: ; 5600f (15:600f) + TX_FAR _Route21EndBattleText4 + db "@" + +Route21AfterBattleText4: ; 56014 (15:6014) + TX_FAR _Route21AfterBattleText4 + db "@" + +Route21BattleText5: ; 56019 (15:6019) + TX_FAR _Route21BattleText5 + db "@" + +Route21EndBattleText5: ; 5601e (15:601e) + TX_FAR _Route21EndBattleText5 + db "@" + +Route21AfterBattleText5: ; 56023 (15:6023) + TX_FAR _Route21AfterBattleText5 + db "@" + +Route21BattleText6: ; 56028 (15:6028) + TX_FAR _Route21BattleText6 + db "@" + +Route21EndBattleText6: ; 5602d (15:602d) + TX_FAR _Route21EndBattleText6 + db "@" + +Route21AfterBattleText6: ; 56032 (15:6032) + TX_FAR _Route21AfterBattleText6 + db "@" + +Route21BattleText7: ; 56037 (15:6037) + TX_FAR _Route21BattleText7 + db "@" + +Route21EndBattleText7: ; 5603c (15:603c) + TX_FAR _Route21EndBattleText7 + db "@" + +Route21AfterBattleText7: ; 56041 (15:6041) + TX_FAR _Route21AfterBattleText7 + db "@" + +Route21BattleText8: ; 56046 (15:6046) + TX_FAR _Route21BattleText8 + db "@" + +Route21EndBattleText8: ; 5604b (15:604b) + TX_FAR _Route21EndBattleText8 + db "@" + +Route21AfterBattleText8: ; 56050 (15:6050) + TX_FAR _Route21AfterBattleText8 + db "@" + +Route21BattleText9: ; 56055 (15:6055) + TX_FAR _Route21BattleText9 + db "@" + +Route21EndBattleText9: ; 5605a (15:605a) + TX_FAR _Route21EndBattleText9 + db "@" + +Route21AfterBattleText9: ; 5605f (15:605f) + TX_FAR _Route21AfterBattleText9 + db "@" diff --git a/scripts/route22.asm b/scripts/route22.asm new file mode 100755 index 00000000..b9801600 --- /dev/null +++ b/scripts/route22.asm @@ -0,0 +1,440 @@ +Route22Script: ; 50eb2 (14:4eb2) + call EnableAutoTextBoxDrawing + ld hl, Route22ScriptPointers + ld a, [W_ROUTE22CURSCRIPT] + jp CallFunctionInTable + +Route22ScriptPointers: ; 50ebe (14:4ebe) + dw Route22Script0 + dw Route22Script1 + dw Route22Script2 + dw Route22Script3 + dw Route22Script4 + dw Route22Script5 + dw Route22Script6 + dw Route22Script7 + +Route22Script_50ece: ; 50ece (14:4ece) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROUTE22CURSCRIPT], a +Route22Script7: ; 50ed5 (14:4ed5) + ret + +Route22Script_50ed6: ; 50ed6 (14:4ed6) + ld a, [W_RIVALSTARTER] ; $d715 + ld b, a +.asm_50eda + ld a, [hli] + cp b + jr z, .asm_50ee1 + inc hl + jr .asm_50eda +.asm_50ee1 + ld a, [hl] + ld [W_TRAINERNO], a ; $d05d + ret + +Route22Script_50ee6: ; 50ee6 (14:4ee6) + ld de, MovementData_50efb ; $4efb + ld a, [$cf0d] + cp $1 + jr z, .asm_50ef1 + inc de +.asm_50ef1 + call MoveSprite + ld a, $c + ld [$ff8d], a + jp Func_34a6 + +MovementData_50efb: ; 50efb (14:4efb) + db $C0,$C0,$C0,$C0,$FF + +Route22Script0: ; 50f00 (14:4f00) + ld a, [$d7eb] + bit 7, a + ret z + ld hl, .CoordsData_50f2d ; $4f2d + call ArePlayerCoordsInArray + ret nc + ld a, [$cd3d] + ld [$cf0d], a + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $2 + ld [$d528], a + ld a, [$d7eb] + bit 0, a + jr nz, .asm_50f32 ; 0x50f25 $b + bit 1, a + jp nz, Route22Script_5104e + ret + +.CoordsData_50f2d + db $04, $1D + db $05, $1D + db $FF + +.asm_50f32 + ld a, $1 + ld [$cd4f], a + xor a + ld [$cd50], a + ld a, $4c + call Predef + ld a, [$d700] + and a + jr z, .asm_50f4e ; 0x50f44 $8 + ld a, $ff + ld [$c0ee], a + call PlaySound +.asm_50f4e + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic + ld a, $1 + ld [$ff8c], a + call Route22Script_50ee6 + ld a, $1 + ld [W_ROUTE22CURSCRIPT], a + ret + +Route22Script1: ; 50f62 (14:4f62) + ld a, [$d730] + bit 0, a + ret nz + ld a, [$cf0d] + cp $1 + jr nz, .asm_50f78 ; 0x50f6d $9 + ld a, $4 + ld [$d528], a + ld a, $4 + jr .asm_50f7a ; 0x50f76 $2 +.asm_50f78 + ld a, $c +.asm_50f7a + ld [$ff8d], a + ld a, $1 + ld [$ff8c], a + call Func_34a6 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $1 + ld [$ff8c], a + call DisplayTextID + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, Route22Text_511b7 + ld de, Route22Text_511bc + call PreBattleSaveRegisters + ld a, SONY1 + $c8 + ld [W_CUROPPONENT], a + ld hl, StarterMons_50faf ; $4faf + call Route22Script_50ed6 + ld a, $2 + ld [W_ROUTE22CURSCRIPT], a + ret + +StarterMons_50faf: ; 50faf (14:4faf) + db SQUIRTLE,$04 + db BULBASAUR,$05 + db CHARMANDER,$06 + +Route22Script2: ; 50fb5 (14:4fb5) + ld a, [$d057] + cp $ff + jp z, Route22Script_50ece + ld a, [$c109] + and a + jr nz, .asm_50fc7 ; 0x50fc1 $4 + ld a, $4 + jr .asm_50fc9 ; 0x50fc5 $2 +.asm_50fc7 + ld a, $c +.asm_50fc9 + ld [$ff8d], a + ld a, $1 + ld [$ff8c], a + call Func_34a6 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d7eb + set 5, [hl] + ld a, $1 + ld [$ff8c], a + call DisplayTextID + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, [$cf0d] + cp $1 + jr nz, .asm_50fff ; 0x50ff8 $5 + call Route22Script_51008 + jr .asm_51002 ; 0x50ffd $3 +.asm_50fff + call Route22Script_5100d +.asm_51002 + ld a, $3 + ld [W_ROUTE22CURSCRIPT], a + ret + +Route22Script_51008: ; 51008 (14:5008) + ld de, MovementData_51017 ; $5017 + jr asm_51010 + +Route22Script_5100d: ; 5100d (14:500d) + ld de, MovementData_5101f ; $501f +asm_51010 + ld a, $1 + ld [H_SPRITEHEIGHT], a + jp MoveSprite + +MovementData_51017: ; 51017 (14:5017) + db $C0,$C0,$00,$00,$00,$00,$00,$FF + +MovementData_5101f: ; 5101f (14:501f) + db $40,$C0,$C0,$C0,$00,$00,$00,$00,$00,$00,$FF + +Route22Script3: ; 5102a (14:502a) + ld a, [$d730] + bit 0, a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $22 + ld [$cc4d], a + ld a, $11 + call Predef + call Func_2307 + ld hl, $d7eb + res 0, [hl] + res 7, [hl] + ld a, $0 + ld [W_ROUTE22CURSCRIPT], a + ret + +Route22Script_5104e: ; 5104e (14:504e) + ld a, $2 + ld [$cd4f], a + xor a + ld [$cd50], a + ld a, $4c + call Predef ; indirect jump to PrintEmotionBubble (17c47 (5:7c47)) + ld a, [$d700] + and a + jr z, .skipYVisibilityTesta + ld a, $ff + ld [$c0ee], a + call PlaySound +.skipYVisibilityTesta + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateTempo) + ld hl, Music_RivalAlternateTempo + call Bankswitch + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call Route22Script_50ee6 + ld a, $4 + ld [W_ROUTE22CURSCRIPT], a + ret + +Route22Script4: ; 51087 (14:5087) + ld a, [$d730] + bit 0, a + ret nz + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld a, [$cf0d] + cp $1 + jr nz, .asm_510a1 + ld a, $4 + ld [$d528], a + ld a, $4 + jr .asm_510a8 +.asm_510a1 + ld a, $2 + ld [$d528], a + ld a, $c +.asm_510a8 + ld [$ff8d], a + call Func_34a6 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, Route22Text_511cb ; $51cb + ld de, Route22Text_511d0 ; $51d0 + call PreBattleSaveRegisters + ld a, SONY2 + $c8 + ld [W_CUROPPONENT], a ; $d059 + ld hl, StarterMons_510d9 ; $50d9 + call Route22Script_50ed6 + ld a, $5 + ld [W_ROUTE22CURSCRIPT], a + ret + +StarterMons_510d9: ; 510d9 (14:50d9) + db SQUIRTLE,$0a + db BULBASAUR,$0b + db CHARMANDER,$0c + +Route22Script5: ; 510df (14:50df) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, Route22Script_50ece + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld a, [$cf0d] + cp $1 + jr nz, .asm_510fb + ld a, $4 + ld [$d528], a + ld a, $4 + jr .asm_51102 +.asm_510fb + ld a, $2 + ld [$d528], a + ld a, $c +.asm_51102 + ld [$ff8d], a + call Func_34a6 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d7eb + set 6, [hl] + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStartAndTempo) + ld hl, Music_RivalAlternateStartAndTempo + call Bankswitch + ld a, [$cf0d] + cp $1 + jr nz, .asm_51134 + call Route22Script_5113d + jr .asm_51137 +.asm_51134 + call Route22Script_51142 +.asm_51137 + ld a, $6 + ld [W_ROUTE22CURSCRIPT], a + ret + +Route22Script_5113d: ; 5113d (14:513d) + ld de, MovementData_5114c ; $514c + jr asm_51145 + +Route22Script_51142: ; 51142 (14:5142) + ld de, MovementData_5114d ; $514d +asm_51145: ; 51145 (14:5145) + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp MoveSprite + +MovementData_5114c: ; 5114c (14:514c) + db $80 + +MovementData_5114d: ; 5114d (14:514d) + db $80,$80,$80,$FF + +Route22Script6: ; 51151 (14:5151) + ld a, [$d730] + bit 0, a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $23 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + call Func_2307 + ld hl, $d7eb + res 1, [hl] + res 7, [hl] + ld a, $7 + ld [W_ROUTE22CURSCRIPT], a + ret + +Route22TextPointers: ; 51175 (14:5175) + dw Route22Text1 + dw Route22Text2 + dw Route22Text3 + +Route22Text1: ; 5117b (14:517b) + db $08 ; asm + ld a, [$d7eb] + bit 5, a + jr z, .asm_a88cf ; 0x51181 + ld hl, Route22Text_511b2 + call PrintText + jr .asm_48088 ; 0x51189 +.asm_a88cf ; 0x5118b + ld hl, Route22Text_511ad + call PrintText +.asm_48088 ; 0x51191 + jp TextScriptEnd + +Route22Text2: ; 51194 (14:5194) + db $08 ; asm + ld a, [$d7eb] + bit 6, a + jr z, .asm_58c0a ; 0x5119a + ld hl, Route22Text_511c6 + call PrintText + jr .asm_673ee ; 0x511a2 +.asm_58c0a ; 0x511a4 + ld hl, Route22Text_511c1 + call PrintText +.asm_673ee ; 0x511aa + jp TextScriptEnd + +Route22Text_511ad: ; 511ad (14:51ad) + TX_FAR _Route22Text_511ad + db "@" + +Route22Text_511b2: ; 511b2 (14:51b2) + TX_FAR _Route22Text_511b2 + db "@" + +Route22Text_511b7: ; 511b7 (14:51b7) + TX_FAR _Route22Text_511b7 + db "@" + +Route22Text_511bc: ; 511bc (14:51bc) + TX_FAR _Route22Text_511bc + db "@" + +Route22Text_511c1: ; 511c1 (14:51c1) + TX_FAR _Route22Text_511c1 + db "@" + +Route22Text_511c6: ; 511c6 (14:51c6) + TX_FAR _Route22Text_511c6 + db "@" + +Route22Text_511cb: ; 511cb (14:51cb) + TX_FAR _Route22Text_511cb + db "@" + +Route22Text_511d0: ; 511d0 (14:51d0) + TX_FAR _Route22Text_511d0 + db "@" + +Route22Text3: ; 511d5 (14:51d5) + TX_FAR _Route22Text3 + db "@" diff --git a/scripts/route22gate.asm b/scripts/route22gate.asm new file mode 100755 index 00000000..4ce9e1d8 --- /dev/null +++ b/scripts/route22gate.asm @@ -0,0 +1,92 @@ +Route22GateScript: ; 1e683 (7:6683) + call EnableAutoTextBoxDrawing + ld hl, Route22GateScriptPointers + ld a, [W_ROUTE22GATECURSCRIPT] + call CallFunctionInTable + ld a, [W_YCOORD] + cp $4 + ld a, $22 + jr c, .asm_1e69a ; 0x1e696 $2 + ld a, $21 +.asm_1e69a + ld [$d365], a + ret + +Route22GateScriptPointers: ; 1e69e (7:669e) + dw Route22GateScript0 + dw Route22GateScript1 + dw Route22GateScript2 + +Route22GateScript0: ; 1e6a4 (7:66a4) + ld hl, Route22GateScriptCoords + call ArePlayerCoordsInArray + ret nc + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $1 + ld [$ff8c], a + jp DisplayTextID + +Route22GateScriptCoords: ; 1e6b5 (7:66b5) + db 2,4 + db 2,5 + db $ff + +Route22GateScript_1e6ba: ; 1e6ba (7:66ba) + ld a, $1 + ld [$cd38], a + ld a, $80 + ld [$ccd3], a + ld [$c109], a + ld [wJoypadForbiddenButtonsMask], a + jp Func_3486 + +Route22GateScript1: ; 1e6cd (7:66cd) + ld a, [$cd38] + and a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + call Delay3 + ld a, $0 + ld [W_ROUTE22GATECURSCRIPT], a +Route22GateScript2: ; 1e6de (7:66de) + ret + +Route22GateTextPointers: ; 1e6df (7:66df) + dw Route22GateText1 + +Route22GateText1: ; 1e6e1 (7:66e1) + db $8 + ld a, [W_OBTAINEDBADGES] + bit 0, a + jr nz, .asm_8a809 ; 0x1e6e7 $d + ld hl, Route22GateText_1e704 + call PrintText + call Route22GateScript_1e6ba + ld a, $1 + jr .asm_20f7e ; 0x1e6f4 $8 +.asm_8a809 ; 0x1e6f6 + ld hl, Route22GateText_1e71a + call PrintText + ld a, $2 +.asm_20f7e ; 0x1e6fe + ld [W_ROUTE22GATECURSCRIPT], a + jp TextScriptEnd + +Route22GateText_1e704: ; 1e704 (7:6704) + TX_FAR _Route22GateText_1e704 ; 0x8cfbb + db $8 + ld a, (SFX_02_51 - SFX_Headers_02) / 3 + call PlaySoundWaitForCurrent + call WaitForSoundToFinish + ld hl, Route22GateText_1e715 ; $6715 + ret + +Route22GateText_1e715: ; 1e715 (7:6715) + TX_FAR _Route22GateText_1e715 + db "@" + +Route22GateText_1e71a: ; 1e71a (7:671a) + TX_FAR _Route22GateText_1e71a ; 0x8d03e + db $0B, "@" diff --git a/scripts/route23.asm b/scripts/route23.asm new file mode 100755 index 00000000..aca5efb7 --- /dev/null +++ b/scripts/route23.asm @@ -0,0 +1,245 @@ +Route23Script: ; 511da (14:51da) + call Route23Script_511e9 + call EnableAutoTextBoxDrawing + ld hl, Route23ScriptPointers + ld a, [W_ROUTE23CURSCRIPT] + jp CallFunctionInTable + +Route23Script_511e9: ; 511e9 (14:51e9) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + ret z + ld hl, $d7ee + res 0, [hl] + res 7, [hl] + ld hl, $d813 + res 0, [hl] + res 6, [hl] + ld a, $7a + ld [$cc4d], a + ld a, $15 + call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8)) + ld a, $60 + ld [$cc4d], a + ld a, $11 + jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + +Route23ScriptPointers: ; 51213 (14:5213) + dw Route23Script0 + dw Route23Script1 + dw Route23Script2 + +Route23Script0: ; 51219 (14:5219) + ld hl, YCoordsData_51255 ; $5255 + ld a, [W_YCOORD] + ld b, a + ld e, $0 + ld c, $7 +.asm_51224 + ld a, [hli] + cp $ff + ret z + inc e + dec c + cp b + jr nz, .asm_51224 ; 0x5122b $f7 + cp $23 + jr nz, .asm_51237 ; 0x5122f $6 + ld a, [W_XCOORD] + cp $e + ret nc +.asm_51237 + ld a, e + ld [$ff8c], a + ld a, c + ld [$cd3d], a + ld b, $2 + ld hl, $d7ed + ld a, $10 + call Predef + ld a, c + and a + ret nz + call Route23Script_5125d + call DisplayTextID + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ret + +YCoordsData_51255: ; 51255 (14:5255) + db $23,$38,$55,$60,$69,$77,$88,$FF + +Route23Script_5125d: ; 5125d (14:525d) + ld hl, BadgeTextPointers ; $5276 + ld a, [wWhichTrade] ; $cd3d + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $cd6d +.asm_5126e + ld a, [hli] + ld [de], a + inc de + cp $50 + jr nz, .asm_5126e + ret + +BadgeTextPointers: ; 51276 (14:5276) + dw CascadeBadgeText + dw ThunderBadgeText + dw RainbowBadgeText + dw SoulBadgeText + dw MarshBadgeText + dw VolcanoBadgeText + dw EarthBadgeText + +EarthBadgeText: ; 51284 (14:5284) + db "EARTHBADGE@" + +VolcanoBadgeText: ; 5128f (14:528f) + db "VOLCANOBADGE@" + +MarshBadgeText: ; 5129c (14:529c) + db "MARSHBADGE@" + +SoulBadgeText: ; 512a7 (14:52a7) + db "SOULBADGE@" + +RainbowBadgeText: ; 512b1 (14:52b1) + db "RAINBOWBADGE@" + +ThunderBadgeText: ; 512be (14:52be) + db "THUNDERBADGE@" + +CascadeBadgeText: ; 512cb (14:52cb) + db "CASCADEBADGE@" + +Route23Script_512d8: ; 512d8 (14:52d8) + ld a, $1 + ld [$cd38], a + ld a, $80 + ld [$ccd3], a + xor a + ld [$c109], a + ld [wJoypadForbiddenButtonsMask], a + jp Func_3486 + +Route23Script1: ; 512ec (14:52ec) + ld a, [$cd38] + and a + ret nz +Route23Script2: ; 512f1 (14:52f1) + ld a, $0 + ld [W_ROUTE23CURSCRIPT], a + ret + +Route23TextPointers: ; 512f7 (14:52f7) + dw Route23Text1 + dw Route23Text2 + dw Route23Text3 + dw Route23Text4 + dw Route23Text5 + dw Route23Text6 + dw Route23Text7 + dw Route23Text8 + +Route23Text1: ; 51307 (14:5307) + db $08 ; asm + ld a, $6 + call Route23Script_51346 + jp TextScriptEnd + +Route23Text2: ; 51310 (14:5310) + db $08 ; asm + ld a, $5 + call Route23Script_51346 + jp TextScriptEnd + +Route23Text3: ; 51319 (14:5319) + db $08 ; asm + ld a, $4 + call Route23Script_51346 + jp TextScriptEnd + +Route23Text4: ; 51322 (14:5322) + db $08 ; asm + ld a, $3 + call Route23Script_51346 + jp TextScriptEnd + +Route23Text5: ; 5132b (14:532b) + db $08 ; asm + ld a, $2 + call Route23Script_51346 + jp TextScriptEnd + +Route23Text6: ; 51334 (14:5334) + db $08 ; asm + ld a, $1 + call Route23Script_51346 + jp TextScriptEnd + +Route23Text7: ; 5133d (14:533d) + db $8 + ld a, $0 + call Route23Script_51346 + jp TextScriptEnd + +Route23Script_51346: ; 51346 (14:5346) + ld [wWhichTrade], a ; $cd3d + call Route23Script_5125d + ld a, [wWhichTrade] ; $cd3d + inc a + ld c, a + ld b, $2 + ld hl, W_OBTAINEDBADGES + ld a, $10 + call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld a, c + and a + jr nz, .asm_5136e + ld hl, VictoryRoadGuardText1 + call PrintText + call Route23Script_512d8 + ld a, $1 + ld [W_ROUTE23CURSCRIPT], a + ret +.asm_5136e + ld hl, VictoryRoadGuardText2 + call PrintText + ld a, [wWhichTrade] ; $cd3d + ld c, a + ld b, $1 + ld hl, $d7ed + ld a, $10 + call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld a, $2 + ld [W_ROUTE23CURSCRIPT], a + ret + +Route23Script_51388: ; 51388 (14:5388) + ld hl, VictoryRoadGuardText2 + jp PrintText + +VictoryRoadGuardText1: ; 5138e (14:538e) + TX_FAR _VictoryRoadGuardText1 + db $08 ; asm + ld a, (SFX_02_51 - SFX_Headers_02) / 3 + call PlaySoundWaitForCurrent + call WaitForSoundToFinish + jp TextScriptEnd + +VictoryRoadGuardText2: ; 5139e (14:539e) + TX_FAR _VictoryRoadGuardText2 + db $b + TX_FAR _VictoryRoadGuardText_513a3 + db "@" + +Route23Text8: ; 513a8 (14:53a8) + TX_FAR _Route23Text8 + db "@" diff --git a/scripts/route24.asm b/scripts/route24.asm new file mode 100755 index 00000000..0e77c6f7 --- /dev/null +++ b/scripts/route24.asm @@ -0,0 +1,326 @@ +Route24Script: ; 513ad (14:53ad) + call EnableAutoTextBoxDrawing + ld hl, Route24TrainerHeaders + ld de, Route24ScriptPointers + ld a, [W_ROUTE24CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE24CURSCRIPT], a + ret + +Route24Script_513c0: ; 513c0 (14:53c0) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROUTE24CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route24ScriptPointers: ; 513cb (14:53cb) + dw Route24Script0 + dw Func_324c + dw EndTrainerBattle + dw Route24Script3 + dw Route24Script4 + +Route24Script0: ; 513d5 (14:53d5) + ld a, [$d7ef] + bit 0, a + jp nz, CheckFightingMapTrainers + ld hl, CoordsData_5140e ; $540e + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d7f0 + bit 1, [hl] + res 1, [hl] + ret z + ld a, $80 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + call Func_3486 + ld a, $4 + ld [W_ROUTE24CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CoordsData_5140e: ; 5140e (14:540e) + db $0F,$0A,$FF + +Route24Script4: ; 51411 (14:5411) + ld a, [$cd38] + and a + ret nz + call Delay3 + ld a, $0 + ld [W_ROUTE24CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route24Script3: ; 51422 (14:5422) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, Route24Script_513c0 + call UpdateSprites + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d7ef + set 1, [hl] + ld a, $1 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_ROUTE24CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route24TextPointers: ; 5144b (14:544b) + dw Route24Text1 + dw Route24Text2 + dw Route24Text3 + dw Route24Text4 + dw Route24Text5 + dw Route24Text6 + dw Route24Text7 + dw Predef5CText + +Route24TrainerHeaders: ; 5145b (14:545b) +Route24TrainerHeader0: ; 5145b (14:545b) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7ef ; flag's byte + dw Route24BattleText1 ; 0x5571 TextBeforeBattle + dw Route24AfterBattleText1 ; 0x557b TextAfterBattle + dw Route24EndBattleText1 ; 0x5576 TextEndBattle + dw Route24EndBattleText1 ; 0x5576 TextEndBattle + +Route24TrainerHeader2: ; 51467 (14:5467) + db $3 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7ef ; flag's byte + dw Route24BattleText2 ; 0x5580 TextBeforeBattle + dw Route24AfterBattleText2 ; 0x558a TextAfterBattle + dw Route24EndBattleText2 ; 0x5585 TextEndBattle + dw Route24EndBattleText2 ; 0x5585 TextEndBattle + +Route24TrainerHeader3: ; 51473 (14:5473) + db $4 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7ef ; flag's byte + dw Route24BattleText3 ; 0x558f TextBeforeBattle + dw Route24AfterBattleText3 ; 0x5599 TextAfterBattle + dw Route24EndBattleText3 ; 0x5594 TextEndBattle + dw Route24EndBattleText3 ; 0x5594 TextEndBattle + +Route24TrainerHeader4: ; 5147f (14:547f) + db $5 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7ef ; flag's byte + dw Route24BattleText4 ; 0x559e TextBeforeBattle + dw Route24AfterBattleText4 ; 0x55a8 TextAfterBattle + dw Route24EndBattleText4 ; 0x55a3 TextEndBattle + dw Route24EndBattleText4 ; 0x55a3 TextEndBattle + +Route24TrainerHeader5: ; 5148b (14:548b) + db $6 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7ef ; flag's byte + dw Route24BattleText5 ; 0x55ad TextBeforeBattle + dw Route24AfterBattleText5 ; 0x55b7 TextAfterBattle + dw Route24EndBattleText5 ; 0x55b2 TextEndBattle + dw Route24EndBattleText5 ; 0x55b2 TextEndBattle + +Route24TrainerHeader6: ; 51497 (14:5497) + db $7 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7ef ; flag's byte + dw Route24BattleText6 ; 0x55bc TextBeforeBattle + dw Route24AfterBattleText6 ; 0x55c6 TextAfterBattle + dw Route24EndBattleText6 ; 0x55c1 TextEndBattle + dw Route24EndBattleText6 ; 0x55c1 TextEndBattle + + db $ff + +Route24Text1: ; 514a4 (14:54a4) + db $8 + ld hl, $d7f0 + res 1, [hl] + ld a, [$d7ef] + bit 0, a + jr nz, .asm_a03f5 ; 0x514af $48 + ld hl, Route24Text_51510 + call PrintText + ld bc, (NUGGET << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, $d7ef + set 0, [hl] + ld hl, Route24Text_5151a + call PrintText + ld hl, Route24Text_51526 + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, Route24Text_5152b + ld de, Route24Text_5152b + call PreBattleSaveRegisters + ld a, [$ff8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $3 + ld [W_ROUTE24CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + jp TextScriptEnd +.asm_a03f5 ; 0x514f9 + ld hl, Route24Text_51530 + call PrintText + jp TextScriptEnd +.BagFull + ld hl, Route24Text_51521 + call PrintText + ld hl, $d7f0 + set 1, [hl] + jp TextScriptEnd + +Route24Text_51510: ; 51510 (14:5510) + TX_FAR _Route24Text_51510 ; 0x92721 + db $0B + TX_FAR _Route24Text_51515 ; 0x92755 + db "@" + +Route24Text_5151a: ; 5151a (14:551a) + TX_FAR _Route24Text_5151a ; 0x92779 + db $0B, $6, "@" + +Route24Text_51521: ; 51521 (14:5521) + TX_FAR _Route24Text_51521 + db "@" + +Route24Text_51526: ; 51526 (14:5526) + TX_FAR _Route24Text_51526 + db "@" + +Route24Text_5152b: ; 5152b (14:552b) + TX_FAR _Route24Text_5152b + db "@" + +Route24Text_51530: ; 51530 (14:5530) + TX_FAR _Route24Text_51530 + db "@" + +Route24Text2: ; 51535 (14:5535) + db $08 ; asm + ld hl, Route24TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route24Text3: ; 5153f (14:553f) + db $08 ; asm + ld hl, Route24TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route24Text4: ; 51549 (14:5549) + db $08 ; asm + ld hl, Route24TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route24Text5: ; 51553 (14:5553) + db $08 ; asm + ld hl, Route24TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route24Text6: ; 5155d (14:555d) + db $08 ; asm + ld hl, Route24TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route24Text7: ; 51567 (14:5567) + db $08 ; asm + ld hl, Route24TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route24BattleText1: ; 51571 (14:5571) + TX_FAR _Route24BattleText1 + db "@" + +Route24EndBattleText1: ; 51576 (14:5576) + TX_FAR _Route24EndBattleText1 + db "@" + +Route24AfterBattleText1: ; 5157b (14:557b) + TX_FAR _Route24AfterBattleText1 + db "@" + +Route24BattleText2: ; 51580 (14:5580) + TX_FAR _Route24BattleText2 + db "@" + +Route24EndBattleText2: ; 51585 (14:5585) + TX_FAR _Route24EndBattleText2 + db "@" + +Route24AfterBattleText2: ; 5158a (14:558a) + TX_FAR _Route24AfterBattleText2 + db "@" + +Route24BattleText3: ; 5158f (14:558f) + TX_FAR _Route24BattleText3 + db "@" + +Route24EndBattleText3: ; 51594 (14:5594) + TX_FAR _Route24EndBattleText3 + db "@" + +Route24AfterBattleText3: ; 51599 (14:5599) + TX_FAR _Route24AfterBattleText3 + db "@" + +Route24BattleText4: ; 5159e (14:559e) + TX_FAR _Route24BattleText4 + db "@" + +Route24EndBattleText4: ; 515a3 (14:55a3) + TX_FAR _Route24EndBattleText4 + db "@" + +Route24AfterBattleText4: ; 515a8 (14:55a8) + TX_FAR _Route24AfterBattleText4 + db "@" + +Route24BattleText5: ; 515ad (14:55ad) + TX_FAR _Route24BattleText5 + db "@" + +Route24EndBattleText5: ; 515b2 (14:55b2) + TX_FAR _Route24EndBattleText5 + db "@" + +Route24AfterBattleText5: ; 515b7 (14:55b7) + TX_FAR _Route24AfterBattleText5 + db "@" + +Route24BattleText6: ; 515bc (14:55bc) + TX_FAR _Route24BattleText6 + db "@" + +Route24EndBattleText6: ; 515c1 (14:55c1) + TX_FAR _Route24EndBattleText6 + db "@" + +Route24AfterBattleText6: ; 515c6 (14:55c6) + TX_FAR _Route24AfterBattleText6 + db "@" diff --git a/scripts/route25.asm b/scripts/route25.asm new file mode 100755 index 00000000..7c5543c7 --- /dev/null +++ b/scripts/route25.asm @@ -0,0 +1,309 @@ +Route25Script: ; 515cb (14:55cb) + call Route25Script_515e1 + call EnableAutoTextBoxDrawing + ld hl, Route25TrainerHeaders + ld de, Route25ScriptPointers + ld a, [W_ROUTE25CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE25CURSCRIPT], a + ret + +Route25Script_515e1: ; 515e1 (14:55e1) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + ret z + ld hl, $d7f2 + bit 7, [hl] + ret nz + bit 5, [hl] + jr nz, .asm_515ff + res 6, [hl] + ld a, $61 + ld [$cc4d], a + ld a, $15 + jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8)) +.asm_515ff + bit 4, [hl] + ret z + set 7, [hl] + ld a, $24 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + ld a, $62 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + ld a, $63 + ld [$cc4d], a + ld a, $15 + jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8)) + +Route25ScriptPointers: ; 51622 (14:5622) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route25TextPointers: ; 51628 (14:5628) + dw Route25Text1 + dw Route25Text2 + dw Route25Text3 + dw Route25Text4 + dw Route25Text5 + dw Route25Text6 + dw Route25Text7 + dw Route25Text8 + dw Route25Text9 + dw Predef5CText + dw Route25Text11 + +Route25TrainerHeaders: ; 5163e (14:563e) +Route25TrainerHeader0: ; 5163e (14:563e) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText1 ; 0x5705 TextBeforeBattle + dw Route25AfterBattleText1 ; 0x570f TextAfterBattle + dw Route25EndBattleText1 ; 0x570a TextEndBattle + dw Route25EndBattleText1 ; 0x570a TextEndBattle + +Route25TrainerHeader2: ; 5164a (14:564a) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText2 ; 0x5714 TextBeforeBattle + dw Route25AfterBattleText2 ; 0x571e TextAfterBattle + dw Route25EndBattleText2 ; 0x5719 TextEndBattle + dw Route25EndBattleText2 ; 0x5719 TextEndBattle + +Route25TrainerHeader3: ; 51656 (14:5656) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText3 ; 0x5723 TextBeforeBattle + dw Route25AfterBattleText3 ; 0x572d TextAfterBattle + dw Route25EndBattleText3 ; 0x5728 TextEndBattle + dw Route25EndBattleText3 ; 0x5728 TextEndBattle + +Route25TrainerHeader4: ; 51662 (14:5662) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText4 ; 0x5732 TextBeforeBattle + dw Route25AfterBattleText4 ; 0x573c TextAfterBattle + dw Route25EndBattleText4 ; 0x5737 TextEndBattle + dw Route25EndBattleText4 ; 0x5737 TextEndBattle + +Route25TrainerHeader5: ; 5166e (14:566e) + db $5 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText5 ; 0x5741 TextBeforeBattle + dw Route25AfterBattleText5 ; 0x574b TextAfterBattle + dw Route25EndBattleText5 ; 0x5746 TextEndBattle + dw Route25EndBattleText5 ; 0x5746 TextEndBattle + +Route25TrainerHeader6: ; 5167a (14:567a) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText6 ; 0x5750 TextBeforeBattle + dw Route25AfterBattleText6 ; 0x575a TextAfterBattle + dw Route25EndBattleText6 ; 0x5755 TextEndBattle + dw Route25EndBattleText6 ; 0x5755 TextEndBattle + +Route25TrainerHeader7: ; 51686 (14:5686) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText7 ; 0x575f TextBeforeBattle + dw Route25AfterBattleText7 ; 0x5769 TextAfterBattle + dw Route25EndBattleText7 ; 0x5764 TextEndBattle + dw Route25EndBattleText7 ; 0x5764 TextEndBattle + +Route25TrainerHeader8: ; 51692 (14:5692) + db $8 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText8 ; 0x576e TextBeforeBattle + dw Route25AfterBattleText8 ; 0x5778 TextAfterBattle + dw Route25EndBattleText8 ; 0x5773 TextEndBattle + dw Route25EndBattleText8 ; 0x5773 TextEndBattle + +Route25TrainerHeader9: ; 5169e (14:569e) + db $9 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7f1 ; flag's byte + dw Route25BattleText9 ; 0x577d TextBeforeBattle + dw Route25AfterBattleText9 ; 0x5787 TextAfterBattle + dw Route25EndBattleText9 ; 0x5782 TextEndBattle + dw Route25EndBattleText9 ; 0x5782 TextEndBattle + + db $ff + +Route25Text1: ; 516ab (14:56ab) + db $08 ; asm + ld hl, Route25TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route25Text2: ; 516b5 (14:56b5) + db $08 ; asm + ld hl, Route25TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route25Text3: ; 516bf (14:56bf) + db $08 ; asm + ld hl, Route25TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route25Text4: ; 516c9 (14:56c9) + db $08 ; asm + ld hl, Route25TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route25Text5: ; 516d3 (14:56d3) + db $08 ; asm + ld hl, Route25TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route25Text6: ; 516dd (14:56dd) + db $08 ; asm + ld hl, Route25TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route25Text7: ; 516e7 (14:56e7) + db $08 ; asm + ld hl, Route25TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route25Text8: ; 516f1 (14:56f1) + db $08 ; asm + ld hl, Route25TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route25Text9: ; 516fb (14:56fb) + db $08 ; asm + ld hl, Route25TrainerHeader9 + call TalkToTrainer + jp TextScriptEnd + +Route25BattleText1: ; 51705 (14:5705) + TX_FAR _Route25BattleText1 + db "@" + +Route25EndBattleText1: ; 5170a (14:570a) + TX_FAR _Route25EndBattleText1 + db "@" + +Route25AfterBattleText1: ; 5170f (14:570f) + TX_FAR _Route25AfterBattleText1 + db "@" + +Route25BattleText2: ; 51714 (14:5714) + TX_FAR _Route25BattleText2 + db "@" + +Route25EndBattleText2: ; 51719 (14:5719) + TX_FAR _Route25EndBattleText2 + db "@" + +Route25AfterBattleText2: ; 5171e (14:571e) + TX_FAR _Route25AfterBattleText2 + db "@" + +Route25BattleText3: ; 51723 (14:5723) + TX_FAR _Route25BattleText3 + db "@" + +Route25EndBattleText3: ; 51728 (14:5728) + TX_FAR _Route25EndBattleText3 + db "@" + +Route25AfterBattleText3: ; 5172d (14:572d) + TX_FAR _Route25AfterBattleText3 + db "@" + +Route25BattleText4: ; 51732 (14:5732) + TX_FAR _Route25BattleText4 + db "@" + +Route25EndBattleText4: ; 51737 (14:5737) + TX_FAR _Route25EndBattleText4 + db "@" + +Route25AfterBattleText4: ; 5173c (14:573c) + TX_FAR _Route25AfterBattleText4 + db "@" + +Route25BattleText5: ; 51741 (14:5741) + TX_FAR _Route25BattleText5 + db "@" + +Route25EndBattleText5: ; 51746 (14:5746) + TX_FAR _Route25EndBattleText5 + db "@" + +Route25AfterBattleText5: ; 5174b (14:574b) + TX_FAR _Route25AfterBattleText5 + db "@" + +Route25BattleText6: ; 51750 (14:5750) + TX_FAR _Route25BattleText6 + db "@" + +Route25EndBattleText6: ; 51755 (14:5755) + TX_FAR _Route25EndBattleText6 + db "@" + +Route25AfterBattleText6: ; 5175a (14:575a) + TX_FAR _Route25AfterBattleText6 + db "@" + +Route25BattleText7: ; 5175f (14:575f) + TX_FAR _Route25BattleText7 + db "@" + +Route25EndBattleText7: ; 51764 (14:5764) + TX_FAR _Route25EndBattleText7 + db "@" + +Route25AfterBattleText7: ; 51769 (14:5769) + TX_FAR _Route25AfterBattleText7 + db "@" + +Route25BattleText8: ; 5176e (14:576e) + TX_FAR _Route25BattleText8 + db "@" + +Route25EndBattleText8: ; 51773 (14:5773) + TX_FAR _Route25EndBattleText8 + db "@" + +Route25AfterBattleText8: ; 51778 (14:5778) + TX_FAR _Route25AfterBattleText8 + db "@" + +Route25BattleText9: ; 5177d (14:577d) + TX_FAR _Route25BattleText9 + db "@" + +Route25EndBattleText9: ; 51782 (14:5782) + TX_FAR _Route25EndBattleText9 + db "@" + +Route25AfterBattleText9: ; 51787 (14:5787) + TX_FAR _Route25AfterBattleText9 + db "@" + +Route25Text11: ; 5178c (14:578c) + TX_FAR _Route25Text11 + db "@" diff --git a/scripts/route2gate.asm b/scripts/route2gate.asm new file mode 100755 index 00000000..9fd8e4bd --- /dev/null +++ b/scripts/route2gate.asm @@ -0,0 +1,42 @@ +Route2GateScript: ; 5d5d4 (17:55d4) + jp EnableAutoTextBoxDrawing + +Route2GateTextPointers: ; 5d5d7 (17:55d7) + dw Route2GateText1 + dw Route2GateText2 + +Route2GateText1: ; 5d5db (17:55db) + db $08 ; asm + ld a, [$d7c2] + bit 0, a + jr nz, .asm_6592c ; 0x5d5e1 + ld a, $a + ldh [$db], a + ld a, $c8 + ldh [$dc], a + ld [$d11e], a + call GetItemName ; $2fcf + ld hl, $cd6d + ld de, $cc5b + ld bc, $000d + call CopyData + ld a, $62 + call Predef + ldh a, [$db] + cp $1 + jr nz, .asm_ad646 ; 0x5d606 + ld hl, $d7c2 + set 0, [hl] +.asm_6592c ; 0x5d60d + ld hl, Route2GateText_5d616 + call PrintText +.asm_ad646 ; 0x5d613 + jp TextScriptEnd + +Route2GateText_5d616: ; 5d616 (17:5616) + TX_FAR _Route2GateText_5d616 + db "@" + +Route2GateText2: ; 5d61b (17:561b) + TX_FAR _Route2GateText2 + db "@" diff --git a/scripts/route2house.asm b/scripts/route2house.asm new file mode 100755 index 00000000..50a058b8 --- /dev/null +++ b/scripts/route2house.asm @@ -0,0 +1,18 @@ +Route2HouseScript: ; 1deed (7:5eed) + jp EnableAutoTextBoxDrawing + +Route2HouseTextPointers: ; 1def0 (7:5ef0) + dw Route2HouseText1 + dw Route2HouseText2 + +Route2HouseText1: ; 1def4 (7:5ef4) + TX_FAR _Route2HouseText1 + db "@" + +Route2HouseText2: ; 1def9 (7:5ef9) + db $08 ; asm + ld a, $1 + ld [wWhichTrade], a + ld a, $54 + call Predef + jp TextScriptEnd diff --git a/scripts/route3.asm b/scripts/route3.asm new file mode 100755 index 00000000..1ff29f5b --- /dev/null +++ b/scripts/route3.asm @@ -0,0 +1,252 @@ +Route3Script: ; 554f8 (15:54f8) + call EnableAutoTextBoxDrawing + ld hl, Route3TrainerHeader0 + ld de, Route3ScriptPointers + ld a, [W_ROUTE3CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE3CURSCRIPT], a + ret + +Route3ScriptPointers: ; 5550b (15:550b) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route3TextPointers: ; 55511 (15:5511) + dw Route3Text1 + dw Route3Text2 + dw Route3Text3 + dw Route3Text4 + dw Route3Text5 + dw Route3Text6 + dw Route3Text7 + dw Route3Text8 + dw Route3Text9 + dw Route3Text10 + +Route3TrainerHeaders: ; 55525 (15:5525) +Route3TrainerHeader0: ; 55525 (15:5525) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7c3 ; flag's byte + dw Route3BattleText1 ; 0x5595 TextBeforeBattle + dw Route3AfterBattleText1 ; 0x559f TextAfterBattle + dw Route3EndBattleText1 ; 0x559a TextEndBattle + dw Route3EndBattleText1 ; 0x559a TextEndBattle + +Route3TrainerHeader2: ; 55531 (15:5531) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7c3 ; flag's byte + dw Route3BattleText2 ; 0x55ae TextBeforeBattle + dw Route3AfterBattleText2 ; 0x55b8 TextAfterBattle + dw Route3EndBattleText2 ; 0x55b3 TextEndBattle + dw Route3EndBattleText2 ; 0x55b3 TextEndBattle + +Route3TrainerHeader3: ; 5553d (15:553d) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7c3 ; flag's byte + dw Route3BattleText3 ; 0x55c7 TextBeforeBattle + dw Route3AfterBattleText3 ; 0x55d1 TextAfterBattle + dw Route3EndBattleText3 ; 0x55cc TextEndBattle + dw Route3EndBattleText3 ; 0x55cc TextEndBattle + +Route3TrainerHeader4: ; 55549 (15:5549) + db $5 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7c3 ; flag's byte + dw Route3BattleText4 ; 0x55e0 TextBeforeBattle + dw Route3AfterBattleText4 ; 0x55ea TextAfterBattle + dw Route3EndBattleText4 ; 0x55e5 TextEndBattle + dw Route3EndBattleText4 ; 0x55e5 TextEndBattle + +Route3TrainerHeader5: ; 55555 (15:5555) + db $6 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7c3 ; flag's byte + dw Route3BattleText5 ; 0x55f9 TextBeforeBattle + dw Route3AfterBattleText5 ; 0x5603 TextAfterBattle + dw Route3EndBattleText5 ; 0x55fe TextEndBattle + dw Route3EndBattleText5 ; 0x55fe TextEndBattle + +Route3TrainerHeader6: ; 55561 (15:5561) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7c3 ; flag's byte + dw Route3BattleText6 ; 0x5612 TextBeforeBattle + dw Route3AfterBattleText6 ; 0x561c TextAfterBattle + dw Route3EndBattleText6 ; 0x5617 TextEndBattle + dw Route3EndBattleText6 ; 0x5617 TextEndBattle + +Route3TrainerHeader7: ; 5556d (15:556d) + db $8 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7c3 ; flag's byte + dw Route3BattleText7 ; 0x562b TextBeforeBattle + dw Route3AfterBattleText7 ; 0x5635 TextAfterBattle + dw Route3EndBattleText7 ; 0x5630 TextEndBattle + dw Route3EndBattleText7 ; 0x5630 TextEndBattle + +Route3TrainerHeader8: ; 55579 (15:5579) + db $9 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7c3 ; flag's byte + dw Route3BattleText8 ; 0x5644 TextBeforeBattle + dw Route3AfterBattleText8 ; 0x564e TextAfterBattle + dw Route3EndBattleText8 ; 0x5649 TextEndBattle + dw Route3EndBattleText8 ; 0x5649 TextEndBattle + + db $ff + +Route3Text1: ; 55586 (15:5586) + TX_FAR _Route3Text1 + db "@" + +Route3Text2: ; 5558b (15:558b) + db $08 ; asm + ld hl, Route3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route3BattleText1: ; 55595 (15:5595) + TX_FAR _Route3BattleText1 + db "@" + +Route3EndBattleText1: ; 5559a (15:559a) + TX_FAR _Route3EndBattleText1 + db "@" + +Route3AfterBattleText1: ; 5559f (15:559f) + TX_FAR _Route3AfterBattleText1 + db "@" + +Route3Text3: ; 555a4 (15:55a4) + db $08 ; asm + ld hl, Route3TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route3BattleText2: ; 555ae (15:55ae) + TX_FAR _Route3BattleText2 + db "@" + +Route3EndBattleText2: ; 555b3 (15:55b3) + TX_FAR _Route3EndBattleText2 + db "@" + +Route3AfterBattleText2: ; 555b8 (15:55b8) + TX_FAR _Route3AfterBattleText2 + db "@" + +Route3Text4: ; 555bd (15:55bd) + db $08 ; asm + ld hl, Route3TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route3BattleText3: ; 555c7 (15:55c7) + TX_FAR _Route3BattleText3 + db "@" + +Route3EndBattleText3: ; 555cc (15:55cc) + TX_FAR _Route3EndBattleText3 + db "@" + +Route3AfterBattleText3: ; 555d1 (15:55d1) + TX_FAR _Route3AfterBattleText3 + db "@" + +Route3Text5: ; 555d6 (15:55d6) + db $08 ; asm + ld hl, Route3TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route3BattleText4: ; 555e0 (15:55e0) + TX_FAR _Route3BattleText4 + db "@" + +Route3EndBattleText4: ; 555e5 (15:55e5) + TX_FAR _Route3EndBattleText4 + db "@" + +Route3AfterBattleText4: ; 555ea (15:55ea) + TX_FAR _Route3AfterBattleText4 + db "@" + +Route3Text6: ; 555ef (15:55ef) + db $08 ; asm + ld hl, Route3TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route3BattleText5: ; 555f9 (15:55f9) + TX_FAR _Route3BattleText5 + db "@" + +Route3EndBattleText5: ; 555fe (15:55fe) + TX_FAR _Route3EndBattleText5 + db "@" + +Route3AfterBattleText5: ; 55603 (15:5603) + TX_FAR _Route3AfterBattleText5 + db "@" + +Route3Text7: ; 55608 (15:5608) + db $08 ; asm + ld hl, Route3TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route3BattleText6: ; 55612 (15:5612) + TX_FAR _Route3BattleText6 + db "@" + +Route3EndBattleText6: ; 55617 (15:5617) + TX_FAR _Route3EndBattleText6 + db "@" + +Route3AfterBattleText6: ; 5561c (15:561c) + TX_FAR _Route3AfterBattleText6 + db "@" + +Route3Text8: ; 55621 (15:5621) + db $08 ; asm + ld hl, Route3TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route3BattleText7: ; 5562b (15:562b) + TX_FAR _Route3BattleText7 + db "@" + +Route3EndBattleText7: ; 55630 (15:5630) + TX_FAR _Route3EndBattleText7 + db "@" + +Route3AfterBattleText7: ; 55635 (15:5635) + TX_FAR _Route3AfterBattleText7 + db "@" + +Route3Text9: ; 5563a (15:563a) + db $08 ; asm + ld hl, Route3TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route3BattleText8: ; 55644 (15:5644) + TX_FAR _Route3BattleText8 + db "@" + +Route3EndBattleText8: ; 55649 (15:5649) + TX_FAR _Route3EndBattleText8 + db "@" + +Route3AfterBattleText8: ; 5564e (15:564e) + TX_FAR _Route3AfterBattleText8 + db "@" + +Route3Text10: ; 55653 (15:5653) + TX_FAR _Route3Text10 + db "@" diff --git a/scripts/route4.asm b/scripts/route4.asm new file mode 100755 index 00000000..69ec7424 --- /dev/null +++ b/scripts/route4.asm @@ -0,0 +1,63 @@ +Route4Script: ; 55658 (15:5658) + call EnableAutoTextBoxDrawing + ld hl, Route4TrainerHeaders + ld de, Route4ScriptPointers + ld a, [W_ROUTE4CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE4CURSCRIPT], a + ret + +Route4ScriptPointers: ; 5566b (15:566b) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route4TextPointers: ; 55671 (15:5671) + dw Route4Text1 + dw Route4Text2 + dw Predef5CText + dw PokeCenterSignText + dw Route4Text5 + dw Route4Text6 + +Route4TrainerHeaders: ; 5567d (15:567d) +Route4TrainerHeader0: ; 5567d (15:567d) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7c5 ; flag's byte + dw Route4BattleText1 ; 0x5699 TextBeforeBattle + dw Route4AfterBattleText1 ; 0x56a3 TextAfterBattle + dw Route4EndBattleText1 ; 0x569e TextEndBattle + dw Route4EndBattleText1 ; 0x569e TextEndBattle + + db $ff + +Route4Text1: ; 5568a (15:568a) + TX_FAR _Route4Text1 + db "@" + +Route4Text2: ; 5568f (15:568f) + db $08 ; asm + ld hl, Route4TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route4BattleText1: ; 55699 (15:5699) + TX_FAR _Route4BattleText1 + db "@" + +Route4EndBattleText1: ; 5569e (15:569e) + TX_FAR _Route4EndBattleText1 + db "@" + +Route4AfterBattleText1: ; 556a3 (15:56a3) + TX_FAR _Route4AfterBattleText1 + db "@" + +Route4Text5: ; 556a8 (15:56a8) + TX_FAR _Route4Text5 + db "@" + +Route4Text6: ; 556ad (15:56ad) + TX_FAR _Route4Text6 + db "@" diff --git a/scripts/route5.asm b/scripts/route5.asm new file mode 100755 index 00000000..1fad3939 --- /dev/null +++ b/scripts/route5.asm @@ -0,0 +1,9 @@ +Route5Script: ; 556b2 (15:56b2) + jp EnableAutoTextBoxDrawing + +Route5TextPointers: ; 556b5 (15:56b5) + dw Route5Text1 + +Route5Text1: ; 556b7 (15:56b7) + TX_FAR _Route5Text1 + db "@" diff --git a/scripts/route5gate.asm b/scripts/route5gate.asm new file mode 100755 index 00000000..f6f1eb1a --- /dev/null +++ b/scripts/route5gate.asm @@ -0,0 +1,121 @@ +Route5GateScript: ; 1df33 (7:5f33) + call EnableAutoTextBoxDrawing + ld a, [W_ROUTE5GATECURSCRIPT] + ld hl, Route5GateScriptPointers + jp CallFunctionInTable + +Route5GateScriptPointers: ; 1df3f (7:5f3f) + dw Route5GateScript0 + dw Route5GateScript1 + +Route5GateScript_1df43: ; 1df43 (7:5f43) + ld a, $40 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + jp Func_3486 + +Route5GateScript0: ; 1df50 (7:5f50) + ld a, [$d728] + bit 6, a + ret nz + ld hl, CoordsData_1df8f + call ArePlayerCoordsInArray + ret nc + ld a, $2 + ld [$d528], a + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld b, BANK(RemoveGuardDrink) + ld hl, RemoveGuardDrink + call Bankswitch + ld a, [$ff00+$db] + and a + jr nz, .asm_1df82 ; 0x1df70 $10 + ld a, $2 + ld [$ff00+$8c], a + call DisplayTextID + call Route5GateScript_1df43 + ld a, $1 + ld [W_ROUTE5GATECURSCRIPT], a + ret +.asm_1df82 + ld a, $3 + ld [$ff00+$8c], a + call DisplayTextID + ld hl, $d728 + set 6, [hl] + ret + +CoordsData_1df8f: ; 1df8f (7:5f8f) + db 3,3 + db 3,4 + db $ff + +Route5GateScript1: ; 1df94 (7:5f94) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROUTE5GATECURSCRIPT], a + ret + +Route5GateTextPointers: ; 1dfa4 (7:5fa4) + dw Route5GateText1 + dw Route5GateText2 + dw Route5GateText3 + +Route8GateText1: ; 1dfaa (7:5faa) +Route7GateText1: ; 1dfaa (7:5faa) +Route6GateText1: ; 1dfaa (7:5faa) +Route5GateText1: ; 1dfaa (7:5faa) + db $8 + ld a, [$d728] + bit 6, a + jr nz, .asm_88856 ; 0x1dfb0 $2c + ld b, BANK(RemoveGuardDrink) + ld hl, RemoveGuardDrink + call Bankswitch + ld a, [$ff00+$db] + and a + jr nz, .asm_768a2 ; 0x1dfbd $11 + ld hl, Route5GateText2 + call PrintText + call Route5GateScript_1df43 + ld a, $1 + ld [W_ROUTE5GATECURSCRIPT], a + jp TextScriptEnd +.asm_768a2 ; 0x1dfd0 + ld hl, Route5GateText3 + call PrintText + ld hl, $d728 + set 6, [hl] + jp TextScriptEnd +.asm_88856 ; 0x1dfde + ld hl, SaffronGateText_1dff6 + call PrintText + jp TextScriptEnd + +Route8GateText2: ; 1dfe7 (7:5fe7) +Route7GateText2: ; 1dfe7 (7:5fe7) +Route6GateText2: ; 1dfe7 (7:5fe7) +Route5GateText2: ; 1dfe7 (7:5fe7) + TX_FAR _SaffronGateText_1dfe7 + db "@" + +Route8GateText3: ; 1dfec (7:5fec) +Route7GateText3: ; 1dfec (7:5fec) +Route6GateText3: ; 1dfec (7:5fec) +Route5GateText3: ; 1dfec (7:5fec) + TX_FAR _SaffronGateText_8aaa9 ; 0x8aaa9 + db $11 + TX_FAR _SaffronGateText_1dff1 ; 0x8aaef + db "@" + +SaffronGateText_1dff6: ; 1dff6 (7:5ff6) + TX_FAR _SaffronGateText_1dff6 + db "@" + + diff --git a/scripts/route6.asm b/scripts/route6.asm new file mode 100755 index 00000000..a1cf52a8 --- /dev/null +++ b/scripts/route6.asm @@ -0,0 +1,187 @@ +Route6Script: ; 590b0 (16:50b0) + call EnableAutoTextBoxDrawing + ld hl, Route6TrainerHeaders + ld de, Route6ScriptPointers + ld a, [W_ROUTE6CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE6CURSCRIPT], a + ret + +Route6ScriptPointers: ; 590c3 (16:50c3) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route6TextPointers: ; 590c9 (16:50c9) + dw Route6Text1 + dw Route6Text2 + dw Route6Text3 + dw Route6Text4 + dw Route6Text5 + dw Route6Text6 + dw Route6Text7 + +Route6TrainerHeaders: ; 590d7 (16:50d7) +Route6TrainerHeader0: ; 590d7 (16:50d7) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d7c9 ; flag's byte + dw Route6BattleText1 ; 0x512a TextBeforeBattle + dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle + dw Route6EndBattleText1 ; 0x512f TextEndBattle + dw Route6EndBattleText1 ; 0x512f TextEndBattle + +Route6TrainerHeader1: ; 590e3 (16:50e3) + db $2 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d7c9 ; flag's byte + dw Route6BattleText2 ; 0x5143 TextBeforeBattle + dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle + dw Route6EndBattleText2 ; 0x5148 TextEndBattle + dw Route6EndBattleText2 ; 0x5148 TextEndBattle + +Route6TrainerHeader2: ; 590ef (16:50ef) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7c9 ; flag's byte + dw Route6BattleText3 ; 0x5157 TextBeforeBattle + dw Route6AfterBattleText3 ; 0x5161 TextAfterBattle + dw Route6EndBattleText3 ; 0x515c TextEndBattle + dw Route6EndBattleText3 ; 0x515c TextEndBattle + +Route6TrainerHeader3: ; 590fb (16:50fb) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7c9 ; flag's byte + dw Route6BattleText4 ; 0x5170 TextBeforeBattle + dw Route6AfterBattleText4 ; 0x517a TextAfterBattle + dw Route6EndBattleText4 ; 0x5175 TextEndBattle + dw Route6EndBattleText4 ; 0x5175 TextEndBattle + +Route6TrainerHeader4: ; 59107 (16:5107) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7c9 ; flag's byte + dw Route6BattleText5 ; 0x5189 TextBeforeBattle + dw Route6AfterBattleText5 ; 0x5193 TextAfterBattle + dw Route6EndBattleText5 ; 0x518e TextEndBattle + dw Route6EndBattleText5 ; 0x518e TextEndBattle + +Route6TrainerHeader5: ; 59113 (16:5113) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7c9 ; flag's byte + dw Route6BattleText6 ; 0x51a2 TextBeforeBattle + dw Route6AfterBattleText6 ; 0x51ac TextAfterBattle + dw Route6EndBattleText6 ; 0x51a7 TextEndBattle + dw Route6EndBattleText6 ; 0x51a7 TextEndBattle + + db $ff + +Route6Text1: ; 59120 (16:5120) + db $8 + ld hl, Route6TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route6BattleText1: ; 5912a (16:512a) + TX_FAR _Route6BattleText1 + db "@" + +Route6EndBattleText1: ; 5912f (16:512f) + TX_FAR _Route6EndBattleText1 + db "@" + +Route6AfterBattleText1: ; 59134 (16:5134) + TX_FAR _Route6AfterBattleText1 + db "@" + +Route6Text2: ; 59139 (16:5139) + db $08 ; asm + ld hl, Route6TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route6BattleText2: ; 59143 (16:5143) + TX_FAR _Route6BattleText2 + db "@" + +Route6EndBattleText2: ; 59148 (16:5148) + TX_FAR _Route6EndBattleText2 + db "@" + +Route6Text3: ; 5914d (16:514d) + db $08 ; asm + ld hl, Route6TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route6BattleText3: ; 59157 (16:5157) + TX_FAR _Route6BattleText3 + db "@" + +Route6EndBattleText3: ; 5915c (16:515c) + TX_FAR _Route6EndBattleText3 + db "@" + +Route6AfterBattleText3: ; 59161 (16:5161) + TX_FAR _Route6AfterBattleText3 + db "@" + +Route6Text4: ; 59166 (16:5166) + db $08 ; asm + ld hl, Route6TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route6BattleText4: ; 59170 (16:5170) + TX_FAR _Route6BattleText4 + db "@" + +Route6EndBattleText4: ; 59175 (16:5175) + TX_FAR _Route6EndBattleText4 + db "@" + +Route6AfterBattleText4: ; 5917a (16:517a) + TX_FAR _Route6AfterBattleText4 + db "@" + +Route6Text5: ; 5917f (16:517f) + db $08 ; asm + ld hl, Route6TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route6BattleText5: ; 59189 (16:5189) + TX_FAR _Route6BattleText5 + db "@" + +Route6EndBattleText5: ; 5918e (16:518e) + TX_FAR _Route6EndBattleText5 + db "@" + +Route6AfterBattleText5: ; 59193 (16:5193) + TX_FAR _Route6AfterBattleText5 + db "@" + +Route6Text6: ; 59198 (16:5198) + db $08 ; asm + ld hl, Route6TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route6BattleText6: ; 591a2 (16:51a2) + TX_FAR _Route6BattleText6 + db "@" + +Route6EndBattleText6: ; 591a7 (16:51a7) + TX_FAR _Route6EndBattleText6 + db "@" + +Route6AfterBattleText6: ; 591ac (16:51ac) + TX_FAR _Route6AfterBattleText6 + db "@" + +Route6Text7: ; 591b1 (16:51b1) + TX_FAR _Route6Text7 + db "@" diff --git a/scripts/route6gate.asm b/scripts/route6gate.asm new file mode 100755 index 00000000..f98c4434 --- /dev/null +++ b/scripts/route6gate.asm @@ -0,0 +1,72 @@ +Route6GateScript: ; 1e03d (7:603d) + call EnableAutoTextBoxDrawing + ld hl, Route6GateScriptPointers + ld a, [W_ROUTE6GATECURSCRIPT] + call CallFunctionInTable + ret + +Route6GateScriptPointers: ; 1e04a (7:604a) + dw Route6GateScript0 + dw Route6GateScript1 + +Route6GateScript0: ; 1e04e (7:604e) + ld a, [$d728] + bit 6, a + ret nz + ld hl, CoordsData_1e08c + call ArePlayerCoordsInArray + ret nc + ld a, $1 + ld [$d528], a + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld b, BANK(RemoveGuardDrink) + ld hl, RemoveGuardDrink + call Bankswitch + ld a, [$ffdb] + and a + jr nz, .asm_1e080 ; 0x1e06e $10 + ld a, $2 + ld [$ff8c], a + call DisplayTextID + call Route6GateScript_1e0a1 + ld a, $1 + ld [W_ROUTE6GATECURSCRIPT], a + ret +.asm_1e080 + ld hl, $d728 + set 6, [hl] + ld a, $3 + ld [$ff8c], a + jp DisplayTextID + +CoordsData_1e08c: ; 1e08c (7:608c) + db $02,$03 + db $02,$04,$FF + +Route6GateScript1: ; 1e091 (7:6091) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROUTE6GATECURSCRIPT], a + ret + +Route6GateScript_1e0a1: ; 1e0a1 (7:60a1) + ld hl, $d730 + set 7, [hl] + ld a, $80 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + xor a + ld [$c206], a + ld [$cd3b], a + ret + +Route6GateTextPointers: ; 1e0b8 (7:60b8) + dw Route6GateText1 + dw Route6GateText2 + dw Route6GateText3 diff --git a/scripts/route7.asm b/scripts/route7.asm new file mode 100755 index 00000000..484fc539 --- /dev/null +++ b/scripts/route7.asm @@ -0,0 +1,9 @@ +Route7Script: ; 48152 (12:4152) + jp EnableAutoTextBoxDrawing + +Route7TextPointers: ; 48155 (12:4155) + dw Route7Text1 + +Route7Text1: ; 48157 (12:4157) + TX_FAR _Route7Text1 + db "@" diff --git a/scripts/route7gate.asm b/scripts/route7gate.asm new file mode 100755 index 00000000..dba1dadc --- /dev/null +++ b/scripts/route7gate.asm @@ -0,0 +1,75 @@ +Route7GateScript: ; 1e100 (7:6100) + call EnableAutoTextBoxDrawing + ld a, [W_ROUTE7GATECURSCRIPT] + ld hl, Route7GateScriptPointers + call CallFunctionInTable + ret + +Route7GateScriptPointers: ; 1e10d (7:610d) + dw Route7GateScript0 + dw Route7GateScript1 + +Route7GateScript_1e111: ; 1e111 (7:6111) + ld hl, $d730 + set 7, [hl] + ld a, $20 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + xor a + ld [$c206], a + ld [$cd3b], a + ret + +Route7GateScript0: ; 1e128 (7:6128) + ld a, [$d728] + bit 6, a + ret nz + ld hl, CoordsData_1e167 + call ArePlayerCoordsInArray + ret nc + ld a, $8 + ld [$d528], a + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld b, BANK(RemoveGuardDrink) + ld hl, RemoveGuardDrink + call Bankswitch + ld a, [$ffdb] + and a + jr nz, .asm_1e15a ; 0x1e148 $10 + ld a, $2 + ld [$ff8c], a + call DisplayTextID + call Route7GateScript_1e111 + ld a, $1 + ld [W_ROUTE7GATECURSCRIPT], a + ret +.asm_1e15a + ld a, $3 + ld [$ff8c], a + call DisplayTextID + ld hl, $d728 + set 6, [hl] + ret + +CoordsData_1e167: ; 1e167 (7:6167) + db 3,3 + db 4,3 + db $ff + +Route7GateScript1: ; 1e16c (7:616c) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROUTE7GATECURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +Route7GateTextPointers: ; 1e17f (7:617f) + dw Route7GateText1 + dw Route7GateText2 + dw Route7GateText3 diff --git a/scripts/route8.asm b/scripts/route8.asm new file mode 100755 index 00000000..eebc96ff --- /dev/null +++ b/scripts/route8.asm @@ -0,0 +1,275 @@ +Route8Script: ; 591b6 (16:51b6) + call EnableAutoTextBoxDrawing + ld hl, Route8TrainerHeaders + ld de, Route8ScriptPointers + ld a, [W_ROUTE8CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE8CURSCRIPT], a + ret + +Route8ScriptPointers: ; 591c9 (16:51c9) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route8TextPointers: ; 591cf (16:51cf) + dw Route8Text1 + dw Route8Text2 + dw Route8Text3 + dw Route8Text4 + dw Route8Text5 + dw Route8Text6 + dw Route8Text7 + dw Route8Text8 + dw Route8Text9 + dw Route8Text10 + +Route8TrainerHeaders: ; 591e3 (16:51e3) +Route8TrainerHeader0: ; 591e3 (16:51e3) + db $1 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText1 ; 0x525a TextBeforeBattle + dw Route8AfterBattleText1 ; 0x5264 TextAfterBattle + dw Route8EndBattleText1 ; 0x525f TextEndBattle + dw Route8EndBattleText1 ; 0x525f TextEndBattle + +Route8TrainerHeader1: ; 591ef (16:51ef) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText2 ; 0x5273 TextBeforeBattle + dw Route8AfterBattleText2 ; 0x527d TextAfterBattle + dw Route8EndBattleText2 ; 0x5278 TextEndBattle + dw Route8EndBattleText2 ; 0x5278 TextEndBattle + +Route8TrainerHeader2: ; 591fb (16:51fb) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText3 ; 0x528c TextBeforeBattle + dw Route8AfterBattleText3 ; 0x5296 TextAfterBattle + dw Route8EndBattleText3 ; 0x5291 TextEndBattle + dw Route8EndBattleText3 ; 0x5291 TextEndBattle + +Route8TrainerHeader3: ; 59207 (16:5207) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText4 ; 0x52a5 TextBeforeBattle + dw Route8AfterBattleText4 ; 0x52af TextAfterBattle + dw Route8EndBattleText4 ; 0x52aa TextEndBattle + dw Route8EndBattleText4 ; 0x52aa TextEndBattle + +Route8TrainerHeader4: ; 59213 (16:5213) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText5 ; 0x52be TextBeforeBattle + dw Route8AfterBattleText5 ; 0x52c8 TextAfterBattle + dw Route8EndBattleText5 ; 0x52c3 TextEndBattle + dw Route8EndBattleText5 ; 0x52c3 TextEndBattle + +Route8TrainerHeader5: ; 5921f (16:521f) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText6 ; 0x52d7 TextBeforeBattle + dw Route8AfterBattleText6 ; 0x52e1 TextAfterBattle + dw Route8EndBattleText6 ; 0x52dc TextEndBattle + dw Route8EndBattleText6 ; 0x52dc TextEndBattle + +Route8TrainerHeader6: ; 5922b (16:522b) + db $7 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText7 ; 0x52f0 TextBeforeBattle + dw Route8AfterBattleText7 ; 0x52fa TextAfterBattle + dw Route8EndBattleText7 ; 0x52f5 TextEndBattle + dw Route8EndBattleText7 ; 0x52f5 TextEndBattle + +Route8TrainerHeader7: ; 59237 (16:5237) + db $8 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText8 ; 0x5309 TextBeforeBattle + dw Route8AfterBattleText8 ; 0x5313 TextAfterBattle + dw Route8EndBattleText8 ; 0x530e TextEndBattle + dw Route8EndBattleText8 ; 0x530e TextEndBattle + +Route8TrainerHeader8: ; 59243 (16:5243) + db $9 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7cd ; flag's byte + dw Route8BattleText9 ; 0x5322 TextBeforeBattle + dw Route8AfterBattleText9 ; 0x532c TextAfterBattle + dw Route8EndBattleText9 ; 0x5327 TextEndBattle + dw Route8EndBattleText9 ; 0x5327 TextEndBattle + + db $ff + +Route8Text1: ; 59250 (16:5250) + db $8 + ld hl, Route8TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText1: ; 5925a (16:525a) + TX_FAR _Route8BattleText1 + db "@" + +Route8EndBattleText1: ; 5925f (16:525f) + TX_FAR _Route8EndBattleText1 + db "@" + +Route8AfterBattleText1: ; 59264 (16:5264) + TX_FAR _Route8AfterBattleText1 + db "@" + +Route8Text2: ; 59269 (16:5269) + db $08 ; asm + ld hl, Route8TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText2: ; 59273 (16:5273) + TX_FAR _Route8BattleText2 + db "@" + +Route8EndBattleText2: ; 59278 (16:5278) + TX_FAR _Route8EndBattleText2 + db "@" + +Route8AfterBattleText2: ; 5927d (16:527d) + TX_FAR _Route8AfterBattleText2 + db "@" + +Route8Text3: ; 59282 (16:5282) + db $08 ; asm + ld hl, Route8TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText3: ; 5928c (16:528c) + TX_FAR _Route8BattleText3 + db "@" + +Route8EndBattleText3: ; 59291 (16:5291) + TX_FAR _Route8EndBattleText3 + db "@" + +Route8AfterBattleText3: ; 59296 (16:5296) + TX_FAR _Route8AfterBattleText3 + db "@" + +Route8Text4: ; 5929b (16:529b) + db $08 ; asm + ld hl, Route8TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText4: ; 592a5 (16:52a5) + TX_FAR _Route8BattleText4 + db "@" + +Route8EndBattleText4: ; 592aa (16:52aa) + TX_FAR _Route8EndBattleText4 + db "@" + +Route8AfterBattleText4: ; 592af (16:52af) + TX_FAR _Route8AfterBattleText4 + db "@" + +Route8Text5: ; 592b4 (16:52b4) + db $08 ; asm + ld hl, Route8TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText5: ; 592be (16:52be) + TX_FAR _Route8BattleText5 + db "@" + +Route8EndBattleText5: ; 592c3 (16:52c3) + TX_FAR _Route8EndBattleText5 + db "@" + +Route8AfterBattleText5: ; 592c8 (16:52c8) + TX_FAR _Route8AfterBattleText5 + db "@" + +Route8Text6: ; 592cd (16:52cd) + db $08 ; asm + ld hl, Route8TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText6: ; 592d7 (16:52d7) + TX_FAR _Route8BattleText6 + db "@" + +Route8EndBattleText6: ; 592dc (16:52dc) + TX_FAR _Route8EndBattleText6 + db "@" + +Route8AfterBattleText6: ; 592e1 (16:52e1) + TX_FAR _Route8AfterBattleText6 + db "@" + +Route8Text7: ; 592e6 (16:52e6) + db $08 ; asm + ld hl, Route8TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText7: ; 592f0 (16:52f0) + TX_FAR _Route8BattleText7 + db "@" + +Route8EndBattleText7: ; 592f5 (16:52f5) + TX_FAR _Route8EndBattleText7 + db "@" + +Route8AfterBattleText7: ; 592fa (16:52fa) + TX_FAR _Route8AfterBattleText7 + db "@" + +Route8Text8: ; 592ff (16:52ff) + db $08 ; asm + ld hl, Route8TrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText8: ; 59309 (16:5309) + TX_FAR _Route8BattleText8 + db "@" + +Route8EndBattleText8: ; 5930e (16:530e) + TX_FAR _Route8EndBattleText8 + db "@" + +Route8AfterBattleText8: ; 59313 (16:5313) + TX_FAR _Route8AfterBattleText8 + db "@" + +Route8Text9: ; 59318 (16:5318) + db $08 ; asm + ld hl, Route8TrainerHeader8 + call TalkToTrainer + jp TextScriptEnd + +Route8BattleText9: ; 59322 (16:5322) + TX_FAR _Route8BattleText9 + db "@" + +Route8EndBattleText9: ; 59327 (16:5327) + TX_FAR _Route8EndBattleText9 + db "@" + +Route8AfterBattleText9: ; 5932c (16:532c) + TX_FAR _Route8AfterBattleText9 + db "@" + +Route8Text10: ; 59331 (16:5331) + TX_FAR _Route8Text10 + db "@" diff --git a/scripts/route8gate.asm b/scripts/route8gate.asm new file mode 100755 index 00000000..2223b894 --- /dev/null +++ b/scripts/route8gate.asm @@ -0,0 +1,72 @@ +Route8GateScript: ; 1e1c7 (7:61c7) + call EnableAutoTextBoxDrawing + ld hl, Route8GateScriptPointers + ld a, [W_ROUTE8GATECURSCRIPT] + jp CallFunctionInTable + +Route8GateScriptPointers: ; 1e1d3 (7:61d3) + dw Route8GateScript0 + dw Route8GateScript1 + +Route8GateScript_1e1d7: ; 1e1d7 (7:61d7) + ld hl, $d730 + set 7, [hl] + ld a, $10 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + xor a + ld [$c206], a + ld [$cd3b], a + ret + +Route8GateScript0: ; 1e1ee (7:61ee) + ld a, [$d728] + bit 6, a + ret nz + ld hl, CoordsData_1e22c + call ArePlayerCoordsInArray + ret nc + ld a, $2 + ld [$d528], a + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld b, BANK(RemoveGuardDrink) + ld hl, RemoveGuardDrink + call Bankswitch + ld a, [$ffdb] + and a + jr nz, .asm_1e220 ; 0x1e20e $10 + ld a, $2 + ld [$ff8c], a + call DisplayTextID + call Route8GateScript_1e1d7 + ld a, $1 + ld [W_ROUTE8GATECURSCRIPT], a + ret +.asm_1e220 + ld hl, $d728 + set 6, [hl] + ld a, $3 + ld [$ff8c], a + jp DisplayTextID + +CoordsData_1e22c: ; 1e22c (7:622c) + db 3,2 + db 4,2 + db $ff + +Route8GateScript1: ; 1e231 (7:6231) + ld a, [$cd38] + and a + ret nz + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_ROUTE8GATECURSCRIPT], a + ret + +Route8GateTextPointers: ; 1e241 (7:6241) + dw Route8GateText1 + dw Route8GateText2 + dw Route8GateText3 diff --git a/scripts/route9.asm b/scripts/route9.asm new file mode 100755 index 00000000..852c09b2 --- /dev/null +++ b/scripts/route9.asm @@ -0,0 +1,269 @@ +Route9Script: ; 556bc (15:56bc) + call EnableAutoTextBoxDrawing + ld hl, Route9TrainerHeaders + ld de, Route9ScriptPointers + ld a, [W_ROUTE9CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_ROUTE9CURSCRIPT], a + ret + +Route9ScriptPointers: ; 556cf (15:56cf) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +Route9TextPointers: ; 556d5 (15:56d5) + dw Route9Text1 + dw Route9Text2 + dw Route9Text3 + dw Route9Text4 + dw Route9Text5 + dw Route9Text6 + dw Route9Text7 + dw Route9Text8 + dw Route9Text9 + dw Predef5CText + dw Route9Text11 + +Route9TrainerHeaders: ; 556eb (15:56eb) +Route9TrainerHeader0: ; 556eb (15:56eb) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText1 ; 0x5792 TextBeforeBattle + dw Route9AfterBattleText1 ; 0x579c TextAfterBattle + dw Route9EndBattleText1 ; 0x5797 TextEndBattle + dw Route9EndBattleText1 ; 0x5797 TextEndBattle + +Route9TrainerHeader2: ; 556f7 (15:56f7) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText2 ; 0x57a1 TextBeforeBattle + dw Route9AfterBattleText2 ; 0x57ab TextAfterBattle + dw Route9EndBattleText2 ; 0x57a6 TextEndBattle + dw Route9EndBattleText2 ; 0x57a6 TextEndBattle + +Route9TrainerHeader3: ; 55703 (15:5703) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText3 ; 0x57b0 TextBeforeBattle + dw Route9AfterBattleText3 ; 0x57ba TextAfterBattle + dw Route9EndBattleText3 ; 0x57b5 TextEndBattle + dw Route9EndBattleText3 ; 0x57b5 TextEndBattle + +Route9TrainerHeader4: ; 5570f (15:570f) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText4 ; 0x57bf TextBeforeBattle + dw Route9AfterBattleText4 ; 0x57c9 TextAfterBattle + dw Route9EndBattleText4 ; 0x57c4 TextEndBattle + dw Route9EndBattleText4 ; 0x57c4 TextEndBattle + +Route9TrainerHeader5: ; 5571b (15:571b) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText5 ; 0x57ce TextBeforeBattle + dw Route9AfterBattleText5 ; 0x57d8 TextAfterBattle + dw Route9EndBattleText5 ; 0x57d3 TextEndBattle + dw Route9EndBattleText5 ; 0x57d3 TextEndBattle + +Route9TrainerHeader6: ; 55727 (15:5727) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText6 ; 0x57dd TextBeforeBattle + dw Route9AfterBattleText6 ; 0x57e7 TextAfterBattle + dw Route9EndBattleText6 ; 0x57e2 TextEndBattle + dw Route9EndBattleText6 ; 0x57e2 TextEndBattle + +Route9TrainerHeader7: ; 55733 (15:5733) + db $7 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText7 ; 0x57ec TextBeforeBattle + dw Route9AfterBattleText7 ; 0x57f6 TextAfterBattle + dw Route9EndBattleText7 ; 0x57f1 TextEndBattle + dw Route9EndBattleText7 ; 0x57f1 TextEndBattle + +Route9TrainerHeader8: ; 5573f (15:573f) + db $8 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText8 ; 0x57fb TextBeforeBattle + dw Route9AfterBattleText8 ; 0x5805 TextAfterBattle + dw Route9EndBattleText8 ; 0x5800 TextEndBattle + dw Route9EndBattleText8 ; 0x5800 TextEndBattle + +Route9TrainerHeader9: ; 5574b (15:574b) + db $9 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d7cf ; flag's byte + dw Route9BattleText9 ; 0x580a TextBeforeBattle + dw Route9AfterBattleText9 ; 0x5814 TextAfterBattle + dw Route9EndBattleText9 ; 0x580f TextEndBattle + dw Route9EndBattleText9 ; 0x580f TextEndBattle + + db $ff + +Route9Text1: ; 55758 (15:5758) + db $8 ; asm + ld hl, Route9TrainerHeader0 + jr asm_8be3d ; 0x5575c $2e + +Route9Text2: ; 5575e (15:575e) + db $8 ; asm + ld hl, Route9TrainerHeader2 + jr asm_8be3d ; 0x55762 $28 + +Route9Text3: ; 55764 (15:5764) + db $8 ; asm + ld hl, Route9TrainerHeader3 + jr asm_8be3d ; 0x55768 $22 + +Route9Text4: ; 5576a (15:576a) + db $8 ; asm + ld hl, Route9TrainerHeader4 + jr asm_8be3d ; 0x5576e $1c + +Route9Text5: ; 55770 (15:5770) + db $8 ; asm + ld hl, Route9TrainerHeader5 + jr asm_8be3d ; 0x55774 $16 + +Route9Text6: ; 55776 (15:5776) + db $8 ; asm + ld hl, Route9TrainerHeader6 + jr asm_8be3d ; 0x5577a $10 + +Route9Text7: ; 5577c (15:577c) + db $8 ; asm + ld hl, Route9TrainerHeader7 + jr asm_8be3d ; 0x55780 $a + +Route9Text8: ; 55782 (15:5782) + db $8 ; asm + ld hl, Route9TrainerHeader8 + jr asm_8be3d ; 0x55786 $4 + +Route9Text9: ; 55788 (15:5788) + db $8 ; asm + ld hl, Route9TrainerHeader9 +asm_8be3d: ; 5578c (15:578c) + call TalkToTrainer + jp TextScriptEnd + +Route9BattleText1: ; 55792 (15:5792) + TX_FAR _Route9BattleText1 + db "@" + +Route9EndBattleText1: ; 55797 (15:5797) + TX_FAR _Route9EndBattleText1 + db "@" + +Route9AfterBattleText1: ; 5579c (15:579c) + TX_FAR _Route9AfterBattleText1 + db "@" + +Route9BattleText2: ; 557a1 (15:57a1) + TX_FAR _Route9BattleText2 + db "@" + +Route9EndBattleText2: ; 557a6 (15:57a6) + TX_FAR _Route9EndBattleText2 + db "@" + +Route9AfterBattleText2: ; 557ab (15:57ab) + TX_FAR _Route9AfterBattleText2 + db "@" + +Route9BattleText3: ; 557b0 (15:57b0) + TX_FAR _Route9BattleText3 + db "@" + +Route9EndBattleText3: ; 557b5 (15:57b5) + TX_FAR _Route9EndBattleText3 + db "@" + +Route9AfterBattleText3: ; 557ba (15:57ba) + TX_FAR _Route9AfterBattleText3 + db "@" + +Route9BattleText4: ; 557bf (15:57bf) + TX_FAR _Route9BattleText4 + db "@" + +Route9EndBattleText4: ; 557c4 (15:57c4) + TX_FAR _Route9EndBattleText4 + db "@" + +Route9AfterBattleText4: ; 557c9 (15:57c9) + TX_FAR _Route9AfterBattleText4 + db "@" + +Route9BattleText5: ; 557ce (15:57ce) + TX_FAR _Route9BattleText5 + db "@" + +Route9EndBattleText5: ; 557d3 (15:57d3) + TX_FAR _Route9EndBattleText5 + db "@" + +Route9AfterBattleText5: ; 557d8 (15:57d8) + TX_FAR _Route9AfterBattleText5 + db "@" + +Route9BattleText6: ; 557dd (15:57dd) + TX_FAR _Route9BattleText6 + db "@" + +Route9EndBattleText6: ; 557e2 (15:57e2) + TX_FAR _Route9EndBattleText6 + db "@" + +Route9AfterBattleText6: ; 557e7 (15:57e7) + TX_FAR _Route9AfterBattleText6 + db "@" + +Route9BattleText7: ; 557ec (15:57ec) + TX_FAR _Route9BattleText7 + db "@" + +Route9EndBattleText7: ; 557f1 (15:57f1) + TX_FAR _Route9EndBattleText7 + db "@" + +Route9AfterBattleText7: ; 557f6 (15:57f6) + TX_FAR _Route9AfterBattleText7 + db "@" + +Route9BattleText8: ; 557fb (15:57fb) + TX_FAR _Route9BattleText8 + db "@" + +Route9EndBattleText8: ; 55800 (15:5800) + TX_FAR _Route9EndBattleText8 + db "@" + +Route9AfterBattleText8: ; 55805 (15:5805) + TX_FAR _Route9AfterBattleText8 + db "@" + +Route9BattleText9: ; 5580a (15:580a) + TX_FAR _Route9BattleText9 + db "@" + +Route9EndBattleText9: ; 5580f (15:580f) + TX_FAR _Route9EndBattleText9 + db "@" + +Route9AfterBattleText9: ; 55814 (15:5814) + TX_FAR _Route9AfterBattleText9 + db "@" + +Route9Text11: ; 55819 (15:5819) + TX_FAR _Route9Text11 + db "@" diff --git a/scripts/safarizonecenter.asm b/scripts/safarizonecenter.asm new file mode 100755 index 00000000..6ff60ec6 --- /dev/null +++ b/scripts/safarizonecenter.asm @@ -0,0 +1,15 @@ +SafariZoneCenterScript: ; 45bb2 (11:5bb2) + jp EnableAutoTextBoxDrawing + +SafariZoneCenterTextPointers: ; 45bb5 (11:5bb5) + dw Predef5CText + dw SafariZoneCenterText2 + dw SafariZoneCenterText3 + +SafariZoneCenterText2: ; 45bbb (11:5bbb) + TX_FAR _SafariZoneCenterText2 + db "@" + +SafariZoneCenterText3: ; 45bc0 (11:5bc0) + TX_FAR _SafariZoneCenterText3 + db "@" diff --git a/scripts/safarizoneeast.asm b/scripts/safarizoneeast.asm new file mode 100755 index 00000000..3e6df139 --- /dev/null +++ b/scripts/safarizoneeast.asm @@ -0,0 +1,23 @@ +SafariZoneEastScript: ; 4586b (11:586b) + jp EnableAutoTextBoxDrawing + +SafariZoneEastTextPointers: ; 4586e (11:586e) + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw SafariZoneEastText5 + dw SafariZoneEastText6 + dw SafariZoneEastText7 + +SafariZoneEastText5: ; 4587c (11:587c) + TX_FAR _SafariZoneEastText5 + db "@" + +SafariZoneEastText6: ; 45881 (11:5881) + TX_FAR _SafariZoneEastText6 + db "@" + +SafariZoneEastText7: ; 45886 (11:5886) + TX_FAR _SafariZoneEastText7 + db "@" diff --git a/scripts/safarizoneentrance.asm b/scripts/safarizoneentrance.asm new file mode 100755 index 00000000..d1bc0d37 --- /dev/null +++ b/scripts/safarizoneentrance.asm @@ -0,0 +1,300 @@ +SafariZoneEntranceScript: ; 751cd (1d:51cd) + call EnableAutoTextBoxDrawing + ld hl, SafariZoneEntranceScriptPointers + ld a, [W_SAFARIZONEENTRANCECURSCRIPT] + jp CallFunctionInTable + +SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) + dw SafariZoneEntranceScript0 + dw SafariZoneEntranceScript1 + dw SafariZoneEntranceScript2 + dw SafariZoneEntranceScript3 + dw SafariZoneEntranceScript4 + dw SafariZoneEntranceScript5 + dw SafariZoneEntranceScript6 + +SafariZoneEntranceScript0: ; 751e7 (1d:51e7) + ld hl, CoordsData_75221 + call ArePlayerCoordsInArray + ret nc + ld a, $3 + ld [$ff8c], a + call DisplayTextID + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $c + ld [$c109], a + ld a, [$cd3d] + cp $1 + jr z, .asm_7520f ; 0x75207 $6 + ld a, $2 + ld [W_SAFARIZONEENTRANCECURSCRIPT], a + ret +.asm_7520f + ld a, $10 + ld c, $1 + call SafariZoneEntranceScript_752a3 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $1 + ld [W_SAFARIZONEENTRANCECURSCRIPT], a + ret + +CoordsData_75221: ; 75221 (1d:5221) + db $02,$03 + db $02,$04 + db $FF + +SafariZoneEntranceScript1: ; 75226 (1d:5226) + call SafariZoneEntranceScript_752b4 + ret nz +SafariZoneEntranceScript2: ; 7522a (1d:522a) + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld [wJoypadForbiddenButtonsMask], a + call UpdateSprites + ld a, $4 + ld [$ff8c], a + call DisplayTextID + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ret + +SafariZoneEntranceScript3: ; 75240 (1d:5240) + call SafariZoneEntranceScript_752b4 + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $5 + ld [W_SAFARIZONEENTRANCECURSCRIPT], a + ret + +SafariZoneEntranceScript5: ; 7524e (1d:524e) + ld a, $4 + ld [$d528], a + ld hl, $d790 + bit 6, [hl] + res 6, [hl] + jr z, .asm_7527f ; 0x7525a $23 + res 7, [hl] + call UpdateSprites + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $6 + ld [$ff8c], a + call DisplayTextID + xor a + ld [$da47], a + ld a, $80 + ld c, $3 + call SafariZoneEntranceScript_752a3 + ld a, $4 + ld [W_SAFARIZONEENTRANCECURSCRIPT], a + jr .asm_75286 ; 0x7527d $7 +.asm_7527f + ld a, $5 + ld [$ff8c], a + call DisplayTextID +.asm_75286 + ret + +SafariZoneEntranceScript4: ; 75287 (1d:5287) + call SafariZoneEntranceScript_752b4 + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_SAFARIZONEENTRANCECURSCRIPT], a + ret + +SafariZoneEntranceScript6: ; 75295 (1d:5295) + call SafariZoneEntranceScript_752b4 + ret nz + call Delay3 + ld a, [$cf0d] + ld [W_SAFARIZONEENTRANCECURSCRIPT], a + ret + +SafariZoneEntranceScript_752a3: ; 752a3 (1d:52a3) + push af + ld b, $0 + ld a, c + ld [$cd38], a + ld hl, $ccd3 + pop af + call FillMemory + jp Func_3486 + +SafariZoneEntranceScript_752b4: ; 752b4 (1d:52b4) + ld a, [$cd38] + and a + ret + +SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9) + dw SafariZoneEntranceText1 + dw SafariZoneEntranceText2 + dw SafariZoneEntranceText3 + dw SafariZoneEntranceText4 + dw SafariZoneEntranceText5 + dw SafariZoneEntranceText6 + +SafariZoneEntranceText3: ; 752c5 (1d:52c5) +SafariZoneEntranceText1: ; 752c5 (1d:52c5) + TX_FAR _SafariZoneEntranceText1 + db "@" + +SafariZoneEntranceText4: ; 752ca (1d:52ca) + TX_FAR SafariZoneEntranceText_9e6e4 ; 0x9e6e4 + db $8 + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + call YesNoChoice + ld a, [$cc26] + and a + jp nz, .asm_75346 + xor a + ld [$ff9f], a + ld a, $5 + ld [$ffa0], a + ld a, $0 + ld [$ffa1], a + call HasEnoughMoney + jr nc, .asm_752f9 ; 0x752ef $8 + ld hl, SafariZoneEntranceText_7536a + call PrintText + jr .asm_7534c ; 0x752f7 $53 +.asm_752f9 + xor a + ld [$cd3d], a + ld a, $5 + ld [$cd3e], a + ld a, $0 + ld [$cd3f], a + ld hl, $cd3f + ld de, $d349 + ld c, $3 + ld a, $c + call Predef + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + ld hl, SafariZoneEntranceText_7535b + call PrintText + ld a, $1e + ld [$da47], a + ld a, 502 / $100 + ld [wSafariSteps], a + ld a, 502 % $100 + ld [wSafariSteps + 1], a + ld a, $40 + ld c, $3 + call SafariZoneEntranceScript_752a3 + ld hl, $d790 + set 7, [hl] + res 6, [hl] + ld a, $3 + ld [W_SAFARIZONEENTRANCECURSCRIPT], a + jr .asm_75358 ; 0x75344 $12 +.asm_75346 + ld hl, SafariZoneEntranceText_75365 + call PrintText +.asm_7534c + ld a, $80 + ld c, $1 + call SafariZoneEntranceScript_752a3 + ld a, $4 + ld [W_SAFARIZONEENTRANCECURSCRIPT], a +.asm_75358 + jp TextScriptEnd + +SafariZoneEntranceText_7535b: ; 7535b (1d:535b) + TX_FAR SafariZoneEntranceText_9e747 ; 0x9e747 + db $0B + +SafariZoneEntranceText_75360: ; 75360 (1d:5360) + TX_FAR _SafariZoneEntranceText_75360 + db "@" + +SafariZoneEntranceText_75365: ; 75365 (1d:5365) + TX_FAR _SafariZoneEntranceText_75365 + db "@" + +SafariZoneEntranceText_7536a: ; 7536a (1d:536a) + TX_FAR _SafariZoneEntranceText_7536a + db "@" + +SafariZoneEntranceText5: ; 7536f (1d:536f) + TX_FAR SafariZoneEntranceText_9e814 ; 0x9e814 + db $8 + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_7539c ; 0x7537b $1f + ld hl, SafariZoneEntranceText_753bb + call PrintText + xor a + ld [$c109], a + ld a, $80 + ld c, $3 + call SafariZoneEntranceScript_752a3 + ld hl, $d790 + res 6, [hl] + res 7, [hl] + ld a, $0 + ld [$cf0d], a + jr .asm_753b3 ; 0x7539a $17 +.asm_7539c + ld hl, SafariZoneEntranceText_753c0 + call PrintText + ld a, $4 + ld [$c109], a + ld a, $40 + ld c, $1 + call SafariZoneEntranceScript_752a3 + ld a, $5 + ld [$cf0d], a +.asm_753b3 + ld a, $6 + ld [W_SAFARIZONEENTRANCECURSCRIPT], a + jp TextScriptEnd + +SafariZoneEntranceText_753bb: ; 753bb (1d:53bb) + TX_FAR _SafariZoneEntranceText_753bb + db "@" + +SafariZoneEntranceText_753c0: ; 753c0 (1d:53c0) + TX_FAR _SafariZoneEntranceText_753c0 + db "@" + +SafariZoneEntranceText6: ; 753c5 (1d:53c5) + TX_FAR _SafariZoneEntranceText_753c5 + db "@" + +SafariZoneEntranceText2: ; 753ca (1d:53ca) + db $08 ; asm + ld hl, SafariZoneEntranceText_753e6 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + ld hl, SafariZoneEntranceText_753f0 + jr nz, .asm_278a6 ; 0x753db + ld hl, SafariZoneEntranceText_753eb +.asm_278a6 ; 0x753e0 + call PrintText + jp TextScriptEnd + +SafariZoneEntranceText_753e6: ; 753e6 (1d:53e6) + TX_FAR _SafariZoneEntranceText_753e6 + db "@" + +SafariZoneEntranceText_753eb: ; 753eb (1d:53eb) + TX_FAR _SafariZoneEntranceText_753eb + db "@" + +SafariZoneEntranceText_753f0: ; 753f0 (1d:53f0) + TX_FAR _SafariZoneEntranceText_753f0 + db "@" diff --git a/scripts/safarizonenorth.asm b/scripts/safarizonenorth.asm new file mode 100755 index 00000000..74790e76 --- /dev/null +++ b/scripts/safarizonenorth.asm @@ -0,0 +1,31 @@ +SafariZoneNorthScript: ; 459ab (11:59ab) + jp EnableAutoTextBoxDrawing + +SafariZoneNorthTextPointers: ; 459ae (11:59ae) + dw Predef5CText + dw Predef5CText + dw SafariZoneNorthText3 + dw SafariZoneNorthText4 + dw SafariZoneNorthText5 + dw SafariZoneNorthText6 + dw SafariZoneNorthText7 + +SafariZoneNorthText3: ; 459bc (11:59bc) + TX_FAR _SafariZoneNorthText3 + db "@" + +SafariZoneNorthText4: ; 459c1 (11:59c1) + TX_FAR _SafariZoneNorthText4 + db "@" + +SafariZoneNorthText5: ; 459c6 (11:59c6) + TX_FAR _SafariZoneNorthText5 + db "@" + +SafariZoneNorthText6: ; 459cb (11:59cb) + TX_FAR _SafariZoneNorthText6 + db "@" + +SafariZoneNorthText7: ; 459d0 (11:59d0) + TX_FAR _SafariZoneNorthText7 + db "@" diff --git a/scripts/safarizoneresthouse1.asm b/scripts/safarizoneresthouse1.asm new file mode 100755 index 00000000..424714e4 --- /dev/null +++ b/scripts/safarizoneresthouse1.asm @@ -0,0 +1,14 @@ +SafariZoneRestHouse1Script: ; 45ced (11:5ced) + jp EnableAutoTextBoxDrawing + +SafariZoneRestHouse1TextPointers: ; 45cf0 (11:5cf0) + dw SafariZoneRestHouse1Text1 + dw SafariZoneRestHouse1Text2 + +SafariZoneRestHouse1Text1: ; 45cf4 (11:5cf4) + TX_FAR _SafariZoneRestHouse1Text1 + db "@" + +SafariZoneRestHouse1Text2: ; 45cf9 (11:5cf9) + TX_FAR _SafariZoneRestHouse1Text2 + db "@" diff --git a/scripts/safarizoneresthouse2.asm b/scripts/safarizoneresthouse2.asm new file mode 100755 index 00000000..23cd53b2 --- /dev/null +++ b/scripts/safarizoneresthouse2.asm @@ -0,0 +1,20 @@ +SafariZoneRestHouse2Script: ; 45d2a (11:5d2a) + call EnableAutoTextBoxDrawing + ret + +SafariZoneRestHouse2TextPointers: ; 45d2e (11:5d2e) + dw SafariZoneRestHouse2Text1 + dw SafariZoneRestHouse2Text2 + dw SafariZoneRestHouse2Text3 + +SafariZoneRestHouse2Text1: ; 45d34 (11:5d34) + TX_FAR _SafariZoneRestHouse2Text1 + db "@" + +SafariZoneRestHouse2Text2: ; 45d39 (11:5d39) + TX_FAR _SafariZoneRestHouse2Text2 + db "@" + +SafariZoneRestHouse2Text3: ; 45d3e (11:5d3e) + TX_FAR _SafariZoneRestHouse2Text3 + db "@" diff --git a/scripts/safarizoneresthouse3.asm b/scripts/safarizoneresthouse3.asm new file mode 100755 index 00000000..2faa1fbb --- /dev/null +++ b/scripts/safarizoneresthouse3.asm @@ -0,0 +1,20 @@ +SafariZoneRestHouse3Script: ; 45d75 (11:5d75) + call EnableAutoTextBoxDrawing + ret + +SafariZoneRestHouse3TextPointers: ; 45d79 (11:5d79) + dw SafariZoneRestHouse3Text1 + dw SafariZoneRestHouse3Text2 + dw SafariZoneRestHouse3Text3 + +SafariZoneRestHouse3Text1: ; 45d7f (11:5d7f) + TX_FAR _SafariZoneRestHouse3Text1 + db "@" + +SafariZoneRestHouse3Text2: ; 45d84 (11:5d84) + TX_FAR _SafariZoneRestHouse3Text2 + db "@" + +SafariZoneRestHouse3Text3: ; 45d89 (11:5d89) + TX_FAR _SafariZoneRestHouse3Text3 + db "@" diff --git a/scripts/safarizoneresthouse4.asm b/scripts/safarizoneresthouse4.asm new file mode 100755 index 00000000..b645431f --- /dev/null +++ b/scripts/safarizoneresthouse4.asm @@ -0,0 +1,20 @@ +SafariZoneRestHouse4Script: ; 45dc0 (11:5dc0) + call EnableAutoTextBoxDrawing + ret + +SafariZoneRestHouse4TextPointers: ; 45dc4 (11:5dc4) + dw SafariZoneRestHouse4Text1 + dw SafariZoneRestHouse4Text2 + dw SafariZoneRestHouse4Text3 + +SafariZoneRestHouse4Text1: ; 45dca (11:5dca) + TX_FAR _SafariZoneRestHouse4Text1 + db "@" + +SafariZoneRestHouse4Text2: ; 45dcf (11:5dcf) + TX_FAR _SafariZoneRestHouse4Text2 + db "@" + +SafariZoneRestHouse4Text3: ; 45dd4 (11:5dd4) + TX_FAR _SafariZoneRestHouse4Text3 + db "@" diff --git a/scripts/safarizonesecrethouse.asm b/scripts/safarizonesecrethouse.asm new file mode 100755 index 00000000..39b7c393 --- /dev/null +++ b/scripts/safarizonesecrethouse.asm @@ -0,0 +1,46 @@ +SafariZoneSecretHouseScript: ; 4a317 (12:6317) + jp EnableAutoTextBoxDrawing + +SafariZoneSecretHouseTextPointers: ; 4a31a (12:631a) + dw SafariZoneSecretHouseText1 + +SafariZoneSecretHouseText1: ; 4a31c (12:631c) + db $08 ; asm + ld a, [$d857] + bit 0, a + jr nz, .asm_20a9b ; 0x4a322 + ld hl, SafariZoneSecretHouseText_4a350 + call PrintText + ld bc, (HM_03 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedHM03Text + call PrintText + ld hl, $d857 + set 0, [hl] + jr .asm_8f1fc ; 0x4a33d +.BagFull + ld hl, HM03NoRoomText + call PrintText + jr .asm_8f1fc ; 0x4a345 +.asm_20a9b ; 0x4a347 + ld hl, HM03ExplanationText + call PrintText +.asm_8f1fc ; 0x4a34d + jp TextScriptEnd + +SafariZoneSecretHouseText_4a350: ; 4a350 (12:6350) + TX_FAR _SecretHouseText_4a350 + db "@" + +ReceivedHM03Text: ; 4a355 (12:6355) + TX_FAR _ReceivedHM03Text + db $0B, "@" + +HM03ExplanationText: ; 4a35b (12:635b) + TX_FAR _HM03ExplanationText + db "@" + +HM03NoRoomText: ; 4a360 (12:6360) + TX_FAR _HM03NoRoomText + db "@" diff --git a/scripts/safarizonewest.asm b/scripts/safarizonewest.asm new file mode 100755 index 00000000..1465af56 --- /dev/null +++ b/scripts/safarizonewest.asm @@ -0,0 +1,28 @@ +SafariZoneWestScript: ; 4a1b5 (12:61b5) + jp EnableAutoTextBoxDrawing + +SafariZoneWestTextPointers: ; 4a1b8 (12:61b8) + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw SafariZoneWestText5 + dw SafariZoneWestText6 + dw SafariZoneWestText7 + dw SafariZoneWestText8 + +SafariZoneWestText5: ; 4a1c8 (12:61c8) + TX_FAR _SafariZoneWestText5 + db "@" + +SafariZoneWestText6: ; 4a1cd (12:61cd) + TX_FAR _SafariZoneWestText6 + db "@" + +SafariZoneWestText7: ; 4a1d2 (12:61d2) + TX_FAR _SafariZoneWestText7 + db "@" + +SafariZoneWestText8: ; 4a1d7 (12:61d7) + TX_FAR _SafariZoneWestText8 + db "@" diff --git a/scripts/saffroncity.asm b/scripts/saffroncity.asm new file mode 100755 index 00000000..d8e7d0c6 --- /dev/null +++ b/scripts/saffroncity.asm @@ -0,0 +1,121 @@ +SaffronCityScript: ; 50c00 (14:4c00) + jp EnableAutoTextBoxDrawing + +SaffronCityTextPointers: ; 50c03 (14:4c03) + dw SaffronCityText1 + dw SaffronCityText2 + dw SaffronCityText3 + dw SaffronCityText4 + dw SaffronCityText5 + dw SaffronCityText6 + dw SaffronCityText7 + dw SaffronCityText8 + dw SaffronCityText9 + dw SaffronCityText10 + dw SaffronCityText11 + dw SaffronCityText12 + dw SaffronCityText13 + dw SaffronCityText14 + dw SaffronCityText15 + dw SaffronCityText16 + dw SaffronCityText17 + dw SaffronCityText18 + dw MartSignText + dw SaffronCityText20 + dw SaffronCityText21 + dw SaffronCityText22 + dw PokeCenterSignText + dw SaffronCityText24 + dw SaffronCityText25 + +SaffronCityText1: ; 50c35 (14:4c35) + TX_FAR _SaffronCityText1 + db "@" + +SaffronCityText2: ; 50c3a (14:4c3a) + TX_FAR _SaffronCityText2 + db "@" + +SaffronCityText3: ; 50c3f (14:4c3f) + TX_FAR _SaffronCityText3 + db "@" + +SaffronCityText4: ; 50c44 (14:4c44) + TX_FAR _SaffronCityText4 + db "@" + +SaffronCityText5: ; 50c49 (14:4c49) + TX_FAR _SaffronCityText5 + db "@" + +SaffronCityText6: ; 50c4e (14:4c4e) + TX_FAR _SaffronCityText6 + db "@" + +SaffronCityText7: ; 50c53 (14:4c53) + TX_FAR _SaffronCityText7 + db "@" + +SaffronCityText8: ; 50c58 (14:4c58) + TX_FAR _SaffronCityText8 + db "@" + +SaffronCityText9: ; 50c5d (14:4c5d) + TX_FAR _SaffronCityText9 + db "@" + +SaffronCityText10: ; 50c62 (14:4c62) + TX_FAR _SaffronCityText10 + db "@" + +SaffronCityText11: ; 50c67 (14:4c67) + TX_FAR _SaffronCityText11 + db "@" + +SaffronCityText12: ; 50c6c (14:4c6c) + TX_FAR _SaffronCityText12 + db $15, "@" + +SaffronCityText13: ; 50c72 (14:4c72) + TX_FAR _SaffronCityText13 + db "@" + +SaffronCityText14: ; 50c77 (14:4c77) + TX_FAR _SaffronCityText14 + db "@" + +SaffronCityText15: ; 50c7c (14:4c7c) + TX_FAR _SaffronCityText15 + db "@" + +SaffronCityText16: ; 50c81 (14:4c81) + TX_FAR _SaffronCityText16 + db "@" + +SaffronCityText17: ; 50c86 (14:4c86) + TX_FAR _SaffronCityText17 + db "@" + +SaffronCityText18: ; 50c8b (14:4c8b) + TX_FAR _SaffronCityText18 + db "@" + +SaffronCityText20: ; 50c90 (14:4c90) + TX_FAR _SaffronCityText20 + db "@" + +SaffronCityText21: ; 50c95 (14:4c95) + TX_FAR _SaffronCityText21 + db "@" + +SaffronCityText22: ; 50c9a (14:4c9a) + TX_FAR _SaffronCityText22 + db "@" + +SaffronCityText24: ; 50c9f (14:4c9f) + TX_FAR _SaffronCityText24 + db "@" + +SaffronCityText25: ; 50ca4 (14:4ca4) + TX_FAR _SaffronCityText25 + db "@" diff --git a/scripts/saffrongym.asm b/scripts/saffrongym.asm new file mode 100755 index 00000000..40482831 --- /dev/null +++ b/scripts/saffrongym.asm @@ -0,0 +1,367 @@ +SaffronGymScript: ; 5d00d (17:500d) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + call nz, .extra + call EnableAutoTextBoxDrawing + ld hl, SaffronGymTrainerHeader0 + ld de, SaffronGymScriptPointers + ld a, [W_SAFFRONGYMCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SAFFRONGYMCURSCRIPT], a + ret + +.extra + ld hl, Gym6CityName ; $5033 + ld de, Gym6LeaderName ; $5040 + jp LoadGymLeaderAndCityName + +Gym6CityName: ; 5d033 (17:5033) + db "SAFFRON CITY@" + +Gym6LeaderName: ; 5d040 (17:5040) + db "SABRINA@" + +SaffronGymText_5d048: ; 5d048 (17:5048) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_SAFFRONGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +SaffronGymScriptPointers: ; 5d053 (17:5053) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + dw SaffronGymScript3 + +SaffronGymScript3: ; 5d05b (17:505b) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, SaffronGymText_5d048 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + +SaffronGymText_5d068: ; 5d068 (17:5068) + ld a, $a + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d7b3 + set 1, [hl] + ld bc, (TM_46 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $b + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d7b3 + set 0, [hl] + jr .asm_5d091 +.BagFull + ld a, $c + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_5d091 + ld hl, W_OBTAINEDBADGES + set 5, [hl] + ld hl, $d72a + set 5, [hl] + + ; deactivate gym trainers + ld a, [$d7b3] + or %11111100 + ld [$d7b3], a + ld hl, $d7b4 + set 0, [hl] + + jp SaffronGymText_5d048 + +SaffronGymTextPointers: ; 5d0ab (17:50ab) + dw SaffronGymText1 + dw SaffronGymText2 + dw SaffronGymText3 + dw SaffronGymText4 + dw SaffronGymText5 + dw SaffronGymText6 + dw SaffronGymText7 + dw SaffronGymText8 + dw SaffronGymText9 + dw SaffronGymText10 + dw SaffronGymText11 + dw SaffronGymText12 + +SaffronGymTrainerHeaders: ; 5d0c3 (17:50c3) +SaffronGymTrainerHeader0: ; 5d0c3 (17:50c3) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b3 ; flag's byte + dw SaffronGymBattleText1 ; 0x51f0 TextBeforeBattle + dw SaffronGymAfterBattleText1 ; 0x51fa TextAfterBattle + dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle + dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle + +SaffronGymTrainerHeader1: ; 5d0cf (17:50cf) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b3 ; flag's byte + dw SaffronGymBattleText2 ; 0x51ff TextBeforeBattle + dw SaffronGymAfterBattleText2 ; 0x5209 TextAfterBattle + dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle + dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle + +SaffronGymTrainerHeader2: ; 5d0db (17:50db) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b3 ; flag's byte + dw SaffronGymBattleText3 ; 0x520e TextBeforeBattle + dw SaffronGymAfterBattleText3 ; 0x5218 TextAfterBattle + dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle + dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle + +SaffronGymTrainerHeader3: ; 5d0e7 (17:50e7) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b3 ; flag's byte + dw SaffronGymBattleText4 ; 0x521d TextBeforeBattle + dw SaffronGymAfterBattleText4 ; 0x5227 TextAfterBattle + dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle + dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle + +SaffronGymTrainerHeader4: ; 5d0f3 (17:50f3) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b3 ; flag's byte + dw SaffronGymBattleText5 ; 0x522c TextBeforeBattle + dw SaffronGymAfterBattleText5 ; 0x5236 TextAfterBattle + dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle + dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle + +SaffronGymTrainerHeader5: ; 5d0ff (17:50ff) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b3 ; flag's byte + dw SaffronGymBattleText6 ; 0x523b TextBeforeBattle + dw SaffronGymAfterBattleText6 ; 0x5245 TextAfterBattle + dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle + dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle + +SaffronGymTrainerHeader6: ; 5d10b (17:510b) + db $8 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7b3 ; flag's byte + dw SaffronGymBattleText7 ; 0x524a TextBeforeBattle + dw SaffronGymAfterBattleText7 ; 0x5254 TextAfterBattle + dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle + dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle + + db $ff + +SaffronGymText1: ; 5d118 (17:5118) + db $08 ; asm + ld a, [$d7b3] + bit 1, a + jr z, .asm_e3544 ; 0x5d11e + bit 0, a + jr nz, .asm_8d2f6 ; 0x5d122 + call z, SaffronGymText_5d068 + call DisableWaitingAfterTextDisplay + jr .asm_34c2c ; 0x5d12a +.asm_8d2f6 ; 0x5d12c + ld hl, SaffronGymText_5d16e + call PrintText + jr .asm_34c2c ; 0x5d132 +.asm_e3544 ; 0x5d134 + ld hl, SaffronGymText_5d162 + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, SaffronGymText_5d167 + ld de, SaffronGymText_5d167 + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $6 + ld [$d05c], a + ld a, $3 + ld [W_SAFFRONGYMCURSCRIPT], a +.asm_34c2c ; 0x5d15f + jp TextScriptEnd + +SaffronGymText_5d162: ; 5d162 (17:5162) + TX_FAR _SaffronGymText_5d162 + db "@" + +SaffronGymText_5d167: ; 5d167 (17:5167) + TX_FAR _SaffronGymText_5d167 ; 0xa1c73 + db $11 ; play same sound as red giving oak parcel + db $6 ; wait for keypress + db "@" + +SaffronGymText_5d16e: ; 5d16e (17:516e) + TX_FAR _SaffronGymText_5d16e + db "@" + +SaffronGymText10: ; 5d173 (17:5173) + TX_FAR _SaffronGymText_5d173 + db "@" + +SaffronGymText11: ; 5d178 (17:5178) + TX_FAR ReceivedTM46Text + db $b + TX_FAR _TM46ExplanationText + db "@" + +SaffronGymText12: ; 5d182 (17:5182) + TX_FAR _TM46NoRoomText + db "@" + +SaffronGymText2: ; 5d187 (17:5187) + db $08 ; asm + ld hl, SaffronGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SaffronGymText3: ; 5d191 (17:5191) + db $08 ; asm + ld hl, SaffronGymTrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SaffronGymText4: ; 5d19b (17:519b) + db $08 ; asm + ld hl, SaffronGymTrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SaffronGymText5: ; 5d1a5 (17:51a5) + db $08 ; asm + ld hl, SaffronGymTrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SaffronGymText6: ; 5d1af (17:51af) + db $08 ; asm + ld hl, SaffronGymTrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +SaffronGymText7: ; 5d1b9 (17:51b9) + db $08 ; asm + ld hl, SaffronGymTrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +SaffronGymText8: ; 5d1c3 (17:51c3) + db $08 ; asm + ld hl, SaffronGymTrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +SaffronGymText9: ; 5d1cd (17:51cd) + db $08 ; asm + ld a, [$d7b3] + bit 1, a + jr nz, .asm_13f3c ; 0x5d1d3 + ld hl, SaffronGymText_5d1e6 + call PrintText + jr .asm_e9907 ; 0x5d1db +.asm_13f3c ; 0x5d1dd + ld hl, SaffronGymText_5d1eb + call PrintText +.asm_e9907 ; 0x5d1e3 + jp TextScriptEnd + +SaffronGymText_5d1e6: ; 5d1e6 (17:51e6) + TX_FAR _SaffronGymText_5d1e6 + db "@" + +SaffronGymText_5d1eb: ; 5d1eb (17:51eb) + TX_FAR _SaffronGymText_5d1eb + db "@" + +SaffronGymBattleText1: ; 5d1f0 (17:51f0) + TX_FAR _SaffronGymBattleText1 + db "@" + +SaffronGymEndBattleText1: ; 5d1f5 (17:51f5) + TX_FAR _SaffronGymEndBattleText1 + db "@" + +SaffronGymAfterBattleText1: ; 5d1fa (17:51fa) + TX_FAR _SaffronGymAfterBattleText1 + db "@" + +SaffronGymBattleText2: ; 5d1ff (17:51ff) + TX_FAR _SaffronGymBattleText2 + db "@" + +SaffronGymEndBattleText2: ; 5d204 (17:5204) + TX_FAR _SaffronGymEndBattleText2 + db "@" + +SaffronGymAfterBattleText2: ; 5d209 (17:5209) + TX_FAR _SaffronGymAfterBattleText2 + db "@" + +SaffronGymBattleText3: ; 5d20e (17:520e) + TX_FAR _SaffronGymBattleText3 + db "@" + +SaffronGymEndBattleText3: ; 5d213 (17:5213) + TX_FAR _SaffronGymEndBattleText3 + db "@" + +SaffronGymAfterBattleText3: ; 5d218 (17:5218) + TX_FAR _SaffronGymAfterBattleText3 + db "@" + +SaffronGymBattleText4: ; 5d21d (17:521d) + TX_FAR _SaffronGymBattleText4 + db "@" + +SaffronGymEndBattleText4: ; 5d222 (17:5222) + TX_FAR _SaffronGymEndBattleText4 + db "@" + +SaffronGymAfterBattleText4: ; 5d227 (17:5227) + TX_FAR _SaffronGymAfterBattleText4 + db "@" + +SaffronGymBattleText5: ; 5d22c (17:522c) + TX_FAR _SaffronGymBattleText5 + db "@" + +SaffronGymEndBattleText5: ; 5d231 (17:5231) + TX_FAR _SaffronGymEndBattleText5 + db "@" + +SaffronGymAfterBattleText5: ; 5d236 (17:5236) + TX_FAR _SaffronGymAfterBattleText5 + db "@" + +SaffronGymBattleText6: ; 5d23b (17:523b) + TX_FAR _SaffronGymBattleText6 + db "@" + +SaffronGymEndBattleText6: ; 5d240 (17:5240) + TX_FAR _SaffronGymEndBattleText6 + db "@" + +SaffronGymAfterBattleText6: ; 5d245 (17:5245) + TX_FAR _SaffronGymAfterBattleText6 + db "@" + +SaffronGymBattleText7: ; 5d24a (17:524a) + TX_FAR _SaffronGymBattleText7 + db "@" + +SaffronGymEndBattleText7: ; 5d24f (17:524f) + TX_FAR _SaffronGymEndBattleText7 + db "@" + +SaffronGymAfterBattleText7: ; 5d254 (17:5254) + TX_FAR _SaffronGymAfterBattleText7 + db "@" diff --git a/scripts/saffronhouse1.asm b/scripts/saffronhouse1.asm new file mode 100755 index 00000000..39a70ebf --- /dev/null +++ b/scripts/saffronhouse1.asm @@ -0,0 +1,27 @@ +SaffronHouse1Script: ; 1dddd (7:5ddd) + jp EnableAutoTextBoxDrawing + +SaffronHouse1TextPointers: ; 1dde0 (7:5de0) + dw SaffronHouse1Text1 + dw SaffronHouse1Text2 + dw SaffronHouse1Text3 + dw SaffronHouse1Text4 + +SaffronHouse1Text1: ; 1dde8 (7:5de8) + TX_FAR _SaffronHouse1Text1 + db "@" + +SaffronHouse1Text2: ; 1dded (7:5ded) + TX_FAR _SaffronHouse1Text2 + db $8 + ld a, PIDGEY + call PlayCry + jp TextScriptEnd + +SaffronHouse1Text3: ; 1ddfa (7:5dfa) + TX_FAR _SaffronHouse1Text3 + db "@" + +SaffronHouse1Text4: ; 1ddff (7:5dff) + TX_FAR _SaffronHouse1Text4 + db "@" diff --git a/scripts/saffronhouse2.asm b/scripts/saffronhouse2.asm new file mode 100755 index 00000000..a48ec3f6 --- /dev/null +++ b/scripts/saffronhouse2.asm @@ -0,0 +1,46 @@ +SaffronHouse2Script: ; 1de3c (7:5e3c) + jp EnableAutoTextBoxDrawing + +SaffronHouse2TextPointers: ; 1de3f (7:5e3f) + dw SaffronHouse2Text1 + +SaffronHouse2Text1: ; 1de41 (7:5e41) + db $08 ; asm + ld a, [$d7bd] + bit 0, a + jr nz, .asm_9e72b ; 0x1de47 + ld hl, TM29PreReceiveText + call PrintText + ld bc,(TM_29 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedTM29Text + call PrintText + ld hl, $d7bd + set 0, [hl] + jr .asm_fe4e1 ; 0x1de62 +.BagFull + ld hl, TM29NoRoomText + call PrintText + jr .asm_fe4e1 ; 0x1de6a +.asm_9e72b ; 0x1de6c + ld hl, TM29ExplanationText + call PrintText +.asm_fe4e1 ; 0x1de72 + jp TextScriptEnd + +TM29PreReceiveText: ; 1de75 (7:5e75) + TX_FAR _TM29PreReceiveText + db "@" + +ReceivedTM29Text: ; 1de7a (7:5e7a) + TX_FAR _ReceivedTM29Text + db $0B, "@" + +TM29ExplanationText: ; 1de80 (7:5e80) + TX_FAR _TM29ExplanationText + db "@" + +TM29NoRoomText: ; 1de85 (7:5e85) + TX_FAR _TM29NoRoomText + db "@" diff --git a/scripts/saffronmart.asm b/scripts/saffronmart.asm new file mode 100755 index 00000000..9ee1db0e --- /dev/null +++ b/scripts/saffronmart.asm @@ -0,0 +1,15 @@ +SaffronMartScript: ; 5d409 (17:5409) + jp EnableAutoTextBoxDrawing + +SaffronMartTextPointers: ; 5d40c (17:540c) + dw SaffronMartText1 + dw SaffronMartText2 + dw SaffronMartText3 + +SaffronMartText2: ; 5d412 (17:5412) + TX_FAR _SaffronMartText2 + db "@" + +SaffronMartText3: ; 5d417 (17:5417) + TX_FAR _SaffronMartText3 + db "@" diff --git a/scripts/saffronpokecenter.asm b/scripts/saffronpokecenter.asm new file mode 100755 index 00000000..7f3a656a --- /dev/null +++ b/scripts/saffronpokecenter.asm @@ -0,0 +1,23 @@ +SaffronPokecenterScript: ; 5d535 (17:5535) + call Func_22fa + jp EnableAutoTextBoxDrawing + +SaffronPokecenterTextPointers: ; 5d53b (17:553b) + dw SaffronPokecenterText1 + dw SaffronPokecenterText2 + dw SaffronPokecenterText3 + dw SaffronPokecenterText4 + +SaffronPokecenterText1: ; 5d543 (17:5543) + db $ff + +SaffronPokecenterText2: ; 5d544 (17:5544) + TX_FAR _SaffronPokecenterText1 + db "@" + +SaffronPokecenterText3: ; 5d549 (17:5549) + TX_FAR _SaffronPokecenterText3 + db "@" + +SaffronPokecenterText4: ; 5d54e (17:554e) + db $f6 diff --git a/scripts/school.asm b/scripts/school.asm new file mode 100755 index 00000000..57eb58c8 --- /dev/null +++ b/scripts/school.asm @@ -0,0 +1,14 @@ +SchoolScript: ; 1d54c (7:554c) + jp EnableAutoTextBoxDrawing + +SchoolTextPointers: ; 1d54f (7:554f) + dw SchoolText1 + dw SchoolText2 + +SchoolText1: ; 1d553 (7:5553) + TX_FAR _SchoolText1 + db "@" + +SchoolText2: ; 1d558 (7:5558) + TX_FAR _SchoolText2 + db "@" diff --git a/scripts/seafoamislands1.asm b/scripts/seafoamislands1.asm new file mode 100755 index 00000000..3d20a653 --- /dev/null +++ b/scripts/seafoamislands1.asm @@ -0,0 +1,50 @@ +SeafoamIslands1Script: ; 447e9 (11:47e9) + call EnableAutoTextBoxDrawing + ld hl, $d7e7 + set 0, [hl] + ld hl, wFlags_0xcd60 + bit 7, [hl] + res 7, [hl] + jr z, .asm_4483b ; 0x447f8 $41 + ld hl, Seafoam1HolesCoords + call CheckBoulderCoords + ret nc + ld hl, $d7e8 + ld a, [$cd3d] + cp $1 + jr nz, .asm_44819 ; 0x44809 $e + set 6, [hl] + ld a, $d7 + ld [$d079], a + ld a, $d9 + ld [$d07a], a + jr .asm_44825 ; 0x44817 $c +.asm_44819 + set 7, [hl] + ld a, $d8 + ld [$d079], a + ld a, $da + ld [$d07a], a +.asm_44825 + ld a, [$d079] + ld [$cc4d], a + ld a, $11 + call Predef + ld a, [$d07a] + ld [$cc4d], a + ld a, $15 + jp Predef +.asm_4483b + ld a, $9f + ld [$d71d], a + ld hl, Seafoam1HolesCoords + jp Func_46981 + +Seafoam1HolesCoords: ; 44846 (11:4846) + db $06,$11 + db $06,$18 + db $ff + +SeafoamIslands1TextPointers: ; 4484b (11:484b) + dw BoulderText + dw BoulderText diff --git a/scripts/seafoamislands2.asm b/scripts/seafoamislands2.asm new file mode 100755 index 00000000..a20bf497 --- /dev/null +++ b/scripts/seafoamislands2.asm @@ -0,0 +1,48 @@ +SeafoamIslands2Script: ; 46315 (11:6315) + call EnableAutoTextBoxDrawing + ld hl, wFlags_0xcd60 + bit 7, [hl] + res 7, [hl] + jr z, .asm_46362 ; 0x4631f $41 + ld hl, Seafoam2HolesCoords + call CheckBoulderCoords + ret nc + ld hl, $d87f + ld a, [$cd3d] + cp $1 + jr nz, .asm_46340 ; 0x46330 $e + set 0, [hl] + ld a, $d9 + ld [$d079], a + ld a, $db + ld [$d07a], a + jr .asm_4634c ; 0x4633e $c +.asm_46340 + set 1, [hl] + ld a, $da + ld [$d079], a + ld a, $dc + ld [$d07a], a +.asm_4634c + ld a, [$d079] + ld [$cc4d], a + ld a, $11 + call Predef + ld a, [$d07a] + ld [$cc4d], a + ld a, $15 + jp Predef +.asm_46362 + ld a, $a0 + ld [$d71d], a + ld hl, Seafoam2HolesCoords + jp Func_46981 + +Seafoam2HolesCoords: ; 4636d (11:636d) + db $06,$12 + db $06,$17 + db $ff + +SeafoamIslands2TextPointers: ; 46372 (11:6372) + dw BoulderText + dw BoulderText diff --git a/scripts/seafoamislands3.asm b/scripts/seafoamislands3.asm new file mode 100755 index 00000000..a6e00936 --- /dev/null +++ b/scripts/seafoamislands3.asm @@ -0,0 +1,48 @@ +SeafoamIslands3Script: ; 46451 (11:6451) + call EnableAutoTextBoxDrawing + ld hl, wFlags_0xcd60 + bit 7, [hl] + res 7, [hl] + jr z, .asm_4649e ; 0x4645b $41 + ld hl, Seafoam3HolesCoords + call CheckBoulderCoords + ret nc + ld hl, $d880 + ld a, [$cd3d] + cp $1 + jr nz, .asm_4647c ; 0x4646c $e + set 0, [hl] + ld a, $db + ld [$d079], a + ld a, $df + ld [$d07a], a + jr .asm_46488 ; 0x4647a $c +.asm_4647c + set 1, [hl] + ld a, $dc + ld [$d079], a + ld a, $e0 + ld [$d07a], a +.asm_46488 + ld a, [$d079] + ld [$cc4d], a + ld a, $11 + call Predef + ld a, [$d07a] + ld [$cc4d], a + ld a, $15 + jp Predef +.asm_4649e + ld a, $a1 + ld [$d71d], a + ld hl, Seafoam3HolesCoords + jp Func_46981 + +Seafoam3HolesCoords: ; 464a9 (11:64a9) + db $06,$13 + db $06,$16 + db $ff + +SeafoamIslands3TextPointers: ; 464ae (11:64ae) + dw BoulderText + dw BoulderText diff --git a/scripts/seafoamislands4.asm b/scripts/seafoamislands4.asm new file mode 100755 index 00000000..c7be0f44 --- /dev/null +++ b/scripts/seafoamislands4.asm @@ -0,0 +1,148 @@ +SeafoamIslands4Script: ; 4658d (11:658d) + call EnableAutoTextBoxDrawing + ld hl, wFlags_0xcd60 + bit 7, [hl] + res 7, [hl] + jr z, .asm_465dc ; 0x46597 $43 + ld hl, Seafoam4HolesCoords + call CheckBoulderCoords + ret nc + ld hl, $d881 + ld a, [$cd3d] + cp $1 + jr nz, .asm_465b8 ; 0x465a8 $e + set 0, [hl] + ld a, $dd + ld [$d079], a + ld a, $e1 + ld [$d07a], a + jr .asm_465c4 ; 0x465b6 $c +.asm_465b8 + set 1, [hl] + ld a, $de + ld [$d079], a + ld a, $e2 + ld [$d07a], a +.asm_465c4 + ld a, [$d079] + ld [$cc4d], a + ld a, $11 + call Predef + ld a, [$d07a] + ld [$cc4d], a + ld a, $15 + call Predef + jr .asm_465ed ; 0x465da $11 +.asm_465dc + ld a, $a2 + ld [$d71d], a + ld hl, Seafoam4HolesCoords + call Func_46981 + ld a, [$d732] + bit 4, a + ret nz +.asm_465ed + ld hl, SeafoamIslands4ScriptPointers + ld a, [W_SEAFOAMISLANDS4CURSCRIPT] + jp CallFunctionInTable + +Seafoam4HolesCoords: ; 465f6 (11:65f6) + db $10,$03 + db $10,$06 + db $ff + +SeafoamIslands4ScriptPointers: ; 465fb (11:65fb) + dw SeafoamIslands4Script0 + dw SeafoamIslands4Script1 + dw SeafoamIslands4Script2 + dw SeafoamIslands4Script3 + +SeafoamIslands4Script0: ; 46603 (11:6603) + ld a, [$d880] + and $3 + cp $3 + ret z + ld a, [W_YCOORD] + cp $8 + ret nz + ld a, [W_XCOORD] + cp $f + ret nz + ld hl, $ccd3 + ld de, RLEMovement46632 + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld hl, W_FLAGS_D733 + set 2, [hl] + ld a, $1 + ld [W_SEAFOAMISLANDS4CURSCRIPT], a + ret + +RLEMovement46632: ; 46632 (11:6632) + db $80,6 + db $10,5 + db $80,3 + db $ff + +SeafoamIslands4Script1: ; 46639 (11:6639) + ld a, [$cd38] + and a + ret nz + ld a, $0 + ld [W_SEAFOAMISLANDS4CURSCRIPT], a + ret + +SeafoamIslands4Script2: ; 46644 (11:6644) + ld a, [$d880] + and $3 + cp $3 + ret z + ld a, [W_XCOORD] + cp $12 + jr z, .asm_4665e + cp $13 + ld a, $0 + jr nz, .asm_4667b + ld de, RLEData_4667f + jr .asm_46661 +.asm_4665e + ld de, RLEData_46688 +.asm_46661 + ld hl, $ccd3 + call DecodeRLEList + dec a + ld [$cd38], a + xor a + ld [$c206], a + ld hl, $d730 + set 7, [hl] + ld hl, W_FLAGS_D733 + set 2, [hl] + ld a, $3 +.asm_4667b + ld [W_SEAFOAMISLANDS4CURSCRIPT], a + ret + +RLEData_4667f: ; 4667f (11:667f) + db $80,$06,$10,$02,$80,$04,$20,$01,$FF + +RLEData_46688: ; 46688 (11:6688) + db $80,$06,$10,$02,$80,$04,$FF + +SeafoamIslands4Script3: ; 4668f (11:668f) + ld a, [$cd38] + and a + ret nz + ld a, $0 + ld [W_SEAFOAMISLANDS4CURSCRIPT], a + ret + +SeafoamIslands4TextPointers: ; 4669a (11:669a) + dw BoulderText + dw BoulderText + dw BoulderText + dw BoulderText + dw BoulderText + dw BoulderText diff --git a/scripts/seafoamislands5.asm b/scripts/seafoamislands5.asm new file mode 100755 index 00000000..153a1bb6 --- /dev/null +++ b/scripts/seafoamislands5.asm @@ -0,0 +1,178 @@ +SeafoamIslands5Script: ; 46799 (11:6799) + call EnableAutoTextBoxDrawing + ld a, [W_SEAFOAMISLANDS5CURSCRIPT] + ld hl, SeafoamIslands5ScriptPointers + jp CallFunctionInTable + +SeafoamIslands5Script_467a5: ; 467a5 (11:67a5) + xor a + ld [W_SEAFOAMISLANDS5CURSCRIPT], a + ld [wJoypadForbiddenButtonsMask], a + ret + +SeafoamIslands5ScriptPointers: ; 467ad (11:67ad) + dw SeafoamIslands5Script0 + dw SeafoamIslands5Script1 + dw SeafoamIslands5Script2 + dw SeafoamIslands5Script3 + dw SeafoamIslands5Script4 + +SeafoamIslands5Script4: ; 467b7 (11:67b7) + ld a, [W_ISINBATTLE] + cp $ff + jr z, SeafoamIslands5Script_467a5 + call EndTrainerBattle + ld a, $0 + ld [W_SEAFOAMISLANDS5CURSCRIPT], a + ret + +SeafoamIslands5Script0: ; 467c7 (11:67c7) + ld a, [$d880] + and $3 + cp $3 + ret z + ld hl, CoordsData_467fe + call ArePlayerCoordsInArray + ret nc + ld a, [$cd3d] + cp $3 + jr nc, .asm_467e6 + ld a, $40 + ld [$ccd4], a + ld a, $2 + jr .asm_467e8 +.asm_467e6 + ld a, $1 +.asm_467e8 + ld [$cd38], a + ld a, $40 + ld [$ccd3], a + call Func_3486 + ld hl, W_FLAGS_D733 + res 2, [hl] + ld a, $1 + ld [W_SEAFOAMISLANDS5CURSCRIPT], a + ret + +CoordsData_467fe: ; 467fe (11:67fe) + db $11,$14 + db $11,$15 + db $10,$14 + db $10,$15 + db $FF + +SeafoamIslands5Script1: ; 46807 (11:6807) + ld a, [$cd38] + and a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_SEAFOAMISLANDS5CURSCRIPT], a + ret + +SeafoamIslands5Script2: ; 46816 (11:6816) + ld a, [$d881] + and $3 + cp $3 + ld a, $0 + jr z, .asm_46849 + ld hl, CoordsData_4684d + call ArePlayerCoordsInArray + ld a, $0 + jr nc, .asm_46849 + ld a, [$cd3d] + cp $1 + jr nz, .asm_46837 + ld de, RLEMovementData_46859 + jr .asm_4683a +.asm_46837 + ld de, RLEMovementData_46852 +.asm_4683a + ld hl, $ccd3 + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld a, $3 +.asm_46849 + ld [W_SEAFOAMISLANDS5CURSCRIPT], a + ret + +CoordsData_4684d: ; 4684d (11:684d) + db $0E,$04 + db $0E,$05 + db $FF + +RLEMovementData_46852: ; 46852 (11:6852) + db $40,$03 + db $10,$02 + db $40,$01 + db $FF + +RLEMovementData_46859: ; 46859 (11:6859) + db $40,$03 + db $10,$03 + db $40,$01 + db $FF + +SeafoamIslands5Script3: ; 46860 (11:6860) + ld a, [$cd38] + ld b, a + cp $1 + call z, SeaFoamIslands5Script_46872 + ld a, b + and a + ret nz + ld a, $0 + ld [W_SEAFOAMISLANDS5CURSCRIPT], a + ret + +SeaFoamIslands5Script_46872: ; 46872 (11:6872) + xor a + ld [$d700], a + ld [$d11a], a + jp ForceBikeOrSurf + +SeafoamIslands5TextPointers: ; 4687c (11:687c) + dw BoulderText + dw BoulderText + dw SeafoamIslands5Text3 + dw SeafoamIslands5Text4 + dw SeafoamIslands5Text5 + +SeafoamIslands5TrainerHeaders: ; 46886 (11:6886) +SeafoamIslands5TrainerHeader0: ; 46886 (11:6886) + db $2 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d882 ; flag's byte + dw SeafoamIslands5BattleText2 ; 0x68a2 TextBeforeBattle + dw SeafoamIslands5BattleText2 ; 0x68a2 TextAfterBattle + dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle + dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle + + db $ff + +SeafoamIslands5Text3: ; 46893 (11:6893) + db $08 ; asm + ld hl, SeafoamIslands5TrainerHeader0 + call TalkToTrainer + ld a, $4 + ld [W_SEAFOAMISLANDS5CURSCRIPT], a + jp TextScriptEnd + +SeafoamIslands5BattleText2: ; 468a2 (11:68a2) + TX_FAR _SeafoamIslands5BattleText2 + db $8 + ld a, ARTICUNO + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +SeafoamIslands5Text4: ; 468b2 (11:68b2) + TX_FAR _SeafoamIslands5Text4 + db "@" + +SeafoamIslands5Text5: ; 468b7 (11:68b7) + TX_FAR _SeafoamIslands5Text5 + db "@" diff --git a/scripts/silphco1.asm b/scripts/silphco1.asm new file mode 100755 index 00000000..64f93cdc --- /dev/null +++ b/scripts/silphco1.asm @@ -0,0 +1,20 @@ +SilphCo1Script: ; 5d44e (17:544e) + call EnableAutoTextBoxDrawing + ld a, [$d838] + bit 7, a + ret z + ld hl, $d7b9 + bit 7, [hl] + set 7, [hl] + ret nz + ld a, $4c + ld [$cc4d], a + ld a, $15 + jp Predef + +SilphCo1TextPointers: ; 5d469 (17:5469) + dw SilphCo1Text1 + +SilphCo1Text1: ; 5d46b (17:546b) + TX_FAR _SilphCo1Text1 + db "@" diff --git a/scripts/silphco10.asm b/scripts/silphco10.asm new file mode 100755 index 00000000..ede60acc --- /dev/null +++ b/scripts/silphco10.asm @@ -0,0 +1,126 @@ +SilphCo10Script: ; 5a139 (16:6139) + call SilphCo10Script_5a14f + call EnableAutoTextBoxDrawing + ld hl, SilphCo10TrainerHeaders + ld de, SilphCo10ScriptPointers + ld a, [W_SILPHCO10CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO10CURSCRIPT], a + ret + +SilphCo10Script_5a14f: ; 5a14f (16:614f) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, DataTable_5a173 ; $6173 + call SilphCo2Script_59d43 + call SilphCo10Text_5a176 + ld a, [$d836] + bit 0, a + ret nz + ld a, $54 + ld [$d09f], a + ld bc, $405 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +DataTable_5a173: ; 5a173 (16:6173) + db $04,$05,$FF + +SilphCo10Text_5a176: ; 5a176 (16:6176) + ld a, [$ffe0] + and a + ret z + ld hl, $d836 + set 0, [hl] + ret + +SilphCo10ScriptPointers: ; 5a180 (16:6180) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SilphCo10TextPointers: ; 5a186 (16:6186) + dw SilphCo10Text1 + dw SilphCo10Text2 + dw SilphCo10Text3 + dw Predef5CText + dw Predef5CText + dw Predef5CText + +SilphCo10TrainerHeaders: ; 5a192 (16:6192) +SilphCo10TrainerHeader0: ; 5a192 (16:6192) + db $1 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d835 ; flag's byte + dw SilphCo10BattleText1 ; 0x61dd TextBeforeBattle + dw SilphCo10AfterBattleText1 ; 0x61e7 TextAfterBattle + dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle + dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle + +SilphCo10TrainerHeader1: ; 5a19e (16:619e) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d835 ; flag's byte + dw SilphCo10BattleText2 ; 0x61ec TextBeforeBattle + dw SilphCo10AfterBattleText2 ; 0x61f6 TextAfterBattle + dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle + dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle + + db $ff + +SilphCo10Text1: ; 5a1ab (16:61ab) + db $08 ; asm + ld hl, SilphCo10TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo10Text2: ; 5a1b5 (16:61b5) + db $08 ; asm + ld hl, SilphCo10TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SilphCo10Text3: ; 5a1bf (16:61bf) + db $08 ; asm + ld a, [$d838] + bit 7, a + ld hl, SilphCo10Text_5a1d8 + jr nz, .asm_cf85f + ld hl, SilphCo10Text_5a1d3 +.asm_cf85f + call PrintText + jp TextScriptEnd + +SilphCo10Text_5a1d3: ; 5a1d3 (16:61d3) + TX_FAR _SilphCo10Text_5a1d3 + db "@" + +SilphCo10Text_5a1d8: ; 5a1d8 (16:61d8) + TX_FAR _SilphCo10Text_5a1d8 + db "@" + +SilphCo10BattleText1: ; 5a1dd (16:61dd) + TX_FAR _SilphCo10BattleText1 + db "@" + +SilphCo10EndBattleText1: ; 5a1e2 (16:61e2) + TX_FAR _SilphCo10EndBattleText1 + db "@" + +SilphCo10AfterBattleText1: ; 5a1e7 (16:61e7) + TX_FAR _SilphCo10AfterBattleText1 + db "@" + +SilphCo10BattleText2: ; 5a1ec (16:61ec) + TX_FAR _SilphCo10BattleText2 + db "@" + +SilphCo10EndBattleText2: ; 5a1f1 (16:61f1) + TX_FAR _SilphCo10EndBattleText2 + db "@" + +SilphCo10AfterBattleText2: ; 5a1f6 (16:61f6) + TX_FAR _SilphCo10AfterBattleText2 + db "@" diff --git a/scripts/silphco11.asm b/scripts/silphco11.asm new file mode 100755 index 00000000..f24c6774 --- /dev/null +++ b/scripts/silphco11.asm @@ -0,0 +1,369 @@ +SilphCo11Script: ; 620fa (18:60fa) + call SilphCo11Script_62110 + call EnableAutoTextBoxDrawing + ld hl, SilphCo11TrainerHeaders + ld de, SilphCo11ScriptPointers + ld a, [W_SILPHCO11CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO11CURSCRIPT], a + ret + +SilphCo11Script_62110: ; 62110 (18:6110) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, DataTable_62134 ; $6134 + call SilphCo11Script_62137 + call SilphCo11Script_62163 + ld a, [$d838] + bit 0, a + ret nz + ld a, $20 + ld [$d09f], a + ld bc, $603 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +DataTable_62134: ; 62134 (18:6134) + db $06,$03,$FF + +SilphCo11Script_62137: ; 62137 (18:6137) + push hl + ld hl, $d73f + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + xor a + ld [$ffe0], a + pop hl +.asm_62143 + ld a, [hli] + cp $ff + jr z, .asm_6215f + push hl + ld hl, $ffe0 + inc [hl] + pop hl + cp b + jr z, .asm_62154 + inc hl + jr .asm_62143 +.asm_62154 + ld a, [hli] + cp c + jr nz, .asm_62143 + ld hl, $d73f + xor a + ld [hli], a + ld [hl], a + ret +.asm_6215f + xor a + ld [$ffe0], a + ret + +SilphCo11Script_62163: ; 62163 (18:6163) + ld a, [$ffe0] + and a + ret z + ld hl, $d838 + set 0, [hl] + ret + +SilphCo11Script_6216d: ; 6216d (18:616d) + ld hl, MissableObjectIDs_6219b ; $619b +.asm_62170 + ld a, [hli] + cp $ff + jr z, .asm_62181 + push hl + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + pop hl + jr .asm_62170 +.asm_62181 + ld hl, MissableObjectIDs_62194 ; $6194 +.asm_62184 + ld a, [hli] + cp $ff + ret z + push hl + ld [$cc4d], a + ld a, $15 + call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8)) + pop hl + jr .asm_62184 + +MissableObjectIDs_62194: ; 62194 (18:6194) + db $11,$12,$13,$14,$15,$16,$FF + +MissableObjectIDs_6219b: ; 6219b (18:619b) + db $0A,$0B,$0C,$0D,$0E,$0F,$10,$17 + db $18,$8A,$8B,$8C,$8D,$8E,$8F,$91 + db $92,$93,$97,$98,$99,$9A,$9E,$9F + db $A0,$A3,$A4,$A5,$A6,$AB,$AC,$AD + db $AE,$AF,$B0,$B1,$B2,$B7,$B8,$B9 + db $FF + +SilphCo11Script_621c4: ; 621c4 (18:61c4) + xor a + ld [wJoypadForbiddenButtonsMask], a + +SilphCo11Script_621c8: ; 621c8 (18:61c8) + ld [W_SILPHCO11CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +SilphCo11ScriptPointers: ; 621cf (18:61cf) + dw SilphCo11Script0 + dw Func_324c + dw EndTrainerBattle + dw SilphCo11Script3 + dw SilphCo11Script4 + dw SilphCo11Script5 + +SilphCo11Script0: ; 621db (18:61db) + ld a, [$d838] + bit 7, a + ret nz + ld hl, CoordsData_62211 ; $6211 + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + ld a, [wWhichTrade] ; $cd3d + ld [$cf0d], a + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $3 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, $3 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call SetSpriteMovementBytesToFF + ld de, MovementData_62216 + call MoveSprite + ld a, $3 + jp SilphCo11Script_621c8 + +CoordsData_62211: ; 62211 (18:6211) + db $0D,$06 + db $0C,$07 + db $FF + +MovementData_62216: ; 62216 (18:6216) + db $00,$00,$00,$FF + +SilphCo11Script_6221a: ; 6221a (18:621a) + ld [$d528], a + ld a, $3 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld a, b + ld [$ff8d], a + jp Func_34a6 + +SilphCo11Script5: ; 62227 (18:6227) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, SilphCo11Script_621c4 + ld a, [$cf0d] + cp $1 + jr z, .asm_6223c + ld a, $2 + ld b, $c + jr .asm_62240 +.asm_6223c + ld a, $8 + ld b, $0 +.asm_62240 + call SilphCo11Script_6221a + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $6 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + call GBFadeIn1 + call SilphCo11Script_6216d + call UpdateSprites + call Delay3 + call GBFadeOut1 + ld hl, $d838 + set 7, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + jp SilphCo11Script_621c8 + +SilphCo11Script3: ; 6226a (18:626a) + ld a, [$d730] + bit 0, a + ret nz + ld a, $3 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call SetSpriteMovementBytesToFF + ld a, [$cf0d] + cp $1 + jr z, .asm_62284 + ld a, $2 + ld b, $c + jr .asm_62288 +.asm_62284 + ld a, $8 + ld b, $0 +.asm_62288 + call SilphCo11Script_6221a + call Delay3 + ld a, $4 + jp SilphCo11Script_621c8 + +SilphCo11Script4: ; 62293 (18:6293) + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, SilphCo10Text_62330 ; $6330 + ld de, SilphCo10Text_62330 ; $6330 + call PreBattleSaveRegisters + ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $5 + jp SilphCo11Script_621c8 + +SilphCo11TextPointers: ; 622b7 (18:62b7) + dw SilphCo11Text1 + dw SilphCo11Text2 + dw SilphCo11Text3 + dw SilphCo11Text4 + dw SilphCo11Text5 + dw SilphCo11Text6 + +SilphCo11TrainerHeaders: ; 622c3 (18:62c3) +SilphCo11TrainerHeader0: ; 622c3 (18:62c3) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d837 ; flag's byte + dw SilphCo11BattleText1 ; 0x6344 TextBeforeBattle + dw SilphCo11AfterBattleText1 ; 0x634e TextAfterBattle + dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle + dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle + +SilphCo11TrainerHeader1: ; 622cf (18:62cf) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d837 ; flag's byte + dw SilphCo11BattleText2 ; 0x635d TextBeforeBattle + dw SilphCo11AfterBattleText2 ; 0x6367 TextAfterBattle + dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle + dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle + + db $ff + +SilphCo11Text1: ; 622dc (18:62dc) + db $08 ; asm + ld a, [$d838] + bit 5, a + jp nz, .asm_62308 + ld hl, SilphCoPresidentText + call PrintText + ld bc, (MASTER_BALL << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedSilphCoMasterBallText + call PrintText + ld hl, $d838 + set 5, [hl] + jr .asm_fd405 ; 0x622fe +.BagFull + ld hl, SilphCoMasterBallNoRoomText + call PrintText + jr .asm_fd405 ; 0x62306 +.asm_62308 ; 0x62308 + ld hl, SilphCo10Text_6231c + call PrintText +.asm_fd405 ; 0x6230e + jp TextScriptEnd + +SilphCoPresidentText: ; 62311 (18:6311) + TX_FAR _SilphCoPresidentText + db "@" + +ReceivedSilphCoMasterBallText: ; 62316 (18:6316) + TX_FAR _ReceivedSilphCoMasterBallText + db $11, "@" + +SilphCo10Text_6231c: ; 6231c (18:631c) + TX_FAR _SilphCo10Text_6231c + db "@" + +SilphCoMasterBallNoRoomText: ; 62321 (18:6321) + TX_FAR _SilphCoMasterBallNoRoomText + db "@" + +SilphCo11Text2: ; 62326 (18:6326) + TX_FAR _SilphCo11Text2 + db "@" + +SilphCo11Text3: ; 6232b (18:632b) + TX_FAR _SilphCo11Text3 + db "@" + +SilphCo10Text_62330: ; 62330 (18:6330) + TX_FAR _SilphCo10Text_62330 + db "@" + +SilphCo11Text6: ; 62335 (18:6335) + TX_FAR _SilphCo10Text_62335 + db "@" + +SilphCo11Text4: ; 6233a (18:633a) + db $08 ; asm + ld hl, SilphCo11TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo11BattleText1: ; 62344 (18:6344) + TX_FAR _SilphCo11BattleText1 + db "@" + +SilphCo11EndBattleText1: ; 62349 (18:6349) + TX_FAR _SilphCo11EndBattleText1 + db "@" + +SilphCo11AfterBattleText1: ; 6234e (18:634e) + TX_FAR _SilphCo11AfterBattleText1 + db "@" + +SilphCo11Text5: ; 62353 (18:6353) + db $08 ; asm + ld hl, SilphCo11TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SilphCo11BattleText2: ; 6235d (18:635d) + TX_FAR _SilphCo11BattleText2 + db "@" + +SilphCo11EndBattleText2: ; 62362 (18:6362) + TX_FAR _SilphCo11EndBattleText2 + db "@" + +SilphCo11AfterBattleText2: ; 62367 (18:6367) + TX_FAR _SilphCo11AfterBattleText2 + db "@" + +SilphCo10Text_6236c: ; 6236c (18:636c) + db $8 + ld hl, SilphCo10Text_6237b + call PrintText + ld a, PORYGON + call DisplayPokedex + jp TextScriptEnd + +SilphCo10Text_6237b: ; 6237b (18:637b) + TX_FAR _SilphCo10Text_6237b + db "@" diff --git a/scripts/silphco2.asm b/scripts/silphco2.asm new file mode 100755 index 00000000..da59cc4c --- /dev/null +++ b/scripts/silphco2.asm @@ -0,0 +1,248 @@ +SilphCo2Script: ; 59cf1 (16:5cf1) + call SilphCo2Script_59d07 + call EnableAutoTextBoxDrawing + ld hl, SilphCo2TrainerHeaders + ld de, SilphCo2ScriptPointers + ld a, [W_SILPHCO2CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO2CURSCRIPT], a + ret + +SilphCo2Script_59d07: ; 59d07 (16:5d07) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, DataTable_59d3e + call SilphCo2Script_59d43 + call SilphCo2Script_59d6f + ld a, [$d826] + bit 5, a + jr nz, .asm_59d2e + push af + ld a, $54 + ld [$d09f], a + ld bc, $0202 + ld a, $17 + call Predef + pop af +.asm_59d2e + bit 6, a + ret nz + ld a, $54 + ld [$d09f], a + ld bc, $0502 + ld a, $17 + jp Predef + +DataTable_59d3e: ; 59d3e (16:5d3e) + db $02,$02,$05,$02,$FF + +SilphCo2Script_59d43: ; 59d43 (16:5d43) + push hl + ld hl, $d73f + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + xor a + ld [$ffe0], a + pop hl +.asm_59d4f + ld a, [hli] + cp $ff + jr z, .asm_59d6b + push hl + ld hl, $ffe0 + inc [hl] + pop hl + cp b + jr z, .asm_59d60 + inc hl + jr .asm_59d4f +.asm_59d60 + ld a, [hli] + cp c + jr nz, .asm_59d4f + ld hl, $d73f + xor a + ld [hli], a + ld [hl], a + ret +.asm_59d6b + xor a + ld [$ffe0], a + ret + +SilphCo2Script_59d6f: ; 59d6f (16:5d6f) + ld hl, $d826 + ld a, [$ffe0] + and a + ret z + cp $1 + jr nz, .asm_59d7d + set 5, [hl] + ret +.asm_59d7d + set 6, [hl] + ret + +SilphCo2ScriptPointers: ; 59d80 (16:5d80) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SilphCo2TextPointers: ; 59d86 (16:5d86) + dw SilphCo2Text1 + dw SilphCo2Text2 + dw SilphCo2Text3 + dw SilphCo2Text4 + dw SilphCo2Text5 + +SilphCo2TrainerHeaders: ; 59d90 (16:5d90) +SilphCo2TrainerHeader0: ; 59d90 (16:5d90) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d825 ; flag's byte + dw SilphCo2BattleText1 ; 0x5e2a TextBeforeBattle + dw SilphCo2AfterBattleText1 ; 0x5e34 TextAfterBattle + dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle + dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle + +SilphCo2TrainerHeader1: ; 59d9c (16:5d9c) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d825 ; flag's byte + dw SilphCo2BattleText2 ; 0x5e39 TextBeforeBattle + dw SilphCo2AfterBattleText2 ; 0x5e43 TextAfterBattle + dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle + dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle + +SilphCo2TrainerHeader2: ; 59da8 (16:5da8) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d825 ; flag's byte + dw SilphCo2BattleText3 ; 0x5e48 TextBeforeBattle + dw SilphCo2AfterBattleText3 ; 0x5e52 TextAfterBattle + dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle + dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle + +SilphCo2TrainerHeader3: ; 59db4 (16:5db4) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d825 ; flag's byte + dw SilphCo2BattleText4 ; 0x5e57 TextBeforeBattle + dw SilphCo2AfterBattleText4 ; 0x5e61 TextAfterBattle + dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle + dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle + + db $ff + +SilphCo2Text1: ; 59dc1 (16:5dc1) + db $08 ; asm + ld a, [$d826] + bit 7, a + jr nz, asm_b8a0d ; 0x59dc7 + ld hl, SilphCo2Text_59ded + call PrintText + ld bc, (TM_36 << 8) | 1 + call GiveItem + ld hl, TM36NoRoomText + jr nc, asm_2c1e0 ; 0x59dd8 + ld hl, $d826 + set 7, [hl] + ld hl, ReceivedTM36Text + jr asm_2c1e0 ; 0x59de2 +asm_b8a0d ; 0x59de4 + ld hl, TM36ExplanationText +asm_2c1e0 ; 0x59de7 + call PrintText + jp TextScriptEnd + +SilphCo2Text_59ded: ; 59ded (16:5ded) + TX_FAR _SilphCo2Text_59ded + db "@" + +ReceivedTM36Text: ; 59df2 (16:5df2) + TX_FAR _ReceivedTM36Text + db $0B, "@" + +TM36ExplanationText: ; 59df8 (16:5df8) + TX_FAR _TM36ExplanationText + db "@" + +TM36NoRoomText: ; 59dfd (16:5dfd) + TX_FAR _TM36NoRoomText + db "@" + +SilphCo2Text2: ; 59e02 (16:5e02) + db $08 ; asm + ld hl, SilphCo2TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo2Text3: ; 59e0c (16:5e0c) + db $08 ; asm + ld hl, SilphCo2TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SilphCo2Text4: ; 59e16 (16:5e16) + db $08 ; asm + ld hl, SilphCo2TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SilphCo2Text5: ; 59e20 (16:5e20) + db $08 ; asm + ld hl, SilphCo2TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SilphCo2BattleText1: ; 59e2a (16:5e2a) + TX_FAR _SilphCo2BattleText1 + db "@" + +SilphCo2EndBattleText1: ; 59e2f (16:5e2f) + TX_FAR _SilphCo2EndBattleText1 + db "@" + +SilphCo2AfterBattleText1: ; 59e34 (16:5e34) + TX_FAR _SilphCo2AfterBattleText1 + db "@" + +SilphCo2BattleText2: ; 59e39 (16:5e39) + TX_FAR _SilphCo2BattleText2 + db "@" + +SilphCo2EndBattleText2: ; 59e3e (16:5e3e) + TX_FAR _SilphCo2EndBattleText2 + db "@" + +SilphCo2AfterBattleText2: ; 59e43 (16:5e43) + TX_FAR _SilphCo2AfterBattleText2 + db "@" + +SilphCo2BattleText3: ; 59e48 (16:5e48) + TX_FAR _SilphCo2BattleText3 + db "@" + +SilphCo2EndBattleText3: ; 59e4d (16:5e4d) + TX_FAR _SilphCo2EndBattleText3 + db "@" + +SilphCo2AfterBattleText3: ; 59e52 (16:5e52) + TX_FAR _SilphCo2AfterBattleText3 + db "@" + +SilphCo2BattleText4: ; 59e57 (16:5e57) + TX_FAR _SilphCo2BattleText4 + db "@" + +SilphCo2EndBattleText4: ; 59e5c (16:5e5c) + TX_FAR _SilphCo2EndBattleText4 + db "@" + +SilphCo2AfterBattleText4: ; 59e61 (16:5e61) + TX_FAR _SilphCo2AfterBattleText4 + db "@" diff --git a/scripts/silphco3.asm b/scripts/silphco3.asm new file mode 100755 index 00000000..a7ba1bee --- /dev/null +++ b/scripts/silphco3.asm @@ -0,0 +1,139 @@ +SilphCo3Script: ; 59f5b (16:5f5b) + call SilphCo3Script_59f71 + call EnableAutoTextBoxDrawing + ld hl, SilphCo3TrainerHeaders + ld de, SilphCo3ScriptPointers + ld a, [W_SILPHCO3CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO3CURSCRIPT], a + ret + +SilphCo3Script_59f71: ; 59f71 (16:5f71) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, DataTable_59fa8 ; $5fa8 + call SilphCo2Script_59d43 + call SilphCo3Script_59fad + ld a, [$d828] + bit 0, a + jr nz, .asm_59f98 + push af + ld a, $5f + ld [$d09f], a + ld bc, $404 + ld a, $17 + call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + pop af +.asm_59f98 + bit 1, a + ret nz + ld a, $5f + ld [$d09f], a + ld bc, $408 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +DataTable_59fa8: ; 59fa8 (16:5fa8) + db $04,$04,$04,$08,$FF + +SilphCo3Script_59fad: ; 59fad (16:5fad) + ld hl, $d828 + ld a, [$ffe0] + and a + ret z + cp $1 + jr nz, .asm_59fbb + set 0, [hl] + ret +.asm_59fbb + set 1, [hl] + ret + +SilphCo3ScriptPointers: ; 59fbe (16:5fbe) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SilphCo3TextPointers: ; 59fc4 (16:5fc4) + dw SilphCo3Text1 + dw SilphCo3Text2 + dw SilphCo3Text3 + dw Predef5CText + +SilphCo3TrainerHeaders: ; 59fcc (16:5fcc) +SilphCo3TrainerHeader0: ; 59fcc (16:5fcc) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d827 ; flag's byte + dw SilphCo3BattleText1 ; 0x600d TextBeforeBattle + dw SilphCo3AfterBattleText1 ; 0x6017 TextAfterBattle + dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle + dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle + +SilphCo3TrainerHeader1: ; 59fd8 (16:5fd8) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d827 ; flag's byte + dw SilphCo3BattleText2 ; 0x6026 TextBeforeBattle + dw SilphCo3AfterBattleText2 ; 0x6030 TextAfterBattle + dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle + dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle + + db $ff + +SilphCo3Text1: ; 59fe5 (16:5fe5) + db $08 ; asm + ld a, [$d838] + bit 7, a + ld hl, SilphCo3Text_59ffe + jr nz, asm_8c56f ; 0x59fee + ld hl, SilphCo3Text_59ff9 +asm_8c56f ; 0x59ff3 + call PrintText + jp TextScriptEnd + +SilphCo3Text_59ff9: ; 59ff9 (16:5ff9) + TX_FAR _SilphCo3Text_59ff9 + db "@" + +SilphCo3Text_59ffe: ; 59ffe (16:5ffe) + TX_FAR _SilphCo3Text_59ffe + db "@" + +SilphCo3Text2: ; 5a003 (16:6003) + db $08 ; asm + ld hl, SilphCo3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo3BattleText1: ; 5a00d (16:600d) + TX_FAR _SilphCo3BattleText1 + db "@" + +SilphCo3EndBattleText1: ; 5a012 (16:6012) + TX_FAR _SilphCo3EndBattleText1 + db "@" + +SilphCo3AfterBattleText1: ; 5a017 (16:6017) + TX_FAR _SilphCo3AfterBattleText1 + db "@" + +SilphCo3Text3: ; 5a01c (16:601c) + db $08 ; asm + ld hl, SilphCo3TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SilphCo3BattleText2: ; 5a026 (16:6026) + TX_FAR _SilphCo3BattleText2 + db "@" + +SilphCo3EndBattleText2: ; 5a02b (16:602b) + TX_FAR _SilphCo3EndBattleText2 + db "@" + +SilphCo3AfterBattleText2: ; 5a030 (16:6030) + TX_FAR _SilphCo3AfterBattleText2 + db "@" diff --git a/scripts/silphco4.asm b/scripts/silphco4.asm new file mode 100755 index 00000000..1777ff8c --- /dev/null +++ b/scripts/silphco4.asm @@ -0,0 +1,201 @@ +SilphCo4Script: ; 19d0b (6:5d0b) + call SilphCo4Script_19d21 + call EnableAutoTextBoxDrawing + ld hl, SilphCo4TrainerHeaders + ld de, SilphCo4ScriptPointers + ld a, [W_SILPHCO4CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO4CURSCRIPT], a + ret + +SilphCo4Script_19d21: ; 19d21 (6:5d21) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, SilphCo4Data19d58 + call SilphCo4Script_19d5d + call SilphCo4Script_19d89 + ld a, [$d82a] + bit 0, a + jr nz, .asm_19d48 + push af + ld a, $54 + ld [$d09f], a + ld bc, $0602 + ld a, $17 + call Predef + pop af +.asm_19d48 + bit 1, a + ret nz + ld a, $54 + ld [$d09f], a + ld bc, $0406 + ld a, $17 + jp Predef + +SilphCo4Data19d58: ; 19d58 (6:5d58) + db $06, $02, $04, $06, $ff + +SilphCo4Script_19d5d: ; 19d5d (6:5d5d) + push hl + ld hl, $d73f + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + xor a + ld [$ffe0], a + pop hl +.asm_19d69 + ld a, [hli] + cp $ff + jr z, .asm_19d85 ; 0x19d6c $17 + push hl + ld hl, $ffe0 + inc [hl] + pop hl + cp b + jr z, .asm_19d7a ; 0x19d75 $3 + inc hl + jr .asm_19d69 ; 0x19d78 $ef +.asm_19d7a + ld a, [hli] + cp c + jr nz, .asm_19d69 ; 0x19d7c $eb + ld hl, $d73f + xor a + ld [hli], a + ld [hl], a + ret +.asm_19d85 + xor a + ld [$ffe0], a + ret + +SilphCo4Script_19d89: ; 19d89 (6:5d89) + ld hl, $d82a + ld a, [$ffe0] + and a + ret z + cp $1 + jr nz, .asm_19d97 ; 0x19d92 $3 + set 0, [hl] + ret +.asm_19d97 + set 1, [hl] + ret + +SilphCo4ScriptPointers: ; 19d9a (6:5d9a) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SilphCo4TextPointers: ; 19da0 (6:5da0) + dw SilphCo4Text1 + dw SilphCo4Text2 + dw SilphCo4Text3 + dw SilphCo4Text4 + dw Predef5CText + dw Predef5CText + dw Predef5CText + +SilphCo4TrainerHeaders: ; 19dae (6:5dae) +SilphCo4TrainerHeader0: ; 19dae (6:5dae) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d829 ; flag's byte + dw SilphCo4BattleText2 ; 0x5df4 TextBeforeBattle + dw SilphCo4AfterBattleText2 ; 0x5dfe TextAfterBattle + dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle + dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle + +SilphCo4TrainerHeader2: ; 19dba (6:5dba) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d829 ; flag's byte + dw SilphCo4BattleText3 ; 0x5e0d TextBeforeBattle + dw SilphCo4AfterBattleText3 ; 0x5e17 TextAfterBattle + dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle + dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle + +SilphCo4TrainerHeader3: ; 19dc6 (6:5dc6) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d829 ; flag's byte + dw SilphCo4BattleText4 ; 0x5e26 TextBeforeBattle + dw SilphCo4AfterBattleText4 ; 0x5e30 TextAfterBattle + dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle + dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle + + db $ff + +SilphCo4Text1: ; 19dd3 (6:5dd3) + db $08 ; asm + ld hl, SilphCo4Text_19de0 + ld de, SilphCo4Text_19de5 + call SilphCo6Script_1a22f + jp TextScriptEnd + +SilphCo4Text_19de0: ; 19de0 (6:5de0) + TX_FAR _SilphCo4Text_19de0 + db "@" + +SilphCo4Text_19de5: ; 19de5 (6:5de5) + TX_FAR _SilphCo4Text_19de5 + db "@" + +SilphCo4Text2: ; 19dea (6:5dea) + db $08 ; asm + ld hl, SilphCo4TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo4BattleText2: ; 19df4 (6:5df4) + TX_FAR _SilphCo4BattleText2 + db "@" + +SilphCo4EndBattleText2: ; 19df9 (6:5df9) + TX_FAR _SilphCo4EndBattleText2 + db "@" + +SilphCo4AfterBattleText2: ; 19dfe (6:5dfe) + TX_FAR _SilphCo4AfterBattleText2 + db "@" + +SilphCo4Text3: ; 19e03 (6:5e03) + db $08 ; asm + ld hl, SilphCo4TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SilphCo4BattleText3: ; 19e0d (6:5e0d) + TX_FAR _SilphCo4BattleText3 + db "@" + +SilphCo4EndBattleText3: ; 19e12 (6:5e12) + TX_FAR _SilphCo4EndBattleText3 + db "@" + +SilphCo4AfterBattleText3: ; 19e17 (6:5e17) + TX_FAR _SilphCo4AfterBattleText3 + db "@" + +SilphCo4Text4: ; 19e1c (6:5e1c) + db $08 ; asm + ld hl, SilphCo4TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SilphCo4BattleText4: ; 19e26 (6:5e26) + TX_FAR _SilphCo4BattleText4 + db "@" + +SilphCo4EndBattleText4: ; 19e2b (6:5e2b) + TX_FAR _SilphCo4EndBattleText4 + db "@" + +SilphCo4AfterBattleText4: ; 19e30 (6:5e30) + TX_FAR _SilphCo4AfterBattleText4 + db "@" diff --git a/scripts/silphco5.asm b/scripts/silphco5.asm new file mode 100755 index 00000000..c4efc16b --- /dev/null +++ b/scripts/silphco5.asm @@ -0,0 +1,223 @@ +SilphCo5Script: ; 19f37 (6:5f37) + call SilphCo5Script_19f4d + call EnableAutoTextBoxDrawing + ld hl, SilphCo5TrainerHeaders + ld de, SilphCo5ScriptPointers + ld a, [W_SILPHCO5CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO5CURSCRIPT], a + ret + +SilphCo5Script_19f4d: ; 19f4d (6:5f4d) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, SilphCo5Coords + call SilphCo4Script_19d5d + call SilphCo5Script_19f9e + ld a, [$d82c] + bit 0, a + jr nz, .asm_19f74 ; 0x19f63 $f + push af + ld a, $5f + ld [$d09f], a + ld bc, $0203 + ld a, $17 + call Predef + pop af +.asm_19f74 + bit 1, a + jr nz, .asm_19f87 ; 0x19f76 $f + push af + ld a, $5f + ld [$d09f], a + ld bc, $0603 + ld a, $17 + call Predef + pop af +.asm_19f87 + bit 2, a + ret nz + ld a, $5f + ld [$d09f], a + ld bc, $0507 + ld a, $17 + jp Predef + +SilphCo5Coords: ; 19f97 (6:5f97) ; coords? + db $02, $03, $06, $03, $05, $07, $ff + +SilphCo5Script_19f9e: ; 19f9e (6:5f9e) + ld hl, $d82c + ld a, [$ffe0] + and a + ret z + cp $1 + jr nz, .asm_19fac ; 0x19fa7 $3 + set 0, [hl] + ret +.asm_19fac + cp $2 + jr nz, .asm_19fb3 ; 0x19fae $3 + set 1, [hl] + ret +.asm_19fb3 + set 2, [hl] + ret + +SilphCo5ScriptPointers: ; 19fb6 (6:5fb6) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SilphCo5TextPointers: ; 19fbc (6:5fbc) + dw SilphCo5Text1 + dw SilphCo5Text2 + dw SilphCo5Text3 + dw SilphCo5Text4 + dw SilphCo5Text5 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw SilphCo5Text9 + dw SilphCo5Text10 + dw SilphCo5Text11 + +SilphCo5TrainerHeaders: ; 19fd2 (6:5fd2) +Silphco5TrainerHeader0: ; 19fd2 (6:5fd2) + db $2 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d82b ; flag's byte + dw SilphCo5BattleText2 ; 0x6024 TextBeforeBattle + dw SilphCo5AfterBattleText2 ; 0x602e TextAfterBattle + dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle + dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle + +Silphco5TrainerHeader2: ; 19fde (6:5fde) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d82b ; flag's byte + dw SilphCo5BattleText3 ; 0x603d TextBeforeBattle + dw SilphCo5AfterBattleText3 ; 0x6047 TextAfterBattle + dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle + dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle + +Silphco5TrainerHeader3: ; 19fea (6:5fea) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d82b ; flag's byte + dw SilphCo5BattleText4 ; 0x6056 TextBeforeBattle + dw SilphCo5AfterBattleText4 ; 0x6060 TextAfterBattle + dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle + dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle + +Silphco5TrainerHeader4: ; 19ff6 (6:5ff6) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d82b ; flag's byte + dw SilphCo5BattleText5 ; 0x606f TextBeforeBattle + dw SilphCo5AfterBattleText5 ; 0x6079 TextAfterBattle + dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle + dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle + + db $ff + +SilphCo5Text1: ; 1a003 (6:6003) + db $08 ; asm + ld hl, SilphCo5Text_1a010 + ld de, SilphCo5Text_1a015 + call SilphCo6Script_1a22f + jp TextScriptEnd + +SilphCo5Text_1a010: ; 1a010 (6:6010) + TX_FAR _SilphCo5Text_1a010 + db "@" + +SilphCo5Text_1a015: ; 1a015 (6:6015) + TX_FAR _SilphCo5Text_1a015 + db "@" + +SilphCo5Text2: ; 1a01a (6:601a) + db $08 ; asm + ld hl, Silphco5TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo5BattleText2: ; 1a024 (6:6024) + TX_FAR _SilphCo5BattleText2 + db "@" + +SilphCo5EndBattleText2: ; 1a029 (6:6029) + TX_FAR _SilphCo5EndBattleText2 + db "@" + +SilphCo5AfterBattleText2: ; 1a02e (6:602e) + TX_FAR _SilphCo5AfterBattleText2 + db "@" + +SilphCo5Text3: ; 1a033 (6:6033) + db $08 ; asm + ld hl, Silphco5TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SilphCo5BattleText3: ; 1a03d (6:603d) + TX_FAR _SilphCo5BattleText3 + db "@" + +SilphCo5EndBattleText3: ; 1a042 (6:6042) + TX_FAR _SilphCo5EndBattleText3 + db "@" + +SilphCo5AfterBattleText3: ; 1a047 (6:6047) + TX_FAR _SilphCo5AfterBattleText3 + db "@" + +SilphCo5Text4: ; 1a04c (6:604c) + db $08 ; asm + ld hl, Silphco5TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SilphCo5BattleText4: ; 1a056 (6:6056) + TX_FAR _SilphCo5BattleText4 + db "@" + +SilphCo5EndBattleText4: ; 1a05b (6:605b) + TX_FAR _SilphCo5EndBattleText4 + db "@" + +SilphCo5AfterBattleText4: ; 1a060 (6:6060) + TX_FAR _SilphCo5AfterBattleText4 + db "@" + +SilphCo5Text5: ; 1a065 (6:6065) + db $08 ; asm + ld hl, Silphco5TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +SilphCo5BattleText5: ; 1a06f (6:606f) + TX_FAR _SilphCo5BattleText5 + db "@" + +SilphCo5EndBattleText5: ; 1a074 (6:6074) + TX_FAR _SilphCo5EndBattleText5 + db "@" + +SilphCo5AfterBattleText5: ; 1a079 (6:6079) + TX_FAR _SilphCo5AfterBattleText5 + db "@" + +SilphCo5Text9: ; 1a07e (6:607e) + TX_FAR _SilphCo5Text9 + db "@" + +SilphCo5Text10: ; 1a083 (6:6083) + TX_FAR _SilphCo5Text10 + db "@" + +SilphCo5Text11: ; 1a088 (6:6088) + TX_FAR _SilphCo5Text11 + db "@" diff --git a/scripts/silphco6.asm b/scripts/silphco6.asm new file mode 100755 index 00000000..2b5b7ebf --- /dev/null +++ b/scripts/silphco6.asm @@ -0,0 +1,225 @@ +SilphCo6Script: ; 1a1a9 (6:61a9) + call SilphCo6Script_1a1bf + call EnableAutoTextBoxDrawing + ld hl, SilphCo6TrainerHeaders + ld de, SilphCo6ScriptPointers + ld a, [W_SILPHCO6CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO6CURSCRIPT], a + ret + +SilphCo6Script_1a1bf: ; 1a1bf (6:61bf) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, SilphCo6Coords1 + call SilphCo4Script_19d5d + call SilphCo6Script_1a1e6 + ld a, [$d82e] + bit 7, a + ret nz + ld a, $5f + ld [$d09f], a + ld bc, $0602 + ld a, $17 + jp Predef + +SilphCo6Coords1: ; 1a1e3 (6:61e3) + db $06, $02 + db $ff + +SilphCo6Script_1a1e6: ; 1a1e6 (6:61e6) + ld a, [$ffe0] + and a + ret z + ld hl, $d82e + set 7, [hl] + ret + +SilphCo6ScriptPointers: ; 1a1f0 (6:61f0) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SilphCo6TextPointers: ; 1a1f6 (6:61f6) + dw SilphCo6Text1 + dw SilphCo6Text2 + dw SilphCo6Text3 + dw SilphCo6Text4 + dw SilphCo6Text5 + dw SilphCo6Text6 + dw SilphCo6Text7 + dw SilphCo6Text8 + dw Predef5CText + dw Predef5CText + +SilphCo6TrainerHeaders: ; 1a20a (6:620a) +SilphCo6TrainerHeader0: ; 1a20a (6:620a) + db $6 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d82d ; flag's byte + dw SilphCo6BattleText2 ; 0x62ba TextBeforeBattle + dw SilphCo6AfterBattleText2 ; 0x62c4 TextAfterBattle + dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle + dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle + +SilphCo6TrainerHeader2: ; 1a216 (6:6216) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d82d ; flag's byte + dw SilphCo6BattleText3 ; 0x62d3 TextBeforeBattle + dw SilphCo6AfterBattleText3 ; 0x62dd TextAfterBattle + dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle + dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle + +SilphCo6TrainerHeader3: ; 1a222 (6:6222) + db $8 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d82d ; flag's byte + dw SilphCo6BattleText4 ; 0x62ec TextBeforeBattle + dw SilphCo6AfterBattleText4 ; 0x62f6 TextAfterBattle + dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle + dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle + + db $ff + +SilphCo6Script_1a22f: ; 1a22f (6:622f) + ld a, [$d838] + bit 7, a + jr nz, .asm_1a238 ; 0x1a234 $2 + jr .asm_1a23a ; 0x1a236 $2 +.asm_1a238 + ld h, d + ld l, e +.asm_1a23a + jp PrintText + +SilphCo6Text1: ; 1a23d (6:623d) + db $08 ; asm + ld hl, SilphCo6Text_1a24a + ld de, SilphCo6Text_1a24f + call SilphCo6Script_1a22f + jp TextScriptEnd + +SilphCo6Text_1a24a: ; 1a24a (6:624a) + TX_FAR _SilphCo6Text_1a24a + db "@" + +SilphCo6Text_1a24f: ; 1a24f (6:624f) + TX_FAR _SilphCo6Text_1a24f + db "@" + +SilphCo6Text2: ; 1a254 (6:6254) + db $08 ; asm + ld hl, SilphCo6Text_1a261 + ld de, SilphCo6Text_1a266 + call SilphCo6Script_1a22f + jp TextScriptEnd + +SilphCo6Text_1a261: ; 1a261 (6:6261) + TX_FAR _SilphCo6Text_1a261 + db "@" + +SilphCo6Text_1a266: ; 1a266 (6:6266) + TX_FAR _SilphCo6Text_1a266 + db "@" + +SilphCo6Text3: ; 1a26b (6:626b) + db $08 ; asm + ld hl, SilphCo6Text_1a278 + ld de, SilphCo6Text_1a27d + call SilphCo6Script_1a22f + jp TextScriptEnd + +SilphCo6Text_1a278: ; 1a278 (6:6278) + TX_FAR _SilphCo6Text_1a278 + db "@" + +SilphCo6Text_1a27d: ; 1a27d (6:627d) + TX_FAR _SilphCo6Text_1a27d + db "@" + +SilphCo6Text4: ; 1a282 (6:6282) + db $08 ; asm + ld hl, SilphCo6Text_1a28f + ld de, SilphCo6Text_1a294 + call SilphCo6Script_1a22f + jp TextScriptEnd + +SilphCo6Text_1a28f: ; 1a28f (6:628f) + TX_FAR _SilphCo6Text_1a28f + db "@" + +SilphCo6Text_1a294: ; 1a294 (6:6294) + TX_FAR _SilphCo6Text_1a294 + db "@" + +SilphCo6Text5: ; 1a299 (6:6299) + db $08 ; asm + ld hl, SilphCo6Text_1a2a6 + ld de, SilphCo6Text_1a2ab + call SilphCo6Script_1a22f + jp TextScriptEnd + +SilphCo6Text_1a2a6: ; 1a2a6 (6:62a6) + TX_FAR _SilphCo6Text_1a2a6 + db "@" + +SilphCo6Text_1a2ab: ; 1a2ab (6:62ab) + TX_FAR _SilphCo6Text_1a2ab + db "@" + +SilphCo6Text6: ; 1a2b0 (6:62b0) + db $08 ; asm + ld hl, SilphCo6TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo6BattleText2: ; 1a2ba (6:62ba) + TX_FAR _SilphCo6BattleText2 + db "@" + +SilphCo6EndBattleText2: ; 1a2bf (6:62bf) + TX_FAR _SilphCo6EndBattleText2 + db "@" + +SilphCo6AfterBattleText2: ; 1a2c4 (6:62c4) + TX_FAR _SilphCo6AfterBattleText2 + db "@" + +SilphCo6Text7: ; 1a2c9 (6:62c9) + db $08 ; asm + ld hl, SilphCo6TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SilphCo6BattleText3: ; 1a2d3 (6:62d3) + TX_FAR _SilphCo6BattleText3 + db "@" + +SilphCo6EndBattleText3: ; 1a2d8 (6:62d8) + TX_FAR _SilphCo6EndBattleText3 + db "@" + +SilphCo6AfterBattleText3: ; 1a2dd (6:62dd) + TX_FAR _SilphCo6AfterBattleText3 + db "@" + +SilphCo6Text8: ; 1a2e2 (6:62e2) + db $08 ; asm + ld hl, SilphCo6TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SilphCo6BattleText4: ; 1a2ec (6:62ec) + TX_FAR _SilphCo6BattleText4 + db "@" + +SilphCo6EndBattleText4: ; 1a2f1 (6:62f1) + TX_FAR _SilphCo6EndBattleText4 + db "@" + +SilphCo6AfterBattleText4: ; 1a2f6 (6:62f6) + TX_FAR _SilphCo6AfterBattleText4 + db "@" diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm new file mode 100755 index 00000000..dfd139c0 --- /dev/null +++ b/scripts/silphco7.asm @@ -0,0 +1,525 @@ +SilphCo7Script: ; 51b61 (14:5b61) + call SilphCo7Script_51b77 + call EnableAutoTextBoxDrawing + ld hl, SilphCo7TrainerHeaders + ld de, SilphCo7ScriptPointers + ld a, [W_SILPHCO7CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO7CURSCRIPT], a + ret + +SilphCo7Script_51b77: ; 51b77 (14:5b77) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, DataTable_51bc1 ; $5bc1 + call SilphCo7Text_51bc8 + call SilphCo7Text_51bf4 + ld a, [$d830] + bit 4, a + jr nz, .asm_51b9e + push af + ld a, $54 + ld [$d09f], a + ld bc, $305 + ld a, $17 + call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + pop af +.asm_51b9e + bit 5, a + jr nz, .asm_51bb1 + push af + ld a, $54 + ld [$d09f], a + ld bc, $20a + ld a, $17 + call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + pop af +.asm_51bb1 + bit 6, a + ret nz + ld a, $54 + ld [$d09f], a + ld bc, $60a + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +DataTable_51bc1: ; 51bc1 (14:5bc1) + db $03,$05,$02,$0A,$06,$0A,$FF + +SilphCo7Text_51bc8: ; 51bc8 (14:5bc8) + push hl + ld hl, $d73f + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + xor a + ld [$ffe0], a + pop hl +.asm_51bd4 + ld a, [hli] + cp $ff + jr z, .asm_51bf0 + push hl + ld hl, $ffe0 + inc [hl] + pop hl + cp b + jr z, .asm_51be5 + inc hl + jr .asm_51bd4 +.asm_51be5 + ld a, [hli] + cp c + jr nz, .asm_51bd4 + ld hl, $d73f + xor a + ld [hli], a + ld [hl], a + ret +.asm_51bf0 + xor a + ld [$ffe0], a + ret + +SilphCo7Text_51bf4: ; 51bf4 (14:5bf4) + ld hl, $d830 + ld a, [$ffe0] + and a + ret z + cp $1 + jr nz, .asm_51c02 + set 4, [hl] + ret +.asm_51c02 + cp $2 + jr nz, .asm_51c09 + set 5, [hl] + ret +.asm_51c09 + set 6, [hl] + ret + +SilphCo7Text_51c0c: ; 51c0c (14:5c0c) + xor a + ld [wJoypadForbiddenButtonsMask], a + +SilphCo7Text_51c10: ; 51c10 (14:5c10) + ld [W_SILPHCO7CURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +SilphCo7ScriptPointers: ; 51c17 (14:5c17) + dw SilphCo7Script0 + dw Func_324c + dw EndTrainerBattle + dw SilphCo7Script3 + dw SilphCo7Script4 + dw SilphCo7Script5 + +SilphCo7Script0: ; 51c23 (14:5c23) + ld a, [$d82f] + bit 0, a + jp nz, CheckFightingMapTrainers + ld hl, CoordsData_51c78 + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $4 + ld [$d528], a + ld a, $ff + ld [$c0ee], a + call PlaySound + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic + ld a, $9 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, $9 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call SetSpriteMovementBytesToFF + ld de, MovementData_51c7d + ld a, [wWhichTrade] ; $cd3d + ld [$cf0d], a + cp $1 + jr z, .asm_51c6c + inc de +.asm_51c6c + ld a, $9 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call MoveSprite + ld a, $3 + jp SilphCo7Text_51c10 + +CoordsData_51c78: ; 51c78 (14:5c78) + db $02,$03 + db $03,$03 + db $FF + +MovementData_51c7d: ; 51c7d (14:5c7d) + db $40,$40,$40,$40,$FF + +SilphCo7Script3: ; 51c82 (14:5c82) + ld a, [$d730] + bit 0, a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $d + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + call Delay3 + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, SilphCo7Text14 ; $5ec8 + ld de, SilphCo7Text_51ecd ; $5ecd + call PreBattleSaveRegisters + ld a, SONY2 + $c8 + ld [W_CUROPPONENT], a ; $d059 + ld a, [W_RIVALSTARTER] ; $d715 + cp SQUIRTLE + jr nz, .asm_51cb6 + ld a, $7 + jr .asm_51cc0 +.asm_51cb6 + cp BULBASAUR + jr nz, .asm_51cbe + ld a, $8 + jr .asm_51cc0 +.asm_51cbe + ld a, $9 +.asm_51cc0 + ld [W_TRAINERNO], a ; $d05d + ld a, $4 + jp SilphCo7Text_51c10 + +SilphCo7Script4: ; 51cc8 (14:5cc8) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, SilphCo7Text_51c0c + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d82f + set 0, [hl] + ld a, $4 + ld [$d528], a + ld a, $9 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld a, $4 + ld [$ff8d], a + call Func_34a6 + ld a, $f + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld de, MovementData_51d1d + ld a, [$cf0d] + cp $1 + jr nz, .asm_51d0e + ld de, MovementData_51d1a +.asm_51d0e + ld a, $9 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call MoveSprite + ld a, $5 + jp SilphCo7Text_51c10 + +MovementData_51d1a: ; 51d1a (14:5d1a) + db $C0,$C0,$FF + +MovementData_51d1d: ; 51d1d (14:5d1d) + db $80,$40,$40,$C0,$C0,$C0,$00,$FF + +SilphCo7Script5: ; 51d25 (14:5d25) + ld a, [$d730] + bit 0, a + ret nz + ld a, $a7 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + call Func_2307 + xor a + ld [wJoypadForbiddenButtonsMask], a + jp SilphCo7Text_51c10 + +SilphCo7TextPointers: ; 51d3f (14:5d3f) + dw SilphCo7Text1 + dw SilphCo7Text2 + dw SilphCo7Text3 + dw SilphCo7Text4 + dw SilphCo7Text5 + dw SilphCo7Text6 + dw SilphCo7Text7 + dw SilphCo7Text8 + dw SilphCo7Text9 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw SilphCo7Text13 + dw SilphCo7Text14 + dw SilphCo7Text15 + +SilphCo7TrainerHeaders: ; 51d5d (14:5d5d) +SilphCo7TrainerHeader0: ; 51d5d (14:5d5d) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d82f ; flag's byte + dw SilphCo7BattleText1 ; 0x5e5a TextBeforeBattle + dw SilphCo7AfterBattleText1 ; 0x5e64 TextAfterBattle + dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle + dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle + +SilphCo7TrainerHeader2: ; 51d69 (14:5d69) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d82f ; flag's byte + dw SilphCo7BattleText2 ; 0x5e73 TextBeforeBattle + dw SilphCo7AfterBattleText2 ; 0x5e7d TextAfterBattle + dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle + dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle + +SilphCo7TrainerHeader3: ; 51d75 (14:5d75) + db $7 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d82f ; flag's byte + dw SilphCo7BattleText3 ; 0x5e8c TextBeforeBattle + dw SilphCo7AfterBattleText3 ; 0x5e96 TextAfterBattle + dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle + dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle + +SilphCo7TrainerHeader4: ; 51d81 (14:5d81) + db $8 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d82f ; flag's byte + dw SilphCo7BattleText4 ; 0x5ea5 TextBeforeBattle + dw SilphCo7AfterBattleText4 ; 0x5eaf TextAfterBattle + dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle + dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle + + db $ff + +SilphCo7Text1: +; lapras guy + db $08 ; asm + ld a, [$d72e] + bit 0, a ; got lapras? + jr z, .givelapras + ld a, [$d838] + bit 7, a ; saved silph? + jr nz, .savedsilph + ld hl, .LaprasGuyText + call PrintText + jr .done +.givelapras + ld hl, .MeetLaprasGuyText + call PrintText + ld bc, (LAPRAS << 8) | 15 + call GivePokemon + jr nc, .done + ld a, [$ccd3] + and a + call z, WaitForTextScrollButtonPress + call EnableAutoTextBoxDrawing + ld hl, .HeresYourLaprasText + call PrintText + ld hl, $d72e + set 0, [hl] + jr .done +.savedsilph + ld hl, .LaprasGuySavedText + call PrintText +.done + jp TextScriptEnd + +.MeetLaprasGuyText + TX_FAR _MeetLaprasGuyText + db "@" + +.HeresYourLaprasText + TX_FAR _HeresYourLaprasText + db "@" + +.LaprasGuyText + TX_FAR _LaprasGuyText + db "@" + +.LaprasGuySavedText + TX_FAR _LaprasGuySavedText + db "@" + +SilphCo7Text2: + db $8 + ld a, [$d838] + bit 7, a ; saved silph? + jr nz, .savedsilph + ld hl, .rockettext + call PrintText + jr .done +.savedsilph + ld hl, .savedtext + call PrintText +.done + jp TextScriptEnd + +.rockettext + TX_FAR _SilphCo7Text_51e00 + db "@" + +.savedtext + TX_FAR _CanceledMasterBallText + db "@" + +SilphCo7Text3: + db $08 ; asm + ld a, [$d838] + bit 7, a ; saved silph? + jr nz, .savedsilph + ld hl, .rockettext + call PrintText + jr .done +.savedsilph + ld hl, .savedtext + call PrintText +.done + jp TextScriptEnd + +.rockettext + TX_FAR _SilphCo7Text_51e23 + db "@" + +.savedtext + TX_FAR _SilphCo7Text_51e28 + db "@" + +SilphCo7Text4: + db $08 ; asm + ld a, [$d838] + bit 7, a ; saved silph? + jr nz, .savedsilph + ld hl, .rockettext + call PrintText + jr .done +.savedsilph + ld hl, .savedtext + call PrintText +.done + jp TextScriptEnd + +.rockettext + TX_FAR _SilphCo7Text_51e46 + db "@" + +.savedtext + TX_FAR _SilphCo7Text_51e4b + db "@" + +SilphCo7Text5: ; 51e50 (14:5e50) + db $08 ; asm + ld hl, SilphCo7TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo7BattleText1: ; 51e5a (14:5e5a) + TX_FAR _SilphCo7BattleText1 + db "@" + +SilphCo7EndBattleText1: ; 51e5f (14:5e5f) + TX_FAR _SilphCo7EndBattleText1 + db "@" + +SilphCo7AfterBattleText1: ; 51e64 (14:5e64) + TX_FAR _SilphCo7AfterBattleText1 + db "@" + +SilphCo7Text6: ; 51e69 (14:5e69) + db $08 ; asm + ld hl, SilphCo7TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SilphCo7BattleText2: ; 51e73 (14:5e73) + TX_FAR _SilphCo7BattleText2 + db "@" + +SilphCo7EndBattleText2: ; 51e78 (14:5e78) + TX_FAR _SilphCo7EndBattleText2 + db "@" + +SilphCo7AfterBattleText2: ; 51e7d (14:5e7d) + TX_FAR _SilphCo7AfterBattleText2 + db "@" + +SilphCo7Text7: ; 51e82 (14:5e82) + db $08 ; asm + ld hl, SilphCo7TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SilphCo7BattleText3: ; 51e8c (14:5e8c) + TX_FAR _SilphCo7BattleText3 + db "@" + +SilphCo7EndBattleText3: ; 51e91 (14:5e91) + TX_FAR _SilphCo7EndBattleText3 + db "@" + +SilphCo7AfterBattleText3: ; 51e96 (14:5e96) + TX_FAR _SilphCo7AfterBattleText3 + db "@" + +SilphCo7Text8: ; 51e9b (14:5e9b) + db $08 ; asm + ld hl, SilphCo7TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +SilphCo7BattleText4: ; 51ea5 (14:5ea5) + TX_FAR _SilphCo7BattleText4 + db "@" + +SilphCo7EndBattleText4: ; 51eaa (14:5eaa) + TX_FAR _SilphCo7EndBattleText4 + db "@" + +SilphCo7AfterBattleText4: ; 51eaf (14:5eaf) + TX_FAR _SilphCo7AfterBattleText4 + db "@" + +SilphCo7Text9: ; 51eb4 (14:5eb4) + db $08 ; asm + ld hl, SilphCo7Text_51ebe + call PrintText + jp TextScriptEnd + +SilphCo7Text_51ebe: ; 51ebe (14:5ebe) + TX_FAR _SilphCo7Text_51ebe + db "@" + +SilphCo7Text13: ; 51ec3 (14:5ec3) + TX_FAR _SilphCo7Text_51ec3 + db "@" + +SilphCo7Text14: ; 51ec8 (14:5ec8) + TX_FAR _SilphCo7Text_51ec8 + db "@" + +SilphCo7Text_51ecd: ; 51ecd (14:5ecd) + TX_FAR _SilphCo7Text_51ecd + db "@" + +SilphCo7Text15: ; 51ed2 (14:5ed2) + TX_FAR _SilphCo7Text_51ed2 + db "@" diff --git a/scripts/silphco8.asm b/scripts/silphco8.asm new file mode 100755 index 00000000..19cae4ac --- /dev/null +++ b/scripts/silphco8.asm @@ -0,0 +1,187 @@ +SilphCo8Script: ; 56504 (15:6504) + call SilphCo8Script_5651a + call EnableAutoTextBoxDrawing + ld hl, SilphCo8TrainerHeader0 + ld de, SilphCo8ScriptPointers + ld a, [W_SILPHCO8CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO8CURSCRIPT], a + ret + +SilphCo8Script_5651a: ; 5651a (15:651a) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, DataTable_5653e ; $653e + call SilphCo8Script_56541 + call SilphCo8Script_5656d + ld a, [$d832] + bit 0, a + ret nz + ld a, $5f + ld [$d09f], a + ld bc, $403 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +DataTable_5653e: ; 5653e (15:653e) + db $04,$03,$FF + +SilphCo8Script_56541: ; 56541 (15:6541) + push hl + ld hl, $d73f + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + xor a + ld [$ffe0], a + pop hl +.asm_5654d + ld a, [hli] + cp $ff + jr z, .asm_56569 + push hl + ld hl, $ffe0 + inc [hl] + pop hl + cp b + jr z, .asm_5655e + inc hl + jr .asm_5654d +.asm_5655e + ld a, [hli] + cp c + jr nz, .asm_5654d + ld hl, $d73f + xor a + ld [hli], a + ld [hl], a + ret +.asm_56569 + xor a + ld [$ffe0], a + ret + +SilphCo8Script_5656d: ; 5656d (15:656d) + ld a, [$ffe0] + and a + ret z + ld hl, $d832 + set 0, [hl] + ret + +SilphCo8ScriptPointers: ; 56577 (15:6577) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SilphCo8TextPointers: ; 5657d (15:657d) + dw SilphCo8Text1 + dw SilphCo8Text2 + dw SilphCo8Text3 + dw SilphCo8Text4 + +SilphCo8TrainerHeaders: ; 56585 (15:6585) +SilphCo8TrainerHeader0: ; 56585 (15:6585) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d831 ; flag's byte + dw SilphCo8BattleText1 ; 0x65e6 TextBeforeBattle + dw SilphCo8AfterBattleText1 ; 0x65f0 TextAfterBattle + dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle + dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle + +SilphCo8TrainerHeader1: ; 56591 (15:6591) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d831 ; flag's byte + dw SilphCo8BattleText2 ; 0x65f5 TextBeforeBattle + dw SilphCo8AfterBattleText2 ; 0x65ff TextAfterBattle + dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle + dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle + +SilphCo8TrainerHeader2: ; 5659d (15:659d) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d831 ; flag's byte + dw SilphCo8BattleText3 ; 0x6604 TextBeforeBattle + dw SilphCo8AfterBattleText3 ; 0x660e TextAfterBattle + dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle + dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle + + db $ff + +SilphCo8Text1: ; 565aa (15:65aa) + db $08 ; asm + ld a, [$d838] + bit 7, a + ld hl, SilphCo8Text_565c3 + jr nz, asm_a468f ; 0x565b3 + ld hl, SilphCo8Text_565be +asm_a468f ; 0x565b8 + call PrintText + jp TextScriptEnd + +SilphCo8Text_565be: ; 565be (15:65be) + TX_FAR _SilphCo8Text_565be + db "@" + +SilphCo8Text_565c3: ; 565c3 (15:65c3) + TX_FAR _SilphCo8Text_565c3 + db "@" + +SilphCo8Text2: ; 565c8 (15:65c8) + db $08 ; asm + ld hl, SilphCo8TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo8Text3: ; 565d2 (15:65d2) + db $08 ; asm + ld hl, SilphCo8TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SilphCo8Text4: ; 565dc (15:65dc) + db $08 ; asm + ld hl, SilphCo8TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SilphCo8BattleText1: ; 565e6 (15:65e6) + TX_FAR _SilphCo8BattleText1 + db "@" + +SilphCo8EndBattleText1: ; 565eb (15:65eb) + TX_FAR _SilphCo8EndBattleText1 + db "@" + +SilphCo8AfterBattleText1: ; 565f0 (15:65f0) + TX_FAR _SilphCo8AfterBattleText1 + db "@" + +SilphCo8BattleText2: ; 565f5 (15:65f5) + TX_FAR _SilphCo8BattleText2 + db "@" + +SilphCo8EndBattleText2: ; 565fa (15:65fa) + TX_FAR _SilphCo8EndBattleText2 + db "@" + +SilphCo8AfterBattleText2: ; 565ff (15:65ff) + TX_FAR _SilphCo8AfterBattleText2 + db "@" + +SilphCo8BattleText3: ; 56604 (15:6604) + TX_FAR _SilphCo8BattleText3 + db "@" + +SilphCo8EndBattleText3: ; 56609 (15:6609) + TX_FAR _SilphCo8EndBattleText3 + db "@" + +SilphCo8AfterBattleText3: ; 5660e (15:660e) + TX_FAR _SilphCo8AfterBattleText3 + db "@" diff --git a/scripts/silphco9.asm b/scripts/silphco9.asm new file mode 100755 index 00000000..ee6e6fdc --- /dev/null +++ b/scripts/silphco9.asm @@ -0,0 +1,248 @@ +SilphCo9Script: ; 5d7bb (17:57bb) + call SilphCo9Script_5d7d1 + call EnableAutoTextBoxDrawing + ld hl, SilphCo9TrainerHeaders + ld de, SilphCo9ScriptPointers + ld a, [W_SILPHCO9CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SILPHCO9CURSCRIPT], a + ret + +SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, DataTable_5d82e ; $582e + call SilphCo9Script_5d837 + call SilphCo9Script_5d863 + ld a, [$d834] + bit 0, a + jr nz, .asm_5d7f8 + push af + ld a, $5f + ld [$d09f], a + ld bc, $401 + ld a, $17 + call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + pop af +.asm_5d7f8 + bit 1, a + jr nz, .asm_5d80b + push af + ld a, $54 + ld [$d09f], a + ld bc, $209 + ld a, $17 + call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + pop af +.asm_5d80b + bit 2, a + jr nz, .asm_5d81e + push af + ld a, $54 + ld [$d09f], a + ld bc, $509 + ld a, $17 + call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + pop af +.asm_5d81e + bit 3, a + ret nz + ld a, $5f + ld [$d09f], a + ld bc, $605 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +DataTable_5d82e: ; 5d82e (17:582e) + db $04,$01,$02,$09,$05,$09,$06,$05,$FF + +SilphCo9Script_5d837: ; 5d837 (17:5837) + push hl + ld hl, $d73f + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + xor a + ld [$ffe0], a + pop hl +.asm_5d843 + ld a, [hli] + cp $ff + jr z, .asm_5d85f + push hl + ld hl, $ffe0 + inc [hl] + pop hl + cp b + jr z, .asm_5d854 + inc hl + jr .asm_5d843 +.asm_5d854 + ld a, [hli] + cp c + jr nz, .asm_5d843 + ld hl, $d73f + xor a + ld [hli], a + ld [hl], a + ret +.asm_5d85f + xor a + ld [$ffe0], a + ret + +SilphCo9Script_5d863: ; 5d863 (17:5863) + ld hl, $d834 + ld a, [$ffe0] + and a + ret z + cp $1 + jr nz, .asm_5d871 + set 0, [hl] + ret +.asm_5d871 + cp $2 + jr nz, .asm_5d878 + set 1, [hl] + ret +.asm_5d878 + cp $3 + jr nz, .asm_5d87f + set 2, [hl] + ret +.asm_5d87f + cp $4 + ret nz + set 3, [hl] + ret + +SilphCo9ScriptPointers: ; 5d885 (17:5885) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SilphCo9TextPointers: ; 5d88b (17:588b) + dw SilphCo9Text1 + dw SilphCo9Text2 + dw SilphCo9Text3 + dw SilphCo9Text4 + +SilphCo9TrainerHeaders: ; 5d893 (17:5893) +SilphCo9TrainerHeader0: ; 5d893 (17:5893) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d833 ; flag's byte + dw SilphCo9BattleText1 ; 0x5912 TextBeforeBattle + dw SilphCo9AfterBattleText1 ; 0x591c TextAfterBattle + dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle + dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle + +SilphCo9TrainerHeader1: ; 5d89f (17:589f) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d833 ; flag's byte + dw SilphCo9BattleText2 ; 0x5921 TextBeforeBattle + dw SilphCo9AfterBattleText2 ; 0x592b TextAfterBattle + dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle + dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle + +SilphCo9TrainerHeader2: ; 5d8ab (17:58ab) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d833 ; flag's byte + dw SilphCo9BattleText3 ; 0x5930 TextBeforeBattle + dw SilphCo9AfterBattleText3 ; 0x593a TextAfterBattle + dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle + dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle + + db $ff + +SilphCo9Text1: ; 5d8b8 (17:58b8) + db $08 ; asm + ld a, [$d838] + bit 7, a + jr nz, .asm_a14c3 ; 0x5d8be + ld hl, SilphCo9Text_5d8e5 + call PrintText + ld a, $7 + call Predef + call GBFadeOut2 + call Delay3 + call GBFadeIn2 + ld hl, SilphCo9Text_5d8ea + call PrintText + jr .asm_b6e28 ; 0x5d8da +.asm_a14c3 ; 0x5d8dc + ld hl, SilphCo9Text_5d8ef + call PrintText +.asm_b6e28 ; 0x5d8e2 + jp TextScriptEnd + +SilphCo9Text_5d8e5: ; 5d8e5 (17:58e5) + TX_FAR _SilphCo9Text_5d8e5 + db "@" + +SilphCo9Text_5d8ea: ; 5d8ea (17:58ea) + TX_FAR _SilphCo9Text_5d8ea + db "@" + +SilphCo9Text_5d8ef: ; 5d8ef (17:58ef) + TX_FAR _SilphCo9Text_5d8ef + db "@" + +SilphCo9Text2: ; 5d8f4 (17:58f4) + db $08 ; asm + ld hl, SilphCo9TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SilphCo9Text3: ; 5d8fe (17:58fe) + db $08 ; asm + ld hl, SilphCo9TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SilphCo9Text4: ; 5d908 (17:5908) + db $08 ; asm + ld hl, SilphCo9TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SilphCo9BattleText1: ; 5d912 (17:5912) + TX_FAR _SilphCo9BattleText1 + db "@" + +SilphCo9EndBattleText1: ; 5d917 (17:5917) + TX_FAR _SilphCo9EndBattleText1 + db "@" + +SilphCo9AfterBattleText1: ; 5d91c (17:591c) + TX_FAR _SilphCo9AfterBattleText1 + db "@" + +SilphCo9BattleText2: ; 5d921 (17:5921) + TX_FAR _SilphCo9BattleText2 + db "@" + +SilphCo9EndBattleText2: ; 5d926 (17:5926) + TX_FAR _SilphCo9EndBattleText2 + db "@" + +SilphCo9AfterBattleText2: ; 5d92b (17:592b) + TX_FAR _SilphCo9AfterBattleText2 + db "@" + +SilphCo9BattleText3: ; 5d930 (17:5930) + TX_FAR _SilphCo9BattleText3 + db "@" + +SilphCo9EndBattleText3: ; 5d935 (17:5935) + TX_FAR _SilphCo9EndBattleText3 + db "@" + +SilphCo9AfterBattleText3: ; 5d93a (17:593a) + TX_FAR _SilphCo9AfterBattleText3 + db "@" diff --git a/scripts/silphcoelevator.asm b/scripts/silphcoelevator.asm new file mode 100755 index 00000000..7986de3d --- /dev/null +++ b/scripts/silphcoelevator.asm @@ -0,0 +1,80 @@ +SilphCoElevatorScript: ; 457c0 (11:57c0) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + push hl + call nz, SilphCoElevatorScript_457dc + pop hl + bit 7, [hl] + res 7, [hl] + call nz, SilphCoElevatorScript_45827 + xor a + ld [$cf0c], a + inc a + ld [$cc3c], a + ret + +SilphCoElevatorScript_457dc: ; 457dc (11:57dc) + ld hl, $d3af + ld a, [$d73b] + ld b, a + ld a, [$d73c] + ld c, a + call SilphCoElevatorScript_457ea + +SilphCoElevatorScript_457ea: ; 457ea (11:57ea) + inc hl + inc hl + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ret + +SilphCoElevatorScript_457f1: ; 457f1 (11:57f1) + ld hl, SilphCoElavatorFloors ; $5804 + call LoadItemList + ld hl, SilphCoElevatorWarpMaps ; $5811 + ld de, $cc5b + ld bc, $16 + call CopyData + ret + +SilphCoElavatorFloors: ; 45804 (11:45804) + db $0B ; num elements in list + db $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $60 ; "1F", "2F", "3F", "4F", ... , "11F" + db $FF ; terminator + +SilphCoElevatorWarpMaps: ; 45811 (11:45811) +; first byte is warp number +; second byte is map number +; These specify where the player goes after getting out of the elevator. + db $03, SILPH_CO_1F + db $02, SILPH_CO_2F + db $02, SILPH_CO_3F + db $02, SILPH_CO_4F + db $02, SILPH_CO_5F + db $02, SILPH_CO_6F + db $02, SILPH_CO_7F + db $02, SILPH_CO_8F + db $02, SILPH_CO_9F + db $02, SILPH_CO_10F + db $01, SILPH_CO_11F + +SilphCoElevatorScript_45827: ; 45827 (11:5827) + call Delay3 + ld b, BANK(ShakeElevator) + ld hl, ShakeElevator + call Bankswitch + ret + +SilphCoElevatorTextPointers: ; 45833 (11:5833) + dw SilphCoElevatorText1 + +SilphCoElevatorText1: ; 45835 (11:5835) + db $08 ; asm + call SilphCoElevatorScript_457f1 + ld hl, SilphCoElevatorWarpMaps ; $5811 + ld a, $61 + call Predef + jp TextScriptEnd diff --git a/scripts/ssanne1.asm b/scripts/ssanne1.asm new file mode 100755 index 00000000..4814dfe9 --- /dev/null +++ b/scripts/ssanne1.asm @@ -0,0 +1,15 @@ +SSAnne1Script: ; 61265 (18:5265) + call EnableAutoTextBoxDrawing + ret + +SSAnne1TextPointers: ; 61269 (18:5269) + dw SSAnne1Text1 + dw SSAnne1Text2 + +SSAnne1Text1: ; 6126d (18:526d) + TX_FAR _SSAnne1Text1 + db "@" + +SSAnne1Text2: ; 61272 (18:5272) + TX_FAR _SSAnne1Text2 + db "@" diff --git a/scripts/ssanne10.asm b/scripts/ssanne10.asm new file mode 100755 index 00000000..eaef6de3 --- /dev/null +++ b/scripts/ssanne10.asm @@ -0,0 +1,202 @@ +SSAnne10Script: ; 61d55 (18:5d55) + call EnableAutoTextBoxDrawing + ld hl, SSAnne10TrainerHeaders + ld de, SSAnne10ScriptPointers + ld a, [W_SSANNE10CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SSANNE10CURSCRIPT], a + ret + +SSAnne10ScriptPointers: ; 61d68 (18:5d68) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SSAnne10TextPointers: ; 61d6e (18:5d6e) + dw SSAnne10Text1 + dw SSAnne10Text2 + dw SSAnne10Text3 + dw SSAnne10Text4 + dw SSAnne10Text5 + dw SSAnne10Text6 + dw SSAnne10Text7 + dw SSAnne10Text8 + dw Predef5CText + dw Predef5CText + dw Predef5CText + +SSAnne10TrainerHeaders: ; 61d84 (18:5d84) +SSAnne10TrainerHeader0: ; 61d84 (18:5d84) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d809 ; flag's byte + dw SSAnne10BattleText1 ; 0x5e16 TextBeforeBattle + dw SSAnne10AfterBattleText1 ; 0x5e20 TextAfterBattle + dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle + dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle + +SSAnne10TrainerHeader1: ; 61d90 (18:5d90) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d809 ; flag's byte + dw SSAnne10BattleText2 ; 0x5e25 TextBeforeBattle + dw SSAnne10AfterBattleText2 ; 0x5e2f TextAfterBattle + dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle + dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle + +SSAnne10TrainerHeader2: ; 61d9c (18:5d9c) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d809 ; flag's byte + dw SSAnne10BattleText3 ; 0x5e34 TextBeforeBattle + dw SSAnne10AfterBattleText3 ; 0x5e3e TextAfterBattle + dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle + dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle + +SSAnne10TrainerHeader3: ; 61da8 (18:5da8) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d809 ; flag's byte + dw SSAnne10BattleText4 ; 0x5e43 TextBeforeBattle + dw SSAnne10AfterBattleText4 ; 0x5e4d TextAfterBattle + dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle + dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle + +SSAnne10TrainerHeader4: ; 61db4 (18:5db4) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d809 ; flag's byte + dw SSAnne10BattleText5 ; 0x5e52 TextBeforeBattle + dw SSAnne10AfterBattleText5 ; 0x5e5c TextAfterBattle + dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle + dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle + +SSAnne10TrainerHeader5: ; 61dc0 (18:5dc0) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d809 ; flag's byte + dw SSAnne10BattleText6 ; 0x5e61 TextBeforeBattle + dw SSAnne10AfterBattleText6 ; 0x5e6b TextAfterBattle + dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle + dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle + + db $ff + +SSAnne10Text1: ; 61dcd (18:5dcd) + db $08 ; asm + ld hl, SSAnne10TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SSAnne10Text2: ; 61dd7 (18:5dd7) + db $08 ; asm + ld hl, SSAnne10TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SSAnne10Text3: ; 61de1 (18:5de1) + db $08 ; asm + ld hl, SSAnne10TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SSAnne10Text4: ; 61deb (18:5deb) + db $08 ; asm + ld hl, SSAnne10TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SSAnne10Text5: ; 61df5 (18:5df5) + db $08 ; asm + ld hl, SSAnne10TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +SSAnne10Text6: ; 61dff (18:5dff) + db $08 ; asm + ld hl, SSAnne10TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +SSAnne10Text8: ; 61e09 (18:5e09) + TX_FAR _SSAnne10Text8 + db $8 ; 0x61e0d + ld a, MACHOKE + call PlayCry + jp TextScriptEnd + +SSAnne10BattleText1: ; 61e16 (18:5e16) + TX_FAR _SSAnne10BattleText1 + db "@" + +SSAnne10EndBattleText1: ; 61e1b (18:5e1b) + TX_FAR _SSAnne10EndBattleText1 + db "@" + +SSAnne10AfterBattleText1: ; 61e20 (18:5e20) + TX_FAR _SSAnne10AfterBattleText1 + db "@" + +SSAnne10BattleText2: ; 61e25 (18:5e25) + TX_FAR _SSAnne10BattleText2 + db "@" + +SSAnne10EndBattleText2: ; 61e2a (18:5e2a) + TX_FAR _SSAnne10EndBattleText2 + db "@" + +SSAnne10AfterBattleText2: ; 61e2f (18:5e2f) + TX_FAR _SSAnne10AfterBattleText2 + db "@" + +SSAnne10BattleText3: ; 61e34 (18:5e34) + TX_FAR _SSAnne10BattleText3 + db "@" + +SSAnne10EndBattleText3: ; 61e39 (18:5e39) + TX_FAR _SSAnne10EndBattleText3 + db "@" + +SSAnne10AfterBattleText3: ; 61e3e (18:5e3e) + TX_FAR _SSAnne10AfterBattleText3 + db "@" + +SSAnne10BattleText4: ; 61e43 (18:5e43) + TX_FAR _SSAnne10BattleText4 + db "@" + +SSAnne10EndBattleText4: ; 61e48 (18:5e48) + TX_FAR _SSAnne10EndBattleText4 + db "@" + +SSAnne10AfterBattleText4: ; 61e4d (18:5e4d) + TX_FAR _SSAnne10AfterBattleText4 + db "@" + +SSAnne10BattleText5: ; 61e52 (18:5e52) + TX_FAR _SSAnne10BattleText5 + db "@" + +SSAnne10EndBattleText5: ; 61e57 (18:5e57) + TX_FAR _SSAnne10EndBattleText5 + db "@" + +SSAnne10AfterBattleText5: ; 61e5c (18:5e5c) + TX_FAR _SSAnne10AfterBattleText5 + db "@" + +SSAnne10BattleText6: ; 61e61 (18:5e61) + TX_FAR _SSAnne10BattleText6 + db "@" + +SSAnne10EndBattleText6: ; 61e66 (18:5e66) + TX_FAR _SSAnne10EndBattleText6 + db "@" + +SSAnne10AfterBattleText6: ; 61e6b (18:5e6b) + TX_FAR _SSAnne10AfterBattleText6 + db "@" + +SSAnne10Text7: ; 61e70 (18:5e70) + TX_FAR _SSAnne10Text7 + db "@" diff --git a/scripts/ssanne2.asm b/scripts/ssanne2.asm new file mode 100755 index 00000000..6405a173 --- /dev/null +++ b/scripts/ssanne2.asm @@ -0,0 +1,210 @@ +SSAnne2Script: ; 6139f (18:539f) + call EnableAutoTextBoxDrawing + ld hl, SSAnne2ScriptPointers + ld a, [W_SSANNE2CURSCRIPT] + jp CallFunctionInTable + +SSAnne2Script_613ab: ; 613ab (18:53ab) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_SSANNE2CURSCRIPT], a + ret + +SSAnne2ScriptPointers: ; 613b3 (18:53b3) + dw SSAnne2Script0 + dw SSAnne2Script1 + dw SSAnne2Script2 + dw SSAnne2Script3 + dw SSAnne2Script4 + +SSAnne2Script4: ; 613bd (18:53bd) + ret + +SSAnne2Script0: ; 613be (18:53be) + ld hl, CoordsData_61411 ; $5411 + call ArePlayerCoordsInArray + ret nc + ld a, $ff + ld [$c0ee], a + call PlaySound + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic + ld a, [$cd3d] + ld [$ffdb], a + ld a, $71 + ld [$cc4d], a + ld a, $15 + call Predef + call Delay3 + ld a, $2 + ld [$ff8c], a + call SetSpriteMovementBytesToFF + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, [$ffdb] + cp $2 + jr nz, .asm_61400 ; 0x613f9 $5 + ld de, MovementData_6140c + jr .asm_61403 ; 0x613fe $3 +.asm_61400 + ld de, MovementData_6140d +.asm_61403 + call MoveSprite + ld a, $1 + ld [W_SSANNE2CURSCRIPT], a + ret + +MovementData_6140c: ; 6140c (18:540c) + db $00 + +MovementData_6140d: ; 6140d (18:540d) + db $00,$00,$00,$FF + +CoordsData_61411: ; 61411 (18:5411) + db $08,$24,$08,$25,$FF + +SSAnne2Script_61416: ; 61416 (18:5416) + ld a, [W_XCOORD] ; $d362 + cp $25 + jr nz, .asm_61426 + ld a, $2 + ld [$d528], a + ld a, $c + jr .asm_61427 +.asm_61426 + xor a +.asm_61427 + ld [$ff8d], a + ld a, $2 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + jp Func_34a6 + +SSAnne2Script1: ; 61430 (18:5430) + ld a, [$d730] + bit 0, a + ret nz + call SSAnne2Script_61416 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $2 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, SONY2 + $c8 + ld [W_CUROPPONENT], a + + ; select which team to use during the encounter + ld a, [W_RIVALSTARTER] + cp SQUIRTLE + jr nz, .NotSquirtle ; 0x61451 $4 + ld a, $1 + jr .done +.NotSquirtle + cp BULBASAUR + jr nz, .Charmander ; 0x61459 $4 + ld a, $2 + jr .done +.Charmander + ld a, $3 +.done + ld [W_TRAINERNO], a + + call SSAnne2Script_61416 + ld a, $2 + ld [W_SSANNE2CURSCRIPT], a + ret + +SSAnne2Script2: ; 6146d (18:546d) + ld a, [$d057] + cp $ff + jp z, SSAnne2Script_613ab + call SSAnne2Script_61416 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $3 + ld [$ff8c], a + call DisplayTextID + ld a, $2 + ld [$ff8c], a + call SetSpriteMovementBytesToFF + ld a, [W_XCOORD] + cp $25 + jr nz, .asm_61497 ; 0x61490 $5 + ld de, MovementData_614b9 + jr .asm_6149a ; 0x61495 $3 +.asm_61497 + ld de, MovementData_614b7 +.asm_6149a + ld a, $2 + ld [$ff8c], a + call MoveSprite + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $3 + ld [W_SSANNE2CURSCRIPT], a + ret + +MovementData_614b7: ; 614b7 (18:54b7) + db $C0,$00 + +MovementData_614b9: ; 614b9 (18:54b9) + db $00,$00,$00,$00,$FF + +SSAnne2Script3: ; 614be (18:54be) + ld a, [$d730] + bit 0, a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $71 + ld [$cc4d], a + ld a, $11 + call Predef + call Func_2307 + ld a, $4 + ld [W_SSANNE2CURSCRIPT], a + ret + +SSAnne2TextPointers: ; 614db (18:54db) + dw SSAnne2Text1 + dw SSAnne2Text2 + dw SSAnne2Text3 + +SSAnne2Text1: ; 614e1 (18:54e1) + TX_FAR _SSAnne2Text1 + db "@" + +SSAnne2Text2: ; 614e6 (18:54e6) + db $8 + ld hl, SSAnneRivalBeforeBattleText + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, SSAnneRivalDefeatedText + ld de, SSAnneRivalWonText + call PreBattleSaveRegisters + jp TextScriptEnd + +SSAnneRivalBeforeBattleText: ; 61500 (18:5500) + TX_FAR _SSAnneRivalBeforeBattleText + db "@" + +SSAnneRivalDefeatedText: ; 61505 (18:5505) + TX_FAR _SSAnneRivalDefeatedText + db "@" + +SSAnneRivalWonText: ; 6150a (18:550a) + TX_FAR _SSAnneRivalWonText + db "@" + +SSAnne2Text3: ; 6150f (18:550f) + TX_FAR _SSAnneRivalCaptainText + db "@" diff --git a/scripts/ssanne3.asm b/scripts/ssanne3.asm new file mode 100755 index 00000000..56cbdd9c --- /dev/null +++ b/scripts/ssanne3.asm @@ -0,0 +1,9 @@ +SSAnne3Script: ; 44932 (11:4932) + jp EnableAutoTextBoxDrawing + +SSAnne3TextPointers: ; 44935 (11:4935) + dw SSAnne3Text1 + +SSAnne3Text1: ; 44937 (11:4937) + TX_FAR _SSAnne3Text1 + db "@" diff --git a/scripts/ssanne4.asm b/scripts/ssanne4.asm new file mode 100755 index 00000000..6cc0e7b9 --- /dev/null +++ b/scripts/ssanne4.asm @@ -0,0 +1,5 @@ +SSAnne4Script: ; 6162e (18:562e) + jp EnableAutoTextBoxDrawing + +SSAnne4TextPointers: ; 61631 (18:5631) + db "@" diff --git a/scripts/ssanne5.asm b/scripts/ssanne5.asm new file mode 100755 index 00000000..034dd26a --- /dev/null +++ b/scripts/ssanne5.asm @@ -0,0 +1,89 @@ +SSAnne5Script: ; 616ae (18:56ae) + call EnableAutoTextBoxDrawing + ld hl, SSAnne5TrainerHeader0 ; $56d1 + ld de, SSAnne5ScriptPointers + ld a, [W_SSANNE5CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SSANNE5CURSCRIPT], a + ret + +SSAnne5ScriptPointers: ; 616c1 (18:56c1) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SSAnne5TextPointers: ; 616c7 (18:56c7) + dw SSAnne5Text1 + dw SSAnne5Text2 + dw SSAnne5Text3 + dw SSAnne5Text4 + dw SSAnne5Text5 + +SSAnne5TrainerHeaders: ; 616d1 (18:56d1) +SSAnne5TrainerHeader0: ; 616d1 (18:56d1) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7ff ; flag's byte + dw SSAnne5BattleText1 ; 0x5703 TextBeforeBattle + dw SSAnne5AfterBattleText1 ; 0x570d TextAfterBattle + dw SSAnne5EndBattleText1 ; 0x5708 TextEndBattle + dw SSAnne5EndBattleText1 ; 0x5708 TextEndBattle + +SSAnne5TrainerHeader1: ; 616dd (18:56dd) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7ff ; flag's byte + dw SSAnne5BattleText2 ; 0x571c TextBeforeBattle + dw SSAnne5AfterBattleText2 ; 0x5726 TextAfterBattle + dw SSAnne5EndBattleText2 ; 0x5721 TextEndBattle + dw SSAnne5EndBattleText2 ; 0x5721 TextEndBattle + + db $ff + +SSAnne5Text1: ; 616ea (18:56ea) + TX_FAR _SSAnne5Text1 + db "@" + +SSAnne5Text2: ; 616ef (18:56ef) + TX_FAR _SSAnne5Text2 + db "@" + +SSAnne5Text3: ; 616f4 (18:56f4) + TX_FAR _SSAnne5Text3 + db "@" + +SSAnne5Text4: ; 616f9 (18:56f9) + db $08 ; asm + ld hl, SSAnne5TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SSAnne5BattleText1: ; 61703 (18:5703) + TX_FAR _SSAnne5BattleText1 + db "@" + +SSAnne5EndBattleText1: ; 61708 (18:5708) + TX_FAR _SSAnne5EndBattleText1 + db "@" + +SSAnne5AfterBattleText1: ; 6170d (18:570d) + TX_FAR _SSAnne5AfterBattleText1 + db "@" + +SSAnne5Text5: ; 61712 (18:5712) + db $08 ; asm + ld hl, SSAnne5TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SSAnne5BattleText2: ; 6171c (18:571c) + TX_FAR _SSAnne5BattleText2 + db "@" + +SSAnne5EndBattleText2: ; 61721 (18:5721) + TX_FAR _SSAnne5EndBattleText2 + db "@" + +SSAnne5AfterBattleText2: ; 61726 (18:5726) + TX_FAR _SSAnne5AfterBattleText2 + db "@" diff --git a/scripts/ssanne6.asm b/scripts/ssanne6.asm new file mode 100755 index 00000000..d3ec191f --- /dev/null +++ b/scripts/ssanne6.asm @@ -0,0 +1,72 @@ +SSAnne6Script: ; 617b3 (18:57b3) + call EnableAutoTextBoxDrawing + ret + +SSAnne6TextPointers: ; 617b7 (18:57b7) + dw SSAnne6Text1 + dw SSAnne6Text2 + dw SSAnne6Text3 + dw SSAnne6Text4 + dw SSAnne6Text5 + dw SSAnne6Text6 + dw SSAnne6Text7 + +SSAnne6Text1: ; 617c5 (18:57c5) + TX_FAR _SSAnne6Text1 + db "@" + +SSAnne6Text2: ; 617ca (18:57ca) + TX_FAR _SSAnne6Text2 + db "@" + +SSAnne6Text3: ; 617cf (18:57cf) + TX_FAR _SSAnne6Text3 + db "@" + +SSAnne6Text4: ; 617d4 (18:57d4) + TX_FAR _SSAnne6Text4 + db "@" + +SSAnne6Text5: ; 617d9 (18:57d9) + TX_FAR _SSAnne6Text5 + db "@" + +SSAnne6Text6: ; 617de (18:57de) + TX_FAR _SSAnne6Text6 + db "@" + +SSAnne6Text7: ; 617e3 (18:57e3) + db $08 ; asm + ld hl, SSAnne6Text_61807 + call PrintText + ldh a, [$d3] + bit 7, a + jr z, .asm_93eb1 ; 0x617ee + ld hl, SSAnne6Text_6180c + jr .asm_63292 ; 0x617f3 +.asm_93eb1 ; 0x617f5 + bit 4, a + jr z, .asm_7436c ; 0x617f7 + ld hl, SSAnne6Text_61811 + jr .asm_63292 ; 0x617fc +.asm_7436c ; 0x617fe + ld hl, SSAnne6Text_61816 +.asm_63292 ; 0x61801 + call PrintText + jp TextScriptEnd + +SSAnne6Text_61807: ; 61807 (18:5807) + TX_FAR _SSAnne6Text_61807 + db "@" + +SSAnne6Text_6180c: ; 6180c (18:580c) + TX_FAR _SSAnne6Text_6180c + db "@" + +SSAnne6Text_61811: ; 61811 (18:5811) + TX_FAR _SSAnne6Text_61811 + db "@" + +SSAnne6Text_61816: ; 61816 (18:5816) + TX_FAR _SSAnne6Text_61816 + db "@" diff --git a/scripts/ssanne7.asm b/scripts/ssanne7.asm new file mode 100755 index 00000000..8e88417f --- /dev/null +++ b/scripts/ssanne7.asm @@ -0,0 +1,96 @@ +SSAnne7Script: ; 61895 (18:5895) + call SSAnne7Script_6189b + jp EnableAutoTextBoxDrawing + +SSAnne7Script_6189b: ; 6189b (18:589b) + ld a, [$d803] + bit 1, a + ret nz + ld hl, $d72d + set 5, [hl] + ret + +SSAnne7TextPointers: ; 618a7 (18:58a7) + dw SSAnne7Text1 + dw SSAnne7Text2 + dw SSAnne7Text3 + +SSAnne7Text1: ; 618ad (18:58ad) + db $08 ; asm + ld a, [$d803] + bit 0, a + jr nz, .asm_797c4 ; 0x618b3 + ld hl, SSAnne7RubText + call PrintText + ld hl, ReceivingHM01Text + call PrintText + ld bc, (HM_01 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedHM01Text + call PrintText + ld hl, $d803 + set 0, [hl] + jr .asm_0faf5 ; 0x618d4 +.BagFull + ld hl, HM01NoRoomText + call PrintText + ld hl, $d72d + set 5, [hl] + jr .asm_0faf5 ; 0x618e1 +.asm_797c4 ; 0x618e3 + ld hl, SSAnne7Text_61932 + call PrintText +.asm_0faf5 ; 0x618e9 + jp TextScriptEnd + +SSAnne7RubText: ; 618ec (18:58ec) + TX_FAR _SSAnne7RubText + db $8 + ld a, [$c0ef] + cp $1f + ld [$c0f0], a + jr nz, .asm_61908 ; 0x618f9 $d + ld a, $ff + ld [$c0ee], a + call PlaySound + ld a, Bank(Func_9876) + ld [$c0ef], a +.asm_61908 + ld a, MUSIC_PKMN_HEALED + ld [$c0ee], a + call PlaySound +.asm_61910 + ld a, [$c026] + cp MUSIC_PKMN_HEALED + jr z, .asm_61910 ; 0x61915 $f9 + call Func_2307 + ld hl, $d803 + set 1, [hl] + ld hl, $d72d + res 5, [hl] + jp TextScriptEnd + +ReceivingHM01Text: ; 61927 (18:5927) + TX_FAR _ReceivingHM01Text + db "@" + +ReceivedHM01Text: ; 6192c (18:592c) + TX_FAR _ReceivedHM01Text + db $11, "@" + +SSAnne7Text_61932: ; 61932 (18:5932) + TX_FAR _SSAnne7Text_61932 + db "@" + +HM01NoRoomText: ; 61937 (18:5937) + TX_FAR _HM01NoRoomText + db "@" + +SSAnne7Text2: ; 6193c (18:593c) + TX_FAR _SSAnne7Text2 + db "@" + +SSAnne7Text3: ; 61941 (18:5941) + TX_FAR _SSAnne7Text3 + db "@" diff --git a/scripts/ssanne8.asm b/scripts/ssanne8.asm new file mode 100755 index 00000000..31feb058 --- /dev/null +++ b/scripts/ssanne8.asm @@ -0,0 +1,164 @@ +SSAnne8Script: ; 61976 (18:5976) + call EnableAutoTextBoxDrawing + ld hl, SSAnne8TrainerHeaders + ld de, SSAnne8ScriptPointers + ld a, [W_SSANNE8CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SSANNE8CURSCRIPT], a + ret + +SSAnne8ScriptPointers: ; 61989 (18:5989) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SSAnne8TextPointers: ; 6198f (18:598f) + dw SSAnne8Text1 + dw SSAnne8Text2 + dw SSAnne8Text3 + dw SSAnne8Text4 + dw SSAnne8Text5 + dw SSAnne8Text6 + dw SSAnne8Text7 + dw SSAnne8Text8 + dw SSAnne8Text9 + dw Predef5CText + dw SSAnne8Text11 + +SSAnne8TrainerHeaders: ; 619a5 (18:59a5) +SSAnne8TrainerHeader0: ; 619a5 (18:59a5) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d805 ; flag's byte + dw SSAnne8BattleText1 ; 0x5a0b TextBeforeBattle + dw SSAnne8AfterBattleText1 ; 0x5a15 TextAfterBattle + dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle + dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle + +SSAnne8TrainerHeader1: ; 619b1 (18:59b1) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d805 ; flag's byte + dw SSAnne8BattleText2 ; 0x5a1a TextBeforeBattle + dw SSAnne8AfterBattleText2 ; 0x5a24 TextAfterBattle + dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle + dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle + +SSAnne8TrainerHeader2: ; 619bd (18:59bd) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d805 ; flag's byte + dw SSAnne8BattleText3 ; 0x5a29 TextBeforeBattle + dw SSAnne8AfterBattleText3 ; 0x5a33 TextAfterBattle + dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle + dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle + +SSAnne8TrainerHeader3: ; 619c9 (18:59c9) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d805 ; flag's byte + dw SSAnne8BattleText4 ; 0x5a38 TextBeforeBattle + dw SSAnne8AfterBattleText4 ; 0x5a42 TextAfterBattle + dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle + dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle + + db $ff + +SSAnne8Text1: ; 619d6 (18:59d6) + db $08 ; asm + ld hl, SSAnne8TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SSAnne8Text2: ; 619e0 (18:59e0) + db $08 ; asm + ld hl, SSAnne8TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SSAnne8Text3: ; 619ea (18:59ea) + db $08 ; asm + ld hl, SSAnne8TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SSAnne8Text4: ; 619f4 (18:59f4) + db $08 ; asm + ld hl, SSAnne8TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SSAnne8Text8: ; 619fe (18:59fe) + TX_FAR _SSAnne8Text8 + db $08 ; asm + ld a, WIGGLYTUFF + call PlayCry + jp TextScriptEnd + +SSAnne8BattleText1: ; 61a0b (18:5a0b) + TX_FAR _SSAnne8BattleText1 + db "@" + +SSAnne8EndBattleText1: ; 61a10 (18:5a10) + TX_FAR _SSAnne8EndBattleText1 + db "@" + +SSAnne8AfterBattleText1: ; 61a15 (18:5a15) + TX_FAR _SSAnne8AfterBattleText1 + db "@" + +SSAnne8BattleText2: ; 61a1a (18:5a1a) + TX_FAR _SSAnne8BattleText2 + db "@" + +SSAnne8EndBattleText2: ; 61a1f (18:5a1f) + TX_FAR _SSAnne8EndBattleText2 + db "@" + +SSAnne8Text_61a24: ; 61a24 (18:5a24) + TX_FAR _SSAnne8Text_61a24 + db "@" + +SSAnne8BattleText3: ; 61a29 (18:5a29) + TX_FAR _SSAnne8BattleText3 + db "@" + +SSAnne8EndBattleText3: ; 61a2e (18:5a2e) + TX_FAR _SSAnne8EndBattleText3 + db "@" + +SSAnne8AfterBattleText3: ; 61a33 (18:5a33) + TX_FAR _SSAnne8AfterBattleText3 + db "@" + +SSAnne8BattleText4: ; 61a38 (18:5a38) + TX_FAR _SSAnne8BattleText4 + db "@" + +SSAnne8EndBattleText4: ; 61a3d (18:5a3d) + TX_FAR _SSAnne8EndBattleText4 + db "@" + +SSAnne8AfterBattleText4: ; 61a42 (18:5a42) + TX_FAR _SSAnne8AfterBattleText4 + db "@" + +SSAnne8Text5: ; 61a47 (18:5a47) + TX_FAR _SSAnne8Text5 + db "@" + +SSAnne8Text6: ; 61a4c (18:5a4c) + TX_FAR _SSAnne8Text6 + db "@" + +SSAnne8Text7: ; 61a51 (18:5a51) + TX_FAR _SSAnne8Text7 + db "@" + +SSAnne8Text9: ; 61a56 (18:5a56) + TX_FAR _SSAnne8Text9 + db "@" + +SSAnne8Text11: ; 61a5b (18:5a5b) + TX_FAR _SSAnne8Text11 + db "@" diff --git a/scripts/ssanne9.asm b/scripts/ssanne9.asm new file mode 100755 index 00000000..9b055e3f --- /dev/null +++ b/scripts/ssanne9.asm @@ -0,0 +1,216 @@ +SSAnne9Script: ; 61b4b (18:5b4b) + ld a, $1 + ld [$cf0c], a + xor a + ld [$cc3c], a + ld hl, SSAnne9TrainerHeaders + ld de, SSAnne9ScriptPointers + ld a, [W_SSANNE9CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_SSANNE9CURSCRIPT], a + ret + +SSAnne9ScriptPointers: ; 61b64 (18:5b64) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +SSAnne9TextPointers: ; 61b6a (18:5b6a) + dw SSAnne9Text1 + dw SSAnne9Text2 + dw SSAnne9Text3 + dw SSAnne9Text4 + dw SSAnne9Text5 + dw Predef5CText + dw SSAnne9Text7 + dw SSAnne9Text8 + dw Predef5CText + dw SSAnne9Text10 + dw SSAnne9Text11 + dw SSAnne9Text12 + dw SSAnne9Text13 + +SSAnne9TrainerHeaders: ; 61b84 (18:5b84) +SSAnne9TrainerHeader0: ; 61b84 (18:5b84) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d807 ; flag's byte + dw SSAnne9BattleText1 ; 0x5c51 TextBeforeBattle + dw SSAnne9AfterBattleText1 ; 0x5c5b TextAfterBattle + dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle + dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle + +SSAnne9TrainerHeader1: ; 61b90 (18:5b90) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d807 ; flag's byte + dw SSAnne9BattleText2 ; 0x5c60 TextBeforeBattle + dw SSAnne9AfterBattleText2 ; 0x5c6a TextAfterBattle + dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle + dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle + +SSAnne9TrainerHeader2: ; 61b9c (18:5b9c) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d807 ; flag's byte + dw SSAnne9BattleText3 ; 0x5c6f TextBeforeBattle + dw SSAnne9AfterBattleText3 ; 0x5c79 TextAfterBattle + dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle + dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle + +SSAnne9TrainerHeader3: ; 61ba8 (18:5ba8) + db $4 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d807 ; flag's byte + dw SSAnne9BattleText4 ; 0x5c7e TextBeforeBattle + dw SSAnne9AfterBattleText4 ; 0x5c88 TextAfterBattle + dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle + dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle + + db $ff + +SSAnne9Text1: ; 61bb5 (18:5bb5) + db $08 ; asm + ld hl, SSAnne9TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +SSAnne9Text2: ; 61bbf (18:5bbf) + db $08 ; asm + ld hl, SSAnne9TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +SSAnne9Text3: ; 61bc9 (18:5bc9) + db $08 ; asm + ld hl, SSAnne9TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +SSAnne9Text4: ; 61bd3 (18:5bd3) + db $08 ; asm + ld hl, SSAnne9TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +SSAnne9Text5: ; 61bdd (18:5bdd) + db $08 ; asm + call SaveScreenTilesToBuffer1 + ld hl, SSAnne9Text_61bf2 + call PrintText + call LoadScreenTilesFromBuffer1 + ld a, SNORLAX + call DisplayPokedex + jp TextScriptEnd + +SSAnne9Text_61bf2: ; 61bf2 (18:5bf2) + TX_FAR _SSAnne9Text_61bf2 + db "@" + +SSAnne9Text7: ; 61bf7 (18:5bf7) + db $08 ; asm + ld hl, SSAnne9Text_61c01 + call PrintText + jp TextScriptEnd + +SSAnne9Text_61c01: ; 61c01 (18:5c01) + TX_FAR _SSAnne9Text_61c01 + db "@" + +SSAnne9Text8: ; 61c06 (18:5c06) + db $08 ; asm + ld hl, SSAnne9Text_61c10 + call PrintText + jp TextScriptEnd + +SSAnne9Text_61c10: ; 61c10 (18:5c10) + TX_FAR _SSAnne9Text_61c10 + db "@" + +SSAnne9Text10: ; 61c15 (18:5c15) + db $08 ; asm + ld hl, SSAnne9Text_61c1f + call PrintText + jp TextScriptEnd + +SSAnne9Text_61c1f: ; 61c1f (18:5c1f) + TX_FAR _SSAnne9Text_61c1f + db "@" + +SSAnne9Text11: ; 61c24 (18:5c24) + db $08 ; asm + ld hl, SSAnne9Text_61c2e + call PrintText + jp TextScriptEnd + +SSAnne9Text_61c2e: ; 61c2e (18:5c2e) + TX_FAR _SSAnne9Text_61c2e + db "@" + +SSAnne9Text12: ; 61c33 (18:5c33) + db $08 ; asm + ld hl, SSAnne9Text_61c3d + call PrintText + jp TextScriptEnd + +SSAnne9Text_61c3d: ; 61c3d (18:5c3d) + TX_FAR _SSAnne9Text_61c3d + db "@" + +SSAnne9Text13: ; 61c42 (18:5c42) + db $08 ; asm + ld hl, SSAnne9Text_61c4c + call PrintText + jp TextScriptEnd + +SSAnne9Text_61c4c: ; 61c4c (18:5c4c) + TX_FAR _SSAnne9Text_61c4c + db "@" + +SSAnne9BattleText1: ; 61c51 (18:5c51) + TX_FAR _SSAnne9BattleText1 + db "@" + +SSAnne9EndBattleText1: ; 61c56 (18:5c56) + TX_FAR _SSAnne9EndBattleText1 + db "@" + +SSAnne9AfterBattleText1: ; 61c5b (18:5c5b) + TX_FAR _SSAnne9AfterBattleText1 + db "@" + +SSAnne9BattleText2: ; 61c60 (18:5c60) + TX_FAR _SSAnne9BattleText2 + db "@" + +SSAnne9EndBattleText2: ; 61c65 (18:5c65) + TX_FAR _SSAnne9EndBattleText2 + db "@" + +SSAnne9AfterBattleText2: ; 61c6a (18:5c6a) + TX_FAR _SSAnne9AfterBattleText2 + db "@" + +SSAnne9BattleText3: ; 61c6f (18:5c6f) + TX_FAR _SSAnne9BattleText3 + db "@" + +SSAnne9EndBattleText3: ; 61c74 (18:5c74) + TX_FAR _SSAnne9EndBattleText3 + db "@" + +SSAnne9AfterBattleText3: ; 61c79 (18:5c79) + TX_FAR _SSAnne9AfterBattleText3 + db "@" + +SSAnne9BattleText4: ; 61c7e (18:5c7e) + TX_FAR _SSAnne9BattleText4 + db "@" + +SSAnne9EndBattleText4: ; 61c83 (18:5c83) + TX_FAR _SSAnne9EndBattleText4 + db "@" + +SSAnne9AfterBattleText4: ; 61c88 (18:5c88) + TX_FAR _SSAnne9AfterBattleText4 + db "@" diff --git a/scripts/tradecenterm.asm b/scripts/tradecenterm.asm new file mode 100755 index 00000000..662a1df7 --- /dev/null +++ b/scripts/tradecenterm.asm @@ -0,0 +1,9 @@ +TradeCenterMScript: ; 4fd7d (13:7d7d) + jp BattleCenterMScript + +TradeCenterMTextPointers: ; 4fd80 (13:7d80) + dw TradeCenterMText1 + +TradeCenterMText1: ; 4fd82 (13:7d82) + TX_FAR _TradeCenterMText1 + db "@" diff --git a/scripts/undergroundpathentranceroute5.asm b/scripts/undergroundpathentranceroute5.asm new file mode 100755 index 00000000..ad05dfe6 --- /dev/null +++ b/scripts/undergroundpathentranceroute5.asm @@ -0,0 +1,19 @@ +UndergroundPathEntranceRoute5Script: ; 5d6a9 (17:56a9) + ld a, $10 + ld [$d365], a + ret + +UndergroundPathEntranceRoute5_5d6af: ; 5d6af (17:56af) + db "@" + +UndergroundPathEntranceRoute5TextPointers: ; 5d6b0 (17:56b0) + dw UndergroundPathEntranceRoute5Text1 + +UndergroundPathEntranceRoute5Text1: ; 5d6b2 (17:56b2) + db $08 ; asm + ld a, $9 + ld [wWhichTrade], a + ld a, $54 + call Predef + ld hl, UndergroundPathEntranceRoute5_5d6af + ret diff --git a/scripts/undergroundpathentranceroute6.asm b/scripts/undergroundpathentranceroute6.asm new file mode 100755 index 00000000..afefd187 --- /dev/null +++ b/scripts/undergroundpathentranceroute6.asm @@ -0,0 +1,11 @@ +UndergroundPathEntranceRoute6Script: ; 5d6ef (17:56ef) + ld a, $11 + ld [$d365], a + jp EnableAutoTextBoxDrawing + +UndergroundPathEntranceRoute6TextPointers: ; 5d6f7 (17:56f7) + dw UndergroundPathEntranceRoute6Text1 + +UndergroundPathEntranceRoute6Text1: ; 5d6f9 (17:56f9) + TX_FAR _UndergrdTunnelEntRoute6Text1 + db "@" diff --git a/scripts/undergroundpathentranceroute7.asm b/scripts/undergroundpathentranceroute7.asm new file mode 100755 index 00000000..5dd10a4e --- /dev/null +++ b/scripts/undergroundpathentranceroute7.asm @@ -0,0 +1,11 @@ +UndergroundPathEntranceRoute7Script: ; 5d72c (17:572c) + ld a, $12 + ld [$d365], a + jp EnableAutoTextBoxDrawing + +UndergroundPathEntranceRoute7TextPointers: ; 5d734 (17:5734) + dw UndergroundPathEntranceRoute7Text1 + +UndergroundPathEntranceRoute7Text1: ; 5d736 (17:5736) + TX_FAR _UndergroundPathEntRoute7Text1 + db "@" diff --git a/scripts/undergroundpathentranceroute7copy.asm b/scripts/undergroundpathentranceroute7copy.asm new file mode 100755 index 00000000..845e5674 --- /dev/null +++ b/scripts/undergroundpathentranceroute7copy.asm @@ -0,0 +1,24 @@ +UndergroundPathEntranceRoute7CopyScript: ; 5d769 (17:5769) + ld a, $12 + ld [$d365], a + ret + +UndergroundPathEntranceRoute7CopyTextPointers: ; 5d76f (17:576f) + dw UnnamedText_5d773 + dw UnnamedText_5d77d + +UnnamedText_5d773: ; 5d773 (17:5773) + TX_FAR _UnnamedText_5d773 + db "@" + +UnnamedText_5d778: ; 5d778 (17:5778) + TX_FAR _UnnamedText_5d778 + db "@" + +UnnamedText_5d77d: ; 5d77d (17:577d) + TX_FAR _UnnamedText_5d77d + db "@" + +UnnamedText_5d782: ; 5d782 (17:5782) + TX_FAR _UnnamedText_5d782 + db "@" diff --git a/scripts/undergroundpathentranceroute8.asm b/scripts/undergroundpathentranceroute8.asm new file mode 100755 index 00000000..d777b24b --- /dev/null +++ b/scripts/undergroundpathentranceroute8.asm @@ -0,0 +1,11 @@ +UndergroundPathEntranceRoute8Script: ; 1e289 (7:6289) + ld a, $13 + ld [$d365], a + jp EnableAutoTextBoxDrawing + +UndergroundPathEntranceRoute8TextPointers: ; 1e291 (7:6291) + dw UndergroundPathEntranceRoute8Text1 + +UndergroundPathEntranceRoute8Text1: ; 1e293 (7:6293) + TX_FAR _UndergroundPathEntRoute8Text1 + db "@" diff --git a/scripts/undergroundpathns.asm b/scripts/undergroundpathns.asm new file mode 100755 index 00000000..96bf82a6 --- /dev/null +++ b/scripts/undergroundpathns.asm @@ -0,0 +1,5 @@ +UndergroundPathNSScript: ; 61f26 (18:5f26) + jp EnableAutoTextBoxDrawing + +UndergroundPathNSTextPointers: ; 61f29 (18:5f29) + db "@" diff --git a/scripts/undergroundpathwe.asm b/scripts/undergroundpathwe.asm new file mode 100755 index 00000000..f7e3755e --- /dev/null +++ b/scripts/undergroundpathwe.asm @@ -0,0 +1,5 @@ +UndergroundPathWEScript: ; 61f4a (18:5f4a) + jp EnableAutoTextBoxDrawing + +UndergroundPathWETextPointers: ; 61f4d (18:5f4d) + db "@" diff --git a/scripts/unknowndungeon1.asm b/scripts/unknowndungeon1.asm new file mode 100755 index 00000000..008a7bd7 --- /dev/null +++ b/scripts/unknowndungeon1.asm @@ -0,0 +1,7 @@ +UnknownDungeon1Script: ; 74d0c (1d:4d0c) + jp EnableAutoTextBoxDrawing + +UnknownDungeon1TextPointers: ; 74d0f (1d:4d0f) + dw Predef5CText + dw Predef5CText + dw Predef5CText diff --git a/scripts/unknowndungeon2.asm b/scripts/unknowndungeon2.asm new file mode 100755 index 00000000..c8249b27 --- /dev/null +++ b/scripts/unknowndungeon2.asm @@ -0,0 +1,7 @@ +UnknownDungeon2Script: ; 45e0b (11:5e0b) + jp EnableAutoTextBoxDrawing + +UnknownDungeon2TextPointers: ; 45e0e (11:5e0e) + dw Predef5CText + dw Predef5CText + dw Predef5CText diff --git a/scripts/unknowndungeon3.asm b/scripts/unknowndungeon3.asm new file mode 100755 index 00000000..b765ef56 --- /dev/null +++ b/scripts/unknowndungeon3.asm @@ -0,0 +1,44 @@ +UnknownDungeon3Script: ; 45ef0 (11:5ef0) + call EnableAutoTextBoxDrawing + ld hl, UnknownDungeon3TrainerHeaders + ld de, UnknownDungeon3ScriptPointers + ld a, [W_UNKNOWNDUNGEON3CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_UNKNOWNDUNGEON3CURSCRIPT], a + ret + +UnknownDungeon3ScriptPointers: ; 45f03 (11:5f03) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +UnknownDungeon3TextPointers: ; 45f09 (11:5f09) + dw UnknownDungeon3Text1 + dw Predef5CText + dw Predef5CText + +UnknownDungeon3TrainerHeaders: ; 45f0f (11:5f0f) +UnknownDungeon3TrainerHeader0: ; 45f0f (11:5f0f) + db $1 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d85f ; flag's byte + dw UnknownDungeon3MewtwoText ; 0x5f26 TextBeforeBattle + dw UnknownDungeon3MewtwoText ; 0x5f26 TextAfterBattle + dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle + dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle + + db $ff + +UnknownDungeon3Text1: ; 45f1c (11:5f1c) + db $08 ; asm + ld hl, UnknownDungeon3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +UnknownDungeon3MewtwoText: ; 45f26 (11:5f26) + TX_FAR _UnknownDungeon3MewtwoText + db $8 + ld a, MEWTWO + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd diff --git a/scripts/vermilioncity.asm b/scripts/vermilioncity.asm new file mode 100755 index 00000000..3f582dba --- /dev/null +++ b/scripts/vermilioncity.asm @@ -0,0 +1,263 @@ +VermilionCityScript: ; 197a1 (6:57a1) + call EnableAutoTextBoxDrawing + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + push hl + call nz, VermilionCityScript_197cb + pop hl + bit 5, [hl] + res 5, [hl] + call nz, VermilionCityScript_197c0 + ld hl, VermilionCityScriptPointers + ld a, [W_VERMILIONCITYCURSCRIPT] + jp CallFunctionInTable + +VermilionCityScript_197c0: ; 197c0 (6:57c0) + call GenRandom + ld a, [$ffd4] + and $e + ld [$d743], a + ret + +VermilionCityScript_197cb: ; 197cb (6:57cb) + ld hl, $d803 + bit 2, [hl] + ret z + bit 3, [hl] + set 3, [hl] + ret nz + ld a, $2 + ld [W_VERMILIONCITYCURSCRIPT], a + ret + +VermilionCityScriptPointers: ; 197dc (6:57dc) + dw VermilionCityScript0 + dw VermilionCityScript1 + dw VermilionCityScript2 + dw VermilionCityScript3 + dw VermilionCityScript4 + +VermilionCityScript0: ; 197e6 (6:57e6) + ld a, [$c109] + and a + ret nz + ld hl, CoordsData_19823 + call ArePlayerCoordsInArray + ret nc + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + ld [$cf0d], a + ld a, $3 + ld [$ff8c], a + call DisplayTextID + ld a, [$d803] + bit 2, a + jr nz, .asm_19810 ; 0x19804 $a + ld b, $3f + ld a, $1c + call Predef + ld a, b + and a + ret nz +.asm_19810 + ld a, $40 + ld [$ccd3], a + ld a, $1 + ld [$cd38], a + call Func_3486 + ld a, $1 + ld [W_VERMILIONCITYCURSCRIPT], a + ret + +CoordsData_19823: ; 19823 (6:5823) + db $1e,$12 + db $ff + +VermilionCityScript4: ; 19826 (6:5826) + ld hl, CoordsData_19823 + call ArePlayerCoordsInArray + ret c + ld a, $0 + ld [W_VERMILIONCITYCURSCRIPT], a + ret + +VermilionCityScript2: ; 19833 (6:5833) + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld a, $40 + ld [$ccd3], a + ld [$ccd4], a + ld a, $2 + ld [$cd38], a + call Func_3486 + ld a, $3 + ld [W_VERMILIONCITYCURSCRIPT], a + ret + +VermilionCityScript3: ; 1984e (6:584e) + ld a, [$cd38] + and a + ret nz + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [H_CURRENTPRESSEDBUTTONS], a + ld a, $0 + ld [W_VERMILIONCITYCURSCRIPT], a + ret + +VermilionCityScript1: ; 1985f (6:585f) + ld a, [$cd38] + and a + ret nz + ld c, $a + call DelayFrames + ld a, $0 + ld [W_VERMILIONCITYCURSCRIPT], a + ret + +VermilionCityTextPointers: ; 1986f (6:586f) + dw VermilionCityText1 + dw VermilionCityText2 + dw VermilionCityText3 + dw VermilionCityText4 + dw VermilionCityText5 + dw VermilionCityText6 + dw VermilionCityText7 + dw VermilionCityText8 + dw MartSignText + dw PokeCenterSignText + dw VermilionCityText11 + dw VermilionCityText12 + dw VermilionCityText13 + +VermilionCityText1: ; 19889 (6:5889) + TX_FAR _VermilionCityText1 + db "@" + +VermilionCityText2: ; 1988e (6:588e) + db $08 ; asm + ld a, [$d803] + bit 2, a + jr nz, .asm_359bd ; 0x19894 + ld hl, VermilionCityText_198a7 + call PrintText + jr .asm_735d9 ; 0x1989c +.asm_359bd ; 0x1989e + ld hl, VermilionCityText_198ac + call PrintText +.asm_735d9 ; 0x198a4 + jp TextScriptEnd + +VermilionCityText_198a7: ; 198a7 (6:58a7) + TX_FAR _VermilionCityText_198a7 + db "@" + +VermilionCityText_198ac: ; 198ac (6:58ac) + TX_FAR _VermilionCityText_198ac + db "@" + +VermilionCityText3: ; 198b1 (6:58b1) + db $08 ; asm + ld a, [$d803] + bit 2, a + jr nz, .asm_3e0e9 ; 0x198b7 + ld a, [$c109] + cp $c + jr z, .asm_07af3 ; 0x198be + ld hl, VermilionCityCoords1 + call ArePlayerCoordsInArray + jr nc, .asm_57b73 ; 0x198c6 +.asm_07af3 ; 0x198c8 + ld hl, SSAnneWelcomeText4 + call PrintText + jr .asm_79bd1 ; 0x198ce +.asm_57b73 ; 0x198d0 + ld hl, SSAnneWelcomeText9 + call PrintText + ld b, S_S__TICKET + ld a, $1c + call Predef + ld a, b + and a + jr nz, .asm_0419b ; 0x198df + ld hl, SSAnneNoTicketText + call PrintText + jr .asm_79bd1 ; 0x198e7 +.asm_0419b ; 0x198e9 + ld hl, SSAnneFlashedTicketText + call PrintText + ld a, $4 + ld [W_VERMILIONCITYCURSCRIPT], a + jr .asm_79bd1 ; 0x198f4 +.asm_3e0e9 ; 0x198f6 + ld hl, SSAnneNotHereText + call PrintText +.asm_79bd1 ; 0x198fc + jp TextScriptEnd + +VermilionCityCoords1: ; 198ff (6:58ff) + db $1d,$13 + db $1f,$13 + db $ff + +SSAnneWelcomeText4: ; 19904 (6:5904) + TX_FAR _SSAnneWelcomeText4 + db "@" + +SSAnneWelcomeText9: ; 19909 (6:5909) + TX_FAR _SSAnneWelcomeText9 + db "@" + +SSAnneFlashedTicketText: ; 1990e (6:590e) + TX_FAR _SSAnneFlashedTicketText + db "@" + +SSAnneNoTicketText: ; 19913 (6:5913) + TX_FAR _SSAnneNoTicketText + db "@" + +SSAnneNotHereText: ; 19918 (6:5918) + TX_FAR _SSAnneNotHereText + db "@" + +VermilionCityText4: ; 1991d (6:591d) + TX_FAR _VermilionCityText4 + db "@" + +VermilionCityText5: ; 19922 (6:5922) + TX_FAR _VermilionCityText5 + db $08 ; asm + ld a, MACHOP + call PlayCry + call WaitForSoundToFinish + ld hl, VermilionCityText14 ; $5933 + ret + +VermilionCityText14: ; 19933 (6:5933) + TX_FAR _VermilionCityText14 + db "@" + +VermilionCityText6: ; 19938 (6:5938) + TX_FAR _VermilionCityText6 + db "@" + +VermilionCityText7: ; 1993d (6:593d) + TX_FAR _VermilionCityText7 + db "@" + +VermilionCityText8: ; 19942 (6:5942) + TX_FAR _VermilionCityText8 + db "@" + +VermilionCityText11: ; 19947 (6:5947) + TX_FAR _VermilionCityText11 + db "@" + +VermilionCityText12: ; 1994c (6:594c) + TX_FAR _VermilionCityText12 + db "@" + +VermilionCityText13: ; 19951 (6:5951) + TX_FAR _VermilionCityText13 + db "@" diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm new file mode 100755 index 00000000..2e07e408 --- /dev/null +++ b/scripts/vermiliondock.asm @@ -0,0 +1,210 @@ +VermilionDockScript: ; 1db52 (7:5b52) + call EnableAutoTextBoxDrawing + ld hl, $d803 + bit 4, [hl] + jr nz, .asm_1db8d ; 0x1db5a $31 + bit 0, [hl] + ret z + ld a, [$d42f] + cp $1 + ret nz + bit 2, [hl] + jp z, VermilionDock_1db9b + set 4, [hl] + call Delay3 + ld hl, $d730 + set 7, [hl] + ld hl, $ccd3 + ld a, $40 + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $3 + ld [$cd38], a + xor a + ld [$c206], a + ld [$cd3b], a + dec a + ld [wJoypadForbiddenButtonsMask], a + ret +.asm_1db8d + bit 5, [hl] + ret nz + ld a, [$cd38] + and a + ret nz + ld [wJoypadForbiddenButtonsMask], a + set 5, [hl] + ret + +VermilionDock_1db9b: ; 1db9b (7:5b9b) + set 2, [hl] + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld [$c0ee], a + call PlaySound + ld c, BANK(Music_Surfing) + ld a, MUSIC_SURFING + call PlayMusic + ld b, BANK(LoadSmokeTileFourTimes) + ld hl, LoadSmokeTileFourTimes + call Bankswitch + xor a + ld [$c102], a + ld c, $78 + call DelayFrames + ld b, $9c + call CopyScreenTileBufferToVRAM + FuncCoord 0, 10 ; $c468 + ld hl, Coord + ld bc, $0078 + ld a, $14 + call FillMemory + ld a, $1 + ld [$ffba], a + call Delay3 + xor a + ld [$ffba], a + ld [$cd3d], a + ld [$ff49], a + ld a, $58 + ld [$cd3e], a + ld hl, $d526 + ld c, [hl] + inc hl + ld b, [hl] + push bc + push hl + ld a, (SFX_02_54 - SFX_Headers_02) / 3 + call PlaySoundWaitForCurrent + ld a, $ff + ld [$cfcb], a + ld d, $0 + ld e, $8 +.asm_1dbfa + ld hl, $0002 + add hl, bc + ld a, l + ld [$d526], a + ld a, h + ld [$d527], a + push hl + push de + call ScheduleEastColumnRedraw + call VermilionDock_1dc59 + pop de + ld b, $10 +.asm_1dc11 + call VermilionDock_1dc42 + ld c, $8 +.asm_1dc16 + call VermilionDock_1dc7c + dec c + jr nz, .asm_1dc16 ; 0x1dc1a $fa + inc d + dec b + jr nz, .asm_1dc11 ; 0x1dc1e $f1 + pop bc + dec e + jr nz, .asm_1dbfa ; 0x1dc22 $d6 + xor a + ld [$ff4a], a + ld [$ffb0], a + call VermilionDock_1dc94 + ld a, $90 + ld [$ffb0], a + ld a, $1 + ld [$cfcb], a + pop hl + pop bc + ld [hl], b + dec hl + ld [hl], c + call LoadPlayerSpriteGraphics + ld hl, $d3ae + dec [hl] + ret + +VermilionDock_1dc42: ; 1dc42 (7:5c42) + push bc + push de + ld hl, $c311 + ld a, [$cd3d] + swap a + ld c, a + ld de, $0004 +.asm_1dc50 + inc [hl] + inc [hl] + add hl, de + dec c + jr nz, .asm_1dc50 ; 0x1dc54 $fa + pop de + pop bc + ret + +VermilionDock_1dc59: ; 1dc59 (7:5c59) + ld a, [$cd3e] + sub $10 + ld [$cd3e], a + ld c, a + ld b, $64 + ld a, [$cd3d] + inc a + ld [$cd3d], a + ld a, $1 + ld de, VermilionDockOAMBlock + call WriteOAMBlock + ret + +VermilionDockOAMBlock: ; 1dc74 (7:5c74) + db $fc, $10 + db $fd, $10 + db $fe, $10 + db $ff, $10 + +VermilionDock_1dc7c: ; 1dc7c (7:5c7c) + ld h, d + ld l, $50 + call .asm_1dc86 + ld h, $0 + ld l, $80 +.asm_1dc86 + ld a, [$ff44] + cp l + jr nz, .asm_1dc86 ; 0x1dc89 $fb + ld a, h + ld [$ff43], a +.asm_1dc8e + ld a, [$ff44] + cp h + jr z, .asm_1dc8e ; 0x1dc91 $fb + ret + +VermilionDock_1dc94: ; 1dc94 (7:5c94) + ld hl, $cc5b + ld bc, $00b4 + ld a, $14 + call FillMemory + ld hl, $9940 + ld de, $cc5b + ld bc, $000c + call CopyVideoData + ld hl, $c754 + ld a, $d + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, (SFX_02_54 - SFX_Headers_02) / 3 + call PlaySound + ld c, $78 + call DelayFrames + ret + +VermilionDockTextPointers: ; 1dcbf (7:5cbf) + dw VermilionDockText1 + +VermilionDockText1: ; 1dcc1 (7:5cc1) + TX_FAR _VermilionDockText1 + db "@" diff --git a/scripts/vermiliongym.asm b/scripts/vermiliongym.asm new file mode 100755 index 00000000..de3678dd --- /dev/null +++ b/scripts/vermiliongym.asm @@ -0,0 +1,275 @@ +VermilionGymScript: ; 5ca26 (17:4a26) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + push hl + call nz, VermilionGymScript_5ca4c + pop hl + bit 6, [hl] + res 6, [hl] + call nz, VermilionGymScript_5ca6d + call EnableAutoTextBoxDrawing + ld hl, VermilionGymTrainerHeader0 + ld de, VermilionGymScriptPointers + ld a, [W_VERMILIONGYMCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_VERMILIONGYMCURSCRIPT], a + ret + +VermilionGymScript_5ca4c: ; 5ca4c (17:4a4c) + ld hl, Gym3CityName ; $4a55 + ld de, Gym3LeaderName ; $4a64 + jp LoadGymLeaderAndCityName + +Gym3CityName: ; 5ca55 (17:4a55) + db "VERMILION CITY@" + +Gym3LeaderName: ; 5ca64 (17:4a64) + db "LT.SURGE@" + +VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d) + ld a, [$d773] + bit 0, a + jr nz, .asm_5ca78 + ld a, $24 + jr .asm_5ca7f +.asm_5ca78 + ld a, (SFX_02_57 - SFX_Headers_02) / 3 + call PlaySound + ld a, $5 +.asm_5ca7f + ld [$d09f], a + ld bc, $202 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +VermilionGymScript_5ca8a: ; 5ca8a (17:4a8a) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_VERMILIONGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +VermilionGymScriptPointers: ; 5ca95 (17:4a95) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + dw VermilionGymScript3 + +VermilionGymScript3: ; 5ca9d (17:4a9d) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, VermilionGymScript_5ca8a + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + +VermilionGymScript_5caaa: ; 5caaa (17:4aaa) + ld a, $6 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d773 + set 7, [hl] + ld bc, (TM_24 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $7 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d773 + set 6, [hl] + jr .asm_5cad3 +.BagFull + ld a, $8 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_5cad3 + ld hl, W_OBTAINEDBADGES + set 2, [hl] + ld hl, $d72a + set 2, [hl] + + ; deactivate gym trainers + ld a, [$d773] + or %00011100 + ld [$d773], a + + jp VermilionGymScript_5ca8a + +VermilionGymTextPointers: ; 5cae8 (17:4ae8) + dw VermilionGymText1 + dw VermilionGymText2 + dw VermilionGymText3 + dw VermilionGymText4 + dw VermilionGymText5 + dw VermilionGymText6 + dw VermilionGymText7 + dw VermilionGymText8 + +VermilionGymTrainerHeaders: ; 5caf8 (17:4af8) +VermilionGymTrainerHeader0: ; 5caf8 (17:4af8) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d773 ; flag's byte + dw VermilionGymBattleText1 ; 0x4b9a TextBeforeBattle + dw VermilionGymAfterBattleText1 ; 0x4ba4 TextAfterBattle + dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle + dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle + +VermilionGymTrainerHeader1: ; 5cb04 (17:4b04) + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d773 ; flag's byte + dw VermilionGymBattleText2 ; 0x4bb3 TextBeforeBattle + dw VermilionGymAfterBattleText2 ; 0x4bbd TextAfterBattle + dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle + dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle + +VermilionGymTrainerHeader2: ; 5cb10 (17:4b10) + db $4 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d773 ; flag's byte + dw VermilionGymBattleText3 ; 0x4bcc TextBeforeBattle + dw VermilionGymAfterBattleText3 ; 0x4bd6 TextAfterBattle + dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle + dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle + + db $ff + +VermilionGymText1: ; 5cb1d (17:4b1d) + db $08 ; asm + ld a, [$d773] + bit 7, a + jr z, .asm_7cc29 ; 0x5cb23 + bit 6, a + jr nz, .asm_41203 ; 0x5cb27 + call z, VermilionGymScript_5caaa + call DisableWaitingAfterTextDisplay + jr .asm_23621 ; 0x5cb2f +.asm_41203 ; 0x5cb31 + ld hl, VermilionGymText_5cb72 + call PrintText + jr .asm_23621 ; 0x5cb37 +.asm_7cc29 ; 0x5cb39 + ld hl, VermilionGymText_5cb6d + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, ReceivedThunderbadgeText + ld de, ReceivedThunderbadgeText + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $3 + ld [$d05c], a + xor a + ldh [$b4], a + ld a, $3 + ld [W_VERMILIONGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a +.asm_23621 ; 0x5cb6a + jp TextScriptEnd + +VermilionGymText_5cb6d: ; 5cb6d (17:4b6d) + TX_FAR _VermilionGymText_5cb6d + db "@" + +VermilionGymText_5cb72: ; 5cb72 (17:4b72) + TX_FAR _VermilionGymText_5cb72 + db "@" + +VermilionGymText6: ; 5cb77 (17:4b77) + TX_FAR _VermilionGymText_5cb77 + db "@" + +VermilionGymText7: ; 5cb7c (17:4b7c) + TX_FAR _ReceivedTM24Text + db $11 + TX_FAR _TM24ExplanationText + db "@" + +VermilionGymText8: ; 5cb86 (17:4b86) + TX_FAR _TM24NoRoomText + db "@" + +ReceivedThunderbadgeText: ; 5cb8b (17:4b8b) + TX_FAR _ReceivedThunderbadgeText + db "@" + +VermilionGymText2: ; 5cb90 (17:4b90) + db $08 ; asm + ld hl, VermilionGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +VermilionGymBattleText1: ; 5cb9a (17:4b9a) + TX_FAR _VermilionGymBattleText1 + db "@" + +VermilionGymEndBattleText1: ; 5cb9f (17:4b9f) + TX_FAR _VermilionGymEndBattleText1 + db "@" + +VermilionGymAfterBattleText1: ; 5cba4 (17:4ba4) + TX_FAR _VermilionGymAfterBattleText1 + db "@" + +VermilionGymText3: ; 5cba9 (17:4ba9) + db $08 ; asm + ld hl, VermilionGymTrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +VermilionGymBattleText2: ; 5cbb3 (17:4bb3) + TX_FAR _VermilionGymBattleText2 + db "@" + +VermilionGymEndBattleText2: ; 5cbb8 (17:4bb8) + TX_FAR _VermilionGymEndBattleText2 + db "@" + +VermilionGymAfterBattleText2: ; 5cbbd (17:4bbd) + TX_FAR _VermilionGymAfterBattleText2 + db "@" + +VermilionGymText4: ; 5cbc2 (17:4bc2) + db $08 ; asm + ld hl, VermilionGymTrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +VermilionGymBattleText3: ; 5cbcc (17:4bcc) + TX_FAR _VermilionGymBattleText3 + db "@" + +VermilionGymEndBattleText3: ; 5cbd1 (17:4bd1) + TX_FAR _VermilionGymEndBattleText3 + db "@" + +VermilionGymAfterBattleText3: ; 5cbd6 (17:4bd6) + TX_FAR _VermilionGymAfterBattleText3 + db "@" + +VermilionGymText5: ; 5cbdb (17:4bdb) + db $08 ; asm + ld a, [$d72a] + bit 2, a + jr nz, .asm_13b67 ; 0x5cbe1 + ld hl, VermilionGymText_5cbf4 + call PrintText + jr .asm_c2b38 ; 0x5cbe9 +.asm_13b67 ; 0x5cbeb + ld hl, VermilionGymText_5cbf9 + call PrintText +.asm_c2b38 ; 0x5cbf1 + jp TextScriptEnd + +VermilionGymText_5cbf4: ; 5cbf4 (17:4bf4) + TX_FAR _VermilionGymText_5cbf4 + db "@" + +VermilionGymText_5cbf9: ; 5cbf9 (17:4bf9) + TX_FAR _VermilionGymText_5cbf9 + db "@" diff --git a/scripts/vermilionhouse1.asm b/scripts/vermilionhouse1.asm new file mode 100755 index 00000000..4ead1af7 --- /dev/null +++ b/scripts/vermilionhouse1.asm @@ -0,0 +1,24 @@ +VermilionHouse1Script: ; 1dafc (7:5afc) + call EnableAutoTextBoxDrawing + ret + +VermilionHouse1TextPointers: ; 1db00 (7:5b00) + dw VermilionHouse1Text1 + dw VermilionHouse1Text2 + dw VermilionHouse1Text3 + +VermilionHouse1Text1: ; 1db06 (7:5b06) + TX_FAR _VermilionHouse1Text1 + db "@" + +VermilionHouse1Text2: ; 1db0b (7:5b0b) + TX_FAR _VermilionHouse1Text2 + db $08 ; asm + ld a, PIDGEY + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +VermilionHouse1Text3: ; 1db1b (7:5b1b) + TX_FAR _VermilionHouse1Text3 + db "@" diff --git a/scripts/vermilionhouse2.asm b/scripts/vermilionhouse2.asm new file mode 100755 index 00000000..9efb8200 --- /dev/null +++ b/scripts/vermilionhouse2.asm @@ -0,0 +1,57 @@ +VermilionHouse2Script: ; 56070 (15:6070) + jp EnableAutoTextBoxDrawing + +VermilionHouse2TextPointers: ; 56073 (15:6073) + dw VermilionHouse2Text1 + +VermilionHouse2Text1: ; 56075 (15:6075) + db $08 ; asm + ld a, [$d728] + bit 3, a + jr nz, .asm_03ef5 + ld hl, VermilionHouse2Text_560b1 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_eb1b7 + ld bc, (OLD_ROD << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, $d728 + set 3, [hl] + ld hl, VermilionHouse2Text_560b6 + jr .asm_5dd95 +.BagFull + ld hl, VermilionHouse2Text_560ca + jr .asm_5dd95 +.asm_eb1b7 + ld hl, VermilionHouse2Text_560c0 + jr .asm_5dd95 +.asm_03ef5 + ld hl, VermilionHouse2Text_560c5 +.asm_5dd95 + call PrintText + jp TextScriptEnd + +VermilionHouse2Text_560b1: ; 560b1 (15:60b1) + TX_FAR _VermilionHouse2Text_560b1 + db "@" + +VermilionHouse2Text_560b6: ; 560b6 (15:60b6) + TX_FAR _VermilionHouse2Text_560b6 ; 0x9c554 + db $0B + TX_FAR _VermilionHouse2Text_560bb ; 0x9c5a4 + db "@" + +VermilionHouse2Text_560c0: ; 560c0 (15:60c0) + TX_FAR _VermilionHouse2Text_560c0 + db "@" + +VermilionHouse2Text_560c5: ; 560c5 (15:60c5) + TX_FAR _VermilionHouse2Text_560c5 + db "@" + +VermilionHouse2Text_560ca: ; 560ca (15:60ca) + TX_FAR _VermilionHouse2Text_560ca + db "@" diff --git a/scripts/vermilionhouse3.asm b/scripts/vermilionhouse3.asm new file mode 100755 index 00000000..b6bceeea --- /dev/null +++ b/scripts/vermilionhouse3.asm @@ -0,0 +1,13 @@ +VermilionHouse3Script: ; 19c12 (6:5c12) + jp EnableAutoTextBoxDrawing + +VermilionHouse3TextPointers: ; 19c15 (6:5c15) + dw VermilionHouse3Text1 + +VermilionHouse3Text1: ; 19c17 (6:5c17) + db $08 ; asm + ld a, $4 + ld [wWhichTrade], a + ld a, $54 + call Predef + jp TextScriptEnd diff --git a/scripts/vermilionmart.asm b/scripts/vermilionmart.asm new file mode 100755 index 00000000..921e7852 --- /dev/null +++ b/scripts/vermilionmart.asm @@ -0,0 +1,15 @@ +VermilionMartScript: ; 5c9e1 (17:49e1) + jp EnableAutoTextBoxDrawing + +VermilionMartTextPointers: ; 5c9e4 (17:49e4) + dw VermilionMartText1 + dw VermilionMartText2 + dw VermilionMartText3 + +VermilionMartText2: ; 5c9ea (17:49ea) + TX_FAR _VermilionMartText2 + db "@" + +VermilionMartText3: ; 5c9ef (17:49ef) + TX_FAR _VermilionMartText3 + db "@" diff --git a/scripts/vermilionpokecenter.asm b/scripts/vermilionpokecenter.asm new file mode 100755 index 00000000..00d139f5 --- /dev/null +++ b/scripts/vermilionpokecenter.asm @@ -0,0 +1,23 @@ +VermilionPokecenterScript: ; 5c98f (17:498f) + call Func_22fa + jp EnableAutoTextBoxDrawing + +VermilionPokecenterTextPointers: ; 5c995 (17:4995) + dw VermilionPokecenterText1 + dw VermilionPokecenterText2 + dw VermilionPokecenterText3 + dw VermilionPokecenterText4 + +VermilionPokecenterText1: ; 5c99d (17:499d) + db $ff + +VermilionPokecenterText2: ; 5c99e (17:499e) + TX_FAR _VermilionPokecenterText1 + db "@" + +VermilionPokecenterText3: ; 5c9a3 (17:49a3) + TX_FAR _VermilionPokecenterText3 + db "@" + +VermilionPokecenterText4: ; 5c9a8 (17:49a8) + db $f6 diff --git a/scripts/victoryroad1.asm b/scripts/victoryroad1.asm new file mode 100755 index 00000000..b9b946ad --- /dev/null +++ b/scripts/victoryroad1.asm @@ -0,0 +1,108 @@ +VictoryRoad1Script: ; 5da0a (17:5a0a) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + call nz, .next + call EnableAutoTextBoxDrawing + ld hl, VictoryRoad1TrainerHeaders + ld de, VictoryRoad1ScriptPointers + ld a, [W_VICTORYROAD1CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_VICTORYROAD1CURSCRIPT], a + ret +.next + ld a, [$d869] + bit 7, a + ret z + ld a, $1d + ld [$d09f], a + ld bc, $604 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +VictoryRoad1ScriptPointers: ; 5da3a (17:5a3a) + dw VictoryRoad1Script0 + dw Func_324c + dw EndTrainerBattle + +VictoryRoad1Script0: ; 5da40 (17:5a40) + ld a, [$d869] + bit 7, a + jp nz, CheckFightingMapTrainers + ld hl, CoordsData_5da5c ; $5a5c + call CheckBoulderCoords + jp nc, CheckFightingMapTrainers + ld hl, $d126 + set 5, [hl] + ld hl, $d869 + set 7, [hl] + ret + +CoordsData_5da5c: ; 5da5c (17:5a5c) + db $0D,$11,$FF + +VictoryRoad1TextPointers: ; 5da5f (17:5a5f) + dw VictoryRoad1Text1 + dw VictoryRoad1Text2 + dw Predef5CText + dw Predef5CText + dw BoulderText + dw BoulderText + dw BoulderText + +VictoryRoad1TrainerHeaders: ; 5da6d (17:5a6d) +VictoryRoad1TrainerHeader0: ; 5da6d (17:5a6d) + db $1 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d869 ; flag's byte + dw VictoryRoad1BattleText1 ; 0x5a9a TextBeforeBattle + dw VictoryRoad1AfterBattleText1 ; 0x5aa4 TextAfterBattle + dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle + dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle + +VictoryRoad1TrainerHeader1: ; 5da79 (17:5a79) + db $2 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d869 ; flag's byte + dw VictoryRoad1BattleText2 ; 0x5aa9 TextBeforeBattle + dw VictoryRoad1AfterBattleText2 ; 0x5ab3 TextAfterBattle + dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle + dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle + + db $ff + +VictoryRoad1Text1: ; 5da86 (17:5a86) + db $08 ; asm + ld hl, VictoryRoad1TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad1Text2: ; 5da90 (17:5a90) + db $08 ; asm + ld hl, VictoryRoad1TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad1BattleText1: ; 5da9a (17:5a9a) + TX_FAR _VictoryRoad1BattleText1 + db "@" + +VictoryRoad1EndBattleText1: ; 5da9f (17:5a9f) + TX_FAR _VictoryRoad1EndBattleText1 + db "@" + +VictoryRoad1AfterBattleText1: ; 5daa4 (17:5aa4) + TX_FAR _VictoryRoad1AfterBattleText1 + db "@" + +VictoryRoad1BattleText2: ; 5daa9 (17:5aa9) + TX_FAR _VictoryRoad1BattleText2 + db "@" + +VictoryRoad1EndBattleText2: ; 5daae (17:5aae) + TX_FAR _VictoryRoad1EndBattleText2 + db "@" + +VictoryRoad1AfterBattleText2: ; 5dab3 (17:5ab3) + TX_FAR _VictoryRoad1AfterBattleText2 + db "@" diff --git a/scripts/victoryroad2.asm b/scripts/victoryroad2.asm new file mode 100755 index 00000000..6270a858 --- /dev/null +++ b/scripts/victoryroad2.asm @@ -0,0 +1,248 @@ +VictoryRoad2Script: ; 5179d (14:579d) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + call nz, VictoryRoad2Script_517c4 + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + call nz, VictoryRoad2Script_517c9 + call EnableAutoTextBoxDrawing + ld hl, VictoryRoad2TrainerHeaders + ld de, VictoryRoad2ScriptPointers + ld a, [W_VICTORYROAD2CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_VICTORYROAD2CURSCRIPT], a + ret + +VictoryRoad2Script_517c4: ; 517c4 (14:57c4) + ld hl, $d869 + res 7, [hl] + +VictoryRoad2Script_517c9: ; 517c9 (14:57c9) + ld a, [$d7ee] + bit 0, a + jr z, .asm_517da + push af + ld a, $15 + ld bc, $403 + call VictoryRoad2Script_517e2 + pop af +.asm_517da + bit 7, a + ret z + ld a, $1d + ld bc, $70b + +VictoryRoad2Script_517e2: ; 517e2 (14:57e2) + ld [$d09f], a + ld a, $17 + call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + ret + +VictoryRoad2ScriptPointers: ; 517eb (14:57eb) + dw VictoryRoad2Script0 + dw Func_324c + dw EndTrainerBattle + +VictoryRoad2Script0: ; 517f1 (14:57f1) + ld hl, CoordsData_51816 ; $5816 + call CheckBoulderCoords + jp nc, CheckFightingMapTrainers + ld hl, $d7ee + ld a, [wWhichTrade] ; $cd3d + cp $2 + jr z, .asm_5180b + bit 0, [hl] + set 0, [hl] + ret nz + jr .asm_51810 +.asm_5180b + bit 7, [hl] + set 7, [hl] + ret nz +.asm_51810 + ld hl, $d126 + set 5, [hl] + ret + +CoordsData_51816: ; 51816 (14:5816) + db $10,$01 + db $10,$09 + db $FF + +VictoryRoad2TextPointers: ; 5181b (14:581b) + dw VictoryRoad2Text1 + dw VictoryRoad2Text2 + dw VictoryRoad2Text3 + dw VictoryRoad2Text4 + dw VictoryRoad2Text5 + dw VictoryRoad2Text6 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw BoulderText + dw BoulderText + dw BoulderText + +VictoryRoad2TrainerHeaders: ; 51835 (14:5835) +VictoryRoad2TrainerHeader0: ; 51835 (14:5835) + db $1 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7ee ; flag's byte + dw VictoryRoad2BattleText1 ; 0x58ca TextBeforeBattle + dw VictoryRoad2AfterBattleText1 ; 0x58d4 TextAfterBattle + dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle + dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle + +VictoryRoad2TrainerHeader2: ; 51841 (14:5841) + db $2 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7ee ; flag's byte + dw VictoryRoad2BattleText2 ; 0x58d9 TextBeforeBattle + dw VictoryRoad2AfterBattleText2 ; 0x58e3 TextAfterBattle + dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle + dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle + +VictoryRoad2TrainerHeader3: ; 5184d (14:584d) + db $3 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7ee ; flag's byte + dw VictoryRoad2BattleText3 ; 0x58e8 TextBeforeBattle + dw VictoryRoad2AfterBattleText3 ; 0x58f2 TextAfterBattle + dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle + dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle + +VictoryRoad2TrainerHeader4: ; 51859 (14:5859) + db $4 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7ee ; flag's byte + dw VictoryRoad2BattleText4 ; 0x58f7 TextBeforeBattle + dw VictoryRoad2AfterBattleText4 ; 0x5901 TextAfterBattle + dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle + dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle + +VictoryRoad2TrainerHeader5: ; 51865 (14:5865) + db $5 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d7ee ; flag's byte + dw VictoryRoad2BattleText5 ; 0x5906 TextBeforeBattle + dw VictoryRoad2AfterBattleText5 ; 0x5910 TextAfterBattle + dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle + dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle + +VictoryRoad2TrainerHeader6: ; 51871 (14:5871) + db $6 ; flag's bit + db ($0 << 4) ; trainer's view range + dw $d7ee ; flag's byte + dw VictoryRoad2BattleText6 ; 0x58ba TextBeforeBattle + dw VictoryRoad2BattleText6 ; 0x58ba TextAfterBattle + dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle + dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle + + db $ff + +VictoryRoad2Text1: ; 5187e (14:587e) + db $08 ; asm + ld hl, VictoryRoad2TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad2Text2: ; 51888 (14:5888) + db $08 ; asm + ld hl, VictoryRoad2TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad2Text3: ; 51892 (14:5892) + db $08 ; asm + ld hl, VictoryRoad2TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad2Text4: ; 5189c (14:589c) + db $08 ; asm + ld hl, VictoryRoad2TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad2Text5: ; 518a6 (14:58a6) + db $08 ; asm + ld hl, VictoryRoad2TrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad2Text6: ; 518b0 (14:58b0) + db $08 ; asm + ld hl, VictoryRoad2TrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad2BattleText6: ; 518ba (14:58ba) + TX_FAR _VictoryRoad2BattleText6 + db $8 + ld a, MOLTRES + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +VictoryRoad2BattleText1: ; 518ca (14:58ca) + TX_FAR _VictoryRoad2BattleText1 + db "@" + +VictoryRoad2EndBattleText1: ; 518cf (14:58cf) + TX_FAR _VictoryRoad2EndBattleText1 + db "@" + +VictoryRoad2AfterBattleText1: ; 518d4 (14:58d4) + TX_FAR _VictoryRoad2AfterBattleText1 + db "@" + +VictoryRoad2BattleText2: ; 518d9 (14:58d9) + TX_FAR _VictoryRoad2BattleText2 + db "@" + +VictoryRoad2EndBattleText2: ; 518de (14:58de) + TX_FAR _VictoryRoad2EndBattleText2 + db "@" + +VictoryRoad2AfterBattleText2: ; 518e3 (14:58e3) + TX_FAR _VictoryRoad2AfterBattleText2 + db "@" + +VictoryRoad2BattleText3: ; 518e8 (14:58e8) + TX_FAR _VictoryRoad2BattleText3 + db "@" + +VictoryRoad2EndBattleText3: ; 518ed (14:58ed) + TX_FAR _VictoryRoad2EndBattleText3 + db "@" + +VictoryRoad2AfterBattleText3: ; 518f2 (14:58f2) + TX_FAR _VictoryRoad2AfterBattleText3 + db "@" + +VictoryRoad2BattleText4: ; 518f7 (14:58f7) + TX_FAR _VictoryRoad2BattleText4 + db "@" + +VictoryRoad2EndBattleText4: ; 518fc (14:58fc) + TX_FAR _VictoryRoad2EndBattleText4 + db "@" + +VictoryRoad2AfterBattleText4: ; 51901 (14:5901) + TX_FAR _VictoryRoad2AfterBattleText4 + db "@" + +VictoryRoad2BattleText5: ; 51906 (14:5906) + TX_FAR _VictoryRoad2BattleText5 + db "@" + +VictoryRoad2EndBattleText5: ; 5190b (14:590b) + TX_FAR _VictoryRoad2EndBattleText5 + db "@" + +VictoryRoad2AfterBattleText5: ; 51910 (14:5910) + TX_FAR _VictoryRoad2AfterBattleText5 + db "@" diff --git a/scripts/victoryroad3.asm b/scripts/victoryroad3.asm new file mode 100755 index 00000000..f2e08ca4 --- /dev/null +++ b/scripts/victoryroad3.asm @@ -0,0 +1,205 @@ +VictoryRoad3Script: ; 44980 (11:4980) + call VictoryRoad3Script_44996 + call EnableAutoTextBoxDrawing + ld hl, VictoryRoad3TrainerHeaders + ld de, VictoryRoad3ScriptPointers + ld a, [W_VICTORYROAD3CURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_VICTORYROAD3CURSCRIPT], a + ret + +VictoryRoad3Script_44996: ; 44996 (11:4996) + ld hl, $d126 + bit 5, [hl] + res 5, [hl] + ret z + ld hl, $d813 + bit 0, [hl] + ret z + ld a, $1d + ld [$d09f], a + ld bc, $503 + ld a, $17 + jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + +VictoryRoad3ScriptPointers: ; 449b1 (11:49b1) + dw VictoryRoad3Script0 + dw Func_324c + dw EndTrainerBattle + +VictoryRoad3Script0: ; 449b7 (11:49b7) + ld hl, wFlags_0xcd60 + bit 7, [hl] + res 7, [hl] + jp z, .asm_449fe + ld hl, .coordsData_449f9 ; $49f9 + call CheckBoulderCoords + jp nc, .asm_449fe + ld a, [wWhichTrade] ; $cd3d + cp $1 + jr nz, .asm_449dc + ld hl, $d126 + set 5, [hl] + ld hl, $d813 + set 0, [hl] + ret +.asm_449dc + ld hl, $d813 + bit 6, [hl] + set 6, [hl] + jr nz, .asm_449fe + ld a, $7a + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + ld a, $60 + ld [$cc4d], a + ld a, $15 + jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8)) + +.coordsData_449f9: ; 449f9 (11:49f9) + db $05,$03 + db $0F,$17 + db $FF + +.asm_449fe + ld a, $c2 + ld [$d71d], a + ld hl, .coordsData_449f9 ; $49f9 + call Func_46981 + ld a, [wWhichTrade] ; $cd3d + cp $1 + jr nz, .asm_44a1b + ld hl, $d72d + res 4, [hl] + ld hl, $d732 + res 4, [hl] + ret +.asm_44a1b + ld a, [$d72d] + bit 4, a + jp z, CheckFightingMapTrainers + ret + +VictoryRoad3TextPointers: ; 44a24 (11:4a24) + dw VictoryRoad3Text1 + dw VictoryRoad3Text2 + dw VictoryRoad3Text3 + dw VictoryRoad3Text4 + dw Predef5CText + dw Predef5CText + dw BoulderText + dw BoulderText + dw BoulderText + dw BoulderText + +VictoryRoad3TrainerHeaders: ; 44a38 (11:4a38) +VictoryRoad3TrainerHeader0: ; 44a38 (11:4a38) + db $1 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d813 ; flag's byte + dw VictoryRoad3BattleText2 ; 0x4a91 TextBeforeBattle + dw VictoryRoad3AfterBattleText2 ; 0x4a9b TextAfterBattle + dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle + dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle + +VictoryRoad3TrainerHeader2: ; 44a44 (11:4a44) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d813 ; flag's byte + dw VictoryRoad3BattleText3 ; 0x4aa0 TextBeforeBattle + dw VictoryRoad3AfterBattleText3 ; 0x4aaa TextAfterBattle + dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle + dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle + +VictoryRoad3TrainerHeader3: ; 44a50 (11:4a50) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d813 ; flag's byte + dw VictoryRoad3BattleText4 ; 0x4aaf TextBeforeBattle + dw VictoryRoad3AfterBattleText4 ; 0x4ab9 TextAfterBattle + dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle + dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle + +VictoryRoad3TrainerHeader4: ; 44a5c (11:4a5c) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d813 ; flag's byte + dw VictoryRoad3BattleText5 ; 0x4abe TextBeforeBattle + dw VictoryRoad3AfterBattleText5 ; 0x4ac8 TextAfterBattle + dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle + dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle + + db $ff + +VictoryRoad3Text1: ; 44a69 (11:4a69) + db $08 ; asm + ld hl, VictoryRoad3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad3Text2: ; 44a73 (11:4a73) + db $08 ; asm + ld hl, VictoryRoad3TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad3Text3: ; 44a7d (11:4a7d) + db $08 ; asm + ld hl, VictoryRoad3TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad3Text4: ; 44a87 (11:4a87) + db $08 ; asm + ld hl, VictoryRoad3TrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +VictoryRoad3BattleText2: ; 44a91 (11:4a91) + TX_FAR _VictoryRoad3BattleText2 + db "@" + +VictoryRoad3EndBattleText2: ; 44a96 (11:4a96) + TX_FAR _VictoryRoad3EndBattleText2 + db "@" + +VictoryRoad3AfterBattleText2: ; 44a9b (11:4a9b) + TX_FAR _VictoryRoad3AfterBattleText2 + db "@" + +VictoryRoad3BattleText3: ; 44aa0 (11:4aa0) + TX_FAR _VictoryRoad3BattleText3 + db "@" + +VictoryRoad3EndBattleText3: ; 44aa5 (11:4aa5) + TX_FAR _VictoryRoad3EndBattleText3 + db "@" + +VictoryRoad3AfterBattleText3: ; 44aaa (11:4aaa) + TX_FAR _VictoryRoad3AfterBattleText3 + db "@" + +VictoryRoad3BattleText4: ; 44aaf (11:4aaf) + TX_FAR _VictoryRoad3BattleText4 + db "@" + +VictoryRoad3EndBattleText4: ; 44ab4 (11:4ab4) + TX_FAR _VictoryRoad3EndBattleText4 + db "@" + +VictoryRoad3AfterBattleText4: ; 44ab9 (11:4ab9) + TX_FAR _VictoryRoad3AfterBattleText4 + db "@" + +VictoryRoad3BattleText5: ; 44abe (11:4abe) + TX_FAR _VictoryRoad3BattleText5 + db "@" + +VictoryRoad3EndBattleText5: ; 44ac3 (11:4ac3) + TX_FAR _VictoryRoad3EndBattleText5 + db "@" + +VictoryRoad3AfterBattleText5: ; 44ac8 (11:4ac8) + TX_FAR _VictoryRoad3AfterBattleText5 + db "@" diff --git a/scripts/viridiancity.asm b/scripts/viridiancity.asm new file mode 100755 index 00000000..4bb04ba7 --- /dev/null +++ b/scripts/viridiancity.asm @@ -0,0 +1,333 @@ +ViridianCityScript: ; 18ff1 (6:4ff1) + call EnableAutoTextBoxDrawing + ld hl, ViridianCityScriptPointers + ld a, [W_VIRIDIANCITYCURSCRIPT] + jp CallFunctionInTable + +ViridianCityScriptPointers: ; 18ffd (6:4ffd) + dw ViridianCityScript0 + dw ViridianCityScript1 + dw ViridianCityScript2 + dw ViridianCityScript3 + +ViridianCityScript0: ; 19005 (6:5005) + call ViridianCityScript_1900b + jp ViridianCityScript_1903d + +ViridianCityScript_1900b: ; 1900b (6:500b) + ld a, [$d74c] + bit 0, a + ret nz + ld a, [W_OBTAINEDBADGES] + cp %01111111 + jr nz, .asm_1901e ; 0x19016 $6 + ld hl, $d74c + set 0, [hl] + ret +.asm_1901e + ld a, [W_YCOORD] + cp $8 + ret nz + ld a, [W_XCOORD] + cp $20 + ret nz + ld a, $e + ld [$ff8c], a + call DisplayTextID + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + call ViridianCityScript_190cf + ld a, $3 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript_1903d: ; 1903d (6:503d) + ld a, [$d74b] + bit 5, a + ret nz + ld a, [W_YCOORD] + cp $9 + ret nz + ld a, [W_XCOORD] + cp $13 + ret nz + ld a, $5 + ld [$ff8c], a + call DisplayTextID + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + call ViridianCityScript_190cf + ld a, $3 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript1: ; 19062 (6:5062) + ld a, [$c134] + ld [$ffeb], a + ld a, [$c136] + ld [$ffec], a + ld a, [$c234] + ld [$ffed], a + ld a, [$c235] + ld [$ffee], a + xor a + ld [wListScrollOffset], a + + ; set up battle for Old Man + ld a, $1 + ld [W_BATTLETYPE], a + ld a, 5 + ld [W_CURENEMYLVL], a + ld a, WEEDLE + ld [W_CUROPPONENT], a + ld a, $2 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript2: ; 1908f (6:508f) + ld a, [$ffeb] + ld [$c134], a + ld a, [$ffec] + ld [$c136], a + ld a, [$ffed] + ld [$c234], a + ld a, [$ffee] + ld [$c235], a + call UpdateSprites + call Delay3 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $f + ld [$ff8c], a + call DisplayTextID + xor a + ld [W_BATTLETYPE], a + ld [wJoypadForbiddenButtonsMask], a + ld a, $0 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript3: ; 190c1 (6:50c1) + ld a, [$cd38] + and a + ret nz + call Delay3 + ld a, 0 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript_190cf: ; 190cf (6:50cf) + call Func_3486 + ld a, $1 + ld [$cd38], a + ld a, $80 + ld [$ccd3], a + xor a + ld [$c109], a + ld [wJoypadForbiddenButtonsMask], a + ret + +ViridianCityTextPointers: ; 190e4 (6:50e4) + dw ViridianCityText1 + dw ViridianCityText2 + dw ViridianCityText3 + dw ViridianCityText4 + dw ViridianCityText5 + dw ViridianCityText6 + dw ViridianCityText7 + dw ViridianCityText8 + dw ViridianCityText9 + dw ViridianCityText10 + dw MartSignText + dw PokeCenterSignText + dw ViridianCityText13 + dw ViridianCityText14 + dw ViridianCityText15 + +ViridianCityText1: ; 19102 (6:5102) + TX_FAR _ViridianCityText1 + db "@" + +ViridianCityText2: ; 19107 (6:5107) + db $08 ; asm + ld a, [W_OBTAINEDBADGES] + cp %01111111 + ld hl, ViridianCityText_19127 + jr z, .asm_ae9fe ; 0x19110 + ld a, [$d751] + bit 1, a + jr nz, .asm_ae9fe ; 0x19117 + ld hl, ViridianCityText_19122 +.asm_ae9fe ; 0x1911c + call PrintText + jp TextScriptEnd + +ViridianCityText_19122: ; 19122 (6:5122) + TX_FAR _ViridianCityText_19122 + db "@" + +ViridianCityText_19127: ; 19127 (6:5127) + TX_FAR _ViridianCityText_19127 + db "@" + +ViridianCityText3: ; 1912c (6:512c) + db $08 ; asm + ld hl, ViridianCityText_1914d + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_6dfea ; 0x1913a + ld hl, ViridianCityText_19157 + call PrintText + jr .asm_d611f ; 0x19142 +.asm_6dfea ; 0x19144 + ld hl, ViridianCityText_19152 + call PrintText +.asm_d611f ; 0x1914a + jp TextScriptEnd + +ViridianCityText_1914d: ; 1914d (6:514d) + TX_FAR _ViridianCityText_1914d + db "@" + +ViridianCityText_19152: ; 19152 (6:5152) + TX_FAR _ViridianCityText_19152 + db "@" + +ViridianCityText_19157: ; 19157 (6:5157) + TX_FAR _ViridianCityText_19157 + db "@" + +ViridianCityText4: ; 1915c (6:515c) + db $08 ; asm + ld a, [$d74b] + bit 5, a + jr nz, .asm_83894 ; 0x19162 + ld hl, ViridianCityText_19175 + call PrintText + jr .asm_700a6 ; 0x1916a +.asm_83894 ; 0x1916c + ld hl, ViridianCityText_1917a + call PrintText +.asm_700a6 ; 0x19172 + jp TextScriptEnd + +ViridianCityText_19175: ; 19175 (6:5175) + TX_FAR _ViridianCityText_19175 + db "@" + +ViridianCityText_1917a: ; 1917a (6:517a) + TX_FAR _ViridianCityText_1917a + db "@" + +ViridianCityText5: ; 1917f (6:517f) + db $08 ; asm + ld hl, ViridianCityText_19191 + call PrintText + call ViridianCityScript_190cf + ld a, $3 + ld [W_VIRIDIANCITYCURSCRIPT], a + jp TextScriptEnd + +ViridianCityText_19191: ; 19191 (6:5191) + TX_FAR _ViridianCityText_19191 + db "@" + +ViridianCityText6: ; 19196 (6:5196) + db $08 ; asm + ld a, [$d74c] + bit 1, a + jr nz, .asm_4e5a0 ; 0x1919c + ld hl, ViridianCityText_191ca + call PrintText + ld bc, (TM_42 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld hl, ReceivedTM42Text + call PrintText + ld hl, $d74c + set 1, [hl] + jr .asm_3c73c ; 0x191b7 +.BagFull + ld hl, TM42NoRoomText + call PrintText + jr .asm_3c73c ; 0x191bf +.asm_4e5a0 ; 0x191c1 + ld hl, TM42Explanation + call PrintText +.asm_3c73c ; 0x191c7 + jp TextScriptEnd + +ViridianCityText_191ca: ; 191ca (6:51ca) + TX_FAR _ViridianCityText_191ca + db "@" + +ReceivedTM42Text: ; 191cf (6:51cf) + TX_FAR _ReceivedTM42Text + db $10, "@" + +TM42Explanation: ; 191d5 (6:51d5) + TX_FAR _TM42Explanation + db "@" + +TM42NoRoomText: ; 191da (6:51da) + TX_FAR _TM42NoRoomText + db "@" + +ViridianCityText7: ; 191df (6:51df) + db $08 ; asm + ld hl, ViridianCityText_1920a + call PrintText + ld c, $2 + call DelayFrames + call YesNoChoice + ld a, [$cc26] + and a + jr z, .asm_42f68 ; 0x191f2 + ld hl, ViridianCityText_1920f + call PrintText + ld a, $1 + ld [W_VIRIDIANCITYCURSCRIPT], a + jr .asm_2413a ; 0x191ff +.asm_42f68 ; 0x19201 + ld hl, ViridianCityText_19214 + call PrintText +.asm_2413a ; 0x19207 + jp TextScriptEnd + +ViridianCityText_1920a: ; 1920a (6:520a) + TX_FAR _ViridianCityText_1920a + db "@" + +ViridianCityText_1920f: ; 1920f (6:520f) + TX_FAR _ViridianCityText_1920f + db "@" + +ViridianCityText_19214: ; 19214 (6:5214) + TX_FAR _ViridianCityText_19214 + db "@" + +ViridianCityText15: ; 19219 (6:5219) + TX_FAR _ViridianCityText_19219 + db "@" + +ViridianCityText8: ; 1921e (6:521e) + TX_FAR _ViridianCityText8 + db "@" + +ViridianCityText9: ; 19223 (6:5223) + TX_FAR _ViridianCityText9 + db "@" + +ViridianCityText10: ; 19228 (6:5228) + TX_FAR _ViridianCityText10 + db "@" + +ViridianCityText13: ; 1922d (6:522d) + TX_FAR _ViridianCityText13 + db "@" + +ViridianCityText14: ; 19232 (6:5232) + TX_FAR _ViridianCityText14 + db "@" diff --git a/scripts/viridianforest.asm b/scripts/viridianforest.asm new file mode 100755 index 00000000..4e55733b --- /dev/null +++ b/scripts/viridianforest.asm @@ -0,0 +1,145 @@ +ViridianForestScript: ; 6110d (18:510d) + call EnableAutoTextBoxDrawing + ld hl, ViridianForestTrainerHeaders + ld de, ViridianForestScriptPointers + ld a, [W_VIRIDIANFORESTCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_VIRIDIANFORESTCURSCRIPT], a + ret + +ViridianForestScriptPointers: ; 61120 (18:5120) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + +ViridianForestTextPointers: ; 61126 (18:5126) + dw ViridianForestText1 + dw ViridianForestText2 + dw ViridianForestText3 + dw ViridianForestText4 + dw Predef5CText + dw Predef5CText + dw Predef5CText + dw ViridianForestText8 + dw ViridianForestText9 + dw ViridianForestText10 + dw ViridianForestText11 + dw ViridianForestText12 + dw ViridianForestText13 + dw ViridianForestText14 + +ViridianForestTrainerHeaders: ; 61142 (18:5142) +ViridianForestTrainerHeader0: ; 61142 (18:5142) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7f3 ; flag's byte + dw ViridianForestBattleText1 ; 0x518a TextBeforeBattle + dw ViridianForestAfterBattleText1 ; 0x5194 TextAfterBattle + dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle + dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle + +ViridianForestTrainerHeader1: ; 6114e (18:514e) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d7f3 ; flag's byte + dw ViridianForestBattleText2 ; 0x5199 TextBeforeBattle + dw ViridianForestAfterBattleText2 ; 0x51a3 TextAfterBattle + dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle + dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle + +ViridianForestTrainerHeader2: ; 6115a (18:515a) + db $4 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d7f3 ; flag's byte + dw ViridianForestBattleText3 ; 0x51a8 TextBeforeBattle + dw ViridianForestAfterBattleText3 ; 0x51b2 TextAfterBattle + dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle + dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle + + db $ff + +ViridianForestText1: ; 61167 (18:5167) + TX_FAR _ViridianForestText1 + db "@" + +ViridianForestText2: ; 6116c (18:516c) + db $08 ; asm + ld hl, ViridianForestTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +ViridianForestText3: ; 61176 (18:5176) + db $08 ; asm + ld hl, ViridianForestTrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +ViridianForestText4: ; 61180 (18:5180) + db $08 ; asm + ld hl, ViridianForestTrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +ViridianForestBattleText1: ; 6118a (18:518a) + TX_FAR _ViridianForestBattleText1 + db "@" + +ViridianForestEndBattleText1: ; 6118f (18:518f) + TX_FAR _ViridianForestEndBattleText1 + db "@" + +ViridianForestAfterBattleText1: ; 61194 (18:5194) + TX_FAR _ViridianFrstAfterBattleText1 + db "@" + +ViridianForestBattleText2: ; 61199 (18:5199) + TX_FAR _ViridianForestBattleText2 + db "@" + +ViridianForestEndBattleText2: ; 6119e (18:519e) + TX_FAR _ViridianForestEndBattleText2 + db "@" + +ViridianForestAfterBattleText2: ; 611a3 (18:51a3) + TX_FAR _ViridianFrstAfterBattleText2 + db "@" + +ViridianForestBattleText3: ; 611a8 (18:51a8) + TX_FAR _ViridianForestBattleText3 + db "@" + +ViridianForestEndBattleText3: ; 611ad (18:51ad) + TX_FAR _ViridianForestEndBattleText3 + db "@" + +ViridianForestAfterBattleText3: ; 611b2 (18:51b2) + TX_FAR _ViridianFrstAfterBattleText3 + db "@" + +ViridianForestText8: ; 611b7 (18:51b7) + TX_FAR _ViridianForestText8 + db "@" + +ViridianForestText9: ; 611bc (18:51bc) + TX_FAR _ViridianForestText9 + db "@" + +ViridianForestText10: ; 611c1 (18:51c1) + TX_FAR _ViridianForestText10 + db "@" + +ViridianForestText11: ; 611c6 (18:51c6) + TX_FAR _ViridianForestText11 + db "@" + +ViridianForestText12: ; 611cb (18:51cb) + TX_FAR _ViridianForestText12 + db "@" + +ViridianForestText13: ; 611d0 (18:51d0) + TX_FAR _ViridianForestText13 + db "@" + +ViridianForestText14: ; 611d5 (18:51d5) + TX_FAR _ViridianForestText14 + db "@" diff --git a/scripts/viridianforestentrance.asm b/scripts/viridianforestentrance.asm new file mode 100755 index 00000000..14b6cf49 --- /dev/null +++ b/scripts/viridianforestentrance.asm @@ -0,0 +1,14 @@ +ViridianForestEntranceScript: ; 5d65c (17:565c) + jp EnableAutoTextBoxDrawing + +ViridianForestEntranceTextPointers: ; 5d65f (17:565f) + dw ViridianForestEntranceText1 + dw ViridianForestEntranceText2 + +ViridianForestEntranceText1: ; 5d663 (17:5663) + TX_FAR _ViridianForestEntranceText1 + db "@" + +ViridianForestEntranceText2: ; 5d668 (17:5668) + TX_FAR _ViridianForestEntranceText2 + db "@" diff --git a/scripts/viridianforestexit.asm b/scripts/viridianforestexit.asm new file mode 100755 index 00000000..0d4d4b29 --- /dev/null +++ b/scripts/viridianforestexit.asm @@ -0,0 +1,14 @@ +ViridianForestExitScript: ; 5d587 (17:5587) + jp EnableAutoTextBoxDrawing + +ViridianForestExitTextPointers: ; 5d58a (17:558a) + dw ViridianForestExitText1 + dw ViridianForestExitText2 + +ViridianForestExitText1: ; 5d58e (17:558e) + TX_FAR _ViridianForestExitText1 + db "@" + +ViridianForestExitText2: ; 5d593 (17:5593) + TX_FAR _ViridianForestExitText2 + db "@" diff --git a/scripts/viridiangym.asm b/scripts/viridiangym.asm new file mode 100755 index 00000000..0f042339 --- /dev/null +++ b/scripts/viridiangym.asm @@ -0,0 +1,514 @@ +ViridianGymScript: ; 748a3 (1d:48a3) + ld hl, Gym8CityName + ld de, Gym8LeaderName + call LoadGymLeaderAndCityName + call EnableAutoTextBoxDrawing + ld hl, ViridianGymTrainerHeaders + ld de, ViridianGymScriptPointers + ld a, [W_VIRIDIANGYMCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_VIRIDIANGYMCURSCRIPT], a + ret + +Gym8CityName: ; 748bf (1d:48bf) + db "VIRIDIAN CITY@" +Gym8LeaderName: ; 748cd (1d:48cd) + db "GIOVANNI@" + +ViridianGymScript_748d6: ; 748d6 (1d:48d6) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_VIRIDIANGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +ViridianGymScriptPointers: ; 748e1 (1d:48e1) + dw ViridianGymScript0 + dw Func_324c + dw EndTrainerBattle + dw ViridianGymScript3 + dw ViridianGymScript4 + +ViridianGymScript0: ; 748eb (1d:48eb) + ld a, [W_YCOORD] ; $d361 + ld b, a + ld a, [W_XCOORD] ; $d362 + ld c, a + ld hl, ViridianGymArrowTilePlayerMovement + call Func_3442 + cp $ff + jp z, CheckFightingMapTrainers + call Func_3486 + ld hl, $d736 + set 7, [hl] + ld a, (SFX_02_52 - SFX_Headers_02) / 3 + call PlaySound + ld a, $ff + ld [wJoypadForbiddenButtonsMask], a + ld a, $4 + ld [W_CURMAPSCRIPT], a + ret + +;format: +;db y,x +;dw pointer to movement +ViridianGymArrowTilePlayerMovement: ; 74916 (1d:4916) + db $b,$13 + dw ViridianGymArrowMovement1 + db $1,$13 + dw ViridianGymArrowMovement2 + db $2,$12 + dw ViridianGymArrowMovement3 + db $2,$b + dw ViridianGymArrowMovement4 + db $a,$10 + dw ViridianGymArrowMovement5 + db $6,$4 + dw ViridianGymArrowMovement6 + db $d,$5 + dw ViridianGymArrowMovement7 + db $e,$4 + dw ViridianGymArrowMovement8 + db $f,$0 + dw ViridianGymArrowMovement9 + db $f,$1 + dw ViridianGymArrowMovement10 + db $10,$d + dw ViridianGymArrowMovement11 + db $11,$d + dw ViridianGymArrowMovement12 + db $FF + +;format: direction, count +;right: $10 +;left: $20 +;up: $40 +;down: $80 +ViridianGymArrowMovement1: ; 74947 (1d:4947) + db $40,$09,$FF + +ViridianGymArrowMovement2: ; 7494a (1d:494a) + db $20,$08,$FF + +ViridianGymArrowMovement3: ; 7494d (1d:494d) + db $80,$09,$FF + +ViridianGymArrowMovement4: ; 74950 (1d:4950) + db $10,$06,$FF + +ViridianGymArrowMovement5: ; 74953 (1d:4953) + db $80,$02,$FF + +ViridianGymArrowMovement6: ; 74956 (1d:4956) + db $80,$07,$FF + +ViridianGymArrowMovement7: ; 74959 (1d:4959) + db $10,$08,$FF + +ViridianGymArrowMovement8: ; 7495c (1d:495c) + db $10,$09,$FF + +ViridianGymArrowMovement9: ; 7495f (1d:495f) + db $40,$08,$FF + +ViridianGymArrowMovement10: ; 74962 (1d:4962) + db $40,$06,$FF + +ViridianGymArrowMovement11: ; 74965 (1d:4965) + db $20,$06,$FF + +ViridianGymArrowMovement12: ; 74968 (1d:4968) + db $20,$0C,$FF + +ViridianGymScript4: ; 7496b (1d:496b) + ld a, [$cd38] + and a + jr nz, .asm_74980 + xor a + ld [wJoypadForbiddenButtonsMask], a + ld hl, $d736 + res 7, [hl] + ld a, $0 + ld [W_CURMAPSCRIPT], a + ret +.asm_74980 + ld b, BANK(LoadSpinnerArrowTiles) + ld hl, LoadSpinnerArrowTiles + jp Bankswitch + +ViridianGymScript3: ; 74988 (1d:4988) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, ViridianGymScript_748d6 + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a +ViridianGymScript3_74995: ; 74995 (1d:4995) + ld a, $c + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d751 + set 1, [hl] + ld bc, (TM_27 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $d + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d751 + set 0, [hl] + jr .asm_749be +.BagFull + ld a, $e + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_749be + ld hl, W_OBTAINEDBADGES + set 7, [hl] + ld hl, $d72a + set 7, [hl] + + ; deactivate gym trainers + ld a, [$d751] + or %11111100 + ld [$d751], a + ld a, [$d752] + or %00000011 + ld [$d752], a + + ld a, $23 + ld [$cc4d], a + ld a, $15 + call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8)) + ld hl, $d7eb + set 1, [hl] + set 7, [hl] + jp ViridianGymScript_748d6 + +ViridianGymTextPointers: ; 749ec (1d:49ec) + dw ViridianGymText1 + dw ViridianGymText2 + dw ViridianGymText3 + dw ViridianGymText4 + dw ViridianGymText5 + dw ViridianGymText6 + dw ViridianGymText7 + dw ViridianGymText8 + dw ViridianGymText9 + dw ViridianGymText10 + dw Predef5CText + dw ViridianGymText12 + dw ViridianGymText13 + dw ViridianGymText14 + +ViridianGymTrainerHeaders: ; 74a08 (1d:4a08) +ViridianGymTrainerHeader0: ; 74a08 (1d:4a08) + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d751 ; flag's byte + dw ViridianGymBattleText1 ; 0x4afd TextBeforeBattle + dw ViridianGymAfterBattleText1 ; 0x4b07 TextAfterBattle + dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle + dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle + +ViridianGymTrainerHeader1: ; 74a14 (1d:4a14) + db $3 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d751 ; flag's byte + dw ViridianGymBattleText2 ; 0x4b16 TextBeforeBattle + dw ViridianGymAfterBattleText2 ; 0x4b20 TextAfterBattle + dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle + dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle + +ViridianGymTrainerHeader2: ; 74a20 (1d:4a20) + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d751 ; flag's byte + dw ViridianGymBattleText3 ; 0x4b2f TextBeforeBattle + dw ViridianGymAfterBattleText3 ; 0x4b39 TextAfterBattle + dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle + dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle + +ViridianGymTrainerHeader3: ; 74a2c (1d:4a2c) + db $5 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d751 ; flag's byte + dw ViridianGymBattleText4 ; 0x4b48 TextBeforeBattle + dw ViridianGymAfterBattleText4 ; 0x4b52 TextAfterBattle + dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle + dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle + +ViridianGymTrainerHeader4: ; 74a38 (1d:4a38) + db $6 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d751 ; flag's byte + dw ViridianGymBattleText5 ; 0x4b61 TextBeforeBattle + dw ViridianGymAfterBattleText5 ; 0x4b6b TextAfterBattle + dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle + dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle + +ViridianGymTrainerHeader5: ; 74a44 (1d:4a44) + db $7 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d751 ; flag's byte + dw ViridianGymBattleText6 ; 0x4b7a TextBeforeBattle + dw ViridianGymAfterBattleText6 ; 0x4b84 TextAfterBattle + dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle + dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle + +ViridianGymTrainerHeader6: ; 74a50 (1d:4a50) + db $8 ; flag's bit + db ($3 << 4) ; trainer's view range + dw $d751 ; flag's byte + dw ViridianGymBattleText7 ; 0x4b93 TextBeforeBattle + dw ViridianGymAfterBattleText7 ; 0x4b9d TextAfterBattle + dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle + dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle + +ViridianGymTrainerHeader7: ; 74a5c (1d:4a5c) + db $9 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d751 ; flag's byte + dw ViridianGymBattleText8 ; 0x4bac TextBeforeBattle + dw ViridianGymAfterBattleText8 ; 0x4bb6 TextAfterBattle + dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle + dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle + + db $ff + +ViridianGymText1: ; 74a69 (1d:4a69) + db $08 ; asm + ld a, [$d751] + bit 1, a + jr z, .asm_6de66 ; 0x74a6f + bit 0, a + jr nz, .asm_9fc95 ; 0x74a73 + call z, ViridianGymScript3_74995 + call DisableWaitingAfterTextDisplay + jr .asm_6dff7 ; 0x74a7b +.asm_9fc95 ; 0x74a7d + ld a, $1 + ld [$cc3c], a + ld hl, ViridianGymText_74ad9 + call PrintText + call GBFadeIn1 + ld a, $32 + ld [$cc4d], a + ld a, $11 + call Predef + call UpdateSprites + call Delay3 + call GBFadeOut1 + jr .asm_6dff7 ; 0x74a9e +.asm_6de66 ; 0x74aa0 + ld hl, ViridianGymText_74ace + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, ViridianGymText_74ad3 + ld de, ViridianGymText_74ad3 + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $8 + ld [$d05c], a + ld a, $3 + ld [W_VIRIDIANGYMCURSCRIPT], a +.asm_6dff7 ; 0x74acb + jp TextScriptEnd + +ViridianGymText_74ace: ; 74ace (1d:4ace) + TX_FAR _ViridianGymText_74ace + db "@" + +ViridianGymText_74ad3: ; 74ad3 (1d:4ad3) + TX_FAR _ViridianGymText_74ad3 + db $0b, "@" + +ViridianGymText_74ad9: ; 74ad9 (1d:4ad9) + TX_FAR _ViridianGymText_74ad9 + db $0d, "@" + +ViridianGymText12: ; 74adf (1d:4adf) + TX_FAR _ViridianGymText12 + db "@" + +ViridianGymText13: ; 74ae4 (1d:4ae4) + TX_FAR _ReceivedTM27Text + db $0b + +TM27ExplanationText: ; 74ae9 (1d:4ae9) + TX_FAR _TM27ExplanationText + db "@" + +ViridianGymText14: ; 74aee (1d:4aee) + TX_FAR _TM27NoRoomText + db "@" + +ViridianGymText2: ; 74af3 (1d:4af3) + db $08 ; asm + ld hl, ViridianGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +ViridianGymBattleText1: ; 74afd (1d:4afd) + TX_FAR _ViridianGymBattleText1 + db "@" + +ViridianGymEndBattleText1: ; 74b02 (1d:4b02) + TX_FAR _ViridianGymEndBattleText1 + db "@" + +ViridianGymAfterBattleText1: ; 74b07 (1d:4b07) + TX_FAR _ViridianGymAfterBattleText1 + db "@" + +ViridianGymText3: ; 74b0c (1d:4b0c) + db $08 ; asm + ld hl, ViridianGymTrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +ViridianGymBattleText2: ; 74b16 (1d:4b16) + TX_FAR _ViridianGymBattleText2 + db "@" + +ViridianGymEndBattleText2: ; 74b1b (1d:4b1b) + TX_FAR _ViridianGymEndBattleText2 + db "@" + +ViridianGymAfterBattleText2: ; 74b20 (1d:4b20) + TX_FAR _ViridianGymAfterBattleText2 + db "@" + +ViridianGymText4: ; 74b25 (1d:4b25) + db $08 ; asm + ld hl, ViridianGymTrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +ViridianGymBattleText3: ; 74b2f (1d:4b2f) + TX_FAR _ViridianGymBattleText3 + db "@" + +ViridianGymEndBattleText3: ; 74b34 (1d:4b34) + TX_FAR _ViridianGymEndBattleText3 + db "@" + +ViridianGymAfterBattleText3: ; 74b39 (1d:4b39) + TX_FAR _ViridianGymAfterBattleText3 + db "@" + +ViridianGymText5: ; 74b3e (1d:4b3e) + db $08 ; asm + ld hl, ViridianGymTrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +ViridianGymBattleText4: ; 74b48 (1d:4b48) + TX_FAR _ViridianGymBattleText4 + db "@" + +ViridianGymEndBattleText4: ; 74b4d (1d:4b4d) + TX_FAR _ViridianGymEndBattleText4 + db "@" + +ViridianGymAfterBattleText4: ; 74b52 (1d:4b52) + TX_FAR _ViridianGymAfterBattleText4 + db "@" + +ViridianGymText6: ; 74b57 (1d:4b57) + db $08 ; asm + ld hl, ViridianGymTrainerHeader4 + call TalkToTrainer + jp TextScriptEnd + +ViridianGymBattleText5: ; 74b61 (1d:4b61) + TX_FAR _ViridianGymBattleText5 + db "@" + +ViridianGymEndBattleText5: ; 74b66 (1d:4b66) + TX_FAR _ViridianGymEndBattleText5 + db "@" + +ViridianGymAfterBattleText5: ; 74b6b (1d:4b6b) + TX_FAR _ViridianGymAfterBattleText5 + db "@" + +ViridianGymText7: ; 74b70 (1d:4b70) + db $08 ; asm + ld hl, ViridianGymTrainerHeader5 + call TalkToTrainer + jp TextScriptEnd + +ViridianGymBattleText6: ; 74b7a (1d:4b7a) + TX_FAR _ViridianGymBattleText6 + db "@" + +ViridianGymEndBattleText6: ; 74b7f (1d:4b7f) + TX_FAR _ViridianGymEndBattleText6 + db "@" + +ViridianGymAfterBattleText6: ; 74b84 (1d:4b84) + TX_FAR _ViridianGymAfterBattleText6 + db "@" + +ViridianGymText8: ; 74b89 (1d:4b89) + db $08 ; asm + ld hl, ViridianGymTrainerHeader6 + call TalkToTrainer + jp TextScriptEnd + +ViridianGymBattleText7: ; 74b93 (1d:4b93) + TX_FAR _ViridianGymBattleText7 + db "@" + +ViridianGymEndBattleText7: ; 74b98 (1d:4b98) + TX_FAR _ViridianGymEndBattleText7 + db "@" + +ViridianGymAfterBattleText7: ; 74b9d (1d:4b9d) + TX_FAR _ViridianGymAfterBattleText7 + db "@" + +ViridianGymText9: ; 74ba2 (1d:4ba2) + db $08 ; asm + ld hl, ViridianGymTrainerHeader7 + call TalkToTrainer + jp TextScriptEnd + +ViridianGymBattleText8: ; 74bac (1d:4bac) + TX_FAR _ViridianGymBattleText8 + db "@" + +ViridianGymEndBattleText8: ; 74bb1 (1d:4bb1) + TX_FAR _ViridianGymEndBattleText8 + db "@" + +ViridianGymAfterBattleText8: ; 74bb6 (1d:4bb6) + TX_FAR _ViridianGymAfterBattleText8 + db "@" + +ViridianGymText10: ; 74bbb (1d:4bbb) + db $08 ; asm + ld a, [$d751] + bit 1, a + jr nz, .asm_1abd1 ; 0x74bc1 + ld hl, ViridianGymText_74bd4 + call PrintText + jr .asm_6064d ; 0x74bc9 +.asm_1abd1 ; 0x74bcb + ld hl, ViridianGymText_74bd9 + call PrintText +.asm_6064d ; 0x74bd1 + jp TextScriptEnd + +ViridianGymText_74bd4: ; 74bd4 (1d:4bd4) + TX_FAR _ViridianGymText_74bd4 + db "@" + +ViridianGymText_74bd9: ; 74bd9 (1d:4bd9) + TX_FAR _ViridianGymText_74bd9 + db "@" diff --git a/scripts/viridianhouse.asm b/scripts/viridianhouse.asm new file mode 100755 index 00000000..ab8b6786 --- /dev/null +++ b/scripts/viridianhouse.asm @@ -0,0 +1,33 @@ +ViridianHouseScript: ; 1d58a (7:558a) + jp EnableAutoTextBoxDrawing + +ViridianHouseTextPointers: ; 1d58d (7:558d) + dw ViridianHouseText1 + dw ViridianHouseText2 + dw ViridianHouseText3 + dw ViridianHouseText4 + +ViridianHouseText1: ; 1d595 (7:5595) + TX_FAR _ViridianHouseText1 + db "@" + +ViridianHouseText2: ; 1d59a (7:559a) + TX_FAR _ViridianHouseText2 + db "@" + +ViridianHouseText3: ; 1d59f (7:559f) + db $08 ; asm + ld hl, ViridianHouseText_1d5b1 + call PrintText + ld a, SPEAROW + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +ViridianHouseText_1d5b1: ; 1d5b1 (7:55b1) + TX_FAR _ViridianHouseText_1d5b1 + db "@" + +ViridianHouseText4: ; 1d5b6 (7:55b6) + TX_FAR _ViridianHouseText4 + db "@" diff --git a/scripts/viridianmart.asm b/scripts/viridianmart.asm new file mode 100755 index 00000000..1c53a5a3 --- /dev/null +++ b/scripts/viridianmart.asm @@ -0,0 +1,95 @@ +ViridianMartScript: ; 1d46e (7:546e) + call ViridianMartScript_1d47d + call EnableAutoTextBoxDrawing + ld hl, ViridianMartScriptPointers + ld a, [W_VIRIDIANMARKETCURSCRIPT] + jp CallFunctionInTable + +ViridianMartScript_1d47d: ; 1d47d (7:547d) + ld a, [$d74e] + bit 0, a + jr nz, .asm_1d489 ; 0x1d482 $5 + ld hl, ViridianMartTextPointers ; $54e0 + jr .asm_1d48c ; 0x1d487 $3 +.asm_1d489 + ld hl, ViridianMartTextPointers + $a ; $54ea ; starts at ViridianMartText6 +.asm_1d48c + ld a, l + ld [W_MAPTEXTPTR], a + ld a, h + ld [W_MAPTEXTPTR+1], a + ret + +ViridianMartScriptPointers: ; 1d495 (7:5495) + dw ViridianMartScript0 + dw ViridianMartScript1 + dw ViridianMartScript2 + +ViridianMartScript0: ; 1d49b (7:549b) + call UpdateSprites + ld a, $4 + ld [$ff8c], a + call DisplayTextID + ld hl, $ccd3 + ld de, RLEMovement1d4bb + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld a, $1 + ld [W_VIRIDIANMARKETCURSCRIPT], a + ret + +RLEMovement1d4bb: ; 1d4bb (7:54bb) + db $20, $01 + db $40, $02 + db $ff + +ViridianMartScript1: ; 1d4c0 (7:54c0) + ld a, [$cd38] + and a + ret nz + call Delay3 + ld a, $5 + ld [$ff8c], a + call DisplayTextID + ld bc, (OAKS_PARCEL << 8) + 1 + call GiveItem + ld hl, $d74e + set 1, [hl] + ld a, $2 + ld [W_VIRIDIANMARKETCURSCRIPT], a + ; fallthrough +ViridianMartScript2: ; 1d4df (7:54df) + ret + +ViridianMartTextPointers: ; 1d4e0 (7:54e0) + dw ViridianMartText1 + dw ViridianMartText2 + dw ViridianMartText3 + dw ViridianMartText4 + dw ViridianMartText5 + dw ViridianMartText6 + dw ViridianMartText2 + dw ViridianMartText3 + +ViridianMartText1: ; 1d4f0 (7:54f0) + TX_FAR _ViridianMartText1 + db "@" + +ViridianMartText4: ; 1d4f5 (7:54f5) + TX_FAR _ViridianMartText4 + db "@" + +ViridianMartText5: ; 1d4fa (7:54fa) + TX_FAR ViridianMartParcelQuestText + db $11 + db "@" + +ViridianMartText2: ; 1d500 (7:5500) + TX_FAR _ViridianMartText2 + db "@" + +ViridianMartText3: ; 1d505 (7:5505) + TX_FAR _ViridianMartText3 + db "@" diff --git a/scripts/viridianpokecenter.asm b/scripts/viridianpokecenter.asm new file mode 100755 index 00000000..08371ce3 --- /dev/null +++ b/scripts/viridianpokecenter.asm @@ -0,0 +1,23 @@ +ViridianPokeCenterScript: ; 4425d (11:425d) + call Func_22fa + jp EnableAutoTextBoxDrawing + +ViridianPokecenterTextPointers: ; 44263 (11:4263) + dw ViridianPokeCenterText1 + dw ViridianPokeCenterText2 + dw ViridianPokeCenterText3 + dw ViridianPokeCenterText4 + +ViridianPokeCenterText1: ; 4426b (11:426b) + db $ff + +ViridianPokeCenterText2: ; 4426c (11:426c) + TX_FAR _ViridianPokeCenterText1 + db "@" + +ViridianPokeCenterText3: ; 44271 (11:4271) + TX_FAR _ViridianPokeCenterText3 + db "@" + +ViridianPokeCenterText4: ; 44276 (11:4276) + db $f6 |