diff options
-rw-r--r-- | asm/nakamura_debug_menu.s | 305 | ||||
-rw-r--r-- | src/debug/nakamura_debug_menu.c | 85 |
2 files changed, 80 insertions, 310 deletions
diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s index 6ddce1855..e9072f6dd 100644 --- a/asm/nakamura_debug_menu.s +++ b/asm/nakamura_debug_menu.s @@ -5,311 +5,6 @@ .text - thumb_func_start debug_sub_815F62C -debug_sub_815F62C: - push {lr} - ldr r1, ._59 @ _nakamuraData0 - mov r0, #0x0 - strb r0, [r1] - ldr r1, ._59 + 4 @ gMenuCallback - ldr r0, ._59 + 8 @ debug_sub_815F5C4 - str r0, [r1] - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xb - mov r3, #0xb - bl Menu_DrawStdWindowFrame - bl debug_sub_815F4D8 - mov r0, #0x0 - pop {r1} - bx r1 -._60: - .align 2, 0 -._59: - .word _nakamuraData0 - .word gMenuCallback - .word debug_sub_815F5C4+1 - - thumb_func_end debug_sub_815F62C - - thumb_func_start debug_sub_815F668 -debug_sub_815F668: - push {r4, r5, r6, lr} - ldr r0, ._61 @ _nakamuraData0 - ldrb r0, [r0] - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x5 - ldr r0, ._61 + 4 @ gSaveBlock1 - add r1, r1, r0 - ldrb r4, [r1, #0x3] - lsl r4, r4, #0x18 - ldrb r0, [r1, #0x2] - lsl r0, r0, #0x10 - orr r4, r4, r0 - ldrb r0, [r1, #0x1] - lsl r0, r0, #0x8 - orr r4, r4, r0 - ldrb r0, [r1] - orr r4, r4, r0 - ldr r5, ._61 + 8 @ gStringVar1 - ldr r6, ._61 + 12 @ 0x186a0 - add r0, r4, #0 - add r1, r6, #0 - bl __udivsi3 - add r1, r0, #0 - add r0, r5, #0 - mov r2, #0x2 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r5, #0 - mov r1, #0x2 - mov r2, #0x7 - bl Menu_PrintText - add r0, r4, #0 - add r1, r6, #0 - bl __umodsi3 - add r1, r0, #0 - add r0, r5, #0 - mov r2, #0x2 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r5, #0 - mov r1, #0x7 - mov r2, #0x7 - bl Menu_PrintText - pop {r4, r5, r6} - pop {r0} - bx r0 -._62: - .align 2, 0 -._61: - .word _nakamuraData0 - .word gSaveBlock1+0x1a11 - .word gStringVar1 - .word 0x186a0 - - thumb_func_end debug_sub_815F668 - - thumb_func_start debug_sub_815F6E4 -debug_sub_815F6E4: - push {r4, lr} - mov r0, #0x2 - mov r1, #0x3 - mov r2, #0xb - mov r3, #0x4 - bl Menu_BlankWindowRect - ldr r4, ._63 @ gStringVar1 - ldr r0, ._63 + 4 @ _nakamuraData0 - ldrb r0, [r0] - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x5 - ldr r0, ._63 + 8 @ gSaveBlock1 - add r1, r1, r0 - add r0, r4, #0 - mov r2, #0x7 - bl StringCopyN - mov r1, #0xff - strb r1, [r0] - add r0, r4, #0 - mov r1, #0x2 - mov r2, #0x3 - bl Menu_PrintText - pop {r4} - pop {r0} - bx r0 -._64: - .align 2, 0 -._63: - .word gStringVar1 - .word _nakamuraData0 - .word gSaveBlock1+0x1a0a - - thumb_func_end debug_sub_815F6E4 - - thumb_func_start debug_sub_815F72C -debug_sub_815F72C: - push {r4, r5, lr} - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0xb - mov r3, #0xa - bl Menu_BlankWindowRect - ldr r4, ._66 @ gStringVar1 - ldr r5, ._66 + 4 @ _nakamuraData0 - ldrb r1, [r5] - add r0, r4, #0 - mov r2, #0x0 - mov r3, #0x2 - bl ConvertIntToDecimalStringN - add r0, r4, #0 - mov r1, #0x2 - mov r2, #0x1 - bl Menu_PrintText - ldr r2, ._66 + 8 @ gSaveBlock1 - ldrb r1, [r5] - lsl r0, r1, #0x2 - add r0, r0, r1 - lsl r0, r0, #0x5 - add r0, r0, r2 - ldr r1, ._66 + 12 @ 0x1a08 - add r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq ._65 @cond_branch - bl debug_sub_815F6E4 - bl debug_sub_815F668 -._65: - pop {r4, r5} - pop {r0} - bx r0 -._67: - .align 2, 0 -._66: - .word gStringVar1 - .word _nakamuraData0 - .word gSaveBlock1 - .word 0x1a08 - - thumb_func_end debug_sub_815F72C - - thumb_func_start debug_sub_815F788 -debug_sub_815F788: - push {lr} - mov r0, #0x2 - mov r1, #0x5 - mov r2, #0xb - mov r3, #0x6 - bl Menu_BlankWindowRect - ldr r0, ._68 @ Str_843E574 - ldr r1, ._68 + 4 @ _nakamuraData2 - ldrb r1, [r1] - add r1, r1, #0x2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - mov r2, #0x5 - bl Menu_PrintText - pop {r0} - bx r0 -._69: - .align 2, 0 -._68: - .word Str_843E574 - .word _nakamuraData2 - - thumb_func_end debug_sub_815F788 - - thumb_func_start debug_sub_815F7B4 -debug_sub_815F7B4: - push {lr} - ldr r0, ._72 @ _nakamuraData1 - ldrb r0, [r0] - cmp r0, #0 - beq ._70 @cond_branch - mov r0, #0xb - mov r1, #0x1 - mov r2, #0xb - mov r3, #0x2 - bl Menu_BlankWindowRect - b ._71 -._73: - .align 2, 0 -._72: - .word _nakamuraData1 -._70: - ldr r0, ._74 @ _nakamuraData3 - ldrb r0, [r0] - lsl r0, r0, #0x1 - ldr r1, ._74 + 4 @ Str_843E576 - add r0, r0, r1 - mov r1, #0xb - mov r2, #0x1 - bl Menu_PrintText -._71: - pop {r0} - bx r0 -._75: - .align 2, 0 -._74: - .word _nakamuraData3 - .word Str_843E576 - - thumb_func_end debug_sub_815F7B4 - - thumb_func_start debug_sub_815F7F0 -debug_sub_815F7F0: - push {r4, r5, lr} - ldr r1, ._78 @ _nakamuraData0 - ldrb r2, [r1] - lsl r1, r2, #0x2 - add r1, r1, r2 - lsl r1, r1, #0x5 - ldr r2, ._78 + 4 @ gSaveBlock1 - add r3, r1, r2 - ldrb r1, [r3, #0x3] - lsl r2, r1, #0x18 - ldrb r1, [r3, #0x2] - lsl r1, r1, #0x10 - orr r2, r2, r1 - ldrb r1, [r3, #0x1] - lsl r1, r1, #0x8 - orr r2, r2, r1 - ldrb r1, [r3] - orr r2, r2, r1 - lsl r0, r0, #0x18 - asr r1, r0, #0x18 - mov r4, #0x9 - ldr r0, ._78 + 8 @ _nakamuraData2 - ldrb r0, [r0] - cmp r4, r0 - ble ._76 @cond_branch - add r5, r0, #0 -._77: - lsl r0, r1, #0x2 - add r0, r0, r1 - lsl r1, r0, #0x1 - lsl r0, r4, #0x18 - mov r4, #0xff - lsl r4, r4, #0x18 - add r0, r0, r4 - lsr r4, r0, #0x18 - asr r0, r0, #0x18 - cmp r0, r5 - bgt ._77 @cond_branch -._76: - add r2, r2, r1 - lsr r0, r2, #0x18 - strb r0, [r3, #0x3] - mov r0, #0xff - lsl r0, r0, #0x10 - and r0, r0, r2 - lsr r0, r0, #0x10 - strb r0, [r3, #0x2] - mov r0, #0xff - lsl r0, r0, #0x8 - and r0, r0, r2 - lsr r0, r0, #0x8 - strb r0, [r3, #0x1] - strb r2, [r3] - bl debug_sub_815F668 - pop {r4, r5} - pop {r0} - bx r0 -._79: - .align 2, 0 -._78: - .word _nakamuraData0 - .word gSaveBlock1+0x1a11 - .word _nakamuraData2 - - thumb_func_end debug_sub_815F7F0 - thumb_func_start debug_sub_815F86C debug_sub_815F86C: push {r4, r5, r6, lr} diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c index 623294254..38026b546 100644 --- a/src/debug/nakamura_debug_menu.c +++ b/src/debug/nakamura_debug_menu.c @@ -158,11 +158,13 @@ const u8 Str_843E556[] = _( "♀4\n" "♀5"); const u8 Str_843E574[] = _("ー"); -const u8 Str_843E576[] = _("あ"); -const u8 Str_843E578[] = _("ア"); -const u8 Str_843E57A[] = _("A"); -const u8 Str_843E57C[] = _("a"); -const u8 Str_843E57E[] = _("0"); +const u8 Str_843E576[][2] = { + _("あ"), + _("ア"), + _("A"), + _("a"), + _("0") +}; const u8 Str_843E580[] = _( "ADD\n" "DEL\n" @@ -393,4 +395,77 @@ bool8 debug_sub_815F5C4(void) return FALSE; } +bool8 debug_sub_815F62C(void) +{ + _nakamuraData0 = 0; + gMenuCallback = debug_sub_815F5C4; + Menu_EraseWindowRect(0, 0, 29, 19); + Menu_DrawStdWindowFrame(0, 0, 11, 11); + debug_sub_815F4D8(); + return FALSE; +} + +void debug_sub_815F668(void) +{ + u8 * otIdPtr = gSaveBlock1.secretBases[_nakamuraData0].trainerId; + u32 otId = (otIdPtr[3] << 24) | (otIdPtr[2] << 16) | (otIdPtr[1] << 8) | (otIdPtr[0] << 0); + ConvertIntToDecimalStringN(gStringVar1, otId / 100000, STR_CONV_MODE_LEADING_ZEROS, 5); + Menu_PrintText(gStringVar1, 2, 7); + ConvertIntToDecimalStringN(gStringVar1, otId % 100000, STR_CONV_MODE_LEADING_ZEROS, 5); + Menu_PrintText(gStringVar1, 7, 7); +} + +void debug_sub_815F6E4(void) +{ + Menu_BlankWindowRect(2, 3, 11, 4); + *StringCopyN(gStringVar1, gSaveBlock1.secretBases[_nakamuraData0].playerName, 7) = EOS; + Menu_PrintText(gStringVar1, 2, 3); +} + +void debug_sub_815F72C(void) +{ + Menu_BlankWindowRect(2, 1, 11, 10); + + ConvertIntToDecimalStringN(gStringVar1, _nakamuraData0, STR_CONV_MODE_LEFT_ALIGN, 2); + Menu_PrintText(gStringVar1, 2, 1); + + if (gSaveBlock1.secretBases[_nakamuraData0].secretBaseId != 0) + { + debug_sub_815F6E4(); + debug_sub_815F668(); + } +} + +void debug_sub_815F788(void) +{ + Menu_BlankWindowRect(2, 5, 11, 6); + Menu_PrintText(Str_843E574, _nakamuraData2 + 2, 5); +} + +void debug_sub_815F7B4(void) +{ + if (_nakamuraData1) + Menu_BlankWindowRect(11, 1, 11, 2); + else + Menu_PrintText(Str_843E576[_nakamuraData3], 11, 1); +} + +void debug_sub_815F7F0(s8 a0) +{ + u8 * otIdPtr = gSaveBlock1.secretBases[_nakamuraData0].trainerId; + u32 otId = (otIdPtr[3] << 24) | (otIdPtr[2] << 16) | (otIdPtr[1] << 8) | (otIdPtr[0] << 0); + s8 r4; + int r1 = a0; + + for (r4 = 9; r4 > _nakamuraData2; r4--) + r1 *= 10; + + otId += r1; + otIdPtr[3] = (otId & 0xFF000000) >> 24; + otIdPtr[2] = (otId & 0x00FF0000) >> 16; + otIdPtr[1] = (otId & 0x0000FF00) >> 8; + otIdPtr[0] = (otId & 0x000000FF) >> 0; + debug_sub_815F668(); +} + #endif // DEBUG |