diff --git a/battle/core.asm b/battle/core.asm index 7b68e0729..d3393b4ff 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -8924,7 +8924,7 @@ IsMobileBattle2: ; 3f830 ; 3f836 -Function3f836: ; 3f836 +DisplayLinkRecord: ; 3f836 ld a, BANK(sLinkBattleStats) call GetSRAMBank diff --git a/engine/diploma.asm b/engine/diploma.asm index 7699cf930..d2ca46bb3 100644 --- a/engine/diploma.asm +++ b/engine/diploma.asm @@ -1,5 +1,5 @@ -Function1dd702: ; 1dd702 +_Diploma: ; 1dd702 call Function1dd709 call WaitPressAorB_BlinkCursor ret diff --git a/engine/main_menu.asm b/engine/main_menu.asm new file mode 100755 index 000000000..72c6955b1 --- /dev/null +++ b/engine/main_menu.asm @@ -0,0 +1,1242 @@ +GFX_49c0c: ; 49c0c +INCBIN "gfx/unknown/049c0c.2bpp" +; 49cdc + +MainMenu: ; 49cdc + xor a + ld [wc2d7], a + call Function49ed0 + ld b, SCGB_08 + call GetSGBLayout + call SetPalettes + ld hl, GameTimerPause + res 0, [hl] + call Function49da4 + ld [wcf76], a + call Function49e09 + ld hl, MenuDataHeader_0x49d14 + call LoadMenuDataHeader + call Function49de4 + call WriteBackup + jr c, .quit + call ClearTileMap + ld a, [MenuSelection] + ld hl, Jumptable_49d60 + rst JumpTable + jr MainMenu + +.quit + ret +; 49d14 + +MenuDataHeader_0x49d14: ; 49d14 + db $40 ; flags + db 00, 00 ; start coords + db 07, 16 ; end coords + dw MenuData2_0x49d1c + db 1 ; default option +; 49d1c + +MenuData2_0x49d1c: ; 49d1c + db $80 ; flags + db 0 ; items + dw MainMenuItems + dw Function1f79 + dw MainMenuText +; 49d20 + +MainMenuText: ; 49d24 + db "CONTINUE@" + db "NEW GAME@" + db "OPTION@" + db "MYSTERY GIFT@" + db "MOBILE@" + db "MOBILE STUDIUM@" + +Jumptable_49d60: ; 0x49d60 + dw MainMenu_Continue + dw MainMenu_NewGame + dw MainMenu_Options + dw MainMenu_MysteryGift + dw MainMenu_Mobile + dw MainMenu_MobileStudium +; 0x49d6c + +CONTINUE EQU 0 +NEW_GAME EQU 1 +OPTION EQU 2 +MYSTERY_GIFT EQU 3 +MOBILE EQU 4 +MOBILE_STUDIUM EQU 5 + +MainMenuItems: + +NewGameMenu: ; 0x49d6c + db 2 + db NEW_GAME + db OPTION + db $ff + +ContinueMenu: ; 0x49d70 + db 3 + db CONTINUE + db NEW_GAME + db OPTION + db $ff + +MobileMysteryMenu: ; 0x49d75 + db 5 + db CONTINUE + db NEW_GAME + db OPTION + db MYSTERY_GIFT + db MOBILE + db $ff + +MobileMenu: ; 0x49d7c + db 4 + db CONTINUE + db NEW_GAME + db OPTION + db MOBILE + db $ff + +MobileStudiumMenu: ; 0x49d82 + db 5 + db CONTINUE + db NEW_GAME + db OPTION + db MOBILE + db MOBILE_STUDIUM + db $ff + +MysteryMobileStudiumMenu: ; 0x49d89 + db 6 + db CONTINUE + db NEW_GAME + db OPTION + db MYSTERY_GIFT + db MOBILE + db MOBILE_STUDIUM + db $ff + +MysteryMenu: ; 0x49d91 + db 4 + db CONTINUE + db NEW_GAME + db OPTION + db MYSTERY_GIFT + db $ff + +MysteryStudiumMenu: ; 0x49d97 + db 5 + db CONTINUE + db NEW_GAME + db OPTION + db MYSTERY_GIFT + db MOBILE_STUDIUM + db $ff + +StudiumMenu: ; 0x49d9e + db 4 + db CONTINUE + db NEW_GAME + db OPTION + db MOBILE_STUDIUM + db $ff + + +Function49da4: ; 49da4 + nop + nop + nop + ld a, [wcfcd] + and a + jr nz, .next + ld a, $0 + ret + +.next + ld a, [hCGB] + cp $1 + ld a, $1 + ret nz + ld a, BANK(s0_abe5) + call GetSRAMBank + ld a, [s0_abe5] + cp $ff + call CloseSRAM + jr nz, .done + ld a, [StatusFlags] + bit 7, a + ld a, $1 + jr z, .ok + jr .ok + +.ok + jr .ok2 + +.ok2 + ld a, $1 + ret + +.done + ld a, [StatusFlags] + bit 7, a + jr z, .ok3 + jr .ok3 + +.ok3 + jr .ok4 + +.ok4 + ld a, $6 + ret +; 49de4 + +Function49de4: ; 49de4 + call SetUpMenu +.asm_49de7 + call Function49e09 + ld a, [wcfa5] + set 5, a + ld [wcfa5], a + call Function1f1a + ld a, [wcf73] + cp $2 + jr z, .asm_49e07 + cp $1 + jr z, .asm_49e02 + jr .asm_49de7 + +.asm_49e02 + call PlayClickSFX + and a + ret + +.asm_49e07 + scf + ret +; 49e09 + +Function49e09: ; 49e09 + ld a, [wcfcd] + and a + ret z + xor a + ld [hBGMapMode], a + call Function49e27 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function49e3d + pop af + ld [Options], a + ld a, $1 + ld [hBGMapMode], a + ret +; 49e27 + + +Function49e27: ; 49e27 + call Function6e3 + and $80 + jr nz, .asm_49e39 + hlcoord 0, 14 + ld b, $2 + ld c, $12 + call TextBox + ret + +.asm_49e39 + call SpeechTextBox + ret +; 49e3d + + +Function49e3d: ; 49e3d + ld a, [wcfcd] + and a + ret z + call Function6e3 + and $80 + jp nz, Function49e75 + call UpdateTime + call GetWeekday + ld b, a + decoord 1, 15 + call Function49e91 + decoord 4, 16 + ld a, [hHours] + ld c, a + callba PrintHour + ld [hl], ":" + inc hl + ld de, hMinutes + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ret +; 49e70 + +; 49e70 + db "min.@" +; 49e75 + +Function49e75: ; 49e75 + hlcoord 1, 14 + ld de, .TimeNotSet + call PlaceString + ret +; 49e7f + +.TimeNotSet ; 49e7f + db "TIME NOT SET@" +; 49e8c + +UnknownText_0x49e8c: ; 49e8c + text_jump UnknownText_0x1c5182 + db "@" +; 49e91 + +Function49e91: ; 49e91 + push de + ld hl, .Days + ld a, b + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + ld h, b + ld l, c + ld de, .Day + call PlaceString + ret +; 49ea8 + +.Days + db "SUN@" + db "MON@" + db "TUES@" + db "WEDNES@" + db "THURS@" + db "FRI@" + db "SATUR@" +.Day + db "DAY@" +; 49ed0 + +Function49ed0: ; 49ed0 + xor a + ld [hMapAnims], a + call ClearTileMap + call LoadFontsExtra + call LoadStandardFont + call ResetTextRelatedRAM + ret +; 49ee0 + + +MainMenu_NewGame: ; 49ee0 + callba NewGame + ret +; 49ee7 + +MainMenu_Options: ; 49ee7 + callba OptionsMenu + ret +; 49eee + +MainMenu_Continue: ; 49eee + callba Continue + ret +; 49ef5 + +MainMenu_MysteryGift: ; 49ef5 + callba MysteryGift + ret +; 49efc + +MainMenu_Mobile: ; 49efc + call ClearBGPalettes + ld a, MUSIC_MOBILE_ADAPTER_MENU + ld [wMapMusic], a + ld de, MUSIC_MOBILE_ADAPTER_MENU + call Function4a6c5 +Function49f0a: ; 49f0a + call ClearBGPalettes + call Function4a3a7 + call Function4a492 + call ClearBGPalettes +Function49f16: ; 49f16 + call Function4a071 + ld c, 12 + call DelayFrames + hlcoord 4, 0 + ld b, $a + ld c, $a + call Function48cdc + hlcoord 6, 2 + ld de, MobileString1 + call PlaceString + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + xor a + ld de, String_0x49fe9 + hlcoord 1, 14 + call PlaceString + call Function3200 + call SetPalettes + call Function1bc9 + ld hl, MenuSelection2 + ld b, [hl] + push bc + jr .asm_49f5d + +.asm_49f55 + call Function1bd3 + ld hl, MenuSelection2 + ld b, [hl] + push bc + +.asm_49f5d + bit 0, a + jr nz, .asm_49f67 + bit 1, a + jr nz, .asm_49f84 + jr .asm_49f97 + +.asm_49f67 + ld hl, MenuSelection2 + ld a, [hl] + cp $1 + jp z, Function4a098 + cp $2 + jp z, Function4a0b9 + cp $3 + jp z, Function4a0c2 + cp $4 + jp z, Function4a100 + ld a, $1 + call Function1ff8 + +.asm_49f84 + pop bc + call ClearBGPalettes + call ClearTileMap + ld a, MUSIC_MAIN_MENU + ld [wMapMusic], a + ld de, MUSIC_MAIN_MENU + call Function4a6c5 + ret + +.asm_49f97 + ld hl, MenuSelection2 + ld a, [hl] + dec a + ld hl, MobileStrings2 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + jp .asm_49fb7 + +.asm_49fb7 + call Function4a071 + pop bc + ld hl, MenuSelection2 + ld [hl], b + ld b, $a + ld c, $1 + hlcoord 5, 1 + call ClearBox + jp .asm_49f55 +; 49fcc + + +MobileString1: ; 49fcc + db "めいしフ,ルダー" + next "あいさつ" + next "プロフィール" + next "せ", $1e, "い" + next "もどる" + db "@" +; 49fe9 + + +MobileStrings2: + +String_0x49fe9: ; 49fe9 + db "めいし¯つくったり" + next "ほぞんしておける フ,ルダーです@" +; 4a004 + +String_0x4a004: ; 4a004 + db "モバイルたいせんや じぶんのめいしで" + next "つかう あいさつ¯つくります@" +; 4a026 + +String_0x4a026: ; 4a026 + db "あなた%じゅうしょや ねんれいの" + next "せ", $1e, "い¯かえられます@" +; 4a042 + +String_0x4a042: ; 4a042 + db "モバイルセンター", $1d, "せつぞくするとき" + next "ひつような こと¯きめます@" +; 4a062 + +String_0x4a062: ; 4a062 + db "まえ%がめん ", $1d, "もどります" + next "@" +; 4a071 + +Function4a071: ; 4a071 (12:6071) + ld hl, wcfa1 + ld a, $2 + ld [hli], a + ld a, $5 + ld [hli], a + ld a, $5 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + add $2 + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + ret + +Function4a098: ; 4a098 (12:6098) + ld a, $2 + call Function1ff8 + call Function1bee + call WaitBGMap + call LoadStandardMenuDataHeader + callba Function89de0 + call Call_ExitMenu + call Function49351 + call Function4a485 + pop bc + jp Function49f16 + +Function4a0b9: ; 4a0b9 (12:60b9) + ld a, $2 + call Function1ff8 + pop bc + jp Function4a4c4 + +Function4a0c2: ; 4a0c2 (12:60c2) + ld a, $2 + call Function1ff8 + ld a, BANK(sPlayerData) + call GetSRAMBank + ld hl, sPlayerData + PlayerName - wPlayerData + ld de, PlayerName + ld bc, $6 + call CopyBytes + call CloseSRAM + callba Function150b9 + ld c, 2 + call DelayFrames + ld c, $1 + call Function4802f + push af + call ClearBGPalettes + pop af + and a + jr nz, .asm_4a0f9 + callba Function1509a +.asm_4a0f9 + ld c, 5 + call DelayFrames + jr asm_4a111 + +Function4a100: ; 4a100 (12:6100) + ld a, $2 + call Function1ff8 + call ClearBGPalettes + call Function4a13b + call ClearBGPalettes + call ClearTileMap + +asm_4a111: ; 4a111 (12:6111) + pop bc + call LoadFontsExtra + jp Function49f0a + +Function4a118: ; 4a118 (12:6118) + ld hl, wcfa1 + ld a, $1 + ld [hli], a + ld a, $d + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $2 + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + ret + +Function4a13b: ; 4a13b (12:613b) + call Function4a3a7 + call Function4a492 + call Function4a373 + ld c, 10 + call DelayFrames + +Function4a149: ; 4a149 (12:6149) + hlcoord 1, 2 + ld b, $6 + ld c, $10 + call Function48cdc + hlcoord 3, 4 + ld de, String_4a1ef + call PlaceString + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + ld a, [MenuSelection2] + dec a + ld hl, Strings_4a23d + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + callba Function104148 + call SetPalettes + call Function1bc9 + ld hl, MenuSelection2 + ld b, [hl] + push bc + jr asm_4a19d + +Function4a195: ; 4a195 (12:6195) + call Function1bd3 + ld hl, MenuSelection2 + ld b, [hl] + push bc + +asm_4a19d: ; 4a19d (12:619d) + bit 0, a + jr nz, .asm_4a1a7 + bit 1, a + jr nz, .asm_4a1ba + jr .asm_4a1bc +.asm_4a1a7 + ld hl, MenuSelection2 + ld a, [hl] + cp $1 + jp z, Function4a20e + cp $2 + jp z, Function4a221 + ld a, $1 + call Function1ff8 +.asm_4a1ba + pop bc + ret +.asm_4a1bc + ld hl, MenuSelection2 + ld a, [hl] + dec a + ld hl, Strings_4a23d + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + jr .asm_4a1db +.asm_4a1db + call Function4a373 + pop bc + ld hl, MenuSelection2 + ld [hl], b + lb bc, 6, 1 + hlcoord 2, 3 + call ClearBox + jp Function4a195 +; 4a1ef (12:61ef) + +String_4a1ef: ; 4a1ef + db "モバイルセンター¯えらぶ" + next "ログインパスワード¯いれる" + next "もどる@" +; 4a20e + +Function4a20e: ; 4a20e (12:620e) + ld a, $1 + call Function1ff8 + callba Function1719c8 + call ClearBGPalettes + call DelayFrame + jr Function4a239 + +Function4a221: ; 4a221 (12:6221) + ld a, $1 + call Function1ff8 + call Function4a28a + jr c, Function4a239 + call Function4a373 + ld a, $2 + ld [MenuSelection2], a + jr .asm_4a235 +.asm_4a235 + pop bc + jp Function4a149 + +Function4a239: ; 4a239 (12:6239) + pop bc + jp Function4a13b +; 4a23d (12:623d) + +Strings_4a23d: ; 4a23d + db "いつも せつぞく¯する" + next "モバイルセンター¯えらびます@" + + db "モバイルセンター", $1d, "せつぞくするとき" + next "つかうパスワード¯ほぞんできます@" + + db "まえ%がめん ", $1d, "もどります@" + + db "@" +; 4a28a + +Function4a28a: ; 4a28a (12:628a) + hlcoord 2, 3 + lb bc, 6, 1 + ld a, " " + call Function4a6d8 + call Function1bee + call WaitBGMap + call LoadStandardMenuDataHeader + ld a, $5 + call GetSRAMBank + ld a, [$aa4b] + call CloseSRAM + and a + jr z, .asm_4a2df + hlcoord 12, 0 + ld b, $5 + ld c, $6 + call Function48cdc + hlcoord 14, 1 + ld de, String_4a34b + call PlaceString + callba Function104148 + call Function4a118 + call Function1bd3 + push af + call PlayClickSFX + pop af + bit 1, a + jr nz, .asm_4a33b + ld a, [MenuSelection2] + cp $2 + jr z, .asm_4a2f0 + cp $3 + jr z, .asm_4a33b +.asm_4a2df + callba Function11765d + call ClearBGPalettes + call Call_ExitMenu + call LoadFontsExtra + scf + ret +.asm_4a2f0 + call Function1bee + ld hl, UnknownText_0x4a358 + call PrintText + hlcoord 14, 7 + ld b, $3 + ld c, $4 + call TextBox + callba Function104148 + ld hl, MenuDataHeader_0x4a362 + call LoadMenuDataHeader + call InterpretMenu2 + bit 1, a + jr nz, .asm_4a338 + ld a, [MenuSelection2] + cp $2 + jr z, .asm_4a338 + ld a, $5 + call GetSRAMBank + ld hl, $aa4b + xor a + ld bc, $11 + call ByteFill + call CloseSRAM + ld hl, UnknownText_0x4a35d + call PrintText + call JoyWaitAorB +.asm_4a338 + call ExitMenu +.asm_4a33b + call Call_ExitMenu + callba Function104148 + xor a + ret +; 4a346 (12:6346) + +MenuDataHeader_0x4a346: ; 0x4a346 + db $40 ; flags + db 00, 12 ; start coords + db 06, 19 ; end coords + +String_4a34b: ; 4a34b + db "いれなおす" + next "けす" + next "もどる@" +; 4a358 + +UnknownText_0x4a358: ; 0x4a358 + ; Delete the saved LOG-IN PASSWORD? + text_jump UnknownText_0x1c5196 + db "@" +; 0x4a35d + +UnknownText_0x4a35d: ; 0x4a35d + ; Deleted the LOG-IN PASSWORD. + text_jump UnknownText_0x1c51b9 + db "@" +; 0x4a362 + +MenuDataHeader_0x4a362: ; 0x4a362 + db $40 ; flags + db 07, 14 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x4a36a + db 2 ; default option +; 0x4a36a + +MenuData2_0x4a36a: ; 0x4a36a + db $e0 ; flags + db 2 ; items + db "はい@" + db "いいえ@" +; 0x4a373 + +Function4a373: ; 4a373 (12:6373) + ld hl, wcfa1 + ld a, $4 + ld [hli], a + ld a, $2 + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + add $2 + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + ret +; 4a39a (12:639a) + +Function4a39a: ; 4a39a + call Function4a485 + call Function4a492 + call Function4a3aa + call SetPalettes + ret +; 4a3a7 + +Function4a3a7: ; 4a3a7 (12:63a7) + call Function4a485 +Function4a3aa: ; 4a3aa + hlcoord 0, 0 + lb bc, 3, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 1, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 4, 1 + ld a, $2 + call Function4a6d8 + lb bc, 1, 1 + ld a, $3 + call Function4a6d8 + lb bc, 1, 1 + ld a, " " + call Function4a6d8 + hlcoord 1, 0 + ld a, $1 + lb bc, 3, 18 + call Function4a6d8 + lb bc, 1, 18 + ld a, $0 + call Function4a6d8 + lb bc, 1, 18 + ld a, $1 + call Function4a6d8 + lb bc, 1, 18 + ld a, $2 + call Function4a6d8 + lb bc, 11, 18 + ld a, " " + call Function4a6d8 + hlcoord 19, 0 + lb bc, 3, 1 + ld a, $0 + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 1, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 4, 1 + ld a, $2 + call Function4a6d8 + lb bc, 1, 1 + ld a, $3 + call Function4a6d8 + lb bc, 1, 1 + ld a, " " + call Function4a6d8 + ret +; 4a449 (12:6449) + +Function4a449: ; 4a449 + ld bc, 3 * SCREEN_WIDTH + ld a, $0 + hlcoord 0, 0 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $1 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $0 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $1 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, $2 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, $3 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, " " + call ByteFill + ret +; 4a485 + +Function4a485: ; 4a485 (12:6485) + ld de, GFX_49c0c + ld hl, VTiles2 tile $00 + lb bc, BANK(GFX_49c0c), $d + call Get2bpp + ret + +Function4a492: ; 4a492 (12:6492) + call Function4936e + ret + + +MainMenu_MobileStudium: ; 4a496 + ld a, [StartDay] + ld b, a + ld a, [StartHour] + ld c, a + ld a, [StartMinute] + ld d, a + ld a, [StartSecond] + ld e, a + push bc + push de + callba MobileStudium + call ClearBGPalettes + pop de + pop bc + ld a, b + ld [StartDay], a + ld a, c + ld [StartHour], a + ld a, d + ld [StartMinute], a + ld a, e + ld [StartSecond], a + ret +; 4a4c4 + + +Function4a4c4: ; 4a4c4 (12:64c4) + call ClearBGPalettes + call Function4a3a7 + call Function4a492 + call Function4a680 + call ClearBGPalettes + ld c, 20 + call DelayFrames + hlcoord 2, 0 + ld b, $a + ld c, $e + call Function48cdc + hlcoord 4, 2 + ld de, String_4a5c5 + call PlaceString + hlcoord 4, 4 + ld de, String_4a5cd + call PlaceString + hlcoord 4, 6 + ld de, String_4a5da + call PlaceString + hlcoord 4, 8 + ld de, String_4a5e6 + call PlaceString + hlcoord 4, 10 + ld de, String_4a5f2 + call PlaceString + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + xor a + ld hl, Strings_4a5f6 + ld d, h + ld e, l + hlcoord 1, 14 + call PlaceString + ld a, $1 + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 16 + call PlaceString + call Function3200 + call SetPalettes + call Function1bc9 + ld hl, MenuSelection2 + ld b, [hl] + push bc + jr asm_4a54d + +Function4a545: ; 4a545 (12:6545) + call Function1bd3 + ld hl, MenuSelection2 + ld b, [hl] + push bc + +asm_4a54d: ; 4a54d (12:654d) + bit 0, a + jr nz, .asm_4a557 + bit 1, a + jr nz, .asm_4a574 + jr .asm_4a57e +.asm_4a557 + ld hl, MenuSelection2 + ld a, [hl] + cp $1 + jp z, Function4a6ab + cp $2 + jp z, Function4a6ab + cp $3 + jp z, Function4a6ab + cp $4 + jp z, Function4a6ab + ld a, $1 + call Function1ff8 +.asm_4a574 + pop bc + call ClearBGPalettes + call ClearTileMap + jp Function49f0a +.asm_4a57e + ld hl, MenuSelection2 + ld a, [hl] + dec a + add a + push af + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + pop af + inc a + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 16 + call PlaceString + jp Function4a5b0 + +Function4a5b0: ; 4a5b0 (12:65b0) + call Function4a680 + pop bc + ld hl, MenuSelection2 + ld [hl], b + ld b, $a + ld c, $1 + hlcoord 3, 1 + call ClearBox + jp Function4a545 +; 4a5c5 (12:65c5) + +String_4a5c5: ; 4a5c5 + db "じこしょうかい@" +String_4a5cd: ; 4a5cd + db "たいせん ", $4a, "はじまるとき@" +String_4a5da: ; 4a5da + db "たいせん ", $1d, "かったとき@" +String_4a5e6: ; 4a5e6 + db "たいせん ", $1d, "まけたとき@" +String_4a5f2: ; 4a5f2 + db "もどる@" +; 4a5f6 + +Strings_4a5f6: ; 4a5f6 + db "めいし や ニュース ", $1d, "のせる@" + db "あなた%あいさつです@" + db "モバイル たいせん", $4a, "はじまるとき@" + db "あいて", $1d, "みえる あいさつです@" + db "モバイル たいせんで かったとき@" + db "あいて", $1d, "みえる あいさつです@" + db "モバイル たいせんで まけたとき@" + db "あいて", $1d, "みえる あいさつです@" + db "まえ%がめん ", $1d, "もどります@" + db "@" +; 4a680 + +Function4a680: ; 4a680 (12:6680) + ld hl, wcfa1 + ld a, $2 + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $5 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + add $2 + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + xor a +rept 3 + ld [hli], a +endr + ret + +Function4a6ab: ; 4a6ab (12:66ab) + ld a, $2 + call Function1ff8 + call ClearBGPalettes + ld b, SCGB_08 + call GetSGBLayout + callba Function11c1ab + pop bc + call LoadFontsExtra + jp Function4a4c4 + +Function4a6c5: ; 4a6c5 (12:66c5) + ld a, $5 + ld [MusicFade], a + ld a, e + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + ld c, 22 + call DelayFrames + ret + +Function4a6d8: ; 4a6d8 (12:66d8) + push bc + push hl +.asm_4a6da + ld [hli], a + dec c + jr nz, .asm_4a6da + pop hl + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, Function4a6d8 + ret diff --git a/engine/mart.asm b/engine/mart.asm index 81ab22d12..8fa7888c2 100755 --- a/engine/mart.asm +++ b/engine/mart.asm @@ -470,7 +470,7 @@ endr BuyMenuLoop: ; 15cef - callba Function24ae8 + callba PlaceMoneyTopRightOW call UpdateSprites ld hl, MenuDataHeader_Buy call CopyMenuDataHeader @@ -875,7 +875,7 @@ Function15ee0: ; 15ee0 .okay_to_sell ld hl, Text_Mart_SellHowMany call PrintText - callba Function24af8 + callba PlaceMoneyTopRightMenu callba Function24fe1 call ExitMenu jr c, .declined @@ -899,7 +899,7 @@ Function15ee0: ; 15ee0 ld hl, Text_Mart_SoldForAmount call PrintTextBoxText call PlayTransactionSound - callba Function24af0 + callba PlaceMoneyBottomLeftOW call JoyWaitAorB .declined diff --git a/engine/pokecenter_pc.asm b/engine/pokecenter_pc.asm index ee37edca5..7d76d07d3 100755 --- a/engine/pokecenter_pc.asm +++ b/engine/pokecenter_pc.asm @@ -179,7 +179,7 @@ PC_WaitPlaySFX: ; 156d0 ret ; 156d9 -Function156d9: ; 156d9 +_KrissHousePC: ; 156d9 call PC_PlayBootSound ld hl, UnknownText_0x156ff call PC_DisplayText diff --git a/engine/specials.asm b/engine/specials.asm index b9911dc47..bfc4be7c0 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -101,14 +101,14 @@ SpecialsPointers:: ; c029 add_special SpecialCheckPokerus add_special Special_DisplayCoinCaseBalance add_special Special_DisplayMoneyAndCoinBalance - add_special Function24ae8 + add_special PlaceMoneyTopRightOW add_special Special_CheckForLuckyNumberWinners add_special Special_CheckLuckyNumberShowFlag add_special Special_ResetLuckyNumberShowFlag add_special Special_PrintTodaysLuckyNumber add_special Special_SelectApricornForKurt add_special SpecialNameRater - add_special Functionc2da + add_special Special_DisplayLinkRecord add_special GetFirstPokemonHappiness add_special CheckFirstMonIsEgg add_special RandomPhoneRareWildMon @@ -120,15 +120,17 @@ SpecialsPointers:: ; c029 add_special Special_YoungerHaircutBrother add_special Special_OlderHaircutBrother add_special Special_DaisyMassage - add_special Functionc472 + add_special PlayCurMonCry add_special ProfOaksPCBoot add_special SpecialGameboyCheck add_special SpecialTrainerHouse add_special PhotoStudio add_special InitRoamMons - add_special Functionc48f - add_special Functionc49f - add_special Functionc4ac + add_special Special_FadeOutMusic + add_special Diploma + add_special PrintDiploma + + ; Crystal add_special Function11ac3e add_special Function11b444 add_special Function11b5e8 @@ -151,7 +153,7 @@ SpecialsPointers:: ; c029 add_special Function101220 add_special Function101225 add_special Function101231 - add_special Function4925b + add_special Special_MoveTutor add_special SpecialOmanyteChamber add_special Function11c1ab add_special BattleTowerAction @@ -292,14 +294,14 @@ Special_TownMap: ; c2c0 Special_UnownPrinter: ; c2cd call FadeToMenu - callba Function16be4 + callba UnownPrinter call Function2b4d ret ; c2da -Functionc2da: ; c2da +Special_DisplayLinkRecord: ; c2da call FadeToMenu - callba Function3f836 + callba DisplayLinkRecord call Function2b4d ret ; c2e7 @@ -307,7 +309,7 @@ Functionc2da: ; c2da Special_KrissHousePC: ; c2e7 xor a ld [ScriptVar], a - callba Function156d9 + callba _KrissHousePC ld a, c ld [ScriptVar], a ret @@ -586,7 +588,7 @@ SpecialSnorlaxAwake: ; 0xc43d db $ff -Functionc472: ; c472 +PlayCurMonCry: ; c472 ld a, [CurPartySpecies] jp PlayCry ; c478 @@ -614,7 +616,7 @@ SpecialGameboyCheck: ; c478 ret -Functionc48f: ; c48f +Special_FadeOutMusic: ; c48f ld a, MUSIC_NONE % $100 ld [MusicFadeIDLo], a ld a, MUSIC_NONE / $100 @@ -624,16 +626,16 @@ Functionc48f: ; c48f ret ; c49f -Functionc49f: ; c49f +Diploma: ; c49f call FadeToMenu - callba Function1dd702 + callba _Diploma call Function2b4d ret ; c4ac -Functionc4ac: ; c4ac +PrintDiploma: ; c4ac call FadeToMenu - callba Function84688 + callba _PrintDiploma call Function2b4d ret ; c4b9 diff --git a/event/celebi.asm b/event/celebi.asm new file mode 100755 index 000000000..a5c3c0735 --- /dev/null +++ b/event/celebi.asm @@ -0,0 +1,354 @@ +Special_CelebiShrineEvent: ; 4989a + call DelayFrame + ld a, [VramState] + push af + xor a + ld [VramState], a + call LoadCelebiGFX + lb de, $07, $50 + ld a, SPRITE_ANIM_INDEX_2C + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $84 + ld hl, $2 + add hl, bc + ld [hl], $1f + ld hl, $f + add hl, bc + ld a, $80 + ld [hl], a + ld a, $a0 + ld [wcf64], a + ld d, $0 +.loop + ld a, [wJumptableIndex] + bit 7, a + jr nz, .done + push bc + call Function49bae + inc d + push de + ld a, $90 + ld [wc3b5], a + callba Function8cf7a + call Function49935 + ld c, 2 + call DelayFrames + pop de + pop bc + jr .loop + +.done + pop af + ld [VramState], a + call Function498f9 + call Function49bf3 + ret +; 498f9 + +Function498f9: ; 498f9 + ld hl, Sprites + 2 + xor a + ld c, $4 +.loop + ld [hli], a +rept 3 + inc hl +endr + inc a + dec c + jr nz, .loop + ld hl, Sprites + $10 + ld bc, $90 + xor a + call ByteFill + ret +; 49912 + +LoadCelebiGFX: ; 49912 + callba Function8cf53 + ld de, SpecialCelebiLeafGFX + ld hl, VTiles1 + lb bc, BANK(SpecialCelebiLeafGFX), 4 + call Request2bpp + ld de, SpecialCelebiGFX + ld hl, VTiles1 tile $04 + lb bc, BANK(SpecialCelebiGFX), $10 + call Request2bpp + xor a + ld [wJumptableIndex], a + ret +; 49935 + +Function49935: ; 49935 + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_4993e + dec [hl] + ret + +.asm_4993e + ld hl, wJumptableIndex + set 7, [hl] + ret +; 49944 + +Function49944: ; 49944 + ld hl, wcf65 + ld a, [hl] + inc [hl] + and $7 + ret nz + ld a, [hl] + and $18 + sla a + add $40 + ld d, a + ld e, $0 + ld a, SPRITE_ANIM_INDEX_18 ; fly land + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $80 + ret +; 49962 + +SpecialCelebiLeafGFX: ; 49962 +INCBIN "gfx/special/celebi/leaf.2bpp" +SpecialCelebiGFX: ; 499a2 +INCBIN "gfx/special/celebi/1.2bpp" +INCBIN "gfx/special/celebi/2.2bpp" +INCBIN "gfx/special/celebi/3.2bpp" +INCBIN "gfx/special/celebi/4.2bpp" + + +Function49aa2: ; 49aa2 (12:5aa2) + ld hl, $6 + add hl, bc + ld a, [hl] + push af + ld hl, $5 + add hl, bc + ld a, [hl] + cp $52 + jp nc, Function49b30 + ld hl, $5 + add hl, bc + inc [hl] + ld hl, $f + add hl, bc + ld a, [hl] + ld d, a + cp $3a + jr c, .asm_49ac6 + jr z, .asm_49ac6 + sub $3 + ld [hl], a +.asm_49ac6 + ld hl, $e + add hl, bc + ld a, [hl] + inc [hl] + call Function49b3b + ld hl, $6 + add hl, bc + ld [hl], a + ld d, a + ld hl, $4 + add hl, bc + add [hl] + cp $5c + jr nc, .asm_49ae2 + cp $44 + jr nc, .asm_49b0d +.asm_49ae2 + pop af + push af + cp d + jr nc, .asm_49af2 + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr c, .asm_49b05 + jr .asm_49afb +.asm_49af2 + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr nc, .asm_49b05 +.asm_49afb + ld hl, $5 + add hl, bc + ld a, [hl] + sub $2 + ld [hl], a + jr .asm_49b0d +.asm_49b05 + ld hl, $5 + add hl, bc + ld a, [hl] + add $1 + ld [hl], a +.asm_49b0d + pop af + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr c, .asm_49b26 + cp $e6 + jr nc, .asm_49b26 + ld hl, $1 + add hl, bc + ld a, $41 + call Function3b3c + jr .asm_49b2f +.asm_49b26 + ld hl, $1 + add hl, bc + ld a, $40 + call Function3b3c +.asm_49b2f + ret + +Function49b30: ; 49b30 (12:5b30) + pop af + ld hl, $1 + add hl, bc + ld a, $40 + call Function3b3c + ret + +Function49b3b: ; 49b3b (12:5b3b) + add $10 + and $3f + cp $20 + jr nc, .asm_49b48 + call Function49b52 + ld a, h + ret +.asm_49b48 + and $1f + call Function49b52 + ld a, h + xor $ff + inc a + ret + +Function49b52: ; 49b52 (12:5b52) + ld e, a + ld a, d + ld d, $0 + ld hl, Unknown_49b6e +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ld hl, 0 +.asm_49b61 + srl a + jr nc, .asm_49b66 + add hl, de +.asm_49b66 + sla e + rl d + and a + jr nz, .asm_49b61 + ret +; 49b6e (12:5b6e) + +Unknown_49b6e: ; 49b6e + sine_wave $100 +; 49bae + +Function49bae: ; 49bae + push hl + push bc + push de + ld a, d + ld d, $3 + ld e, d + cp $0 + jr z, .asm_49bd0 + cp d + jr z, .asm_49bd4 + call Function49bed + cp d + jr z, .asm_49bd8 + call Function49bed + cp d + jr z, .asm_49bdc + call Function49bed + cp d + jr c, .asm_49be9 + jr .asm_49be5 + +.asm_49bd0 + ld a, $84 + jr .asm_49bde + +.asm_49bd4 + ld a, $88 + jr .asm_49bde + +.asm_49bd8 + ld a, $8c + jr .asm_49bde + +.asm_49bdc + ld a, $90 + +.asm_49bde + ld hl, $3 + add hl, bc + ld [hl], a + jr .asm_49be9 + +.asm_49be5 + pop de + ld d, $ff + push de + +.asm_49be9 + pop de + pop bc + pop hl + ret +; 49bed + +Function49bed: ; 49bed + push af + ld a, d + add e + ld d, a + pop af + ret +; 49bf3 + +Function49bf3: ; 49bf3 + ld a, BATTLETYPE_CELEBI + ld [BattleType], a + ret +; 49bf9 + +Function49bf9: ; 49bf9 + ld a, [wBattleResult] + bit 6, a + jr z, .asm_49c07 + ld a, $1 + ld [ScriptVar], a + jr .asm_49c0b + +.asm_49c07 + xor a + ld [ScriptVar], a + +.asm_49c0b + ret +; 49c0c diff --git a/event/photo.asm b/event/photo.asm new file mode 100755 index 000000000..fd603fef9 --- /dev/null +++ b/event/photo.asm @@ -0,0 +1,299 @@ +UnownPrinter: ; 16be4 + ld a, [UnownDex] + and a + ret z + + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + ld a, [Options] + push af + set NO_TEXT_SCROLL, a + ld [Options], a + call ClearBGPalettes + call ClearTileMap + + ld de, UnownDexATile + ld hl, VTiles1 tile $6f + lb bc, BANK(UnownDexBTile), 1 + call Request1bpp + + ld de, UnownDexBTile + ld hl, VTiles1 tile $75 + lb bc, BANK(UnownDexBTile), 1 + call Request1bpp + + hlcoord 0, 0 + lb bc, 3, 18 + call TextBox + + hlcoord 0, 5 + lb bc, 7, 7 + call TextBox + + hlcoord 0, 14 + lb bc, 2, 18 + call TextBox + + hlcoord 1, 2 + ld de, AlphRuinsStampString + call PlaceString + + hlcoord 1, 16 + ld de, UnownDexDoWhatString + call PlaceString + + hlcoord 10, 6 + ld de, UnownDexMenuString + call PlaceString + + xor a + ld [wJumptableIndex], a + call Function16cc8 + call WaitBGMap + + ld a, UNOWN + ld [CurPartySpecies], a + xor a + ld [TempMonDVs], a + ld [TempMonDVs + 1], a + + ld b, SCGB_1C + call GetSGBLayout + call SetPalettes + +.joy_loop + call JoyTextDelay + + ld a, [hJoyPressed] + and B_BUTTON + jr nz, .pressed_b + + ld a, [hJoyPressed] + and A_BUTTON + jr nz, .pressed_a + + call Function16ca0 + call DelayFrame + jr .joy_loop + +.pressed_a + ld a, [wJumptableIndex] + push af + callba Function84560 + call RestartMapMusic + pop af + ld [wJumptableIndex], a + jr .joy_loop + +.pressed_b + pop af + ld [Options], a + pop af + ld [hInMenu], a + call ReturnToMapFromSubmenu + ret +; 16ca0 + +Function16ca0: ; 16ca0 + ld a, [hJoyLast] + and D_RIGHT + jr nz, .press_right + ld a, [hJoyLast] + and D_LEFT + jr nz, .press_left + ret + +.press_left + ld hl, wJumptableIndex + ld a, [hl] + and a + jr nz, .wrap_around_left + ld [hl], $1b + +.wrap_around_left + dec [hl] + jr .return + +.press_right + ld hl, wJumptableIndex + ld a, [hl] + cp $1a + jr c, .wrap_around_right + ld [hl], $ff + +.wrap_around_right + inc [hl] + +.return + call Function16cc8 + ret +; 16cc8 + +Function16cc8: ; 16cc8 + ld a, [wJumptableIndex] + cp 26 + jr z, Function16d20 + inc a + ld [UnownLetter], a + ld a, UNOWN + ld [CurPartySpecies], a + xor a + ld [wc2c6], a + ld de, VTiles2 + predef GetFrontpic + call Function16cff + hlcoord 1, 6 + xor a + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + ld de, VTiles2 tile $31 + callba Functione0000 + ret +; 16cff + +Function16cff: ; 16cff + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + + ld a, BANK(sScratch) + call GetSRAMBank + ld de, w6_d000 + ld hl, sScratch + ld a, [hROMBank] + ld b, a + ld c, $31 + call Get2bpp + call CloseSRAM + + pop af + ld [rSVBK], a + ret +; 16d20 + +Function16d20: ; 16d20 + hlcoord 1, 6 + lb bc, 7, 7 + call ClearBox + hlcoord 1, 9 + ld de, UnownDexVacantString + call PlaceString + xor a + call GetSRAMBank + ld hl, sScratch + ld bc, $31 tiles + xor a + call ByteFill + ld hl, VTiles2 tile $31 + ld de, sScratch + ld c, $31 + ld a, [hROMBank] + ld b, a + call Get2bpp + call CloseSRAM + ld c, 20 + call DelayFrames + ret +; 16d57 + +AlphRuinsStampString: + db " ALPH RUINS STAMP@" + +UnownDexDoWhatString: + db "Do what?@" + +UnownDexMenuString: + db "♂ PRINT" + next "♀ CANCEL" + next "← PREVIOUS" + next "→ NEXT" + db "@" + +UnownDexVacantString: + db "VACANT@" +; 16d9c + +UnownDexATile: ; 16d9c +INCBIN "gfx/unknown/016d9c.1bpp" +UnownDexBTile: ; 16da4 +INCBIN "gfx/unknown/016da4.1bpp" +; 16dac + +Function16dac: ; 16dac + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + hlcoord 7, 11 + ld a, $31 + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + ret +; 16dc7 + +PhotoStudio: ; 16dc7 + ld hl, .Text_AskWhichMon + call PrintText + callba SelectMonFromParty + jr c, .cancel + ld a, [CurPartySpecies] + cp EGG + jr z, .egg + + ld hl, .Text_HoldStill + call PrintText + call DisableSpriteUpdates + callba Function8461a + call Function2b74 + ld a, [$ffac] + and a + jr nz, .cancel + ld hl, .Text_Presto + jr .print_text + +.cancel + ld hl, .Text_NoPicture + jr .print_text + +.egg + ld hl, .Text_Egg + +.print_text + call PrintText + ret +; 16e04 + +.Text_AskWhichMon: ; 0x16e04 + ; Which #MON should I photo- graph? + text_jump UnknownText_0x1be024 + db "@" +; 0x16e09 + +.Text_HoldStill: ; 0x16e09 + ; All righty. Hold still for a bit. + text_jump UnknownText_0x1be047 + db "@" +; 0x16e0e + +.Text_Presto: ; 0x16e0e + ; Presto! All done. Come again, OK? + text_jump UnknownText_0x1be06a + db "@" +; 0x16e13 + +.Text_NoPicture: ; 0x16e13 + ; Oh, no picture? Come again, OK? + text_jump UnknownText_0x1c0000 + db "@" +; 0x16e18 + +.Text_Egg: ; 0x16e18 + ; An EGG? My talent is worth more… + text_jump UnknownText_0x1c0021 + db "@" +; 0x16e1d diff --git a/home/audio.asm b/home/audio.asm index 9756d0460..191366d0d 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -312,7 +312,7 @@ VolumeOff:: ; 3ca3 ret ; 3ca8 -FadeOutMusic:: ; 3ca8 +Unused_FadeOutMusic:: ; 3ca8 ld a, 4 ld [MusicFade], a ret diff --git a/main.asm b/main.asm index 672d0d44c..29e2b09b6 100644 --- a/main.asm +++ b/main.asm @@ -11491,305 +11491,7 @@ INCLUDE "event/mom.asm" INCLUDE "event/daycare.asm" -Function16be4: ; 16be4 - ld a, [UnownDex] - and a - ret z - - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - ld a, [Options] - push af - set NO_TEXT_SCROLL, a - ld [Options], a - call ClearBGPalettes - call ClearTileMap - - ld de, UnownDexATile - ld hl, VTiles1 tile $6f - lb bc, BANK(UnownDexBTile), 1 - call Request1bpp - - ld de, UnownDexBTile - ld hl, VTiles1 tile $75 - lb bc, BANK(UnownDexBTile), 1 - call Request1bpp - - hlcoord 0, 0 - lb bc, 3, 18 - call TextBox - - hlcoord 0, 5 - lb bc, 7, 7 - call TextBox - - hlcoord 0, 14 - lb bc, 2, 18 - call TextBox - - hlcoord 1, 2 - ld de, AlphRuinsStampString - call PlaceString - - hlcoord 1, 16 - ld de, UnownDexDoWhatString - call PlaceString - - hlcoord 10, 6 - ld de, UnownDexMenuString - call PlaceString - - xor a - ld [wJumptableIndex], a - call Function16cc8 - call WaitBGMap - - ld a, UNOWN - ld [CurPartySpecies], a - xor a - ld [TempMonDVs], a - ld [TempMonDVs + 1], a - - ld b, SCGB_1C - call GetSGBLayout - call SetPalettes - -.joy_loop - call JoyTextDelay - - ld a, [hJoyPressed] - and B_BUTTON - jr nz, .pressed_b - - ld a, [hJoyPressed] - and A_BUTTON - jr nz, .pressed_a - - call Function16ca0 - call DelayFrame - jr .joy_loop - -.pressed_a - ld a, [wJumptableIndex] - push af - callba Function84560 - call RestartMapMusic - pop af - ld [wJumptableIndex], a - jr .joy_loop - -.pressed_b - pop af - ld [Options], a - pop af - ld [hInMenu], a - call ReturnToMapFromSubmenu - ret -; 16ca0 - -Function16ca0: ; 16ca0 - ld a, [hJoyLast] - and D_RIGHT - jr nz, .press_right - ld a, [hJoyLast] - and D_LEFT - jr nz, .press_left - ret - -.press_left - ld hl, wJumptableIndex - ld a, [hl] - and a - jr nz, .wrap_around_left - ld [hl], $1b - -.wrap_around_left - dec [hl] - jr .return - -.press_right - ld hl, wJumptableIndex - ld a, [hl] - cp $1a - jr c, .wrap_around_right - ld [hl], $ff - -.wrap_around_right - inc [hl] - -.return - call Function16cc8 - ret -; 16cc8 - -Function16cc8: ; 16cc8 - ld a, [wJumptableIndex] - cp 26 - jr z, Function16d20 - inc a - ld [UnownLetter], a - ld a, UNOWN - ld [CurPartySpecies], a - xor a - ld [wc2c6], a - ld de, VTiles2 - predef GetFrontpic - call Function16cff - hlcoord 1, 6 - xor a - ld [hFillBox], a - lb bc, 7, 7 - predef FillBox - ld de, VTiles2 tile $31 - callba Functione0000 - ret -; 16cff - -Function16cff: ; 16cff - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - - ld a, BANK(sScratch) - call GetSRAMBank - ld de, w6_d000 - ld hl, sScratch - ld a, [hROMBank] - ld b, a - ld c, $31 - call Get2bpp - call CloseSRAM - - pop af - ld [rSVBK], a - ret -; 16d20 - -Function16d20: ; 16d20 - hlcoord 1, 6 - lb bc, 7, 7 - call ClearBox - hlcoord 1, 9 - ld de, UnownDexVacantString - call PlaceString - xor a - call GetSRAMBank - ld hl, sScratch - ld bc, $31 tiles - xor a - call ByteFill - ld hl, VTiles2 tile $31 - ld de, sScratch - ld c, $31 - ld a, [hROMBank] - ld b, a - call Get2bpp - call CloseSRAM - ld c, 20 - call DelayFrames - ret -; 16d57 - -AlphRuinsStampString: - db " ALPH RUINS STAMP@" - -UnownDexDoWhatString: - db "Do what?@" - -UnownDexMenuString: - db "♂ PRINT" - next "♀ CANCEL" - next "← PREVIOUS" - next "→ NEXT" - db "@" - -UnownDexVacantString: - db "VACANT@" -; 16d9c - -UnownDexATile: ; 16d9c -INCBIN "gfx/unknown/016d9c.1bpp" -UnownDexBTile: ; 16da4 -INCBIN "gfx/unknown/016da4.1bpp" -; 16dac - -Function16dac: ; 16dac - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - hlcoord 7, 11 - ld a, $31 - ld [hFillBox], a - lb bc, 7, 7 - predef FillBox - ret -; 16dc7 - -PhotoStudio: ; 16dc7 - ld hl, .Text_AskWhichMon - call PrintText - callba SelectMonFromParty - jr c, .cancel - ld a, [CurPartySpecies] - cp EGG - jr z, .egg - - ld hl, .Text_HoldStill - call PrintText - call DisableSpriteUpdates - callba Function8461a - call Function2b74 - ld a, [$ffac] - and a - jr nz, .cancel - ld hl, .Text_Presto - jr .print_text - -.cancel - ld hl, .Text_NoPicture - jr .print_text - -.egg - ld hl, .Text_Egg - -.print_text - call PrintText - ret -; 16e04 - -.Text_AskWhichMon: ; 0x16e04 - ; Which #MON should I photo- graph? - text_jump UnknownText_0x1be024 - db "@" -; 0x16e09 - -.Text_HoldStill: ; 0x16e09 - ; All righty. Hold still for a bit. - text_jump UnknownText_0x1be047 - db "@" -; 0x16e0e - -.Text_Presto: ; 0x16e0e - ; Presto! All done. Come again, OK? - text_jump UnknownText_0x1be06a - db "@" -; 0x16e13 - -.Text_NoPicture: ; 0x16e13 - ; Oh, no picture? Come again, OK? - text_jump UnknownText_0x1c0000 - db "@" -; 0x16e18 - -.Text_Egg: ; 0x16e18 - ; An EGG? My talent is worth more… - text_jump UnknownText_0x1c0021 - db "@" -; 0x16e1d +INCLUDE "event/photo.asm" INCLUDE "engine/breeding/egg.asm" @@ -13076,17 +12778,17 @@ PlaceMenuItemQuantity: ; 0x24ac3 ret ; 0x24ae8 -Function24ae8: ; 24ae8 +PlaceMoneyTopRightOW: ; 24ae8 ld hl, MenuDataHeader_0x24b15 call CopyMenuDataHeader jr Function24b01 -Function24af0: ; 24af0 +PlaceMoneyBottomLeftOW: ; 24af0 ld hl, MenuDataHeader_0x24b1d call CopyMenuDataHeader jr Function24b01 -Function24af8: ; 24af8 +PlaceMoneyTopRightMenu: ; 24af8 ld hl, MenuDataHeader_0x24b15 ld de, $b call Function1e2e @@ -20847,7 +20549,7 @@ Function48000: ; 48000 ld [wd478], a ld [wd002], a ld [wd003], a - ; could have done "ld a, [wd479] \ and -4", saved four operations + ; could have done "ld a, [wd479] \ and %11111100", saved four operations ld a, [wd479] res 0, a ld [wd479], a @@ -20857,1836 +20559,7 @@ Function48000: ; 48000 ret ; 4802f - -Function4802f: ; 4802f (12:402f) - xor a - set 6, a - ld [wd002], a - ld hl, wd003 - set 0, [hl] - ld a, c - and a - call z, Function48000 - call ClearBGPalettes - call Function48d3d - ld a, [wd479] - bit 1, a - jr z, .asm_4805a - ld a, [wd003] - set 0, a - set 1, a - set 2, a - set 3, a - ld [wd003], a -.asm_4805a - call Function486bf - call LoadFontsExtra - ld de, GFX_488c3 - ld hl, VTiles2 tile $10 - lb bc, BANK(GFX_488c3), 1 - call Request1bpp - ld de, GFX_488cb - ld hl, VTiles2 tile $11 - lb bc, BANK(GFX_488cb), 1 - call Request1bpp - call Function4a3a7 - call ClearBGPalettes - ld a, [wd002] - bit 6, a - jr z, .asm_4808a - call Function48689 - jr .asm_480d7 -.asm_4808a - ld a, $5 - ld [MusicFade], a - ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 - ld [MusicFadeIDHi], a - ld c, 20 - call DelayFrames - ld b, $1 - call Function4930f - call ClearBGPalettes - hlcoord 0, 0 - ld b, $2 - ld c, $14 - call ClearBox - hlcoord 0, 1 - ld a, $c - ld [hl], a - ld bc, $13 - add hl, bc - ld [hl], a - ld de, MobileProfileString - hlcoord 1, 1 - call PlaceString - hlcoord 0, 2 - ld b, $a - ld c, $12 - call Function48cdc - hlcoord 2, 4 - ld de, String_48482 - call PlaceString -.asm_480d7 - hlcoord 2, 6 - ld de, String_48489 - call PlaceString - hlcoord 2, 8 - ld de, String_4848d - call PlaceString - hlcoord 2, 10 - ld de, String_48495 - call PlaceString - hlcoord 2, 12 - ld de, String_4849e - call PlaceString - ld a, [wd002] - bit 6, a - jr nz, .asm_48113 - ld a, [PlayerGender] - ld hl, Strings_484fb - call GetNthString - ld d, h - ld e, l - hlcoord 11, 4 - call PlaceString -.asm_48113 - hlcoord 11, 6 - call Function487ec - ld a, [wd474] - dec a - ld hl, Prefectures - call GetNthString - ld d, h - ld e, l - hlcoord 11, 8 - call PlaceString - hlcoord 11, 10 - call Function489ea - hlcoord 0, 14 - ld b, $2 - ld c, $12 - call TextBox - hlcoord 1, 16 - ld de, String_48275 - call PlaceString - call Function48187 - call Function3200 - call SetPalettes - call Function1bc9 - ld hl, MenuSelection2 - ld b, [hl] - push bc - jr asm_4815f - -Function48157: ; 48157 (12:4157) - call Function1bd3 - ld hl, MenuSelection2 - ld b, [hl] - push bc - -asm_4815f: ; 4815f (12:415f) - bit 0, a - jp nz, Function4820d - ld b, a - ld a, [wd002] - bit 6, a - jr z, .asm_48177 - ld hl, wd479 - bit 1, [hl] - jr z, .asm_48177 - bit 1, b - jr nz, .asm_4817a -.asm_48177 - jp Function48272 -.asm_4817a - call ClearBGPalettes - call Function48d30 - pop bc - call ClearTileMap - ld a, $ff - ret - -Function48187: ; 48187 (12:4187) - ld a, [wd479] - bit 1, a - jr nz, .asm_481f1 - ld a, [wd003] - ld d, a - call Function48725 - jr c, .asm_481a2 - lb bc, 1, 4 - hlcoord 2, 12 - call ClearBox - jr .asm_481ad -.asm_481a2 - push de - hlcoord 2, 12 - ld de, String_4849e - call PlaceString - pop de -.asm_481ad - ld a, [wd002] - bit 6, a - jr nz, .asm_481c1 - bit 0, d - jr nz, .asm_481c1 - lb bc, 1, 8 - hlcoord 11, 4 - call ClearBox -.asm_481c1 - bit 1, d - jr nz, .asm_481ce - lb bc, 1, 8 - hlcoord 11, 6 - call ClearBox -.asm_481ce - bit 2, d - jr nz, .asm_481db - lb bc, 2, 8 - hlcoord 11, 7 - call ClearBox -.asm_481db - bit 3, d - jr nz, .asm_481f1 - ld a, [wd479] - bit 0, a - jr nz, .asm_481f8 - lb bc, 1, 8 - hlcoord 11, 10 - call ClearBox - jr .asm_48201 -.asm_481f1 - ld a, [wd479] - bit 0, a - jr nz, .asm_48201 -.asm_481f8 - hlcoord 11, 10 - ld de, String_48202 - call PlaceString -.asm_48201 - ret -; 48202 (12:4202) - -String_48202: ; 48202 - db "Tell Later@" -; 4820d - -Function4820d: ; 4820d (12:420d) - call Function1bee - ld hl, MenuSelection2 - ld a, [hl] - push af - ld a, [wd002] - bit 6, a - jr z, .asm_4821f - pop af - inc a - push af -.asm_4821f - pop af - cp $1 - jr z, asm_4828d - cp $2 - jp z, Function4876f - cp $3 - jp z, Function48304 - cp $4 - jp z, Function488d3 - ld a, $2 - call Function1ff8 - ld a, [wd002] - bit 6, a - jr z, .asm_4825c - jr .asm_4825c -; 48241 (12:4241) - - hlcoord 1, 15 - ld b, $2 - ld c, $12 - call ClearBox - ld de, String_484a1 - hlcoord 1, 16 - call PlaceString - call WaitBGMap - ld c, 48 - call DelayFrames - -.asm_4825c - call ClearBGPalettes - call Function48d30 - pop bc - call ClearTileMap - ld b, SCGB_08 - call GetSGBLayout - ld hl, wd479 - set 1, [hl] - xor a - ret - -Function48272: ; 48272 (12:4272) - jp Function4840c -; 48275 (12:4275) - -String_48275: ; 48275 - db "Personal Info@" -; 48283 - -Function48283: ; 48283 (12:4283) - lb bc, 2, 18 - hlcoord 1, 15 - call ClearBox - ret - -asm_4828d: ; 4828d (12:428d) - call Function48283 - hlcoord 1, 16 - ld de, String_484b1 - call PlaceString - ld hl, MenuDataHeader_0x484f1 - call LoadMenuDataHeader - call Function4873c - hlcoord 11, 2 - ld b, $4 - ld c, $7 - call Function48cdc - hlcoord 13, 4 - ld de, String_484fb - call PlaceString - hlcoord 13, 6 - ld de, String_484ff - call PlaceString - call WaitBGMap - ld a, [PlayerGender] - inc a - ld [wMenuCursorBuffer], a - call Function1bc9 - call PlayClickSFX - call ExitMenu - bit 0, a - jp z, Function4840c - ld hl, MenuSelection2 - ld a, [hl] - ld hl, Strings_484fb - cp $1 - jr z, .asm_482ed -.asm_482e1 - ld a, [hli] - cp $50 - jr nz, .asm_482e1 - ld a, $1 - ld [PlayerGender], a - jr .asm_482f1 -.asm_482ed - xor a - ld [PlayerGender], a -.asm_482f1 - ld d, h - ld e, l - hlcoord 11, 4 - call PlaceString - ld a, [wd003] - set 0, a - ld [wd003], a - jp Function4840c - -Function48304: ; 48304 (12:4304) - call Function48283 - hlcoord 1, 16 - ld de, String_484cf - call PlaceString - ld hl, MenuDataHeader_0x48504 - call LoadMenuDataHeader - ld hl, MenuDataHeader_0x48513 - call LoadMenuDataHeader - hlcoord 10, 0 - ld b, $c - ld c, $8 - call Function48cdc - ld a, [wMenuCursorBuffer] - ld b, a - ld a, [wd0e4] - ld c, a - push bc - ld a, [wd474] - dec a - cp $29 - jr c, .asm_4833f - sub $29 - inc a - ld [wMenuCursorBuffer], a - ld a, $29 -.asm_4833f - ld [wd0e4], a - callba Function104148 -.asm_48348 - call HandleScrollingMenu - ld de, $629 - call Function48383 - jr c, .asm_48348 - ld d, a - pop bc - ld a, b - ld [wMenuCursorBuffer], a - ld a, c - ld [wd0e4], a - ld a, d - push af - call ExitMenu - call ExitMenu - pop af - ld a, [hJoyPressed] - bit 0, a - jr z, .asm_48377 - call Function483bb - ld a, [wd003] - set 2, a - ld [wd003], a -.asm_48377 - call Function48187 - callba Function104148 - jp Function4840c - -Function48383: ; 48383 (12:4383) - push bc - push af - bit 5, a - jr nz, .asm_48390 - bit 4, a - jr nz, .asm_4839f - and a - jr .asm_483b7 -.asm_48390 - ld a, [wd0e4] - sub d - ld [wd0e4], a - jr nc, .asm_483af - xor a - ld [wd0e4], a - jr .asm_483af -.asm_4839f - ld a, [wd0e4] - add d - ld [wd0e4], a - cp e - jr c, .asm_483af - ld a, e - ld [wd0e4], a - jr .asm_483af -.asm_483af - ld hl, MenuSelection2 - ld a, [hl] - ld [wMenuCursorBuffer], a - scf -.asm_483b7 - pop bc - ld a, b - pop bc - ret - -Function483bb: ; 483bb (12:43bb) - ld hl, wcf77 - ld a, [hl] - inc a - ld [wd474], a - dec a - ld b, a - ld hl, Prefectures -.asm_483c8 - and a - jr z, .asm_483d5 -.asm_483cb - ld a, [hli] - cp "@" - jr nz, .asm_483cb - ld a, b - dec a - ld b, a - jr .asm_483c8 -.asm_483d5 - ld d, h - ld e, l - ld b, $2 - ld c, $8 - hlcoord 11, 7 - call ClearBox - hlcoord 11, 8 - call PlaceString - ret -; 483e8 (12:43e8) - -Function483e8: ; 483e8 - push de - ld hl, Prefectures - ld a, [MenuSelection] - cp $ff - jr nz, .asm_483f8 - ld hl, Wakayama ; last string - jr .asm_48405 - -.asm_483f8 - ld d, a - and a - jr z, .asm_48405 -.asm_483fc - ld a, [hli] - cp "@" - jr nz, .asm_483fc - ld a, d - dec a - jr .asm_483f8 - -.asm_48405 - ld d, h - ld e, l - pop hl - call PlaceString - ret -; 4840c - -Function4840c: ; 4840c (12:440c) - call Function48187 - call Function48283 - hlcoord 1, 16 - ld de, String_48275 - call PlaceString - call Function486bf - pop bc - ld hl, MenuSelection2 - ld [hl], b - ld a, [wd002] - bit 6, a - jr nz, .asm_48437 - ld b, $9 - ld c, $1 - hlcoord 1, 4 - call ClearBox - jp Function48157 -.asm_48437 - ld b, $7 - ld c, $1 - hlcoord 1, 6 - call ClearBox - jp Function48157 - -Function48444: ; 48444 (12:4444) - push bc - push af - push de - push hl - ld hl, Unknown_4845d -.asm_4844b - and a - jr z, .asm_48453 -rept 2 - inc hl -endr - dec a - jr .asm_4844b -.asm_48453 - ld d, h - ld e, l - pop hl - call PlaceString - pop de - pop af - pop bc - ret -; 4845d (12:445d) - -Unknown_4845d: ; 4845d -; 4845d - db "0@" - db "1@" - db "2@" - db "3@" - db "4@" - db "5@" - db "6@" - db "7@" - db "8@" - db "9@" -; 48471 - -MobileProfileString: db " Mobile Profile@" -String_48482: db "Gender@" -String_48489: db "Age@" -String_4848d: db "Address@" -String_48495: db "Zip Code@" -String_4849e: db "OK@" -String_484a1: db "Profile Changed@" -String_484b1: db "Boy or girl?@" -String_484be: db "How old are you?@" -String_484cf: db "Where do you live?@" -String_484e2: db "Your zip code?@" -; 484f1 - -MenuDataHeader_0x484f1: ; 0x484f1 - db $40 ; flags - db 02, 11 ; start coords - db 07, 19 ; end coords - dw MenuData2_0x484f9 - db 1 ; default option -; 0x484f9 - -MenuData2_0x484f9: ; 0x484f9 - db $a0 ; flags - db 2 ; items -Strings_484fb: -String_484fb: db "Boy@" -String_484ff: db "Girl@" -; 0x48504 - -MenuDataHeader_0x48504: ; 0x48504 - db $40 ; flags - db 00, 10 ; start coords - db 17, 19 ; end coords - -MenuDataHeader_0x48509: ; 0x48509 - db $40 ; flags - db 05, 10 ; start coords - db 07, 19 ; end coords - -MenuDataHeader_0x4850e: ; 0x4850e - db $40 ; flags - db 09, 10 ; start coords - db 11, 19 ; end coords - -MenuDataHeader_0x48513: ; 0x48513 - db $40 ; flags - db 01, 11 ; start coords - db 12, 18 ; end coords - dw MenuData2_0x4851b - db 1 ; default option -; 0x4851b - -MenuData2_0x4851b: ; 0x4851b - db $1d ; flags - db 6 ; items - -Unknown_4851d: ; 4851d - db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18 - db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c - db $2d, $ff - -Prefectures: -Aichi: db "あいちけん@" ; Aichi -Aomori: db "あおもりけん@" ; Aomori -Akita: db "あきたけん@" ; Akita -Ishikawa: db "いしかわけん@" ; Ishikawa -Ibaraki: db "いばらきけん@" ; Ibaraki -Iwate: db "いわてけん@" ; Iwate -Ehime: db "えひめけん@" ; Ehime -Oita: db "おおいたけん@" ; Oita -Osakafu: db "おおさかふ@" ; Osakafu -Okayama: db "おかやまけん@" ; Okayama -Okinawa: db "おきなわけん@" ; Okinawa -Kagawa: db "かがわけん@" ; Kagawa -Kagoshima: db "かごしまけん@" ; Kagoshima -Kanagawa: db "かながわけん@" ; Kanagawa -Gifu: db "ぎふけん@" ; Gifu -Kyotofu: db "きょうとふ@" ; Kyotofu -Kumamoto: db "くまもとけん@" ; Kumamoto -Gunma: db "ぐんまけん@" ; Gunma -Kochi: db "こうちけん@" ; Kochi -Saitama: db "さいたまけん@" ; Saitama -Saga: db "さがけん@" ; Saga -Shiga: db "しがけん@" ; Shiga -Shizuoka: db "しずおかけん@" ; Shizuoka -Shimane: db "しまねけん@" ; Shimane -Chiba: db "ちばけん@" ; Chiba -Tokyo: db "とうきょうと@" ; Tokyo -Tokushima: db "とくしまけん@" ; Tokushima -Tochigi: db "とちぎけん@" ; Tochigi -Tottori: db "とっとりけん@" ; Tottori -Toyama: db "とやまけん@" ; Toyama -Nagasaki: db "ながさきけん@" ; Nagasaki -Nagano: db "ながのけん@" ; Nagano -Naraken: db "ならけん@" ; Naraken -Niigata: db "にいがたけん@" ; Niigata -Hyogo: db "ひょうごけん@" ; Hyogo -Hiroshima: db "ひろしまけん@" ; Hiroshima -Fukui: db "ふくいけん@" ; Fukui -Fukuoka: db "ふくおかけん@" ; Fukuoka -Fukushima: db "ふくしまけん@" ; Fukushima -Hokkaido: db "ほっかいどう@" ; Hokkaido -Mie: db "みえけん@" ; Mie -Miyagi: db "みやぎけん@" ; Miyagi -Miyazaki: db "みやざきけん@" ; Miyazaki -Yamagata: db "やまがたけん@" ; Yamagata -Yamaguchi: db "やまぐちけん@" ; Yamaguchi -Yamanashi: db "やまなしけん@" ; Yamanashi -Wakayama: db "わかやまけん@" ; Wakayama -; 48689 - -Function48689: ; 48689 (12:4689) - ld c, 7 - call DelayFrames - ld b, $1 - call Function4930f - call ClearBGPalettes - hlcoord 0, 0 - ld b, $4 - ld c, $14 - call ClearBox - hlcoord 0, 2 - ld a, $c - ld [hl], a - ld bc, $13 - add hl, bc - ld [hl], a - ld de, MobileProfileString - hlcoord 1, 2 - call PlaceString - hlcoord 0, 4 - ld b, $8 - ld c, $12 - call Function48cdc - ret - -Function486bf: ; 486bf (12:46bf) - ld hl, wcfa1 - ld a, [wd002] - bit 6, a - jr nz, .asm_486ce - ld a, $4 - ld [hli], a - jr .asm_486d1 -.asm_486ce - ld a, $6 - ld [hli], a -.asm_486d1 - ld a, $1 - ld [hli], a - ld a, [wd002] - bit 6, a - jr nz, .asm_486e7 - call Function48725 - ld a, $4 - jr nc, .asm_486e4 - ld a, $5 -.asm_486e4 - ld [hli], a - jr .asm_486fb -.asm_486e7 - ld a, [wd479] - bit 1, a - jr nz, .asm_486f8 - call Function48725 - jr c, .asm_486f8 - ld a, $3 - ld [hli], a - jr .asm_486fb -.asm_486f8 - ld a, $4 - ld [hli], a -.asm_486fb - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - push af - ld a, [wd002] - bit 6, a - jr z, .asm_4871a - pop af - add $2 - push af -.asm_4871a - pop af - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - xor a -rept 3 - ld [hli], a -endr - ret - -Function48725: ; 48725 (12:4725) - ld a, [wd003] - bit 0, a - jr z, .asm_4873a - bit 1, a - jr z, .asm_4873a - bit 2, a - jr z, .asm_4873a - bit 3, a - jr z, .asm_4873a - scf - ret -.asm_4873a - and a - ret - -Function4873c: ; 4873c (12:473c) - ld hl, wcfa1 - ld a, $4 - ld [hli], a - ld a, $c - ld [hli], a - ld a, $2 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $2 - ld [hli], a - ld a, [PlayerGender] - and a - jr z, .asm_48764 - ld a, $2 - jr .asm_48766 -.asm_48764 - ld a, $1 -.asm_48766 - ld [hli], a - ld a, $1 - ld [hli], a - xor a -rept 3 - ld [hli], a -endr - ret - -Function4876f: ; 4876f (12:476f) - call Function48283 - hlcoord 1, 16 - ld de, String_484be - call PlaceString - ld hl, MenuDataHeader_0x48509 - call LoadMenuDataHeader - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - call WaitBGMap - ld a, [wd473] - and a - jr z, .asm_487ab - cp $64 - jr z, .asm_487b2 - hlcoord 12, 5 - ld [hl], $10 - hlcoord 12, 7 - ld [hl], $11 - jr .asm_487b7 -.asm_487ab - hlcoord 12, 5 - ld [hl], $10 - jr .asm_487b7 -.asm_487b2 - hlcoord 12, 7 - ld [hl], $11 -.asm_487b7 - hlcoord 11, 6 - call Function487ec - ld c, 10 - call DelayFrames - ld a, [wd473] - push af -.asm_487c6 - call JoyTextDelay - call Function4880e - jr nc, .asm_487c6 - ld a, $1 - call Function1ff8 - pop bc - jr nz, .asm_487da - ld a, b - ld [wd473], a -.asm_487da - ld a, [wd473] - call ExitMenu - hlcoord 11, 6 - call Function487ec - pop af - ld [hInMenu], a - jp Function4840c - -Function487ec: ; 487ec (12:47ec) - push hl - ld de, wd473 - call Function487ff - pop hl -rept 4 - inc hl -endr - ld de, String_4880d - call PlaceString - ret - -Function487ff: ; 487ff (12:47ff) - push hl - ld a, " " - ld [hli], a - ld [hl], a - pop hl - ld b, PRINTNUM_LEADINGZEROS | 1 - ld c, 3 - call PrintNum - ret -; 4880d (12:480d) - -String_4880d: ; 4880d - db "@" -; 4880e - -Function4880e: ; 4880e (12:480e) - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Function488b9 - ld a, [hJoyPressed] - and B_BUTTON - jp nz, Function488b4 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_48843 - ld a, [hl] - and D_DOWN - jr nz, .asm_48838 - ld a, [hl] - and D_LEFT - jr nz, .asm_4884f - ld a, [hl] - and D_RIGHT - jr nz, .asm_4885f - call DelayFrame - and a - ret -.asm_48838 - ld hl, wd473 - ld a, [hl] - and a - jr z, .asm_48840 - dec a -.asm_48840 - ld [hl], a - jr .asm_4886f -.asm_48843 - ld hl, wd473 - ld a, [hl] - cp $64 - jr nc, .asm_4884c - inc a -.asm_4884c - ld [hl], a - jr .asm_4886f -.asm_4884f - ld a, [wd473] - cp $5b - jr c, .asm_48858 - ld a, $5a -.asm_48858 - add $a - ld [wd473], a - jr .asm_4886f -.asm_4885f - ld a, [wd473] - cp $a - jr nc, .asm_48868 - ld a, $a -.asm_48868 - sub $a - ld [wd473], a - jr .asm_4886f -.asm_4886f - ld a, [wd473] - and a - jr z, .asm_48887 - cp $64 - jr z, .asm_48898 - jr z, .asm_488a7 - hlcoord 12, 5 - ld [hl], $10 - hlcoord 12, 7 - ld [hl], $11 - jr .asm_488a7 -.asm_48887 - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - hlcoord 12, 5 - ld [hl], $10 - jr .asm_488a7 -.asm_48898 - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - hlcoord 12, 7 - ld [hl], $11 -.asm_488a7 - hlcoord 11, 6 - call Function487ec - call WaitBGMap - ld a, $1 - and a - ret - -Function488b4: ; 488b4 (12:48b4) - ld a, $0 - and a - scf - ret - -Function488b9: ; 488b9 (12:48b9) - ld a, [wd003] - set 1, a - ld [wd003], a - scf - ret -; 488c3 (12:48c3) - -GFX_488c3: ; 488c3 -INCBIN "gfx/unknown/0488c3.2bpp" - -GFX_488cb: ; 488cb -INCBIN "gfx/unknown/0488cb.2bpp" - -Function488d3: ; 488d3 (12:48d3) - call Function48283 - hlcoord 1, 16 - ld de, String_484e2 - call PlaceString - call Function48a3a - jp c, Function4840c - ld hl, MenuDataHeader_0x4850e - call LoadMenuDataHeader - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - ld a, [wd475] - and $f - ld d, $0 - hlcoord 11, 10 - call Function489ea - call WaitBGMap - ld a, [wd475] - ld b, a - ld a, [wd476] - ld c, a - ld a, [wd477] - ld d, a - ld a, [wd478] - ld e, a - push de - push bc - ld d, $0 - ld b, $0 - -asm_48922: ; 48922 (12:4922) - push bc - call JoyTextDelay - ld a, [hJoyDown] - and a - jp z, Function4896e - bit 0, a - jp nz, Function4896e - bit 1, a - jp nz, Function4896e - ld a, [wd002] - and %11001111 - res 7, a - ld [wd002], a - pop bc - inc b - ld a, b - cp $5 - push bc - jr c, .asm_4894c - pop bc - ld b, $4 - push bc -.asm_4894c - pop bc - push bc - ld a, b - cp $4 - jr nz, asm_48972 - ld c, 10 - call DelayFrames - jr asm_48972 -; 4895a (12:495a) - -Function4895a: ; 4895a - ld a, [hJoyPressed] - and a - jr z, .asm_48965 - pop bc - ld b, $1 - push bc - jr asm_48972 - -.asm_48965 - ld a, [hJoyLast] - and a - jr z, asm_48972 - - pop bc - ld b, $1 - push bc - -Function4896e: ; 4896e (12:496e) - pop bc - ld b, $0 - push bc - -asm_48972: ; 48972 (12:4972) - call Function48ab5 - push af - cp $f0 - jr z, .asm_48994 - cp $f - jr nz, .asm_48988 - ld a, [wd002] - set 7, a - and $cf - ld [wd002], a -.asm_48988 - hlcoord 11, 10 - ld b, $0 - ld c, d - add hl, bc - ld b, $3 - call Function48c11 -.asm_48994 - call WaitBGMap - pop af - pop bc - jr nc, asm_48922 - jr nz, .asm_489b1 - pop bc - ld a, b - ld [wd475], a - ld a, c - ld [wd476], a - pop bc - ld a, b - ld [wd477], a - ld a, c - ld [wd478], a - jr .asm_489c5 -.asm_489b1 - push af - ld a, [wd479] - set 0, a - ld [wd479], a - ld a, [wd003] - set 3, a - ld [wd003], a - pop af - pop bc - pop bc -.asm_489c5 - push af - push bc - push de - push hl - ld a, $1 - call Function1ff8 - pop hl - pop de - pop bc - pop af - call ExitMenu - hlcoord 11, 10 - call Function489ea - hlcoord 11, 9 - lb bc, 1, 8 - call ClearBox - pop af - ld [hInMenu], a - jp Function4840c - -Function489ea: ; 489ea (12:49ea) - push de - ld a, [wd475] - and $f - call Function48444 - ld a, [wd476] - and $f0 - swap a - inc hl - call Function48444 - ld a, [wd476] - and $f - inc hl - call Function48444 - inc hl - ld de, String_48a38 - call PlaceString - ld a, [wd477] - and $f0 - swap a - inc hl - call Function48444 - ld a, [wd477] - and $f - inc hl - call Function48444 - ld a, [wd478] - and $f0 - swap a - inc hl - call Function48444 - ld a, [wd478] - and $f - inc hl - call Function48444 - pop de - ret -; 48a38 (12:4a38) - -String_48a38: ; 48a38 - db "-@" -; 48a3a - -Function48a3a: ; 48a3a (12:4a3a) - ld hl, MenuDataHeader_0x48a9c - call LoadMenuDataHeader - call Function4873c - ld a, $a - ld [wcfa1], a - ld a, $b - ld [wcfa2], a - ld a, $1 - ld [MenuSelection2], a - hlcoord 10, 8 - ld b, $4 - ld c, $8 - call Function48cdc - hlcoord 12, 10 - ld de, String_48aa1 - call PlaceString - call Function1bc9 - push af - call PlayClickSFX - call ExitMenu - pop af - bit 1, a - jp nz, Function48a9a - ld a, [MenuSelection2] - cp $1 - jr z, .asm_48a98 - ld a, [wd003] - set 3, a - ld [wd003], a - ld a, [wd479] - res 0, a - ld [wd479], a - xor a - ld bc, $4 - ld hl, wd475 - call ByteFill - jr Function48a9a -.asm_48a98 - and a - ret - -Function48a9a: ; 48a9a (12:4a9a) - scf - ret -; 48a9c (12:4a9c) - -MenuDataHeader_0x48a9c: ; 0x48a9c - db $40 ; flags - db 08, 10 ; start coords - db 13, 19 ; end coord - -String_48aa1: ; 48aa1 - db "Tell Now" - next "Tell Later@" -; 48ab5 - - -Function48ab5: ; 48ab5 (12:4ab5) - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Function48c0f - ld a, [hJoyPressed] - and B_BUTTON - jp nz, Function48c0d - ld a, d - and a - jr z, .asm_48adf - cp $1 - jr z, .asm_48ae7 - cp $2 - jr z, .asm_48af1 - cp $3 - jr z, .asm_48af9 - cp $4 - jr z, .asm_48b03 - cp $5 - jr z, .asm_48b0b - cp $6 - jr .asm_48b15 -.asm_48adf - ld hl, wd475 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48ae7 - ld hl, wd476 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48af1 - ld hl, wd476 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48af9 - ld hl, wd477 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48b03 - ld hl, wd477 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48b0b - ld hl, wd478 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48b15 - ld hl, wd478 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48b1d - push hl - push af - ld e, $0 - hlcoord 11, 10 - ld a, d -.asm_48b25 - and a - jr z, .asm_48b2c - inc e - dec a - jr .asm_48b25 -.asm_48b2c - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_48b8d - ld a, [hl] - and D_DOWN - jr nz, .asm_48b55 - ld a, [hl] - and D_LEFT - jp nz, Function48bd7 - ld a, [hl] - and D_RIGHT - jr nz, .asm_48b9d - hlcoord 11, 10 - call Function489ea - ld a, [wd002] - bit 7, a - jr nz, .asm_48b51 -.asm_48b51 - pop bc - pop bc - and a - ret -.asm_48b55 - pop af - ld b, a - and $f - and a - ld a, b - jr nz, .asm_48b61 - and $f0 - add $a -.asm_48b61 - dec a -.asm_48b62 - push de - push af - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop af - pop de - hlcoord 11, 10 - ld b, a - ld a, d - cp $3 - jr c, .asm_48b7a - inc hl -.asm_48b7a - ld a, b - pop hl - bit 7, a - jr z, .asm_48b85 - call Function48c4d - jr .asm_48b88 -.asm_48b85 - call Function48c5a -.asm_48b88 - ld a, $f0 - jp Function48c00 -.asm_48b8d - pop af - ld b, a - and $f - cp $9 - ld a, b - jr c, .asm_48b9a - and $f0 - add $ff -.asm_48b9a - inc a - jr .asm_48b62 -.asm_48b9d - push de - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop de - ld a, d - cp $6 - jr nc, .asm_48baf - inc d -.asm_48baf - pop af - pop hl - ld b, a - ld a, d - cp $6 - ld a, b - jr z, .asm_48bc4 - bit 7, a - jr nz, .asm_48bc4 - inc hl - ld a, [hl] - swap a - and $f - jr asm_48bc7 -.asm_48bc4 - ld a, [hl] - and $f - -asm_48bc7: ; 48bc7 (12:4bc7) - hlcoord 11, 10 - push af - ld a, d - cp $3 - pop bc - ld a, b - jr c, .asm_48bd3 - inc hl -.asm_48bd3 - ld a, $f - jr Function48c00 - -Function48bd7: ; 48bd7 (12:4bd7) - push de - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop de - ld a, d - and a - pop af - pop hl - ld b, a - ld a, d - and a - ld a, b - jr z, .asm_48bf3 - bit 7, a - jr z, .asm_48bf8 - dec d - dec hl -.asm_48bf3 - ld a, [hl] - and $f - jr asm_48bc7 -.asm_48bf8 - dec d - ld a, [hl] - swap a - and $f - jr asm_48bc7 - -Function48c00: ; 48c00 (12:4c00) - push af - hlcoord 11, 10 - call Function489ea - ld a, $1 - and a - pop bc - ld a, b - ret - -Function48c0d: ; 48c0d (12:4c0d) - xor a - and a - -Function48c0f: ; 48c0f (12:4c0f) - scf - ret - -Function48c11: ; 48c11 (12:4c11) - ld a, [wd002] - bit 7, a - jr z, .asm_48c20 - ld a, d - cp $3 - jr c, .asm_48c1e - inc hl -.asm_48c1e - ld [hl], $7f -.asm_48c20 - ld a, [wd002] - swap a - and $3 - inc a - cp b - jr nz, .asm_48c40 - ld a, [wd002] - bit 7, a - jr z, .asm_48c3a - res 7, a - ld [wd002], a - xor a - jr .asm_48c40 -.asm_48c3a - set 7, a - ld [wd002], a - xor a -.asm_48c40 - swap a - ld b, a - ld a, [wd002] - and $cf - or b - ld [wd002], a - ret - -Function48c4d: ; 48c4d (12:4c4d) - swap a - and $f0 - push af - ld a, [hl] - and $f - ld [hl], a - pop af - or [hl] - ld [hl], a - ret - -Function48c5a: ; 48c5a (12:4c5a) - push af - ld a, [hl] - and $f0 - ld [hl], a - pop af - or [hl] - ld [hl], a - ret - -Function48c63: ; 48c63 - ld a, "@" - ld [de], a - ld a, c - cp $30 - jr nc, .asm_48c8c - and a - jr z, .asm_48c8c - dec c - push de - ld h, d - ld l, e - ld a, "@" - ld b, 7 -.asm_48c76 - ld [hli], a - dec b - jr nz, .asm_48c76 - ld hl, Prefectures - ld a, c - call GetNthString -.asm_48c81 - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - cp "@" - jr nz, .asm_48c81 - and a - pop de - ret - -.asm_48c8c - scf - ret -; 48c8e - -Function48c8e: ; 48c8e - ld hl, wd02a - ld d, h - ld e, l - callba Function48c63 - hlcoord 10, 7 - call PlaceString - call WaitBGMap - ret -; 48ca3 - -Function48ca3: ; 48ca3 - push af - push bc - push de - push hl - ld b, 0 - ld c, 0 - ld d, 0 -.asm_48cad - cp 100 - jr c, .asm_48cb6 - sub 100 - inc b - jr .asm_48cad - -.asm_48cb6 - cp 10 - jr c, .asm_48cbf - sub 10 - inc c - jr .asm_48cb6 - -.asm_48cbf - cp 1 - jr c, .asm_48cc7 - dec a - inc d - jr .asm_48cbf - -.asm_48cc7 - ld a, b - call Function48444 - inc hl - ld a, c - call Function48444 - inc hl - ld a, d - call Function48444 - pop hl - pop de - pop bc - pop af - ret -; 48cda - -Function48cda: ; 48cda (12:4cda) - ld h, d - ld l, e - -Function48cdc: ; 48cdc (12:4cdc) - push bc - push hl - call Function48cfd - pop hl - pop bc - ld de, AttrMap - TileMap - add hl, de -rept 2 - inc b -endr -rept 2 - inc c -endr - ld a, $0 -.asm_48ced - push bc - push hl -.asm_48cef - ld [hli], a - dec c - jr nz, .asm_48cef - pop hl - ld de, $14 - add hl, de - pop bc - dec b - jr nz, .asm_48ced - ret - -Function48cfd: ; 48cfd (12:4cfd) - push hl - ld a, $4 - ld [hli], a - inc a - call Function48d2a - inc a - ld [hl], a - pop hl - ld de, $14 - add hl, de -.asm_48d0c - push hl - ld a, $7 - ld [hli], a - ld a, $7f - call Function48d2a - ld [hl], $8 - pop hl - ld de, $14 - add hl, de - dec b - jr nz, .asm_48d0c - ld a, $9 - ld [hli], a - ld a, $a - call Function48d2a - ld [hl], $b - ret - -Function48d2a: ; 48d2a (12:4d2a) - ld d, c -.asm_48d2b - ld [hli], a - dec d - jr nz, .asm_48d2b - ret - -Function48d30: ; 48d30 (12:4d30) - ld hl, wd475 - call Function48d4a - ld hl, wd477 - call Function48d4a - ret - -Function48d3d: ; 48d3d (12:4d3d) - ld hl, wd475 - call Function48d94 - ld hl, wd477 - call Function48d94 - ret - -Function48d4a: ; 48d4a (12:4d4a) - inc hl - ld a, [hl] - ld b, a - and $f - ld c, a - srl b - srl b - srl b - srl b - push bc - ld c, 10 - ld a, b - call SimpleMultiply - pop bc - add c - ld [hld], a - xor a - ld [hMultiplicand + 0], a - ld [hMultiplicand + 1], a - ld a, [hl] - srl a - srl a - srl a - srl a - ld c, 10 - call SimpleMultiply - ld b, a - ld a, [hli] - and $f - add b - ld [hMultiplicand + 2], a - ld a, 100 - ld [hMultiplier], a - call Multiply - ld a, [hProduct + 2] - ld b, a - ld a, [hProduct + 3] - ld c, a - ld e, [hl] - add e - ld c, a - ld a, b - adc $0 - ld b, a - ld a, c - ld [hld], a - ld [hl], b - ret - -Function48d94: ; 48d94 (12:4d94) - xor a - ld [hDividend + 0], a - ld [hDividend + 1], a - ld a, [hli] - ld [hDividend + 0], a - ld a, [hl] - ld [hDividend + 1], a - ld a, 100 - ld [hDivisor], a - ld b, 2 - call Divide - ld a, [hDivisor] - ld c, $a - call SimpleDivide - sla b - sla b - sla b - sla b - or b - ld [hld], a - ld a, [hQuotient + 2] - ld c, 10 - call SimpleDivide - sla b - sla b - sla b - sla b - or b - ld [hl], a - ret +INCLUDE "misc/mobile_12.asm" InitGender: ; 48dcb (12:4dcb) call Function48e14 @@ -22806,7 +20679,7 @@ PackFGFX: ; 48e9b INCBIN "gfx/misc/pack_f.2bpp" ; 4925b -Function4925b: ; 4925b +Special_MoveTutor: ; 4925b call FadeToMenu call ClearBGPalettes call ClearScreen @@ -23542,1606 +21415,8 @@ Unknown_4985a: ; unreferenced db $a8, $00, $b5, $b0, $de, $e8, $fc, $1c db $ba, $66, $f7, $0e, $ba, $5e, $43, $bd -Special_CelebiShrineEvent: ; 4989a - call DelayFrame - ld a, [VramState] - push af - xor a - ld [VramState], a - call LoadCelebiGFX - lb de, $07, $50 - ld a, SPRITE_ANIM_INDEX_2C - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $84 - ld hl, $2 - add hl, bc - ld [hl], $1f - ld hl, $f - add hl, bc - ld a, $80 - ld [hl], a - ld a, $a0 - ld [wcf64], a - ld d, $0 -.loop - ld a, [wJumptableIndex] - bit 7, a - jr nz, .done - push bc - call Function49bae - inc d - push de - ld a, $90 - ld [wc3b5], a - callba Function8cf7a - call Function49935 - ld c, 2 - call DelayFrames - pop de - pop bc - jr .loop - -.done - pop af - ld [VramState], a - call Function498f9 - call Function49bf3 - ret -; 498f9 - -Function498f9: ; 498f9 - ld hl, Sprites + 2 - xor a - ld c, $4 -.loop - ld [hli], a -rept 3 - inc hl -endr - inc a - dec c - jr nz, .loop - ld hl, Sprites + $10 - ld bc, $90 - xor a - call ByteFill - ret -; 49912 - -LoadCelebiGFX: ; 49912 - callba Function8cf53 - ld de, SpecialCelebiLeafGFX - ld hl, VTiles1 - lb bc, BANK(SpecialCelebiLeafGFX), 4 - call Request2bpp - ld de, SpecialCelebiGFX - ld hl, VTiles1 tile $04 - lb bc, BANK(SpecialCelebiGFX), $10 - call Request2bpp - xor a - ld [wJumptableIndex], a - ret -; 49935 - -Function49935: ; 49935 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_4993e - dec [hl] - ret - -.asm_4993e - ld hl, wJumptableIndex - set 7, [hl] - ret -; 49944 - -Function49944: ; 49944 - ld hl, wcf65 - ld a, [hl] - inc [hl] - and $7 - ret nz - ld a, [hl] - and $18 - sla a - add $40 - ld d, a - ld e, $0 - ld a, SPRITE_ANIM_INDEX_18 ; fly land - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $80 - ret -; 49962 - -SpecialCelebiLeafGFX: ; 49962 -INCBIN "gfx/special/celebi/leaf.2bpp" -SpecialCelebiGFX: ; 499a2 -INCBIN "gfx/special/celebi/1.2bpp" -INCBIN "gfx/special/celebi/2.2bpp" -INCBIN "gfx/special/celebi/3.2bpp" -INCBIN "gfx/special/celebi/4.2bpp" - - -Function49aa2: ; 49aa2 (12:5aa2) - ld hl, $6 - add hl, bc - ld a, [hl] - push af - ld hl, $5 - add hl, bc - ld a, [hl] - cp $52 - jp nc, Function49b30 - ld hl, $5 - add hl, bc - inc [hl] - ld hl, $f - add hl, bc - ld a, [hl] - ld d, a - cp $3a - jr c, .asm_49ac6 - jr z, .asm_49ac6 - sub $3 - ld [hl], a -.asm_49ac6 - ld hl, $e - add hl, bc - ld a, [hl] - inc [hl] - call Function49b3b - ld hl, $6 - add hl, bc - ld [hl], a - ld d, a - ld hl, $4 - add hl, bc - add [hl] - cp $5c - jr nc, .asm_49ae2 - cp $44 - jr nc, .asm_49b0d -.asm_49ae2 - pop af - push af - cp d - jr nc, .asm_49af2 - ld hl, $4 - add hl, bc - add [hl] - cp $50 - jr c, .asm_49b05 - jr .asm_49afb -.asm_49af2 - ld hl, $4 - add hl, bc - add [hl] - cp $50 - jr nc, .asm_49b05 -.asm_49afb - ld hl, $5 - add hl, bc - ld a, [hl] - sub $2 - ld [hl], a - jr .asm_49b0d -.asm_49b05 - ld hl, $5 - add hl, bc - ld a, [hl] - add $1 - ld [hl], a -.asm_49b0d - pop af - ld hl, $4 - add hl, bc - add [hl] - cp $50 - jr c, .asm_49b26 - cp $e6 - jr nc, .asm_49b26 - ld hl, $1 - add hl, bc - ld a, $41 - call Function3b3c - jr .asm_49b2f -.asm_49b26 - ld hl, $1 - add hl, bc - ld a, $40 - call Function3b3c -.asm_49b2f - ret - -Function49b30: ; 49b30 (12:5b30) - pop af - ld hl, $1 - add hl, bc - ld a, $40 - call Function3b3c - ret - -Function49b3b: ; 49b3b (12:5b3b) - add $10 - and $3f - cp $20 - jr nc, .asm_49b48 - call Function49b52 - ld a, h - ret -.asm_49b48 - and $1f - call Function49b52 - ld a, h - xor $ff - inc a - ret - -Function49b52: ; 49b52 (12:5b52) - ld e, a - ld a, d - ld d, $0 - ld hl, Unknown_49b6e -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld hl, 0 -.asm_49b61 - srl a - jr nc, .asm_49b66 - add hl, de -.asm_49b66 - sla e - rl d - and a - jr nz, .asm_49b61 - ret -; 49b6e (12:5b6e) - -Unknown_49b6e: ; 49b6e - sine_wave $100 -; 49bae - -Function49bae: ; 49bae - push hl - push bc - push de - ld a, d - ld d, $3 - ld e, d - cp $0 - jr z, .asm_49bd0 - cp d - jr z, .asm_49bd4 - call Function49bed - cp d - jr z, .asm_49bd8 - call Function49bed - cp d - jr z, .asm_49bdc - call Function49bed - cp d - jr c, .asm_49be9 - jr .asm_49be5 - -.asm_49bd0 - ld a, $84 - jr .asm_49bde - -.asm_49bd4 - ld a, $88 - jr .asm_49bde - -.asm_49bd8 - ld a, $8c - jr .asm_49bde - -.asm_49bdc - ld a, $90 - -.asm_49bde - ld hl, $3 - add hl, bc - ld [hl], a - jr .asm_49be9 - -.asm_49be5 - pop de - ld d, $ff - push de - -.asm_49be9 - pop de - pop bc - pop hl - ret -; 49bed - -Function49bed: ; 49bed - push af - ld a, d - add e - ld d, a - pop af - ret -; 49bf3 - -Function49bf3: ; 49bf3 - ld a, BATTLETYPE_CELEBI - ld [BattleType], a - ret -; 49bf9 - -Function49bf9: ; 49bf9 - ld a, [wBattleResult] - bit 6, a - jr z, .asm_49c07 - ld a, $1 - ld [ScriptVar], a - jr .asm_49c0b - -.asm_49c07 - xor a - ld [ScriptVar], a - -.asm_49c0b - ret -; 49c0c - -GFX_49c0c: ; 49c0c -INCBIN "gfx/unknown/049c0c.2bpp" -; 49cdc - -MainMenu: ; 49cdc - xor a - ld [wc2d7], a - call Function49ed0 - ld b, SCGB_08 - call GetSGBLayout - call SetPalettes - ld hl, GameTimerPause - res 0, [hl] - call Function49da4 - ld [wcf76], a - call Function49e09 - ld hl, MenuDataHeader_0x49d14 - call LoadMenuDataHeader - call Function49de4 - call WriteBackup - jr c, .quit - call ClearTileMap - ld a, [MenuSelection] - ld hl, Jumptable_49d60 - rst JumpTable - jr MainMenu - -.quit - ret -; 49d14 - -MenuDataHeader_0x49d14: ; 49d14 - db $40 ; flags - db 00, 00 ; start coords - db 07, 16 ; end coords - dw MenuData2_0x49d1c - db 1 ; default option -; 49d1c - -MenuData2_0x49d1c: ; 49d1c - db $80 ; flags - db 0 ; items - dw MainMenuItems - dw Function1f79 - dw MainMenuText -; 49d20 - -MainMenuText: ; 49d24 - db "CONTINUE@" - db "NEW GAME@" - db "OPTION@" - db "MYSTERY GIFT@" - db "MOBILE@" - db "MOBILE STUDIUM@" - -Jumptable_49d60: ; 0x49d60 - dw MainMenu_Continue - dw MainMenu_NewGame - dw MainMenu_Options - dw MainMenu_MysteryGift - dw MainMenu_Mobile - dw MainMenu_MobileStudium -; 0x49d6c - -CONTINUE EQU 0 -NEW_GAME EQU 1 -OPTION EQU 2 -MYSTERY_GIFT EQU 3 -MOBILE EQU 4 -MOBILE_STUDIUM EQU 5 - -MainMenuItems: - -NewGameMenu: ; 0x49d6c - db 2 - db NEW_GAME - db OPTION - db $ff - -ContinueMenu: ; 0x49d70 - db 3 - db CONTINUE - db NEW_GAME - db OPTION - db $ff - -MobileMysteryMenu: ; 0x49d75 - db 5 - db CONTINUE - db NEW_GAME - db OPTION - db MYSTERY_GIFT - db MOBILE - db $ff - -MobileMenu: ; 0x49d7c - db 4 - db CONTINUE - db NEW_GAME - db OPTION - db MOBILE - db $ff - -MobileStudiumMenu: ; 0x49d82 - db 5 - db CONTINUE - db NEW_GAME - db OPTION - db MOBILE - db MOBILE_STUDIUM - db $ff - -MysteryMobileStudiumMenu: ; 0x49d89 - db 6 - db CONTINUE - db NEW_GAME - db OPTION - db MYSTERY_GIFT - db MOBILE - db MOBILE_STUDIUM - db $ff - -MysteryMenu: ; 0x49d91 - db 4 - db CONTINUE - db NEW_GAME - db OPTION - db MYSTERY_GIFT - db $ff - -MysteryStudiumMenu: ; 0x49d97 - db 5 - db CONTINUE - db NEW_GAME - db OPTION - db MYSTERY_GIFT - db MOBILE_STUDIUM - db $ff - -StudiumMenu: ; 0x49d9e - db 4 - db CONTINUE - db NEW_GAME - db OPTION - db MOBILE_STUDIUM - db $ff - - -Function49da4: ; 49da4 - nop - nop - nop - ld a, [wcfcd] - and a - jr nz, .next - ld a, $0 - ret - -.next - ld a, [hCGB] - cp $1 - ld a, $1 - ret nz - ld a, BANK(s0_abe5) - call GetSRAMBank - ld a, [s0_abe5] - cp $ff - call CloseSRAM - jr nz, .done - ld a, [StatusFlags] - bit 7, a - ld a, $1 - jr z, .ok - jr .ok - -.ok - jr .ok2 - -.ok2 - ld a, $1 - ret - -.done - ld a, [StatusFlags] - bit 7, a - jr z, .ok3 - jr .ok3 - -.ok3 - jr .ok4 - -.ok4 - ld a, $6 - ret -; 49de4 - -Function49de4: ; 49de4 - call SetUpMenu -.asm_49de7 - call Function49e09 - ld a, [wcfa5] - set 5, a - ld [wcfa5], a - call Function1f1a - ld a, [wcf73] - cp $2 - jr z, .asm_49e07 - cp $1 - jr z, .asm_49e02 - jr .asm_49de7 - -.asm_49e02 - call PlayClickSFX - and a - ret - -.asm_49e07 - scf - ret -; 49e09 - -Function49e09: ; 49e09 - ld a, [wcfcd] - and a - ret z - xor a - ld [hBGMapMode], a - call Function49e27 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call Function49e3d - pop af - ld [Options], a - ld a, $1 - ld [hBGMapMode], a - ret -; 49e27 - - -Function49e27: ; 49e27 - call Function6e3 - and $80 - jr nz, .asm_49e39 - hlcoord 0, 14 - ld b, $2 - ld c, $12 - call TextBox - ret - -.asm_49e39 - call SpeechTextBox - ret -; 49e3d - - -Function49e3d: ; 49e3d - ld a, [wcfcd] - and a - ret z - call Function6e3 - and $80 - jp nz, Function49e75 - call UpdateTime - call GetWeekday - ld b, a - decoord 1, 15 - call Function49e91 - decoord 4, 16 - ld a, [hHours] - ld c, a - callba PrintHour - ld [hl], ":" - inc hl - ld de, hMinutes - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ret -; 49e70 - -; 49e70 - db "min.@" -; 49e75 - -Function49e75: ; 49e75 - hlcoord 1, 14 - ld de, .TimeNotSet - call PlaceString - ret -; 49e7f - -.TimeNotSet ; 49e7f - db "TIME NOT SET@" -; 49e8c - -UnknownText_0x49e8c: ; 49e8c - text_jump UnknownText_0x1c5182 - db "@" -; 49e91 - -Function49e91: ; 49e91 - push de - ld hl, .Days - ld a, b - call GetNthString - ld d, h - ld e, l - pop hl - call PlaceString - ld h, b - ld l, c - ld de, .Day - call PlaceString - ret -; 49ea8 - -.Days - db "SUN@" - db "MON@" - db "TUES@" - db "WEDNES@" - db "THURS@" - db "FRI@" - db "SATUR@" -.Day - db "DAY@" -; 49ed0 - -Function49ed0: ; 49ed0 - xor a - ld [hMapAnims], a - call ClearTileMap - call LoadFontsExtra - call LoadStandardFont - call ResetTextRelatedRAM - ret -; 49ee0 - - -MainMenu_NewGame: ; 49ee0 - callba NewGame - ret -; 49ee7 - -MainMenu_Options: ; 49ee7 - callba OptionsMenu - ret -; 49eee - -MainMenu_Continue: ; 49eee - callba Continue - ret -; 49ef5 - -MainMenu_MysteryGift: ; 49ef5 - callba MysteryGift - ret -; 49efc - -MainMenu_Mobile: ; 49efc - call ClearBGPalettes - ld a, MUSIC_MOBILE_ADAPTER_MENU - ld [wMapMusic], a - ld de, MUSIC_MOBILE_ADAPTER_MENU - call Function4a6c5 -Function49f0a: ; 49f0a - call ClearBGPalettes - call Function4a3a7 - call Function4a492 - call ClearBGPalettes -Function49f16: ; 49f16 - call Function4a071 - ld c, 12 - call DelayFrames - hlcoord 4, 0 - ld b, $a - ld c, $a - call Function48cdc - hlcoord 6, 2 - ld de, MobileString1 - call PlaceString - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - xor a - ld de, String_0x49fe9 - hlcoord 1, 14 - call PlaceString - call Function3200 - call SetPalettes - call Function1bc9 - ld hl, MenuSelection2 - ld b, [hl] - push bc - jr .asm_49f5d - -.asm_49f55 - call Function1bd3 - ld hl, MenuSelection2 - ld b, [hl] - push bc - -.asm_49f5d - bit 0, a - jr nz, .asm_49f67 - bit 1, a - jr nz, .asm_49f84 - jr .asm_49f97 - -.asm_49f67 - ld hl, MenuSelection2 - ld a, [hl] - cp $1 - jp z, Function4a098 - cp $2 - jp z, Function4a0b9 - cp $3 - jp z, Function4a0c2 - cp $4 - jp z, Function4a100 - ld a, $1 - call Function1ff8 - -.asm_49f84 - pop bc - call ClearBGPalettes - call ClearTileMap - ld a, MUSIC_MAIN_MENU - ld [wMapMusic], a - ld de, MUSIC_MAIN_MENU - call Function4a6c5 - ret - -.asm_49f97 - ld hl, MenuSelection2 - ld a, [hl] - dec a - ld hl, MobileStrings2 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - jp .asm_49fb7 - -.asm_49fb7 - call Function4a071 - pop bc - ld hl, MenuSelection2 - ld [hl], b - ld b, $a - ld c, $1 - hlcoord 5, 1 - call ClearBox - jp .asm_49f55 -; 49fcc - - -MobileString1: ; 49fcc - db "めいしフ,ルダー" - next "あいさつ" - next "プロフィール" - next "せ", $1e, "い" - next "もどる" - db "@" -; 49fe9 - - -MobileStrings2: - -String_0x49fe9: ; 49fe9 - db "めいし¯つくったり" - next "ほぞんしておける フ,ルダーです@" -; 4a004 - -String_0x4a004: ; 4a004 - db "モバイルたいせんや じぶんのめいしで" - next "つかう あいさつ¯つくります@" -; 4a026 - -String_0x4a026: ; 4a026 - db "あなた%じゅうしょや ねんれいの" - next "せ", $1e, "い¯かえられます@" -; 4a042 - -String_0x4a042: ; 4a042 - db "モバイルセンター", $1d, "せつぞくするとき" - next "ひつような こと¯きめます@" -; 4a062 - -String_0x4a062: ; 4a062 - db "まえ%がめん ", $1d, "もどります" - next "@" -; 4a071 - - - -Function4a071: ; 4a071 (12:6071) - ld hl, wcfa1 - ld a, $2 - ld [hli], a - ld a, $5 - ld [hli], a - ld a, $5 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - add $2 - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - ret - -Function4a098: ; 4a098 (12:6098) - ld a, $2 - call Function1ff8 - call Function1bee - call WaitBGMap - call LoadStandardMenuDataHeader - callba Function89de0 - call Call_ExitMenu - call Function49351 - call Function4a485 - pop bc - jp Function49f16 - -Function4a0b9: ; 4a0b9 (12:60b9) - ld a, $2 - call Function1ff8 - pop bc - jp Function4a4c4 - -Function4a0c2: ; 4a0c2 (12:60c2) - ld a, $2 - call Function1ff8 - ld a, BANK(sPlayerData) - call GetSRAMBank - ld hl, sPlayerData + PlayerName - wPlayerData - ld de, PlayerName - ld bc, $6 - call CopyBytes - call CloseSRAM - callba Function150b9 - ld c, 2 - call DelayFrames - ld c, $1 - call Function4802f - push af - call ClearBGPalettes - pop af - and a - jr nz, .asm_4a0f9 - callba Function1509a -.asm_4a0f9 - ld c, 5 - call DelayFrames - jr asm_4a111 - -Function4a100: ; 4a100 (12:6100) - ld a, $2 - call Function1ff8 - call ClearBGPalettes - call Function4a13b - call ClearBGPalettes - call ClearTileMap - -asm_4a111: ; 4a111 (12:6111) - pop bc - call LoadFontsExtra - jp Function49f0a - -Function4a118: ; 4a118 (12:6118) - ld hl, wcfa1 - ld a, $1 - ld [hli], a - ld a, $d - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $2 - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - ret - -Function4a13b: ; 4a13b (12:613b) - call Function4a3a7 - call Function4a492 - call Function4a373 - ld c, 10 - call DelayFrames - -Function4a149: ; 4a149 (12:6149) - hlcoord 1, 2 - ld b, $6 - ld c, $10 - call Function48cdc - hlcoord 3, 4 - ld de, String_4a1ef - call PlaceString - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - ld a, [MenuSelection2] - dec a - ld hl, Strings_4a23d - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - callba Function104148 - call SetPalettes - call Function1bc9 - ld hl, MenuSelection2 - ld b, [hl] - push bc - jr asm_4a19d - -Function4a195: ; 4a195 (12:6195) - call Function1bd3 - ld hl, MenuSelection2 - ld b, [hl] - push bc - -asm_4a19d: ; 4a19d (12:619d) - bit 0, a - jr nz, .asm_4a1a7 - bit 1, a - jr nz, .asm_4a1ba - jr .asm_4a1bc -.asm_4a1a7 - ld hl, MenuSelection2 - ld a, [hl] - cp $1 - jp z, Function4a20e - cp $2 - jp z, Function4a221 - ld a, $1 - call Function1ff8 -.asm_4a1ba - pop bc - ret -.asm_4a1bc - ld hl, MenuSelection2 - ld a, [hl] - dec a - ld hl, Strings_4a23d - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - jr .asm_4a1db -.asm_4a1db - call Function4a373 - pop bc - ld hl, MenuSelection2 - ld [hl], b - lb bc, 6, 1 - hlcoord 2, 3 - call ClearBox - jp Function4a195 -; 4a1ef (12:61ef) - -String_4a1ef: ; 4a1ef - db "モバイルセンター¯えらぶ" - next "ログインパスワード¯いれる" - next "もどる@" -; 4a20e - -Function4a20e: ; 4a20e (12:620e) - ld a, $1 - call Function1ff8 - callba Function1719c8 - call ClearBGPalettes - call DelayFrame - jr Function4a239 - -Function4a221: ; 4a221 (12:6221) - ld a, $1 - call Function1ff8 - call Function4a28a - jr c, Function4a239 - call Function4a373 - ld a, $2 - ld [MenuSelection2], a - jr .asm_4a235 -.asm_4a235 - pop bc - jp Function4a149 - -Function4a239: ; 4a239 (12:6239) - pop bc - jp Function4a13b -; 4a23d (12:623d) - -Strings_4a23d: ; 4a23d - db "いつも せつぞく¯する" - next "モバイルセンター¯えらびます@" - - db "モバイルセンター", $1d, "せつぞくするとき" - next "つかうパスワード¯ほぞんできます@" - - db "まえ%がめん ", $1d, "もどります@" - - db "@" -; 4a28a - -Function4a28a: ; 4a28a (12:628a) - hlcoord 2, 3 - lb bc, 6, 1 - ld a, " " - call Function4a6d8 - call Function1bee - call WaitBGMap - call LoadStandardMenuDataHeader - ld a, $5 - call GetSRAMBank - ld a, [$aa4b] - call CloseSRAM - and a - jr z, .asm_4a2df - hlcoord 12, 0 - ld b, $5 - ld c, $6 - call Function48cdc - hlcoord 14, 1 - ld de, String_4a34b - call PlaceString - callba Function104148 - call Function4a118 - call Function1bd3 - push af - call PlayClickSFX - pop af - bit 1, a - jr nz, .asm_4a33b - ld a, [MenuSelection2] - cp $2 - jr z, .asm_4a2f0 - cp $3 - jr z, .asm_4a33b -.asm_4a2df - callba Function11765d - call ClearBGPalettes - call Call_ExitMenu - call LoadFontsExtra - scf - ret -.asm_4a2f0 - call Function1bee - ld hl, UnknownText_0x4a358 - call PrintText - hlcoord 14, 7 - ld b, $3 - ld c, $4 - call TextBox - callba Function104148 - ld hl, MenuDataHeader_0x4a362 - call LoadMenuDataHeader - call InterpretMenu2 - bit 1, a - jr nz, .asm_4a338 - ld a, [MenuSelection2] - cp $2 - jr z, .asm_4a338 - ld a, $5 - call GetSRAMBank - ld hl, $aa4b - xor a - ld bc, $11 - call ByteFill - call CloseSRAM - ld hl, UnknownText_0x4a35d - call PrintText - call JoyWaitAorB -.asm_4a338 - call ExitMenu -.asm_4a33b - call Call_ExitMenu - callba Function104148 - xor a - ret -; 4a346 (12:6346) - -MenuDataHeader_0x4a346: ; 0x4a346 - db $40 ; flags - db 00, 12 ; start coords - db 06, 19 ; end coords - -String_4a34b: ; 4a34b - db "いれなおす" - next "けす" - next "もどる@" -; 4a358 - -UnknownText_0x4a358: ; 0x4a358 - ; Delete the saved LOG-IN PASSWORD? - text_jump UnknownText_0x1c5196 - db "@" -; 0x4a35d - -UnknownText_0x4a35d: ; 0x4a35d - ; Deleted the LOG-IN PASSWORD. - text_jump UnknownText_0x1c51b9 - db "@" -; 0x4a362 - -MenuDataHeader_0x4a362: ; 0x4a362 - db $40 ; flags - db 07, 14 ; start coords - db 11, 19 ; end coords - dw MenuData2_0x4a36a - db 2 ; default option -; 0x4a36a - -MenuData2_0x4a36a: ; 0x4a36a - db $e0 ; flags - db 2 ; items - db "はい@" - db "いいえ@" -; 0x4a373 - -Function4a373: ; 4a373 (12:6373) - ld hl, wcfa1 - ld a, $4 - ld [hli], a - ld a, $2 - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - add $2 - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - ret -; 4a39a (12:639a) - -Function4a39a: ; 4a39a - call Function4a485 - call Function4a492 - call Function4a3aa - call SetPalettes - ret -; 4a3a7 - -Function4a3a7: ; 4a3a7 (12:63a7) - call Function4a485 -Function4a3aa: ; 4a3aa - hlcoord 0, 0 - lb bc, 3, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 1, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 4, 1 - ld a, $2 - call Function4a6d8 - lb bc, 1, 1 - ld a, $3 - call Function4a6d8 - lb bc, 1, 1 - ld a, " " - call Function4a6d8 - hlcoord 1, 0 - ld a, $1 - lb bc, 3, 18 - call Function4a6d8 - lb bc, 1, 18 - ld a, $0 - call Function4a6d8 - lb bc, 1, 18 - ld a, $1 - call Function4a6d8 - lb bc, 1, 18 - ld a, $2 - call Function4a6d8 - lb bc, 11, 18 - ld a, " " - call Function4a6d8 - hlcoord 19, 0 - lb bc, 3, 1 - ld a, $0 - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 1, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 4, 1 - ld a, $2 - call Function4a6d8 - lb bc, 1, 1 - ld a, $3 - call Function4a6d8 - lb bc, 1, 1 - ld a, " " - call Function4a6d8 - ret -; 4a449 (12:6449) - -Function4a449: ; 4a449 - ld bc, 3 * SCREEN_WIDTH - ld a, $0 - hlcoord 0, 0 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $1 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $0 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $1 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, $2 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, $3 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, " " - call ByteFill - ret -; 4a485 - -Function4a485: ; 4a485 (12:6485) - ld de, GFX_49c0c - ld hl, VTiles2 tile $00 - lb bc, BANK(GFX_49c0c), $d - call Get2bpp - ret - -Function4a492: ; 4a492 (12:6492) - call Function4936e - ret - - -MainMenu_MobileStudium: ; 4a496 - ld a, [StartDay] - ld b, a - ld a, [StartHour] - ld c, a - ld a, [StartMinute] - ld d, a - ld a, [StartSecond] - ld e, a - push bc - push de - callba MobileStudium - call ClearBGPalettes - pop de - pop bc - ld a, b - ld [StartDay], a - ld a, c - ld [StartHour], a - ld a, d - ld [StartMinute], a - ld a, e - ld [StartSecond], a - ret -; 4a4c4 - - -Function4a4c4: ; 4a4c4 (12:64c4) - call ClearBGPalettes - call Function4a3a7 - call Function4a492 - call Function4a680 - call ClearBGPalettes - ld c, 20 - call DelayFrames - hlcoord 2, 0 - ld b, $a - ld c, $e - call Function48cdc - hlcoord 4, 2 - ld de, String_4a5c5 - call PlaceString - hlcoord 4, 4 - ld de, String_4a5cd - call PlaceString - hlcoord 4, 6 - ld de, String_4a5da - call PlaceString - hlcoord 4, 8 - ld de, String_4a5e6 - call PlaceString - hlcoord 4, 10 - ld de, String_4a5f2 - call PlaceString - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - xor a - ld hl, Strings_4a5f6 - ld d, h - ld e, l - hlcoord 1, 14 - call PlaceString - ld a, $1 - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 16 - call PlaceString - call Function3200 - call SetPalettes - call Function1bc9 - ld hl, MenuSelection2 - ld b, [hl] - push bc - jr asm_4a54d - -Function4a545: ; 4a545 (12:6545) - call Function1bd3 - ld hl, MenuSelection2 - ld b, [hl] - push bc - -asm_4a54d: ; 4a54d (12:654d) - bit 0, a - jr nz, .asm_4a557 - bit 1, a - jr nz, .asm_4a574 - jr .asm_4a57e -.asm_4a557 - ld hl, MenuSelection2 - ld a, [hl] - cp $1 - jp z, Function4a6ab - cp $2 - jp z, Function4a6ab - cp $3 - jp z, Function4a6ab - cp $4 - jp z, Function4a6ab - ld a, $1 - call Function1ff8 -.asm_4a574 - pop bc - call ClearBGPalettes - call ClearTileMap - jp Function49f0a -.asm_4a57e - ld hl, MenuSelection2 - ld a, [hl] - dec a - add a - push af - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - pop af - inc a - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 16 - call PlaceString - jp Function4a5b0 - -Function4a5b0: ; 4a5b0 (12:65b0) - call Function4a680 - pop bc - ld hl, MenuSelection2 - ld [hl], b - ld b, $a - ld c, $1 - hlcoord 3, 1 - call ClearBox - jp Function4a545 -; 4a5c5 (12:65c5) - -String_4a5c5: ; 4a5c5 - db "じこしょうかい@" -String_4a5cd: ; 4a5cd - db "たいせん ", $4a, "はじまるとき@" -String_4a5da: ; 4a5da - db "たいせん ", $1d, "かったとき@" -String_4a5e6: ; 4a5e6 - db "たいせん ", $1d, "まけたとき@" -String_4a5f2: ; 4a5f2 - db "もどる@" -; 4a5f6 - -Strings_4a5f6: ; 4a5f6 - db "めいし や ニュース ", $1d, "のせる@" - db "あなた%あいさつです@" - db "モバイル たいせん", $4a, "はじまるとき@" - db "あいて", $1d, "みえる あいさつです@" - db "モバイル たいせんで かったとき@" - db "あいて", $1d, "みえる あいさつです@" - db "モバイル たいせんで まけたとき@" - db "あいて", $1d, "みえる あいさつです@" - db "まえ%がめん ", $1d, "もどります@" - db "@" -; 4a680 - -Function4a680: ; 4a680 (12:6680) - ld hl, wcfa1 - ld a, $2 - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $5 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - add $2 - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - xor a -rept 3 - ld [hli], a -endr - ret - -Function4a6ab: ; 4a6ab (12:66ab) - ld a, $2 - call Function1ff8 - call ClearBGPalettes - ld b, SCGB_08 - call GetSGBLayout - callba Function11c1ab - pop bc - call LoadFontsExtra - jp Function4a4c4 - -Function4a6c5: ; 4a6c5 (12:66c5) - ld a, $5 - ld [MusicFade], a - ld a, e - ld [MusicFadeIDLo], a - ld a, d - ld [MusicFadeIDHi], a - ld c, 22 - call DelayFrames - ret - -Function4a6d8: ; 4a6d8 (12:66d8) - push bc - push hl -.asm_4a6da - ld [hli], a - dec c - jr nz, .asm_4a6da - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, Function4a6d8 - ret - +INCLUDE "event/celebi.asm" +INCLUDE "engine/main_menu.asm" SpecialBeastsCheck: ; 0x4a6e8 ; Check if the player owns all three legendary beasts. @@ -34882,7 +31157,7 @@ Function8461a: ; 8461a ret ; 84688 -Function84688: ; 84688 +_PrintDiploma: ; 84688 ld a, [wcf65] push af callba Function1dd709 diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index 9e9129cad..a40bd316d 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -30,7 +30,7 @@ UnknownScript_0x198018: moveperson $b, $b, $b spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $b applymovement $b, MovementData_0x198134 @@ -40,7 +40,7 @@ UnknownScript_0x198018: UnknownScript_0x198034: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $b applymovement $b, MovementData_0x19813c diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm index 6cdf97d4f..36d06b943 100644 --- a/maps/BluesHouse.asm +++ b/maps/BluesHouse.asm @@ -37,7 +37,7 @@ UnknownScript_0x19b0de: special RestartMapMusic loadfont writetext UnknownText_0x19b296 - special Functionc472 + special PlayCurMonCry keeptextopen writetext UnknownText_0x19b2aa closetext diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm index 20c30336d..2b78c59c9 100644 --- a/maps/BurnedTower1F.asm +++ b/maps/BurnedTower1F.asm @@ -49,7 +49,7 @@ UnknownScript_0x185c0d: UnknownScript_0x185c25: showemote EMOTE_SHOCK, $4, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 spriteface $4, RIGHT pause 15 @@ -98,7 +98,7 @@ UnknownScript_0x185c80: loadmovesprites dotrigger $2 setevent EVENT_RIVAL_BURNED_TOWER - special Functionc48f + special Special_FadeOutMusic pause 15 earthquake 50 showemote EMOTE_SHOCK, PLAYER, 15 diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm index 7591cb907..e876c09d8 100644 --- a/maps/CeladonDeptStore6F.asm +++ b/maps/CeladonDeptStore6F.asm @@ -23,7 +23,7 @@ CeladonVendingMachine: loadfont writetext CeladonVendingText .Start - special Function24ae8 + special PlaceMoneyTopRightOW loadmenudata .MenuData interpretmenu2 writebackup diff --git a/maps/CeladonMansion3F.asm b/maps/CeladonMansion3F.asm index 9a7858d40..575137bc6 100644 --- a/maps/CeladonMansion3F.asm +++ b/maps/CeladonMansion3F.asm @@ -22,7 +22,7 @@ UnknownScript_0x7167e: waitbutton writetext UnknownText_0x71760 keeptextopen - special Functionc49f + special Diploma writetext UnknownText_0x71763 closetext loadmovesprites @@ -43,7 +43,7 @@ UnknownScript_0x716a4: writetext UnknownText_0x717d8 yesorno iffalse UnknownScript_0x716b0 - special Functionc4ac + special PrintDiploma loadmovesprites end diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index 026aea8fa..2731b774b 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -103,7 +103,7 @@ UnknownScript_0x19c0aa: UnknownScript_0x19c0ae: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $3 applymovement $3, MovementData_0x19c1ce diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm index a4986e0fa..878369731 100644 --- a/maps/CianwoodCity.asm +++ b/maps/CianwoodCity.asm @@ -66,7 +66,7 @@ UnknownScript_0x1a001e: applymovement $c, MovementData_0x1a00ec disappear $c pause 20 - special Functionc48f + special Special_FadeOutMusic playmapmusic pause 10 .Done diff --git a/maps/DragonShrine.asm b/maps/DragonShrine.asm index 67d365378..cc89ac754 100644 --- a/maps/DragonShrine.asm +++ b/maps/DragonShrine.asm @@ -130,7 +130,7 @@ DragonShrineTestScript: writetext UnknownText_0x18d916 closetext loadmovesprites - special Functionc48f + special Special_FadeOutMusic applymovement $5, MovementData_0x18d2da loadfont writetext UnknownText_0x18d974 diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm index 96b735cd2..e47ea7516 100644 --- a/maps/DragonsDenB1F.asm +++ b/maps/DragonsDenB1F.asm @@ -70,7 +70,7 @@ UnknownScript_0x18c8f4: loadmovesprites UnknownScript_0x18c8f9: applymovement $3, MovementData_0x18c9b3 - special Functionc48f + special Special_FadeOutMusic pause 30 special RestartMapMusic disappear $3 diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm index 260d7011a..fc711f366 100644 --- a/maps/GoldenrodCity.asm +++ b/maps/GoldenrodCity.asm @@ -61,21 +61,21 @@ MoveTutor: .Flamethrower: writebyte $1 writetext UnknownText_0x1991cf - special Function4925b + special Special_MoveTutor if_equal $0, .TeachMove jump .Incompatible .Thunderbolt: writebyte $2 writetext UnknownText_0x1991cf - special Function4925b + special Special_MoveTutor if_equal $0, .TeachMove jump .Incompatible .IceBeam: writebyte $3 writetext UnknownText_0x1991cf - special Function4925b + special Special_MoveTutor if_equal $0, .TeachMove jump .Incompatible diff --git a/maps/GoldenrodDeptStore6F.asm b/maps/GoldenrodDeptStore6F.asm index d81df73a1..a0853ac17 100644 --- a/maps/GoldenrodDeptStore6F.asm +++ b/maps/GoldenrodDeptStore6F.asm @@ -9,7 +9,7 @@ GoldenrodVendingMachine: loadfont writetext GoldenrodVendingText .Start - special Function24ae8 + special PlaceMoneyTopRightOW loadmenudata .MenuData interpretmenu2 writebackup diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index 68db34544..cc5b19bf0 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -449,7 +449,7 @@ UnknownScript_0x6ee42: loadmovesprites pause 20 showemote EMOTE_SHOCK, PLAYER, 20 - special Functionc48f + special Special_FadeOutMusic applymovement PLAYER, MovementData_0x6ef58 pause 30 spriteface PLAYER, DOWN diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index 51b502452..cefc1c2bb 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -55,7 +55,7 @@ UnknownScript_0x180053: appear $5 spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 applymovement $5, MovementData_0x180164 playmusic MUSIC_RIVAL_ENCOUNTER @@ -76,7 +76,7 @@ UnknownScript_0x180094: appear $5 spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 applymovement $5, MovementData_0x18016b playmusic MUSIC_RIVAL_ENCOUNTER diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm index 07d36b64e..f8fa0721a 100644 --- a/maps/KurtsHouse.asm +++ b/maps/KurtsHouse.asm @@ -40,7 +40,7 @@ KurtScript_0x18e178: writetext UnknownText_0x18e473 closetext loadmovesprites - special Functionc48f + special Special_FadeOutMusic setevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET checkcode VAR_FACING if_equal UP, .RunAround @@ -287,7 +287,7 @@ KurtScript_0x18e178: setevent EVENT_FOREST_IS_RESTLESS clearevent EVENT_CAN_GIVE_GS_BALL_TO_KURT clearevent EVENT_GAVE_GS_BALL_TO_KURT - special Functionc48f + special Special_FadeOutMusic pause 20 showemote EMOTE_SHOCK, $2, 30 checkcode VAR_FACING diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index 56fba7897..f9f03054f 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -44,12 +44,12 @@ UnknownScript_0x180e53: end UnknownScript_0x180e6a: - special Functionc48f + special Special_FadeOutMusic applymovement PLAYER, MovementData_0x180f38 jump LanceScript_0x180e7b UnknownScript_0x180e74: - special Functionc48f + special Special_FadeOutMusic applymovement PLAYER, MovementData_0x180f3c LanceScript_0x180e7b: spriteface $2, LEFT diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm index 60ee8cef9..7700fa518 100644 --- a/maps/MahoganyTown.asm +++ b/maps/MahoganyTown.asm @@ -51,7 +51,7 @@ UnknownScript_0x190039: UnknownScript_0x190040: loadfont writetext UnknownText_0x1900b0 - special Function24ae8 + special PlaceMoneyTopRightOW yesorno iffalse UnknownScript_0x190072 checkmoney $0, 300 @@ -61,7 +61,7 @@ UnknownScript_0x190040: waitbutton playsound SFX_TRANSACTION takemoney $0, 300 - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x19014a closetext loadmovesprites diff --git a/maps/MountMoon.asm b/maps/MountMoon.asm index a23ab085d..09173be29 100644 --- a/maps/MountMoon.asm +++ b/maps/MountMoon.asm @@ -19,7 +19,7 @@ UnknownScript_0x7408d: UnknownScript_0x7408e: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 applymovement $2, MovementData_0x740f9 playmusic MUSIC_RIVAL_ENCOUNTER diff --git a/maps/OlivineCity.asm b/maps/OlivineCity.asm index f299560bb..4c42e9dd5 100644 --- a/maps/OlivineCity.asm +++ b/maps/OlivineCity.asm @@ -25,7 +25,7 @@ OlivineCity_MapScriptHeader: UnknownScript_0x1a8833: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 playsound SFX_ENTER_DOOR appear $5 @@ -49,7 +49,7 @@ UnknownScript_0x1a8833: UnknownScript_0x1a886b: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 playsound SFX_ENTER_DOOR appear $5 diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm index 40f9173c1..3177d3963 100644 --- a/maps/PokeCenter2F.asm +++ b/maps/PokeCenter2F.asm @@ -581,7 +581,7 @@ Script_LeftTimeCapsule: MapPokeCenter2FSignpost0Script: refreshscreen $0 - special Functionc2da + special Special_DisplayLinkRecord loadmovesprites end diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm index edca82682..eb81f7579 100644 --- a/maps/RadioTower2F.asm +++ b/maps/RadioTower2F.asm @@ -140,7 +140,7 @@ UnknownScript_0x5d7be: writetext UnknownText_0x5e054 closetext loadmovesprites - special Functionc48f + special Special_FadeOutMusic pause 20 special RestartMapMusic checkcode VAR_BLUECARDBALANCE @@ -169,7 +169,7 @@ UnknownScript_0x5d81e: closetext loadmovesprites spriteface $b, RIGHT - special Functionc48f + special Special_FadeOutMusic pause 20 special RestartMapMusic end @@ -200,7 +200,7 @@ UnknownScript_0x5d845: closetext loadmovesprites spriteface $b, RIGHT - special Functionc48f + special Special_FadeOutMusic pause 20 special RestartMapMusic end diff --git a/maps/Route24.asm b/maps/Route24.asm index 081bde6a7..f8f24209f 100644 --- a/maps/Route24.asm +++ b/maps/Route24.asm @@ -21,7 +21,7 @@ RocketScript_0x1adbfa: loadfont writetext UnknownText_0x1addc0 keeptextopen - special Functionc48f + special Special_FadeOutMusic writetext UnknownText_0x1adee1 closetext loadmovesprites diff --git a/maps/Route39Farmhouse.asm b/maps/Route39Farmhouse.asm index 7e9b06226..6ca69ab49 100644 --- a/maps/Route39Farmhouse.asm +++ b/maps/Route39Farmhouse.asm @@ -20,7 +20,7 @@ UnknownScript_0x9cec5: checkitem MOOMOO_MILK iftrue UnknownScript_0x9cf08 writetext UnknownText_0x9cfe1 - special Function24ae8 + special PlaceMoneyTopRightOW yesorno iffalse UnknownScript_0x9cf02 checkmoney $0, 500 @@ -28,7 +28,7 @@ UnknownScript_0x9cec5: giveitem MOOMOO_MILK iffalse UnknownScript_0x9cefc takemoney $0, 500 - special Function24ae8 + special PlaceMoneyTopRightOW waitbutton playsound SFX_TRANSACTION writetext UnknownText_0x9d05d diff --git a/maps/SilverCaveRoom3.asm b/maps/SilverCaveRoom3.asm index 194aa1717..6c637f77c 100644 --- a/maps/SilverCaveRoom3.asm +++ b/maps/SilverCaveRoom3.asm @@ -6,7 +6,7 @@ SilverCaveRoom3_MapScriptHeader: db 0 RedScript_0x18c603: - special Functionc48f + special Special_FadeOutMusic faceplayer loadfont writetext UnknownText_0x18c637 @@ -17,7 +17,7 @@ RedScript_0x18c603: startbattle reloadmapmusic returnafterbattle - special Functionc48f + special Special_FadeOutMusic loadfont writetext UnknownText_0x18c63f closetext diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index ae55d237f..6b82aa611 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -18,7 +18,7 @@ UnknownScript_0x184946: UnknownScript_0x184947: spriteface PLAYER, UP showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic playsound SFX_TACKLE playsound SFX_ELEVATOR earthquake 79 diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm index 001ca4893..39e2b2f67 100644 --- a/maps/TeamRocketBaseB3F.asm +++ b/maps/TeamRocketBaseB3F.asm @@ -55,7 +55,7 @@ LanceScript_0x6dffc: UnknownScript_0x6e019: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic appear $a applymovement $a, MovementData_0x6e164 spriteface PLAYER, LEFT diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm index 765764fd7..ca4d0c1ff 100644 --- a/maps/TinTower1F.asm +++ b/maps/TinTower1F.asm @@ -158,7 +158,7 @@ UnknownScript_0x1850d7: playsound SFX_EXIT_BUILDING disappear $5 waitbutton - special Functionc48f + special Special_FadeOutMusic pause 20 playmapmusic end diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm index 43c021b76..82abe2e4a 100644 --- a/maps/UndergroundPathSwitchRoomEntrances.asm +++ b/maps/UndergroundPathSwitchRoomEntrances.asm @@ -80,7 +80,7 @@ TeacherScript_0x7ca7d: UnknownScript_0x7ca80: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 playsound SFX_EXIT_BUILDING appear $c @@ -99,7 +99,7 @@ UnknownScript_0x7ca80: UnknownScript_0x7caaa: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 playsound SFX_EXIT_BUILDING appear $c diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm index a5f751194..056b30854 100644 --- a/maps/VictoryRoad.asm +++ b/maps/VictoryRoad.asm @@ -19,7 +19,7 @@ UnknownScript_0x74492: moveperson $2, $12, $b spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $2 applymovement $2, MovementData_0x74539 @@ -33,7 +33,7 @@ UnknownScript_0x74492: UnknownScript_0x744b5: spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $2 applymovement $2, MovementData_0x74542 diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index af5cf93b8..2ef14fcc0 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -186,7 +186,7 @@ OlderHaircutBrotherScript: .DoHaircut: checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT iftrue .AlreadyGotHaircut - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x7c5f9 yesorno iffalse .Refused @@ -222,7 +222,7 @@ OlderHaircutBrotherScript: .then: takemoney $0, 500 - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x7c6b8 closetext loadmovesprites @@ -269,7 +269,7 @@ YoungerHaircutBrotherScript: .DoHaircut: checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT iftrue .AlreadyGotHaircut - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x7c75c yesorno iffalse .Refused @@ -305,7 +305,7 @@ YoungerHaircutBrotherScript: .then: takemoney $0, 300 - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x7c80e closetext loadmovesprites @@ -343,21 +343,21 @@ YoungerHaircutBrotherScript: UnknownScript_0x7c2bb: writetext HaircutBrosText_SlightlyHappier - special Functionc472 + special PlayCurMonCry closetext loadmovesprites end UnknownScript_0x7c2c4: writetext HaircutBrosText_Happier - special Functionc472 + special PlayCurMonCry closetext loadmovesprites end UnknownScript_0x7c2cd: writetext HaircutBrosText_MuchHappier - special Functionc472 + special PlayCurMonCry closetext loadmovesprites end diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm new file mode 100755 index 000000000..4e4eeec80 --- /dev/null +++ b/misc/mobile_12.asm @@ -0,0 +1,1829 @@ +Function4802f: ; 4802f (12:402f) + xor a + set 6, a + ld [wd002], a + ld hl, wd003 + set 0, [hl] + ld a, c + and a + call z, Function48000 + call ClearBGPalettes + call Function48d3d + ld a, [wd479] + bit 1, a + jr z, .asm_4805a + ld a, [wd003] + set 0, a + set 1, a + set 2, a + set 3, a + ld [wd003], a +.asm_4805a + call Function486bf + call LoadFontsExtra + ld de, GFX_488c3 + ld hl, VTiles2 tile $10 + lb bc, BANK(GFX_488c3), 1 + call Request1bpp + ld de, GFX_488cb + ld hl, VTiles2 tile $11 + lb bc, BANK(GFX_488cb), 1 + call Request1bpp + call Function4a3a7 + call ClearBGPalettes + ld a, [wd002] + bit 6, a + jr z, .asm_4808a + call Function48689 + jr .asm_480d7 +.asm_4808a + ld a, $5 + ld [MusicFade], a + ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 + ld [MusicFadeIDLo], a + ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 + ld [MusicFadeIDHi], a + ld c, 20 + call DelayFrames + ld b, $1 + call Function4930f + call ClearBGPalettes + hlcoord 0, 0 + ld b, $2 + ld c, $14 + call ClearBox + hlcoord 0, 1 + ld a, $c + ld [hl], a + ld bc, $13 + add hl, bc + ld [hl], a + ld de, MobileProfileString + hlcoord 1, 1 + call PlaceString + hlcoord 0, 2 + ld b, $a + ld c, $12 + call Function48cdc + hlcoord 2, 4 + ld de, String_48482 + call PlaceString +.asm_480d7 + hlcoord 2, 6 + ld de, String_48489 + call PlaceString + hlcoord 2, 8 + ld de, String_4848d + call PlaceString + hlcoord 2, 10 + ld de, String_48495 + call PlaceString + hlcoord 2, 12 + ld de, String_4849e + call PlaceString + ld a, [wd002] + bit 6, a + jr nz, .asm_48113 + ld a, [PlayerGender] + ld hl, Strings_484fb + call GetNthString + ld d, h + ld e, l + hlcoord 11, 4 + call PlaceString +.asm_48113 + hlcoord 11, 6 + call Function487ec + ld a, [wd474] + dec a + ld hl, Prefectures + call GetNthString + ld d, h + ld e, l + hlcoord 11, 8 + call PlaceString + hlcoord 11, 10 + call Function489ea + hlcoord 0, 14 + ld b, $2 + ld c, $12 + call TextBox + hlcoord 1, 16 + ld de, String_48275 + call PlaceString + call Function48187 + call Function3200 + call SetPalettes + call Function1bc9 + ld hl, MenuSelection2 + ld b, [hl] + push bc + jr asm_4815f + +Function48157: ; 48157 (12:4157) + call Function1bd3 + ld hl, MenuSelection2 + ld b, [hl] + push bc + +asm_4815f: ; 4815f (12:415f) + bit 0, a + jp nz, Function4820d + ld b, a + ld a, [wd002] + bit 6, a + jr z, .asm_48177 + ld hl, wd479 + bit 1, [hl] + jr z, .asm_48177 + bit 1, b + jr nz, .asm_4817a +.asm_48177 + jp Function48272 +.asm_4817a + call ClearBGPalettes + call Function48d30 + pop bc + call ClearTileMap + ld a, $ff + ret + +Function48187: ; 48187 (12:4187) + ld a, [wd479] + bit 1, a + jr nz, .asm_481f1 + ld a, [wd003] + ld d, a + call Function48725 + jr c, .asm_481a2 + lb bc, 1, 4 + hlcoord 2, 12 + call ClearBox + jr .asm_481ad +.asm_481a2 + push de + hlcoord 2, 12 + ld de, String_4849e + call PlaceString + pop de +.asm_481ad + ld a, [wd002] + bit 6, a + jr nz, .asm_481c1 + bit 0, d + jr nz, .asm_481c1 + lb bc, 1, 8 + hlcoord 11, 4 + call ClearBox +.asm_481c1 + bit 1, d + jr nz, .asm_481ce + lb bc, 1, 8 + hlcoord 11, 6 + call ClearBox +.asm_481ce + bit 2, d + jr nz, .asm_481db + lb bc, 2, 8 + hlcoord 11, 7 + call ClearBox +.asm_481db + bit 3, d + jr nz, .asm_481f1 + ld a, [wd479] + bit 0, a + jr nz, .asm_481f8 + lb bc, 1, 8 + hlcoord 11, 10 + call ClearBox + jr .asm_48201 +.asm_481f1 + ld a, [wd479] + bit 0, a + jr nz, .asm_48201 +.asm_481f8 + hlcoord 11, 10 + ld de, String_48202 + call PlaceString +.asm_48201 + ret +; 48202 (12:4202) + +String_48202: ; 48202 + db "Tell Later@" +; 4820d + +Function4820d: ; 4820d (12:420d) + call Function1bee + ld hl, MenuSelection2 + ld a, [hl] + push af + ld a, [wd002] + bit 6, a + jr z, .asm_4821f + pop af + inc a + push af +.asm_4821f + pop af + cp $1 + jr z, asm_4828d + cp $2 + jp z, Function4876f + cp $3 + jp z, Function48304 + cp $4 + jp z, Function488d3 + ld a, $2 + call Function1ff8 + ld a, [wd002] + bit 6, a + jr z, .asm_4825c + jr .asm_4825c +; 48241 (12:4241) + + hlcoord 1, 15 + ld b, $2 + ld c, $12 + call ClearBox + ld de, String_484a1 + hlcoord 1, 16 + call PlaceString + call WaitBGMap + ld c, 48 + call DelayFrames + +.asm_4825c + call ClearBGPalettes + call Function48d30 + pop bc + call ClearTileMap + ld b, SCGB_08 + call GetSGBLayout + ld hl, wd479 + set 1, [hl] + xor a + ret + +Function48272: ; 48272 (12:4272) + jp Function4840c +; 48275 (12:4275) + +String_48275: ; 48275 + db "Personal Info@" +; 48283 + +Function48283: ; 48283 (12:4283) + lb bc, 2, 18 + hlcoord 1, 15 + call ClearBox + ret + +asm_4828d: ; 4828d (12:428d) + call Function48283 + hlcoord 1, 16 + ld de, String_484b1 + call PlaceString + ld hl, MenuDataHeader_0x484f1 + call LoadMenuDataHeader + call Function4873c + hlcoord 11, 2 + ld b, $4 + ld c, $7 + call Function48cdc + hlcoord 13, 4 + ld de, String_484fb + call PlaceString + hlcoord 13, 6 + ld de, String_484ff + call PlaceString + call WaitBGMap + ld a, [PlayerGender] + inc a + ld [wMenuCursorBuffer], a + call Function1bc9 + call PlayClickSFX + call ExitMenu + bit 0, a + jp z, Function4840c + ld hl, MenuSelection2 + ld a, [hl] + ld hl, Strings_484fb + cp $1 + jr z, .asm_482ed +.asm_482e1 + ld a, [hli] + cp $50 + jr nz, .asm_482e1 + ld a, $1 + ld [PlayerGender], a + jr .asm_482f1 +.asm_482ed + xor a + ld [PlayerGender], a +.asm_482f1 + ld d, h + ld e, l + hlcoord 11, 4 + call PlaceString + ld a, [wd003] + set 0, a + ld [wd003], a + jp Function4840c + +Function48304: ; 48304 (12:4304) + call Function48283 + hlcoord 1, 16 + ld de, String_484cf + call PlaceString + ld hl, MenuDataHeader_0x48504 + call LoadMenuDataHeader + ld hl, MenuDataHeader_0x48513 + call LoadMenuDataHeader + hlcoord 10, 0 + ld b, $c + ld c, $8 + call Function48cdc + ld a, [wMenuCursorBuffer] + ld b, a + ld a, [wd0e4] + ld c, a + push bc + ld a, [wd474] + dec a + cp $29 + jr c, .asm_4833f + sub $29 + inc a + ld [wMenuCursorBuffer], a + ld a, $29 +.asm_4833f + ld [wd0e4], a + callba Function104148 +.asm_48348 + call HandleScrollingMenu + ld de, $629 + call Function48383 + jr c, .asm_48348 + ld d, a + pop bc + ld a, b + ld [wMenuCursorBuffer], a + ld a, c + ld [wd0e4], a + ld a, d + push af + call ExitMenu + call ExitMenu + pop af + ld a, [hJoyPressed] + bit 0, a + jr z, .asm_48377 + call Function483bb + ld a, [wd003] + set 2, a + ld [wd003], a +.asm_48377 + call Function48187 + callba Function104148 + jp Function4840c + +Function48383: ; 48383 (12:4383) + push bc + push af + bit 5, a + jr nz, .asm_48390 + bit 4, a + jr nz, .asm_4839f + and a + jr .asm_483b7 +.asm_48390 + ld a, [wd0e4] + sub d + ld [wd0e4], a + jr nc, .asm_483af + xor a + ld [wd0e4], a + jr .asm_483af +.asm_4839f + ld a, [wd0e4] + add d + ld [wd0e4], a + cp e + jr c, .asm_483af + ld a, e + ld [wd0e4], a + jr .asm_483af +.asm_483af + ld hl, MenuSelection2 + ld a, [hl] + ld [wMenuCursorBuffer], a + scf +.asm_483b7 + pop bc + ld a, b + pop bc + ret + +Function483bb: ; 483bb (12:43bb) + ld hl, wcf77 + ld a, [hl] + inc a + ld [wd474], a + dec a + ld b, a + ld hl, Prefectures +.asm_483c8 + and a + jr z, .asm_483d5 +.asm_483cb + ld a, [hli] + cp "@" + jr nz, .asm_483cb + ld a, b + dec a + ld b, a + jr .asm_483c8 +.asm_483d5 + ld d, h + ld e, l + ld b, $2 + ld c, $8 + hlcoord 11, 7 + call ClearBox + hlcoord 11, 8 + call PlaceString + ret +; 483e8 (12:43e8) + +Function483e8: ; 483e8 + push de + ld hl, Prefectures + ld a, [MenuSelection] + cp $ff + jr nz, .asm_483f8 + ld hl, Wakayama ; last string + jr .asm_48405 + +.asm_483f8 + ld d, a + and a + jr z, .asm_48405 +.asm_483fc + ld a, [hli] + cp "@" + jr nz, .asm_483fc + ld a, d + dec a + jr .asm_483f8 + +.asm_48405 + ld d, h + ld e, l + pop hl + call PlaceString + ret +; 4840c + +Function4840c: ; 4840c (12:440c) + call Function48187 + call Function48283 + hlcoord 1, 16 + ld de, String_48275 + call PlaceString + call Function486bf + pop bc + ld hl, MenuSelection2 + ld [hl], b + ld a, [wd002] + bit 6, a + jr nz, .asm_48437 + ld b, $9 + ld c, $1 + hlcoord 1, 4 + call ClearBox + jp Function48157 +.asm_48437 + ld b, $7 + ld c, $1 + hlcoord 1, 6 + call ClearBox + jp Function48157 + +Function48444: ; 48444 (12:4444) + push bc + push af + push de + push hl + ld hl, Unknown_4845d +.asm_4844b + and a + jr z, .asm_48453 +rept 2 + inc hl +endr + dec a + jr .asm_4844b +.asm_48453 + ld d, h + ld e, l + pop hl + call PlaceString + pop de + pop af + pop bc + ret +; 4845d (12:445d) + +Unknown_4845d: ; 4845d +; 4845d + db "0@" + db "1@" + db "2@" + db "3@" + db "4@" + db "5@" + db "6@" + db "7@" + db "8@" + db "9@" +; 48471 + +MobileProfileString: db " Mobile Profile@" +String_48482: db "Gender@" +String_48489: db "Age@" +String_4848d: db "Address@" +String_48495: db "Zip Code@" +String_4849e: db "OK@" +String_484a1: db "Profile Changed@" +String_484b1: db "Boy or girl?@" +String_484be: db "How old are you?@" +String_484cf: db "Where do you live?@" +String_484e2: db "Your zip code?@" +; 484f1 + +MenuDataHeader_0x484f1: ; 0x484f1 + db $40 ; flags + db 02, 11 ; start coords + db 07, 19 ; end coords + dw MenuData2_0x484f9 + db 1 ; default option +; 0x484f9 + +MenuData2_0x484f9: ; 0x484f9 + db $a0 ; flags + db 2 ; items +Strings_484fb: +String_484fb: db "Boy@" +String_484ff: db "Girl@" +; 0x48504 + +MenuDataHeader_0x48504: ; 0x48504 + db $40 ; flags + db 00, 10 ; start coords + db 17, 19 ; end coords + +MenuDataHeader_0x48509: ; 0x48509 + db $40 ; flags + db 05, 10 ; start coords + db 07, 19 ; end coords + +MenuDataHeader_0x4850e: ; 0x4850e + db $40 ; flags + db 09, 10 ; start coords + db 11, 19 ; end coords + +MenuDataHeader_0x48513: ; 0x48513 + db $40 ; flags + db 01, 11 ; start coords + db 12, 18 ; end coords + dw MenuData2_0x4851b + db 1 ; default option +; 0x4851b + +MenuData2_0x4851b: ; 0x4851b + db $1d ; flags + db 6 ; items + +Unknown_4851d: ; 4851d + db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18 + db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c + db $2d, $ff + +Prefectures: +Aichi: db "あいちけん@" ; Aichi +Aomori: db "あおもりけん@" ; Aomori +Akita: db "あきたけん@" ; Akita +Ishikawa: db "いしかわけん@" ; Ishikawa +Ibaraki: db "いばらきけん@" ; Ibaraki +Iwate: db "いわてけん@" ; Iwate +Ehime: db "えひめけん@" ; Ehime +Oita: db "おおいたけん@" ; Oita +Osakafu: db "おおさかふ@" ; Osakafu +Okayama: db "おかやまけん@" ; Okayama +Okinawa: db "おきなわけん@" ; Okinawa +Kagawa: db "かがわけん@" ; Kagawa +Kagoshima: db "かごしまけん@" ; Kagoshima +Kanagawa: db "かながわけん@" ; Kanagawa +Gifu: db "ぎふけん@" ; Gifu +Kyotofu: db "きょうとふ@" ; Kyotofu +Kumamoto: db "くまもとけん@" ; Kumamoto +Gunma: db "ぐんまけん@" ; Gunma +Kochi: db "こうちけん@" ; Kochi +Saitama: db "さいたまけん@" ; Saitama +Saga: db "さがけん@" ; Saga +Shiga: db "しがけん@" ; Shiga +Shizuoka: db "しずおかけん@" ; Shizuoka +Shimane: db "しまねけん@" ; Shimane +Chiba: db "ちばけん@" ; Chiba +Tokyo: db "とうきょうと@" ; Tokyo +Tokushima: db "とくしまけん@" ; Tokushima +Tochigi: db "とちぎけん@" ; Tochigi +Tottori: db "とっとりけん@" ; Tottori +Toyama: db "とやまけん@" ; Toyama +Nagasaki: db "ながさきけん@" ; Nagasaki +Nagano: db "ながのけん@" ; Nagano +Naraken: db "ならけん@" ; Naraken +Niigata: db "にいがたけん@" ; Niigata +Hyogo: db "ひょうごけん@" ; Hyogo +Hiroshima: db "ひろしまけん@" ; Hiroshima +Fukui: db "ふくいけん@" ; Fukui +Fukuoka: db "ふくおかけん@" ; Fukuoka +Fukushima: db "ふくしまけん@" ; Fukushima +Hokkaido: db "ほっかいどう@" ; Hokkaido +Mie: db "みえけん@" ; Mie +Miyagi: db "みやぎけん@" ; Miyagi +Miyazaki: db "みやざきけん@" ; Miyazaki +Yamagata: db "やまがたけん@" ; Yamagata +Yamaguchi: db "やまぐちけん@" ; Yamaguchi +Yamanashi: db "やまなしけん@" ; Yamanashi +Wakayama: db "わかやまけん@" ; Wakayama +; 48689 + +Function48689: ; 48689 (12:4689) + ld c, 7 + call DelayFrames + ld b, $1 + call Function4930f + call ClearBGPalettes + hlcoord 0, 0 + ld b, $4 + ld c, $14 + call ClearBox + hlcoord 0, 2 + ld a, $c + ld [hl], a + ld bc, $13 + add hl, bc + ld [hl], a + ld de, MobileProfileString + hlcoord 1, 2 + call PlaceString + hlcoord 0, 4 + ld b, $8 + ld c, $12 + call Function48cdc + ret + +Function486bf: ; 486bf (12:46bf) + ld hl, wcfa1 + ld a, [wd002] + bit 6, a + jr nz, .asm_486ce + ld a, $4 + ld [hli], a + jr .asm_486d1 +.asm_486ce + ld a, $6 + ld [hli], a +.asm_486d1 + ld a, $1 + ld [hli], a + ld a, [wd002] + bit 6, a + jr nz, .asm_486e7 + call Function48725 + ld a, $4 + jr nc, .asm_486e4 + ld a, $5 +.asm_486e4 + ld [hli], a + jr .asm_486fb +.asm_486e7 + ld a, [wd479] + bit 1, a + jr nz, .asm_486f8 + call Function48725 + jr c, .asm_486f8 + ld a, $3 + ld [hli], a + jr .asm_486fb +.asm_486f8 + ld a, $4 + ld [hli], a +.asm_486fb + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + push af + ld a, [wd002] + bit 6, a + jr z, .asm_4871a + pop af + add $2 + push af +.asm_4871a + pop af + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + xor a +rept 3 + ld [hli], a +endr + ret + +Function48725: ; 48725 (12:4725) + ld a, [wd003] + bit 0, a + jr z, .asm_4873a + bit 1, a + jr z, .asm_4873a + bit 2, a + jr z, .asm_4873a + bit 3, a + jr z, .asm_4873a + scf + ret +.asm_4873a + and a + ret + +Function4873c: ; 4873c (12:473c) + ld hl, wcfa1 + ld a, $4 + ld [hli], a + ld a, $c + ld [hli], a + ld a, $2 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $2 + ld [hli], a + ld a, [PlayerGender] + and a + jr z, .asm_48764 + ld a, $2 + jr .asm_48766 +.asm_48764 + ld a, $1 +.asm_48766 + ld [hli], a + ld a, $1 + ld [hli], a + xor a +rept 3 + ld [hli], a +endr + ret + +Function4876f: ; 4876f (12:476f) + call Function48283 + hlcoord 1, 16 + ld de, String_484be + call PlaceString + ld hl, MenuDataHeader_0x48509 + call LoadMenuDataHeader + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + call WaitBGMap + ld a, [wd473] + and a + jr z, .asm_487ab + cp $64 + jr z, .asm_487b2 + hlcoord 12, 5 + ld [hl], $10 + hlcoord 12, 7 + ld [hl], $11 + jr .asm_487b7 +.asm_487ab + hlcoord 12, 5 + ld [hl], $10 + jr .asm_487b7 +.asm_487b2 + hlcoord 12, 7 + ld [hl], $11 +.asm_487b7 + hlcoord 11, 6 + call Function487ec + ld c, 10 + call DelayFrames + ld a, [wd473] + push af +.asm_487c6 + call JoyTextDelay + call Function4880e + jr nc, .asm_487c6 + ld a, $1 + call Function1ff8 + pop bc + jr nz, .asm_487da + ld a, b + ld [wd473], a +.asm_487da + ld a, [wd473] + call ExitMenu + hlcoord 11, 6 + call Function487ec + pop af + ld [hInMenu], a + jp Function4840c + +Function487ec: ; 487ec (12:47ec) + push hl + ld de, wd473 + call Function487ff + pop hl +rept 4 + inc hl +endr + ld de, String_4880d + call PlaceString + ret + +Function487ff: ; 487ff (12:47ff) + push hl + ld a, " " + ld [hli], a + ld [hl], a + pop hl + ld b, PRINTNUM_LEADINGZEROS | 1 + ld c, 3 + call PrintNum + ret +; 4880d (12:480d) + +String_4880d: ; 4880d + db "@" +; 4880e + +Function4880e: ; 4880e (12:480e) + ld a, [hJoyPressed] + and A_BUTTON + jp nz, Function488b9 + ld a, [hJoyPressed] + and B_BUTTON + jp nz, Function488b4 + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_48843 + ld a, [hl] + and D_DOWN + jr nz, .asm_48838 + ld a, [hl] + and D_LEFT + jr nz, .asm_4884f + ld a, [hl] + and D_RIGHT + jr nz, .asm_4885f + call DelayFrame + and a + ret +.asm_48838 + ld hl, wd473 + ld a, [hl] + and a + jr z, .asm_48840 + dec a +.asm_48840 + ld [hl], a + jr .asm_4886f +.asm_48843 + ld hl, wd473 + ld a, [hl] + cp $64 + jr nc, .asm_4884c + inc a +.asm_4884c + ld [hl], a + jr .asm_4886f +.asm_4884f + ld a, [wd473] + cp $5b + jr c, .asm_48858 + ld a, $5a +.asm_48858 + add $a + ld [wd473], a + jr .asm_4886f +.asm_4885f + ld a, [wd473] + cp $a + jr nc, .asm_48868 + ld a, $a +.asm_48868 + sub $a + ld [wd473], a + jr .asm_4886f +.asm_4886f + ld a, [wd473] + and a + jr z, .asm_48887 + cp $64 + jr z, .asm_48898 + jr z, .asm_488a7 + hlcoord 12, 5 + ld [hl], $10 + hlcoord 12, 7 + ld [hl], $11 + jr .asm_488a7 +.asm_48887 + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + hlcoord 12, 5 + ld [hl], $10 + jr .asm_488a7 +.asm_48898 + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + hlcoord 12, 7 + ld [hl], $11 +.asm_488a7 + hlcoord 11, 6 + call Function487ec + call WaitBGMap + ld a, $1 + and a + ret + +Function488b4: ; 488b4 (12:48b4) + ld a, $0 + and a + scf + ret + +Function488b9: ; 488b9 (12:48b9) + ld a, [wd003] + set 1, a + ld [wd003], a + scf + ret +; 488c3 (12:48c3) + +GFX_488c3: ; 488c3 +INCBIN "gfx/unknown/0488c3.2bpp" + +GFX_488cb: ; 488cb +INCBIN "gfx/unknown/0488cb.2bpp" + +Function488d3: ; 488d3 (12:48d3) + call Function48283 + hlcoord 1, 16 + ld de, String_484e2 + call PlaceString + call Function48a3a + jp c, Function4840c + ld hl, MenuDataHeader_0x4850e + call LoadMenuDataHeader + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + ld a, [wd475] + and $f + ld d, $0 + hlcoord 11, 10 + call Function489ea + call WaitBGMap + ld a, [wd475] + ld b, a + ld a, [wd476] + ld c, a + ld a, [wd477] + ld d, a + ld a, [wd478] + ld e, a + push de + push bc + ld d, $0 + ld b, $0 + +asm_48922: ; 48922 (12:4922) + push bc + call JoyTextDelay + ld a, [hJoyDown] + and a + jp z, Function4896e + bit 0, a + jp nz, Function4896e + bit 1, a + jp nz, Function4896e + ld a, [wd002] + and %11001111 + res 7, a + ld [wd002], a + pop bc + inc b + ld a, b + cp $5 + push bc + jr c, .asm_4894c + pop bc + ld b, $4 + push bc +.asm_4894c + pop bc + push bc + ld a, b + cp $4 + jr nz, asm_48972 + ld c, 10 + call DelayFrames + jr asm_48972 +; 4895a (12:495a) + +Function4895a: ; 4895a + ld a, [hJoyPressed] + and a + jr z, .asm_48965 + pop bc + ld b, $1 + push bc + jr asm_48972 + +.asm_48965 + ld a, [hJoyLast] + and a + jr z, asm_48972 + + pop bc + ld b, $1 + push bc + +Function4896e: ; 4896e (12:496e) + pop bc + ld b, $0 + push bc + +asm_48972: ; 48972 (12:4972) + call Function48ab5 + push af + cp $f0 + jr z, .asm_48994 + cp $f + jr nz, .asm_48988 + ld a, [wd002] + set 7, a + and $cf + ld [wd002], a +.asm_48988 + hlcoord 11, 10 + ld b, $0 + ld c, d + add hl, bc + ld b, $3 + call Function48c11 +.asm_48994 + call WaitBGMap + pop af + pop bc + jr nc, asm_48922 + jr nz, .asm_489b1 + pop bc + ld a, b + ld [wd475], a + ld a, c + ld [wd476], a + pop bc + ld a, b + ld [wd477], a + ld a, c + ld [wd478], a + jr .asm_489c5 +.asm_489b1 + push af + ld a, [wd479] + set 0, a + ld [wd479], a + ld a, [wd003] + set 3, a + ld [wd003], a + pop af + pop bc + pop bc +.asm_489c5 + push af + push bc + push de + push hl + ld a, $1 + call Function1ff8 + pop hl + pop de + pop bc + pop af + call ExitMenu + hlcoord 11, 10 + call Function489ea + hlcoord 11, 9 + lb bc, 1, 8 + call ClearBox + pop af + ld [hInMenu], a + jp Function4840c + +Function489ea: ; 489ea (12:49ea) + push de + ld a, [wd475] + and $f + call Function48444 + ld a, [wd476] + and $f0 + swap a + inc hl + call Function48444 + ld a, [wd476] + and $f + inc hl + call Function48444 + inc hl + ld de, String_48a38 + call PlaceString + ld a, [wd477] + and $f0 + swap a + inc hl + call Function48444 + ld a, [wd477] + and $f + inc hl + call Function48444 + ld a, [wd478] + and $f0 + swap a + inc hl + call Function48444 + ld a, [wd478] + and $f + inc hl + call Function48444 + pop de + ret +; 48a38 (12:4a38) + +String_48a38: ; 48a38 + db "-@" +; 48a3a + +Function48a3a: ; 48a3a (12:4a3a) + ld hl, MenuDataHeader_0x48a9c + call LoadMenuDataHeader + call Function4873c + ld a, $a + ld [wcfa1], a + ld a, $b + ld [wcfa2], a + ld a, $1 + ld [MenuSelection2], a + hlcoord 10, 8 + ld b, $4 + ld c, $8 + call Function48cdc + hlcoord 12, 10 + ld de, String_48aa1 + call PlaceString + call Function1bc9 + push af + call PlayClickSFX + call ExitMenu + pop af + bit 1, a + jp nz, Function48a9a + ld a, [MenuSelection2] + cp $1 + jr z, .asm_48a98 + ld a, [wd003] + set 3, a + ld [wd003], a + ld a, [wd479] + res 0, a + ld [wd479], a + xor a + ld bc, $4 + ld hl, wd475 + call ByteFill + jr Function48a9a +.asm_48a98 + and a + ret + +Function48a9a: ; 48a9a (12:4a9a) + scf + ret +; 48a9c (12:4a9c) + +MenuDataHeader_0x48a9c: ; 0x48a9c + db $40 ; flags + db 08, 10 ; start coords + db 13, 19 ; end coord + +String_48aa1: ; 48aa1 + db "Tell Now" + next "Tell Later@" +; 48ab5 + + +Function48ab5: ; 48ab5 (12:4ab5) + ld a, [hJoyPressed] + and A_BUTTON + jp nz, Function48c0f + ld a, [hJoyPressed] + and B_BUTTON + jp nz, Function48c0d + ld a, d + and a + jr z, .asm_48adf + cp $1 + jr z, .asm_48ae7 + cp $2 + jr z, .asm_48af1 + cp $3 + jr z, .asm_48af9 + cp $4 + jr z, .asm_48b03 + cp $5 + jr z, .asm_48b0b + cp $6 + jr .asm_48b15 +.asm_48adf + ld hl, wd475 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48ae7 + ld hl, wd476 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48af1 + ld hl, wd476 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48af9 + ld hl, wd477 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48b03 + ld hl, wd477 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48b0b + ld hl, wd478 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48b15 + ld hl, wd478 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48b1d + push hl + push af + ld e, $0 + hlcoord 11, 10 + ld a, d +.asm_48b25 + and a + jr z, .asm_48b2c + inc e + dec a + jr .asm_48b25 +.asm_48b2c + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_48b8d + ld a, [hl] + and D_DOWN + jr nz, .asm_48b55 + ld a, [hl] + and D_LEFT + jp nz, Function48bd7 + ld a, [hl] + and D_RIGHT + jr nz, .asm_48b9d + hlcoord 11, 10 + call Function489ea + ld a, [wd002] + bit 7, a + jr nz, .asm_48b51 +.asm_48b51 + pop bc + pop bc + and a + ret +.asm_48b55 + pop af + ld b, a + and $f + and a + ld a, b + jr nz, .asm_48b61 + and $f0 + add $a +.asm_48b61 + dec a +.asm_48b62 + push de + push af + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop af + pop de + hlcoord 11, 10 + ld b, a + ld a, d + cp $3 + jr c, .asm_48b7a + inc hl +.asm_48b7a + ld a, b + pop hl + bit 7, a + jr z, .asm_48b85 + call Function48c4d + jr .asm_48b88 +.asm_48b85 + call Function48c5a +.asm_48b88 + ld a, $f0 + jp Function48c00 +.asm_48b8d + pop af + ld b, a + and $f + cp $9 + ld a, b + jr c, .asm_48b9a + and $f0 + add $ff +.asm_48b9a + inc a + jr .asm_48b62 +.asm_48b9d + push de + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop de + ld a, d + cp $6 + jr nc, .asm_48baf + inc d +.asm_48baf + pop af + pop hl + ld b, a + ld a, d + cp $6 + ld a, b + jr z, .asm_48bc4 + bit 7, a + jr nz, .asm_48bc4 + inc hl + ld a, [hl] + swap a + and $f + jr asm_48bc7 +.asm_48bc4 + ld a, [hl] + and $f + +asm_48bc7: ; 48bc7 (12:4bc7) + hlcoord 11, 10 + push af + ld a, d + cp $3 + pop bc + ld a, b + jr c, .asm_48bd3 + inc hl +.asm_48bd3 + ld a, $f + jr Function48c00 + +Function48bd7: ; 48bd7 (12:4bd7) + push de + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop de + ld a, d + and a + pop af + pop hl + ld b, a + ld a, d + and a + ld a, b + jr z, .asm_48bf3 + bit 7, a + jr z, .asm_48bf8 + dec d + dec hl +.asm_48bf3 + ld a, [hl] + and $f + jr asm_48bc7 +.asm_48bf8 + dec d + ld a, [hl] + swap a + and $f + jr asm_48bc7 + +Function48c00: ; 48c00 (12:4c00) + push af + hlcoord 11, 10 + call Function489ea + ld a, $1 + and a + pop bc + ld a, b + ret + +Function48c0d: ; 48c0d (12:4c0d) + xor a + and a + +Function48c0f: ; 48c0f (12:4c0f) + scf + ret + +Function48c11: ; 48c11 (12:4c11) + ld a, [wd002] + bit 7, a + jr z, .asm_48c20 + ld a, d + cp $3 + jr c, .asm_48c1e + inc hl +.asm_48c1e + ld [hl], $7f +.asm_48c20 + ld a, [wd002] + swap a + and $3 + inc a + cp b + jr nz, .asm_48c40 + ld a, [wd002] + bit 7, a + jr z, .asm_48c3a + res 7, a + ld [wd002], a + xor a + jr .asm_48c40 +.asm_48c3a + set 7, a + ld [wd002], a + xor a +.asm_48c40 + swap a + ld b, a + ld a, [wd002] + and $cf + or b + ld [wd002], a + ret + +Function48c4d: ; 48c4d (12:4c4d) + swap a + and $f0 + push af + ld a, [hl] + and $f + ld [hl], a + pop af + or [hl] + ld [hl], a + ret + +Function48c5a: ; 48c5a (12:4c5a) + push af + ld a, [hl] + and $f0 + ld [hl], a + pop af + or [hl] + ld [hl], a + ret + +Function48c63: ; 48c63 + ld a, "@" + ld [de], a + ld a, c + cp $30 + jr nc, .asm_48c8c + and a + jr z, .asm_48c8c + dec c + push de + ld h, d + ld l, e + ld a, "@" + ld b, 7 +.asm_48c76 + ld [hli], a + dec b + jr nz, .asm_48c76 + ld hl, Prefectures + ld a, c + call GetNthString +.asm_48c81 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + cp "@" + jr nz, .asm_48c81 + and a + pop de + ret + +.asm_48c8c + scf + ret +; 48c8e + +Function48c8e: ; 48c8e + ld hl, wd02a + ld d, h + ld e, l + callba Function48c63 + hlcoord 10, 7 + call PlaceString + call WaitBGMap + ret +; 48ca3 + +Function48ca3: ; 48ca3 + push af + push bc + push de + push hl + ld b, 0 + ld c, 0 + ld d, 0 +.asm_48cad + cp 100 + jr c, .asm_48cb6 + sub 100 + inc b + jr .asm_48cad + +.asm_48cb6 + cp 10 + jr c, .asm_48cbf + sub 10 + inc c + jr .asm_48cb6 + +.asm_48cbf + cp 1 + jr c, .asm_48cc7 + dec a + inc d + jr .asm_48cbf + +.asm_48cc7 + ld a, b + call Function48444 + inc hl + ld a, c + call Function48444 + inc hl + ld a, d + call Function48444 + pop hl + pop de + pop bc + pop af + ret +; 48cda + +Function48cda: ; 48cda (12:4cda) + ld h, d + ld l, e + +Function48cdc: ; 48cdc (12:4cdc) + push bc + push hl + call Function48cfd + pop hl + pop bc + ld de, AttrMap - TileMap + add hl, de +rept 2 + inc b +endr +rept 2 + inc c +endr + ld a, $0 +.asm_48ced + push bc + push hl +.asm_48cef + ld [hli], a + dec c + jr nz, .asm_48cef + pop hl + ld de, $14 + add hl, de + pop bc + dec b + jr nz, .asm_48ced + ret + +Function48cfd: ; 48cfd (12:4cfd) + push hl + ld a, $4 + ld [hli], a + inc a + call Function48d2a + inc a + ld [hl], a + pop hl + ld de, $14 + add hl, de +.asm_48d0c + push hl + ld a, $7 + ld [hli], a + ld a, $7f + call Function48d2a + ld [hl], $8 + pop hl + ld de, $14 + add hl, de + dec b + jr nz, .asm_48d0c + ld a, $9 + ld [hli], a + ld a, $a + call Function48d2a + ld [hl], $b + ret + +Function48d2a: ; 48d2a (12:4d2a) + ld d, c +.asm_48d2b + ld [hli], a + dec d + jr nz, .asm_48d2b + ret + +Function48d30: ; 48d30 (12:4d30) + ld hl, wd475 + call Function48d4a + ld hl, wd477 + call Function48d4a + ret + +Function48d3d: ; 48d3d (12:4d3d) + ld hl, wd475 + call Function48d94 + ld hl, wd477 + call Function48d94 + ret + +Function48d4a: ; 48d4a (12:4d4a) + inc hl + ld a, [hl] + ld b, a + and $f + ld c, a + srl b + srl b + srl b + srl b + push bc + ld c, 10 + ld a, b + call SimpleMultiply + pop bc + add c + ld [hld], a + xor a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a + ld a, [hl] + srl a + srl a + srl a + srl a + ld c, 10 + call SimpleMultiply + ld b, a + ld a, [hli] + and $f + add b + ld [hMultiplicand + 2], a + ld a, 100 + ld [hMultiplier], a + call Multiply + ld a, [hProduct + 2] + ld b, a + ld a, [hProduct + 3] + ld c, a + ld e, [hl] + add e + ld c, a + ld a, b + adc $0 + ld b, a + ld a, c + ld [hld], a + ld [hl], b + ret + +Function48d94: ; 48d94 (12:4d94) + xor a + ld [hDividend + 0], a + ld [hDividend + 1], a + ld a, [hli] + ld [hDividend + 0], a + ld a, [hl] + ld [hDividend + 1], a + ld a, 100 + ld [hDivisor], a + ld b, 2 + call Divide + ld a, [hDivisor] + ld c, $a + call SimpleDivide + sla b + sla b + sla b + sla b + or b + ld [hld], a + ld a, [hQuotient + 2] + ld c, 10 + call SimpleDivide + sla b + sla b + sla b + sla b + or b + ld [hl], a + ret