summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/predef_pointers.inc2
-rw-r--r--engine/menu/debug_menu.asm109
-rw-r--r--home/unknown.asm4
-rw-r--r--shim.sym6
-rw-r--r--wram.asm2
5 files changed, 115 insertions, 8 deletions
diff --git a/data/predef_pointers.inc b/data/predef_pointers.inc
index 0b39ae2..64dd7fd 100644
--- a/data/predef_pointers.inc
+++ b/data/predef_pointers.inc
@@ -15,7 +15,7 @@ PredefPointers:: ; 1:62d3
add_predef Function5d27
add_predef Function6713
add_predef Function66b1
- add_predef Function4031
+ add_predef DebugMenu
add_predef Functionce10
add_predef Functioncd6f
add_predef Functioncde3
diff --git a/engine/menu/debug_menu.asm b/engine/menu/debug_menu.asm
new file mode 100644
index 0000000..cc19edb
--- /dev/null
+++ b/engine/menu/debug_menu.asm
@@ -0,0 +1,109 @@
+INCLUDE "constants.asm"
+
+SECTION "Debug Menu", ROMX[$4031], BANK[$01]
+
+DebugMenu:: ; $4031
+call ClearTileMap
+call ClearWindowData
+call LoadFont
+call LoadFontsBattleExtra
+call ClearSprites
+call GetMemSGBLayout
+xor a
+ld [wWhichIndexSet], a
+ld hl, DebugMenuData
+call LoadMenuHeader
+call OpenMenu
+call CloseWindow
+jp c, TitleSequenceStart
+ld a, $41
+ld [wce5f], a
+ld a, [wMenuSelection]
+ld hl, DebugJumpTable1
+jp CallJumptable
+
+DebugJumpTable1:: ; 4064
+ dw DebugMenuOptionFight
+ dw DebugMenuOptionField
+ dw Function094c ; sound test
+ dw DebugMenuOptionSubGames
+ dw DebugMenuOptionMonsterTest
+ dw DebugMenuOptionName
+
+DebugMenuData: ; 4070
+ db MENU_BACKUP_TILES ; flags
+ menu_coords 05, 02, SCREEN_WIDTH - 7, SCREEN_HEIGHT - 1
+ dw .MenuData
+ db 01 ; default option
+
+.MenuData: ; 4078
+ db $A0
+ db 0 ; items
+ dw $40A0
+ 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:: ; 40A8
+ ld hl, wce63
+ set 1, [hl] ; set debug mode
+ jp Function555C
+
+DebugMenuOptionFight:: ; 40B0
+ ld hl, wce63
+ set 0, [hl]
+ ld a, $54
+ call Predef
+ ld hl, wce63
+ res 0, [hl]
+ ret
+
+DebugMenuOptionSubGames:: ; 40C0
+ callab CallSubGameMenu
+ jp DebugMenu
+
+DebugMenuOptionMonsterTest:: ; 40CB
+ ld hl, wPokedexOwned
+ ld de, wPokedexSeen
+ ld b, $1F
+ ld a, $FF
+.loop
+ ld [hl+], a
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .loop
+ ld a, $03
+ ld [hl], a
+ ld [de], a
+ callab MonsterTest
+ ld a, $e4
+ ldh [rBGP], a
+
+Function40eb::
+ jp DebugMenu
+
+DebugMenuOptionName:: ; 40EE
+ callab OpenPokegear
+ ld a, $e4
+ ldh [rBGP], a
+ jp DebugMenu
+
+; 40FD \ No newline at end of file
diff --git a/home/unknown.asm b/home/unknown.asm
index 6568b5d..3962377 100644
--- a/home/unknown.asm
+++ b/home/unknown.asm
@@ -53,10 +53,8 @@ Function094c::
push af
ld a, BANK(Functionfe255)
call Bankswitch
-
call Functionfe255
pop af
call Bankswitch
-
- jp Function4031
+ jp DebugMenu
diff --git a/shim.sym b/shim.sym
index 3948316..3525f84 100644
--- a/shim.sym
+++ b/shim.sym
@@ -1,14 +1,12 @@
; ROM0
00:3CA8 InitSpriteAnimStruct
-01:4031 Function4031
-01:4031 DebugMenu
-01:40EB Function40eb
01:5007 Function5007
01:50B9 Function50b9
01:5190 _UpdateSprites
01:5190 Function5190
01:53CC MainMenu
+01:555C Function555C
01:5D27 Function5d27
01:63D8 ReanchorBGMap_NoOAMUpdate
01:6437 LoadFonts_NoOAMUpdate
@@ -29,6 +27,7 @@
02:4786 Function8786
02:4856 DecompTownMapTilemap
02:48DA DecompTownMapTilemap.tilemap
+02:4AAB OpenPokegear
02:4C7C DrawMap
02:4DC2 TownMapGfx
02:4F32 PokegearRadioGfx
@@ -446,6 +445,7 @@
3F:654E PicTest
3F:6750 PicTestMenu
3F:6755 PicTestMenu.loop
+3F:67A1 CallSubGameMenu
00:CB6F wPlayerStepDirection
00:CE67 wPlayerName
diff --git a/wram.asm b/wram.asm
index 45e1a89..c9d7287 100644
--- a/wram.asm
+++ b/wram.asm
@@ -570,7 +570,7 @@ wTimeOfDay:: db ; ce3d
SECTION "CE5F", WRAM0[$CE5F]
-wce5f:: ; ce5f ; TODO
+wce5f:: ; ce5f ; debug menu writes $41 to it
db
SECTION "CE61", WRAM0[$CE61]