Files
pokegold-spaceworld/engine/menu/debug_menu.asm
T
2020-12-16 21:06:58 +07:00

396 lines
7.5 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
INCLUDE "constants.asm"
SECTION "engine/menu/debug_menu.asm", ROMX
DebugMenu::
call ClearTileMap
call ClearWindowData
call LoadFont
call LoadFontsBattleExtra
call ClearSprites
call GetMemSGBLayout
xor a
ld [wWhichIndexSet], a
ld hl, DebugMenuHeader
call LoadMenuHeader
call OpenMenu
call CloseWindow
jp c, TitleSequenceStart
ld a, $41
ld [wce5f], a
ld a, [wMenuSelection]
ld hl, DebugJumpTable
jp CallJumptable
DebugJumpTable::
dw DebugMenuOptionFight
dw DebugMenuOptionField
dw DebugMenuSoundTest ; to home bank
dw DebugMenuOptionSubGames
dw DebugMenuOptionMonsterTest
dw DebugMenuOptionName
DebugMenuHeader:
db MENU_BACKUP_TILES ; flags
menu_coords 05, 02, SCREEN_WIDTH - 7, SCREEN_HEIGHT - 1
dw .MenuData
db 01 ; default option
.MenuData:
db $A0
db 0 ; items
dw DebugMenuItems
db $8A, $1F
dw .Strings
.Strings
db "ファイト@"
db "フィールド@"
db "サウンド@"
db "サブゲーム@"
db "モンスター@"
db "なまえ@"
DebugMenuItems:
db 06
db 00
db 01
db 02
db 03
db 04
db 05
db -1
DebugMenuOptionField::
ld hl, wDebugFlags
set DEBUG_FIELD_F, [hl] ; set debug mode
jp StartNewGame
DebugMenuOptionFight::
ld hl, wDebugFlags
set DEBUG_BATTLE_F, [hl]
ld a, $54
call Predef
ld hl, wDebugFlags
res DEBUG_BATTLE_F, [hl]
ret
DebugMenuOptionSubGames::
callab CallSubGameMenu
jp DebugMenu
DebugMenuOptionMonsterTest::
ld hl, wPokedexOwned
ld de, wPokedexSeen
ld b, 31
ld a, -1
.loop
ld [hl+], a
ld [de], a
inc de
dec b
jr nz, .loop
ld a, 3
ld [hl], a
ld [de], a
callab MonsterTest
ld a, %11100100
ldh [rBGP], a
Function40eb::
jp DebugMenu
DebugMenuOptionName::
callab OpenTrainerGear
ld a, %11100100
ldh [rBGP], a
jp DebugMenu
SECTION "engine/menu/debug_menu.asm@Sound Test", ROMX
_DebugMenuSoundTest::
call ClearTileMap
call LoadFontExtra
call ClearSprites
call GetMemSGBLayout
xor a
ldh [hDebugMenuSoundMenuIndex], a
call .DetermineDescriptionPointer
.RefreshScreenAndLoop:
call WaitBGMap
.Loop:
call ClearJoypad
call GetJoypad
ldh a, [hJoyDown]
and a
jr z, .Loop
bit A_BUTTON_F, a
jr nz, .a_pressed
bit B_BUTTON_F, a
jr nz, .b_pressed
bit START_F, a
jr nz, .start_pressed
bit D_UP_F, a
jr nz, .up_pressed
bit D_DOWN_F, a
jr nz, .down_pressed
ret
.a_pressed
ldh a, [hDebugMenuSoundBank]
ld c, a
ldh a, [hDebugMenuSoundID]
jr .RefreshScreenAndLoop
.up_pressed
ldh a, [hDebugMenuSoundMenuIndex]
inc a
cp 55
jr nz, .SetIndex
xor a
.SetIndex:
ldh [hDebugMenuSoundMenuIndex], a
call .DetermineDescriptionPointer
jr .RefreshScreenAndLoop
.down_pressed
ldh a, [hDebugMenuSoundMenuIndex]
dec a
cp -1
jr nz, .SetIndex2
ld a, 54
.SetIndex2:
ldh [hDebugMenuSoundMenuIndex], a
call .DetermineDescriptionPointer
jr .RefreshScreenAndLoop
.start_pressed
ldh a, [hDebugMenuSoundBank]
ld c, a
ld a, -1
jr .RefreshScreenAndLoop
.b_pressed
ldh a, [hDebugMenuSoundBank]
ld c, a
ld a, 10
ld [wcdb5], a
ld [wcdb6], a
ld a, -1
ld [wcdb4], a
jr .RefreshScreenAndLoop
.DetermineDescriptionPointer:
ld hl, .TextPointers
ldh a, [hDebugMenuSoundMenuIndex]
add a
add a ; a * 8
ld d, 0
ld e, a
add hl, de
ld a, [hli]
ldh [hDebugMenuSoundID], a
ld a, [hli]
ldh [hDebugMenuSoundBank], a
ld a, [hli]
ld e, a
ld d, [hl]
call CopyStringToStringBuffer2
call .DisplayText
ret
.DisplayText:
ld hl, hDebugMenuSoundMenuIndex
inc [hl]
ld hl, .String
call PrintText
ld hl, hDebugMenuSoundMenuIndex
dec [hl]
ld c, 3
call DelayFrames
ret
.String:
deciram hDebugMenuSoundMenuIndex, 1, 1
text "<LINE>@"
text_from_ram wStartDay
text " "
done
.TextPointers:
; id? bank? description
dbbw $00, $3A, SoundTest_PalletTownText
dbbw $00, $3A, SoundTest_PokecenterText
dbbw $00, $3A, SoundTest_PokegymText
dbbw $07, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_QuestionMarkText
dbbw $0C, $3A, SoundTest_PokeEvolutionText
dbbw $08, $3A, SoundTest_HealingText
dbbw $02, $3A, SoundTest_QuestionMarkText
dbbw $03, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_QuestionMarkText
dbbw $00, $3A, SoundTest_ReservedText
dbbw $00, $3A, SoundTest_OakText
dbbw $00, $3A, SoundTest_RivalText
dbbw $00, $3A, SoundTest_StAnneText
dbbw $66, $3A, SoundTest_Fanfare3Text
dbbw $68, $3A, SoundTest_Fanfare5Text
dbbw $69, $3A, SoundTest_Fanfare6Text
dbbw $63, $3A, SoundTest_FanfareText
dbbw $21, $3A, SoundTest_FluteText
dbbw $04, $3B, SoundTest_BattleText
dbbw $05, $3B, SoundTest_BattleText
dbbw $00, $3B, SoundTest_BattleText
dbbw $00, $3B, SoundTest_ChampionBattleText
dbbw $0B, $3B, SoundTest_VictoryText
dbbw $00, $3B, SoundTest_VictoryText
dbbw $00, $3B, SoundTest_VictoryText
dbbw $67, $3B, SoundTest_Fanfare4Text
dbbw $68, $3B, SoundTest_Fanfare5Text_2
dbbw $6B, $3B, SoundTest_Fanfare8Text
dbbw $00, $3C, SoundTest_TitleText
dbbw $00, $3C, SoundTest_EndingText
dbbw $00, $3C, SoundTest_HallOfFameText
dbbw $00, $3C, SoundTest_KenkiYujiyoText
dbbw $00, $3C, SoundTest_JigglypuffSongText
dbbw $09, $3C, SoundTest_BikeText
dbbw $00, $3C, SoundTest_SurfText
dbbw $00, $3C, SoundTest_CasinoText
dbbw $00, $3C, SoundTest_IntroBattleText
dbbw $00, $3C, SoundTest_DungeonText
dbbw $00, $3C, SoundTest_DungeonText
dbbw $00, $3C, SoundTest_DungeonText
dbbw $00, $3C, SoundTest_DungeonText
dbbw $00, $3C, SoundTest_TouText
dbbw $00, $3C, SoundTest_TouText
dbbw $0A, $3C, SoundTest_DealerText
dbbw $00, $3C, SoundTest_DealerText
dbbw $00, $3C, SoundTest_DealerText
dbbw $66, $3C, SoundTest_Fanfare3Text_2
dbbw $69, $3C, SoundTest_Fanfare6Text_2
dbbw -1 -1, .TextPointers
SoundTest_PalletTownText:
db "マサラタウン@"
SoundTest_PokecenterText:
db "#センター@"
SoundTest_PokegymText:
db "#ジム@"
SoundTest_PokeEvolutionText:
db "#しんか@"
SoundTest_HealingText:
db "あさあさあさ@"
SoundTest_ReservedText:
db "つれていかれる@"
SoundTest_OakText:
db "オーキドとともに@"
SoundTest_RivalText:
db "ライバル@"
SoundTest_StAnneText:
db "サントアンヌゴウ@"
SoundTest_FluteText:
db "ふえ@"
SoundTest_BattleText:
db "せんとう@"
SoundTest_ChampionBattleText:
db "さいしゆうせんとう@"
SoundTest_VictoryText:
db "かち@"
SoundTest_FanfareText:
db "フぁンファーレ@"
SoundTest_Fanfare3Text:
db "フぁンファーレ3@"
SoundTest_Fanfare5Text:
db "フぁンファーレ5@"
SoundTest_Fanfare6Text:
db "フぁンファーレ6@"
SoundTest_Fanfare4Text:
db "フぁンファーレ4@"
SoundTest_Fanfare5Text_2:
db "フぁンファーレ5@"
SoundTest_Fanfare8Text:
db "フぁンファーレ8@"
SoundTest_Fanfare3Text_2:
db "フぁンファーレ3@"
SoundTest_Fanfare6Text_2:
db "フぁンファーレ6@"
SoundTest_TitleText:
db "タイトル@"
SoundTest_EndingText:
db "エンディング@"
SoundTest_HallOfFameText:
db "でんどういり@"
SoundTest_KenkiYujiyoText:
db "けんきゆうじよ@"
SoundTest_JigglypuffSongText:
db "プりンノうた@"
SoundTest_BikeText:
db "じてんしや@"
SoundTest_SurfText:
db "うみ@"
SoundTest_CasinoText:
db "カジノ@"
SoundTest_IntroBattleText:
db "オープニングデモ@"
SoundTest_DungeonText:
db "どうくつ@"
SoundTest_TouText:
db "とう@"
SoundTest_DealerText:
db "ディーラー@"
SoundTest_QuestionMarkText:
db "?@"