diff options
-rw-r--r-- | data/predef_pointers.inc | 2 | ||||
-rw-r--r-- | engine/menu/debug_menu.asm | 109 | ||||
-rw-r--r-- | home/unknown.asm | 4 | ||||
-rw-r--r-- | shim.sym | 6 | ||||
-rw-r--r-- | wram.asm | 2 |
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 @@ -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 @@ -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] |