diff options
Diffstat (limited to 'engine/menu/debug_menu.asm')
-rw-r--r-- | engine/menu/debug_menu.asm | 139 |
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" |