summaryrefslogtreecommitdiff
path: root/engine/menu/debug_menu.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/menu/debug_menu.asm')
-rw-r--r--engine/menu/debug_menu.asm139
1 files changed, 132 insertions, 7 deletions
diff --git a/engine/menu/debug_menu.asm b/engine/menu/debug_menu.asm
index e33d61c..728dc8e 100644
--- a/engine/menu/debug_menu.asm
+++ b/engine/menu/debug_menu.asm
@@ -25,7 +25,7 @@ DebugMenu::
DebugJumpTable::
dw DebugMenuOptionFight
dw DebugMenuOptionField
- dw Function094c ; sound test
+ dw DebugMenuSoundTest ; to home bank
dw DebugMenuOptionSubGames
dw DebugMenuOptionMonsterTest
dw DebugMenuOptionName
@@ -82,19 +82,19 @@ DebugMenuOptionSubGames::
DebugMenuOptionMonsterTest::
ld hl, wPokedexOwned
ld de, wPokedexSeen
- ld b, $1F
- ld a, $FF
+ ld b, NUM_POKEMON / 8
+ ld a, %11111111
.loop
- ld [hl+], a
+ ld [hli], a
ld [de], a
inc de
dec b
jr nz, .loop
- ld a, $03
+ ld a, (1 << ((NUM_POKEMON - 1) % 8)) - 1 ; discount #251
ld [hl], a
ld [de], a
callab MonsterTest
- ld a, $e4
+ ld a, %11100100
ldh [rBGP], a
Function40eb::
@@ -102,6 +102,131 @@ Function40eb::
DebugMenuOptionName::
callab OpenTrainerGear
- ld a, $e4
+ 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, $ff
+ ld [wcdb4], a
+ jr .RefreshScreenAndLoop
+
+.DetermineDescriptionPointer:
+ ld hl, SoundTestTextPointers
+ ldh a, [hDebugMenuSoundMenuIndex]
+ add a
+ add a ; a * 4
+ 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
+
+INCLUDE "data/sound_test_text_pointers.inc"