From 130f5f1bb94ddcc609b5b5344a72d803b68a1102 Mon Sep 17 00:00:00 2001 From: 2Tie Date: Sun, 17 Jun 2018 03:42:21 -0600 Subject: happy birthday, here's the main menu debug menu... menu --- engine/menu/debug_menu.asm | 109 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 engine/menu/debug_menu.asm (limited to 'engine/menu') diff --git a/engine/menu/debug_menu.asm b/engine/menu/debug_menu.asm new file mode 100644 index 0000000..cc19edb --- /dev/null +++ b/engine/menu/debug_menu.asm @@ -0,0 +1,109 @@ +INCLUDE "constants.asm" + +SECTION "Debug Menu", ROMX[$4031], BANK[$01] + +DebugMenu:: ; $4031 +call ClearTileMap +call ClearWindowData +call LoadFont +call LoadFontsBattleExtra +call ClearSprites +call GetMemSGBLayout +xor a +ld [wWhichIndexSet], a +ld hl, DebugMenuData +call LoadMenuHeader +call OpenMenu +call CloseWindow +jp c, TitleSequenceStart +ld a, $41 +ld [wce5f], a +ld a, [wMenuSelection] +ld hl, DebugJumpTable1 +jp CallJumptable + +DebugJumpTable1:: ; 4064 + dw DebugMenuOptionFight + dw DebugMenuOptionField + dw Function094c ; sound test + dw DebugMenuOptionSubGames + dw DebugMenuOptionMonsterTest + dw DebugMenuOptionName + +DebugMenuData: ; 4070 + db MENU_BACKUP_TILES ; flags + menu_coords 05, 02, SCREEN_WIDTH - 7, SCREEN_HEIGHT - 1 + dw .MenuData + db 01 ; default option + +.MenuData: ; 4078 + db $A0 + db 0 ; items + dw $40A0 + db $8A, $1F + dw .Strings + +.Strings + db "ファイト@" + db "フィールド@" + db "サウンド@" + db "サブゲーム@" + db "モンスター@" + db "なまえ@" + +DebugMenuItems: + db 06 + db 00 + db 01 + db 02 + db 03 + db 04 + db 05 + db -1 + +DebugMenuOptionField:: ; 40A8 + ld hl, wce63 + set 1, [hl] ; set debug mode + jp Function555C + +DebugMenuOptionFight:: ; 40B0 + ld hl, wce63 + set 0, [hl] + ld a, $54 + call Predef + ld hl, wce63 + res 0, [hl] + ret + +DebugMenuOptionSubGames:: ; 40C0 + callab CallSubGameMenu + jp DebugMenu + +DebugMenuOptionMonsterTest:: ; 40CB + ld hl, wPokedexOwned + ld de, wPokedexSeen + ld b, $1F + ld a, $FF +.loop + ld [hl+], a + ld [de], a + inc de + dec b + jr nz, .loop + ld a, $03 + ld [hl], a + ld [de], a + callab MonsterTest + ld a, $e4 + ldh [rBGP], a + +Function40eb:: + jp DebugMenu + +DebugMenuOptionName:: ; 40EE + callab OpenPokegear + ld a, $e4 + ldh [rBGP], a + jp DebugMenu + +; 40FD \ No newline at end of file -- cgit v1.2.3 From b095e626305a4c99f8b14c46b46c1bf97fe00262 Mon Sep 17 00:00:00 2001 From: 2Tie Date: Sun, 17 Jun 2018 11:16:28 -0600 Subject: some more tidying up --- engine/menu/debug_menu.asm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'engine/menu') diff --git a/engine/menu/debug_menu.asm b/engine/menu/debug_menu.asm index cc19edb..2b07211 100644 --- a/engine/menu/debug_menu.asm +++ b/engine/menu/debug_menu.asm @@ -39,7 +39,7 @@ DebugMenuData: ; 4070 .MenuData: ; 4078 db $A0 db 0 ; items - dw $40A0 + dw DebugMenuItems db $8A, $1F dw .Strings @@ -62,17 +62,17 @@ DebugMenuItems: db -1 DebugMenuOptionField:: ; 40A8 - ld hl, wce63 - set 1, [hl] ; set debug mode + ld hl, wDebugFlags + set DEBUG_FIELD_F, [hl] ; set debug mode jp Function555C DebugMenuOptionFight:: ; 40B0 - ld hl, wce63 - set 0, [hl] + ld hl, wDebugFlags + set DEBUG_BATTLE_F, [hl] ld a, $54 call Predef - ld hl, wce63 - res 0, [hl] + ld hl, wDebugFlags + res DEBUG_BATTLE_F, [hl] ret DebugMenuOptionSubGames:: ; 40C0 -- cgit v1.2.3 From c557bd661357b1371633a40b7ae6a8e2996de6e2 Mon Sep 17 00:00:00 2001 From: 2Tie Date: Sun, 17 Jun 2018 23:04:49 -0600 Subject: main menu progress for the day, still have a bunch more to go. --- engine/menu/debug_menu.asm | 42 +-- engine/menu/main_menu.asm | 633 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 642 insertions(+), 33 deletions(-) (limited to 'engine/menu') diff --git a/engine/menu/debug_menu.asm b/engine/menu/debug_menu.asm index 2b07211..be46a00 100644 --- a/engine/menu/debug_menu.asm +++ b/engine/menu/debug_menu.asm @@ -3,26 +3,26 @@ INCLUDE "constants.asm" SECTION "Debug Menu", ROMX[$4031], BANK[$01] DebugMenu:: ; $4031 -call ClearTileMap -call ClearWindowData -call LoadFont -call LoadFontsBattleExtra -call ClearSprites -call GetMemSGBLayout -xor a -ld [wWhichIndexSet], a -ld hl, DebugMenuData -call LoadMenuHeader -call OpenMenu -call CloseWindow -jp c, TitleSequenceStart -ld a, $41 -ld [wce5f], a -ld a, [wMenuSelection] -ld hl, DebugJumpTable1 -jp CallJumptable + call ClearTileMap + call ClearWindowData + call LoadFont + call LoadFontsBattleExtra + call ClearSprites + call GetMemSGBLayout + xor a + ld [wWhichIndexSet], a + ld hl, DebugMenuHeader + call LoadMenuHeader + call OpenMenu + call CloseWindow + jp c, TitleSequenceStart + ld a, $41 + ld [wce5f], a + ld a, [wMenuSelection] + ld hl, DebugJumpTable + jp CallJumptable -DebugJumpTable1:: ; 4064 +DebugJumpTable:: ; 4064 dw DebugMenuOptionFight dw DebugMenuOptionField dw Function094c ; sound test @@ -30,7 +30,7 @@ DebugJumpTable1:: ; 4064 dw DebugMenuOptionMonsterTest dw DebugMenuOptionName -DebugMenuData: ; 4070 +DebugMenuHeader: ; 4070 db MENU_BACKUP_TILES ; flags menu_coords 05, 02, SCREEN_WIDTH - 7, SCREEN_HEIGHT - 1 dw .MenuData @@ -64,7 +64,7 @@ DebugMenuItems: DebugMenuOptionField:: ; 40A8 ld hl, wDebugFlags set DEBUG_FIELD_F, [hl] ; set debug mode - jp Function555C + jp StartNewGame DebugMenuOptionFight:: ; 40B0 ld hl, wDebugFlags diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 8a37093..d7870ea 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -1,8 +1,44 @@ INCLUDE "constants.asm" -SECTION "Main Menu Definition", ROMX[$5418], BANK[$01] +SECTION "Main Menu", ROMX[$53CC], BANK[$01] -MainMenuHeader: +MainMenu:: ; 01:53CC + ld hl, wd4a9 + res 0, [hl] + call ClearTileMap + call GetMemSGBLayout + call LoadFontExtra + call LoadFont + call ClearWindowData + call Function5388 + ld hl, wce60 + bit 0, [hl] + jr nz, .setMenuContinue + xor a + jr .skip +.setMenuContinue + ld a, M_CONTINUE +.skip + ldh a, [hJoyState] + and D_DOWN | B_BUTTON | A_BUTTON + cp D_DOWN | B_BUTTON | A_BUTTON + jr nz, .setMenuPlay + ld a, M_SET_TIME + jr .triggerMenu +.setMenuPlay + ld a, M_PLAY_GAME +.triggerMenu + ld [wWhichIndexSet], a + ld hl, MainMenuHeader + call LoadMenuHeader + call OpenMenu + call CloseWindow + jp c, TitleSequenceStart + ld hl, MainMenuJumptable + ld a, [wMenuSelection] + jp CallJumptable + +MainMenuHeader: ; 01:5418 db $40 menu_coords 0, 0, 13, 7 dw .MenuData @@ -23,17 +59,11 @@ MainMenuHeader: db "じかんセット@" MainMenuJumptable: ; 01:5457 - dw $547c - dw $555c + dw MainMenuOptionContinue + dw StartNewGame dw $5cf3 - dw $555c - dw $5473 - -CONTINUE EQU 0 -NEW_GAME EQU 1 -OPTION EQU 2 -PLAY_POKEMON EQU 3 -SET_TIME EQU 4 + dw StartNewGame + dw MainMenuOptionSetTime MainMenuItems: @@ -62,3 +92,582 @@ PlayPokemonSetTimeMenu: db OPTION db SET_TIME db -1 + +MainMenuOptionSetTime:: ; 5473 + callab SetTime + ret + +MainMenuOptionContinue:: ;547C + callab Function14624 + call DisplayContinueGameInfo +.loop + call ClearJoypad + call GetJoypad + ldh a, [hJoyState] + bit A_BUTTON_F, a + jr nz, .escape + bit B_BUTTON_F, a + jp nz, MainMenu + jr .loop +.escape + call $5397 ; todo + call $53B0 ; todo + ld hl, wDebugFlags + res DEBUG_FIELD_F, [hl] + set 2, [hl] + set 3, [hl] + ldh a, [hJoyState] + bit SELECT_F, a + jr z, .skip + set 1, [hl] +.skip + call ClearBGPalettes + call ClearTileMap + ld c, $0A + call DelayFrames + jp OverworldStart ; todo + +DisplayContinueGameInfo:: ; 54BF + xor a + ldh [hBGMapMode], a + hlcoord 4, 7 + ld b, $08 + ld c, $0D + call DrawTextBox + hlcoord 5, 9 + ld de, PlayerInfoText + call PlaceString + hlcoord 13, 9 + ld de, wPlayerName + call PlaceString + hlcoord 14, 11 + call PrintNumBadges + hlcoord 13, 13 + call PrintNumOwnedMons + hlcoord 12, 15 + call PrintPlayTime + ld a, $01 + ldh [hBGMapMode], a + ld c, $1E + call DelayFrames + ret + +PrintNumBadges:: ;54FA + push hl + ld hl, wd163 ; badges? + ld b, $01 + call CountSetBits + pop hl + ld de, wCountSetBitsResult + ld bc, $0102 ; flags and constants for this? 1 byte source, 2 digit display + jp PrintNumber + +PrintNumOwnedMons:: ; 550D + push hl + ld hl, wPokedexOwned + ld b, $20 ; flag_array NUM_POKEMON? + call CountSetBits + pop hl + ld de, wCountSetBitsResult + ld bc, $0103 ; 1 byte, 3 digit + jp PrintNumber + +PrintPlayTime:: ; 5520 + ld de, hRTCHours + ld bc, $0103 ; 1 byte, 3 digit + call PrintNumber + ld [hl], ":" + inc hl + ld de, hRTCMinutes + ld bc, $8102 ; PRINTNUM_LEADINGZEROS, 1 byte, 2 digit + jp PrintNumber + +PlayerInfoText: + db "しゅじんこう" + next "もっているバッジ    こ" + next "#ずかん    ひき" + next "プレイじかん" + text_end + +StartNewGame:: ; 555C + ld de, MUSIC_NONE + call PlayMusic + ld de, MUSIC_OAK_INTRO + call PlayMusic + call LoadFontExtra + xor a + ldh [hBGMapMode], a + callba Function52f9 + call ClearTileMap + call ClearWindowData + xor a + ldh [hMapAnims], a + ld a, [wDebugFlags] + bit DEBUG_FIELD_F, a + jp z, DemoStart + call DebugSetUpPlayer ; todo - sets up debug stuff? + jp IntroCleanup ; todo - gives strter & does shrinkydink? + +DemoStart:: ; 558D + ld de, $4BD4 + ld bc, $1200 + call Function5d27 + call $5CF7 ; todo + ld hl, OakSpeechDemo ; todo + call PrintText + call RotateThreePalettesRight + call ClearTileMap + ld de, $4D10 + ld bc, $1200 + call Function5d27 + call $5D0E ; todo + ld a, $D0 ; todo + ldh [rOBP0], a + call DemoSetUpPlayer ; todo + jp IntroCleanup ; todo + +GameStart:: ; 55BB + ld de, $4BD4 + ld bc, $1200 + call Function5d27 + call $5CF7 + ld hl, OakSpeech1 + call PrintText + call RotateThreePalettesRight + call ClearTileMap + ld a, $C8 + ld [$CB5B], a + ld [$CD78], a + call GetMonHeader + ld hl, $C2F6 + ld hl, $C2F6 + call PrepMonFrontpic + call $5D0E + ld hl, OakSpeech2 + call PrintText + ld a, $C8 ; this should be a constant methinks + call PlayCry + ld hl, OakSpeech3 + call PrintText + call RotateThreePalettesRight + call ClearTileMap + ld de, $4D10 + ld bc, $1200 + call Function5d27 + call $5D0E + ld hl, OakSpeech4 + call PrintText + call $5B25 + call RotateThreePalettesRight + call ClearTileMap + ld de, $4ab7 + ld bc, $1200 + call Function5d27 + call $5CF7 + ld hl, OakSpeech5 + call PrintText + call $5BA9 + call RotateThreePalettesRight + call ClearTileMap + ld de, $4BD4 + ld bc, $1200 + call Function5d27 + call $5CF7 + ld hl, OakSpeech6 + call PrintText + ld a, $24 + ld hl, $4000 + call FarCall_hl + call Function04ac + call RotateThreePalettesRight + call ClearTileMap + ld de, $4D10 + ld bc, $1200 + call Function5d27 + call RotateThreePalettesLeft + ld hl, OakSpeech7 + call PrintText + ldh a, [hROMBank] + push af + ld a, $20 + ld [wMusicFade], a + ld de, MUSIC_NONE + ld a, e + ld [wMusicFadeID], a + ld a, d + ld [$C1A8], a + ld de, $000B ; should be a constant - shrink noise? + call PlaySFX + pop af + call Bankswitch + ld c, $04 + call DelayFrames + +IntroCleanup:: ; 568E + ld de, $4743 + ld bc, $0400 + call $5D27 + ld c, $04 + call DelayFrames + ld de, $479D + ld bc, $0400 + call $5D27 + ld c, $14 + call DelayFrames + ld hl, $C30A + ld b, $07 + ld c, $07 + call ClearBox + ld c, $14 + call DelayFrames + call $5D5D + call LoadFontExtra + ld c, $32 + call DelayFrames + call RotateThreePalettesRight + call ClearTileMap + call Function0502 + ld a, $00 + ld [wd638], a + ld [wd637], a + +OverworldStart:: + call SetUpGameEntry + ld hl, wDebugFlags + bit 2, [hl] ; ? + call z, Function15b5 + ld hl, wd4a9 + set 0, [hl] + jp Function2a85 + +SetUpGameEntry:: ; 56E8 + ld a, $04 + ld [wd65e], a + ld a, $F2 + ldh [hMapEntryMethod], a + ld hl, wDebugFlags + bit 2, [hl] ; ? + ret nz + ld a, $F1 + ldh [hMapEntryMethod], a + ld a, $00 + ld [wDebugWarpSelection], a + ld hl, GameStartPlacement + ld de, wMapGroup + ld bc, $0008 + call CopyBytes + ret + +GameStartPlacement:: ; 570D + db $01 ; map group + db $09 ; map + dw $C633 ; screen anchor + db $04 ; metatile x + db $04 ; metatile y + db $00 ; in-metatile x + db $01 ; in-metatile y + +DebugSetUpPlayer:: ; 5715 + call $5B07 + ld a, $0F + ld [wd15d], a + ld a, $42 + ld [wd15e], a + ld a, $3F + ld [wd15f], a + ld a, $FF + ld [wd163], a + ld [wd164], a + call GiveRandomJohto + ld a, $03 + call Function57eb + call FillTMs + ld de, DebugBagItems + call FillBagWithList + ld hl, wPokedexOwned + call DebugFillPokedex + ld hl, wPokedexSeen + call DebugFillPokedex + ld hl, wAnnonDex + ld [hl], $01 + call $40FD + ret + +DebugFillPokedex:: ; 5755 + ld b, $1F + ld a, $FF +.loop + ld [hl+], a + dec b + jr nz, .loop + ld [hl], $07 + ret + +FillBagWithList:: ; 5760 + ld hl, wNumBagItems +.loop + ld a, [de] + cp $FF + jr z, .yump + ld [wCurItem], a + inc de + ld a, [de] + inc de + ld [wItemQuantity], a + call AddItemToInventory + jr .loop +.yump + ret + +DebugBagItems:: ; 5777 + db ITEM_IMPORTANT_BAG, $01 + db ITEM_BAG, $01 + db ITEM_TM_HOLDER, $01 + db ITEM_BALL_HOLDER, $01 + db ITEM_BICYCLE, $01 + db ITEM_MAIL, $06 + db ITEM_ULTRA_BALL, $1E + db ITEM_POKE_BALL, $63 + db ITEM_POTION, $1E + db ITEM_RARE_CANDY, $14 + db ITEM_MOON_STONE, $63 + db ITEM_FULL_HEAL, $63 + db ITEM_PROTEIN, $63 + db ITEM_QUICK_NEEDLE, $63 + db ITEM_SNAKESKIN, $63 + db ITEM_KINGS_ROCK, $63 + db ITEM_FLEE_FEATHER, $63 + db ITEM_FOCUS_ORB, $63 + db ITEM_SHARP_SCYTHE, $63 + db ITEM_DETECT_ORB, $63 + db $FF + +Function57A0 ; 57A0 + and a + ret z +.loop + push af + call RandomOver246 + ld b, $0A + call GivePokemon + pop af + dec a + jr nz, .loop + ret + +GiveRandomJohto:: ; 57B0 +.loop + call Random + and $03 + jr z, .loop + dec a + ld b, a + add a, a + add a, b + add a, $98 ; maybe should be a constant - 152, aka the number of kanto pokes + ld b, $08 + call GivePokemon + ld a, $8D + ld [wd6b3], a + ret + +GiveKantoStarters:: ; 57C8 + ld a, $03 + ld b, $20 + call GivePokemon + ld a, $06 + ld b, $24 + call GivePokemon + ld a, $09 + ld b, $24 + call GivePokemon + ret + +GivePokemon:: ; 57DE + ld [wMonDexIndex], a + ld a, b + ld [wCurPartyLevel], a + ld a, $10 + call Predef + ret + +Function57eb ; 57EB + and a + ret z +.loop + push af + xor a + ld [wca44], a + call RandomOver246 + ld [wcdd7], a + ld a, $05 + ld [wCurPartyLevel], a + callab Function3e043 + ld a, [wcdd7] + ld [wMonDexIndex], a + callab Functiondd5c + pop af + dec a + jr nz, .loop + ret + +RandomOver246:: ; 5818 +.loop + call Random + and a + jr z, .loop + cp $F6 + jr nc, .loop + ret + +FillTMs:: ; 5823 + ld b, $39 + ld a, $01 + ld hl, wTMsHMs +.loop + ld [hl+], a + dec b + jr nz, .loop + ret + +DebugGiveKeyItems:: ; 582F + ld hl, DebugKeyItemsList + ld de, wKeyItems + ld c, $FF +.loop + inc c + ld a, [hl+] + ld [de], a + inc de + cp $FF + jr nz, .loop + ld a, c + ld [wNumKeyItems], a + ret + +DebugKeyItemsList:: ; 5844 + db ITEM_TM_HOLDER + db ITEM_BALL_HOLDER + db ITEM_BAG + db ITEM_BICYCLE + db $FF + +DemoSetUpPlayer:: ; 5849 + ld hl, wPlayerName + ld de, DemoPlayerName + call CopyString + ld hl, wRivalName + ld de, DemoRivalName + call CopyString + call $40FD + ld de, DemoItemList + call FillBagWithList + call GiveRandomJohto + ret + +DemoItemList:: ; 5868 + db ITEM_POKE_BALL, $05 + db ITEM_POTION, $0A + db ITEM_FULL_HEAL, $0A + db ITEM_STIMULUS_ORB, $01 + db ITEM_FOCUS_ORB, $01 + db $FF + +DemoPlayerName:: ; 5873 + db "サトシ@" + +DemoRivalName:: ; 5877 + db "シゲル@" + +OakSpeechDemo:: ; 587B + text "ようこそ" + line "ポケット モンスターの せかいへ!" + cont "ごぞんじ わしが オーキドじゃ!" + + para "きょう きみに きてもらったのは" + line "ほかでもない" + cont "あたらしい ずかんづくりを" + cont "てつだって ほしいのじゃ!" + + para "もちろん" + line "きみの パートナーとなる ポケモンと" + cont "りュックは ようい しておる" + + para "りュックの なかには" + line "キズぐすりと" + cont "モンスターボールが" + cont "はいっておるから あんしんじゃ!" + + para "すでに きみの ライバルは" + line "しゅっぱつ しとる" + + para "まけないよう がんばって くれい!" + prompt + +OakSpeech1:: ; 5956 + text "いやあ またせた!" + + para "ポケット モンスターの せかいへ" + line "ようこそ!" + + para "わたしの なまえは オーキド" + + para "みんなからは # はかせと" + line "したわれて おるよ" + prompt + +OakSpeech2:: ; 599F + text "きみも もちろん" + line "しっているとは おもうが" + + para "この せかいには" + line "ポケット モンスターと よばれる" + cont "いきもの たちが" + cont "いたるところに すんでいる!" + prompt + +OakSpeech3:: ; 59E8 + text "その # という いきものを" + line "ひとは ぺットに したり" + cont "しょうぶに つかったり" + cont "そして・・・" + + para "わたしは この #の" + line "けんきゅうを してる というわけだ" + prompt + +OakSpeech4:: ; 5A35 + text "では はじめに きみの なまえを" + line "おしえて もらおう!" + prompt + +OakSpeech5:: ; 5A52 + text "そして この しょうねんは" + line "きみの おさななじみであり" + cont"ライバルである" + + para "・・・えーと?" + line "なまえは なんて いったかな?" + prompt + +OakSpeech6:: ; 5A8F + text "さて きみの きねんすべき" + line "たびだちのひを" + cont "きろくしておこう!" + + para "じかんも なるべく せいかくにな!" + prompt + +OakSpeech7:: ; 5AC2 + text "!" + + para "いよいよ これから" + line "きみの ものがたりの はじまりだ!" + + para "ゆめと ぼうけんと!" + line "ポケット モンスターの せかいへ!" + + para "レッツ ゴー!" + done + +; 5B07 \ No newline at end of file -- cgit v1.2.3 From 0a2d5a66cd53e7bad4883eaa683eb7743da3c337 Mon Sep 17 00:00:00 2001 From: 2Tie Date: Mon, 18 Jun 2018 19:37:04 -0600 Subject: more disassembly in bank 1 --- engine/menu/main_menu.asm | 403 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 368 insertions(+), 35 deletions(-) (limited to 'engine/menu') diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index d7870ea..320df82 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -61,7 +61,7 @@ MainMenuHeader: ; 01:5418 MainMenuJumptable: ; 01:5457 dw MainMenuOptionContinue dw StartNewGame - dw $5cf3 + dw MenuCallSettings dw StartNewGame dw MainMenuOptionSetTime @@ -205,44 +205,44 @@ StartNewGame:: ; 555C ld a, [wDebugFlags] bit DEBUG_FIELD_F, a jp z, DemoStart - call DebugSetUpPlayer ; todo - sets up debug stuff? - jp IntroCleanup ; todo - gives strter & does shrinkydink? + call DebugSetUpPlayer + jp IntroCleanup DemoStart:: ; 558D - ld de, $4BD4 + ld de, $4BD4 ; maybe this should be a macro - b is bank, de is address, c is flag ld bc, $1200 - call Function5d27 - call $5CF7 ; todo - ld hl, OakSpeechDemo ; todo + call IntroDisplayPicCenteredOrUpperRight + call FadeInIntroPic + ld hl, OakSpeechDemo call PrintText call RotateThreePalettesRight call ClearTileMap ld de, $4D10 ld bc, $1200 - call Function5d27 - call $5D0E ; todo + call IntroDisplayPicCenteredOrUpperRight + call MovePicLeft ld a, $D0 ; todo ldh [rOBP0], a - call DemoSetUpPlayer ; todo - jp IntroCleanup ; todo + call DemoSetUpPlayer + jp IntroCleanup GameStart:: ; 55BB ld de, $4BD4 ld bc, $1200 - call Function5d27 - call $5CF7 + call IntroDisplayPicCenteredOrUpperRight + call FadeInIntroPic ld hl, OakSpeech1 call PrintText call RotateThreePalettesRight call ClearTileMap - ld a, $C8 + ld a, $C8 ; pokemon preview ID ld [$CB5B], a ld [$CD78], a call GetMonHeader ld hl, $C2F6 ld hl, $C2F6 call PrepMonFrontpic - call $5D0E + call MovePicLeft ld hl, OakSpeech2 call PrintText ld a, $C8 ; this should be a constant methinks @@ -253,37 +253,35 @@ GameStart:: ; 55BB call ClearTileMap ld de, $4D10 ld bc, $1200 - call Function5d27 - call $5D0E + call IntroDisplayPicCenteredOrUpperRight + call MovePicLeft ld hl, OakSpeech4 call PrintText - call $5B25 + call ChoosePlayerName call RotateThreePalettesRight call ClearTileMap ld de, $4ab7 ld bc, $1200 - call Function5d27 - call $5CF7 + call IntroDisplayPicCenteredOrUpperRight + call FadeInIntroPic ld hl, OakSpeech5 call PrintText - call $5BA9 + call ChooseRivalName call RotateThreePalettesRight call ClearTileMap ld de, $4BD4 ld bc, $1200 - call Function5d27 - call $5CF7 + call IntroDisplayPicCenteredOrUpperRight + call FadeInIntroPic ld hl, OakSpeech6 call PrintText - ld a, $24 - ld hl, $4000 - call FarCall_hl + callba SetClockDialog call Function04ac call RotateThreePalettesRight call ClearTileMap ld de, $4D10 ld bc, $1200 - call Function5d27 + call IntroDisplayPicCenteredOrUpperRight call RotateThreePalettesLeft ld hl, OakSpeech7 call PrintText @@ -293,9 +291,9 @@ GameStart:: ; 55BB ld [wMusicFade], a ld de, MUSIC_NONE ld a, e - ld [wMusicFadeID], a + ld [wMusicFadeIDLow], a ld a, d - ld [$C1A8], a + ld [wMusicFadeIDHigh], a ld de, $000B ; should be a constant - shrink noise? call PlaySFX pop af @@ -306,12 +304,12 @@ GameStart:: ; 55BB IntroCleanup:: ; 568E ld de, $4743 ld bc, $0400 - call $5D27 + call IntroDisplayPicCenteredOrUpperRight ld c, $04 call DelayFrames ld de, $479D ld bc, $0400 - call $5D27 + call IntroDisplayPicCenteredOrUpperRight ld c, $14 call DelayFrames ld hl, $C30A @@ -361,14 +359,14 @@ SetUpGameEntry:: ; 56E8 GameStartPlacement:: ; 570D db $01 ; map group db $09 ; map - dw $C633 ; screen anchor + dw $C633 ; screen anchor - should be coords db $04 ; metatile x db $04 ; metatile y db $00 ; in-metatile x db $01 ; in-metatile y DebugSetUpPlayer:: ; 5715 - call $5B07 + call SetPlayerNamesDebug ld a, $0F ld [wd15d], a ld a, $42 @@ -390,7 +388,7 @@ DebugSetUpPlayer:: ; 5715 call DebugFillPokedex ld hl, wAnnonDex ld [hl], $01 - call $40FD + call $40FD ; todo ret DebugFillPokedex:: ; 5755 @@ -670,4 +668,339 @@ OakSpeech7:: ; 5AC2 para "レッツ ゴー!" done -; 5B07 \ No newline at end of file +SetPlayerNamesDebug:: ; 5B07 + ld hl, DebugPlayerName + ld de, wPlayerName + call CopyNameDebug + ld hl, DebugRivalName + ld de, wRivalName + +CopyNameDebug: + ld bc, 0006 ; constant - name length + call CopyBytes + ret + +DebugPlayerName: ; 5B1D + db "コージ@" + +DebugRivalName: ; 5B21 + db "レッド@" + +ChoosePlayerName:: ; 5B25 + call PanPortraitRight + ld hl, PlayerNameMenuHeader + call NamingWindow + ld a, [wMenuCursorY] + dec a + jr z, .loop + ld de, wPlayerName + call SaveCustomName + jr .farjump + +.loop + ld b, $01 + ld de, wPlayerName + callba Function113f4 + ld a, [wPlayerName] + cp "@" + jr z, .loop + + call RotateThreePalettesRight + call ClearTileMap + call LoadFontExtra + call WaitBGMap + ld de, $4D10 + ld bc, $1200 + call IntroDisplayPicCenteredOrUpperRight + call RotateThreePalettesLeft +.farjump + ld hl, ChoosePlayerNameEndText + call PrintText + ret + +ChoosePlayerNameEndText: ; 5B6F + text "ふむ・・・" + line " と いうんだな!" + prompt + +PlayerNameMenuHeader: ; 5B81 + db $40 + menu_coords 00, 00, 10, 11 + dw $5B89 + db 01 ; initial selection + +; 5B89 + db "ツオ゛じぶんできめる@" + +; 5B93 + db "ゴールド@" + +; 5B98 + db "サトシ@" + +; 5B9C + db "ジャック@" + +; 5BA1 + db "エ゛なまえこうほ@" + +ChooseRivalName:: ; 5BA9 + call PanPortraitRight + ld hl, RivalNameMenuHeader + call NamingWindow + ld a, [wMenuCursorY] + dec a + jr z, .loop + ld de, wRivalName + call SaveCustomName + jr .farjump + +.loop + ld b, $02 + ld de, wRivalName + callba Function113f4 ; manual text entry box? + ld a, [wRivalName] + cp "@" + jr z, .loop + + call RotateThreePalettesRight + call ClearTileMap + call LoadFontExtra + call WaitBGMap + ld de, $4BD4 + ld bc, $1200 + call IntroDisplayPicCenteredOrUpperRight + call RotateThreePalettesLeft +.farjump + ld hl, ChooseRivalNameEndText + call PrintText + ret + +ChooseRivalNameEndText: ; 5BF3 + text "そうか そうだったな" + line " という なまえだ" + prompt + +RivalNameMenuHeader: ; 5C0A + db $40 + menu_coords 00, 00, 10, 11 + dw RivalNameMenuData + db 01 ; initial selection + +RivalNameMenuData: ; 5C12 + db $91 + db 04 ; items + dw $3C2C + db $DE, $33 + dw $D2B7 + + db $D9, $50 + +; 5C1C + db "シルバー@" + +; 5C21 + db "シゲル@" + +; 5C25 + db "ジョン@" + +; 5C29 + db "エ゛なまえこうほ@" + +MomNamePrompt:: ; 5C31 + ld hl, MomNameMenuHeader + call NamingWindow + ld a, [wMenuCursorY] + dec a + jr z, .loop + ld de, wMomsName + call SaveCustomName + jr .escape + +.loop + ld b, $03 + ld de, wMomsName + callba Function113f4 + ld a, [wMomsName] + cp "@" + jr z, .loop + + call ClearPalettes + call ClearTileMap + callab Function140d9 + call LoadFontExtra + call GetMemSGBLayout + call WaitBGMap +.escape + ret + +MomNameMenuHeader: ; 5C71 + db $40 ; flags + menu_coords 00, 00, 10, 11 + dw .MomNameMenuData + db 01 ; initial selection + +.MomNameMenuData: ; 5C79 + db $91 + db 04 ; items + dw $3C2C + db $DE, $33 + dw $B77F + +; 5C81 + db "める@" + +; 5C84 + db "おかあさん@" + +; 5C8A + db "ママ@" + +; 5C8D + db "かあちゃん@" + +; 5C93 + db "エ゛なまえこうほ@" + +NamingWindow:: ; 5C9B + ; loads the menu header put into hl + call LoadMenuHeader + call VerticalMenu + ld a, [wMenuCursorY] + dec a + call CopyNameFromMenu + call CloseWindow + ret + +SaveCustomName:: ; 5CAC + ld hl, wcd31 + ld bc, $0006 ; constant, player name length + call CopyBytes + ret + +PanPortraitRight:: ; 5CB6 + ld hl, $C2F5 ; should be a hlcoord i think + ld d, $06 + ld e, $7E + ld b, d + ld c, e + ld d, $00 + add hl, de +.loop + xor a + ldh [hBGMapMode], a + push hl + push bc +.innerLoop + ;pans all the tiles onscreen to the right one + ld a, [hl+] + ld [hl-], a + dec hl + dec c + jr nz, .innerLoop + + call WaitBGMap + pop bc + pop hl + inc hl + dec b ; passed c - how many tiles right to pan? + jr nz, .loop + ret + +PanPortraitLeft:: ; 5CD7 + ld hl, $C2FC ; hlcoord + ld b, $06 + ld c, $7E +.loop + xor a + ldh [hBGMapMode], a + push hl + push bc +.innerloop + ld a, [hl-] + ld [hl+], a + inc hl + dec c + jr nz, .innerloop + + call WaitBGMap + pop bc + pop hl + inc hl + dec b + jr nz, .loop + ret + +MenuCallSettings:: ; 5CF3 + call SettingsScreen + ret + +FadeInIntroPic: ; 5CF7 + ld hl, IntroFadePalettes + ld b, 6 +.next + ld a, [hl+] + ldh [rBGP], a + ld c, 10 + call DelayFrames + dec b + jr nz, .next + ret + +IntroFadePalettes: + db %01010100 + db %10101000 + db %11111100 + db %11111000 + db %11110100 + db %11100100 + +MovePicLeft: ; 5D0E + ld a, 119 + ldh [hWX], a + call DelayFrame + + ld a, %11100100 + ldh [rBGP], a +.next + call DelayFrame + ldh a, [hWX] + sub 8 + cp $FF + ret z + ldh [hWX], a + jr .next + +IntroDisplayPicCenteredOrUpperRight:: ; 5D27 +; b = bank +; de = address of compressed pic +; c: 0 = centred, non-zero = upper-right + ld a, c + and a + hlcoord 13, 4 + jr nz, .skip + hlcoord 6, 4 +.skip + push hl + ld a, b + call UncompressSpriteFromDE + ld a, $00 + call OpenSRAM + ld hl, $A188 + ld de, $A000 + ld bc, $0310 + call CopyBytes + call CloseSRAM + ld de, $9000 + call InterlaceMergeSpriteBuffers + pop hl + xor a + ldh [hGraphicStartTile], a + ld bc, $0707 + ; ld a, $1F + ; call Predef + predef PlaceGraphic + ret + +; 5D5D \ No newline at end of file -- cgit v1.2.3 From a1d5ddac4c62f2731b72f4d7f39b9f09e69e5fa8 Mon Sep 17 00:00:00 2001 From: 2Tie Date: Mon, 18 Jun 2018 22:15:42 -0600 Subject: more bank 1 disasm --- engine/menu/main_menu.asm | 185 +++++++++++++++++++++++----------------------- 1 file changed, 94 insertions(+), 91 deletions(-) (limited to 'engine/menu') diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 320df82..1f4a9e1 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -39,7 +39,7 @@ MainMenu:: ; 01:53CC jp CallJumptable MainMenuHeader: ; 01:5418 - db $40 + db MENU_BACKUP_TILES menu_coords 0, 0, 13, 7 dw .MenuData db 1 ; default option @@ -110,11 +110,11 @@ MainMenuOptionContinue:: ;547C jp nz, MainMenu jr .loop .escape - call $5397 ; todo - call $53B0 ; todo + call Function5397 + call Function53b0 ld hl, wDebugFlags res DEBUG_FIELD_F, [hl] - set 2, [hl] + set CONTINUED_F, [hl] set 3, [hl] ldh a, [hJoyState] bit SELECT_F, a @@ -125,7 +125,7 @@ MainMenuOptionContinue:: ;547C call ClearTileMap ld c, $0A call DelayFrames - jp OverworldStart ; todo + jp OverworldStart DisplayContinueGameInfo:: ; 54BF xor a @@ -209,50 +209,50 @@ StartNewGame:: ; 555C jp IntroCleanup DemoStart:: ; 558D - ld de, $4BD4 ; maybe this should be a macro - b is bank, de is address, c is flag - ld bc, $1200 + ld de, OakPic + lb bc, BANK(OakPic), $00 call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl, OakSpeechDemo call PrintText call RotateThreePalettesRight call ClearTileMap - ld de, $4D10 - ld bc, $1200 + ld de, ProtagonistPic + lb bc, BANK(ProtagonistPic), $00 call IntroDisplayPicCenteredOrUpperRight call MovePicLeft - ld a, $D0 ; todo + ld a, %11010000 ldh [rOBP0], a call DemoSetUpPlayer jp IntroCleanup GameStart:: ; 55BB - ld de, $4BD4 - ld bc, $1200 + ld de, OakPic + lb bc, BANK(OakPic), $00 call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl, OakSpeech1 call PrintText call RotateThreePalettesRight call ClearTileMap - ld a, $C8 ; pokemon preview ID - ld [$CB5B], a - ld [$CD78], a + ld a, DEX_YADOKING + ld [wCurSpecies], a + ld [wMonDexIndex], a call GetMonHeader - ld hl, $C2F6 + ld hl, $C2F6 ; tilemap coord ld hl, $C2F6 call PrepMonFrontpic call MovePicLeft ld hl, OakSpeech2 call PrintText - ld a, $C8 ; this should be a constant methinks + ld a, DEX_YADOKING call PlayCry ld hl, OakSpeech3 call PrintText call RotateThreePalettesRight call ClearTileMap - ld de, $4D10 - ld bc, $1200 + ld de, ProtagonistPic + lb bc, BANK(ProtagonistPic), $00 call IntroDisplayPicCenteredOrUpperRight call MovePicLeft ld hl, OakSpeech4 @@ -260,8 +260,8 @@ GameStart:: ; 55BB call ChoosePlayerName call RotateThreePalettesRight call ClearTileMap - ld de, $4ab7 - ld bc, $1200 + ld de, RivalPic + lb bc, BANK(RivalPic), $00 call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl, OakSpeech5 @@ -269,8 +269,8 @@ GameStart:: ; 55BB call ChooseRivalName call RotateThreePalettesRight call ClearTileMap - ld de, $4BD4 - ld bc, $1200 + ld de, OakPic + lb bc, BANK(OakPic), $00 call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl, OakSpeech6 @@ -279,8 +279,8 @@ GameStart:: ; 55BB call Function04ac call RotateThreePalettesRight call ClearTileMap - ld de, $4D10 - ld bc, $1200 + ld de, ProtagonistPic + lb bc, BANK(ProtagonistPic), $00 call IntroDisplayPicCenteredOrUpperRight call RotateThreePalettesLeft ld hl, OakSpeech7 @@ -302,23 +302,23 @@ GameStart:: ; 55BB call DelayFrames IntroCleanup:: ; 568E - ld de, $4743 - ld bc, $0400 + ld de, ShrinkPic1 + lb bc, BANK(ShrinkPic1), $00 call IntroDisplayPicCenteredOrUpperRight ld c, $04 call DelayFrames - ld de, $479D - ld bc, $0400 + ld de, ShrinkPic2 + lb bc, BANK(ShrinkPic2), $00 call IntroDisplayPicCenteredOrUpperRight ld c, $14 call DelayFrames - ld hl, $C30A + hlcoord 6, 5 ld b, $07 ld c, $07 call ClearBox ld c, $14 call DelayFrames - call $5D5D + call LoadStartingSprites call LoadFontExtra ld c, $32 call DelayFrames @@ -332,7 +332,7 @@ IntroCleanup:: ; 568E OverworldStart:: call SetUpGameEntry ld hl, wDebugFlags - bit 2, [hl] ; ? + bit CONTINUED_F, [hl] call z, Function15b5 ld hl, wd4a9 set 0, [hl] @@ -344,7 +344,7 @@ SetUpGameEntry:: ; 56E8 ld a, $F2 ldh [hMapEntryMethod], a ld hl, wDebugFlags - bit 2, [hl] ; ? + bit CONTINUED_F, [hl] ; if we loaded a game ret nz ld a, $F1 ldh [hMapEntryMethod], a @@ -352,14 +352,14 @@ SetUpGameEntry:: ; 56E8 ld [wDebugWarpSelection], a ld hl, GameStartPlacement ld de, wMapGroup - ld bc, $0008 + ld bc, wd65e - wMapGroup call CopyBytes ret GameStartPlacement:: ; 570D db $01 ; map group - db $09 ; map - dw $C633 ; screen anchor - should be coords + db PLAYER_HOUSE_2F+1 ; map + dwcoord 15, 45 ; screen anchor db $04 ; metatile x db $04 ; metatile y db $00 ; in-metatile x @@ -378,7 +378,7 @@ DebugSetUpPlayer:: ; 5715 ld [wd164], a call GiveRandomJohto ld a, $03 - call Function57eb + call AddRandomPokemonToBox call FillTMs ld de, DebugBagItems call FillBagWithList @@ -388,7 +388,7 @@ DebugSetUpPlayer:: ; 5715 call DebugFillPokedex ld hl, wAnnonDex ld [hl], $01 - call $40FD ; todo + call Function40fd ret DebugFillPokedex:: ; 5755 @@ -440,12 +440,12 @@ DebugBagItems:: ; 5777 db ITEM_DETECT_ORB, $63 db $FF -Function57A0 ; 57A0 +GiveRandomPokemon:: ; 57A0 and a ret z .loop push af - call RandomOver246 + call RandomUnder246 ld b, $0A call GivePokemon pop af @@ -489,18 +489,18 @@ GivePokemon:: ; 57DE call Predef ret -Function57eb ; 57EB +AddRandomPokemonToBox: ; 57EB and a ret z .loop push af xor a ld [wca44], a - call RandomOver246 + call RandomUnder246 ld [wcdd7], a ld a, $05 ld [wCurPartyLevel], a - callab Function3e043 + callab AddPokemonToBox ld a, [wcdd7] ld [wMonDexIndex], a callab Functiondd5c @@ -509,7 +509,7 @@ Function57eb ; 57EB jr nz, .loop ret -RandomOver246:: ; 5818 +RandomUnder246:: ; 5818 .loop call Random and a @@ -557,7 +557,7 @@ DemoSetUpPlayer:: ; 5849 ld hl, wRivalName ld de, DemoRivalName call CopyString - call $40FD + call Function40fd ld de, DemoItemList call FillBagWithList call GiveRandomJohto @@ -676,7 +676,7 @@ SetPlayerNamesDebug:: ; 5B07 ld de, wRivalName CopyNameDebug: - ld bc, 0006 ; constant - name length + ld bc, PLAYER_NAME_LENGTH call CopyBytes ret @@ -724,21 +724,17 @@ ChoosePlayerNameEndText: ; 5B6F prompt PlayerNameMenuHeader: ; 5B81 - db $40 + db MENU_BACKUP_TILES ; flags menu_coords 00, 00, 10, 11 dw $5B89 db 01 ; initial selection ; 5B89 - db "ツオ゛じぶんできめる@" - -; 5B93 + db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B + db 04 ; items + db "じぶんできめる@" db "ゴールド@" - -; 5B98 db "サトシ@" - -; 5B9C db "ジャック@" ; 5BA1 @@ -782,27 +778,17 @@ ChooseRivalNameEndText: ; 5BF3 prompt RivalNameMenuHeader: ; 5C0A - db $40 + db MENU_BACKUP_TILES ; flags menu_coords 00, 00, 10, 11 dw RivalNameMenuData db 01 ; initial selection RivalNameMenuData: ; 5C12 - db $91 + db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B db 04 ; items - dw $3C2C - db $DE, $33 - dw $D2B7 - - db $D9, $50 - -; 5C1C + db "じぶんできめる@" db "シルバー@" - -; 5C21 db "シゲル@" - -; 5C25 db "ジョン@" ; 5C29 @@ -836,28 +822,17 @@ MomNamePrompt:: ; 5C31 ret MomNameMenuHeader: ; 5C71 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 00, 00, 10, 11 dw .MomNameMenuData db 01 ; initial selection .MomNameMenuData: ; 5C79 - db $91 + db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B db 04 ; items - dw $3C2C - db $DE, $33 - dw $B77F - -; 5C81 - db "める@" - -; 5C84 + db "じぶんで きめる@" db "おかあさん@" - -; 5C8A db "ママ@" - -; 5C8D db "かあちゃん@" ; 5C93 @@ -875,12 +850,12 @@ NamingWindow:: ; 5C9B SaveCustomName:: ; 5CAC ld hl, wcd31 - ld bc, $0006 ; constant, player name length + ld bc, PLAYER_NAME_LENGTH call CopyBytes ret PanPortraitRight:: ; 5CB6 - ld hl, $C2F5 ; should be a hlcoord i think + hlcoord 5, 4 ld d, $06 ld e, $7E ld b, d @@ -909,7 +884,7 @@ PanPortraitRight:: ; 5CB6 ret PanPortraitLeft:: ; 5CD7 - ld hl, $C2FC ; hlcoord + hlcoord 12, 4 ld b, $06 ld c, $7E .loop @@ -987,20 +962,48 @@ IntroDisplayPicCenteredOrUpperRight:: ; 5D27 call UncompressSpriteFromDE ld a, $00 call OpenSRAM - ld hl, $A188 - ld de, $A000 - ld bc, $0310 + ld hl, sSpriteBuffer1 + ld de, sSpriteBuffer0 + ld bc, DOUBLESPRITEBUFFERSIZE call CopyBytes call CloseSRAM - ld de, $9000 + ld de, VRAM_Begin + $1000 call InterlaceMergeSpriteBuffers pop hl xor a ldh [hGraphicStartTile], a ld bc, $0707 - ; ld a, $1F - ; call Predef predef PlaceGraphic ret -; 5D5D \ No newline at end of file +LoadStartingSprites: ; 5D5D + ld de, GoldSpriteGFX + lb bc, BANK(GoldSpriteGFX), $0C + ld hl, VRAM_Begin + call Request2bpp + ld hl, wVirtualOAM + ld de, GameStartSprites + ld c, $04 +.loop + ld a, [de] + inc de + ld [hl+], a + ld a, [de] + inc de + ld [hl+], a + ld a, [de] + inc de + ld [hl+], a + xor a + ld [hl+], a + dec c + jr nz, .loop + ret + +GameStartSprites: ; 5D80 + db $50, $48, $00 + db $50, $50, $01 + db $58, $48, $02 + db $58, $50, $03 + +; 5D8C \ No newline at end of file -- cgit v1.2.3 From 753cec9bd6b6904879fde5c02fb75e3c92801c2f Mon Sep 17 00:00:00 2001 From: 2Tie Date: Mon, 18 Jun 2018 22:17:42 -0600 Subject: forgot to save this change, oops --- engine/menu/main_menu.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engine/menu') diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 1f4a9e1..d710b1c 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -239,8 +239,8 @@ GameStart:: ; 55BB ld [wCurSpecies], a ld [wMonDexIndex], a call GetMonHeader - ld hl, $C2F6 ; tilemap coord - ld hl, $C2F6 + hlcoord 6, 4 + hlcoord 6, 4 call PrepMonFrontpic call MovePicLeft ld hl, OakSpeech2 -- cgit v1.2.3 From beae22ccbd4c43c15f9100dd6cbe983d545e5e97 Mon Sep 17 00:00:00 2001 From: 2Tie Date: Mon, 18 Jun 2018 23:25:39 -0600 Subject: spoilers: it wasn't --- engine/menu/main_menu.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine/menu') diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index d710b1c..85e1078 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -466,7 +466,7 @@ GiveRandomJohto:: ; 57B0 ld b, $08 call GivePokemon ld a, $8D - ld [wd6b3], a + ld [wPartyMon1 + 1], a ret GiveKantoStarters:: ; 57C8 -- cgit v1.2.3 From 26edac4db6b17102822aa67791178d5fe2505d36 Mon Sep 17 00:00:00 2001 From: 2Tie Date: Tue, 19 Jun 2018 12:48:42 -0600 Subject: additional menu data tidying up/figuring out --- engine/menu/main_menu.asm | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'engine/menu') diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 85e1078..4bd4a45 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -726,19 +726,18 @@ ChoosePlayerNameEndText: ; 5B6F PlayerNameMenuHeader: ; 5B81 db MENU_BACKUP_TILES ; flags menu_coords 00, 00, 10, 11 - dw $5B89 + dw PlayerNameMenuData db 01 ; initial selection -; 5B89 +PlayerNameMenuData; 5B89 db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B db 04 ; items db "じぶんできめる@" db "ゴールド@" db "サトシ@" db "ジャック@" - -; 5BA1 - db "エ゛なまえこうほ@" + db 3 ; x offset for the title string + db "なまえこうほ@" ChooseRivalName:: ; 5BA9 call PanPortraitRight @@ -790,9 +789,8 @@ RivalNameMenuData: ; 5C12 db "シルバー@" db "シゲル@" db "ジョン@" - -; 5C29 - db "エ゛なまえこうほ@" + db 3 + db "なまえこうほ@" MomNamePrompt:: ; 5C31 ld hl, MomNameMenuHeader @@ -834,9 +832,8 @@ MomNameMenuHeader: ; 5C71 db "おかあさん@" db "ママ@" db "かあちゃん@" - -; 5C93 - db "エ゛なまえこうほ@" + db 3 + db "なまえこうほ@" NamingWindow:: ; 5C9B ; loads the menu header put into hl -- cgit v1.2.3 From 0369ef51b4461cf516488c2e13b24ad6d5c13d65 Mon Sep 17 00:00:00 2001 From: 2Tie Date: Sat, 23 Jun 2018 10:19:49 -0600 Subject: split the oak speeches and game setup into two files --- engine/menu/main_menu.asm | 797 +--------------------------------------------- 1 file changed, 1 insertion(+), 796 deletions(-) (limited to 'engine/menu') diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 4bd4a45..5cc6177 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -208,799 +208,4 @@ StartNewGame:: ; 555C call DebugSetUpPlayer jp IntroCleanup -DemoStart:: ; 558D - ld de, OakPic - lb bc, BANK(OakPic), $00 - call IntroDisplayPicCenteredOrUpperRight - call FadeInIntroPic - ld hl, OakSpeechDemo - call PrintText - call RotateThreePalettesRight - call ClearTileMap - ld de, ProtagonistPic - lb bc, BANK(ProtagonistPic), $00 - call IntroDisplayPicCenteredOrUpperRight - call MovePicLeft - ld a, %11010000 - ldh [rOBP0], a - call DemoSetUpPlayer - jp IntroCleanup - -GameStart:: ; 55BB - ld de, OakPic - lb bc, BANK(OakPic), $00 - call IntroDisplayPicCenteredOrUpperRight - call FadeInIntroPic - ld hl, OakSpeech1 - call PrintText - call RotateThreePalettesRight - call ClearTileMap - ld a, DEX_YADOKING - ld [wCurSpecies], a - ld [wMonDexIndex], a - call GetMonHeader - hlcoord 6, 4 - hlcoord 6, 4 - call PrepMonFrontpic - call MovePicLeft - ld hl, OakSpeech2 - call PrintText - ld a, DEX_YADOKING - call PlayCry - ld hl, OakSpeech3 - call PrintText - call RotateThreePalettesRight - call ClearTileMap - ld de, ProtagonistPic - lb bc, BANK(ProtagonistPic), $00 - call IntroDisplayPicCenteredOrUpperRight - call MovePicLeft - ld hl, OakSpeech4 - call PrintText - call ChoosePlayerName - call RotateThreePalettesRight - call ClearTileMap - ld de, RivalPic - lb bc, BANK(RivalPic), $00 - call IntroDisplayPicCenteredOrUpperRight - call FadeInIntroPic - ld hl, OakSpeech5 - call PrintText - call ChooseRivalName - call RotateThreePalettesRight - call ClearTileMap - ld de, OakPic - lb bc, BANK(OakPic), $00 - call IntroDisplayPicCenteredOrUpperRight - call FadeInIntroPic - ld hl, OakSpeech6 - call PrintText - callba SetClockDialog - call Function04ac - call RotateThreePalettesRight - call ClearTileMap - ld de, ProtagonistPic - lb bc, BANK(ProtagonistPic), $00 - call IntroDisplayPicCenteredOrUpperRight - call RotateThreePalettesLeft - ld hl, OakSpeech7 - call PrintText - ldh a, [hROMBank] - push af - ld a, $20 - ld [wMusicFade], a - ld de, MUSIC_NONE - ld a, e - ld [wMusicFadeIDLow], a - ld a, d - ld [wMusicFadeIDHigh], a - ld de, $000B ; should be a constant - shrink noise? - call PlaySFX - pop af - call Bankswitch - ld c, $04 - call DelayFrames - -IntroCleanup:: ; 568E - ld de, ShrinkPic1 - lb bc, BANK(ShrinkPic1), $00 - call IntroDisplayPicCenteredOrUpperRight - ld c, $04 - call DelayFrames - ld de, ShrinkPic2 - lb bc, BANK(ShrinkPic2), $00 - call IntroDisplayPicCenteredOrUpperRight - ld c, $14 - call DelayFrames - hlcoord 6, 5 - ld b, $07 - ld c, $07 - call ClearBox - ld c, $14 - call DelayFrames - call LoadStartingSprites - call LoadFontExtra - ld c, $32 - call DelayFrames - call RotateThreePalettesRight - call ClearTileMap - call Function0502 - ld a, $00 - ld [wd638], a - ld [wd637], a - -OverworldStart:: - call SetUpGameEntry - ld hl, wDebugFlags - bit CONTINUED_F, [hl] - call z, Function15b5 - ld hl, wd4a9 - set 0, [hl] - jp Function2a85 - -SetUpGameEntry:: ; 56E8 - ld a, $04 - ld [wd65e], a - ld a, $F2 - ldh [hMapEntryMethod], a - ld hl, wDebugFlags - bit CONTINUED_F, [hl] ; if we loaded a game - ret nz - ld a, $F1 - ldh [hMapEntryMethod], a - ld a, $00 - ld [wDebugWarpSelection], a - ld hl, GameStartPlacement - ld de, wMapGroup - ld bc, wd65e - wMapGroup - call CopyBytes - ret - -GameStartPlacement:: ; 570D - db $01 ; map group - db PLAYER_HOUSE_2F+1 ; map - dwcoord 15, 45 ; screen anchor - db $04 ; metatile x - db $04 ; metatile y - db $00 ; in-metatile x - db $01 ; in-metatile y - -DebugSetUpPlayer:: ; 5715 - call SetPlayerNamesDebug - ld a, $0F - ld [wd15d], a - ld a, $42 - ld [wd15e], a - ld a, $3F - ld [wd15f], a - ld a, $FF - ld [wd163], a - ld [wd164], a - call GiveRandomJohto - ld a, $03 - call AddRandomPokemonToBox - call FillTMs - ld de, DebugBagItems - call FillBagWithList - ld hl, wPokedexOwned - call DebugFillPokedex - ld hl, wPokedexSeen - call DebugFillPokedex - ld hl, wAnnonDex - ld [hl], $01 - call Function40fd - ret - -DebugFillPokedex:: ; 5755 - ld b, $1F - ld a, $FF -.loop - ld [hl+], a - dec b - jr nz, .loop - ld [hl], $07 - ret - -FillBagWithList:: ; 5760 - ld hl, wNumBagItems -.loop - ld a, [de] - cp $FF - jr z, .yump - ld [wCurItem], a - inc de - ld a, [de] - inc de - ld [wItemQuantity], a - call AddItemToInventory - jr .loop -.yump - ret - -DebugBagItems:: ; 5777 - db ITEM_IMPORTANT_BAG, $01 - db ITEM_BAG, $01 - db ITEM_TM_HOLDER, $01 - db ITEM_BALL_HOLDER, $01 - db ITEM_BICYCLE, $01 - db ITEM_MAIL, $06 - db ITEM_ULTRA_BALL, $1E - db ITEM_POKE_BALL, $63 - db ITEM_POTION, $1E - db ITEM_RARE_CANDY, $14 - db ITEM_MOON_STONE, $63 - db ITEM_FULL_HEAL, $63 - db ITEM_PROTEIN, $63 - db ITEM_QUICK_NEEDLE, $63 - db ITEM_SNAKESKIN, $63 - db ITEM_KINGS_ROCK, $63 - db ITEM_FLEE_FEATHER, $63 - db ITEM_FOCUS_ORB, $63 - db ITEM_SHARP_SCYTHE, $63 - db ITEM_DETECT_ORB, $63 - db $FF - -GiveRandomPokemon:: ; 57A0 - and a - ret z -.loop - push af - call RandomUnder246 - ld b, $0A - call GivePokemon - pop af - dec a - jr nz, .loop - ret - -GiveRandomJohto:: ; 57B0 -.loop - call Random - and $03 - jr z, .loop - dec a - ld b, a - add a, a - add a, b - add a, $98 ; maybe should be a constant - 152, aka the number of kanto pokes - ld b, $08 - call GivePokemon - ld a, $8D - ld [wPartyMon1 + 1], a - ret - -GiveKantoStarters:: ; 57C8 - ld a, $03 - ld b, $20 - call GivePokemon - ld a, $06 - ld b, $24 - call GivePokemon - ld a, $09 - ld b, $24 - call GivePokemon - ret - -GivePokemon:: ; 57DE - ld [wMonDexIndex], a - ld a, b - ld [wCurPartyLevel], a - ld a, $10 - call Predef - ret - -AddRandomPokemonToBox: ; 57EB - and a - ret z -.loop - push af - xor a - ld [wca44], a - call RandomUnder246 - ld [wcdd7], a - ld a, $05 - ld [wCurPartyLevel], a - callab AddPokemonToBox - ld a, [wcdd7] - ld [wMonDexIndex], a - callab Functiondd5c - pop af - dec a - jr nz, .loop - ret - -RandomUnder246:: ; 5818 -.loop - call Random - and a - jr z, .loop - cp $F6 - jr nc, .loop - ret - -FillTMs:: ; 5823 - ld b, $39 - ld a, $01 - ld hl, wTMsHMs -.loop - ld [hl+], a - dec b - jr nz, .loop - ret - -DebugGiveKeyItems:: ; 582F - ld hl, DebugKeyItemsList - ld de, wKeyItems - ld c, $FF -.loop - inc c - ld a, [hl+] - ld [de], a - inc de - cp $FF - jr nz, .loop - ld a, c - ld [wNumKeyItems], a - ret - -DebugKeyItemsList:: ; 5844 - db ITEM_TM_HOLDER - db ITEM_BALL_HOLDER - db ITEM_BAG - db ITEM_BICYCLE - db $FF - -DemoSetUpPlayer:: ; 5849 - ld hl, wPlayerName - ld de, DemoPlayerName - call CopyString - ld hl, wRivalName - ld de, DemoRivalName - call CopyString - call Function40fd - ld de, DemoItemList - call FillBagWithList - call GiveRandomJohto - ret - -DemoItemList:: ; 5868 - db ITEM_POKE_BALL, $05 - db ITEM_POTION, $0A - db ITEM_FULL_HEAL, $0A - db ITEM_STIMULUS_ORB, $01 - db ITEM_FOCUS_ORB, $01 - db $FF - -DemoPlayerName:: ; 5873 - db "サトシ@" - -DemoRivalName:: ; 5877 - db "シゲル@" - -OakSpeechDemo:: ; 587B - text "ようこそ" - line "ポケット モンスターの せかいへ!" - cont "ごぞんじ わしが オーキドじゃ!" - - para "きょう きみに きてもらったのは" - line "ほかでもない" - cont "あたらしい ずかんづくりを" - cont "てつだって ほしいのじゃ!" - - para "もちろん" - line "きみの パートナーとなる ポケモンと" - cont "りュックは ようい しておる" - - para "りュックの なかには" - line "キズぐすりと" - cont "モンスターボールが" - cont "はいっておるから あんしんじゃ!" - - para "すでに きみの ライバルは" - line "しゅっぱつ しとる" - - para "まけないよう がんばって くれい!" - prompt - -OakSpeech1:: ; 5956 - text "いやあ またせた!" - - para "ポケット モンスターの せかいへ" - line "ようこそ!" - - para "わたしの なまえは オーキド" - - para "みんなからは # はかせと" - line "したわれて おるよ" - prompt - -OakSpeech2:: ; 599F - text "きみも もちろん" - line "しっているとは おもうが" - - para "この せかいには" - line "ポケット モンスターと よばれる" - cont "いきもの たちが" - cont "いたるところに すんでいる!" - prompt - -OakSpeech3:: ; 59E8 - text "その # という いきものを" - line "ひとは ぺットに したり" - cont "しょうぶに つかったり" - cont "そして・・・" - - para "わたしは この #の" - line "けんきゅうを してる というわけだ" - prompt - -OakSpeech4:: ; 5A35 - text "では はじめに きみの なまえを" - line "おしえて もらおう!" - prompt - -OakSpeech5:: ; 5A52 - text "そして この しょうねんは" - line "きみの おさななじみであり" - cont"ライバルである" - - para "・・・えーと?" - line "なまえは なんて いったかな?" - prompt - -OakSpeech6:: ; 5A8F - text "さて きみの きねんすべき" - line "たびだちのひを" - cont "きろくしておこう!" - - para "じかんも なるべく せいかくにな!" - prompt - -OakSpeech7:: ; 5AC2 - text "!" - - para "いよいよ これから" - line "きみの ものがたりの はじまりだ!" - - para "ゆめと ぼうけんと!" - line "ポケット モンスターの せかいへ!" - - para "レッツ ゴー!" - done - -SetPlayerNamesDebug:: ; 5B07 - ld hl, DebugPlayerName - ld de, wPlayerName - call CopyNameDebug - ld hl, DebugRivalName - ld de, wRivalName - -CopyNameDebug: - ld bc, PLAYER_NAME_LENGTH - call CopyBytes - ret - -DebugPlayerName: ; 5B1D - db "コージ@" - -DebugRivalName: ; 5B21 - db "レッド@" - -ChoosePlayerName:: ; 5B25 - call PanPortraitRight - ld hl, PlayerNameMenuHeader - call NamingWindow - ld a, [wMenuCursorY] - dec a - jr z, .loop - ld de, wPlayerName - call SaveCustomName - jr .farjump - -.loop - ld b, $01 - ld de, wPlayerName - callba Function113f4 - ld a, [wPlayerName] - cp "@" - jr z, .loop - - call RotateThreePalettesRight - call ClearTileMap - call LoadFontExtra - call WaitBGMap - ld de, $4D10 - ld bc, $1200 - call IntroDisplayPicCenteredOrUpperRight - call RotateThreePalettesLeft -.farjump - ld hl, ChoosePlayerNameEndText - call PrintText - ret - -ChoosePlayerNameEndText: ; 5B6F - text "ふむ・・・" - line " と いうんだな!" - prompt - -PlayerNameMenuHeader: ; 5B81 - db MENU_BACKUP_TILES ; flags - menu_coords 00, 00, 10, 11 - dw PlayerNameMenuData - db 01 ; initial selection - -PlayerNameMenuData; 5B89 - db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B - db 04 ; items - db "じぶんできめる@" - db "ゴールド@" - db "サトシ@" - db "ジャック@" - db 3 ; x offset for the title string - db "なまえこうほ@" - -ChooseRivalName:: ; 5BA9 - call PanPortraitRight - ld hl, RivalNameMenuHeader - call NamingWindow - ld a, [wMenuCursorY] - dec a - jr z, .loop - ld de, wRivalName - call SaveCustomName - jr .farjump - -.loop - ld b, $02 - ld de, wRivalName - callba Function113f4 ; manual text entry box? - ld a, [wRivalName] - cp "@" - jr z, .loop - - call RotateThreePalettesRight - call ClearTileMap - call LoadFontExtra - call WaitBGMap - ld de, $4BD4 - ld bc, $1200 - call IntroDisplayPicCenteredOrUpperRight - call RotateThreePalettesLeft -.farjump - ld hl, ChooseRivalNameEndText - call PrintText - ret - -ChooseRivalNameEndText: ; 5BF3 - text "そうか そうだったな" - line " という なまえだ" - prompt - -RivalNameMenuHeader: ; 5C0A - db MENU_BACKUP_TILES ; flags - menu_coords 00, 00, 10, 11 - dw RivalNameMenuData - db 01 ; initial selection - -RivalNameMenuData: ; 5C12 - db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B - db 04 ; items - db "じぶんできめる@" - db "シルバー@" - db "シゲル@" - db "ジョン@" - db 3 - db "なまえこうほ@" - -MomNamePrompt:: ; 5C31 - ld hl, MomNameMenuHeader - call NamingWindow - ld a, [wMenuCursorY] - dec a - jr z, .loop - ld de, wMomsName - call SaveCustomName - jr .escape - -.loop - ld b, $03 - ld de, wMomsName - callba Function113f4 - ld a, [wMomsName] - cp "@" - jr z, .loop - - call ClearPalettes - call ClearTileMap - callab Function140d9 - call LoadFontExtra - call GetMemSGBLayout - call WaitBGMap -.escape - ret - -MomNameMenuHeader: ; 5C71 - db MENU_BACKUP_TILES ; flags - menu_coords 00, 00, 10, 11 - dw .MomNameMenuData - db 01 ; initial selection - -.MomNameMenuData: ; 5C79 - db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B - db 04 ; items - db "じぶんで きめる@" - db "おかあさん@" - db "ママ@" - db "かあちゃん@" - db 3 - db "なまえこうほ@" - -NamingWindow:: ; 5C9B - ; loads the menu header put into hl - call LoadMenuHeader - call VerticalMenu - ld a, [wMenuCursorY] - dec a - call CopyNameFromMenu - call CloseWindow - ret - -SaveCustomName:: ; 5CAC - ld hl, wcd31 - ld bc, PLAYER_NAME_LENGTH - call CopyBytes - ret - -PanPortraitRight:: ; 5CB6 - hlcoord 5, 4 - ld d, $06 - ld e, $7E - ld b, d - ld c, e - ld d, $00 - add hl, de -.loop - xor a - ldh [hBGMapMode], a - push hl - push bc -.innerLoop - ;pans all the tiles onscreen to the right one - ld a, [hl+] - ld [hl-], a - dec hl - dec c - jr nz, .innerLoop - - call WaitBGMap - pop bc - pop hl - inc hl - dec b ; passed c - how many tiles right to pan? - jr nz, .loop - ret - -PanPortraitLeft:: ; 5CD7 - hlcoord 12, 4 - ld b, $06 - ld c, $7E -.loop - xor a - ldh [hBGMapMode], a - push hl - push bc -.innerloop - ld a, [hl-] - ld [hl+], a - inc hl - dec c - jr nz, .innerloop - - call WaitBGMap - pop bc - pop hl - inc hl - dec b - jr nz, .loop - ret - -MenuCallSettings:: ; 5CF3 - call SettingsScreen - ret - -FadeInIntroPic: ; 5CF7 - ld hl, IntroFadePalettes - ld b, 6 -.next - ld a, [hl+] - ldh [rBGP], a - ld c, 10 - call DelayFrames - dec b - jr nz, .next - ret - -IntroFadePalettes: - db %01010100 - db %10101000 - db %11111100 - db %11111000 - db %11110100 - db %11100100 - -MovePicLeft: ; 5D0E - ld a, 119 - ldh [hWX], a - call DelayFrame - - ld a, %11100100 - ldh [rBGP], a -.next - call DelayFrame - ldh a, [hWX] - sub 8 - cp $FF - ret z - ldh [hWX], a - jr .next - -IntroDisplayPicCenteredOrUpperRight:: ; 5D27 -; b = bank -; de = address of compressed pic -; c: 0 = centred, non-zero = upper-right - ld a, c - and a - hlcoord 13, 4 - jr nz, .skip - hlcoord 6, 4 -.skip - push hl - ld a, b - call UncompressSpriteFromDE - ld a, $00 - call OpenSRAM - ld hl, sSpriteBuffer1 - ld de, sSpriteBuffer0 - ld bc, DOUBLESPRITEBUFFERSIZE - call CopyBytes - call CloseSRAM - ld de, VRAM_Begin + $1000 - call InterlaceMergeSpriteBuffers - pop hl - xor a - ldh [hGraphicStartTile], a - ld bc, $0707 - predef PlaceGraphic - ret - -LoadStartingSprites: ; 5D5D - ld de, GoldSpriteGFX - lb bc, BANK(GoldSpriteGFX), $0C - ld hl, VRAM_Begin - call Request2bpp - ld hl, wVirtualOAM - ld de, GameStartSprites - ld c, $04 -.loop - ld a, [de] - inc de - ld [hl+], a - ld a, [de] - inc de - ld [hl+], a - ld a, [de] - inc de - ld [hl+], a - xor a - ld [hl+], a - dec c - jr nz, .loop - ret - -GameStartSprites: ; 5D80 - db $50, $48, $00 - db $50, $50, $01 - db $58, $48, $02 - db $58, $50, $03 - -; 5D8C \ No newline at end of file +; 558D \ No newline at end of file -- cgit v1.2.3