diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | home/map.asm | 2 | ||||
-rw-r--r-- | home/map_objects.asm | 3 | ||||
-rw-r--r-- | home/talk_to_npc.asm | 16 | ||||
-rw-r--r-- | home/unknown_388f.asm | 2 | ||||
-rw-r--r-- | maps/Map13.asm | 26 | ||||
-rw-r--r-- | maps/PlayersHouse1F.asm | 60 | ||||
-rw-r--r-- | maps/PlayersHouse2F.asm | 263 | ||||
-rw-r--r-- | maps/Route1Gate1F.asm | 55 | ||||
-rw-r--r-- | maps/Route1Gate2F.asm | 86 | ||||
-rw-r--r-- | maps/Route1P1.asm | 75 | ||||
-rw-r--r-- | maps/Route1P2.asm | 117 | ||||
-rw-r--r-- | maps/SilentHills.asm | 420 | ||||
-rw-r--r-- | maps/SilentHouse.asm | 171 | ||||
-rw-r--r-- | maps/SilentLabP1.asm | 1108 | ||||
-rw-r--r-- | maps/SilentLabP2.asm | 360 | ||||
-rw-r--r-- | maps/SilentPokecenter.asm | 113 | ||||
-rw-r--r-- | shim.sym | 4 | ||||
-rw-r--r-- | wram.asm | 35 |
19 files changed, 2902 insertions, 16 deletions
@@ -20,7 +20,7 @@ SHIM := shim.sym CORRECTEDROM := $(ROM:%.gb=%-correctheader.gb) rwildcard = $(foreach d, $(wildcard $1*), $(filter $(subst *, %, $2), $d) $(call rwildcard, $d/, $2)) -DIRS := home engine data audio +DIRS := home engine data audio maps OBJS := $(addprefix $(BUILD)/, gfx.o vram.o sram.o wram.o hram.o shim.o) OBJS += $(patsubst %.asm, $(BUILD)/%.o, $(call rwildcard, $(DIRS), *.asm)) diff --git a/home/map.asm b/home/map.asm index a13a2d4..e295894 100644 --- a/home/map.asm +++ b/home/map.asm @@ -470,7 +470,7 @@ Function2407:: ; 00:2407 ld [wPlayerFacing], a ld a, $0 ld d, $0 - call Function19c0 + call SetObjectFacing ret MapSetup_Connection:: ; 2439 diff --git a/home/map_objects.asm b/home/map_objects.asm index 079897a..faa4bb9 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -663,7 +663,8 @@ Function19b5:: res 7, [hl] ret -Function19c0:: +SetObjectFacing:: ; 19C0 + ; a is NPC number, d is direction push de call CheckObjectVisibility pop de diff --git a/home/talk_to_npc.asm b/home/talk_to_npc.asm index 4b2261b..9edee7d 100644 --- a/home/talk_to_npc.asm +++ b/home/talk_to_npc.asm @@ -6,9 +6,9 @@ else SECTION "Unknown 3025", ROM0 [$2fe9] endc -Function3025:: +MapDefaultText:: ld hl, .Text - call StartTextboxWithDebug + call OpenTextbox ret .Text: ; 00:302c @@ -157,8 +157,8 @@ GetFacingPersonText:: ; 00:3103 scf ret -StartTextboxWithDebug:: ; 00:3111 - ; Identical to StartTextbox except it prints debug numbers if in debug mode. +OpenTextbox:: ; 00:3111 + ; Opens a textbox and waits for input push hl call PrepareTextbox ld a, [wDebugFlags] @@ -168,7 +168,7 @@ StartTextboxWithDebug:: ; 00:3111 call TextboxIdle ret -StartTextbox:: ; 00:3122 +OpenTextboxNoInput:: ; 00:3122 push hl call PrepareTextbox pop hl @@ -211,7 +211,7 @@ PrepareTextbox:: ; 00:314E call Bankswitch ret -TextboxCleanup ; 00:3171 +TextboxCleanup: ; 00:3171 callab ReanchorBGMap_NoOAMUpdate call UpdateSprites xor a @@ -224,7 +224,7 @@ TextboxCleanup ; 00:3171 call InitToolgearBuffer ret -Function318f ; 00:318f +Function318f: ; 00:318f callab Function140ea call Function0d02 ret @@ -340,7 +340,7 @@ GetInlineMapObject:: ; 00:31EB and a ret -CheckBPressedDebug ; 3233 +CheckBPressedDebug: ; 3233 ; If in debug mode, returns a check on the B button. ld a, [wDebugFlags] bit DEBUG_FIELD_F, a diff --git a/home/unknown_388f.asm b/home/unknown_388f.asm index 447f6cf..1182506 100644 --- a/home/unknown_388f.asm +++ b/home/unknown_388f.asm @@ -92,7 +92,7 @@ Function3920:: ld hl, wJoypadFlags res 4, [hl] ld hl, .text - call StartTextboxWithDebug + call OpenTextbox call RotateFourPalettesLeft jp Init diff --git a/maps/Map13.asm b/maps/Map13.asm new file mode 100644 index 0000000..b69dc4b --- /dev/null +++ b/maps/Map13.asm @@ -0,0 +1,26 @@ +include "constants.asm" + +SECTION "Map 13 Script", ROMX[$6078], BANK[$34] + +Map13ScriptLoader:: ; 6078 + ld hl, Map13ScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +Map13ScriptPointers: ; 6082 + dw Map13Script + dw Map13NPCIDs + +Map13NPCIDs: ; 6086 + db $FF + +Map13TextPointers: ; 6087 + dw MapDefaultText + dw MapDefaultText + +Map13Script: ; 608B + ld hl, Map13NPCIDs + ld de, Map13TextPointers + call CallMapTextSubroutine + ret
\ No newline at end of file diff --git a/maps/PlayersHouse1F.asm b/maps/PlayersHouse1F.asm new file mode 100644 index 0000000..5157d63 --- /dev/null +++ b/maps/PlayersHouse1F.asm @@ -0,0 +1,60 @@ +include "constants.asm" + +SECTION "Player's House 1F", ROMX[$409C], BANK[$34] + +PlayersHouse1FScriptLoader:: ; 409C + ld hl, PlayersHouse1FScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +PlayersHouse1FScriptPointers: ; 40A6 + dw PlayersHouse1FScript1 + dw PlayersHouse1FNPCIDs1 + dw PlayersHouse1FScript2 + dw PlayersHouse1FNPCIDs2 + +PlayersHouse1FNPCIDs1: ; 40AE + db $FF + +PlayersHouse1FNPCIDs2: ; 40AF + db 0 + db $FF + +PlayersHouse1FScript1: ; 40B1 + ld hl, PlayersHouse1FNPCIDs1 + ld de, PlayersHouse1FTextPointers + call CallMapTextSubroutine + ret + +PlayersHouse1FScript2: ; 40BB + ld hl, PlayersHouse1FNPCIDs2 + ld de, PlayersHouse1FTextPointers + call CallMapTextSubroutine + ret + +PlayersHouse1FTextPointers: ; 40C5 + dw Function38ab + dw Function38b4 + dw Function38a2 + dw Function38bd + dw Function3899 + dw PlayersHouse1FNPCText1 + +PlayersHouse1FNPCText1: ; 40D1 + ld hl, PlayersHouse1FTextString1 + call OpenTextbox + ret + +PlayersHouse1FTextString1: ; 40D8 + text "おかあさん『えっ あなた" + line "オーキドはかせに" + cont "ポケモンずかんを つくってくれって" + cont "たのまれたの?" + + para "すごいじゃない!" + line "わたしも ポケモン きらいって" + cont "わけじゃないし がんばるのよ!" + done + +; 4132
\ No newline at end of file diff --git a/maps/PlayersHouse2F.asm b/maps/PlayersHouse2F.asm new file mode 100644 index 0000000..08a5b4e --- /dev/null +++ b/maps/PlayersHouse2F.asm @@ -0,0 +1,263 @@ +include "constants.asm" + +SECTION "Player's House 2F", ROMX[$418B], BANK[$34] + +PlayersHouse2FScriptLoader:: ; 418B + ld hl, PlayersHouse2FScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +PlayersHouse2FScriptPointers: ; 4195 + dw PlayersHouse2FScript1 + dw PlayersHouse2FNPCIDs1 + dw PlayersHouse2FScript2 + dw PlayersHouse2FNPCIDs2 + dw PlayersHouse2FScript3 + dw PlayersHouse2FDollText + +PlayersHouse2FNPCIDs1: ; 41A1 + db 0 + db 1 + db $FF + +PlayersHouse2FNPCIDs2: ; 41A4 + db 1 + db $FF + +PlayersHouse2FTextPointers: ; 41A6 + dw Function3899 + dw PlayersHouse2FRadioText + dw PlayersHouse2FComputerText + dw Function3899 + dw PlayersHouse2FN64Text + +PlayersHouse2FScript1: ; 41B0 + call PlayersHouse2PositionCheck + ret z + ld hl, PlayersHouse2FNPCIDs1 + ld de, PlayersHouse2FTextPointers + call CallMapTextSubroutine + ret nz + ret + +PlayersHouse2PositionCheck: ; 41BF + ld hl, wd41a + bit 0, [hl] + ret nz + ld a, [wYCoord] + cp 1 + ret nz + ld a, [wXCoord] + cp 9 + ret nz + ld hl, wJoypadFlags + set 6, [hl] + ld a, LEFT + ld d, 0 + call SetObjectFacing + ld hl, PlayersHouse2FTextString2 + call OpenTextbox + call PlayersHouse2FMovePlayer + call ClearAccumulator + ret + +PlayersHouse2FMovePlayer: ; 41EA + ld a, 0 + ld hl, Movement + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 1 + call WriteIntod637 + ret + +Movement: ; 41FD + db $08 + db $04 + db $32 + +PlayersHouse2FScript2: ; 4200 + ld hl, PlayersHouse2FNPCIDs2 + ld de, PlayersHouse2FTextPointers + call CallMapTextSubroutine + ret + +PlayersHouse2FScript3: ; 420A + ld hl, wd41a + bit 3, [hl] + jr nz, .jump + ld hl, PlayersHouse2FTextString1 + call OpenTextbox + ld hl, wd41a + set 3, [hl] + ld c, 3 + call DelayFrames +.jump + ld hl, PlayersHouse2FTextString2 + call OpenTextbox + ret + +PlayersHouse2FDollText: ; 4228 + ld hl, PlayersHouse2FTextString3 + call OpenTextbox + ret + +PlayersHouse2FRadioText: ; 422F + ld hl, PlayersHouse2FTextString9 + call OpenTextbox + ret + +PlayersHouse2FComputerText: ; 4236 + ld hl, wd41a + bit 0, [hl] + jr nz, .jump + ld hl, PlayersHouse2FTextString5 + call OpenTextbox + ret + +.jump +; 4244 + call RefreshScreen + callab Function1477D + call Function1fea + ret + +PlayersHouse2FCheckEmail: ; 4253 + call YesNoBox + jr c, .jump2 + ld hl, wd41a + set 0, [hl] + ld hl, PlayersHouse2FTextString6 + call PrintText + ret + +.jump2 +; 4264 + ld hl, PlayersHouse2FTextString7 + call PrintText + ret + +PlayersHouse2FN64Text: ; 426B + ld hl, PlayersHouse2FTextString4 + call OpenTextbox + ret + +PlayersHouse2FTextString1: ; 4272 + text "ケン『おっ おまえの うでで" + line "ひかりかがやく そのとけいは……" + cont "<PLAYER>も ついに" + cont "トレーナーギアを かったのか!" + + para "すごいじゃないか!" + line "でも かったばかりじゃ じかんしか" + cont "わからないだろ?" + cont "あとで マップが" + cont "みられるように してやるよ!" + cont "おまえ どうせ" + cont "あそびに いくんだろう?" + + para "ざんねんながら おふくろは" + line "かいものに いってるから" + cont "おこづかいを もらおうなんて" + cont "きょうは むり だぜ!" + done + +PlayersHouse2FTextString2: ; 4332 + text "そうだ おまえの パソコンに" + line "メールが とどいていたな" + cont "でかけるんなら" + cont "メールぐらい よんでおけよ" + done + +PlayersHouse2FTextString3: ; 4365 + text "クりスマスに カントーの" + line "しんせきに プレゼント" + cont "してもらった にんぎょうだ" + done + +PlayersHouse2FTextString4: ; 438D + text "ニンテンドウ64を してる!" + cont "…… …… さてと!" + cont "そろそろ そとに あそびに" + cont "でかけるか!" + done + +PlayersHouse2FTextString5: ; 43BD + text "<PLAYER>は" + line "パソコンの スイッチを いれた!" + + para "おや? <PLAYER>あてに" + line "メールが とどいている ようだ" + cont "よんでみる?@" + + db $08 + +; 43F3 + call PlayersHouse2FCheckEmail + call Function3036 + ret + +PlayersHouse2FTextString6: ; 43FA + text "とつぜん メールを さしあげる" + line "しつれいを おゆるしあれ" + + para "じつは きみに どうしても" + line "わたしたい ものが あるのじゃが" + cont "うけとって もらえんかのう" + cont "ポケモンけんきゅうしゃ オーキド" + done + +PlayersHouse2FTextString7: ; 4456 + text "あとで" + line "よもっと<……>" + done + +PlayersHouse2FTextString8: ; 4461 (unused?) + text "しんはつばい トレーナーギア!" + line "ポケモントレーナーの ための" + cont "さいせんたんの とけい です" + + para "じかんが わかるのは あたりまえ" + line "カセットを ついかすれば" + cont "ばしょも わかる! " + cont "でんわが かけられる!" + + para "とどめは" + line "ラジオを きくことができる!" + + para "もうしこみさきは……" + line "………………………………" + cont "シルフの ホームぺージだ" + done + +PlayersHouse2FTextString9: ; 44FE + text "<PLAYER>は" + line "ラジオのスイッチを おした!" + + para "ジェイ オー ピー エム" + line "こちらは" + cont "# ほうそうきょく です" + + para "#ニュースを おおくりします" + line "<……> #の せかいてきな" + cont "けんきゅうしゃ オーキドはかせが" + cont "カントー から" + cont "すがたを けしました" + cont "あらたな けんきゅうの ばしょを" + cont "もとめて いどうした との" + cont "みかたも ありますが" + cont "なんらかの じけんに まきこまれた" + cont "かのうせいも あり" + cont "かんけいしゃは とても" + cont "しんぱい しています" + + para "<……><……>いじょう" + line "#ニュースでした" + + para "<……><……><……><……><……><……>" + line "それでは ひきつづき" + cont "おんがくを おたのしみ ください" + done + +; 45FF
\ No newline at end of file diff --git a/maps/Route1Gate1F.asm b/maps/Route1Gate1F.asm new file mode 100644 index 0000000..4772da7 --- /dev/null +++ b/maps/Route1Gate1F.asm @@ -0,0 +1,55 @@ +include "constants.asm" + +SECTION "Route 1 Gate 1F", ROMX[$4061], BANK[$26] + +Route1Gate1FScriptLoader: ;4061 + ld hl, Route1Gate1FScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +Route1Gate1FScriptPointers: + dw Route1Gate1FScript ;>> routine + dw Route1Gate1FNPCIDs ;>> data + +Route1Gate1FNPCIDs: ; 406F + db $00 + db $01 + db $FF + +Route1Gate1FTextPointers: + dw MapDefaultText ;no signs + dw Route1Gate1FText1 + dw Route1Gate1FText2 + +Route1Gate1FScript: ; 4078 + ld hl, Route1Gate1FNPCIDs + ld de, Route1Gate1FTextPointers + call CallMapTextSubroutine + ret + +Route1Gate1FText1: ; 4082 + ld hl, Route1Gate1FText1String + call OpenTextbox + ret + +Route1Gate1FText2: ; 4089 + ld hl, Route1Gate1FText2String + call OpenTextbox + ret + +Route1Gate1FText1String: ; 4090 + text "このゲートを ぬけると" + line "すぐに オールドシティ です" + done + +Route1Gate1FText2String: ; 40AC + text "オールドシティには" + line "あの ゆうめいな" + cont "ごじゅうのとう が あるの" + + para "いってみたこと ある?" + done + +;ends at 40D9 + diff --git a/maps/Route1Gate2F.asm b/maps/Route1Gate2F.asm new file mode 100644 index 0000000..0ab81a8 --- /dev/null +++ b/maps/Route1Gate2F.asm @@ -0,0 +1,86 @@ +include "constants.asm" + +SECTION "Route 1 Gate 2F", ROMX[$411F], BANK[$26] + +Route1Gate2FScriptLoader:: ; 411F + ld hl, Route1Gate2FScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +Route1Gate2FScriptPointers: ; 4129 + dw Route1Gate2FScript + dw Route1Gate2FNPCIDs + +Route1Gate2FNPCIDs: ; 412D + db 0 + db 1 + db $FF + +Route1Gate2FTextPointers: ; 4130 + dw Route1Gate2FTextSign1 + dw Route1Gate2FTextSign2 + dw Route1Gate2FTextNPC1 + dw Route1Gate2FTextNPC2 + +Route1Gate2FScript:: ; 4138 + ld hl, Route1Gate2FNPCIDs + ld de, Route1Gate2FTextPointers + call CallMapTextSubroutine + ret + +Route1Gate2FTextNPC1: ; 4142 + ld hl, Route1Gate2FTextString1 + call OpenTextbox + ret + +Route1Gate2FTextNPC2: ; 4149 + ld hl, Route1Gate2FTextString2 + call OpenTextbox + ret + +Route1Gate2FTextSign1: ; 4150 + ld hl, Route1Gate2FTextString3 + call OpenTextbox + ret + +Route1Gate2FTextSign2: ; 4157 + ld hl, Route1Gate2FTextString4 + call OpenTextbox + ret + +Route1Gate2FTextString1: ; 415E + text "ガンテツさんって しってる?" + + para "ガンテツさんに" + line "きに いられるように なれば" + cont "トレーナーとして たいしたもの よ" + done + +Route1Gate2FTextString2: ; 4197 + text "あなた かんこうで きたの?" + line "なら ざんねんね" + + para "オールドシティの" + line "ごじゅうのとう は" + cont "だれでも はいれる って" + cont "ものじゃないわ" + done + +Route1Gate2FTextString3: ; 41D8 + text "<PLAYER>は" + line "ぼうえんきょうを のぞいた!" + + para "むむむ!" + line "たかーい とう が みえる!" + done + +Route1Gate2FTextString4: ; 41FF + text "<PLAYER>は" + line "ぼうえんきょうを のぞいた!" + + para "むむ?" + line "ながーい かわ が みえる" + done + +; 4224
\ No newline at end of file diff --git a/maps/Route1P1.asm b/maps/Route1P1.asm new file mode 100644 index 0000000..5f3a1b8 --- /dev/null +++ b/maps/Route1P1.asm @@ -0,0 +1,75 @@ +include "constants.asm" + +SECTION "Route 1 East", ROMX[$7B98], BANK[$36] + +Route1P1ScriptLoader:: ; 7B98 + ld hl, Route1P1ScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +Route1P1ScriptPointers: ; 7BA2 + dw Route1P1Script + dw Route1P1NPCIDs + +Route1P1NPCIDs: ; 7BA6 + db 0 + db 1 + db $FF + +Route1P1TextPointers: ;7BA9 + dw Route1P1TextSign1 + dw Route1P1TextSign2 + dw Route1P1TextNPC1 + dw Route1P1TextNPC2 + +Route1P1Script:: ; 7BB1 + ld hl, Route1P1NPCIDs + ld de, Route1P1TextPointers + call CallMapTextSubroutine + ret + +Route1P1TextNPC1: ; 7BBB + ld hl, Route1P1TextString1 + call OpenTextbox + ret + +Route1P1TextNPC2: ; 7BC2 + ld hl, Route1P1TextString2 + call OpenTextbox + ret + +Route1P1TextSign1: ; 7BC9 + ld hl, Route1P1TextString3 + call OpenTextbox + ret + +Route1P1TextSign2: ; 7BD0 + ld hl, Route1P1TextString4 + call OpenTextbox + ret + +Route1P1TextString1: ; 7BD7 + text "しょうねん!" + + para "モンスターボールは" + line "やせいの ポケモンを よわらせてから" + cont "つかうのが きほんだ!" + done + +Route1P1TextString2: ; 7C08 + text "ぼく ゆうがた じゅくの かえりに" + line "かわった ポケモンを みたよ" + done + +Route1P1TextString3: ; 7C2A + text "このさき しずかな おか" + line "やせいの ポケモンに ちゅうい" + done + +Route1P1TextString4:; 7C48 + text "ここは 1ばん どうろ" + line "サイレントヒル …… オールドシティ" + done + +; 7C68
\ No newline at end of file diff --git a/maps/Route1P2.asm b/maps/Route1P2.asm new file mode 100644 index 0000000..133b42d --- /dev/null +++ b/maps/Route1P2.asm @@ -0,0 +1,117 @@ +include "constants.asm" + +SECTION "Route 1 West", ROMX[$7C68], BANK[$36] + +Route1P2ScriptLoader:: ; 7C67 + ld hl, Route1P2ScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +Route1P2ScriptPointers: + dw Route1P2Script + dw Route1P2NPCIDs + +Route1P2NPCIDs: ; 7C76 + db $00 + db $01 + db $FF + +Route1P2TextPointers: + dw Route1P2TextSign1 + dw Route1P2Text1 + dw Route1P2Text2 + +Route1P2Script:: ; 7C7F + ld a, [wYCoord] + cp $06 + jr nz, .skipCheck + ld a, [wXCoord] + cp $09 + jr nz, .skipCheck + ld a, 0 ; player + ld d, LEFT + call SetObjectFacing + ld a, 2 + ld d, RIGHT + call SetObjectFacing + jr .endDemo +.skipCheck + ld hl, Route1P2NPCIDs ;data + ld de, Route1P2TextPointers ;start of textld pointers? + call CallMapTextSubroutine + ret + +.endDemo +Route1P2Text1: ; 7CA7 + ld hl, Route1P2TextString4 + call OpenTextbox + call RotateFourPalettesLeft + jp Init + +Route1P2Text2: ; 7CB3 + ld hl, $D3A2 ; trainer flags? + bit 1, [hl] + jr nz, .Text2Jump ; already fought + ld hl, Route1P2TextString1 + call OpenTextbox + ld hl, $D3A2 + set 1, [hl] + ld a, $3C + ld [wce02], a + ld a, $02 + ld [wce05], a + ld hl, wc5ed + set 7, [hl] + ld a, $08 + ld [wd637], a + ret + +.Text2Jump +Route1P2Text3: ; 7CDA + ld hl, Route1P2TextString3 + call OpenTextbox + ret + +Route1P2TextSign1: ; 7CE1 + ld hl, Route1P2TextString5 + call OpenTextbox + ret + +Route1P2TextString1: ; 7CE8 + text "まあ かわいらしい トレーナーやこと" + line "うちと ポケモン しはります?" + done + +Route1P2TextString2: ; 7D0C (unused?) + text "いやあ かんにんやわあ" + done + +Route1P2TextString3: ; 7D19 + text "かわいい かおして つよおすなあ" + line "その ちょうしで おきばりやす" + done + +Route1P2TextString4: ; 7D3B + text "シゲル『おっ サトシじゃないか!" + + para "なんとか ここまで これた" + line "って かんじだな" + + para "じつりょくが ないのに" + line "むり するなよな" + + para "もっと ポケモン あつめるとか" + line "いろんな ポケモン そだてるとか" + cont "やること あるだろ?" + + para "ここで ひきかえしたほうが いいぜ!" + line "じゃあな" + done + +Route1P2TextString5: ; 7DBD + text "ここは 1ばん どうろ" + line "サイレントヒル …… オールドシティ" + done + +;7DDD
\ No newline at end of file diff --git a/maps/SilentHills.asm b/maps/SilentHills.asm new file mode 100644 index 0000000..1657673 --- /dev/null +++ b/maps/SilentHills.asm @@ -0,0 +1,420 @@ +include "constants.asm" + +SECTION "Silent Hills Script", ROMX[$7669], BANK[$36] + +SilentHillsScriptLoader:: ; 7669 + ld hl, SilentHillsScriptPointers1 + call RunMapScript + call WriteBackMapScriptNumber + ret + +SilentHillsNPCIDs1: ; 7673 + db 0 + db 2 + db 3 + db $FF + +SilentHillsNPCIDs2: ; 7677 + db 2 + db 3 + db $FF + +SilentHillsNPCIDs3: ; 767A + db 1 + db 2 + db 3 + db $FF + +SilentHillsScriptPointers1: ; 767E + dw SilentHillsScript1 + dw SilentHillsNPCIDs1 + +SilentHillsScriptPointers2: ; 7682 + dw SilentHillsScript2 + dw SilentHillsNPCIDs1 + +SilentHillsScriptPointers3: ; 7686 + dw SilentHillsScript3 + dw SilentHillsNPCIDs1 + +SilentHillsScriptPointers4: ; 768A + dw SilentHillsScript4 + dw SilentHillsNPCIDs2 + +SilentHillsScriptPointers5: ; 768E + dw SilentHillsScript5 + dw SilentHillsNPCIDs3 + +SilentHillsScriptPointers6: ; 7692 + dw SilentHillsScript6 + dw SilentHillsNPCIDs2 + +SilentHillsScriptPointers7: ; 7696 + dw SilentHillsScript7 + dw SilentHillsNPCIDs2 + +SilentHillsScript1: ; 769A + ld a, [wYCoord] + cp 5 + ret nz + ld a, [wXCoord] + cp 5 + ret nz + ld hl, wJoypadFlags + set 4, [hl] + ld a, 02 + call Function17f9 + ld a, 02 + ld hl, SilentHillsMovement1 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 1 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentHillsMovement1: ; 76C8 + db $0D + db $0D + db $0D + db $09 + db $05 + db $02 + db $32 + +SilentHillsScript2: ; 76CF + ld a, 0 + ld d, RIGHT + call SetObjectFacing + ld hl, SilentHillsTextRival1 + call OpenTextbox + ld hl, SilentHillsTextRival2 + call OpenTextbox + ld hl, wJoypadFlags + set 4, [hl] + ld a, 2 + ld hl, SilentHillsMovement2 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 1 + call WriteIntod637 + ld a, 2 + ld [wMapScriptNumber], a + ret + +SilentHillsMovement2: ; 76FF + db $00, $04, $08, $0C, $0C, $0C, $33 + +SilentHillsScript3: ;7706 + call Function1848 + ld a, 3 + ld [wMapScriptNumber], a + call InitUnknownBuffercc9e + ret + +SilentHillsScript4: ; 7712 + ld a, [wXCoord] + cp 0 + jr nz, .bigjump + ld a, [wYCoord] + cp 8 + jr z, .jump + cp 09 + jr nz, .bigjump +.jump + call Function776a + ld hl, SilentHillsTextNorthExit + call OpenTextbox + ld hl, wJoypadFlags + set 4, [hl] + ld a, 3 + call Function15ed + ld a, 3 + call Function17f9 + ld a, [wYCoord] + cp 9 + jr z, .jump2 + ld hl, SilentHillsMovement3 + jr .skip +.jump2 + ld hl, SilentHillsMovement4 +.skip + ld a, 03 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 1 + call WriteIntod637 + ld a, 4 + ld [wMapScriptNumber], a + ret + +.bigjump + ld hl, SilentHillsNPCIDs2 + ld de, SilentHillsTextPointers + call CallMapTextSubroutine + ret + +Function776a: ; 776A + ld hl, wd41a + set 7, [hl] + ld a, 1 + ld hl, wd29d + ld [hl], a + ret + +SilentHillsMovement3: ; 7776 + db $0A, $0A, $0A, $09, $0A, $06, $02, $32 + +SilentHillsMovement4: ; 777E + db $0A, $0A, $0A, $0A, $06, $02, $32 + +SilentHillsScript5: ; 7785 + ld a, 0 + ld d, RIGHT + call SetObjectFacing + ld hl, SilentHillsTextPokemonInGrassString + call OpenTextbox + ld hl, wJoypadFlags + set 4, [hl] + ld a, 3 + call Function17f9 + ld a, 0 + call Function186a + ld b, 3 + ld c, 0 + call StartFollow + ld a, [wYCoord] + cp 9 + jr z, .jump + ld hl, SilentHillsMovement5 + jr .skip +.jump + ld hl, SilentHillsMovement6 +.skip + ld a, 3 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 1 + call WriteIntod637 + ld a, 5 + ld [wMapScriptNumber], a + ret + +SilentHillsMovement5: ; 77CC + db $0B, $0B, $0B, $0B, $0B, $0B, $08, $08, $08, $08, $0B, $0B, $0B, $0B, $0B, $0B, $0B, $0B, $05, $33 + +SilentHillsMovement6: ; 77E0 + db $0B, $0B, $0B, $0B, $0B, $0B, $08, $08, $08, $0B, $0B, $0B, $0B, $0B, $0B, $0B, $0B, $05, $33 + +SilentHillsScript6: ; 77F3 + ld hl, SilentHillsNPCIDs2 + ld de, SilentHillsTextPointers + call CallMapTextSubroutine + ld hl, wd41b + bit 2, [hl] + ret z + ld a, $12 + ld [wd29d], a + ld a, 6 + ld [wMapScriptNumber], a + ret + +SilentHillsScript7: ; 780D + call CheckLabDoor + ret z + ld hl, SilentHillsNPCIDs2 + ld de, SilentHillsTextPointers + call CallMapTextSubroutine + ret + +CheckLabDoor: ; 781B + ld a, [wYCoord] + cp $C + ret nz + ld a, [wXCoord] + cp $E + jr z, .jump + ld a, [wXCoord] + cp $F + ret nz +.jump + ldh a, [hJoyState] + bit 6, a + ret z + ld a, 0 + ld d, UP + call SetObjectFacing + ld hl, wJoypadFlags + set 6, [hl] + ld hl, SilentHillsTextString1 + call OpenTextbox + call LabClosed + call ClearAccumulator + ret + +LabClosed: ; 784C + ld a, 0 + ld hl, SilentHillsMovement7 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 1 + call WriteIntod637 + ret + +SilentHillsTextString1: ; 785F + text "あれ? カギが かかっている" + done + +SilentHillsMovement7: ; 786F + db $04, $32 + +SilentHillsTextPointers: ; 7871 + dw SilentHillsPlayerHouseText + dw Function38c6 + dw SilentHillsSignText1 + dw SilentHillsLabText + dw SilentHillsRivalHouseText + +SilentHillsLabText: ; 787B + ld hl, SilentHillsTextString2 + call OpenTextbox + ret + +SilentHillsTextString2: ; 7882 + text "にゅうきょしゃ ぼしゅうちゅう!" + done + +SilentHillsSignText1: ; 7894 + ld hl, SilentHillsTextString3 + call OpenTextbox + ret + +SilentHillsTextString3: ; 789B + text "ここは サイレント ヒル" + line "しずかな おか" + done + +SilentHillsPlayerHouseText: ; 78B1 + ld hl, SilentHillsTextString4 + call OpenTextbox + ret + +SilentHillsTextString4: ; 78B8 + text "ここは <PLAYER> のいえ" + done + +SilentHillsRivalHouseText: ; 78C3 + ld hl, SilentHillsTextString5 + call OpenTextbox + ret + +SilentHillsTextString5: ; 78CA + text "ここは <RIVAL> のいえ" + done + +; 78D5 + dw SilentHillsTextRival1 ; west + dw SilentHillsTextNorthExit ; north + dw SilentHillsTextBackpack ; npc1 + dw SilentHillsTextPokemonHate ; npc2 + +SilentHillsTextRival1: ; 78DD + text "<RIVAL>『よう ちょっと おまえに" + cont "じまん したいことが" + cont "あってきたんだよ" + + para "おれ あの ゆうめいなオーキドから" + line "メール もらっちゃった!" + cont "え? おまえにも きたの?" + cont "ちぇっ! つまんねーの!" + + para "……ふん!" + line "じゃあさ じゃあさー おまえさー" + cont "じぶんの ははおや のこと" + cont "いつも なんて よんでる?@" + + db $08 + +LoadMomNamePromptUnused: ; 796F + call LoadStandardMenuHeader + callab MomNamePrompt + call CloseWindow + call GetMemSGBLayout + call UpdateSprites + call UpdateTimePals + jp Function3036 + +MomNameMenuHeaderUnused: ; 7989 + db MENU_BACKUP_TILES ; flags + menu_coords 00, 00, 10, 11 + dw .MomNameMenuDataUnused + db 01 ; initial selection + +.MomNameMenuDataUnused: ; 7991 + db STATICMENU_CURSOR + db 04 ; items + db "じぶんで きめる@" + db "おかあさん @" + db "ママ@" + db "かあちゃん@" + +SilentHillsTextRival2: ; 79AC - BYTE OFF + text "<RIVAL>『えー かっこわりい!" + line "そんな こどもっぽい" + cont "よびかた してるなんて" + cont "おわらいだぜ!" + cont"あー ちょっとだけ すっきりした!" + + para "そんじゃあ" + line "おれは ひとあし おさきに" + cont "オーキドのところへ" + cont "いくことに するぜ!" + done + +SilentHillsTextNorthExit: ; 7A14 + text "ちょいまち!" + line "まってよ! まてっ てば!" + done + +SilentHillsTextPokemonInGrassString: ; 7A2A + text "きみは まったく" + line "なんにも しらないんだね!" + cont "くさむらでは" + cont "やせいの ポケモンが とびだす!" + + para "じぶんも ポケモンを" + line "もって いれば" + cont "たたかえるんだ……" + + para "あっ! ひょっとして きみは" + line "……ちょっと" + cont "ぼくに ついて きて!" + done + +SilentHillsTextBackpack: ; 7A99 + ld hl, SilentHillsTextBackpackString + call OpenTextbox + ret + +SilentHillsTextBackpackString: ; 7AA0 + text "あなたの りュック かっこいいわよ" + line "どこで てに いれたの?" + done + +SilentHillsTextPokemonHate: ; 7AC0 + ld hl, SilentHillsTextPokemonHateString + call OpenTextbox + ret + +SilentHillsTextPokemonHateString: ; 7AC7 + text "よのなかに ポケモンが きらいな" + line "ひとは いるのかな?" + done + +; 7AE4
\ No newline at end of file diff --git a/maps/SilentHouse.asm b/maps/SilentHouse.asm new file mode 100644 index 0000000..f5eab62 --- /dev/null +++ b/maps/SilentHouse.asm @@ -0,0 +1,171 @@ +include "constants.asm" + +SECTION "Silent Hills House", ROMX[$4839], BANK[$34] + +SilentHouseScriptLoader:: ; 4839 + ld hl, SilentHouseScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +SilentHouseScriptPointers: ; 4843 + dw SilentHouseScript1 + dw SilentHouseNPCIDs1 + dw SilentHouseScript2 + dw SilentHouseNPCIDs2 + dw SilentHouseScript3 + dw SilentHouseNPCIDs1 + +SilentHouseScript1: ; 484F + ld hl, SilentHouseNPCIDs1 + ld de, SilentHouseTextPointers1 + call CallMapTextSubroutine + ret + +SilentHouseScript2: ; 4859 + ld hl, SilentHouseNPCIDs2 + ld de, SilentHouseTextPointers1 + call CallMapTextSubroutine + ret + +SilentHouseScript3: ; 4863 + ld hl, SilentHouseNPCIDs1 + ld de, SilentHouseTextPointers1 + call CallMapTextSubroutine + ret + +SilentHouseNPCIDs1: + db 0 + db $FF + +SilentHouseNPCIDs2: + db 0 + db 1 + db $FF + +SilentHouseTextPointers1:: ; 4872 + dw SilentHouseNPCText1 + dw Function38bd + dw Function3899 + dw Function38b4 + dw Function38ab + dw Function38cf + +SilentHouseNPCText1: ; 487E + ld hl, wd41a + bit 6, [hl] + jr nz, .jump + ld hl, SilentHouseTextString1 + call OpenTextbox + ret + +.jump +; 488C + call RefreshScreen + callab Function1477D + call Function1fea + ret + +SilentHouseTextString1: ; 489B + text "おや? <RIVAL>あてに メールが" + line "とどいている ようだ" + cont "よんでみる?@" + db $08 + +SilentHouseNPCText2: ; 48BD (unused due to typo in the text pointers?) + call YesNoBox + jr c, .jump + ld hl, wd41a + set 6, [hl] + ld hl, SilentHouseTextString2 + call PrintText + call Function3036 + ret +.jump + ld hl, SilentHouseTextString3 + call PrintText + call Function3036 + ret + +SilentHouseTextString2: ; 48DB + text "とつぜん メールを さしあげる" + line "しつれいを おゆるしあれ" + + para "じつは きみに どうしても" + line "わたしたい ものが あるのじゃが" + cont "うけとって もらえんかのう" + cont "ポケモンけんきゅうしゃ オーキド" + done + +SilentHouseTextString3: ; 4937 + text "ひとのメールは" + line "みちゃ いけないよな<……>" + done + +SilentHouseTextPointers2:: ; 494C + dw SilentHouseNPCText3 + dw SilentHouseNPCText4 + +SilentHouseNPCText3: ; 4950 + ld hl, SilentHouseTextString4 + call OpenTextbox + ret + +SilentHouseTextString4: ; 4957 + text "このまえ かわったいろの" + line "ポッポを みかけたわ" + done + +SilentHouseNPCText4: ; 4970 + ld hl, wd41e + bit 2, [hl] + jr nz, .jump + ld hl, wd41e + set 2, [hl] + ld hl, SilentHouseTextString5 + call OpenTextbox + call WaitBGMap + ld hl, SilentHouseTextString6 + jr .skip +.jump + ld hl, SilentHouseTextString7 +.skip + call OpenTextbox + ret + +SilentHouseTextString5: ; 4991 + text "ケン『ななな" + line "なんだ <PLAYER> じゃないか!" + + para "おれは ちょっと あのー" + line"がっこうの しゅくだいを" + cont "おしえに きてるんだ!" + + para "えっ マップ?" + line "そうか そんな やくそくも してたな" + cont "わかった" + cont "トレーナーギアを かしてみな" + + para "スロットに マップの カセットを " + line "さしこんでっと……" + cont "よし これで マップが みれるぞ!" + done + +SilentHouseTextString6: ; 4A29 + text "もし オールドにいくなら" + line "マサキって やつに あうといい" + + para "おれの ともだちで" + line "すごい ポケモン マニアだ!" + cont "きっと おまえの" + cont "てだすけを してくれるぜ" + done + +SilentHouseTextString7: ; 4A76 + text "ケン『<PLAYER>" + line "オーキドはかせに みこまれて" + cont "ポケモンずかんを つくるんだって?" + cont "すごいじゃないか がんばれよ" + done + +; 4AAC
\ No newline at end of file diff --git a/maps/SilentLabP1.asm b/maps/SilentLabP1.asm new file mode 100644 index 0000000..578a59d --- /dev/null +++ b/maps/SilentLabP1.asm @@ -0,0 +1,1108 @@ +include "constants.asm" + +SECTION "Silent Lab P1", ROMX[$4BBC], BANK[$34] + +SilentLabP1ScriptLoader:: ; 4BBC + ld hl, SilentLabP1ScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +SilentLabP1ScriptPointers: ; 4BC6 + dw SilentLabP1Script1 + dw SilentLabP1NPCIDs1 + + dw SilentLabP1Script2 + dw SilentLabP1NPCIDs2 + + dw SilentLabP1Script3 + dw SilentLabP1NPCIDs2 + + dw SilentLabP1Script4 + dw SilentLabP1NPCIDs2 + + dw SilentLabP1Conversation1 + dw SilentLabP1NPCIDs2 + + dw SilentLabP1Script6 + dw SilentLabP1NPCIDs3 + + dw SilentLabP1Script7 + dw SilentLabP1NPCIDs4 + + dw SilentLabP1Script8 + dw SilentLabP1NPCIDs5 + + dw SilentLabP1Script9 + dw SilentLabP1NPCIDs5 + + dw SilentLabP1Script10 + dw SilentLabP1NPCIDs5 + + dw SilentLabP1Script11 + dw SilentLabP1NPCIDs5 + + dw SilentLabP1Script12 + dw SilentLabP1NPCIDs6 + + dw SilentLabP1Script13 + dw SilentLabP1NPCIDs6 + + dw SilentLabP1Script14 + dw SilentLabP1NPCIDs6 + + dw SilentLabP1Script15 + dw SilentLabP1NPCIDs7 + + dw SilentLabP1Script16 + dw SilentLabP1NPCIDs7 + + dw SilentLabP1Script17 + dw SilentLabP1NPCIDs7 + + dw SilentLabP1Script18 + dw SilentLabP1NPCIDs7 + + dw SilentLabP1Script19 + dw SilentLabP1NPCIDs9 + +SilentLabP1NPCIDs1: ; 4C12 + db $02 + db $09 + db $0A + db $FF +SilentLabP1NPCIDs2: ; 4C16 + db $00 + db $02 + db $04 + db $09 + db $0A + db $FF +SilentLabP1NPCIDs3: ; 4C1C + db $02 + db $04 + db $09 + db $0A + db $FF +SilentLabP1NPCIDs4: ; 4C21 + db $04 + db $09 + db $0A + db $FF +SilentLabP1NPCIDs5: ; 4C25 + db $01 + db $03 + db $05 + db $06 + db $07 + db $08 + db $09 + db $0A + db $FF +SilentLabP1NPCIDs6: ; 4C2E + db $01 + db $03 + db $05 + db $06 + db $07 + db $08 + db $FF +SilentLabP1NPCIDs7: ; 4C35 + db $00 + db $05 + db $06 + db $07 + db $08 + db $FF +SilentLabP1NPCIDs8: ; 4C3B (unused?) + db $00 + db $03 + db $05 + db $06 + db $07 + db $08 + db $09 + db $0A + db $FF +SilentLabP1NPCIDs9: ; 4C44 + db $00 + db $07 + db $08 + db $FF + +SilentLabP1TextPointers1:: ; 4C48 + dw SilentLabP1Text4 + dw SilentLabP1Text7 + dw SilentLabP1Text10 + dw SilentLabP1Text11 + dw SilentLabP1TextString20 + dw SilentLabP1Text12 + dw SilentLabP1Text13 + dw SilentLabP1Text14 + dw SilentLabP1Text15 + dw SilentLabP1Text16 + dw SilentLabP1Text16 + +SilentLabP1Script1: ; 4C5E + call SilentLabP1MoveDown + ret z + ld hl, SilentLabP1NPCIDs1 + ld de, SilentLabP1TextPointers2 + call CallMapTextSubroutine + ret + +SilentLabP1MoveDown: ; 4C6C + ld a, [wXCoord] + cp 4 + ret nz + ld a, [wYCoord] + cp 1 + ret nz + ldh a, [hJoyState] + bit 6, a + jp z, SetFFInAccumulator + call SilentLabP1Text3 + ld hl, wJoypadFlags + set 4, [hl] + ld a, 0 + call Function17f9 + ld a, 0 + ld hl, SilentLabP1Movement1 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 1 + call WriteIntod637 + call ClearAccumulator + ret + +SilentLabP1Movement1: ; 4CA2 + db $06, $32 + +SilentLabP1Script2: ; 4CA4 + ld a, 2 + ld [wMapScriptNumber], a + ret + +SilentLabP1Script3: ; 4CAA + ld a, 6 + call Function17f9 + ld a, 0 + call Function186a + ld b, 6 + ld c, 0 + call StartFollow + ld hl, SilentLabP1Movement2 + ld a, 6 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 3 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP1Movement2: ; 4CD3 + db 09, 09, 09, 09, 09, 09, 09, 09, 09, 05, 07, 01, $32 + +SilentLabP1Script4: ; 4CE0 + call Function1828 + ld a, 4 + ld [wMapScriptNumber], a + ret + +SilentLabP1Conversation1: ; 4CE9 + ld a, 4 + ld d, RIGHT + call SetObjectFacing + ld hl, SilentLabP1TextString20 + call OpenTextbox + ld hl, SilentLabP1TextString4 + call OpenTextbox + ld a, 4 + ld d, UP + call SetObjectFacing + ld hl, SilentLabP1TextString28 + call OpenTextbox + ld hl, SilentLabP1TextString5 + call OpenTextbox + ld a, 4 + ld d, RIGHT + call SetObjectFacing + ld hl, SilentLabP1TextString29 + call OpenTextbox + ld hl, SilentLabP1TextString7 + call OpenTextbox + call SilentLabP1Script5 + ret + +SilentLabP1Script5: ; 4D26 + ld hl, wJoypadFlags + set 4, [hl] + ld a, 2 + call Function17f9 + ld a, 2 + ld hl, SilentLabP1Movement3 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 5 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP1Movement3: ; 4D48 + db 9, 5, $33 + +SilentLabP1Script6: ; 4D4B + ld hl, wJoypadFlags + set 4, [hl] + ld a, 4 + call Function17f9 + ld a, 4 + ld hl, SilentLabP1Movement4 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 6 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP1Movement4: ; 4D6D + db $0D, $0D, $0F, $0D, $0D, $33 + +SilentLabP1Script7: ; 4D73 + ld hl, wJoypadFlags + set 4, [hl] + ld a, 0 + call Function17f9 + ld a, 0 + ld hl, SilentLabP1Movement5 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 7 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP1Movement5: ; 4D95 + db 09, 09, 09, 05, $32 + +SilentLabP1Script8: ; 4D9A + ld a, 3 + call Function1989 + ld a, 5 + call Function1989 + ld hl, wJoypadFlags + set 4, [hl] + ld a, 0 + call Function17f9 + ld a, 0 + ld hl, SilentLabP1Movement6 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 8 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP1Movement6: ; 4DC6 + db 8, 8, 8, $0A, 6, $32 + +SilentLabP1Script9: ; 4DCC + ld hl, wJoypadFlags + set 4, [hl] + ld a, 5 + call Function17f9 + ld a, 5 + call Function197e + ld a, 5 + ld hl, SilentLabP1Movement7 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 9 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP1Movement7: ; 4DF3 + db $08, $08, $08, $08, $0A, $06, $32 + +SilentLabP1Script10: ; 4DFA + ld a, 5 + ld d, RIGHT + call SetObjectFacing + ld hl, SilentLabP1TextString21 + call OpenTextbox + ld hl, wJoypadFlags + set 4, [hl] + ld a, 0 + ld d, RIGHT + call SetObjectFacing + ld a, 5 + ld d, RIGHT + call SetObjectFacing + ld a, 3 + call Function17f9 + ld a, 3 + call Function197e + ld a, 3 + ld hl, SilentLabP1Movement8 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, $0A + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP1Movement8: ; 4E3C + db $08, $04, $32 + +SilentLabP1Script11: ; 4E3F + ld hl, SilentLabP1TextString8 + call OpenTextbox + ld hl, SilentLabP1TextString9 + call OpenTextbox + ld a, $0B + call Function1617 + ld a, $0C + call Function1617 + ld hl, SilentLabP1TextString10 + call OpenTextbox + ld hl, SilentLabP1TextString15 + call OpenTextbox + ld hl, wd41c + set 4, [hl] + call Function20f8 + ld a, $0B + ld [wMapScriptNumber], a + call InitUnknownBuffercc9e + ret + +SilentLabP1Script12: ; 4E72 + call SilentLabP1MoveDown + ret z + call SilentLabP1RivalMovePokemon + ret z + ld hl, SilentLabP1NPCIDs6 + ld de, SilentLabP1TextPointers2 + call CallMapTextSubroutine + ret + +SilentLabP1RivalMovePokemon: ; 4E84 + ld a, [wYCoord] + cp 8 + ret nz + ld hl, SilentLabP1Movement9 + ld a, [wXCoord] + cp 3 + jr z, .jump + cp 4 + ret nz + ld hl, SilentLabP1Movement10 +.jump + push hl + ld hl, wJoypadFlags + set 4, [hl] + ld a, 5 + call Function17f9 + pop hl + ld a, 5 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, $0C + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + call ClearAccumulator + ret + +SilentLabP1Movement9: ; 4EDE + db $08, $0B, $0B, $08, $08, $04, $32 + +SilentLabP1Movement10: ; 4EC5 + db $08, $0B, $08, $08, $04, $32 + +SilentLabP1Script13: ; 4ECB + ld hl, SilentLabP1TextString17 + call OpenTextbox + call GetLabPokemon + ld hl, wc5ed + set 7, [hl] + ld a, 8 + ld [wd637], a + ld a, $0D + ld [wMapScriptNumber], a + call InitUnknownBuffercc9e + ret + +GetLabPokemon: ; 4EE7 + ld hl, LabPokemon + ld a, [wd266] + ld b, a +.loop + ld a, [hl+] + cp b + jr nz, .jump + ld a, [hl] + ld [wce05], a + ld a, 9 + ld [wce02], a + ret +.jump + inc hl + jr .loop + +LabPokemon: ; 4EFF + db DEX_KURUSU + db 1 + db DEX_HAPPA + db 2 + db DEX_HONOGUMA + db 3 + +SilentLabP1Script14: ; 4F05 + ld hl, SilentLabP1TextString19 + ld a, [wcd5d] + and a + jr nz, .skip + ld hl, SilentLabP1TextString18 +.skip + call OpenTextbox + ld hl, wJoypadFlags + set 4, [hl] + ld a, 5 + call Function17f9 + ld a, 5 + ld hl, SilentLabP1Movement11 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, $0E + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP1Movement11: ; 4F36 + db $04, $08, $08, $08, $33 + +SilentLabP1Script15: ; 4F3B + call Function20f8 + ld a, $0F + ld [wMapScriptNumber], a + call InitUnknownBuffercc9e + ret + +SilentLabP1Script16: ; 4F47 + call SilentLabP1MoveDown + ret z + call SilentLabP1MoveRivalLeave + ret z + ld hl, SilentLabP1NPCIDs7 + ld de, SilentLabP1TextPointers2 + call CallMapTextSubroutine + ret + +SilentLabP1MoveRivalLeave: ; 4F59 + ld a, [wYCoord] + cp $0B + ret nz + ld hl, Movememt12+1 + ld a, [wXCoord] + cp 3 + jr z, .jump + cp 4 + ret nz + ld hl, Movememt12 +.jump + push hl + ld hl, wJoypadFlags + set 4, [hl] + ld a, 8 + call Function17f9 + pop hl + ld a, 8 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, $10 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + call ClearAccumulator + ret + +Movememt12:; 4F93 + db $07, $07, $07, $05, $32 + +SilentLabP1Script17: ; 4F98 + ld hl, SilentLabP1TextString23 + call OpenTextbox + ld hl, wd41d + set 2, [hl] + ld hl, wNumBagItems + ld a, 5 + ld [wCurItem], a + ld a, 6 + ld [wItemQuantity], a + call AddItemToInventory + call Function20f8 + ld a, $11 + ld [wMapScriptNumber], a + ret + +SilentLabP1Script18: ; 4FBC + call SilentLabP1MoveDown + ret z + ld hl, SilentLabP1NPCIDs7 + ld de, SilentLabP1TextPointers2 + call CallMapTextSubroutine + ret + +SilentLabP1Script19: ; 4FCA + call SilentLabP1MoveDown + ret z + ld hl, SilentLabP1NPCIDs9 + ld de, SilentLabP1TextPointers2 + call CallMapTextSubroutine + ret + +SilentLabP1TextPointers2: ; 4FD8 + dw SilentLabP1Text1 + dw SilentLabP1Text2 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw SilentLabP1Text3 + +SilentLabP1Text1: ; 4FF6 + ld hl, SilentLabP1TextString1 + call OpenTextbox + ret + +SilentLabP1TextString1: ; 4FFD + text "パソコンを みると" + line "なんと メールが きていた!" + + para "<……> <……> <……>" + line "オーキドはかせ!" + cont "あなたが ゆくえふめいに" + cont "なっていると せけんは" + cont "おおさわぎ です!" + + para "それは そうと" + line "はかせ から みつけるように" + cont "たのまれた れいの#" + cont "みつけるどころか" + cont "まだ てがかりも" + cont "つかむことが できません" + + para "やはり あいつは" + line "かくうの #なのでは" + cont "ないでしょうか<……>" + cont "<……> <……> <……>じょしゅより" + done + +SilentLabP1Text2: ; 50B3 + ld hl, wd39d + bit 0, [hl] + set 0, [hl] + jr z, .jump + res 0, [hl] + ld hl, SilentLabP1TextString2A + jr .skip +.jump + ld hl, SilentLabP1TextString2B +.skip + call OpenTextbox + ret + +SilentLabP1TextString2A: ; 50CA + text "スタート ボタンを プシュ!" + line "おすと メニューが ひらくなり" + done + +SilentLabP1TextString2B: ; 50EA + text "セーブするには # レポート" + line "こまめに かくと いいなり" + done + +SilentLabP1Text3: ; 5108 + ld hl, SilentLabP1TextString3 + call OpenTextbox + ret + +SilentLabP1TextString3: ; 510F + text "カギが かかっている" + done + +SilentLabP1Text4: ; 511B + ld a, [wMapScriptNumber] + cp $0E + jp nc, SilentLabP1Text7 + ld hl, SilentLabP1TextString4 + call OpenTextbox + ret + +SilentLabP1TextString4: ; 512A + text "オーキド『ごくろうさん!" + done + +SilentLabP1TextString5: ; 5138 + text "オーキド『そうとも!" + line "わしが オーキドじゃ!" + cont "じじいで わるかったな!" + + para "おまえたち ふたりは" + line "この オーキドが よんだのじゃ!" + + para "すこし わしの はなしを" + line "きいては くれんか?@" + db $08 + +SilentLabP1Text6: ; 5192 + call YesNoBox + jr c, .jump +.loop + ld hl, SilentLabP1TextString6A + call PrintText + call Function3036 + ret + +.jump + ld hl, SilentLabP1TextString6B + call PrintText + call YesNoBox + jr c, .jump + jr .loop + +SilentLabP1TextString6A: ; 51AE + text "オーキド『いまから 1ねんまえ" + line "わしは カントーで" + cont "きみたちの ような しょうねんに" + cont "#の けんきゅうの ため" + cont "#と ずかんを わたした" + + para "そして かれらは" + line "じつに よくやってくれた!" + + para "150しゅるいの" + line "#を みつけることに" + cont "せいこう したのじゃ!" + cont "が <……> <……> <……>" + cont "しかし <……> <……>" + + para "せかいは ひろいものじゃ" + line "そのご ぜんこく かくちで" + cont "あたらしい #が ぞくぞくと" + cont "みつかっておる!" + + para "そこで わしは カントーから" + line "ここ サイレントヒルに" + cont "けんきゅうの ばしょを うつした" + + para "ばしょが かわれば" + line "あたらしい #にも" + cont "であうことが できるからな" + cont "<……> <……> <……> <……>" + + para "これからも どんどんと" + line "けんきゅうを すすめるが" + cont "わしも ごらんのとおりの おいぼれ" + cont "まごや じょしゅたちも おるが" + cont "それでも やはり かずが たらん!" + + para "<PLAYER>! <RIVAL>!" + line "#けんきゅうの ために" + cont "ちからを かして くれんか!" + done + +SilentLabP1TextString6B: ; 5332 + text "オーキド『そうか<……>" + line "わしに ひとを みるめが" + cont "なかったと いうことじゃな<……>" + + para "いや!" + line "わしの ひとを みるめは" + cont "まちがっては おらんはず!" + + para "な?" + cont "わしの はなしを きいてくれるな?" + done + +SilentLabP1TextString7: ; 538D + text "オーキド『ふたりとも!" + line "ちょっと わしに ついてこい!" + done + +SilentLabP1Text7: ; 53AA + ld a, [wMapScriptNumber] + cp $12 + jr z, .jump + ld hl, SilentLabP1TextString11A + call OpenTextbox + ret + +.jump + ld hl, SilentLabP1TextString11B + call OpenTextbox + ret + +SilentLabP1TextString8: ; 53BF + text "オーキド『<PLAYER>!<RIVAL>!" + line "このずかんを" + cont "おまえたちに あずける!" + done + +SilentLabP1TextString9: ; 53DE + text "<PLAYER>は オーキドから" + line "#ずかんを もらった!" + done + +SilentLabP1TextString10: ; 53F5 + text "オーキド『この せかいの すべての" + line "#を きろくした" + cont "かんぺきな ずかんを つくること!" + cont "それが わしの ゆめ だった!" + + para "しかし しんしゅの #は" + cont "ぞくぞくと みつかっている!" + + para "わしに のこされた" + line "じかんは すくない!" + + para "そこで おまえ たちには" + line "わしの かわりに" + cont "ゆめを はたして ほしいのじゃ!" + + para "さあ ふたりとも" + line "さっそく しゅっぱつ してくれい!" + cont "これは #の れきしに のこる" + cont "いだいな しごとじゃー!" + done + +SilentLabP1TextString11A: ; 54C3 + text "オーキド『せかい じゅうの" + line "#たちが" + cont "<PLAYER>を まって おるぞー" + done + +SilentLabP1TextString11B: ; 54E3 + text "オーキド『おう! <PLAYER>" + line "どうだ?" + cont "わしの あげた #は<……>?" + + para "ほう!" + cont "だいぶ なついた みたいだな" + + para "おまえには #トレーナーの" + line "さいのうが あるかもしれん" + cont "これからも ときどきは" + cont "わしのところへ かおを だせ!" + + para "#ずかんの ぺージが" + line "きに なるからな" + done + +SilentLabP1Text8: ; 5560 + ld hl, SilentLabP1TextString12 + call OpenTextbox + ret + +SilentLabP1TextString12: ; 5567 + text "オーキド『よく きたな!" + line "#ずかんの" + cont "ちょうしは どうかな?" + + para "どれ<……> ちょっと" + cont "みて あげようか!" + done + +SilentLabP1Text9: ; 559A + ld hl, SilentLabP1TextString13 + call OpenTextbox + ret + +SilentLabP1TextString13: ; 55A1 + text "オーキド『<……> おっほんッ!" + line "よくやったな <PLAYER>!" + + para "ちょっと" + line "わしに ついて きなさい!" + + para "<RIVAL>は すまんが" + line "そこで まっていなさい!" + + para "<RIVAL>『えー!" + line "なんだよ ケチー!" + + para "オーキド『<RIVAL>は" + line "でんせつの #が" + cont "ほしかった だけじゃないのか?" + cont "<RIVAL>『ギクッ!" + done + +SilentLabP1Text10: ; 561A + ld hl, SilentLabP1TextString14 + call OpenTextbox + ret + +SilentLabP1TextString14: ; 5621 + text "<RIVAL>『なんだ" + line "<PLAYER>じゃないか!" + cont "おれも ここが" + cont "あやしいと おもって きたんだけど" + cont "だれも いないみたいだな<……>" + done + +SilentLabP1Text11: ; 5658 + ld hl, SilentLabP1TextString16 + call OpenTextbox + ret + +SilentLabP1TextString15: ; 565F + text "<RIVAL>『よっしゃあ!" + line "じいさん! おれにまかせな!" + done + +SilentLabP1TextString16: ; 5678 + text "<RIVAL>『おれが えらんだ" + line "#のほうが つよそうだぜ!" + cont "こっちに したかったんじゃないの?" + done + +SilentLabP1TextString17: ; 56A4 + text "<RIVAL>『<PLAYER>!" + line "せっかく じいさんに" + cont "# もらったんだから" + cont "<……> ちょっと" + cont "たたかわせて みようぜ!" + done + +SilentLabP1TextString18: ; 56D4 + text "<RIVAL>『くっそー!" + line "こんどは ぜったい まけないぞ!" + done + +SilentLabP1TextString19: ; 56EE + text "<RIVAL>『よーし!" + line "ほかの #と たたかわせて" + cont "もっと もっと つよくしよう!" + + para "そんじゃ ばいばい!" + done + +SilentLabP1TextString20: ; 571F + text "じいちゃん!" + line "つれてきたよー!" + done + +SilentLabP1TextString21: ; 5730 + text "ぼくは かつて" + line "#トレーナーの ちょうてんを" + cont "めざしたことが あるんだ" + cont "そのとき いいきに なっていた" + cont "ぼくの てんぐのはなを" + cont "へしおった やつに" + cont "きみは どことなく にている" + + para "あいつの おかげで ぼくは" + line "こころを いれかえて" + cont "じいさんの けんきゅうを" + cont "てつだうように なったのさ" + cont "<……> <……> <……> <……> <……>" + + para "さあ!" + line "これが #ずかんだ!" + + para "みつけた #の データが" + line "じどうてきに かきこまれて" + cont "ぺージが ふえて いく という" + cont "とても ハイテクな ずかん だよ!" + done + +SilentLabP1Text12: ; 5814 + ld hl, SilentLabP1TextString22 + call OpenTextbox + ret + +SilentLabP1TextString22: ; 581B + text "ぼくも むかし やったけど" + line "なかなか たいへんだよ<……>" + cont "がんばってね!" + done + +SilentLabP1Text13: ; 583F + ld hl, SilentLabP1TextString24 + call OpenTextbox + ret + +SilentLabP1TextString23: ; 5846 + text "ナナミ『さっき あなたを " + line "つれてきた わかい おとこのこ<……>" + cont "あれは わたしの おとうとなの" + cont "<……>ということは つまり" + + para "そう!" + line "わたしも オーキドの まご なの!" + + para "おじいちゃんは りっぱな" + cont "#けんきゅうしゃよ" + cont "わたしは おてつだい できることが" + cont "とっても うれしいの!" + cont "あっ こんなこと しられたら" + cont "おじいちゃん ちょうしに のるから" + cont "ないしょに しておいてね!" + + para "<……>おじいちゃん すっかり" + line "わすれている みたいだから" + + para "わたしが かわりに これを あげる!" + line "さいしんがた #りュックよ" + + para "<PLAYER>は" + line "#りュックを もらった!" + + para "ナナミ『この りュックには" + line "モンスターボールを" + cont "まとめて いれられる" + cont "ボールホルダと" + cont "わざマシンを まとめて いれられる" + cont "わざマシンホルダが ついているの" + + para "モンスターボール 6こと " + line "わざマシンひとつは オマケしておくわ" + cont "ホルダに なんにも はいってないと" + cont "さびしいもんね!" + + para "ねえ <PLAYER>くン" + line "あなたの おかあさんが" + cont "しんぱいすると いけないから" + cont "このまちを でるまえに" + cont "かおを みせに いってあげてね" + + para "<……>あなたの かつやく" + line "いのっているわ" + done + +SilentLabP1TextString24: ; 5A23 + text "<……>あなたの かつやく" + line "いのってるわ" + done + +SilentLabP1Text14: ; 5A36 + ld hl, SilentLabP1TextString25 + call OpenTextbox + ret + +SilentLabP1TextString25: ; 5A3D + text "わたしは" + line "はかせの じょしゅ です" + + para "わたしは もちろん" + line "はかせを ソンケー しております" + + para "あなた とは また どこかで" + line "おあい することに" + cont "なるような きがします" + done + +SilentLabP1Text15: ; 5A90 + ld hl, SilentLabP1TextString26 + call OpenTextbox + ret + +SilentLabP1TextString26: ; 5A97 + text "わたしは" + line "はかせの じょしゅ です" + + para "わたしは もちろん" + line "はかせを ソンケー しております" + + para "あなた とは また どこかで" + line "おあい することに" + cont "なるような きがします" + done + +SilentLabP1Text16: ; 5AEA + ld hl, SilentLabP1TextString27 + call OpenTextbox + ret + +SilentLabP1TextString27: ; 5AF1 + text "なんだろう?" + line "でんし てちょう かな?" + done + +SilentLabP1Text17: ; 5B05 + ld hl, SilentLabP1TextString28 + call OpenTextbox + ret + +SilentLabP1TextString28: ; 5B0D + text "<RIVAL>『あのメールを くれた" + line "オーキドって こんな じじい<……>" + + para "あっ ゴメン" + line "こんな じいさん なのか?" + cont "ほんもの はじめて みたよ!" + done + +SilentLabP1TextString29: ; 5B4F + text "<RIVAL>『<PLAYER>!" + line "なんだか" + cont "おもしろく なってきたな!" + done + +SilentLabP1Text18: ; 5B68 + ld hl, SilentLabP1TextString30 + call OpenTextbox + ret + +SilentLabP1TextString30: ; 5B6F + text "わたしは" + line "はかせの じょしゅ です" + + para "あなた とは また どこかで" + line "おあい することに" + cont "なるような きがします" + done + +SilentLabP1Text19: ; 5BA7 + ld hl, SilentLabP1TextString31 + call OpenTextbox + ret + +SilentLabP1TextString31: ; 5BAE + text "わたしは" + line "はかせの じょしゅ です" + + para "あなた とは また どこかで" + line "おあい することに" + cont "なるような きがします" + done + +; 5BE6
\ No newline at end of file diff --git a/maps/SilentLabP2.asm b/maps/SilentLabP2.asm new file mode 100644 index 0000000..de99711 --- /dev/null +++ b/maps/SilentLabP2.asm @@ -0,0 +1,360 @@ +include "constants.asm" + +SECTION "Silent Lab P2 Script", ROMX[$5C69], BANK[$34] + +SilentLabP2ScriptLoader:: ; 5C69 + ld hl, SilentLabP2ScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +SilentLabP2ScriptPointers: ; 5C73 + dw SilentLabP2Script1 + dw SilentLabP2NPCIDs1 + dw SilentLabP2Script2 + dw SilentLabP2NPCIDs1 + dw SilentLabP2Script3 + dw SilentLabP2NPCIDs1 + dw SilentLabP2RivalChoosePokemon + dw SilentLabP2NPCIDs1 + dw SilentLabP2Script5 + dw SilentLabP2NPCIDs1 + dw SilentLabP2Script6 + dw SilentLabP2NPCIDs1 + dw SilentLabP2Script7 + dw SilentLabP2NPCIDs1 + +SilentLabP2NPCIDs1: ; 5C8F + db 00, 01, 02, 03, 04, $FF +SilentLabP2NPCIDs2: ; 5C95 + db 00, 01, 04, $FF +SilentLabP2NPCIDs3: ; 5C99 + db 00, 01, 02, $FF +SilentLabP2NPCIDs4: ; 5C9D + db 00, 01, 03, $FF + +SilentLabP2TextPointers1: ; 5CA1 + dw SilentLabP2Text1 + dw SilentLabP2Func3 + dw SilentLabP2Func4 + dw SilentLabP2Func4 + dw SilentLabP2Func4 + +SilentLabP2Script1: ; 5CAB + ld hl, wJoypadFlags + set 4, [hl] + ld a, 0 + call Function17f9 + ld a, 0 + ld hl, SilentLabP2Movement1 + call LoadMovementDataPointer + ld hl, wd41b + set 1, [hl] + ld hl, wc5ed + set 7, [hl] + ld a, 1 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP2Movement1: ; 5CD2 + db 09, 09, 05, $32 + +SilentLabP2Script2: ; 5CD6 + ld hl, wc5ed + set 6, [hl] + call Function20f8 + ld a, 3 + ld d, UP + call SetObjectFacing + ld hl, SilentLabP2TextString1 + call OpenTextbox + ld hl, SilentLabP2TextString10 + call OpenTextbox + ld hl, SilentLabP2TextString2 + call OpenTextbox + ld a, 2 + ld [wMapScriptNumber], a + ret + +SilentLabP2Script3: ; 5CFD + ld hl, SilentLabP2NPCIDs1 + ld de, SilentLabP2TextPointers2 + call CallMapTextSubroutine + ret + +SilentLabP2RivalChoosePokemon: ; 5D07 + ld hl, wJoypadFlags + set 4, [hl] + ld a, 3 + call Function17f9 + ld hl, SilentLabP2MovementPointers + ld a, [wChosenStarter] + ld d, 0 + ld e, a + add hl, de + add hl, de + ld a, [hl+] + ld h, [hl] + ld l, a + ld a, 3 + call LoadMovementDataPointer + ld hl, wc5ed + set 7, [hl] + ld a, 4 + ld [wMapScriptNumber], a + ld a, 1 + call WriteIntod637 + ret + +SilentLabP2MovementPointers: ; 5D34 + dw SilentLabP2Movement2+1 + dw SilentLabP2Movement2 + dw SilentLabP2Movement2+2 + +SilentLabP2Movement2: ; 5D3A + db $0B, $0B, $0B, $0B, $05, $32 + +SilentLabP2Script5: ; 5D40 + ld hl, SilentLabP2TextString12 + call OpenTextbox + ld a, [wd266] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + ld hl, SilentLabP2TextString13 + call OpenTextbox + ld a, 5 + ld [wMapScriptNumber], a + ret + +SilentLabP2Script6: ; 5D5B + call Function20f8 + ld hl, wc5ed + res 6, [hl] + ld a, 6 + ld[wMapScriptNumber], a + ret + +SilentLabP2Script7: ; 5D69 + ld hl, SilentLabP2NPCIDs1 + ld de, SilentLabP2TextPointers2 + call CallMapTextSubroutine + ret + +SilentLabP2Text1: ; 5D73 + ld hl, wd41b + bit 2, [hl] + ld hl, SilentLabP2TextString3 + jr z, .skip + ld hl, SilentLabP2TextString9 +.skip + call OpenTextbox + ret + +SilentLabP2TextString1: ; 5D84 + text "オーキド『ほれ そこに 3びき" + cont "ポケモンが いる じゃろう!" + cont "ほっほ!" + + para "こいつらを きみたちに" + cont "いっぴき づつ やろう!" + cont "…… さあ えらべ!" + done + +SilentLabP2TextString2: ; 5DCD + text "オーキド『まあ" + line "あわてるな <RIVAL>!" + cont "おまえも すきなものを とれ!" + done + +SilentLabP2TextString3: ; 5DEF + text "オーキド『さあ <PLAYER>" + line "どの ポケモンに するかね?" + done + +SilentLabP2TextString4: ; 5E1C + text "オーキド『ほう! ほのおのポケモン" + line "@" + ld bc, wStringBuffer1 + text "に するんじゃな?@" + db 08 + call ConfirmPokemonSelection + call Function3036 + ret + +SilentLabP2TextString5: ; 5E32 + text "オーキド『ふむ みずのポケモン" + line "@" + ld bc, wStringBuffer1 + text "に きめるのじゃな?@" + db 08 + call ConfirmPokemonSelection + call Function3036 + ret + +SilentLabP2TextString6: ; 5E6E + text "オーキド『おお! くさのポケモン" + line "@" + ld bc, wStringBuffer1 + text "が いいんじゃな?@" + db 08 + call ConfirmPokemonSelection + call Function3036 + ret + +ConfirmPokemonSelection: ; 5E85 + call YesNoBox + jr c, .bigJump + ld hl, wd41b + set 2, [hl] + ld a, 1 + ld [wd29b], a + ld a, 1 + ld [wd29a], a + ld a, 1 + ld [wd2a0], a + ld hl, SilentLabP2TextString8 + call PrintText + ld hl, wJoypadFlags + set 5, [hl] + ld a, [wd265] + ld [wMonDexIndex], a + ld a, 5 + ld [wCurPartyLevel], a + callab Function60a0 + xor a + ld [wPartyMon1 + 1], a + ld a, 3 + ld [wMapScriptNumber], a + ret +.bigJump ; 5EC6 + ld hl, SilentLabP2TextString7 + call PrintText + ret + +SilentLabP2TextString7: ; 5ECD + text "では" + line "どれに するのじゃ?" + done + +SilentLabP2TextString8: ; 5EDC + text "オーキド『この ポケモンは" + line "ほんとに げんきが いいぞ!" + + para "<PLAYER>は オーキドはかせから" + line "@" + ld bc, wStringBuffer1 + text "を もらった!<PROMPT>" + +SilentLabP2TextString9: ; 5F14 + text "オーキド『そうじゃ!" + line "やせいの ポケモンが でて きても" + cont "そいつを たたかわせて いけば" + cont "となりまちへ いける!" + done + +SilentLabP2Func3: ; 5F4E + ld hl, wd41b + bit 2, [hl] + ld hl, SilentLabP2TextString11 + jr z, .skip + ld hl, SilentLabP2TextString14 +.skip + call OpenTextbox + ret + +SilentLabP2TextString10: ; 5F5F + text "<RIVAL>『あッ! おれにも!" + line "じいさん おれにもくれよう!" + done + +SilentLabP2TextString11: ; 5F7B + text "<RIVAL>『いいぜ <PLAYER>!" + line "さきに えらんで!" + cont "おれは こころが ひろいからな" + done + +SilentLabP2TextString12: ; 5F9F + text "<RIVAL>『じゃ おれは これ!" + done + +SilentLabP2TextString13: ; 5FAD + text "<RIVAL>は オーキドから" + line "@" + ld bc, wStringBuffer1 + text "を もらった!" + done + +SilentLabP2TextString14: ; 5FC5 + text "<RIVAL>『<PLAYER>の#" + line "いいなあ!" + cont "でも おれのポケモンも" + cont "ちょっと いいだろ?" + done + +SilentLabP2Func4: ; 5FE9 + ld hl, wd41b + bit 2, [hl] + jr nz, .bigjump + ldh a, [hFFEA] + sub 2 + ld [wChosenStarter], a + ld d, 0 + ld e, a + ld hl, SilentLabP2StarterData + add hl, de + add hl, de + add hl, de + add hl, de + ld a, [hl+] + ld [wd265], a + push hl + ld [wNamedObjectIndexBuffer], a + callba Function6734 + ld a, [wd265] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + pop hl + push hl + ld a, [hl+] + ld h, [hl] + ld l, a + call OpenTextbox + pop hl + inc hl + inc hl + ld a, [hl] + ld [wd266], a + ret +.bigjump + ld hl, SilentLabP2TextString15 + call OpenTextbox + ret + +SilentLabP2StarterData: ; 6031 + db DEX_HONOGUMA + dw $5E09 + db DEX_KURUSU + + db DEX_KURUSU + dw $5E33 + db DEX_HAPPA + + db DEX_HAPPA + dw $5E5C + db DEX_HONOGUMA + +SilentLabP2TextString15: ; 603D + text "オーキド『これ!" + line "よくばっちゃ いかん!" + done + +SilentLabP2TextPointers2: ; 6053 + dw Function3899 + dw Function3899 + dw Function3899 + dw Function3899 + dw MapDefaultText + +; 605D
\ No newline at end of file diff --git a/maps/SilentPokecenter.asm b/maps/SilentPokecenter.asm new file mode 100644 index 0000000..dc1a35a --- /dev/null +++ b/maps/SilentPokecenter.asm @@ -0,0 +1,113 @@ +include "constants.asm" + +SECTION "Silent Hills Pokecenter", ROMX[$4682], BANK[$34] + +SilentPokecenterScriptLoader:: ; 4682 + ld hl, SilentPokecenterScriptPointers + call RunMapScript + call WriteBackMapScriptNumber + ret + +SilentPokecenterScriptPointers: ; 468C + dw SilentPokecenterScript + dw SilentPokecenterNPCIDs + +SilentPokecenterScript: ; 4690 + ld hl, SilentPokecenterNPCIDs + ld de, SilentPokecenterPCPointer + call CallMapTextSubroutine + ret + +; 469A + dw SilentPokecenterNPCIDs + +SilentPokecenterNPCIDs: ; 469C + db 0 + db 1 + db 2 + db 3 + db 4 + db $FF + +SilentPokecenterPCPointer: ; 46A2 + dw SilentPokecenterPCText + +SilentPokecenterPCText: ; 46A4 + ld hl, SilentPokecenterTextString1 + call OpenTextbox + ret + +SilentPokecenterTextString1: ; 46AB + text "げんざい ちょうせいちゅうです" + done + +SilentPokecenterTextPointers:: ; 46BC + dw SilentPokecenterNPCText1 + dw SilentPokecenterNPCText2 + dw SilentPokecenterNPCText3 + dw SilentPokecenterNPCText4 + dw SilentPokecenterNPCText5 + +SilentPokecenterNPCText1: ; 46C6 + ld hl, SilentPokecenterTextString2 + call OpenTextbox + ret + +SilentPokecenterTextString2: ; 46CD + text "もうしわけありませんが" + line "ただいま しゅうりちゅう でして" + + para "かいふくは できません" + + para "まちから でるときは" + line "じゅうぶんに おきをつけ ください" + done + +SilentPokecenterNPCText2: ; 4714 + ld hl, SilentPokecenterTextString3 + call OpenTextbox + ret + +SilentPokecenterTextString3: ; 471B + text "あそこに ある パソコンは" + line "トレーナー だったら" + cont "いつでも むりょうで" + cont "つかうことが できるよ" + cont "きが きいてるよな!" + done + +SilentPokecenterNPCText3: ; 4757 + ld hl, SilentPokecenterTextString4 + call OpenTextbox + ret + +SilentPokecenterTextString4: ; 475E + text "いま じゅんびちゅうの" + line "きかいは すごいらしいよ" + + para "なんでも ときを こえて" + line "ポケモンが こうかん できるって!" + + para "ほんとかな?" + done + +SilentPokecenterNPCText4: ; 479E + ld hl, SilentPokecenterTextString5 + call OpenTextbox + ret + +SilentPokecenterTextString5: ; 47A5 + text "こいつ へルガー" + line "いままでにない タイプの ポケモンさ" + done + +SilentPokecenterNPCText5: ; 47C2 + ld hl, SilentPokecenterTextString6 + call OpenTextbox + ret + +SilentPokecenterTextString6: ; 47C9 + text "へルガー『ぐるるうー" + done + +; 47D5
\ No newline at end of file @@ -64,6 +64,8 @@ 03:5E79 Functionde79 03:5F7D Functiondf7d 03:5F91 Functiondf91 +03:60A0 Function60a0 +03:6734 Function6734 04:4743 ShrinkPic1 04:479D ShrinkPic2 @@ -100,6 +102,7 @@ ; word Unknown (2 bytes) 05:470E UnknownMapBufferPointers 05:4777 Function14777 +05:477D Function1477D 05:4CAC Function14cac 05:4DAC Function14dac 05:4DC4 Function14dc4 @@ -459,7 +462,6 @@ 00:CB6F wPlayerStepDirection 01:D19E wItems -01:D264 wPlayerBikeSurfState ; The starting house's map script number is stored at d29a. Others are probably nearby. 01:D35F wOptions 01:D513 wWarpNumber @@ -430,6 +430,8 @@ wVramState:: db ; cd59 ds 3 ; TODO wcd5d:: db ; cd5d + db +wChosenStarter:: db ; cd5f SECTION "CD72", WRAM0[$CD72] wcd72:: dw ; cd72 @@ -482,8 +484,11 @@ wcdd7:: db ; cdd7 SECTION "CE00", WRAM0[$CE00] -wBattleMode:: ; ce00 +wBattleMode:: db ; ce00 db +wce02:: db ; ce02 + ds 2 +wce05:: db ; ce05 SECTION "CE07", WRAM0[$CE07] @@ -718,8 +723,32 @@ wBallQuantities:: db ; d1df SECTION "Rival's Name", WRAM0[$D258] wRivalName:: ds 6 ; d258 + ds 6 + +wPlayerBikeSurfState:: db ; d264 +wd265:: db ; d265 +wd266:: db ; d266 + +SECTION "D29A", WRAM0[$D29A] +wd29a:: db ; d29a +wd29b:: db ; d29b + db ; d29c +wd29d:: db ; d29d + db + db +wd2a0:: db ; d2a0 + +SECTION "D39D", WRAM0[$D39D] +wd39d:: db + +SECTION "Game Event Flags", WRAM0[$D41A] +wd41a:: db +wd41b:: db +wd41c:: db +wd41d:: db +wd41e:: db -SECTION "D4AB", WRAM0[$D4A9] +SECTION "D4A9", WRAM0[$D4A9] wd4a9:: db ; d4a9 ds 1 ; TODO @@ -727,7 +756,7 @@ wJoypadFlags:: db ; d4ab ; 76543210 ; ||||\__/ ; |||| \-- unkn -; |||\----- unkn +; |||\----- set for rival intro textbox ; ||\------ don't wait for keypress to close text box ; |\------- joypad sync mtx ; \-------- joypad disabled |