diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-14 14:38:41 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-14 14:38:41 -0400 |
commit | ea25c05dcc8ba88c967f08d39f9d4c4db2e0cd3a (patch) | |
tree | 42c8d14dab2dafa8c5fe3ebbce784d2939302790 | |
parent | bdd3cf36f59e9f3a308073f998a15a92aea62283 (diff) |
debug_80C3D2C
-rw-r--r-- | asm/watanabe_debug_menu.s | 441 | ||||
-rw-r--r-- | src/debug/watanabe_debug_menu.c | 125 |
2 files changed, 122 insertions, 444 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 034f0a2b3..742dd66cd 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,447 +5,6 @@ .text - thumb_func_start debug_80C3D2C -debug_80C3D2C: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - add r7, r6, #0 - ldr r4, ._60 @ gMain - ldrh r1, [r4, #0x2e] - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._58 @cond_branch - mov r0, #0x5 - bl PlaySE - mov r0, #0x1 - neg r0, r0 - mov r1, #0x0 - str r1, [sp] - mov r2, #0x0 - mov r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, ._60 + 4 @ debug_80C370C - bl SetMainCallback2 - ldr r1, ._60 + 8 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._60 + 12 @ debug_80C373C - str r1, [r0] - b ._117 -._61: - .align 2, 0 -._60: - .word gMain - .word debug_80C370C+1 - .word gTasks - .word debug_80C373C+1 -._58: - mov r5, #0x1 - add r0, r5, #0 - and r0, r0, r1 - cmp r0, #0 - beq ._62 @cond_branch - mov r0, #0x5 - bl PlaySE - ldr r1, ._64 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldrh r1, [r0, #0x18] - mov r2, #0x1 - eor r1, r1, r2 - strh r1, [r0, #0x18] - b ._117 -._65: - .align 2, 0 -._64: - .word gTasks -._62: - ldrh r1, [r4, #0x30] - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._66 @cond_branch - ldr r1, ._70 @ gTasks - lsl r2, r6, #0x2 - add r0, r2, r6 - lsl r0, r0, #0x3 - add r3, r0, r1 - mov r5, #0x18 - ldsh r0, [r3, r5] - mov r8, r1 - cmp r0, #0 - beq ._67 @cond_branch - ldrh r1, [r4, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._68 @cond_branch - ldrh r0, [r3, #0x14] - add r0, r0, #0x10 - b ._69 -._71: - .align 2, 0 -._70: - .word gTasks -._68: - ldrh r0, [r3, #0x14] - add r0, r0, #0x1 -._69: - strh r0, [r3, #0x14] - add r0, r2, r7 - lsl r0, r0, #0x3 - mov r2, r8 - add r1, r0, r2 - ldrh r0, [r1, #0x14] - mov r6, #0x80 - lsl r6, r6, #0x8 - cmp r0, r6 - bhi ._72 @cond_branch - b ._117 -._72: - strh r6, [r1, #0x14] - b ._117 -._67: - ldrh r1, [r4, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._75 @cond_branch - ldrh r0, [r3, #0x16] - add r0, r0, #0x10 - b ._76 -._75: - ldrh r0, [r3, #0x16] - add r0, r0, #0x1 -._76: - strh r0, [r3, #0x16] - add r0, r2, r7 - lsl r0, r0, #0x3 - mov r4, r8 - add r1, r0, r4 - ldrh r0, [r1, #0x16] - mov r6, #0x80 - lsl r6, r6, #0x8 - cmp r0, r6 - bhi ._77 @cond_branch - b ._117 -._77: - strh r6, [r1, #0x16] - b ._117 -._66: - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._80 @cond_branch - ldr r1, ._84 @ gTasks - lsl r2, r6, #0x2 - add r0, r2, r6 - lsl r0, r0, #0x3 - add r3, r0, r1 - mov r5, #0x18 - ldsh r0, [r3, r5] - mov r8, r1 - cmp r0, #0 - beq ._81 @cond_branch - ldrh r1, [r4, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._82 @cond_branch - ldrh r0, [r3, #0x14] - sub r0, r0, #0x10 - b ._83 -._85: - .align 2, 0 -._84: - .word gTasks -._82: - ldrh r0, [r3, #0x14] - sub r0, r0, #0x1 -._83: - strh r0, [r3, #0x14] - add r0, r2, r7 - lsl r0, r0, #0x3 - mov r2, r8 - add r1, r0, r2 - mov r4, #0x14 - ldsh r0, [r1, r4] - cmp r0, #0xff - ble ._86 @cond_branch - b ._117 -._86: - mov r0, #0x80 - lsl r0, r0, #0x1 - strh r0, [r1, #0x14] - b ._117 -._81: - ldrh r1, [r4, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._89 @cond_branch - ldrh r0, [r3, #0x16] - sub r0, r0, #0x10 - b ._90 -._89: - ldrh r0, [r3, #0x16] - sub r0, r0, #0x1 -._90: - strh r0, [r3, #0x16] - add r0, r2, r7 - lsl r0, r0, #0x3 - mov r5, r8 - add r1, r0, r5 - mov r2, #0x16 - ldsh r0, [r1, r2] - cmp r0, #0xff - ble ._91 @cond_branch - b ._117 -._91: - mov r0, #0x80 - lsl r0, r0, #0x1 - strh r0, [r1, #0x16] - b ._117 -._80: - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._94 @cond_branch - ldr r0, ._97 @ gTasks - lsl r1, r6, #0x2 - add r1, r1, r6 - lsl r1, r1, #0x3 - add r1, r1, r0 - mov r4, #0x18 - ldsh r0, [r1, r4] - cmp r0, #0 - beq ._95 @cond_branch - ldrh r0, [r1, #0x10] - sub r0, r0, #0x1 - strh r0, [r1, #0x10] - b ._117 -._98: - .align 2, 0 -._97: - .word gTasks -._95: - ldrh r0, [r1, #0x12] - sub r0, r0, #0x1 - strh r0, [r1, #0x12] - b ._117 -._94: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._100 @cond_branch - ldr r0, ._103 @ gTasks - lsl r1, r6, #0x2 - add r1, r1, r6 - lsl r1, r1, #0x3 - add r1, r1, r0 - mov r5, #0x18 - ldsh r0, [r1, r5] - cmp r0, #0 - beq ._101 @cond_branch - ldrh r0, [r1, #0x10] - add r0, r0, #0x1 - strh r0, [r1, #0x10] - b ._117 -._104: - .align 2, 0 -._103: - .word gTasks -._101: - ldrh r0, [r1, #0x12] - add r0, r0, #0x1 - strh r0, [r1, #0x12] - b ._117 -._100: - mov r0, #0x8 - and r0, r0, r1 - cmp r0, #0 - beq ._106 @cond_branch - ldr r2, ._109 @ gTasks - lsl r3, r6, #0x2 - add r0, r3, r6 - lsl r0, r0, #0x3 - add r6, r0, r2 - ldrh r4, [r6, #0x8] - mov r0, #0x8 - ldsh r1, [r6, r0] - ldr r0, ._109 + 4 @ 0x181 - mov r8, r2 - add r2, r3, #0 - cmp r1, r0 - bgt ._107 @cond_branch - add r0, r4, #1 - strh r0, [r6, #0x8] - b ._108 -._110: - .align 2, 0 -._109: - .word gTasks - .word 0x181 -._107: - strh r5, [r6, #0x8] -._108: - add r4, r2, r7 - lsl r4, r4, #0x3 - add r4, r4, r8 - mov r2, #0xc - ldsh r1, [r4, r2] - b ._111 -._106: - mov r0, #0x4 - and r0, r0, r1 - cmp r0, #0 - beq ._112 @cond_branch - ldr r1, ._115 @ gTasks - lsl r2, r6, #0x2 - add r0, r2, r6 - lsl r0, r0, #0x3 - add r3, r0, r1 - ldrh r6, [r3, #0x8] - mov r4, #0x8 - ldsh r0, [r3, r4] - mov r8, r1 - cmp r0, #0x1 - ble ._113 @cond_branch - sub r0, r6, #1 - b ._114 -._116: - .align 2, 0 -._115: - .word gTasks -._113: - mov r0, #0xc1 - lsl r0, r0, #0x1 -._114: - strh r0, [r3, #0x8] - add r4, r2, r7 - lsl r4, r4, #0x3 - add r4, r4, r8 - mov r5, #0xc - ldsh r1, [r4, r5] -._111: - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - ldr r5, ._118 @ gSprites - add r0, r0, r5 - bl DestroySprite - mov r0, #0xe - ldsh r1, [r4, r0] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r5 - bl DestroySprite - ldr r0, ._118 + 4 @ debug_80C3A50 - str r0, [r4] - b ._117 -._119: - .align 2, 0 -._118: - .word gSprites - .word debug_80C3A50+1 -._112: - ldr r0, ._120 @ gTasks - lsl r5, r7, #0x2 - add r5, r5, r7 - lsl r5, r5, #0x3 - add r5, r5, r0 - ldrh r4, [r5, #0x16] - ldrh r6, [r5, #0x12] - str r4, [sp] - mov r0, #0x1 - add r1, r4, #0 - mov r2, #0x0 - mov r3, #0x0 - bl SetOamMatrix - add r0, r4, #0 - mov r1, #0x1 - mov r2, #0x3 - mov r3, #0x4 - bl debug_80C68CC - add r0, r6, #0 - mov r1, #0x1 - mov r2, #0x7 - mov r3, #0x4 - bl debug_80C68CC - ldr r2, ._120 + 4 @ gSprites - mov r8, r2 - mov r4, #0xc - ldsh r1, [r5, r4] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r8 - strh r6, [r0, #0x26] - ldrh r4, [r5, #0x14] - ldrh r6, [r5, #0x10] - str r4, [sp] - mov r0, #0x2 - add r1, r4, #0 - mov r2, #0x0 - mov r3, #0x0 - bl SetOamMatrix - add r0, r4, #0 - mov r1, #0x19 - mov r2, #0x3 - mov r3, #0x4 - bl debug_80C68CC - add r0, r6, #0 - mov r1, #0x19 - mov r2, #0x7 - mov r3, #0x4 - bl debug_80C68CC - mov r0, #0xe - ldsh r1, [r5, r0] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r8 - strh r6, [r0, #0x26] - ldr r2, ._120 + 8 @ 0x4000040 - mov r4, #0x18 - ldsh r1, [r5, r4] - lsl r1, r1, #0x6 - add r0, r1, #0 - add r0, r0, #0x38 - lsl r0, r0, #0x8 - add r1, r1, #0x78 - add r0, r0, r1 - strh r0, [r2] -._117: - add sp, sp, #0x4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._121: - .align 2, 0 -._120: - .word gTasks - .word gSprites - .word 0x4000040 - - thumb_func_end debug_80C3D2C - thumb_func_start debug_80C405C debug_80C405C: push {r4, r5, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 7ca155faa..1f9bb8672 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -26,6 +26,10 @@ EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; u8 byte_3005E30[0x20]; +void debug_80C3A50(u8 taskId); +void debug_80C3D2C(u8 taskId); +void debug_80C68CC(u16, u8, u8, u8); + extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08}; extern const u8 gUnknown_Debug_083F7FDA[4]; // = _("ひりつ"); @@ -42,9 +46,6 @@ extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト"); extern const struct SpriteSheet stru_83F8828[2]; extern const struct SpritePalette stru_83F8838[2]; -void debug_80C3A50(u8 taskId); -void debug_80C3D2C(u8 taskId); - void debug_69(struct Sprite *sprite) { @@ -667,4 +668,122 @@ NAKED void debug_80C3A50(u8 taskId) } #endif // NONMATCHING +void debug_80C3D2C(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + SetMainCallback2(debug_80C370C); + gTasks[taskId].func = debug_80C373C; + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[8] ^= 1; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (gTasks[taskId].data[8]) + { + if (gMain.heldKeys & R_BUTTON) + gTasks[taskId].data[6] += 16; + else + gTasks[taskId].data[6] += 1; + if ((u16)gTasks[taskId].data[6] > 0x8000) + gTasks[taskId].data[6] = 0x8000; + } + else + { + if (gMain.heldKeys & R_BUTTON) + gTasks[taskId].data[7] += 16; + else + gTasks[taskId].data[7] += 1; + if ((u16)gTasks[taskId].data[7] > 0x8000) + gTasks[taskId].data[7] = 0x8000; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (gTasks[taskId].data[8]) + { + if (gMain.heldKeys & R_BUTTON) + gTasks[taskId].data[6] -= 16; + else + gTasks[taskId].data[6] -= 1; + if (gTasks[taskId].data[6] < 0x100) + gTasks[taskId].data[6] = 0x100; + } + else + { + if (gMain.heldKeys & R_BUTTON) + gTasks[taskId].data[7] -= 16; + else + gTasks[taskId].data[7] -= 1; + if (gTasks[taskId].data[7] < 0x100) + gTasks[taskId].data[7] = 0x100; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gTasks[taskId].data[8]) + { + gTasks[taskId].data[4]--; + } + else + { + gTasks[taskId].data[5]--; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (gTasks[taskId].data[8]) + { + gTasks[taskId].data[4]++; + } + else + { + gTasks[taskId].data[5]++; + } + } + else if (gMain.newAndRepeatedKeys & START_BUTTON) + { + if (gTasks[taskId].data[0] < 0x182) + gTasks[taskId].data[0]++; + else + gTasks[taskId].data[0] = 1; + DestroySprite(gSprites + gTasks[taskId].data[2]); + DestroySprite(gSprites + gTasks[taskId].data[3]); + gTasks[taskId].func = debug_80C3A50; + } + else if (gMain.newAndRepeatedKeys & SELECT_BUTTON) + { + if (gTasks[taskId].data[0] > 1) + gTasks[taskId].data[0]--; + else + gTasks[taskId].data[0] = 0x182; + DestroySprite(gSprites + gTasks[taskId].data[2]); + DestroySprite(gSprites + gTasks[taskId].data[3]); + gTasks[taskId].func = debug_80C3A50; + } + else + { + u16 scale = gTasks[taskId].data[7]; + u16 offset = gTasks[taskId].data[5]; + SetOamMatrix(1, scale, 0, 0, scale); + debug_80C68CC(scale, 1, 3, 4); + debug_80C68CC(offset, 1, 7, 4); + gSprites[gTasks[taskId].data[2]].pos2.y = offset; + + scale = gTasks[taskId].data[6]; + offset = gTasks[taskId].data[4]; + SetOamMatrix(2, scale, 0, 0, scale); + debug_80C68CC(scale, 25, 3, 4); + debug_80C68CC(offset, 25, 7, 4); + gSprites[gTasks[taskId].data[3]].pos2.y = offset; + + REG_WIN0H = ((gTasks[taskId].data[8] * 64 + 0x38) << 8) + (gTasks[taskId].data[8] * 64 + 0x78); + } +} + #endif // DEBUG |