diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-10 09:54:44 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-10 09:54:44 -0500 |
commit | 78ba4a3f3d75a0224e2b2592ff8f0953d01e5229 (patch) | |
tree | b20b7761fb18da92c75244d17937978160a62404 | |
parent | 214702b4e0a49c843099cb67a3fd2251d59a1566 (diff) |
through TomomichiDebugMenu_ContestGraphics
-rw-r--r-- | asm/tomomichi_debug_menu.s | 194 | ||||
-rw-r--r-- | data/debug_menu_tomomichi.s | 53 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/debug/tomomichi_debug_menu.c | 118 |
4 files changed, 117 insertions, 249 deletions
diff --git a/asm/tomomichi_debug_menu.s b/asm/tomomichi_debug_menu.s index c0dfe38e0..644708022 100644 --- a/asm/tomomichi_debug_menu.s +++ b/asm/tomomichi_debug_menu.s @@ -3,198 +3,6 @@ .include "constants/gba_constants.inc" .include "include/macros.inc" - thumb_func_start InitTomomichiDebugWindow -InitTomomichiDebugWindow: - push {lr} - bl debug_sub_808B874 - mov r0, #0x0 - pop {r1} - bx r1 - - thumb_func_end InitTomomichiDebugWindow - - thumb_func_start debug_sub_808B868 -debug_sub_808B868: - push {lr} - bl c2_exit_to_overworld_1_continue_scripts_restart_music - pop {r0} - bx r0 - - thumb_func_end debug_sub_808B868 - - thumb_func_start debug_sub_808B874 -debug_sub_808B874: - push {lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xd - mov r3, #0xf - bl Menu_DrawStdWindowFrame - ldr r3, ._1 @ gUnknown_Debug_083C0CBA - mov r0, #0x1 - mov r1, #0x1 - mov r2, #0x7 - bl Menu_PrintItems - ldr r0, ._1 + 4 @ gDebug_0300071D - ldrb r0, [r0] - str r0, [sp] - mov r0, #0xc - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - mov r3, #0x7 - bl InitMenu - ldr r1, ._1 + 8 @ gMenuCallback - ldr r0, ._1 + 12 @ debug_sub_808B8C8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._2: - .align 2, 0 -._1: - .word gUnknown_Debug_083C0CBA - .word gDebug_0300071D - .word gMenuCallback - .word debug_sub_808B8C8+1 - - thumb_func_end debug_sub_808B874 - - thumb_func_start debug_sub_808B8C8 -debug_sub_808B8C8: - push {r4, lr} - ldr r4, ._7 @ gMain - ldrh r1, [r4, #0x2e] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._3 @cond_branch - mov r0, #0x5 - bl PlaySE - mov r0, #0x1 - neg r0, r0 - bl Menu_MoveCursor - ldr r1, ._7 + 4 @ gDebug_0300071D - strb r0, [r1] -._3: - ldrh r1, [r4, #0x2e] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._4 @cond_branch - mov r0, #0x5 - bl PlaySE - mov r0, #0x1 - bl Menu_MoveCursor - ldr r1, ._7 + 4 @ gDebug_0300071D - strb r0, [r1] -._4: - ldrh r1, [r4, #0x2e] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._5 @cond_branch - mov r0, #0x5 - bl PlaySE - ldr r1, ._7 + 8 @ gUnknown_Debug_083C0CBA - ldr r0, ._7 + 4 @ gDebug_0300071D - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r1, r1, #0x4 - add r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - b ._10 -._8: - .align 2, 0 -._7: - .word gMain - .word gDebug_0300071D - .word gUnknown_Debug_083C0CBA -._5: - mov r0, #0xa - and r0, r0, r1 - cmp r0, #0 - bne ._9 @cond_branch - mov r0, #0x0 - b ._10 -._9: - bl CloseMenu - mov r0, #0x1 -._10: - pop {r4} - pop {r1} - bx r1 - - thumb_func_end debug_sub_808B8C8 - - thumb_func_start TomomichiDebugMenu_ContestGraphics -TomomichiDebugMenu_ContestGraphics: - push {r4, lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x14 - mov r3, #0xb - bl Menu_DrawStdWindowFrame - ldr r0, ._11 @ gUnknown_Debug_083C0CF4 - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - ldr r3, ._11 + 4 @ gUnknown_Debug_083C0D2C - mov r0, #0x2 - mov r1, #0x3 - mov r2, #0x4 - bl Menu_PrintItems - mov r4, #0x0 - str r4, [sp] - mov r0, #0x13 - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x3 - mov r3, #0x4 - bl InitMenu - ldr r1, ._11 + 8 @ gMenuCallback - ldr r0, ._11 + 12 @ debug_sub_808BC48 - str r0, [r1] - ldr r0, ._11 + 16 @ gDebug_03000700 - mov r2, #0x1 - strh r2, [r0] - ldr r1, ._11 + 20 @ gDebug_03000704 - ldr r0, ._11 + 24 @ 0x6f33 - str r0, [r1] - ldr r0, ._11 + 28 @ gDebug_03000708 - str r4, [r0] - ldr r0, ._11 + 32 @ gDebug_0300070C - strb r2, [r0] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r4} - pop {r1} - bx r1 -._12: - .align 2, 0 -._11: - .word gUnknown_Debug_083C0CF4 - .word gUnknown_Debug_083C0D2C - .word gMenuCallback - .word debug_sub_808BC48+1 - .word gDebug_03000700 - .word gDebug_03000704 - .word 0x6f33 - .word gDebug_03000708 - .word gDebug_0300070C - - thumb_func_end TomomichiDebugMenu_ContestGraphics - thumb_func_start TomomichiDebugMenu_ArtMusGraphics TomomichiDebugMenu_ArtMusGraphics: push {r4, lr} @@ -229,7 +37,7 @@ TomomichiDebugMenu_ArtMusGraphics: ldr r0, ._13 + 16 @ gDebug_03000700 mov r2, #0x1 strh r2, [r0] - ldr r1, ._13 + 20 @ gDebug_03000704 + ldr r1, ._13 + 20 @ ` ldr r0, ._13 + 24 @ 0x6f33 str r0, [r1] ldr r0, ._13 + 28 @ gDebug_03000708 diff --git a/data/debug_menu_tomomichi.s b/data/debug_menu_tomomichi.s index 19401bb85..a01d6adb1 100644 --- a/data/debug_menu_tomomichi.s +++ b/data/debug_menu_tomomichi.s @@ -5,59 +5,6 @@ .if DEBUG -gUnknown_Debug_083C0C54:: @ 0x83C0C54 - .string "Contest graphics$" - -gUnknown_Debug_083C0C65:: @ 0x83C0C65 - .string "Art Mus. graphics$" - -gUnknown_Debug_083C0C77:: @ 0x83C0C77 - .string "Preview data$" - -gUnknown_Debug_083C0C84:: @ 0x83C0C84 - .string "TRICK HOUSE$" - -gUnknown_Debug_083C0C90:: @ 0x83C0C90 - .string "Control events$" - -gUnknown_Debug_083C0C9F:: @ 0x83C0C9F - .string "Control flags$" - -gUnknown_Debug_083C0CAD:: @ 0x83C0CAD - .string "Control WORK$" - - .align 2 -gUnknown_Debug_083C0CBA:: @ 0x83C0CBA - .4byte gUnknown_Debug_083C0C54, TomomichiDebugMenu_ContestGraphics+1 - .4byte gUnknown_Debug_083C0C65, TomomichiDebugMenu_ArtMusGraphics+1 - .4byte gUnknown_Debug_083C0C77, TomomichiDebugMenu_PreviewData+1 - .4byte gUnknown_Debug_083C0C84, TomomichiDebugMenu_TrickHouse+1 - .4byte gUnknown_Debug_083C0C90, TomomichiDebugMenu_ControlEvents+1 - .4byte gUnknown_Debug_083C0C9F, TomomichiDebugMenu_ControlFlags+1 - .4byte gUnknown_Debug_083C0CAD, TomomichiDebugMenu_ControlWorks+1 - -gUnknown_Debug_083C0CF4:: @ 0x83C0CF4 - .string "Contest$" - -gUnknown_Debug_083C0CFC:: @ 0x83C0CFC - .string "Pokémon No.$" - -gUnknown_Debug_083C0D08:: @ 0x83C0D08 - .string "ID rnd. digit$" - -gUnknown_Debug_083C0D16:: @ 0x83C0D16 - .string "Contest Type$" - -gUnknown_Debug_083C0D23:: @ 0x83C0D23 - .string "Poké Art$" - - .align 2 -gUnknown_Debug_083C0D2C:: @ 0x83C0D2C - .4byte gUnknown_Debug_083C0CFC, TomomichiDebugMenu_Config+1 - .4byte gUnknown_Debug_083C0D08, TomomichiDebugMenu_Config+1 - .4byte gUnknown_Debug_083C0D16, TomomichiDebugMenu_Config+1 - .4byte gUnknown_Debug_083C0D23, TomomichiDebugMenu_ContestGraphics_Show+1 - gUnknown_Debug_083C0D4C:: @ 0x83C0D4C .string "Art Mus.$" diff --git a/ld_script.txt b/ld_script.txt index d66631d62..3887d59e7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -560,6 +560,7 @@ SECTIONS { src/field/field_screen_effect.o(.rodata); src/battle/battle_setup.o(.rodata); src/engine/cable_club.o(.rodata); + src/debug/tomomichi_debug_menu.o(.rodata); data/debug_menu_tomomichi.o(.rodata); data/debug_menu_nohara.o(.rodata); src/debug/mori_debug_menu.o(.rodata); diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c index c3616797e..143989c66 100644 --- a/src/debug/tomomichi_debug_menu.c +++ b/src/debug/tomomichi_debug_menu.c @@ -1,11 +1,17 @@ #if DEBUG #include "global.h" +#include "constants/songs.h" +#include "overworld.h" +#include "menu.h" +#include "start_menu.h" +#include "main.h" +#include "sound.h" // These should be static, uninitialized once it gets decompiled. #define BSS_DATA __attribute__((section(".bss"))) -BSS_DATA u8 gDebug_03000700[4] = {0}; -BSS_DATA u8 gDebug_03000704[4] = {0}; -BSS_DATA u8 gDebug_03000708[4] = {0}; +BSS_DATA u16 gDebug_03000700 = 0; +BSS_DATA u32 gDebug_03000704 = 0; +BSS_DATA u32 gDebug_03000708 = 0; BSS_DATA u8 gDebug_0300070C = 0; BSS_DATA u8 gDebug_0300070D = 0; BSS_DATA u8 gDebug_0300070E = 0; @@ -17,4 +23,110 @@ BSS_DATA u8 gDebug_0300071F = 0; BSS_DATA u8 gDebug_03000720 = 0; BSS_DATA u8 gDebug_03000721 = 0; +bool8 debug_sub_808B874(void); +bool8 debug_sub_808B8C8(void); +bool8 TomomichiDebugMenu_ContestGraphics(void); +bool8 TomomichiDebugMenu_ArtMusGraphics(void); +bool8 TomomichiDebugMenu_PreviewData(void); +bool8 TomomichiDebugMenu_TrickHouse(void); +bool8 TomomichiDebugMenu_ControlEvents(void); +bool8 TomomichiDebugMenu_ControlFlags(void); +bool8 TomomichiDebugMenu_ControlWorks(void); +bool8 TomomichiDebugMenu_Config(void); +bool8 TomomichiDebugMenu_ContestGraphics_Show(void); +bool8 debug_sub_808BC48(void); + +const u8 gUnknown_Debug_083C0C54[] = _("Contest graphics"); +const u8 gUnknown_Debug_083C0C65[] = _("Art Mus. graphics"); +const u8 gUnknown_Debug_083C0C77[] = _("Preview data"); +const u8 gUnknown_Debug_083C0C84[] = _("TRICK HOUSE"); +const u8 gUnknown_Debug_083C0C90[] = _("Control events"); +const u8 gUnknown_Debug_083C0C9F[] = _("Control flags"); +const u8 gUnknown_Debug_083C0CAD[] = _("Control WORK"); + +const struct MenuAction gUnknown_Debug_083C0CBA[] = { + {gUnknown_Debug_083C0C54, TomomichiDebugMenu_ContestGraphics}, + {gUnknown_Debug_083C0C65, TomomichiDebugMenu_ArtMusGraphics}, + {gUnknown_Debug_083C0C77, TomomichiDebugMenu_PreviewData}, + {gUnknown_Debug_083C0C84, TomomichiDebugMenu_TrickHouse}, + {gUnknown_Debug_083C0C90, TomomichiDebugMenu_ControlEvents}, + {gUnknown_Debug_083C0C9F, TomomichiDebugMenu_ControlFlags}, + {gUnknown_Debug_083C0CAD, TomomichiDebugMenu_ControlWorks}, +}; + +const u8 gUnknown_Debug_083C0CF4[] = _("Contest"); + +const u8 gUnknown_Debug_083C0CFC[] = _("Pokémon No."); +const u8 gUnknown_Debug_083C0D08[] = _("ID rnd. digit"); +const u8 gUnknown_Debug_083C0D16[] = _("Contest Type"); +const u8 gUnknown_Debug_083C0D23[] = _("Poké Art"); + +const struct MenuAction gUnknown_Debug_083C0D2C[] = { + {gUnknown_Debug_083C0CFC, TomomichiDebugMenu_Config}, + {gUnknown_Debug_083C0D08, TomomichiDebugMenu_Config}, + {gUnknown_Debug_083C0D16, TomomichiDebugMenu_Config}, + {gUnknown_Debug_083C0D23, TomomichiDebugMenu_ContestGraphics_Show} +}; + +bool8 InitTomomichiDebugWindow(void) +{ + debug_sub_808B874(); + return FALSE; +} + +void debug_sub_808B868(void) +{ + c2_exit_to_overworld_1_continue_scripts_restart_music(); +} + +bool8 debug_sub_808B874(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 13, 15); + Menu_PrintItems(1, 1, 7, gUnknown_Debug_083C0CBA); + InitMenu(0, 1, 1, 7, gDebug_0300071D, 12); + gMenuCallback = debug_sub_808B8C8; + return FALSE; +} + +bool8 debug_sub_808B8C8(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + gDebug_0300071D = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + gDebug_0300071D = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return gUnknown_Debug_083C0CBA[gDebug_0300071D].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +bool8 TomomichiDebugMenu_ContestGraphics(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 20, 11); + Menu_PrintText(gUnknown_Debug_083C0CF4, 1, 1); + Menu_PrintItems(2, 3, 4, gUnknown_Debug_083C0D2C); + InitMenu(0, 1, 3, 4, 0, 19); + gMenuCallback = debug_sub_808BC48; + gDebug_03000700 = 1; + gDebug_03000704 = 0x6f33; + gDebug_03000708 = 0; + gDebug_0300070C = 1; + return FALSE; +} + #endif |