diff options
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/cable_club.c | 550 | ||||
-rw-r--r-- | src/engine/link.c | 159 | ||||
-rw-r--r-- | src/engine/mystery_event_menu.c | 546 | ||||
-rw-r--r-- | src/engine/reset_rtc_screen.c | 398 | ||||
-rw-r--r-- | src/engine/save_failed_screen.c | 213 | ||||
-rw-r--r-- | src/engine/trainer_card.c | 8 |
6 files changed, 357 insertions, 1517 deletions
diff --git a/src/engine/cable_club.c b/src/engine/cable_club.c index ff73e638e..0da23c5f3 100644 --- a/src/engine/cable_club.c +++ b/src/engine/cable_club.c @@ -2,7 +2,9 @@ #include "battle.h" #include "battle_records.h" #include "cable_club.h" +#include "event_data.h" #include "field_message_box.h" +#include "field_specials.h" #include "field_weather.h" #include "link.h" #include "load_save.h" @@ -21,16 +23,9 @@ #include "strings2.h" #include "task.h" #include "text.h" +#include "trade.h" #include "trainer_card.h" -extern u8 unk_2030220; -extern u16 gSpecialVar_Result; -extern struct TrainerCard gTrainerCards[4]; -extern u8 gUnknown_03004860; -extern u8 gFieldLinkPlayerCount; -extern u16 gSpecialVar_0x8004; -extern u16 gSpecialVar_0x8005; -extern u16 gSpecialVar_0x8006; extern u16 gBattleTypeFlags; extern const u8 gUnknown_081A4932[]; extern const u8 gUnknown_081A4975[]; @@ -42,12 +37,13 @@ extern struct u8 field1; } gUnknown_020297D8; -/*static*/ void sub_8082F20(u8 taskId); +static void sub_8082F20(u8 taskId); static void sub_8082F68(u8 taskId); static void sub_8082FEC(u8 taskId); static void sub_808303C(u8 taskId); static void sub_80830E4(u8 taskId); static void sub_8083188(u8 taskId); +static void sub_80831F8(u8 taskId); static void sub_8083288(u8 taskId); static void sub_8083314(u8 taskId); static void sub_80833C4(u8 taskId); @@ -66,15 +62,9 @@ static void sub_8083AAC(u8 taskId); static void sub_8083B44(u8 taskId); static void sub_8083B6C(void); static void sub_8083CA4(u8 taskId); - -extern void sub_80831F8(u8 taskId); -extern void Overworld_ResetMapMusic(void); -extern void sub_810FEFC(void); -extern void sub_8047CD8(void); -extern void sub_805559C(void); -extern void sub_8055574(void); -extern s32 sub_80554F8(void); -extern void sub_805465C(void); +#if DEBUG +static u8 debug_sub_808B850(void); +#endif #ifdef GERMAN const u8 TrainerCardColorName_Bronze[] = _("BRONZE"); @@ -97,392 +87,86 @@ const u8 *const gTrainerCardColorNames[] = }; #if DEBUG - -__attribute__((naked)) -int debug_sub_808A4D0() -{ - asm("\ - push {lr}\n\ - add r1, r0, #0\n\ - ldr r0, ._3 @ sub_8082F68\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 @ sub_8082FEC\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 @ sub_808303C\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 @ sub_8083188\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 @ sub_80830E4\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 @ sub_80831F8\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 @ sub_8083314\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 @ sub_80833C4\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"); +u8 debug_sub_808A4D0(TaskFunc func) +{ + if (func == sub_8082F68) + return 1; + if (func == sub_8082FEC) + return 17; + if (func == sub_808303C) + return 18; + if (func == sub_8083188) + return 19; + if (func == sub_80830E4) + return 20; + if (func == sub_80831F8) + return 33; + if (func == sub_8083314) + return 2; + if (func == sub_80833C4) + return 3; + return 0; } -__attribute__((naked)) -void debug_sub_808A55C() +void debug_sub_808A55C(u8 taskId) { - 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 @ gTasks\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 @ gShouldAdvanceLinkState\n\ - ldrb r0, [r0]\n\ - mov r1, #0x2\n\ - mov r2, #0x0\n\ - mov r3, #0x2\n\ - bl PrintHex\n\ - ldr r0, ._37 + 8 @ gBlockSendBuffer\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 @ gLinkPlayerPending\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 @ gBlockRecvBuffer\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 @ gLinkStatus\n\ - ldr r0, [r4]\n\ - mov r1, #0xf\n\ - mov r2, #0x0\n\ - mov r3, #0x8\n\ - bl PrintHex\n\ - ldr r0, ._37 + 24 @ gLink\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 @ gReceivedRemoteLinkPlayers\n\ - ldrb r0, [r0]\n\ - mov r1, #0x2\n\ - mov r2, #0xc\n\ - mov r3, #0x1\n\ - bl PrintHex\n\ - ldr r0, ._37 + 32 @ gSpecialVar_Result\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 IsLinkTaskFinished\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 @ gTasks\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 @ gLinkCallback\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 @ gLinkPlayers\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 @ 0x4000128\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 gSpecialVar_Result\n\ - .word gLinkCallback\n\ - .word gLinkPlayers\n\ - .word 0x4000128"); + s32 i; + + if (!gTasks[gTasks[taskId].data[0]].isActive) + { + if (gTasks[taskId].data[1] == 5) + DestroyTask(taskId); + gTasks[taskId].data[1]++; + } + + PrintHex(gShouldAdvanceLinkState, 2, 0, 2); + PrintHex((u8)gBlockSendBuffer[0], 22, 5, 4); + for (i = 0; i < 4; i++) + { + PrintHex(gLinkPlayerPending[i], 5 + i * 2, 0, 1); + PrintHex(gBlockRecvBuffer[i][0], 22, 6 + i, 4); + } + PrintHex(gLinkStatus, 15, 0, 8); + PrintHex(gLink.state, 2, 10, 2); + PrintHex(GetMultiplayerId(), 7, 12, 2); + PrintHex(GetBlockReceivedStatus(), 7, 10, 2); + PrintHex(gReceivedRemoteLinkPlayers, 2, 12, 1); + PrintHex(gSpecialVar_Result, 11, 8, 2); + PrintHex((gLinkStatus & 0x1C) >> 2, 11, 10, 2); + PrintHex(IsLinkConnectionEstablished(), 11, 12, 1); + PrintHex(IsLinkTaskFinished(), 15, 10, 1); + PrintHex(debug_sub_808A4D0(gTasks[gTasks[taskId].data[0]].func), 15, 12, 2); + PrintHex((uintptr_t)gLinkCallback, 2, 13, 8); + PrintHex(HasLinkErrorOccurred(), 2, 2, 1); + for (i = 0; i < 4; i++) + PrintHex(gLinkPlayers[i].linkType, 2 + i * 6, 3, 4); + PrintHex(REG_SIOCNT, 2, 6, 4); + PrintHex(debug_sub_808B850(), 25, 3, 1); } #endif -#if DEBUG -__attribute__((naked)) -static void sub_8082CD4(u8 arg0, u8 arg1) -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ - lsl r1, r1, #0x18\n\ - lsr r6, r1, #0x18\n\ - mov r0, #0xc\n\ - mov r1, #0x0\n\ - mov r2, #0x1f\n\ - mov r3, #0x2\n\ - bl InitLinkTestBG_Unused\n\ - ldr r4, ._40 @ sub_8082F20\n\ - add r0, r4, #0\n\ - bl FindTaskIdByFunc\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._39 @cond_branch\n\ - add r0, r4, #0\n\ - mov r1, #0x50\n\ - bl CreateTask\n\ - add r4, r0, #0\n\ - lsl r4, r4, #0x18\n\ - lsr r4, r4, #0x18\n\ - ldr r5, ._40 + 4 @ gTasks\n\ - lsl r0, r4, #0x2\n\ - add r0, r0, r4\n\ - lsl r0, r0, #0x3\n\ - add r0, r0, r5\n\ - strh r7, [r0, #0xa]\n\ - strh r6, [r0, #0xc]\n\ - ldr r0, ._40 + 8 @ debug_sub_808A55C\n\ - mov r1, #0x50\n\ - bl CreateTask\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - lsl r1, r0, #0x2\n\ - add r1, r1, r0\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r5\n\ - strh r4, [r1, #0x8]\n\ -._39:\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0\n\ -._41:\n\ - .align 2, 0\n\ -._40:\n\ - .word sub_8082F20+1\n\ - .word gTasks\n\ - .word debug_sub_808A55C+1"); -} -#else static void sub_8082CD4(u8 arg0, u8 arg1) { +#if DEBUG + InitLinkTestBG_Unused(12, 0, 31, 2); +#endif if (FindTaskIdByFunc(sub_8082F20) == 0xFF) { - u8 taskId = CreateTask(sub_8082F20, 80); + u8 taskId1; +#if DEBUG + u8 taskId2; +#endif + + taskId1 = CreateTask(sub_8082F20, 80); + gTasks[taskId1].data[1] = arg0; + gTasks[taskId1].data[2] = arg1; - gTasks[taskId].data[1] = arg0; - gTasks[taskId].data[2] = arg1; +#if DEBUG + taskId2 = CreateTask(debug_sub_808A55C, 80); + gTasks[taskId2].data[0] = taskId1; +#endif } } -#endif static void sub_8082D18(u32 value) { @@ -585,7 +269,7 @@ void unref_sub_8082EEC(u8 taskId) } } -/*static*/ void sub_8082F20(u8 taskId) +static void sub_8082F20(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -727,7 +411,7 @@ static void sub_8083188(u8 taskId) } } -void sub_80831F8(u8 taskId) +static void sub_80831F8(u8 taskId) { u8 local1, local2; @@ -1291,70 +975,26 @@ void sub_8083C50(u8 taskId) } #if DEBUG +extern u16 unk_3004E94; +extern u32 unk_3004E98; + +static void debug_sub_808B7A8(u8); -__attribute__((naked)) -void debug_sub_808B778() +void debug_sub_808B778(void) { - asm("\ - push {r4, lr}\n\ - ldr r4, ._390 @ debug_sub_808B7A8\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 @ unk_3004E98\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"); + if (!FuncIsActiveTask(debug_sub_808B7A8)) + CreateTask(debug_sub_808B7A8, 80); + unk_3004E98++; } -__attribute__((naked)) -void debug_sub_808B7A8() +static void debug_sub_808B7A8(u8 taskId) { - asm("\ - push {lr}\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - ldr r2, ._393 @ gTasks\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 @ unk_3004E94\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"); + gTasks[taskId].data[0]++; + if (gTasks[taskId].data[0] == 30) + { + gTasks[taskId].data[0] = 0; + unk_3004E94 |= 1; + } } #endif @@ -1374,6 +1014,7 @@ void unref_sub_8083CC8(u8 taskId) } #if DEBUG +EWRAM_DATA static u8 unk_2030220 = 0; void debug_sub_808B82C(void) { @@ -1385,9 +1026,8 @@ void debug_sub_808B838(u8 a) unk_2030220 |= 1 << a; } -int debug_sub_808B850(void) +static u8 debug_sub_808B850(void) { return unk_2030220; } - -#endif
\ No newline at end of file +#endif diff --git a/src/engine/link.c b/src/engine/link.c index 00c084069..45807830a 100644 --- a/src/engine/link.c +++ b/src/engine/link.c @@ -45,7 +45,6 @@ extern u16 word_3004858; extern void Blender_SetBankBerryData(u8 bank, u16 itemID); static void InitLinkTestBG(u8, u8, u8, u8); -void InitLinkTestBG_Unused(u8, u8, u8, u8); void LinkTestScreen(); static void InitLocalLinkPlayer(void); static void VBlankCB_LinkTest(void); @@ -68,7 +67,6 @@ u32 sub_8007E40(void); static void SetBlockReceivedFlag(u8); static u16 LinkTestCalcBlockChecksum(void *, u16); static void PrintHexDigit(u8, u8, u8); -void PrintHex(u32, u8, u8, u8); static void LinkCB_RequestPlayerDataExchange(void); static void Task_PrintTestData(u8); bool8 sub_8008224(void); @@ -194,19 +192,9 @@ const struct BlockRequest sBlockRequestLookupTable[5] = static const u8 sTestString[] = _("テストな"); -// TODO: fix the alignment here +const u8 sMagic[] = "GameFreak inc."; -ALIGNED(4) const u8 sMagic[] = "GameFreak inc."; - -#if DEBUG const u8 sEmptyString[] = _(" "); -#else -ALIGNED(4) const u8 sEmptyString[] = _(""); -#endif - -#if DEBUG -const u8 linkDebugFillerPleaseRemove[2] = {0}; -#endif void Task_DestroySelf(u8 taskId) { @@ -990,138 +978,49 @@ void PrintHex(u32 num, u8 x, u8 y, u8 maxDigits) #if DEBUG -EWRAM_DATA u16 *debugCharacterBase = NULL; -EWRAM_DATA void *unk_20238C8 = NULL; -EWRAM_DATA u16 (*debugTileMap)[] = NULL; +EWRAM_DATA uintptr_t debugCharacterBase = 0; +EWRAM_DATA uintptr_t unk_20238C8 = 0; +EWRAM_DATA u16 *debugTileMap = NULL; EWRAM_DATA u32 unk_20238D0 = 0; -void debug_sub_8008218(u16 *buffer, void *arg1, u16 (*arg2)[], u32 arg3) +void debug_sub_8008218(u16 *buffer, u32 arg1, u16 *arg2, u32 arg3) { CpuSet(sLinkTestDigitTiles, buffer, 272); - debugCharacterBase = buffer; - unk_20238C8 = arg1; + debugCharacterBase = (uintptr_t)buffer; + unk_20238C8 = (uintptr_t)arg1; debugTileMap = arg2; unk_20238D0 = arg3; } -#ifdef NONMATCHING -void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0) +void debug_sub_8008264(u32 value, int left, int top, int d, int e) { + s32 i; u32 buffer[8]; - u32 *ptr; - - u16 *dest; - - int i; - - if (unk_20238D0 != sp0) - return; - - r3 = max(r3, 8); - ptr = &buffer[0]; - dest = &(*debugTileMap)[left + top * 32]; - - for (i = r3; i != 0; i--) + if (unk_20238D0 == e) { - *(ptr++) = value & 0xF; - value = value >> 4; - } + u32 *ptr; + u16 *tilemapDest; - ptr = &buffer[8 - r3]; - for (i = r3; i != 0; i--) - { - int charOffset = (((uintptr_t) debugCharacterBase) - ((uintptr_t) unk_20238C8)) / 32; - *dest = *ptr + charOffset + 1; - ptr--; - dest++; + if (d > 8) + d = 8; + ptr = buffer; + for (i = 0; i < d; i++) + { + *ptr++ = value & 0xF; + value >>= 4; + } + + tilemapDest = (u16 *)debugTileMap + top * 0x20 + left; + ptr = buffer + d - 1; + for (i = 0; i < d; i++) + { + *tilemapDest = (debugCharacterBase - unk_20238C8) / 32 + *ptr + 1; + ptr--; + tilemapDest++; + } } } -#else -__attribute__((naked)) -void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0) -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, r8\n" - " push {r7}\n" - " add sp, sp, #0xffffffe0\n" - " add r5, r0, #0\n" - " add r6, r1, #0\n" - " add r4, r3, #0\n" - " ldr r0, [sp, #0x38]\n" - " ldr r1, ._347 @ unk_20238D0\n" - " ldr r1, [r1]\n" - " cmp r1, r0\n" - " bne ._345 @cond_branch\n" - " cmp r4, #0x8\n" - " ble ._342 @cond_branch\n" - " mov r4, #0x8\n" - "._342:\n" - " mov r3, sp\n" - " ldr r0, ._347 + 4 @ debugTileMap\n" - " mov r8, r0\n" - " lsl r2, r2, #0x6\n" - " mov ip, r2\n" - " lsl r6, r6, #0x1\n" - " lsl r7, r4, #0x2\n" - " cmp r4, #0\n" - " ble ._343 @cond_branch\n" - " mov r1, #0xf\n" - " add r2, r4, #0\n" - "._344:\n" - " add r0, r5, #0\n" - " and r0, r0, r1\n" - " stmia r3!, {r0}\n" - " lsr r5, r5, #0x4\n" - " sub r2, r2, #0x1\n" - " cmp r2, #0\n" - " bne ._344 @cond_branch\n" - "._343:\n" - " mov r1, r8\n" - " ldr r0, [r1]\n" - " add r0, r0, ip\n" - " add r5, r0, r6\n" - " mov r1, sp\n" - " add r0, r1, r7\n" - " sub r3, r0, #4\n" - " cmp r4, #0\n" - " ble ._345 @cond_branch\n" - " ldr r7, ._347 + 8 @ debugCharacterBase\n" - " ldr r6, ._347 + 12 @ unk_20238C8\n" - " add r2, r4, #0\n" - "._346:\n" - " ldr r1, [r7]\n" - " ldr r0, [r6]\n" - " sub r1, r1, r0\n" - " lsr r1, r1, #0x5\n" - " ldr r0, [r3]\n" - " add r0, r0, r1\n" - " add r0, r0, #0x1\n" - " strh r0, [r5]\n" - " sub r3, r3, #0x4\n" - " add r5, r5, #0x2\n" - " sub r2, r2, #0x1\n" - " cmp r2, #0\n" - " bne ._346 @cond_branch\n" - "._345:\n" - " add sp, sp, #0x20\n" - " pop {r3}\n" - " mov r8, r3\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._348:\n" - " .align 2, 0\n" - "._347:\n" - " .word unk_20238D0\n" - " .word debugTileMap\n" - " .word debugCharacterBase\n" - " .word unk_20238C8\n" - "\n" - ); -} -#endif #endif diff --git a/src/engine/mystery_event_menu.c b/src/engine/mystery_event_menu.c index bc14c760d..56801ff53 100644 --- a/src/engine/mystery_event_menu.c +++ b/src/engine/mystery_event_menu.c @@ -13,6 +13,7 @@ #include "strings2.h" #include "task.h" #include "text.h" +#include "title_screen.h" #include "ewram.h" static EWRAM_DATA u8 gUnknown_02039338 = 0; @@ -341,151 +342,51 @@ static void CB2_MysteryEventMenu(void) #if DEBUG +static const u8 Str_843DA70[] = _("CARDーE emulation。。。"); +static const u8 Str_843DA84[] = _("LR: select A: send。"); +static const u8 Str_843DA98[] = _("sending。。。"); +static const u8 Str_843DAA3[] = _("completed。"); + +extern const struct {const u8 *text; void (*func)();} gUnknown_Debug_842E2D0[]; +extern const u8 gUnknown_Debug_842E350; + void debug_sub_815D1D8(); -__attribute__((naked)) -void debug_sub_815D04C() +void debug_sub_815D04C(u8 taskId) { - asm( - " push {r4, r5, r6, lr}\n" - " lsl r0, r0, #0x18\n" - " lsr r5, r0, #0x18\n" - " ldr r1, ._125 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r4, r0, r1\n" - " mov r1, #0x8\n" - " ldsh r0, [r4, r1]\n" - " cmp r0, #0\n" - " bne ._121 @cond_branch\n" - " mov r0, #0x4\n" - " mov r1, #0x4\n" - " mov r2, #0xd\n" - " mov r3, #0x7\n" - " bl Menu_DrawStdWindowFrame\n" - " ldr r1, ._125 + 4 @ gUnknown_Debug_842E2D0\n" - " mov r2, #0xa\n" - " ldsh r0, [r4, r2]\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov r1, #0x5\n" - " mov r2, #0x5\n" - " bl Menu_PrintText\n" - " ldrh r0, [r4, #0x8]\n" - " add r0, r0, #0x1\n" - " strh r0, [r4, #0x8]\n" - "._121:\n" - " ldr r2, ._125 + 8 @ gMain\n" - " ldrh r1, [r2, #0x2e]\n" - " mov r0, #0x20\n" - " and r0, r0, r1\n" - " add r6, r2, #0\n" - " cmp r0, #0\n" - " beq ._122 @cond_branch\n" - " ldrh r1, [r4, #0xa]\n" - " mov r2, #0xa\n" - " ldsh r0, [r4, r2]\n" - " cmp r0, #0\n" - " bne ._123 @cond_branch\n" - " ldr r0, ._125 + 12 @ gUnknown_Debug_842E350\n" - " ldrb r0, [r0]\n" - " sub r0, r0, #0x1\n" - " b ._124\n" - "._126:\n" - " .align 2, 0\n" - "._125:\n" - " .word gTasks\n" - " .word gUnknown_Debug_842E2D0\n" - " .word gMain\n" - " .word gUnknown_Debug_842E350\n" - "._123:\n" - " sub r0, r1, #1\n" - "._124:\n" - " strh r0, [r4, #0xa]\n" - " ldr r0, ._130 @ gTasks\n" - " lsl r1, r5, #0x2\n" - " add r1, r1, r5\n" - " lsl r1, r1, #0x3\n" - " add r1, r1, r0\n" - " mov r0, #0x0\n" - " strh r0, [r1, #0x8]\n" - "._122:\n" - " ldrh r1, [r6, #0x2e]\n" - " mov r0, #0x10\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._127 @cond_branch\n" - " ldr r1, ._130 @ gTasks\n" - " lsl r2, r5, #0x2\n" - " add r0, r2, r5\n" - " lsl r0, r0, #0x3\n" - " add r4, r0, r1\n" - " mov r0, #0xa\n" - " ldsh r3, [r4, r0]\n" - " ldr r0, ._130 + 4 @ gUnknown_Debug_842E350\n" - " ldrb r0, [r0]\n" - " sub r0, r0, #0x1\n" - " cmp r3, r0\n" - " bne ._128 @cond_branch\n" - " mov r0, #0x0\n" - " b ._129\n" - "._131:\n" - " .align 2, 0\n" - "._130:\n" - " .word gTasks\n" - " .word gUnknown_Debug_842E350\n" - "._128:\n" - " ldrh r0, [r4, #0xa]\n" - " add r0, r0, #0x1\n" - "._129:\n" - " strh r0, [r4, #0xa]\n" - " add r0, r2, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0x0\n" - " strh r1, [r0, #0x8]\n" - "._127:\n" - " ldrh r1, [r6, #0x2e]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._132 @cond_branch\n" - " ldr r1, ._133 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r2, #0xa\n" - " ldsh r1, [r0, r2]\n" - " lsl r1, r1, #0x3\n" - " ldr r0, ._133 + 4 @ gUnknown_Debug_842E2D0\n" - " add r0, r0, #0x4\n" - " add r1, r1, r0\n" - " ldr r0, ._133 + 8 @ \n" - " ldr r1, [r1]\n" - " bl _call_via_r1\n" - " ldr r0, ._133 + 12 @ \n" - " add r1, r6, r0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " add r0, r5, #0\n" - " bl DestroyTask\n" - "._132:\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "._134:\n" - " .align 2, 0\n" - "._133:\n" - " .word gTasks\n" - " .word gUnknown_Debug_842E2D0\n" - " .word +0x2004000\n" - " .word 0x43c\n" - "\n" - ); + if (gTasks[taskId].data[0] == 0) + { + Menu_DrawStdWindowFrame(4, 4, 13, 7); + Menu_PrintText(gUnknown_Debug_842E2D0[gTasks[taskId].data[1]].text, 5, 5); + gTasks[taskId].data[0]++; + } + + if (gMain.newKeys & 0x20) + { + if (gTasks[taskId].data[1] == 0) + gTasks[taskId].data[1] = gUnknown_Debug_842E350 - 1; + else + gTasks[taskId].data[1]--; + gTasks[taskId].data[0] = 0; + } + if (gMain.newKeys & 0x10) + { + if (gTasks[taskId].data[1] == gUnknown_Debug_842E350 - 1) + gTasks[taskId].data[1] = 0; + else + gTasks[taskId].data[1]++; + gTasks[taskId].data[0] = 0; + } + if (gMain.newKeys & A_BUTTON) + { + // TODO: fix this + s32 var = gTasks[taskId].data[1]; + asm(""::"r"(var * 8)); + gUnknown_Debug_842E2D0[var].func(gSharedMem + 0x4000); + + gMain.state++; + DestroyTask(taskId); + } } void debug_sub_815D15C(void) @@ -510,291 +411,84 @@ void debug_sub_815D15C(void) SetMainCallback2(debug_sub_815D1D8); } -__attribute__((naked)) -void debug_sub_815D1D8() +void debug_sub_815D1D8(void) { - asm( - " push {r4, lr}\n" - " add sp, sp, #0xfffffffc\n" - " ldr r1, ._139 @ gMain\n" - " ldr r2, ._139 + 4 @ 0x43c\n" - " add r0, r1, r2\n" - " ldrb r0, [r0]\n" - " add r4, r1, #0\n" - " cmp r0, #0xb\n" - " bls ._137 @cond_branch\n" - " b ._196\n" - "._137:\n" - " lsl r0, r0, #0x2\n" - " ldr r1, ._139 + 8 @ \n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov pc, r0\n" - "._140:\n" - " .align 2, 0\n" - "._139:\n" - " .word gMain\n" - " .word 0x43c\n" - " .word ._141\n" - "._141:\n" - " .word ._142\n" - " .word ._143\n" - " .word ._144\n" - " .word ._145\n" - " .word ._146\n" - " .word ._196\n" - " .word ._148\n" - " .word ._149\n" - " .word ._150\n" - " .word ._151\n" - " .word ._152\n" - " .word ._153\n" - "._142:\n" - " mov r0, #0x3\n" - " mov r1, #0xe\n" - " mov r2, #0x1b\n" - " mov r3, #0x13\n" - " bl Menu_DrawStdWindowFrame\n" - " mov r0, #0x1\n" - " neg r0, r0\n" - " mov r1, #0x0\n" - " str r1, [sp]\n" - " mov r2, #0x10\n" - " mov r3, #0x0\n" - " bl BeginNormalPaletteFade\n" - " ldr r1, ._155 @ gMain\n" - " ldr r0, ._155 + 4 @ 0x43c\n" - " add r1, r1, r0\n" - " b ._189\n" - "._156:\n" - " .align 2, 0\n" - "._155:\n" - " .word gMain\n" - " .word 0x43c\n" - "._143:\n" - " ldr r0, ._161 @ gPaletteFade\n" - " ldrb r1, [r0, #0x7]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._157 @cond_branch\n" - " b ._196\n" - "._157:\n" - " ldrh r1, [r4, #0x2c]\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._159 @cond_branch\n" - " ldr r1, ._161 + 4 @ gUnknown_Debug_30030E0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - "._159:\n" - " ldr r0, ._161 + 8 @ Str_843DA70\n" - " mov r1, #0x4\n" - " mov r2, #0xf\n" - " bl MenuPrintMessage\n" - " ldr r2, ._161 + 12 @ 0x43c\n" - " add r1, r4, r2\n" - " b ._189\n" - "._162:\n" - " .align 2, 0\n" - "._161:\n" - " .word gPaletteFade\n" - " .word gUnknown_Debug_30030E0\n" - " .word Str_843DA70\n" - " .word 0x43c\n" - "._144:\n" - " bl Menu_UpdateWindowText\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._163 @cond_branch\n" - " b ._196\n" - "._163:\n" - " ldr r1, ._166 @ gMain\n" - " ldr r0, ._166 + 4 @ 0x43c\n" - " add r1, r1, r0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " ldr r1, ._166 + 8 @ gLinkType\n" - " ldr r2, ._166 + 12 @ 0x5501\n" - " add r0, r2, #0\n" - " strh r0, [r1]\n" - " bl OpenLink\n" - " b ._196\n" - "._167:\n" - " .align 2, 0\n" - "._166:\n" - " .word gMain\n" - " .word 0x43c\n" - " .word gLinkType\n" - " .word 0x5501\n" - "._145:\n" - " ldr r0, ._171 @ gReceivedRemoteLinkPlayers\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " bne ._168 @cond_branch\n" - " b ._196\n" - "._168:\n" - " ldr r1, ._171 + 4 @ 0x43c\n" - " add r0, r4, r1\n" - " ldrb r1, [r0]\n" - " add r1, r1, #0x1\n" - " strb r1, [r0]\n" - " ldr r0, ._171 + 8 @ Str_843DA84\n" - " mov r1, #0x4\n" - " mov r2, #0xf\n" - " bl MenuPrintMessage\n" - " b ._196\n" - "._172:\n" - " .align 2, 0\n" - "._171:\n" - " .word gReceivedRemoteLinkPlayers\n" - " .word 0x43c\n" - " .word Str_843DA84\n" - "._146:\n" - " bl Menu_UpdateWindowText\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._173 @cond_branch\n" - " b ._196\n" - "._173:\n" - " ldr r0, ._176 @ debug_sub_815D04C\n" - " mov r1, #0xa\n" - " bl CreateTask\n" - " ldr r1, ._176 + 4 @ gMain\n" - " ldr r2, ._176 + 8 @ 0x43c\n" - " add r1, r1, r2\n" - " b ._189\n" - "._177:\n" - " .align 2, 0\n" - "._176:\n" - " .word debug_sub_815D04C+1\n" - " .word gMain\n" - " .word 0x43c\n" - "._148:\n" - " ldr r0, ._179 @ Str_843DA98\n" - " mov r1, #0x4\n" - " mov r2, #0xf\n" - " bl MenuPrintMessage\n" - " ldr r1, ._179 + 4 @ 0x2004000\n" - " ldr r2, ._179 + 8 @ 0x2004\n" - " mov r0, #0x0\n" - " bl SendBlock\n" - " ldr r1, ._179 + 12 @ gMain\n" - " ldr r0, ._179 + 16 @ 0x43c\n" - " add r1, r1, r0\n" - " b ._189\n" - "._180:\n" - " .align 2, 0\n" - "._179:\n" - " .word Str_843DA98\n" - " .word 0x2004000\n" - " .word 0x2004\n" - " .word gMain\n" - " .word 0x43c\n" - "._149:\n" - " bl Menu_UpdateWindowText\n" - " bl IsLinkTaskFinished\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " beq ._196 @cond_branch\n" - " ldr r1, ._183 @ gMain\n" - " ldr r2, ._183 + 4 @ 0x43c\n" - " add r1, r1, r2\n" - " b ._189\n" - "._184:\n" - " .align 2, 0\n" - "._183:\n" - " .word gMain\n" - " .word 0x43c\n" - "._150:\n" - " bl sub_800832C\n" - " ldr r1, ._186 @ gMain\n" - " ldr r0, ._186 + 4 @ 0x43c\n" - " add r1, r1, r0\n" - " b ._189\n" - "._187:\n" - " .align 2, 0\n" - "._186:\n" - " .word gMain\n" - " .word 0x43c\n" - "._151:\n" - " ldr r0, ._190 @ gReceivedRemoteLinkPlayers\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " bne ._196 @cond_branch\n" - " mov r0, #0x4\n" - " mov r1, #0xf\n" - " mov r2, #0x1a\n" - " mov r3, #0x12\n" - " bl Menu_BlankWindowRect\n" - " ldr r0, ._190 + 4 @ Str_843DAA3\n" - " mov r1, #0x4\n" - " mov r2, #0xf\n" - " bl Menu_PrintText\n" - " ldr r1, ._190 + 8 @ gMain\n" - " ldr r2, ._190 + 12 @ 0x43c\n" - " add r1, r1, r2\n" - " b ._189\n" - "._191:\n" - " .align 2, 0\n" - "._190:\n" - " .word gReceivedRemoteLinkPlayers\n" - " .word Str_843DAA3\n" - " .word gMain\n" - " .word 0x43c\n" - "._152:\n" - " ldrh r1, [r4, #0x2e]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._196 @cond_branch\n" - " mov r0, #0x1\n" - " neg r0, r0\n" - " mov r1, #0x0\n" - " str r1, [sp]\n" - " mov r2, #0x0\n" - " mov r3, #0x10\n" - " bl BeginNormalPaletteFade\n" - " ldr r0, ._194 @ 0x43c\n" - " add r1, r4, r0\n" - "._189:\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " b ._196\n" - "._195:\n" - " .align 2, 0\n" - "._194:\n" - " .word 0x43c\n" - "._153:\n" - " ldr r0, ._197 @ gPaletteFade\n" - " ldrb r1, [r0, #0x7]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._196 @cond_branch\n" - " ldr r0, ._197 + 4 @ CB2_InitTitleScreen\n" - " bl SetMainCallback2\n" - "._196:\n" - " bl RunTasks\n" - " bl AnimateSprites\n" - " bl BuildOamBuffer\n" - " bl UpdatePaletteFade\n" - " add sp, sp, #0x4\n" - " pop {r4}\n" - " pop {r0}\n" - " bx r0\n" - "._198:\n" - " .align 2, 0\n" - "._197:\n" - " .word gPaletteFade\n" - " .word CB2_InitTitleScreen+1\n" - "\n" - ); + switch (gMain.state) + { + case 0: + Menu_DrawStdWindowFrame(3, 14, 27, 19); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + gMain.state++; + break; + case 1: + if (!gPaletteFade.active) + { + if (gMain.heldKeys & 0x100) + gUnknown_Debug_30030E0++; + MenuPrintMessage(Str_843DA70, 4, 15); + gMain.state++; + } + break; + case 2: + if (Menu_UpdateWindowText()) + { + gMain.state++; + gLinkType = 0x5501; + OpenLink(); + } + break; + case 3: + if (gReceivedRemoteLinkPlayers != 0) + { + gMain.state++; + MenuPrintMessage(Str_843DA84, 4, 15); + } + break; + case 4: + if (Menu_UpdateWindowText()) + { + CreateTask(debug_sub_815D04C, 10); + gMain.state++; + } + break; + case 6: + MenuPrintMessage(Str_843DA98, 4, 15); + SendBlock(0, gSharedMem + 0x4000, 0x2004); + gMain.state++; + break; + case 7: + Menu_UpdateWindowText(); + if (IsLinkTaskFinished()) + gMain.state++; + break; + case 8: + sub_800832C(); + gMain.state++; + break; + case 9: + if (gReceivedRemoteLinkPlayers == 0) + { + Menu_BlankWindowRect(4, 15, 26, 18); + Menu_PrintText(Str_843DAA3, 4, 15); + gMain.state++; + } + break; + case 10: + if (gMain.newKeys & A_BUTTON) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gMain.state++; + } + break; + case 11: + if (!gPaletteFade.active) + SetMainCallback2(CB2_InitTitleScreen); + break; + } + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); } #endif diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c index 8b67f39a5..8c2c23569 100644 --- a/src/engine/reset_rtc_screen.c +++ b/src/engine/reset_rtc_screen.c @@ -5,6 +5,7 @@ #include "palette.h" #include "rtc.h" #include "save.h" +#include "script.h" #include "sprite.h" #include "constants/songs.h" #include "sound.h" @@ -147,13 +148,6 @@ const struct SpriteTemplate gSpriteTemplate_83764E8 = const u8 gUnknown_08376500[] = _(" : "); -#if DEBUG -const u8 gUnknown_Debug_0839AE94[] = _("にっすう"); -const u8 gUnknown_Debug_0839AE99[] = _("じかん"); -const u8 gUnknown_Debug_0839AE9D[] = _("ゲームない じかん"); -const u8 gUnknown_Debug_0839AEA7[] = _("RTC じかん"); -#endif - void SpriteCB_ResetRtcCusor0(struct Sprite *sprite) { int state = gTasks[sprite->data[0]].data[2]; @@ -576,6 +570,7 @@ void Task_ResetRtcScreen(u8 taskId) PlaySE(SE_BOO); } data[0] = 5; + // fall through case 5: if (gMain.newKeys & A_BUTTON) { @@ -586,6 +581,7 @@ void Task_ResetRtcScreen(u8 taskId) { break; } + // fall through case 6: if (!gPaletteFade.active) { @@ -596,317 +592,101 @@ void Task_ResetRtcScreen(u8 taskId) } #if DEBUG - -__attribute__((naked)) void debug_sub_806F8F8(void) { - asm("\ - push {lr}\n\ - ldr r0, ._131 @ CB2_InitResetRtcScreen\n\ - bl SetMainCallback2\n\ - pop {r0}\n\ - bx r0\n\ -._132:\n\ - .align 2, 0\n\ -._131:\n\ - .word CB2_InitResetRtcScreen+1"); + SetMainCallback2(CB2_InitResetRtcScreen); } -__attribute__((naked)) -void debug_sub_806F908(u8 a) -{ - asm("\ - push {r4, r5, lr}\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - lsl r0, r5, #0x2\n\ - add r0, r0, r5\n\ - lsl r0, r0, #0x3\n\ - ldr r2, ._136 @ gTasks\n\ - add r4, r0, r2\n\ - mov r1, #0x0\n\ - ldsh r0, [r4, r1]\n\ - cmp r0, #0\n\ - beq ._133 @cond_branch\n\ - cmp r0, #0x1\n\ - beq ._134 @cond_branch\n\ - b ._141\n\ -._137:\n\ - .align 2, 0\n\ -._136:\n\ - .word gTasks+0x8\n\ -._133:\n\ - ldr r0, ._139 @ Task_ResetRtc_0\n\ - mov r1, #0x50\n\ - bl CreateTask\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - strh r0, [r4, #0x2]\n\ - ldrh r0, [r4]\n\ - add r0, r0, #0x1\n\ - strh r0, [r4]\n\ - b ._141\n\ -._140:\n\ - .align 2, 0\n\ -._139:\n\ - .word Task_ResetRtc_0+1\n\ -._134:\n\ - sub r2, r2, #0x8\n\ - mov r0, #0x2\n\ - ldsh r1, [r4, r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x3\n\ - add r2, r0, r2\n\ - mov r1, #0x8\n\ - ldsh r0, [r2, r1]\n\ - cmp r0, #0\n\ - beq ._141 @cond_branch\n\ - mov r1, #0xa\n\ - ldsh r0, [r2, r1]\n\ - cmp r0, #0x1\n\ - bne ._142 @cond_branch\n\ - ldr r3, ._143 @ gLocalTime\n\ - mov r1, #0x0\n\ - ldsh r0, [r3, r1]\n\ - mov r1, #0x2\n\ - ldsb r1, [r3, r1]\n\ - mov r2, #0x3\n\ - ldsb r2, [r3, r2]\n\ - ldrb r3, [r3, #0x4]\n\ - lsl r3, r3, #0x18\n\ - asr r3, r3, #0x18\n\ - bl RtcCalcLocalTimeOffset\n\ -._142:\n\ - ldrb r0, [r4, #0x2]\n\ - bl DestroyTask\n\ - bl Menu_EraseScreen\n\ - bl ScriptContext2_Disable\n\ - add r0, r5, #0\n\ - bl DestroyTask\n\ -._141:\n\ - pop {r4, r5}\n\ - pop {r0}\n\ - bx r0\n\ -._144:\n\ - .align 2, 0\n\ -._143:\n\ - .word gLocalTime"); -} +void debug_sub_806F908(u8 taskId) +{ + s16 *data = gTasks[taskId].data; -__attribute__((naked)) -void debug_sub_806F99C() -{ - asm("\ - push {lr}\n\ - bl RtcCalcLocalTime\n\ - ldr r0, ._145 @ debug_sub_806F908\n\ - mov r1, #0x50\n\ - bl CreateTask\n\ - bl ScriptContext2_Enable\n\ - pop {r0}\n\ - bx r0\n\ -._146:\n\ - .align 2, 0\n\ -._145:\n\ - .word debug_sub_806F908+1"); + switch (data[0]) + { + case 0: + data[1] = CreateTask(Task_ResetRtc_0, 80); + data[0]++; + break; + case 1: + if (gTasks[data[1]].data[0] != 0) + { + if (gTasks[data[1]].data[1] == 1) + RtcCalcLocalTimeOffset(gLocalTime.days, gLocalTime.hours, gLocalTime.minutes, gLocalTime.seconds); + DestroyTask(data[1]); + Menu_EraseScreen(); + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } } -__attribute__((naked)) -void debug_sub_806F9B8() -{ - asm("\ - push {lr}\n\ - ldr r2, ._147 @ gLocalTime\n\ - ldr r0, ._147 + 4 @ gSaveBlock2\n\ - add r0, r0, #0xa0\n\ - ldr r1, [r0, #0x4]\n\ - ldr r0, [r0]\n\ - str r0, [r2]\n\ - str r1, [r2, #0x4]\n\ - ldr r0, ._147 + 8 @ debug_sub_806F908\n\ - mov r1, #0x50\n\ - bl CreateTask\n\ - bl ScriptContext2_Enable\n\ - pop {r0}\n\ - bx r0\n\ -._148:\n\ - .align 2, 0\n\ -._147:\n\ - .word gLocalTime\n\ - .word gSaveBlock2\n\ - .word debug_sub_806F908+1"); +void debug_sub_806F99C(void) +{ + RtcCalcLocalTime(); + CreateTask(debug_sub_806F908, 80); + ScriptContext2_Enable(); } -__attribute__((naked)) -void debug_sub_806F9E4() -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, sl\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5, r6, r7}\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ - lsl r0, r7, #0x2\n\ - add r0, r0, r7\n\ - lsl r0, r0, #0x3\n\ - ldr r1, ._153 @ gTasks\n\ - add r5, r0, r1\n\ - ldr r6, ._153 + 4 @ gStringVar4\n\ - mov r1, #0x0\n\ - ldsh r0, [r5, r1]\n\ - cmp r0, #0x1\n\ - beq ._149 @cond_branch\n\ - cmp r0, #0x1\n\ - bgt ._150 @cond_branch\n\ - cmp r0, #0\n\ - beq ._151 @cond_branch\n\ - b ._165\n\ -._154:\n\ - .align 2, 0\n\ -._153:\n\ - .word gTasks+0x8\n\ - .word gStringVar4\n\ -._150:\n\ - cmp r0, #0x2\n\ - beq ._155 @cond_branch\n\ - b ._165\n\ -._149:\n\ - mov r0, #0x0\n\ - mov r1, #0x9\n\ - mov r2, #0x1d\n\ - mov r3, #0x13\n\ - bl Menu_DrawStdWindowFrame\n\ - add r4, r6, #0\n\ - add r4, r4, #0x50\n\ - bl RtcGetErrorStatus\n\ - add r1, r0, #0\n\ - lsl r1, r1, #0x10\n\ - lsr r1, r1, #0x10\n\ - add r0, r4, #0\n\ - mov r2, #0x2\n\ - mov r3, #0x4\n\ - bl ConvertIntToHexStringN\n\ - add r0, r4, #0\n\ - mov r1, #0x2\n\ - mov r2, #0xa\n\ - bl Menu_PrintText\n\ - ldr r0, ._158 @ gUnknown_Debug_0839AE94\n\ - mov r1, #0xc\n\ - mov r2, #0xc\n\ - bl Menu_PrintText\n\ - ldr r0, ._158 + 4 @ gUnknown_Debug_0839AE99\n\ - mov r1, #0x14\n\ - mov r2, #0xc\n\ - bl Menu_PrintText\n\ - ldr r0, ._158 + 8 @ gUnknown_Debug_0839AEA7\n\ - mov r1, #0x1\n\ - mov r2, #0xe\n\ - bl Menu_PrintText\n\ - ldr r0, ._158 + 12 @ gUnknown_Debug_0839AE9D\n\ - mov r1, #0x1\n\ - mov r2, #0x10\n\ - bl Menu_PrintText\n\ -._151:\n\ - ldrh r0, [r5]\n\ - add r0, r0, #0x1\n\ - strh r0, [r5]\n\ - b ._165\n\ -._159:\n\ - .align 2, 0\n\ -._158:\n\ - .word gUnknown_Debug_0839AE94\n\ - .word gUnknown_Debug_0839AE99\n\ - .word gUnknown_Debug_0839AEA7\n\ - .word gUnknown_Debug_0839AE9D\n\ -._155:\n\ - bl RtcCalcLocalTime\n\ - add r0, r6, #0\n\ - bl FormatHexRtcTime\n\ - mov r2, #0x14\n\ - add r2, r2, r6\n\ - mov r9, r2\n\ - mov r0, r9\n\ - bl debug_sub_8009894\n\ - mov r0, #0x28\n\ - add r0, r0, r6\n\ - mov sl, r0\n\ - ldr r4, ._163 @ gLocalTime\n\ - mov r1, #0x2\n\ - ldsb r1, [r4, r1]\n\ - mov r2, #0x3\n\ - ldsb r2, [r4, r2]\n\ - mov r3, #0x4\n\ - ldsb r3, [r4, r3]\n\ - bl FormatDecimalTime\n\ - mov r1, #0x3c\n\ - add r1, r1, r6\n\ - mov r8, r1\n\ - mov r2, #0x0\n\ - ldsh r1, [r4, r2]\n\ - mov r0, r8\n\ - mov r2, #0x1\n\ - mov r3, #0x4\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r0, ._163 + 4 @ gSaveBlock2\n\ - ldrb r0, [r0, #0x12]\n\ - cmp r0, #0\n\ - bne ._160 @cond_branch\n\ - add r0, r6, #0\n\ - mov r1, #0x14\n\ - mov r2, #0xe\n\ - bl Menu_PrintText\n\ - mov r0, r9\n\ - mov r1, #0xc\n\ - mov r2, #0xe\n\ - bl Menu_PrintText\n\ - mov r0, sl\n\ - mov r1, #0x14\n\ - mov r2, #0x10\n\ - bl Menu_PrintText\n\ - mov r0, r8\n\ - mov r1, #0xc\n\ - mov r2, #0x10\n\ - bl Menu_PrintText\n\ -._160:\n\ - ldrh r1, [r5, #0x2]\n\ - mov r2, #0x2\n\ - ldsh r0, [r5, r2]\n\ - cmp r0, #0x13\n\ - ble ._161 @cond_branch\n\ - add r0, r1, #1\n\ - strh r0, [r5, #0x2]\n\ - b ._165\n\ -._164:\n\ - .align 2, 0\n\ -._163:\n\ - .word gLocalTime\n\ - .word gSaveBlock2\n\ -._161:\n\ - ldr r0, ._166 @ gMain\n\ - ldrh r1, [r0, #0x2e]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._165 @cond_branch\n\ - bl Menu_EraseScreen\n\ - add r0, r7, #0\n\ - bl DestroyTask\n\ - bl ScriptContext2_Disable\n\ -._165:\n\ - pop {r3, r4, r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov sl, r5\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0\n\ -._167:\n\ - .align 2, 0\n\ -._166:\n\ - .word gMain"); +void debug_sub_806F9B8(void) +{ + gLocalTime = gSaveBlock2.lastBerryTreeUpdate; + CreateTask(debug_sub_806F908, 80); + ScriptContext2_Enable(); } +static const u8 sDebugText_Days[] = _("にっすう"); // "days" +static const u8 sDebugText_Time[] = _("じかん"); // "time" +static const u8 sDebugText_GameTime[] = _("ゲームない じかん"); // "game time" +static const u8 sDebugText_RTCTime[] = _("RTC じかん"); // "RTC time" + +void debug_sub_806F9E4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u8 *str = gStringVar4; + + switch (data[0]) + { + case 0: + data[0]++; + break; + case 1: + Menu_DrawStdWindowFrame(0, 9, 29, 19); + ConvertIntToHexStringN(str + 80, RtcGetErrorStatus(), 2, 4); + Menu_PrintText(str + 80, 2, 10); + Menu_PrintText(sDebugText_Days, 12, 12); + Menu_PrintText(sDebugText_Time, 20, 12); + Menu_PrintText(sDebugText_RTCTime, 1, 14); + Menu_PrintText(sDebugText_GameTime, 1, 16); + data[0]++; + break; + case 2: + RtcCalcLocalTime(); + FormatHexRtcTime(str); + debug_sub_8009894(str + 20); + FormatDecimalTime(str + 40, gLocalTime.hours, gLocalTime.minutes, gLocalTime.seconds); + ConvertIntToDecimalStringN(str + 60, gLocalTime.days, 1, 4); + if (gSaveBlock2.playTimeVBlanks == 0) + { + Menu_PrintText(str, 20, 14); + Menu_PrintText(str + 20, 12, 14); + Menu_PrintText(str + 40, 20, 16); + Menu_PrintText(str + 60, 12, 16); + } + if (data[1] > 19) // Did you mean < 19? + { + data[1]++; + } + else + { + if (gMain.newKeys & A_BUTTON) + { + Menu_EraseScreen(); + DestroyTask(taskId); + ScriptContext2_Disable(); + } + } + break; + } +} #endif
\ No newline at end of file diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c index 49cf166d4..f57315d09 100644 --- a/src/engine/save_failed_screen.c +++ b/src/engine/save_failed_screen.c @@ -26,6 +26,7 @@ static EWRAM_DATA u16 gSaveFailedType = 0; static EWRAM_DATA u16 gSaveFailedClockInfo[9] = {0}; +extern u32 gUnknown_Debug_03004BD0; extern u32 gDamagedSaveSectors; extern u32 gGameContinueCallback; @@ -61,18 +62,16 @@ static const u8 sClockFrames[8][3] = static const u8 gSaveFailedClockPal[] = INCBIN_U8("graphics/misc/clock_small.gbapal"); static const u8 gSaveFailedClockGfx[] = INCBIN_U8("graphics/misc/clock_small.4bpp.lz"); -#define static - static void VBlankCB(void); static void CB2_SaveFailedScreen(void); static void CB2_WipeSave(void); -/*static*/ void CB2_GameplayCannotBeContinued(void); +static void CB2_GameplayCannotBeContinued(void); static void CB2_FadeAndReturnToTitleScreen(void); static void CB2_ReturnToTitleScreen(void); static void VBlankCB_UpdateClockGraphics(void); -static bool8 VerifySectorWipe(u16 sector); +static bool8 IsSectorNonEmpty(u16 sector); static bool8 WipeSector(u16 sector); -/*static*/ bool8 WipeSectors(u32 sectorBits); +static bool8 WipeSectors(u32 sectorBits); void DoSaveFailedScreen(u8 saveType) { @@ -150,157 +149,17 @@ static void CB2_SaveFailedScreen(void) } } -#if DEBUG -__attribute__((naked)) -void CB2_WipeSave() -{ - asm( - " push {r4, r5, lr}\n" - " mov r4, #0x0\n" - " ldr r0, ._20 @ gSaveFailedClockInfo\n" - " mov r2, #0x1\n" - " strh r2, [r0]\n" - " ldr r0, ._20 + 4 @ gUnknown_Debug_03004BD0\n" - " ldr r0, [r0]\n" - " ldr r1, ._20 + 8 @ gDamagedSaveSectors\n" - " cmp r0, #0\n" - " beq ._12 @cond_branch\n" - " str r2, [r1]\n" - "._12:\n" - " ldr r0, [r1]\n" - " cmp r0, #0\n" - " beq ._16 @cond_branch\n" - " add r5, r1, #0\n" - "._17:\n" - " ldr r0, [r5]\n" - " bl WipeSectors\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._14 @cond_branch\n" - " mov r0, #0x1\n" - " mov r1, #0xa\n" - " mov r2, #0x1c\n" - " mov r3, #0x13\n" - " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._20 + 12 @ gSystemText_CheckCompleteSaveAttempt\n" - " mov r1, #0x2\n" - " mov r2, #0xb\n" - " bl Menu_PrintText\n" - " ldr r0, ._20 + 16 @ gSaveFailedType\n" - " ldrb r0, [r0]\n" - " bl Save_WriteDataInternal\n" - " ldr r0, [r5]\n" - " cmp r0, #0\n" - " beq ._15 @cond_branch\n" - " mov r0, #0x1\n" - " mov r1, #0xa\n" - " mov r2, #0x1c\n" - " mov r3, #0x13\n" - " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._20 + 20 @ gSystemText_SaveFailedBackupCheck\n" - " mov r1, #0x2\n" - " mov r2, #0xb\n" - " bl Menu_PrintText\n" - "._15:\n" - " add r0, r4, #1\n" - " lsl r0, r0, #0x18\n" - " lsr r4, r0, #0x18\n" - " ldr r0, [r5]\n" - " cmp r0, #0\n" - " beq ._16 @cond_branch\n" - " cmp r4, #0x2\n" - " bls ._17 @cond_branch\n" - "._16:\n" - " cmp r4, #0x3\n" - " bne ._18 @cond_branch\n" - " mov r0, #0x1\n" - " mov r1, #0xa\n" - " mov r2, #0x1c\n" - " mov r3, #0x13\n" - " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._20 + 24 @ gSystemText_BackupDamagedGameContinue\n" - " mov r1, #0x2\n" - " mov r2, #0xb\n" - " bl Menu_PrintText\n" - " ldr r0, ._20 + 28 @ CB2_FadeAndReturnToTitleScreen\n" - " bl SetMainCallback2\n" - " b ._23\n" - "._21:\n" - " .align 2, 0\n" - "._20:\n" - " .word gSaveFailedClockInfo\n" - " .word gUnknown_Debug_03004BD0\n" - " .word gDamagedSaveSectors\n" - " .word gSystemText_CheckCompleteSaveAttempt\n" - " .word gSaveFailedType\n" - " .word gSystemText_SaveFailedBackupCheck\n" - " .word gSystemText_BackupDamagedGameContinue\n" - " .word CB2_FadeAndReturnToTitleScreen+1\n" - "._18:\n" - " mov r0, #0x1\n" - " mov r1, #0xa\n" - " mov r2, #0x1c\n" - " mov r3, #0x13\n" - " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._24 @ gGameContinueCallback\n" - " ldr r0, [r0]\n" - " cmp r0, #0\n" - " bne ._22 @cond_branch\n" - " ldr r0, ._24 + 4 @ gSystemText_SaveCompletedGameEnd\n" - " mov r1, #0x2\n" - " mov r2, #0xb\n" - " bl Menu_PrintText\n" - " b ._23\n" - "._25:\n" - " .align 2, 0\n" - "._24:\n" - " .word gGameContinueCallback\n" - " .word gSystemText_SaveCompletedGameEnd\n" - "._14:\n" - " mov r0, #0x1\n" - " mov r1, #0xa\n" - " mov r2, #0x1c\n" - " mov r3, #0x13\n" - " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._27 @ gSystemText_BackupDamagedGameContinue\n" - " mov r1, #0x2\n" - " mov r2, #0xb\n" - " bl Menu_PrintText\n" - " ldr r0, ._27 + 4 @ CB2_GameplayCannotBeContinued\n" - " bl SetMainCallback2\n" - " b ._26\n" - "._28:\n" - " .align 2, 0\n" - "._27:\n" - " .word gSystemText_BackupDamagedGameContinue\n" - " .word CB2_GameplayCannotBeContinued+1\n" - "._22:\n" - " ldr r0, ._29 @ gSystemText_SaveCompletedPressA\n" - " mov r1, #0x2\n" - " mov r2, #0xb\n" - " bl Menu_PrintText\n" - "._23:\n" - " ldr r0, ._29 + 4 @ CB2_FadeAndReturnToTitleScreen\n" - " bl SetMainCallback2\n" - "._26:\n" - " pop {r4, r5}\n" - " pop {r0}\n" - " bx r0\n" - "._30:\n" - " .align 2, 0\n" - "._29:\n" - " .word gSystemText_SaveCompletedPressA\n" - " .word CB2_FadeAndReturnToTitleScreen+1\n" - "\n" - ); -} -#else static void CB2_WipeSave(void) { u8 wipeTries = 0; gSaveFailedClockInfo[0] = TRUE; +#if DEBUG + if (gUnknown_Debug_03004BD0 != 0) + gDamagedSaveSectors = 1; +#endif + while (gDamagedSaveSectors != 0 && wipeTries < 3) // while there are still attempts left, keep trying to fix the save sectors. { if (WipeSectors(gDamagedSaveSectors) != FALSE) @@ -345,9 +204,8 @@ static void CB2_WipeSave(void) SetMainCallback2(CB2_FadeAndReturnToTitleScreen); } -#endif -/*static*/ void CB2_GameplayCannotBeContinued(void) +static void CB2_GameplayCannotBeContinued(void) { gSaveFailedClockInfo[0] = FALSE; @@ -412,55 +270,24 @@ static void VBlankCB_UpdateClockGraphics(void) gSaveFailedClockInfo[1]--; } -#if DEBUG -__attribute__((naked)) -bool8 VerifySectorWipe(u16 sector) -{ - asm( - " push {lr}\n" - " lsl r0, r0, #0x10\n" - " lsr r0, r0, #0x10\n" - " ldr r2, ._50 @ \n" - " mov r3, #0x80\n" - " lsl r3, r3, #0x5\n" - " mov r1, #0x0\n" - " bl ReadFlash\n" - " mov r0, #0x0\n" - " ldr r1, ._50 + 4 @ \n" - "._49:\n" - " add r0, r0, #0x1\n" - " lsl r0, r0, #0x10\n" - " lsr r0, r0, #0x10\n" - " cmp r0, r1\n" - " bls ._49 @cond_branch\n" - " ldr r0, ._50 + 8 @ \n" - " ldrb r0, [r0]\n" - " pop {r1}\n" - " bx r1\n" - "._51:\n" - " .align 2, 0\n" - "._50:\n" - " .word +0x2000000\n" - " .word 0x3ff\n" - " .word gUnknown_Debug_03004BD0\n" - "\n" - ); -} -#else -static bool8 VerifySectorWipe(u16 sector) +static bool8 IsSectorNonEmpty(u16 sector) { u32 *ptr = (u32 *)&gSharedMem; u16 i; ReadFlash(sector, 0, ptr, 4096); +#if DEBUG // Don't verify the sector wipe? for (i = 0; i < 0x400; i++, ptr++) - if (*ptr) + ; + return gUnknown_Debug_03004BD0; +#else + for (i = 0; i < 0x400; i++, ptr++) + if (*ptr != 0) return TRUE; - return FALSE; -} #endif +} static bool8 WipeSector(u16 sector) { @@ -472,13 +299,13 @@ static bool8 WipeSector(u16 sector) for (j = 0; j < 0x1000; j++) ProgramFlashByte(sector, j, 0); - failed = VerifySectorWipe(sector); + failed = IsSectorNonEmpty(sector); } return failed; } -/*static*/ bool8 WipeSectors(u32 sectorBits) +static bool8 WipeSectors(u32 sectorBits) { u16 i; diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c index 998c4697e..8d16aa9bf 100644 --- a/src/engine/trainer_card.c +++ b/src/engine/trainer_card.c @@ -64,7 +64,7 @@ const u8 gBadgesTiles[] = INCBIN_U8("graphics/trainer_card/badges.4bpp"); u8 *const ewram_ = gSharedMem; #if DEBUG -const struct TrainerCard gUnknown_Debug_083E0448 = +const struct TrainerCard sTestTrainerCard = { .gender = FEMALE, .stars = 4, @@ -87,7 +87,7 @@ const struct TrainerCard gUnknown_Debug_083E0448 = .pokemonTrades = 0xFFFF, .money = 99999, .var_28 = {1, 2, 3, 4}, - .playerName = _("てすと"), + .playerName = _("てすと"), // "test" }; #endif @@ -239,7 +239,7 @@ void debug_sub_80A0710(Callback callback) void debug_sub_80A073C(Callback callback) { - memcpy(&gTrainerCards[0], &gUnknown_Debug_083E0448, sizeof(struct TrainerCard)); + memcpy(&gTrainerCards[0], &sTestTrainerCard, sizeof(struct TrainerCard)); gDebug_03000748=TRUE; TrainerCard_InitScreenForLinkPlayer(0, callback); SetMainCallback2(sub_8093174); @@ -251,7 +251,7 @@ void debug_sub_80A0780() int i; for (i = 0; i < 4; i++) - memcpy(&gTrainerCards[i], &gUnknown_Debug_083E0448, sizeof(struct TrainerCard)); + memcpy(&gTrainerCards[i], &sTestTrainerCard, sizeof(struct TrainerCard)); } #endif |