summaryrefslogtreecommitdiff
path: root/src/engine/cable_club.c
diff options
context:
space:
mode:
authorCameron Hall <cameronghall@cox.net>2018-01-17 16:46:54 -0600
committerCameron Hall <cameronghall@cox.net>2018-01-17 16:46:54 -0600
commitc3534e7b0e2df48fe989deb74c26f98e1fe759b8 (patch)
treef29c7c7cdaec3138e66198a5d2689e1ac22496ce /src/engine/cable_club.c
parent6efb614f3f3bf1b1b381bdfe220391e152fc8ebe (diff)
add more debug code
Diffstat (limited to 'src/engine/cable_club.c')
-rw-r--r--src/engine/cable_club.c436
1 files changed, 435 insertions, 1 deletions
diff --git a/src/engine/cable_club.c b/src/engine/cable_club.c
index 688560218..c0397f67b 100644
--- a/src/engine/cable_club.c
+++ b/src/engine/cable_club.c
@@ -95,6 +95,325 @@ const u8 *const gTrainerCardColorNames[] =
TrainerCardColorName_Gold,
};
+#if DEBUG
+
+__attribute__((naked))
+int debug_sub_808A4D0()
+{
+ asm("\
+ push {lr}\n\
+ add r1, r0, #0\n\
+ ldr r0, ._3\n\
+ cmp r1, r0\n\
+ bne ._1 @cond_branch\n\
+ mov r0, #0x1\n\
+ b ._30\n\
+._4:\n\
+ .align 2, 0\n\
+._3:\n\
+ .word sub_8082F68+1\n\
+._1:\n\
+ ldr r0, ._7\n\
+ cmp r1, r0\n\
+ bne ._5 @cond_branch\n\
+ mov r0, #0x11\n\
+ b ._30\n\
+._8:\n\
+ .align 2, 0\n\
+._7:\n\
+ .word sub_8082FEC+1\n\
+._5:\n\
+ ldr r0, ._11\n\
+ cmp r1, r0\n\
+ bne ._9 @cond_branch\n\
+ mov r0, #0x12\n\
+ b ._30\n\
+._12:\n\
+ .align 2, 0\n\
+._11:\n\
+ .word sub_808303C+1\n\
+._9:\n\
+ ldr r0, ._15\n\
+ cmp r1, r0\n\
+ bne ._13 @cond_branch\n\
+ mov r0, #0x13\n\
+ b ._30\n\
+._16:\n\
+ .align 2, 0\n\
+._15:\n\
+ .word sub_8083188+1\n\
+._13:\n\
+ ldr r0, ._19\n\
+ cmp r1, r0\n\
+ bne ._17 @cond_branch\n\
+ mov r0, #0x14\n\
+ b ._30\n\
+._20:\n\
+ .align 2, 0\n\
+._19:\n\
+ .word sub_80830E4+1\n\
+._17:\n\
+ ldr r0, ._23\n\
+ cmp r1, r0\n\
+ bne ._21 @cond_branch\n\
+ mov r0, #0x21\n\
+ b ._30\n\
+._24:\n\
+ .align 2, 0\n\
+._23:\n\
+ .word sub_80831F8+1\n\
+._21:\n\
+ ldr r0, ._27\n\
+ cmp r1, r0\n\
+ bne ._25 @cond_branch\n\
+ mov r0, #0x2\n\
+ b ._30\n\
+._28:\n\
+ .align 2, 0\n\
+._27:\n\
+ .word sub_8083314+1\n\
+._25:\n\
+ ldr r0, ._31\n\
+ cmp r1, r0\n\
+ beq ._29 @cond_branch\n\
+ mov r0, #0x0\n\
+ b ._30\n\
+._32:\n\
+ .align 2, 0\n\
+._31:\n\
+ .word sub_80833C4+1\n\
+._29:\n\
+ mov r0, #0x3\n\
+._30:\n\
+ pop {r1}\n\
+ bx r1");
+}
+
+__attribute__((naked))
+void debug_sub_808A55C()
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+ ldr r2, ._37\n\
+ lsl r0, r7, #0x2\n\
+ add r0, r0, r7\n\
+ lsl r0, r0, #0x3\n\
+ add r4, r0, r2\n\
+ mov r0, #0x8\n\
+ ldsh r1, [r4, r0]\n\
+ lsl r0, r1, #0x2\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r2\n\
+ ldrb r0, [r0, #0x4]\n\
+ cmp r0, #0\n\
+ bne ._33 @cond_branch\n\
+ mov r1, #0xa\n\
+ ldsh r0, [r4, r1]\n\
+ cmp r0, #0x5\n\
+ bne ._34 @cond_branch\n\
+ add r0, r7, #0\n\
+ bl DestroyTask\n\
+._34:\n\
+ ldrh r0, [r4, #0xa]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r4, #0xa]\n\
+._33:\n\
+ ldr r0, ._37 + 4\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x2\n\
+ mov r2, #0x0\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 8\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x16\n\
+ mov r2, #0x5\n\
+ mov r3, #0x4\n\
+ bl PrintHex\n\
+ mov r4, #0x0\n\
+ lsl r3, r7, #0x2\n\
+ mov r8, r3\n\
+ mov r6, #0xc0\n\
+ lsl r6, r6, #0x13\n\
+ mov r5, #0xa0\n\
+ lsl r5, r5, #0x13\n\
+._35:\n\
+ ldr r0, ._37 + 12\n\
+ add r0, r4, r0\n\
+ ldrb r0, [r0]\n\
+ lsr r1, r5, #0x18\n\
+ mov r2, #0x0\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ ldr r1, ._37 + 16\n\
+ lsl r0, r4, #0x8\n\
+ add r0, r0, r1\n\
+ ldrh r0, [r0]\n\
+ lsr r2, r6, #0x18\n\
+ mov r1, #0x16\n\
+ mov r3, #0x4\n\
+ bl PrintHex\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x11\n\
+ add r6, r6, r0\n\
+ mov r1, #0x80\n\
+ lsl r1, r1, #0x12\n\
+ add r5, r5, r1\n\
+ add r4, r4, #0x1\n\
+ cmp r4, #0x3\n\
+ ble ._35 @cond_branch\n\
+ ldr r4, ._37 + 20\n\
+ ldr r0, [r4]\n\
+ mov r1, #0xf\n\
+ mov r2, #0x0\n\
+ mov r3, #0x8\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 24\n\
+ ldrb r0, [r0, #0x1]\n\
+ mov r1, #0x2\n\
+ mov r2, #0xa\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ bl GetMultiplayerId\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0x7\n\
+ mov r2, #0xc\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ bl GetBlockReceivedStatus\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0x7\n\
+ mov r2, #0xa\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 28\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x2\n\
+ mov r2, #0xc\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 32\n\
+ ldrh r0, [r0]\n\
+ mov r1, #0xb\n\
+ mov r2, #0x8\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ ldr r0, [r4]\n\
+ mov r1, #0x1c\n\
+ and r0, r0, r1\n\
+ lsr r0, r0, #0x2\n\
+ mov r1, #0xb\n\
+ mov r2, #0xa\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ bl IsLinkConnectionEstablished\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0xb\n\
+ mov r2, #0xc\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ bl sub_8007ECC\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0xf\n\
+ mov r2, #0xa\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ ldr r2, ._37\n\
+ mov r3, r8\n\
+ add r0, r3, r7\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r2\n\
+ mov r3, #0x8\n\
+ ldsh r1, [r0, r3]\n\
+ lsl r0, r1, #0x2\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r2\n\
+ ldr r0, [r0]\n\
+ bl debug_sub_808A4D0\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0xf\n\
+ mov r2, #0xc\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 36\n\
+ ldr r0, [r0]\n\
+ mov r1, #0x2\n\
+ mov r2, #0xd\n\
+ mov r3, #0x8\n\
+ bl PrintHex\n\
+ bl HasLinkErrorOccurred\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0x2\n\
+ mov r2, #0x2\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 40\n\
+ mov r6, #0x80\n\
+ lsl r6, r6, #0x12\n\
+ add r5, r0, #0\n\
+ add r5, r5, #0x14\n\
+ mov r4, #0x3\n\
+._36:\n\
+ ldr r0, [r5]\n\
+ lsr r1, r6, #0x18\n\
+ mov r2, #0x3\n\
+ mov r3, #0x4\n\
+ bl PrintHex\n\
+ mov r0, #0xc0\n\
+ lsl r0, r0, #0x13\n\
+ add r6, r6, r0\n\
+ add r5, r5, #0x1c\n\
+ sub r4, r4, #0x1\n\
+ cmp r4, #0\n\
+ bge ._36 @cond_branch\n\
+ ldr r0, ._37 + 44\n\
+ ldrh r0, [r0]\n\
+ mov r1, #0x2\n\
+ mov r2, #0x6\n\
+ mov r3, #0x4\n\
+ bl PrintHex\n\
+ bl debug_sub_808B850\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0x19\n\
+ mov r2, #0x3\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._38:\n\
+ .align 2, 0\n\
+._37:\n\
+ .word gTasks\n\
+ .word gShouldAdvanceLinkState\n\
+ .word gBlockSendBuffer\n\
+ .word gLinkPlayerPending\n\
+ .word gBlockRecvBuffer\n\
+ .word gLinkStatus\n\
+ .word gLink\n\
+ .word gReceivedRemoteLinkPlayers\n\
+ .word gScriptResult\n\
+ .word gLinkCallback\n\
+ .word gLinkPlayers\n\
+ .word 0x4000128");
+}
+#endif
+
static void sub_8082CD4(u8 arg0, u8 arg1)
{
if (FindTaskIdByFunc(sub_8082F20) == 0xFF)
@@ -912,6 +1231,74 @@ void sub_8083C50(u8 taskId)
DestroyTask(taskId);
}
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_808B778()
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r4, ._390\n\
+ add r0, r4, #0\n\
+ bl FuncIsActiveTask\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._389 @cond_branch\n\
+ add r0, r4, #0\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+._389:\n\
+ ldr r1, ._390 + 4\n\
+ ldr r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ str r0, [r1]\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._391:\n\
+ .align 2, 0\n\
+._390:\n\
+ .word debug_sub_808B7A8+1\n\
+ .word unk_3004E98");
+}
+
+__attribute__((naked))
+void debug_sub_808B7A8()
+{
+ asm("\
+ push {lr}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r2, ._393\n\
+ lsl r1, r0, #0x2\n\
+ add r1, r1, r0\n\
+ lsl r1, r1, #0x3\n\
+ add r1, r1, r2\n\
+ ldrh r0, [r1, #0x8]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r1, #0x8]\n\
+ lsl r0, r0, #0x10\n\
+ asr r0, r0, #0x10\n\
+ cmp r0, #0x1e\n\
+ bne ._392 @cond_branch\n\
+ mov r0, #0x0\n\
+ strh r0, [r1, #0x8]\n\
+ ldr r2, ._393 + 4\n\
+ ldrh r0, [r2]\n\
+ mov r1, #0x1\n\
+ orr r0, r0, r1\n\
+ strh r0, [r2]\n\
+._392:\n\
+ pop {r0}\n\
+ bx r0\n\
+._394:\n\
+ .align 2, 0\n\
+._393:\n\
+ .word gTasks\n\
+ .word unk_3004E94");
+}
+#endif
+
static void sub_8083CA4(u8 taskId)
{
if (!gReceivedRemoteLinkPlayers)
@@ -925,4 +1312,51 @@ void unref_sub_8083CC8(u8 taskId)
{
sub_800832C();
gTasks[taskId].func = sub_8083CA4;
-} \ No newline at end of file
+}
+
+#if DEBUG
+
+void debug_sub_808B82C()
+{
+ asm("\
+ ldr r1, ._400\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ bx lr\n\
+._401:\n\
+ .align 2, 0\n\
+._400:\n\
+ .word unk_2030220");
+}
+
+void debug_sub_808B838(u8 a)
+{
+ asm("\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r2, ._402\n\
+ mov r1, #0x1\n\
+ LSL r1, r0\n\
+ ldrb r0, [r2]\n\
+ orr r1, r1, r0\n\
+ strb r1, [r2]\n\
+ bx lr\n\
+._403:\n\
+ .align 2, 0\n\
+._402:\n\
+ .word unk_2030220");
+}
+
+int debug_sub_808B850()
+{
+ asm("\
+ ldr r0, ._404\n\
+ ldrb r0, [r0]\n\
+ bx lr\n\
+._405:\n\
+ .align 2, 0\n\
+._404:\n\
+ .word unk_2030220");
+}
+
+#endif \ No newline at end of file