diff options
-rw-r--r-- | asm/nakamura_debug_menu.s | 339 | ||||
-rw-r--r-- | src/debug/nakamura_debug_menu.c | 132 |
2 files changed, 132 insertions, 339 deletions
diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s index 76684feef..1564cf784 100644 --- a/asm/nakamura_debug_menu.s +++ b/asm/nakamura_debug_menu.s @@ -5,345 +5,6 @@ .text - thumb_func_start debug_sub_81603B8 -debug_sub_81603B8: - push {r4, r5, r6, r7, lr} - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - mov r0, #0x5 - bl PlaySE - ldr r7, ._259 @ _nakamuraData4 - ldrb r4, [r7] - add r0, r4, #0 - mov r1, #0x6 - bl __udivsi3 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - add r0, r4, #0 - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, ._259 + 4 @ _843E5D1 - add r0, r5, r0 - ldrb r2, [r0] - lsl r3, r4, #0x1 - add r1, r3, #1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r3, r3, #0x2 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - add r0, r2, #0 - bl Menu_BlankWindowRect - cmp r6, #0 - bne ._256 @cond_branch - cmp r4, #0 - beq ._257 @cond_branch - ldrb r0, [r7] - sub r0, r0, #0x1 - b ._258 -._260: - .align 2, 0 -._259: - .word _nakamuraData4 - .word _843E5D1 -._257: - lsl r0, r5, #0x1 - add r0, r0, r5 - lsl r0, r0, #0x1 - add r0, r0, #0x5 -._258: - strb r0, [r7] -._256: - ldr r1, ._264 @ _nakamuraData4 - cmp r6, #0x1 - bne ._261 @cond_branch - cmp r4, #0x5 - beq ._262 @cond_branch - ldrb r0, [r1] - add r0, r0, #0x1 - b ._263 -._265: - .align 2, 0 -._264: - .word _nakamuraData4 -._262: - lsl r0, r5, #0x1 - add r0, r0, r5 - lsl r0, r0, #0x1 -._263: - strb r0, [r1] -._261: - cmp r6, #0x2 - bne ._266 @cond_branch - cmp r5, #0 - beq ._267 @cond_branch - ldrb r0, [r1] - sub r0, r0, #0x6 - b ._268 -._267: - add r0, r4, #0 - add r0, r0, #0xc -._268: - strb r0, [r1] -._266: - cmp r6, #0x3 - bne ._271 @cond_branch - cmp r5, #0x2 - beq ._270 @cond_branch - ldrb r0, [r1] - add r0, r0, #0x6 - strb r0, [r1] - b ._271 -._270: - strb r4, [r1] -._271: - ldrb r4, [r1] - add r0, r4, #0 - mov r1, #0x6 - bl __udivsi3 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - add r0, r4, #0 - mov r1, #0x6 - bl __umodsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - ldr r0, ._272 @ _843E5D1 - add r0, r5, r0 - ldrb r0, [r0] - lsr r1, r1, #0x17 - add r1, r1, #0x1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - mov r2, #0xff - bl PrintTriangleCursorWithPalette - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._273: - .align 2, 0 -._272: - .word _843E5D1 - - thumb_func_end debug_sub_81603B8 - - thumb_func_start debug_sub_8160498 -debug_sub_8160498: - push {r4, lr} - ldr r1, ._276 @ gMain - ldrh r2, [r1, #0x2e] - mov r0, #0x40 - and r0, r0, r2 - cmp r0, #0 - beq ._274 @cond_branch - mov r0, #0x0 - b ._281 -._277: - .align 2, 0 -._276: - .word gMain -._274: - mov r0, #0x80 - and r0, r0, r2 - cmp r0, #0 - beq ._278 @cond_branch - mov r0, #0x1 - b ._281 -._278: - mov r0, #0x20 - and r0, r0, r2 - cmp r0, #0 - beq ._280 @cond_branch - mov r0, #0x2 - b ._281 -._280: - mov r0, #0x10 - and r0, r0, r2 - cmp r0, #0 - beq ._282 @cond_branch - mov r0, #0x3 -._281: - bl debug_sub_81603B8 - mov r0, #0x0 - b ._311 -._282: - ldrh r1, [r1, #0x30] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._284 @cond_branch - ldr r4, ._289 @ _nakamuraData4 - ldrb r0, [r4] - cmp r0, #0x5 - bhi ._285 @cond_branch - mov r1, #0x1 - bl debug_sub_81601C8 -._285: - ldrb r0, [r4] - sub r0, r0, #0x6 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._286 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_8160258 -._286: - ldrb r0, [r4] - sub r0, r0, #0xc - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._306 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 - b ._300 -._290: - .align 2, 0 -._289: - .word _nakamuraData4 -._284: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._291 @cond_branch - ldr r4, ._294 @ _nakamuraData4 - ldrb r0, [r4] - cmp r0, #0x5 - bhi ._304 @cond_branch - mov r1, #0x1 - neg r1, r1 - b ._293 -._295: - .align 2, 0 -._294: - .word _nakamuraData4 -._291: - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._296 @cond_branch - ldr r4, ._301 @ _nakamuraData4 - ldrb r0, [r4] - cmp r0, #0x5 - bhi ._297 @cond_branch - mov r1, #0xa - bl debug_sub_81601C8 -._297: - ldrb r0, [r4] - sub r0, r0, #0x6 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._298 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_8160258 -._298: - ldrb r0, [r4] - sub r0, r0, #0xc - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._306 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 - b ._300 -._302: - .align 2, 0 -._301: - .word _nakamuraData4 -._296: - mov r0, #0x80 - lsl r0, r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._303 @cond_branch - ldr r4, ._308 @ _nakamuraData4 - ldrb r0, [r4] - cmp r0, #0x5 - bhi ._304 @cond_branch - mov r1, #0xa - neg r1, r1 -._293: - bl debug_sub_81601C8 -._304: - ldrb r0, [r4] - sub r0, r0, #0x6 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._305 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_8160258 -._305: - ldrb r0, [r4] - sub r0, r0, #0xc - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._306 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 - neg r1, r1 -._300: - bl debug_sub_816027C -._306: - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_816017C - mov r0, #0x0 - b ._311 -._309: - .align 2, 0 -._308: - .word _nakamuraData4 -._303: - mov r0, #0x8 - and r0, r0, r2 - cmp r0, #0 - bne ._310 @cond_branch - mov r0, #0x0 - b ._311 -._310: - bl debug_sub_8160308 - bl CloseMenu - mov r0, #0x1 -._311: - pop {r4} - pop {r1} - bx r1 - - thumb_func_end debug_sub_8160498 - thumb_func_start debug_sub_816062C debug_sub_816062C: push {r4, r5, r6, r7, lr} diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c index 5840a5ebf..1b640f7bb 100644 --- a/src/debug/nakamura_debug_menu.c +++ b/src/debug/nakamura_debug_menu.c @@ -2,6 +2,8 @@ #include "global.h" #include "constants/items.h" #include "constants/species.h" +#include "constants/songs.h" +#include "sound.h" #include "data2.h" #include "strings.h" #include "random.h" @@ -991,4 +993,134 @@ void debug_sub_8160308(void) } } +void debug_sub_81603B8(u8 i) +{ + u8 q; + u8 r; + PlaySE(SE_SELECT); + q = _nakamuraData4 / 6; + r = _nakamuraData4 % 6; + Menu_BlankWindowRect(_843E5D1[q], r * 2 + 1, _843E5D1[q], r * 2 + 2); + + if (i == 0) + { + if (r != 0) + _nakamuraData4--; + else + _nakamuraData4 = q * 6 + 5; + } + + if (i == 1) + { + if (r != 5) + _nakamuraData4++; + else + _nakamuraData4 = q * 6; + } + + if (i == 2) + { + if (q != 0) + _nakamuraData4 -= 6; + else + _nakamuraData4 = 12 + r; + } + + if (i == 3) + { + if (q != 2) + _nakamuraData4 += 6; + else + _nakamuraData4 = r; + } + + q = _nakamuraData4 / 6; + r = _nakamuraData4 % 6; + PrintTriangleCursorWithPalette(_843E5D1[q], r * 2 + 1, 0xFF); +} + +bool8 debug_sub_8160498(void) +{ + if (gMain.newKeys & DPAD_UP) + { + debug_sub_81603B8(0); + return FALSE; + } + + if (gMain.newKeys & DPAD_DOWN) + { + debug_sub_81603B8(1); + return FALSE; + } + + if (gMain.newKeys & DPAD_LEFT) + { + debug_sub_81603B8(2); + return FALSE; + } + + if (gMain.newKeys & DPAD_RIGHT) + { + debug_sub_81603B8(3); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & A_BUTTON) + { + if (_nakamuraData4 < 6) + debug_sub_81601C8(_nakamuraData4, +1); + if (_nakamuraData4 >= 6 && _nakamuraData4 < 12) + debug_sub_8160258(_nakamuraData4 % 6); + if (_nakamuraData4 >= 12 && _nakamuraData4 < 18) + debug_sub_816027C(_nakamuraData4 % 6, +1); + debug_sub_816017C(_nakamuraData4 % 6); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & B_BUTTON) + { + if (_nakamuraData4 < 6) + debug_sub_81601C8(_nakamuraData4, -1); + if (_nakamuraData4 >= 6 && _nakamuraData4 < 12) + debug_sub_8160258(_nakamuraData4 % 6); + if (_nakamuraData4 >= 12 && _nakamuraData4 < 18) + debug_sub_816027C(_nakamuraData4 % 6, -1); + debug_sub_816017C(_nakamuraData4 % 6); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (_nakamuraData4 < 6) + debug_sub_81601C8(_nakamuraData4, +10); + if (_nakamuraData4 >= 6 && _nakamuraData4 < 12) + debug_sub_8160258(_nakamuraData4 % 6); + if (_nakamuraData4 >= 12 && _nakamuraData4 < 18) + debug_sub_816027C(_nakamuraData4 % 6, +1); + debug_sub_816017C(_nakamuraData4 % 6); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (_nakamuraData4 < 6) + debug_sub_81601C8(_nakamuraData4, -10); + if (_nakamuraData4 >= 6 && _nakamuraData4 < 12) + debug_sub_8160258(_nakamuraData4 % 6); + if (_nakamuraData4 >= 12 && _nakamuraData4 < 18) + debug_sub_816027C(_nakamuraData4 % 6, -1); + debug_sub_816017C(_nakamuraData4 % 6); + return FALSE; + } + + if (gMain.newKeys & START_BUTTON) + { + debug_sub_8160308(); + CloseMenu(); + return TRUE; + } + + return FALSE; +} + #endif // DEBUG |