summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/sound_test_text_pointers.inc94
-rw-r--r--engine/menu/debug_menu.asm139
-rw-r--r--home/unknown.asm8
-rw-r--r--layout.link4
-rw-r--r--ram/hram.asm16
-rw-r--r--ram/wram.asm6
-rwxr-xr-xshim.sym1
7 files changed, 254 insertions, 14 deletions
diff --git a/data/sound_test_text_pointers.inc b/data/sound_test_text_pointers.inc
new file mode 100644
index 0000000..a2a4e43
--- /dev/null
+++ b/data/sound_test_text_pointers.inc
@@ -0,0 +1,94 @@
+SoundTestTextPointers:
+; 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_HurryAlongText
+ dbbw $00, $3A, SoundTest_MeetOakText
+ dbbw $00, $3A, SoundTest_RivalText
+ dbbw $00, $3A, SoundTest_SSAnneText
+ 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_OaksLabText
+ 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_CaveText
+ dbbw $00, $3C, SoundTest_CaveText
+ dbbw $00, $3C, SoundTest_CaveText
+ dbbw $00, $3C, SoundTest_CaveText
+ dbbw $00, $3C, SoundTest_PokemonTowerText
+ dbbw $00, $3C, SoundTest_PokemonTowerText
+ 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, SoundTestTextPointers
+
+SoundTest_PalletTownText: db "マサラタウン@"
+SoundTest_PokecenterText: db "#センター@"
+SoundTest_PokegymText: db "#ジム@"
+SoundTest_PokeEvolutionText: db "#しんか@"
+SoundTest_HealingText: db "あさあさあさ@"
+SoundTest_HurryAlongText: db "つれていかれる@"
+SoundTest_MeetOakText: db "オーキドとともに@"
+SoundTest_RivalText: db "ライバル@"
+SoundTest_SSAnneText: 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_OaksLabText: db "けんきゆうじよ@"
+SoundTest_JigglypuffSongText: db "プりンノうた@"
+SoundTest_BikeText: db "じてんしや@"
+SoundTest_SurfText: db "うみ@"
+SoundTest_CasinoText: db "カジノ@"
+SoundTest_IntroBattleText: db "オープニングデモ@"
+SoundTest_CaveText: db "どうくつ@"
+SoundTest_PokemonTowerText: db "とう@"
+SoundTest_DealerText: db "ディーラー@"
+SoundTest_QuestionMarkText: db "?@"
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"
diff --git a/home/unknown.asm b/home/unknown.asm
index f06101b..e808518 100644
--- a/home/unknown.asm
+++ b/home/unknown.asm
@@ -45,14 +45,14 @@ Function20f8::
ret
-SECTION "home/unknown.asm@Unknown_094c", ROM0
+SECTION "home/unknown.asm@Debug menu sound test call", ROM0
-Function094c::
+DebugMenuSoundTest::
ldh a, [hROMBank]
push af
- ld a, BANK(Functionfe255)
+ ld a, BANK(_DebugMenuSoundTest)
call Bankswitch
- call Functionfe255
+ call _DebugMenuSoundTest
pop af
call Bankswitch
diff --git a/layout.link b/layout.link
index d2bf1f1..a52e750 100644
--- a/layout.link
+++ b/layout.link
@@ -42,7 +42,7 @@ ROM0
"home/serial.asm"
"home/interrupts.asm@Joypad dummy interrupt"
"home/joypad.asm"
- "home/unknown.asm@Unknown_094c"
+ "home/unknown.asm@Debug menu sound test call"
"home/pic.asm"
"home/copy2.asm"
"home/text.asm"
@@ -953,6 +953,8 @@ ROMX $3f
"engine/landmarks.asm@2"
org $506f
"gfx.asm@Town Map Cursor"
+ org $6255
+ "engine/menu/debug_menu.asm@Sound Test"
WRAM0
org $c000
diff --git a/ram/hram.asm b/ram/hram.asm
index 8f86a2a..da8f685 100644
--- a/ram/hram.asm
+++ b/ram/hram.asm
@@ -57,7 +57,21 @@ hJoyDebounceSrc:: db
hJoypadState2:: db
- ds 6 ; TODO
+UNION
+
+hFFA7:: db
+hFFA8:: db
+hFFA9:: db
+
+NEXTU
+
+hDebugMenuSoundMenuIndex:: db
+hDebugMenuSoundID:: db
+hDebugMenuSoundBank:: db
+
+ENDU
+
+ ds 3 ; TODO
hGraphicStartTile:: db
hMoveMon:: db
diff --git a/ram/wram.asm b/ram/wram.asm
index c861704..56e87b8 100644
--- a/ram/wram.asm
+++ b/ram/wram.asm
@@ -728,6 +728,12 @@ wTalkingTargetType:: db
wcdb1:: ds 1
wcdb2:: ds 1
+ds 1
+
+wcdb4:: ds 1
+wcdb5:: ds 1
+wcdb6:: ds 1
+
SECTION "CDB9", WRAM0[$CDB9]
wcdb9:: ds 1
diff --git a/shim.sym b/shim.sym
index 63e4f3f..7b68e54 100755
--- a/shim.sym
+++ b/shim.sym
@@ -167,7 +167,6 @@
3F:4C24 Functionfcc24
3F:4E3E Functionfce3e
3F:5B66 Functionfdb66
-3F:6255 Functionfe255
3F:64CE MonsterTest
3F:654E PicTest
3F:6750 PicTestMenu