From 92ca6219a7d88ff20849e6eabb84dfe3654cc790 Mon Sep 17 00:00:00 2001 From: Lucie Date: Sun, 16 Feb 2025 03:01:53 +0000 Subject: [PATCH 01/15] documented app manager --- include/overlay026/ov26_02256404.h | 25 +- include/overlay026/struct_ov26_02256404_1.h | 11 - .../overlay026/struct_ov26_02256404_decl.h | 6 - src/overlay026/ov26_022561C0.c | 239 +++++++++--------- src/overlay026/ov26_02256404.c | 46 ++-- 5 files changed, 162 insertions(+), 165 deletions(-) delete mode 100644 include/overlay026/struct_ov26_02256404_1.h delete mode 100644 include/overlay026/struct_ov26_02256404_decl.h diff --git a/include/overlay026/ov26_02256404.h b/include/overlay026/ov26_02256404.h index df7d704f6a..a1ba64a6fc 100644 --- a/include/overlay026/ov26_02256404.h +++ b/include/overlay026/ov26_02256404.h @@ -1,15 +1,24 @@ #ifndef POKEPLATINUM_OV26_02256404_H #define POKEPLATINUM_OV26_02256404_H -#include "overlay026/struct_ov26_02256404_1.h" -#include "overlay026/struct_ov26_02256404_decl.h" - #include "bg_window.h" -BOOL ov26_02256404(UnkStruct_ov26_02256404 **param0, const UnkStruct_ov26_02256404_1 *param1, BgConfig *param2); -void ov26_0225649C(UnkStruct_ov26_02256404 *param0); -void ov26_022564A8(UnkStruct_ov26_02256404 *param0, u32 param1); -BOOL ov26_022564CC(UnkStruct_ov26_02256404 *param0, u32 param1); -BOOL ov26_022564D8(UnkStruct_ov26_02256404 *param0); +#define SYS_TASK_FUNC_SETUP_BACKGROUND 0 +#define SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS 1 +#define SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE 2 +#define SYS_TASK_FUNC_FREE_BACKGROUND 3 + +typedef struct DisplayData_t DisplayData; + +typedef struct { + RTCTime time; + u32 backlightActive; +} ClockData; + +BOOL ov26_02256404(DisplayData **param0, const ClockData *param1, BgConfig *param2); +void PoketchDigitalClock_FreeDisplayData(DisplayData *param0); +void PoketchDigitalClock_RunTaskFunction(DisplayData *param0, u32 param1); +BOOL ov26_022564CC(DisplayData *param0, u32 param1); +BOOL ov26_022564D8(DisplayData *param0); #endif // POKEPLATINUM_OV26_02256404_H diff --git a/include/overlay026/struct_ov26_02256404_1.h b/include/overlay026/struct_ov26_02256404_1.h deleted file mode 100644 index 1b35341c26..0000000000 --- a/include/overlay026/struct_ov26_02256404_1.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV26_02256404_1_H -#define POKEPLATINUM_STRUCT_OV26_02256404_1_H - -#include - -typedef struct { - RTCTime unk_00; - u32 unk_0C; -} UnkStruct_ov26_02256404_1; - -#endif // POKEPLATINUM_STRUCT_OV26_02256404_1_H diff --git a/include/overlay026/struct_ov26_02256404_decl.h b/include/overlay026/struct_ov26_02256404_decl.h deleted file mode 100644 index 4491620a73..0000000000 --- a/include/overlay026/struct_ov26_02256404_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV26_02256404_DECL_H -#define POKEPLATINUM_STRUCT_OV26_02256404_DECL_H - -typedef struct UnkStruct_ov26_02256404_t UnkStruct_ov26_02256404; - -#endif // POKEPLATINUM_STRUCT_OV26_02256404_DECL_H diff --git a/src/overlay026/ov26_022561C0.c b/src/overlay026/ov26_022561C0.c index 4b242f7747..19a59b780a 100644 --- a/src/overlay026/ov26_022561C0.c +++ b/src/overlay026/ov26_022561C0.c @@ -5,8 +5,6 @@ #include "overlay025/poketch_button.h" #include "overlay025/poketch_system.h" #include "overlay026/ov26_02256404.h" -#include "overlay026/struct_ov26_02256404_1.h" -#include "overlay026/struct_ov26_02256404_decl.h" #include "bg_window.h" #include "heap.h" @@ -15,218 +13,227 @@ #include "sys_task_manager.h" #include "touch_screen.h" +#define BACKLIGHT_BUTTON_MIN_Y 0x10 +#define BACKLIGHT_BUTTON_MAX_Y 0xAF +#define BACKLIGHT_BUTTON_MIN_X 0x10 +#define BACKLIGHT_BUTTON_MAX_X 0xCF + +#define APP_TASK_LOAD_APP 0 +#define APP_TASK_UPDATE_APP 1 +#define APP_TASK_UNLOAD_APP 2 + typedef struct { - u8 unk_00; - u8 unk_01; - u8 unk_02; + u8 appTaskFunctionID; + u8 taskStage; + u8 shutdown; u8 unk_03; u8 unk_04; - u8 unk_05; - u8 unk_06; - u8 unk_07; + u8 hour; + u8 minute; + u8 backlightChange; u32 unk_08; u32 unk_0C; PoketchButtonManager *buttonManager; - UnkStruct_ov26_02256404_1 unk_14; - UnkStruct_ov26_02256404 *unk_24; + ClockData clockData; + DisplayData *displayData; PoketchSystem *poketchSys; -} UnkStruct_ov26_0225621C; +} AppData; static void NitroStaticInit(void); -static BOOL ov26_022561D4(void **param0, PoketchSystem *poketchSys, BgConfig *param2, u32 param3); -static BOOL ov26_0225621C(UnkStruct_ov26_0225621C *param0, PoketchSystem *poketchSys, BgConfig *param2, u32 param3); -static void ov26_022562A4(UnkStruct_ov26_0225621C *param0); -static void ov26_022562BC(SysTask *param0, void *param1); -static void ov26_022562F8(void *param0); -static void ov26_02256300(u32 param0, u32 param1, u32 param2, void *param3); -static void ov26_0225631C(UnkStruct_ov26_0225621C *param0, u32 param1); -static BOOL ov26_02256330(UnkStruct_ov26_0225621C *param0); -static BOOL ov26_02256370(UnkStruct_ov26_0225621C *param0); -static BOOL ov26_022563D0(UnkStruct_ov26_0225621C *param0); +static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID); +static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID); +static void PoketchDigitalClock_FreeAppData(AppData *appData); +static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *sysTaskData); +static void PoketchDigitalClock_Shutdown(void *appData); +static void PoketchDigitalClock_ToggleBacklight(u32 btnNumber, u32 buttonState, u32 touchState, void *appDataIn); +static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 functionID); +static BOOL PoketchDigitalClock_LoadApp(AppData *appData); +static BOOL PoketchDigitalClock_UpdateApp(AppData *appData); +static BOOL PoketchDigitalClock_UnloadApp(AppData *appData); -static const TouchScreenHitTable Unk_ov26_02256718[] = { - { 0x10, 0xAF, 0x10, 0xCF } +static const TouchScreenHitTable digital_clock_buttons[] = { + { BACKLIGHT_BUTTON_MIN_Y, BACKLIGHT_BUTTON_MAX_Y, BACKLIGHT_BUTTON_MIN_X, BACKLIGHT_BUTTON_MAX_X } }; static void NitroStaticInit(void) { - PoketchSystem_SetAppFunctions(ov26_022561D4, ov26_022562F8); + PoketchSystem_SetAppFunctions(PoketchDigitalClock_Init, PoketchDigitalClock_Shutdown); } -static BOOL ov26_022561D4(void **param0, PoketchSystem *poketchSys, BgConfig *param2, u32 param3) +static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) { - UnkStruct_ov26_0225621C *v0 = (UnkStruct_ov26_0225621C *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(UnkStruct_ov26_0225621C)); + AppData *newAppData = (AppData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(AppData)); - if (v0 != NULL) { - if (ov26_0225621C(v0, poketchSys, param2, param3)) { - if (SysTask_Start(ov26_022562BC, v0, 1) != NULL) { - *param0 = v0; - return 1; + if (newAppData != NULL) { + if (PoketchDigitalClock_SetupAppData(newAppData, poketchSys, bgConfig, appID)) { + if (SysTask_Start(PoketchDigitalClock_AppTaskRunner, newAppData, 1) != NULL) { + *appData = newAppData; + return TRUE; } } - Heap_FreeToHeap(v0); + Heap_FreeToHeap(newAppData); } - return 0; + return FALSE; } -static BOOL ov26_0225621C(UnkStruct_ov26_0225621C *param0, PoketchSystem *poketchSys, BgConfig *param2, u32 param3) +static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) { - if (ov26_02256404(&(param0->unk_24), &(param0->unk_14), param2)) { - param0->unk_00 = 0; - param0->unk_01 = 0; - param0->unk_02 = 0; - param0->unk_03 = 1; - param0->unk_07 = 0; - param0->unk_14.unk_0C = 0; + if (ov26_02256404(&(appData->displayData), &(appData->clockData), bgConfig)) { + appData->appTaskFunctionID = APP_TASK_LOAD_APP; + appData->taskStage = 0; + appData->shutdown = FALSE; + appData->unk_03 = 1; + appData->backlightChange = FALSE; + appData->clockData.backlightActive = FALSE; - GetCurrentTime(&(param0->unk_14.unk_00)); + GetCurrentTime(&(appData->clockData.time)); - if (param0->unk_14.unk_00.hour >= 24) { - param0->unk_14.unk_00.hour %= 24; + if (appData->clockData.time.hour >= 24) { + appData->clockData.time.hour %= 24; } - if (param0->unk_14.unk_00.minute >= 60) { - param0->unk_14.unk_00.hour %= 60; - param0->unk_14.unk_00.minute %= 60; + if (appData->clockData.time.minute >= 60) { + appData->clockData.time.hour %= 60; + appData->clockData.time.minute %= 60; } - param0->unk_06 = param0->unk_14.unk_00.minute; - param0->unk_05 = param0->unk_14.unk_00.hour; - param0->buttonManager = PoketchButtonManager_New(Unk_ov26_02256718, NELEMS(Unk_ov26_02256718), ov26_02256300, param0, 8); + appData->minute = appData->clockData.time.minute; + appData->hour = appData->clockData.time.hour; + appData->buttonManager = PoketchButtonManager_New(digital_clock_buttons, NELEMS(digital_clock_buttons), PoketchDigitalClock_ToggleBacklight, appData, HEAP_ID_POKETCH_APP); - if (param0->buttonManager == NULL) { - return 0; + if (appData->buttonManager == NULL) { + return FALSE; } - param0->poketchSys = poketchSys; - return 1; + appData->poketchSys = poketchSys; + return TRUE; } - return 0; + return FALSE; } -static void ov26_022562A4(UnkStruct_ov26_0225621C *param0) +static void PoketchDigitalClock_FreeAppData(AppData *appData) { - ov26_0225649C(param0->unk_24); - PoketchButtonManager_Free(param0->buttonManager); - Heap_FreeToHeap(param0); + PoketchDigitalClock_FreeDisplayData(appData->displayData); + PoketchButtonManager_Free(appData->buttonManager); + Heap_FreeToHeap(appData); } -static void ov26_022562BC(SysTask *param0, void *param1) +static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *sysTaskData) { - static BOOL (*const v0[])(UnkStruct_ov26_0225621C *) = { - ov26_02256330, - ov26_02256370, - ov26_022563D0, + static BOOL (*const funcArray[])(AppData *) = { + PoketchDigitalClock_LoadApp, + PoketchDigitalClock_UpdateApp, + PoketchDigitalClock_UnloadApp, }; - UnkStruct_ov26_0225621C *v1 = (UnkStruct_ov26_0225621C *)param1; + AppData *appData = (AppData *)sysTaskData; - if (v1->unk_00 < NELEMS(v0)) { - ov25_02254518(v1->poketchSys, v1->buttonManager); + if (appData->appTaskFunctionID < NELEMS(funcArray)) { + PoketechSystem_UpdateButtonManager(appData->poketchSys, appData->buttonManager); - if (v0[v1->unk_00](v1)) { - ov26_022562A4(v1); - SysTask_Done(param0); - PoketchSystem_NotifyAppUnloaded(v1->poketchSys); + if (funcArray[appData->appTaskFunctionID](appData)) { + PoketchDigitalClock_FreeAppData(appData); + SysTask_Done(sysTask); + PoketchSystem_NotifyAppUnloaded(appData->poketchSys); } } else { } } -static void ov26_022562F8(void *param0) +static void PoketchDigitalClock_Shutdown(void *appData) { - ((UnkStruct_ov26_0225621C *)param0)->unk_02 = 1; + ((AppData *)appData)->shutdown = TRUE; } -static void ov26_02256300(u32 param0, u32 param1, u32 param2, void *param3) +static void PoketchDigitalClock_ToggleBacklight(u32 btnNumber, u32 buttonState, u32 touchState, void *appDataIn) { - UnkStruct_ov26_0225621C *v0 = (UnkStruct_ov26_0225621C *)param3; + AppData *appData = (AppData *)appDataIn; - switch (param2) { - case 1: - v0->unk_14.unk_0C = 1; - v0->unk_07 = 1; + switch (touchState) { + case TRUE: + appData->clockData.backlightActive = TRUE; + appData->backlightChange = TRUE; break; - case 0: - v0->unk_14.unk_0C = 0; - v0->unk_07 = 1; + case FALSE: + appData->clockData.backlightActive = FALSE; + appData->backlightChange = TRUE; break; } } -static void ov26_0225631C(UnkStruct_ov26_0225621C *param0, u32 param1) +static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 functionID) { - if (param0->unk_02 == 0) { - param0->unk_00 = param1; + if (appData->shutdown == FALSE) { + appData->appTaskFunctionID = functionID; } else { - param0->unk_00 = 2; + appData->appTaskFunctionID = APP_TASK_UNLOAD_APP; } - param0->unk_01 = 0; + appData->taskStage = 0; } -static BOOL ov26_02256330(UnkStruct_ov26_0225621C *param0) +static BOOL PoketchDigitalClock_LoadApp(AppData *appData) { - switch (param0->unk_01) { + switch (appData->taskStage) { case 0: - ov26_022564A8(param0->unk_24, 0); - param0->unk_01++; + PoketchDigitalClock_RunTaskFunction(appData->displayData, SYS_TASK_FUNC_SETUP_BACKGROUND); + appData->taskStage++; break; case 1: - if (ov26_022564CC(param0->unk_24, 0)) { - PoketchSystem_NotifyAppLoaded(param0->poketchSys); - ov26_0225631C(param0, 1); + if (ov26_022564CC(appData->displayData, 0)) { + PoketchSystem_NotifyAppLoaded(appData->poketchSys); + PoketchDigitalClock_SetAppTaskFunction(appData, APP_TASK_UPDATE_APP); } break; } - return 0; + return FALSE; } -static BOOL ov26_02256370(UnkStruct_ov26_0225621C *param0) +static BOOL PoketchDigitalClock_UpdateApp(AppData *appData) { - if (param0->unk_02) { - ov26_0225631C(param0, 2); - return 0; + if (appData->shutdown) { + PoketchDigitalClock_SetAppTaskFunction(appData, APP_TASK_UNLOAD_APP); + return FALSE; } - if (param0->unk_07) { - param0->unk_07 = 0; - ov26_022564A8(param0->unk_24, 2); + if (appData->backlightChange) { + appData->backlightChange = FALSE; + PoketchDigitalClock_RunTaskFunction(appData->displayData, SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE); } - if (ov26_022564CC(param0->unk_24, 1)) { - param0->unk_06 = param0->unk_14.unk_00.minute; - param0->unk_05 = param0->unk_14.unk_00.hour; - GetCurrentTime(&(param0->unk_14.unk_00)); + if (ov26_022564CC(appData->displayData, 1)) { + appData->minute = appData->clockData.time.minute; + appData->hour = appData->clockData.time.hour; + GetCurrentTime(&(appData->clockData.time)); - if ((param0->unk_06 != param0->unk_14.unk_00.minute) || (param0->unk_05 != param0->unk_14.unk_00.hour)) { - ov26_022564A8(param0->unk_24, 1); + if ((appData->minute != appData->clockData.time.minute) || (appData->hour != appData->clockData.time.hour)) { + PoketchDigitalClock_RunTaskFunction(appData->displayData, SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS); } } - return 0; + return FALSE; } -static BOOL ov26_022563D0(UnkStruct_ov26_0225621C *param0) +static BOOL PoketchDigitalClock_UnloadApp(AppData *appData) { - switch (param0->unk_01) { + switch (appData->taskStage) { case 0: - ov26_022564A8(param0->unk_24, 3); - param0->unk_01++; + PoketchDigitalClock_RunTaskFunction(appData->displayData, SYS_TASK_FUNC_FREE_BACKGROUND); + appData->taskStage++; break; case 1: - if (ov26_022564D8(param0->unk_24)) { - return 1; + if (ov26_022564D8(appData->displayData)) { + return TRUE; } break; } - return 0; + return FALSE; } diff --git a/src/overlay026/ov26_02256404.c b/src/overlay026/ov26_02256404.c index 179cb1037a..12f77ccef3 100644 --- a/src/overlay026/ov26_02256404.c +++ b/src/overlay026/ov26_02256404.c @@ -7,16 +7,14 @@ #include "overlay025/ov25_02255090.h" #include "overlay025/struct_ov25_0225517C.h" #include "overlay025/struct_ov25_02255224_decl.h" -#include "overlay026/struct_ov26_02256404_1.h" -#include "overlay026/struct_ov26_02256404_decl.h" #include "bg_window.h" #include "graphics.h" #include "heap.h" #include "sys_task_manager.h" -struct UnkStruct_ov26_02256404_t { - const UnkStruct_ov26_02256404_1 *unk_00; +struct DisplayData_t { + const ClockData *unk_00; BgConfig *unk_04; u32 unk_08[10]; u16 unk_30[360]; @@ -28,11 +26,11 @@ static void ov26_022564F8(SysTask *param0, void *param1); static void ov26_0225658C(SysTask *param0, void *param1); static void ov26_022565AC(SysTask *param0, void *param1); static void ov26_022565D8(SysTask *param0, void *param1); -static void ov26_022565F4(UnkStruct_ov26_02256404 *param0); +static void ov26_022565F4(DisplayData *param0); -BOOL ov26_02256404(UnkStruct_ov26_02256404 **param0, const UnkStruct_ov26_02256404_1 *param1, BgConfig *param2) +BOOL ov26_02256404(DisplayData **param0, const ClockData *param1, BgConfig *param2) { - UnkStruct_ov26_02256404 *v0 = (UnkStruct_ov26_02256404 *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(UnkStruct_ov26_02256404)); + DisplayData *v0 = (DisplayData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(DisplayData)); if (v0 != NULL) { NNSG2dScreenData *v1; @@ -41,7 +39,7 @@ BOOL ov26_02256404(UnkStruct_ov26_02256404 **param0, const UnkStruct_ov26_022564 ov25_02255090(v0->unk_08, 8); v0->unk_00 = param1; - v0->unk_04 = ov25_02254674(); + v0->unk_04 = Poketch_GetBgConfig(); v2 = Graphics_GetScrnData(12, 25, 1, &v1, 8); @@ -77,7 +75,7 @@ static void ov26_0225646C(const u16 *param0, u16 *param1) } } -void ov26_0225649C(UnkStruct_ov26_02256404 *param0) +void PoketchDigitalClock_FreeDisplayData(DisplayData *param0) { if (param0 != NULL) { Heap_FreeToHeap(param0); @@ -92,24 +90,24 @@ static const UnkStruct_ov25_0225517C Unk_ov26_02256744[] = { { 0x0, NULL, 0x0 } }; -void ov26_022564A8(UnkStruct_ov26_02256404 *param0, u32 param1) +void PoketchDigitalClock_RunTaskFunction(DisplayData *param0, u32 param1) { ov25_0225517C(Unk_ov26_02256744, param1, param0, param0->unk_00, param0->unk_08, 2, 8); } -BOOL ov26_022564CC(UnkStruct_ov26_02256404 *param0, u32 param1) +BOOL ov26_022564CC(DisplayData *param0, u32 param1) { return ov25_02255130(param0->unk_08, param1); } -BOOL ov26_022564D8(UnkStruct_ov26_02256404 *param0) +BOOL ov26_022564D8(DisplayData *param0) { return ov25_02255154(param0->unk_08); } static void ov26_022564E4(UnkStruct_ov25_02255224 *param0) { - UnkStruct_ov26_02256404 *v0 = ov25_0225523C(param0); + DisplayData *v0 = ov25_0225523C(param0); ov25_02255224(v0->unk_08, param0); } @@ -131,7 +129,7 @@ static void ov26_022564F8(SysTask *param0, void *param1) 0 }; GXSDispCnt v1; - UnkStruct_ov26_02256404 *v2; + DisplayData *v2; v2 = ov25_0225523C(param1); @@ -139,7 +137,7 @@ static void ov26_022564F8(SysTask *param0, void *param1) Graphics_LoadTilesToBgLayer(12, 23, v2->unk_04, 6, 0, 0, 1, 8); Graphics_LoadTilemapToBgLayer(12, 24, v2->unk_04, 6, 0, 0, 1, 8); - ov25_022546B8(0, 0); + Poketch_LoadActivePalette(0, 0); ov26_022565F4(v2); Bg_CopyTilemapBufferToVRAM(v2->unk_04, 6); @@ -151,7 +149,7 @@ static void ov26_022564F8(SysTask *param0, void *param1) static void ov26_0225658C(SysTask *param0, void *param1) { - UnkStruct_ov26_02256404 *v0 = ov25_0225523C(param1); + DisplayData *v0 = ov25_0225523C(param1); ov26_022565F4(v0); Bg_CopyTilemapBufferToVRAM(v0->unk_04, 6); @@ -160,12 +158,12 @@ static void ov26_0225658C(SysTask *param0, void *param1) static void ov26_022565AC(SysTask *param0, void *param1) { - UnkStruct_ov26_02256404 *v0 = ov25_0225523C(param1); + DisplayData *v0 = ov25_0225523C(param1); - if (v0->unk_00->unk_0C) { - ov25_022546F0(0, 0); + if (v0->unk_00->backlightActive) { + Poketch_LoadActiveBacklightPalette(0, 0); } else { - ov25_022546B8(0, 0); + Poketch_LoadActivePalette(0, 0); } ov26_022564E4(param1); @@ -173,17 +171,17 @@ static void ov26_022565AC(SysTask *param0, void *param1) static void ov26_022565D8(SysTask *param0, void *param1) { - UnkStruct_ov26_02256404 *v0 = ov25_0225523C(param1); + DisplayData *v0 = ov25_0225523C(param1); Bg_FreeTilemapBuffer(v0->unk_04, 6); ov26_022564E4(param1); } -static void ov26_022565F4(UnkStruct_ov26_02256404 *param0) +static void ov26_022565F4(DisplayData *param0) { u32 v0, v1; - CP_SetDiv32_32(param0->unk_00->unk_00.hour, 10); + CP_SetDiv32_32(param0->unk_00->time.hour, 10); v0 = CP_GetDivResult32(); v1 = CP_GetDivRemainder32(); @@ -191,7 +189,7 @@ static void ov26_022565F4(UnkStruct_ov26_02256404 *param0) Bg_CopyToTilemapRect(param0->unk_04, 6, 3, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); Bg_CopyToTilemapRect(param0->unk_04, 6, (3 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); - CP_SetDiv32_32(param0->unk_00->unk_00.minute, 10); + CP_SetDiv32_32(param0->unk_00->time.minute, 10); v0 = CP_GetDivResult32(); v1 = CP_GetDivRemainder32(); From 1f642fcc480322b9de0139b2dbc2ae9282db51e9 Mon Sep 17 00:00:00 2001 From: Lucie Date: Sun, 16 Feb 2025 04:20:43 +0000 Subject: [PATCH 02/15] document app graphics --- include/overlay026/ov26_02256404.h | 8 +- src/overlay026/ov26_022561C0.c | 2 +- src/overlay026/ov26_02256404.c | 262 +++++++++++++++++------------ 3 files changed, 161 insertions(+), 111 deletions(-) diff --git a/include/overlay026/ov26_02256404.h b/include/overlay026/ov26_02256404.h index a1ba64a6fc..510b32ba4b 100644 --- a/include/overlay026/ov26_02256404.h +++ b/include/overlay026/ov26_02256404.h @@ -1,5 +1,5 @@ -#ifndef POKEPLATINUM_OV26_02256404_H -#define POKEPLATINUM_OV26_02256404_H +#ifndef POKEPLATINUM_PoketchDigitalClock_SetupDisplayData_H +#define POKEPLATINUM_PoketchDigitalClock_SetupDisplayData_H #include "bg_window.h" @@ -15,10 +15,10 @@ typedef struct { u32 backlightActive; } ClockData; -BOOL ov26_02256404(DisplayData **param0, const ClockData *param1, BgConfig *param2); +BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **param0, const ClockData *param1, BgConfig *param2); void PoketchDigitalClock_FreeDisplayData(DisplayData *param0); void PoketchDigitalClock_RunTaskFunction(DisplayData *param0, u32 param1); BOOL ov26_022564CC(DisplayData *param0, u32 param1); BOOL ov26_022564D8(DisplayData *param0); -#endif // POKEPLATINUM_OV26_02256404_H +#endif // POKEPLATINUM_PoketchDigitalClock_SetupDisplayData_H diff --git a/src/overlay026/ov26_022561C0.c b/src/overlay026/ov26_022561C0.c index 19a59b780a..0492e5dc99 100644 --- a/src/overlay026/ov26_022561C0.c +++ b/src/overlay026/ov26_022561C0.c @@ -81,7 +81,7 @@ static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) { - if (ov26_02256404(&(appData->displayData), &(appData->clockData), bgConfig)) { + if (PoketchDigitalClock_SetupDisplayData(&(appData->displayData), &(appData->clockData), bgConfig)) { appData->appTaskFunctionID = APP_TASK_LOAD_APP; appData->taskStage = 0; appData->shutdown = FALSE; diff --git a/src/overlay026/ov26_02256404.c b/src/overlay026/ov26_02256404.c index 12f77ccef3..dccd592ed8 100644 --- a/src/overlay026/ov26_02256404.c +++ b/src/overlay026/ov26_02256404.c @@ -13,187 +13,237 @@ #include "heap.h" #include "sys_task_manager.h" +#define POKETCH_CLOCK_DIGITS_TILEMAP_IDX 25 +#define POKETCH_CLOCK_DIGITS_32_TILE_ROW_OFFSET 288 +#define POKETCH_NUM_CLOCK_DIGITS 10 + +#define PRE_POKETCH_DISPLAY_NARC_TILES_IDX 23 +#define PRE_POKETCH_DISPLAY_NARC_TILEMAP_IDX 24 + +#define TILE_SIZE 2 + +#define POKETCH_CLOCK_DIGIT_WIDTH 4 +#define POKETCH_CLOCK_DIGIT_HEIGHT 9 +#define POKETCH_CLOCK_DIGIT_GAP 1 +#define POKETCH_CLOCK_HOURS_DIGIT_X 3 +#define POKETCH_CLOCK_HOURS_DIGIT_Y 7 +#define POKETCH_CLOCK_MINUETS_DIGIT_X 15 +#define POKETCH_CLOCK_MINUETS_DIGIT_Y 7 + struct DisplayData_t { - const ClockData *unk_00; - BgConfig *unk_04; + const ClockData *clockData; + BgConfig *bgConfig; u32 unk_08[10]; - u16 unk_30[360]; + u16 digitsTilemap[360]; }; -static void ov26_0225646C(const u16 *param0, u16 *param1); -static void ov26_022564E4(UnkStruct_ov25_02255224 *param0); -static void ov26_022564F8(SysTask *param0, void *param1); -static void ov26_0225658C(SysTask *param0, void *param1); -static void ov26_022565AC(SysTask *param0, void *param1); -static void ov26_022565D8(SysTask *param0, void *param1); -static void ov26_022565F4(DisplayData *param0); +static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst); +static void PoketchDigitalClock_FinishTask(UnkStruct_ov25_02255224 *sysTaskData); +static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskData); +static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *sysTaskData); +static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *sysTaskData); +static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *sysTaskData); +static void PoketchDigitalClock_DrawClockDigits(DisplayData *displayData); -BOOL ov26_02256404(DisplayData **param0, const ClockData *param1, BgConfig *param2) +BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const ClockData *clockData, BgConfig *bgConfig) { - DisplayData *v0 = (DisplayData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(DisplayData)); + DisplayData *newDisplayData = (DisplayData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(DisplayData)); - if (v0 != NULL) { - NNSG2dScreenData *v1; - void *v2; + if (newDisplayData != NULL) { + NNSG2dScreenData *screenData; - ov25_02255090(v0->unk_08, 8); + ov25_02255090(newDisplayData->unk_08, 8); - v0->unk_00 = param1; - v0->unk_04 = Poketch_GetBgConfig(); + newDisplayData->clockData = clockData; + newDisplayData->bgConfig = Poketch_GetBgConfig(); - v2 = Graphics_GetScrnData(12, 25, 1, &v1, 8); + void *nscrBuffer = Graphics_GetScrnData(NARC_INDEX_GRAPHIC__POKETCH, POKETCH_CLOCK_DIGITS_TILEMAP_IDX, TRUE, &screenData, HEAP_ID_POKETCH_APP); - if (v2 == NULL) { - Heap_FreeToHeap(v0); - return 0; + if (nscrBuffer == NULL) { + Heap_FreeToHeap(newDisplayData); + return FALSE; } - ov26_0225646C((const u16 *)(v1->rawData), v0->unk_30); - Heap_FreeToHeap(v2); + PoketchDigitalClock_CopyDigitTilemap((const u16 *)(screenData->rawData), newDisplayData->digitsTilemap); + Heap_FreeToHeap(nscrBuffer); - *param0 = v0; - return 1; + *displayData = newDisplayData; + return TRUE; } - return 0; + return FALSE; } -static void ov26_0225646C(const u16 *param0, u16 *param1) +static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst) { - int v0, v1; + int row_offset = POKETCH_CLOCK_DIGITS_32_TILE_ROW_OFFSET; + int row; - v1 = 288; + for (row = 0; row < POKETCH_NUM_CLOCK_DIGITS - 1; row++) { + MI_CpuCopy16(rawScreenData, dst, 32 * TILE_SIZE); + MI_CpuCopy16(&rawScreenData[row_offset], &dst[32], 8 * TILE_SIZE); - for (v0 = 0; v0 < 9; v0++) { - MI_CpuCopy16(param0, param1, 32 * 2); - MI_CpuCopy16(¶m0[v1], ¶m1[32], 8 * 2); + rawScreenData += 32; + dst += 40; - param0 += 32; - param1 += (4 * 10); - - v1 = (v1 - 32 + 8); + row_offset = row_offset - 32 + 8; } } -void PoketchDigitalClock_FreeDisplayData(DisplayData *param0) +void PoketchDigitalClock_FreeDisplayData(DisplayData *displayData) { - if (param0 != NULL) { - Heap_FreeToHeap(param0); + if (displayData != NULL) { + Heap_FreeToHeap(displayData); } } -static const UnkStruct_ov25_0225517C Unk_ov26_02256744[] = { - { 0x0, ov26_022564F8, 0x0 }, - { 0x1, ov26_0225658C, 0x0 }, - { 0x2, ov26_022565AC, 0x0 }, - { 0x3, ov26_022565D8, 0x0 }, +static const UnkStruct_ov25_0225517C sysTaskFunctions[] = { + { SYS_TASK_FUNC_SETUP_BACKGROUND, PoketchDigitalClock_SetupBackground, 0x0 }, + { SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS, PoketchDigitalClock_UpdateClockDigits, 0x0 }, + { SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE, PoketchDigitalClock_ToggleBacklightPalette, 0x0 }, + { SYS_TASK_FUNC_FREE_BACKGROUND, PoketchDigitalClock_FreeBackground, 0x0 }, { 0x0, NULL, 0x0 } }; -void PoketchDigitalClock_RunTaskFunction(DisplayData *param0, u32 param1) +void PoketchDigitalClock_RunTaskFunction(DisplayData *displayData, u32 functionID) { - ov25_0225517C(Unk_ov26_02256744, param1, param0, param0->unk_00, param0->unk_08, 2, 8); + ov25_0225517C(sysTaskFunctions, functionID, displayData, displayData->clockData, displayData->unk_08, 2, HEAP_ID_POKETCH_APP); } -BOOL ov26_022564CC(DisplayData *param0, u32 param1) +BOOL ov26_022564CC(DisplayData *displayData, u32 param1) { - return ov25_02255130(param0->unk_08, param1); + return ov25_02255130(displayData->unk_08, param1); } -BOOL ov26_022564D8(DisplayData *param0) +BOOL ov26_022564D8(DisplayData *displayData) { - return ov25_02255154(param0->unk_08); + return ov25_02255154(displayData->unk_08); } -static void ov26_022564E4(UnkStruct_ov25_02255224 *param0) +static void PoketchDigitalClock_FinishTask(UnkStruct_ov25_02255224 *sysTaskData) { - DisplayData *v0 = ov25_0225523C(param0); - ov25_02255224(v0->unk_08, param0); + DisplayData *displayData = ov25_0225523C(sysTaskData); + ov25_02255224(displayData->unk_08, sysTaskData); } -static void ov26_022564F8(SysTask *param0, void *param1) +static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskData) { - static const BgTemplate v0 = { - 0, - 0, - 0x800, - 0, - 1, - GX_BG_COLORMODE_16, - GX_BG_SCRBASE_0x7000, - GX_BG_CHARBASE_0x00000, - GX_BG_EXTPLTT_01, - 2, - 0, - 0, - 0 + static const BgTemplate template = { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .screenSize = BG_SCREEN_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0x7000, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 2, + .areaOver = 0, + .mosaic = FALSE, }; - GXSDispCnt v1; - DisplayData *v2; - v2 = ov25_0225523C(param1); + DisplayData *displayData = ov25_0225523C(sysTaskData); - Bg_InitFromTemplate(v2->unk_04, 6, &v0, 0); - Graphics_LoadTilesToBgLayer(12, 23, v2->unk_04, 6, 0, 0, 1, 8); - Graphics_LoadTilemapToBgLayer(12, 24, v2->unk_04, 6, 0, 0, 1, 8); + Bg_InitFromTemplate(displayData->bgConfig, BG_LAYER_SUB_2, &template, BG_TYPE_STATIC); + Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILES_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); + Graphics_LoadTilemapToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILEMAP_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); Poketch_LoadActivePalette(0, 0); - ov26_022565F4(v2); + PoketchDigitalClock_DrawClockDigits(displayData); - Bg_CopyTilemapBufferToVRAM(v2->unk_04, 6); + Bg_CopyTilemapBufferToVRAM(displayData->bgConfig, BG_LAYER_SUB_2); - v1 = GXS_GetDispCnt(); - GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2); - ov26_022564E4(param1); + GXSDispCnt displayControler = GXS_GetDispCnt(); + GXS_SetVisiblePlane(displayControler.visiblePlane | GX_PLANEMASK_BG2); + PoketchDigitalClock_FinishTask(sysTaskData); } -static void ov26_0225658C(SysTask *param0, void *param1) +static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *sysTaskData) { - DisplayData *v0 = ov25_0225523C(param1); + DisplayData *displayData = ov25_0225523C(sysTaskData); - ov26_022565F4(v0); - Bg_CopyTilemapBufferToVRAM(v0->unk_04, 6); - ov26_022564E4(param1); + PoketchDigitalClock_DrawClockDigits(displayData); + Bg_CopyTilemapBufferToVRAM(displayData->bgConfig, BG_LAYER_SUB_2); + PoketchDigitalClock_FinishTask(sysTaskData); } -static void ov26_022565AC(SysTask *param0, void *param1) +static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *sysTaskData) { - DisplayData *v0 = ov25_0225523C(param1); + DisplayData *displayData = ov25_0225523C(sysTaskData); - if (v0->unk_00->backlightActive) { + if (displayData->clockData->backlightActive) { Poketch_LoadActiveBacklightPalette(0, 0); } else { Poketch_LoadActivePalette(0, 0); } - ov26_022564E4(param1); + PoketchDigitalClock_FinishTask(sysTaskData); } -static void ov26_022565D8(SysTask *param0, void *param1) +static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *sysTaskData) { - DisplayData *v0 = ov25_0225523C(param1); + DisplayData *displayData = ov25_0225523C(sysTaskData); - Bg_FreeTilemapBuffer(v0->unk_04, 6); - ov26_022564E4(param1); + Bg_FreeTilemapBuffer(displayData->bgConfig, BG_LAYER_SUB_2); + PoketchDigitalClock_FinishTask(sysTaskData); } -static void ov26_022565F4(DisplayData *param0) +static void PoketchDigitalClock_DrawClockDigits(DisplayData *displayData) { - u32 v0, v1; + CP_SetDiv32_32(displayData->clockData->time.hour, POKETCH_NUM_CLOCK_DIGITS); - CP_SetDiv32_32(param0->unk_00->time.hour, 10); + u32 tensDigitOffset = CP_GetDivResult32(); + u32 onesDigitOffset = CP_GetDivRemainder32(); - v0 = CP_GetDivResult32(); - v1 = CP_GetDivRemainder32(); + Bg_CopyToTilemapRect(displayData->bgConfig, + BG_LAYER_SUB_2, + POKETCH_CLOCK_HOURS_DIGIT_X, + POKETCH_CLOCK_HOURS_DIGIT_Y, + POKETCH_CLOCK_DIGIT_WIDTH, + POKETCH_CLOCK_DIGIT_HEIGHT, + displayData->digitsTilemap, + POKETCH_CLOCK_DIGIT_WIDTH * tensDigitOffset, + 0, + (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS), + POKETCH_CLOCK_DIGIT_HEIGHT); + Bg_CopyToTilemapRect(displayData->bgConfig, + BG_LAYER_SUB_2, + (POKETCH_CLOCK_HOURS_DIGIT_X + POKETCH_CLOCK_DIGIT_WIDTH + POKETCH_CLOCK_DIGIT_GAP), + POKETCH_CLOCK_HOURS_DIGIT_Y, + POKETCH_CLOCK_DIGIT_WIDTH, + POKETCH_CLOCK_DIGIT_HEIGHT, + displayData->digitsTilemap, + POKETCH_CLOCK_DIGIT_WIDTH * onesDigitOffset, + 0, + (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS), + POKETCH_CLOCK_DIGIT_HEIGHT); - Bg_CopyToTilemapRect(param0->unk_04, 6, 3, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); - Bg_CopyToTilemapRect(param0->unk_04, 6, (3 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); + CP_SetDiv32_32(displayData->clockData->time.minute, POKETCH_NUM_CLOCK_DIGITS); - CP_SetDiv32_32(param0->unk_00->time.minute, 10); + tensDigitOffset = CP_GetDivResult32(); + onesDigitOffset = CP_GetDivRemainder32(); - v0 = CP_GetDivResult32(); - v1 = CP_GetDivRemainder32(); - - Bg_CopyToTilemapRect(param0->unk_04, 6, 15, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); - Bg_CopyToTilemapRect(param0->unk_04, 6, (15 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); + Bg_CopyToTilemapRect(displayData->bgConfig, + BG_LAYER_SUB_2, + POKETCH_CLOCK_MINUETS_DIGIT_X, + POKETCH_CLOCK_MINUETS_DIGIT_Y, + POKETCH_CLOCK_DIGIT_WIDTH, + POKETCH_CLOCK_DIGIT_HEIGHT, + displayData->digitsTilemap, + POKETCH_CLOCK_DIGIT_WIDTH * tensDigitOffset, + 0, + (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS), + POKETCH_CLOCK_DIGIT_HEIGHT); + Bg_CopyToTilemapRect(displayData->bgConfig, + BG_LAYER_SUB_2, + (POKETCH_CLOCK_MINUETS_DIGIT_X + POKETCH_CLOCK_DIGIT_WIDTH + POKETCH_CLOCK_DIGIT_GAP), + POKETCH_CLOCK_MINUETS_DIGIT_Y, + POKETCH_CLOCK_DIGIT_WIDTH, + POKETCH_CLOCK_DIGIT_HEIGHT, + displayData->digitsTilemap, + POKETCH_CLOCK_DIGIT_WIDTH * onesDigitOffset, + 0, + (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS), + POKETCH_CLOCK_DIGIT_HEIGHT); } From ef15309bb807d5f0d04d60a9aed5c3af0308bad8 Mon Sep 17 00:00:00 2001 From: Lucie Date: Sun, 16 Feb 2025 04:28:23 +0000 Subject: [PATCH 03/15] renamed files --- include/overlay026/ov26_02256404.h | 24 ------------------- .../poketch_digital_clock_graphics.h | 24 +++++++++++++++++++ platinum.us/main.lsf | 6 ++--- platinum.us/sbins.sha1 | 2 +- src/meson.build | 4 ++-- src/overlay025/poketch_system.c | 4 ++-- .../poketch_digital_clock_graphics.c} | 2 +- .../poketch_digital_clock_manager.c} | 2 +- 8 files changed, 34 insertions(+), 34 deletions(-) delete mode 100644 include/overlay026/ov26_02256404.h create mode 100644 include/poketch_digital_clock/poketch_digital_clock_graphics.h rename src/{overlay026/ov26_02256404.c => poketch_digital_clock/poketch_digital_clock_graphics.c} (99%) rename src/{overlay026/ov26_022561C0.c => poketch_digital_clock/poketch_digital_clock_manager.c} (99%) diff --git a/include/overlay026/ov26_02256404.h b/include/overlay026/ov26_02256404.h deleted file mode 100644 index 510b32ba4b..0000000000 --- a/include/overlay026/ov26_02256404.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef POKEPLATINUM_PoketchDigitalClock_SetupDisplayData_H -#define POKEPLATINUM_PoketchDigitalClock_SetupDisplayData_H - -#include "bg_window.h" - -#define SYS_TASK_FUNC_SETUP_BACKGROUND 0 -#define SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS 1 -#define SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE 2 -#define SYS_TASK_FUNC_FREE_BACKGROUND 3 - -typedef struct DisplayData_t DisplayData; - -typedef struct { - RTCTime time; - u32 backlightActive; -} ClockData; - -BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **param0, const ClockData *param1, BgConfig *param2); -void PoketchDigitalClock_FreeDisplayData(DisplayData *param0); -void PoketchDigitalClock_RunTaskFunction(DisplayData *param0, u32 param1); -BOOL ov26_022564CC(DisplayData *param0, u32 param1); -BOOL ov26_022564D8(DisplayData *param0); - -#endif // POKEPLATINUM_PoketchDigitalClock_SetupDisplayData_H diff --git a/include/poketch_digital_clock/poketch_digital_clock_graphics.h b/include/poketch_digital_clock/poketch_digital_clock_graphics.h new file mode 100644 index 0000000000..b2cc3b7c12 --- /dev/null +++ b/include/poketch_digital_clock/poketch_digital_clock_graphics.h @@ -0,0 +1,24 @@ +#ifndef POKEPLATINUM_POKETCH_DIGITAL_CLOCK_GRAPHICS_H +#define POKEPLATINUM_POKETCH_DIGITAL_CLOCK_GRAPHICS_H + +#include "bg_window.h" + +#define SYS_TASK_FUNC_SETUP_BACKGROUND 0 +#define SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS 1 +#define SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE 2 +#define SYS_TASK_FUNC_FREE_BACKGROUND 3 + +typedef struct DisplayData_t DisplayData; + +typedef struct { + RTCTime time; + u32 backlightActive; +} ClockData; + +BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const ClockData *clockData, BgConfig *bgConfig); +void PoketchDigitalClock_FreeDisplayData(DisplayData *displayData); +void PoketchDigitalClock_RunTaskFunction(DisplayData *displayData, u32 functionID); +BOOL ov26_022564CC(DisplayData *displayData, u32 param1); +BOOL ov26_022564D8(DisplayData *displayData); + +#endif // POKEPLATINUM_POKETCH_DIGITAL_CLOCK_GRAPHICS_H diff --git a/platinum.us/main.lsf b/platinum.us/main.lsf index d2d0091cfa..d089ce79d1 100644 --- a/platinum.us/main.lsf +++ b/platinum.us/main.lsf @@ -878,11 +878,11 @@ Overlay overlay25 Object main.nef.p/src_overlay025_ov25_02255DBC.c.o } -Overlay overlay26 +Overlay poketch_digital_clock { After overlay25 - Object main.nef.p/src_overlay026_ov26_022561C0.c.o - Object main.nef.p/src_overlay026_ov26_02256404.c.o + Object main.nef.p/src_poketch_digital_clock_poketch_digital_clock_manager.c.o + Object main.nef.p/src_poketch_digital_clock_poketch_digital_clock_graphics.c.o } Overlay overlay27 diff --git a/platinum.us/sbins.sha1 b/platinum.us/sbins.sha1 index 973ffcf1b1..57601d2945 100644 --- a/platinum.us/sbins.sha1 +++ b/platinum.us/sbins.sha1 @@ -25,7 +25,7 @@ d414d37a9b80f1d346666ad9ef5ba635d5ebb552 *overlay19.sbin 2e8fcd133e2736d90dae6e23ac9a669cefc1a7c8 *overlay23.sbin cc4bb361071632627532c48af9a0b37c1751670a *overlay24.sbin 0fbd0432432d42462b9c02f07e30634987708dc6 *overlay25.sbin -44e45c2b6ec6aa74142550f25f770954b8e0d555 *overlay26.sbin +44e45c2b6ec6aa74142550f25f770954b8e0d555 *poketch_digital_clock.sbin 3301af166bc328d4df4412dbf6c740635151867c *overlay27.sbin 98a048c770a311a3fd756ad725997964fdd14aa8 *overlay28.sbin ca63341e12e782896fc58d5ce6fefa2170b5e921 *overlay29.sbin diff --git a/src/meson.build b/src/meson.build index 6101a538a5..1ed8a8b890 100644 --- a/src/meson.build +++ b/src/meson.build @@ -667,8 +667,8 @@ pokeplatinum_c = files( 'overlay025/ov25_02255540.c', 'overlay025/poketch_button.c', 'overlay025/ov25_02255DBC.c', - 'overlay026/ov26_022561C0.c', - 'overlay026/ov26_02256404.c', + 'poketch_digital_clock/poketch_digital_clock_manager.c', + 'poketch_digital_clock/poketch_digital_clock_graphics.c', 'overlay027/ov27_022561C0.c', 'overlay027/ov27_0225680C.c', 'overlay028/ov28_022561C0.c', diff --git a/src/overlay025/poketch_system.c b/src/overlay025/poketch_system.c index 9ad1547f09..a31a28750f 100644 --- a/src/overlay025/poketch_system.c +++ b/src/overlay025/poketch_system.c @@ -27,7 +27,7 @@ #include "unk_0201E3D8.h" #include "unk_02099D44.h" -FS_EXTERN_OVERLAY(overlay26); +FS_EXTERN_OVERLAY(poketch_digital_clock); FS_EXTERN_OVERLAY(overlay27); FS_EXTERN_OVERLAY(overlay28); FS_EXTERN_OVERLAY(overlay29); @@ -85,7 +85,7 @@ static const struct { int appID; FSOverlayID overlayID; } sAppOverlayIDs[] = { - { POKETCH_APPID_DIGITALWATCH, FS_OVERLAY_ID(overlay26) }, + { POKETCH_APPID_DIGITALWATCH, FS_OVERLAY_ID(poketch_digital_clock) }, { POKETCH_APPID_UNUSED_STOPWATCH, FS_OVERLAY_ID(overlay27) }, { POKETCH_APPID_CALCULATOR, FS_OVERLAY_ID(overlay28) }, { POKETCH_APPID_MEMOPAD, FS_OVERLAY_ID(overlay29) }, diff --git a/src/overlay026/ov26_02256404.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c similarity index 99% rename from src/overlay026/ov26_02256404.c rename to src/poketch_digital_clock/poketch_digital_clock_graphics.c index dccd592ed8..f98421ae3d 100644 --- a/src/overlay026/ov26_02256404.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -1,4 +1,4 @@ -#include "overlay026/ov26_02256404.h" +#include "poketch_digital_clock/poketch_digital_clock_graphics.h" #include #include diff --git a/src/overlay026/ov26_022561C0.c b/src/poketch_digital_clock/poketch_digital_clock_manager.c similarity index 99% rename from src/overlay026/ov26_022561C0.c rename to src/poketch_digital_clock/poketch_digital_clock_manager.c index 0492e5dc99..a04e3c878c 100644 --- a/src/overlay026/ov26_022561C0.c +++ b/src/poketch_digital_clock/poketch_digital_clock_manager.c @@ -4,7 +4,7 @@ #include "overlay025/poketch_button.h" #include "overlay025/poketch_system.h" -#include "overlay026/ov26_02256404.h" +#include "poketch_digital_clock/poketch_digital_clock_graphics.h" #include "bg_window.h" #include "heap.h" From 48e51eb8c20b099118b9f972e1fe7af43b3d650b Mon Sep 17 00:00:00 2001 From: Lucie Date: Sun, 16 Feb 2025 22:55:58 +0000 Subject: [PATCH 04/15] fix merge --- .../poketch_digital_clock_graphics.c | 8 ++++---- src/poketch_digital_clock/poketch_digital_clock_manager.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c index f98421ae3d..ac045e6376 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -55,7 +55,7 @@ BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const Clock ov25_02255090(newDisplayData->unk_08, 8); newDisplayData->clockData = clockData; - newDisplayData->bgConfig = Poketch_GetBgConfig(); + newDisplayData->bgConfig = ov25_02254674(); void *nscrBuffer = Graphics_GetScrnData(NARC_INDEX_GRAPHIC__POKETCH, POKETCH_CLOCK_DIGITS_TILEMAP_IDX, TRUE, &screenData, HEAP_ID_POKETCH_APP); @@ -149,7 +149,7 @@ static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskD Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILES_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); Graphics_LoadTilemapToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILEMAP_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); - Poketch_LoadActivePalette(0, 0); + ov25_022546B8(0, 0); PoketchDigitalClock_DrawClockDigits(displayData); Bg_CopyTilemapBufferToVRAM(displayData->bgConfig, BG_LAYER_SUB_2); @@ -173,9 +173,9 @@ static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *s DisplayData *displayData = ov25_0225523C(sysTaskData); if (displayData->clockData->backlightActive) { - Poketch_LoadActiveBacklightPalette(0, 0); + ov25_022546F0(0, 0); } else { - Poketch_LoadActivePalette(0, 0); + ov25_022546B8(0, 0); } PoketchDigitalClock_FinishTask(sysTaskData); diff --git a/src/poketch_digital_clock/poketch_digital_clock_manager.c b/src/poketch_digital_clock/poketch_digital_clock_manager.c index a04e3c878c..ac8483a05d 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_manager.c +++ b/src/poketch_digital_clock/poketch_digital_clock_manager.c @@ -133,7 +133,7 @@ static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *sysTaskDat AppData *appData = (AppData *)sysTaskData; if (appData->appTaskFunctionID < NELEMS(funcArray)) { - PoketechSystem_UpdateButtonManager(appData->poketchSys, appData->buttonManager); + ov25_02254518(appData->poketchSys, appData->buttonManager); if (funcArray[appData->appTaskFunctionID](appData)) { PoketchDigitalClock_FreeAppData(appData); From 4ba7bf78db90b58af3d56749b6f852c9d6527e78 Mon Sep 17 00:00:00 2001 From: Lucie Date: Sun, 16 Feb 2025 23:09:10 +0000 Subject: [PATCH 05/15] fixed merge with main --- src/overlay026/ov26_02256404.c | 199 ------------------ .../poketch_digital_clock_graphics.c | 28 ++- 2 files changed, 13 insertions(+), 214 deletions(-) delete mode 100644 src/overlay026/ov26_02256404.c diff --git a/src/overlay026/ov26_02256404.c b/src/overlay026/ov26_02256404.c deleted file mode 100644 index 4c2b0d8827..0000000000 --- a/src/overlay026/ov26_02256404.c +++ /dev/null @@ -1,199 +0,0 @@ -#include "overlay026/ov26_02256404.h" - -#include -#include - -#include "overlay025/ov25_02254560.h" -#include "overlay025/ov25_02255090.h" -#include "overlay026/struct_ov26_02256404_1.h" -#include "overlay026/struct_ov26_02256404_decl.h" - -#include "bg_window.h" -#include "graphics.h" -#include "heap.h" -#include "sys_task_manager.h" - -struct UnkStruct_ov26_02256404_t { - const UnkStruct_ov26_02256404_1 *unk_00; - BgConfig *unk_04; - u32 unk_08[10]; - u16 unk_30[360]; -}; - -static void ov26_0225646C(const u16 *param0, u16 *param1); -static void ov26_022564E4(PoketchTaskManager *param0); -static void ov26_022564F8(SysTask *param0, void *param1); -static void ov26_0225658C(SysTask *param0, void *param1); -static void ov26_022565AC(SysTask *param0, void *param1); -static void ov26_022565D8(SysTask *param0, void *param1); -static void ov26_022565F4(UnkStruct_ov26_02256404 *param0); - -BOOL ov26_02256404(UnkStruct_ov26_02256404 **param0, const UnkStruct_ov26_02256404_1 *param1, BgConfig *param2) -{ - UnkStruct_ov26_02256404 *v0 = (UnkStruct_ov26_02256404 *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(UnkStruct_ov26_02256404)); - - if (v0 != NULL) { - NNSG2dScreenData *v1; - void *v2; - - PoketchTask_InitActiveTaskList(v0->unk_08, 8); - - v0->unk_00 = param1; - v0->unk_04 = ov25_02254674(); - - v2 = Graphics_GetScrnData(12, 25, 1, &v1, 8); - - if (v2 == NULL) { - Heap_FreeToHeap(v0); - return 0; - } - - ov26_0225646C((const u16 *)(v1->rawData), v0->unk_30); - Heap_FreeToHeap(v2); - - *param0 = v0; - return 1; - } - - return 0; -} - -static void ov26_0225646C(const u16 *param0, u16 *param1) -{ - int v0, v1; - - v1 = 288; - - for (v0 = 0; v0 < 9; v0++) { - MI_CpuCopy16(param0, param1, 32 * 2); - MI_CpuCopy16(¶m0[v1], ¶m1[32], 8 * 2); - - param0 += 32; - param1 += (4 * 10); - - v1 = (v1 - 32 + 8); - } -} - -void ov26_0225649C(UnkStruct_ov26_02256404 *param0) -{ - if (param0 != NULL) { - Heap_FreeToHeap(param0); - } -} - -static const PoketchTask Unk_ov26_02256744[] = { - { 0x0, ov26_022564F8, 0x0 }, - { 0x1, ov26_0225658C, 0x0 }, - { 0x2, ov26_022565AC, 0x0 }, - { 0x3, ov26_022565D8, 0x0 }, - { 0x0, NULL, 0x0 } -}; - -void ov26_022564A8(UnkStruct_ov26_02256404 *param0, u32 param1) -{ - PoketchTask_Start(Unk_ov26_02256744, param1, param0, param0->unk_00, param0->unk_08, 2, 8); -} - -BOOL ov26_022564CC(UnkStruct_ov26_02256404 *param0, u32 param1) -{ - return PoketchTask_TaskIsNotActive(param0->unk_08, param1); -} - -BOOL ov26_022564D8(UnkStruct_ov26_02256404 *param0) -{ - return PoketchTask_NoActiveTasks(param0->unk_08); -} - -static void ov26_022564E4(PoketchTaskManager *param0) -{ - UnkStruct_ov26_02256404 *v0 = PoketchTask_GetTaskData(param0); - PoketchTask_EndTask(v0->unk_08, param0); -} - -static void ov26_022564F8(SysTask *param0, void *param1) -{ - static const BgTemplate v0 = { - 0, - 0, - 0x800, - 0, - 1, - GX_BG_COLORMODE_16, - GX_BG_SCRBASE_0x7000, - GX_BG_CHARBASE_0x00000, - GX_BG_EXTPLTT_01, - 2, - 0, - 0, - 0 - }; - GXSDispCnt v1; - UnkStruct_ov26_02256404 *v2; - - v2 = PoketchTask_GetTaskData(param1); - - Bg_InitFromTemplate(v2->unk_04, 6, &v0, 0); - Graphics_LoadTilesToBgLayer(12, 23, v2->unk_04, 6, 0, 0, 1, 8); - Graphics_LoadTilemapToBgLayer(12, 24, v2->unk_04, 6, 0, 0, 1, 8); - - ov25_022546B8(0, 0); - ov26_022565F4(v2); - - Bg_CopyTilemapBufferToVRAM(v2->unk_04, 6); - - v1 = GXS_GetDispCnt(); - GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2); - ov26_022564E4(param1); -} - -static void ov26_0225658C(SysTask *param0, void *param1) -{ - UnkStruct_ov26_02256404 *v0 = PoketchTask_GetTaskData(param1); - - ov26_022565F4(v0); - Bg_CopyTilemapBufferToVRAM(v0->unk_04, 6); - ov26_022564E4(param1); -} - -static void ov26_022565AC(SysTask *param0, void *param1) -{ - UnkStruct_ov26_02256404 *v0 = PoketchTask_GetTaskData(param1); - - if (v0->unk_00->unk_0C) { - ov25_022546F0(0, 0); - } else { - ov25_022546B8(0, 0); - } - - ov26_022564E4(param1); -} - -static void ov26_022565D8(SysTask *param0, void *param1) -{ - UnkStruct_ov26_02256404 *v0 = PoketchTask_GetTaskData(param1); - - Bg_FreeTilemapBuffer(v0->unk_04, 6); - ov26_022564E4(param1); -} - -static void ov26_022565F4(UnkStruct_ov26_02256404 *param0) -{ - u32 v0, v1; - - CP_SetDiv32_32(param0->unk_00->unk_00.hour, 10); - - v0 = CP_GetDivResult32(); - v1 = CP_GetDivRemainder32(); - - Bg_CopyToTilemapRect(param0->unk_04, 6, 3, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); - Bg_CopyToTilemapRect(param0->unk_04, 6, (3 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); - - CP_SetDiv32_32(param0->unk_00->unk_00.minute, 10); - - v0 = CP_GetDivResult32(); - v1 = CP_GetDivRemainder32(); - - Bg_CopyToTilemapRect(param0->unk_04, 6, 15, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); - Bg_CopyToTilemapRect(param0->unk_04, 6, (15 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); -} diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c index ac045e6376..38f2af5526 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -5,8 +5,6 @@ #include "overlay025/ov25_02254560.h" #include "overlay025/ov25_02255090.h" -#include "overlay025/struct_ov25_0225517C.h" -#include "overlay025/struct_ov25_02255224_decl.h" #include "bg_window.h" #include "graphics.h" @@ -38,7 +36,7 @@ struct DisplayData_t { }; static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst); -static void PoketchDigitalClock_FinishTask(UnkStruct_ov25_02255224 *sysTaskData); +static void PoketchDigitalClock_FinishTask(PoketchTaskManager *sysTaskData); static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskData); static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *sysTaskData); static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *sysTaskData); @@ -52,7 +50,7 @@ BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const Clock if (newDisplayData != NULL) { NNSG2dScreenData *screenData; - ov25_02255090(newDisplayData->unk_08, 8); + PoketchTask_InitActiveTaskList(newDisplayData->unk_08, 8); newDisplayData->clockData = clockData; newDisplayData->bgConfig = ov25_02254674(); @@ -97,7 +95,7 @@ void PoketchDigitalClock_FreeDisplayData(DisplayData *displayData) } } -static const UnkStruct_ov25_0225517C sysTaskFunctions[] = { +static const PoketchTask sysTaskFunctions[] = { { SYS_TASK_FUNC_SETUP_BACKGROUND, PoketchDigitalClock_SetupBackground, 0x0 }, { SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS, PoketchDigitalClock_UpdateClockDigits, 0x0 }, { SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE, PoketchDigitalClock_ToggleBacklightPalette, 0x0 }, @@ -107,23 +105,23 @@ static const UnkStruct_ov25_0225517C sysTaskFunctions[] = { void PoketchDigitalClock_RunTaskFunction(DisplayData *displayData, u32 functionID) { - ov25_0225517C(sysTaskFunctions, functionID, displayData, displayData->clockData, displayData->unk_08, 2, HEAP_ID_POKETCH_APP); + PoketchTask_Start(sysTaskFunctions, functionID, displayData, displayData->clockData, displayData->unk_08, 2, HEAP_ID_POKETCH_APP); } BOOL ov26_022564CC(DisplayData *displayData, u32 param1) { - return ov25_02255130(displayData->unk_08, param1); + return PoketchTask_TaskIsNotActive(displayData->unk_08, param1); } BOOL ov26_022564D8(DisplayData *displayData) { - return ov25_02255154(displayData->unk_08); + return PoketchTask_NoActiveTasks(displayData->unk_08); } -static void PoketchDigitalClock_FinishTask(UnkStruct_ov25_02255224 *sysTaskData) +static void PoketchDigitalClock_FinishTask(PoketchTaskManager *sysTaskData) { - DisplayData *displayData = ov25_0225523C(sysTaskData); - ov25_02255224(displayData->unk_08, sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); + PoketchTask_EndTask(displayData->unk_08, sysTaskData); } static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskData) @@ -143,7 +141,7 @@ static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskD .mosaic = FALSE, }; - DisplayData *displayData = ov25_0225523C(sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); Bg_InitFromTemplate(displayData->bgConfig, BG_LAYER_SUB_2, &template, BG_TYPE_STATIC); Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILES_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); @@ -161,7 +159,7 @@ static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskD static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *sysTaskData) { - DisplayData *displayData = ov25_0225523C(sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); PoketchDigitalClock_DrawClockDigits(displayData); Bg_CopyTilemapBufferToVRAM(displayData->bgConfig, BG_LAYER_SUB_2); @@ -170,7 +168,7 @@ static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *sysTas static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *sysTaskData) { - DisplayData *displayData = ov25_0225523C(sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); if (displayData->clockData->backlightActive) { ov25_022546F0(0, 0); @@ -183,7 +181,7 @@ static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *s static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *sysTaskData) { - DisplayData *displayData = ov25_0225523C(sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); Bg_FreeTilemapBuffer(displayData->bgConfig, BG_LAYER_SUB_2); PoketchDigitalClock_FinishTask(sysTaskData); From ea5a361430d1074d062448b7d617ca08df98b8fb Mon Sep 17 00:00:00 2001 From: Lucie Date: Mon, 17 Feb 2025 00:24:59 +0000 Subject: [PATCH 06/15] some task documentation --- .../poketch_digital_clock_graphics.h | 6 +- .../poketch_digital_clock_graphics.c | 84 ++++++++++--------- .../poketch_digital_clock_manager.c | 36 ++++---- 3 files changed, 65 insertions(+), 61 deletions(-) diff --git a/include/poketch_digital_clock/poketch_digital_clock_graphics.h b/include/poketch_digital_clock/poketch_digital_clock_graphics.h index b2cc3b7c12..0a01c310e7 100644 --- a/include/poketch_digital_clock/poketch_digital_clock_graphics.h +++ b/include/poketch_digital_clock/poketch_digital_clock_graphics.h @@ -17,8 +17,8 @@ typedef struct { BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const ClockData *clockData, BgConfig *bgConfig); void PoketchDigitalClock_FreeDisplayData(DisplayData *displayData); -void PoketchDigitalClock_RunTaskFunction(DisplayData *displayData, u32 functionID); -BOOL ov26_022564CC(DisplayData *displayData, u32 param1); -BOOL ov26_022564D8(DisplayData *displayData); +void PoketchDigitalClock_StartTask(DisplayData *displayData, u32 taskID); +BOOL PoketchDigitalClock_TaskIsNotActive(DisplayData *displayData, u32 taskID); +BOOL PoketchDigitalClock_NoActiveTasks(DisplayData *displayData); #endif // POKEPLATINUM_POKETCH_DIGITAL_CLOCK_GRAPHICS_H diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c index 38f2af5526..f5b269c252 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -11,14 +11,15 @@ #include "heap.h" #include "sys_task_manager.h" -#define POKETCH_CLOCK_DIGITS_TILEMAP_IDX 25 -#define POKETCH_CLOCK_DIGITS_32_TILE_ROW_OFFSET 288 -#define POKETCH_NUM_CLOCK_DIGITS 10 +#define NUM_TASK_SLOTS 8 + +#define POKETCH_CLOCK_DIGITS_TILEMAP_IDX 25 +#define POKETCH_NUM_CLOCK_DIGITS 10 #define PRE_POKETCH_DISPLAY_NARC_TILES_IDX 23 #define PRE_POKETCH_DISPLAY_NARC_TILEMAP_IDX 24 -#define TILE_SIZE 2 +#define TILE_SIZE_BYTES 2 #define POKETCH_CLOCK_DIGIT_WIDTH 4 #define POKETCH_CLOCK_DIGIT_HEIGHT 9 @@ -28,19 +29,23 @@ #define POKETCH_CLOCK_MINUETS_DIGIT_X 15 #define POKETCH_CLOCK_MINUETS_DIGIT_Y 7 +#define POKETCH_DIGIT_TILEMAP_WIDTH (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS) +#define POKETCH_DIGIT_TILEMAP_HEIGHT POKETCH_CLOCK_DIGIT_HEIGHT +#define POKETCH_DIGIT_TILEMAP_SIZE_BYTES (POKETCH_DIGIT_TILEMAP_WIDTH * POKETCH_DIGIT_TILEMAP_HEIGHT) + struct DisplayData_t { const ClockData *clockData; BgConfig *bgConfig; - u32 unk_08[10]; - u16 digitsTilemap[360]; + u32 taskList[2 + NUM_TASK_SLOTS]; + u16 digitsTilemap[POKETCH_DIGIT_TILEMAP_SIZE_BYTES]; }; static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst); -static void PoketchDigitalClock_FinishTask(PoketchTaskManager *sysTaskData); -static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskData); -static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *sysTaskData); -static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *sysTaskData); -static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *sysTaskData); +static void PoketchDigitalClock_EndTask(PoketchTaskManager *taskManager); +static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *taskManager); +static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *taskManager); +static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *taskManager); +static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *taskManager); static void PoketchDigitalClock_DrawClockDigits(DisplayData *displayData); BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const ClockData *clockData, BgConfig *bgConfig) @@ -50,7 +55,7 @@ BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const Clock if (newDisplayData != NULL) { NNSG2dScreenData *screenData; - PoketchTask_InitActiveTaskList(newDisplayData->unk_08, 8); + PoketchTask_InitActiveTaskList(newDisplayData->taskList, NUM_TASK_SLOTS); newDisplayData->clockData = clockData; newDisplayData->bgConfig = ov25_02254674(); @@ -74,17 +79,16 @@ BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const Clock static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst) { - int row_offset = POKETCH_CLOCK_DIGITS_32_TILE_ROW_OFFSET; + int offset = POKETCH_DIGIT_TILEMAP_HEIGHT * 32; int row; - for (row = 0; row < POKETCH_NUM_CLOCK_DIGITS - 1; row++) { - MI_CpuCopy16(rawScreenData, dst, 32 * TILE_SIZE); - MI_CpuCopy16(&rawScreenData[row_offset], &dst[32], 8 * TILE_SIZE); + for (row = 0; row < POKETCH_DIGIT_TILEMAP_HEIGHT; row++) { + MI_CpuCopy16(rawScreenData, dst, 32 * TILE_SIZE_BYTES); + MI_CpuCopy16(&rawScreenData[offset], &dst[32], 8 * TILE_SIZE_BYTES); rawScreenData += 32; dst += 40; - - row_offset = row_offset - 32 + 8; + offset -= 24; } } @@ -95,7 +99,7 @@ void PoketchDigitalClock_FreeDisplayData(DisplayData *displayData) } } -static const PoketchTask sysTaskFunctions[] = { +static const PoketchTask appTasks[] = { { SYS_TASK_FUNC_SETUP_BACKGROUND, PoketchDigitalClock_SetupBackground, 0x0 }, { SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS, PoketchDigitalClock_UpdateClockDigits, 0x0 }, { SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE, PoketchDigitalClock_ToggleBacklightPalette, 0x0 }, @@ -103,28 +107,28 @@ static const PoketchTask sysTaskFunctions[] = { { 0x0, NULL, 0x0 } }; -void PoketchDigitalClock_RunTaskFunction(DisplayData *displayData, u32 functionID) +void PoketchDigitalClock_StartTask(DisplayData *displayData, u32 taskID) { - PoketchTask_Start(sysTaskFunctions, functionID, displayData, displayData->clockData, displayData->unk_08, 2, HEAP_ID_POKETCH_APP); + PoketchTask_Start(appTasks, taskID, displayData, displayData->clockData, displayData->taskList, 2, HEAP_ID_POKETCH_APP); } -BOOL ov26_022564CC(DisplayData *displayData, u32 param1) +BOOL PoketchDigitalClock_TaskIsNotActive(DisplayData *displayData, u32 taskID) { - return PoketchTask_TaskIsNotActive(displayData->unk_08, param1); + return PoketchTask_TaskIsNotActive(displayData->taskList, taskID); } -BOOL ov26_022564D8(DisplayData *displayData) +BOOL PoketchDigitalClock_NoActiveTasks(DisplayData *displayData) { - return PoketchTask_NoActiveTasks(displayData->unk_08); + return PoketchTask_NoActiveTasks(displayData->taskList); } -static void PoketchDigitalClock_FinishTask(PoketchTaskManager *sysTaskData) +static void PoketchDigitalClock_EndTask(PoketchTaskManager *taskManager) { - DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); - PoketchTask_EndTask(displayData->unk_08, sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(taskManager); + PoketchTask_EndTask(displayData->taskList, taskManager); } -static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskData) +static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *taskManager) { static const BgTemplate template = { .x = 0, @@ -141,7 +145,7 @@ static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskD .mosaic = FALSE, }; - DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(taskManager); Bg_InitFromTemplate(displayData->bgConfig, BG_LAYER_SUB_2, &template, BG_TYPE_STATIC); Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILES_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); @@ -154,21 +158,21 @@ static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *sysTaskD GXSDispCnt displayControler = GXS_GetDispCnt(); GXS_SetVisiblePlane(displayControler.visiblePlane | GX_PLANEMASK_BG2); - PoketchDigitalClock_FinishTask(sysTaskData); + PoketchDigitalClock_EndTask(taskManager); } -static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *sysTaskData) +static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *taskManager) { - DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(taskManager); PoketchDigitalClock_DrawClockDigits(displayData); Bg_CopyTilemapBufferToVRAM(displayData->bgConfig, BG_LAYER_SUB_2); - PoketchDigitalClock_FinishTask(sysTaskData); + PoketchDigitalClock_EndTask(taskManager); } -static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *sysTaskData) +static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *taskManager) { - DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(taskManager); if (displayData->clockData->backlightActive) { ov25_022546F0(0, 0); @@ -176,15 +180,15 @@ static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *s ov25_022546B8(0, 0); } - PoketchDigitalClock_FinishTask(sysTaskData); + PoketchDigitalClock_EndTask(taskManager); } -static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *sysTaskData) +static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *taskManager) { - DisplayData *displayData = PoketchTask_GetTaskData(sysTaskData); + DisplayData *displayData = PoketchTask_GetTaskData(taskManager); Bg_FreeTilemapBuffer(displayData->bgConfig, BG_LAYER_SUB_2); - PoketchDigitalClock_FinishTask(sysTaskData); + PoketchDigitalClock_EndTask(taskManager); } static void PoketchDigitalClock_DrawClockDigits(DisplayData *displayData) diff --git a/src/poketch_digital_clock/poketch_digital_clock_manager.c b/src/poketch_digital_clock/poketch_digital_clock_manager.c index ac8483a05d..f92b459f02 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_manager.c +++ b/src/poketch_digital_clock/poketch_digital_clock_manager.c @@ -23,7 +23,7 @@ #define APP_TASK_UNLOAD_APP 2 typedef struct { - u8 appTaskFunctionID; + u8 appTasktaskID; u8 taskStage; u8 shutdown; u8 unk_03; @@ -44,10 +44,10 @@ static void NitroStaticInit(void); static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID); static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID); static void PoketchDigitalClock_FreeAppData(AppData *appData); -static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *sysTaskData); +static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *taskManager); static void PoketchDigitalClock_Shutdown(void *appData); static void PoketchDigitalClock_ToggleBacklight(u32 btnNumber, u32 buttonState, u32 touchState, void *appDataIn); -static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 functionID); +static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 taskID); static BOOL PoketchDigitalClock_LoadApp(AppData *appData); static BOOL PoketchDigitalClock_UpdateApp(AppData *appData); static BOOL PoketchDigitalClock_UnloadApp(AppData *appData); @@ -82,7 +82,7 @@ static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) { if (PoketchDigitalClock_SetupDisplayData(&(appData->displayData), &(appData->clockData), bgConfig)) { - appData->appTaskFunctionID = APP_TASK_LOAD_APP; + appData->appTasktaskID = APP_TASK_LOAD_APP; appData->taskStage = 0; appData->shutdown = FALSE; appData->unk_03 = 1; @@ -122,7 +122,7 @@ static void PoketchDigitalClock_FreeAppData(AppData *appData) Heap_FreeToHeap(appData); } -static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *sysTaskData) +static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *callbackData) { static BOOL (*const funcArray[])(AppData *) = { PoketchDigitalClock_LoadApp, @@ -130,12 +130,12 @@ static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *sysTaskDat PoketchDigitalClock_UnloadApp, }; - AppData *appData = (AppData *)sysTaskData; + AppData *appData = (AppData *)callbackData; - if (appData->appTaskFunctionID < NELEMS(funcArray)) { + if (appData->appTasktaskID < NELEMS(funcArray)) { ov25_02254518(appData->poketchSys, appData->buttonManager); - if (funcArray[appData->appTaskFunctionID](appData)) { + if (funcArray[appData->appTasktaskID](appData)) { PoketchDigitalClock_FreeAppData(appData); SysTask_Done(sysTask); PoketchSystem_NotifyAppUnloaded(appData->poketchSys); @@ -165,12 +165,12 @@ static void PoketchDigitalClock_ToggleBacklight(u32 btnNumber, u32 buttonState, } } -static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 functionID) +static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 taskID) { if (appData->shutdown == FALSE) { - appData->appTaskFunctionID = functionID; + appData->appTasktaskID = taskID; } else { - appData->appTaskFunctionID = APP_TASK_UNLOAD_APP; + appData->appTasktaskID = APP_TASK_UNLOAD_APP; } appData->taskStage = 0; @@ -180,11 +180,11 @@ static BOOL PoketchDigitalClock_LoadApp(AppData *appData) { switch (appData->taskStage) { case 0: - PoketchDigitalClock_RunTaskFunction(appData->displayData, SYS_TASK_FUNC_SETUP_BACKGROUND); + PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_SETUP_BACKGROUND); appData->taskStage++; break; case 1: - if (ov26_022564CC(appData->displayData, 0)) { + if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, 0)) { PoketchSystem_NotifyAppLoaded(appData->poketchSys); PoketchDigitalClock_SetAppTaskFunction(appData, APP_TASK_UPDATE_APP); } @@ -203,16 +203,16 @@ static BOOL PoketchDigitalClock_UpdateApp(AppData *appData) if (appData->backlightChange) { appData->backlightChange = FALSE; - PoketchDigitalClock_RunTaskFunction(appData->displayData, SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE); + PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE); } - if (ov26_022564CC(appData->displayData, 1)) { + if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, 1)) { appData->minute = appData->clockData.time.minute; appData->hour = appData->clockData.time.hour; GetCurrentTime(&(appData->clockData.time)); if ((appData->minute != appData->clockData.time.minute) || (appData->hour != appData->clockData.time.hour)) { - PoketchDigitalClock_RunTaskFunction(appData->displayData, SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS); + PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS); } } @@ -223,12 +223,12 @@ static BOOL PoketchDigitalClock_UnloadApp(AppData *appData) { switch (appData->taskStage) { case 0: - PoketchDigitalClock_RunTaskFunction(appData->displayData, SYS_TASK_FUNC_FREE_BACKGROUND); + PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_FREE_BACKGROUND); appData->taskStage++; break; case 1: - if (ov26_022564D8(appData->displayData)) { + if (PoketchDigitalClock_NoActiveTasks(appData->displayData)) { return TRUE; } From d845c73e1b5d1a0325e4fcb22426e6be645b4ccc Mon Sep 17 00:00:00 2001 From: Lucie Date: Mon, 17 Feb 2025 00:42:29 +0000 Subject: [PATCH 07/15] some other task bits and removed macros from CopyDigitTileMap --- .../poketch_digital_clock_graphics.c | 8 ++++---- src/poketch_digital_clock/poketch_digital_clock_manager.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c index f5b269c252..537381348e 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -79,12 +79,12 @@ BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const Clock static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst) { - int offset = POKETCH_DIGIT_TILEMAP_HEIGHT * 32; + int offset = 9 * 32; int row; - for (row = 0; row < POKETCH_DIGIT_TILEMAP_HEIGHT; row++) { - MI_CpuCopy16(rawScreenData, dst, 32 * TILE_SIZE_BYTES); - MI_CpuCopy16(&rawScreenData[offset], &dst[32], 8 * TILE_SIZE_BYTES); + for (row = 0; row < 9; row++) { + MI_CpuCopy16(rawScreenData, dst, 32 * sizeof(u16)); + MI_CpuCopy16(&rawScreenData[offset], &dst[32], 8 * sizeof(u16)); rawScreenData += 32; dst += 40; diff --git a/src/poketch_digital_clock/poketch_digital_clock_manager.c b/src/poketch_digital_clock/poketch_digital_clock_manager.c index f92b459f02..1235d67016 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_manager.c +++ b/src/poketch_digital_clock/poketch_digital_clock_manager.c @@ -184,7 +184,7 @@ static BOOL PoketchDigitalClock_LoadApp(AppData *appData) appData->taskStage++; break; case 1: - if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, 0)) { + if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, SYS_TASK_FUNC_SETUP_BACKGROUND)) { PoketchSystem_NotifyAppLoaded(appData->poketchSys); PoketchDigitalClock_SetAppTaskFunction(appData, APP_TASK_UPDATE_APP); } @@ -206,7 +206,7 @@ static BOOL PoketchDigitalClock_UpdateApp(AppData *appData) PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE); } - if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, 1)) { + if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS)) { appData->minute = appData->clockData.time.minute; appData->hour = appData->clockData.time.hour; GetCurrentTime(&(appData->clockData.time)); From 1deccbb930cb022b1e7112c3dc4aa148a34b9f35 Mon Sep 17 00:00:00 2001 From: Lucie Date: Mon, 17 Feb 2025 00:54:07 +0000 Subject: [PATCH 08/15] fix merge --- .../poketch_digital_clock_graphics.c | 8 ++++---- src/poketch_digital_clock/poketch_digital_clock_manager.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c index 537381348e..3ce363d0b8 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -58,7 +58,7 @@ BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const Clock PoketchTask_InitActiveTaskList(newDisplayData->taskList, NUM_TASK_SLOTS); newDisplayData->clockData = clockData; - newDisplayData->bgConfig = ov25_02254674(); + newDisplayData->bgConfig = Poketch_GetBgConfig(); void *nscrBuffer = Graphics_GetScrnData(NARC_INDEX_GRAPHIC__POKETCH, POKETCH_CLOCK_DIGITS_TILEMAP_IDX, TRUE, &screenData, HEAP_ID_POKETCH_APP); @@ -151,7 +151,7 @@ static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *taskMana Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILES_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); Graphics_LoadTilemapToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILEMAP_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); - ov25_022546B8(0, 0); + Poketch_LoadActivePalette(0, 0); PoketchDigitalClock_DrawClockDigits(displayData); Bg_CopyTilemapBufferToVRAM(displayData->bgConfig, BG_LAYER_SUB_2); @@ -175,9 +175,9 @@ static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *t DisplayData *displayData = PoketchTask_GetTaskData(taskManager); if (displayData->clockData->backlightActive) { - ov25_022546F0(0, 0); + Poketch_LoadActiveBacklightPalette(0, 0); } else { - ov25_022546B8(0, 0); + Poketch_LoadActivePalette(0, 0); } PoketchDigitalClock_EndTask(taskManager); diff --git a/src/poketch_digital_clock/poketch_digital_clock_manager.c b/src/poketch_digital_clock/poketch_digital_clock_manager.c index 1235d67016..1027642562 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_manager.c +++ b/src/poketch_digital_clock/poketch_digital_clock_manager.c @@ -133,7 +133,7 @@ static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *callbackDa AppData *appData = (AppData *)callbackData; if (appData->appTasktaskID < NELEMS(funcArray)) { - ov25_02254518(appData->poketchSys, appData->buttonManager); + PoketechSystem_UpdateButtonManager(appData->poketchSys, appData->buttonManager); if (funcArray[appData->appTasktaskID](appData)) { PoketchDigitalClock_FreeAppData(appData); From 78716122feb2e7e8c9dfabb182a6bbe27da94845 Mon Sep 17 00:00:00 2001 From: Lucie Date: Mon, 17 Feb 2025 11:15:28 +0000 Subject: [PATCH 09/15] removed files from merge --- src/overlay026/ov26_022561C0.c | 232 --------------------------------- src/overlay026/ov26_02256404.c | 199 ---------------------------- 2 files changed, 431 deletions(-) delete mode 100644 src/overlay026/ov26_022561C0.c delete mode 100644 src/overlay026/ov26_02256404.c diff --git a/src/overlay026/ov26_022561C0.c b/src/overlay026/ov26_022561C0.c deleted file mode 100644 index 0493571699..0000000000 --- a/src/overlay026/ov26_022561C0.c +++ /dev/null @@ -1,232 +0,0 @@ -#include -#include -#include - -#include "overlay025/poketch_button.h" -#include "overlay025/poketch_system.h" -#include "overlay026/ov26_02256404.h" -#include "overlay026/struct_ov26_02256404_1.h" -#include "overlay026/struct_ov26_02256404_decl.h" - -#include "bg_window.h" -#include "heap.h" -#include "rtc.h" -#include "sys_task.h" -#include "sys_task_manager.h" -#include "touch_screen.h" - -typedef struct { - u8 unk_00; - u8 unk_01; - u8 unk_02; - u8 unk_03; - u8 unk_04; - u8 unk_05; - u8 unk_06; - u8 unk_07; - u32 unk_08; - u32 unk_0C; - PoketchButtonManager *buttonManager; - UnkStruct_ov26_02256404_1 unk_14; - UnkStruct_ov26_02256404 *unk_24; - PoketchSystem *poketchSys; -} UnkStruct_ov26_0225621C; - -static void NitroStaticInit(void); - -static BOOL ov26_022561D4(void **param0, PoketchSystem *poketchSys, BgConfig *param2, u32 param3); -static BOOL ov26_0225621C(UnkStruct_ov26_0225621C *param0, PoketchSystem *poketchSys, BgConfig *param2, u32 param3); -static void ov26_022562A4(UnkStruct_ov26_0225621C *param0); -static void ov26_022562BC(SysTask *param0, void *param1); -static void ov26_022562F8(void *param0); -static void ov26_02256300(u32 param0, u32 param1, u32 param2, void *param3); -static void ov26_0225631C(UnkStruct_ov26_0225621C *param0, u32 param1); -static BOOL ov26_02256330(UnkStruct_ov26_0225621C *param0); -static BOOL ov26_02256370(UnkStruct_ov26_0225621C *param0); -static BOOL ov26_022563D0(UnkStruct_ov26_0225621C *param0); - -static const TouchScreenHitTable Unk_ov26_02256718[] = { - { 0x10, 0xAF, 0x10, 0xCF } -}; - -static void NitroStaticInit(void) -{ - PoketchSystem_SetAppFunctions(ov26_022561D4, ov26_022562F8); -} - -static BOOL ov26_022561D4(void **param0, PoketchSystem *poketchSys, BgConfig *param2, u32 param3) -{ - UnkStruct_ov26_0225621C *v0 = (UnkStruct_ov26_0225621C *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(UnkStruct_ov26_0225621C)); - - if (v0 != NULL) { - if (ov26_0225621C(v0, poketchSys, param2, param3)) { - if (SysTask_Start(ov26_022562BC, v0, 1) != NULL) { - *param0 = v0; - return 1; - } - } - - Heap_FreeToHeap(v0); - } - - return 0; -} - -static BOOL ov26_0225621C(UnkStruct_ov26_0225621C *param0, PoketchSystem *poketchSys, BgConfig *param2, u32 param3) -{ - if (ov26_02256404(&(param0->unk_24), &(param0->unk_14), param2)) { - param0->unk_00 = 0; - param0->unk_01 = 0; - param0->unk_02 = 0; - param0->unk_03 = 1; - param0->unk_07 = 0; - param0->unk_14.unk_0C = 0; - - GetCurrentTime(&(param0->unk_14.unk_00)); - - if (param0->unk_14.unk_00.hour >= 24) { - param0->unk_14.unk_00.hour %= 24; - } - - if (param0->unk_14.unk_00.minute >= 60) { - param0->unk_14.unk_00.hour %= 60; - param0->unk_14.unk_00.minute %= 60; - } - - param0->unk_06 = param0->unk_14.unk_00.minute; - param0->unk_05 = param0->unk_14.unk_00.hour; - param0->buttonManager = PoketchButtonManager_New(Unk_ov26_02256718, NELEMS(Unk_ov26_02256718), ov26_02256300, param0, 8); - - if (param0->buttonManager == NULL) { - return 0; - } - - param0->poketchSys = poketchSys; - return 1; - } - - return 0; -} - -static void ov26_022562A4(UnkStruct_ov26_0225621C *param0) -{ - ov26_0225649C(param0->unk_24); - PoketchButtonManager_Free(param0->buttonManager); - Heap_FreeToHeap(param0); -} - -static void ov26_022562BC(SysTask *param0, void *param1) -{ - static BOOL (*const v0[])(UnkStruct_ov26_0225621C *) = { - ov26_02256330, - ov26_02256370, - ov26_022563D0, - }; - - UnkStruct_ov26_0225621C *v1 = (UnkStruct_ov26_0225621C *)param1; - - if (v1->unk_00 < NELEMS(v0)) { - PoketechSystem_UpdateButtonManager(v1->poketchSys, v1->buttonManager); - - if (v0[v1->unk_00](v1)) { - ov26_022562A4(v1); - SysTask_Done(param0); - PoketchSystem_NotifyAppUnloaded(v1->poketchSys); - } - } else { - } -} - -static void ov26_022562F8(void *param0) -{ - ((UnkStruct_ov26_0225621C *)param0)->unk_02 = 1; -} - -static void ov26_02256300(u32 param0, u32 param1, u32 param2, void *param3) -{ - UnkStruct_ov26_0225621C *v0 = (UnkStruct_ov26_0225621C *)param3; - - switch (param2) { - case 1: - v0->unk_14.unk_0C = 1; - v0->unk_07 = 1; - break; - case 0: - v0->unk_14.unk_0C = 0; - v0->unk_07 = 1; - break; - } -} - -static void ov26_0225631C(UnkStruct_ov26_0225621C *param0, u32 param1) -{ - if (param0->unk_02 == 0) { - param0->unk_00 = param1; - } else { - param0->unk_00 = 2; - } - - param0->unk_01 = 0; -} - -static BOOL ov26_02256330(UnkStruct_ov26_0225621C *param0) -{ - switch (param0->unk_01) { - case 0: - ov26_022564A8(param0->unk_24, 0); - param0->unk_01++; - break; - case 1: - if (ov26_022564CC(param0->unk_24, 0)) { - PoketchSystem_NotifyAppLoaded(param0->poketchSys); - ov26_0225631C(param0, 1); - } - break; - } - - return 0; -} - -static BOOL ov26_02256370(UnkStruct_ov26_0225621C *param0) -{ - if (param0->unk_02) { - ov26_0225631C(param0, 2); - return 0; - } - - if (param0->unk_07) { - param0->unk_07 = 0; - ov26_022564A8(param0->unk_24, 2); - } - - if (ov26_022564CC(param0->unk_24, 1)) { - param0->unk_06 = param0->unk_14.unk_00.minute; - param0->unk_05 = param0->unk_14.unk_00.hour; - GetCurrentTime(&(param0->unk_14.unk_00)); - - if ((param0->unk_06 != param0->unk_14.unk_00.minute) || (param0->unk_05 != param0->unk_14.unk_00.hour)) { - ov26_022564A8(param0->unk_24, 1); - } - } - - return 0; -} - -static BOOL ov26_022563D0(UnkStruct_ov26_0225621C *param0) -{ - switch (param0->unk_01) { - case 0: - ov26_022564A8(param0->unk_24, 3); - param0->unk_01++; - break; - - case 1: - if (ov26_022564D8(param0->unk_24)) { - return 1; - } - - break; - } - - return 0; -} diff --git a/src/overlay026/ov26_02256404.c b/src/overlay026/ov26_02256404.c deleted file mode 100644 index 9083195eac..0000000000 --- a/src/overlay026/ov26_02256404.c +++ /dev/null @@ -1,199 +0,0 @@ -#include "overlay026/ov26_02256404.h" - -#include -#include - -#include "overlay025/ov25_02254560.h" -#include "overlay025/ov25_02255090.h" -#include "overlay026/struct_ov26_02256404_1.h" -#include "overlay026/struct_ov26_02256404_decl.h" - -#include "bg_window.h" -#include "graphics.h" -#include "heap.h" -#include "sys_task_manager.h" - -struct UnkStruct_ov26_02256404_t { - const UnkStruct_ov26_02256404_1 *unk_00; - BgConfig *unk_04; - u32 unk_08[10]; - u16 unk_30[360]; -}; - -static void ov26_0225646C(const u16 *param0, u16 *param1); -static void ov26_022564E4(PoketchTaskManager *param0); -static void ov26_022564F8(SysTask *param0, void *param1); -static void ov26_0225658C(SysTask *param0, void *param1); -static void ov26_022565AC(SysTask *param0, void *param1); -static void ov26_022565D8(SysTask *param0, void *param1); -static void ov26_022565F4(UnkStruct_ov26_02256404 *param0); - -BOOL ov26_02256404(UnkStruct_ov26_02256404 **param0, const UnkStruct_ov26_02256404_1 *param1, BgConfig *param2) -{ - UnkStruct_ov26_02256404 *v0 = (UnkStruct_ov26_02256404 *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(UnkStruct_ov26_02256404)); - - if (v0 != NULL) { - NNSG2dScreenData *v1; - void *v2; - - PoketchTask_InitActiveTaskList(v0->unk_08, 8); - - v0->unk_00 = param1; - v0->unk_04 = Poketch_GetBgConfig(); - - v2 = Graphics_GetScrnData(12, 25, 1, &v1, 8); - - if (v2 == NULL) { - Heap_FreeToHeap(v0); - return 0; - } - - ov26_0225646C((const u16 *)(v1->rawData), v0->unk_30); - Heap_FreeToHeap(v2); - - *param0 = v0; - return 1; - } - - return 0; -} - -static void ov26_0225646C(const u16 *param0, u16 *param1) -{ - int v0, v1; - - v1 = 288; - - for (v0 = 0; v0 < 9; v0++) { - MI_CpuCopy16(param0, param1, 32 * 2); - MI_CpuCopy16(¶m0[v1], ¶m1[32], 8 * 2); - - param0 += 32; - param1 += (4 * 10); - - v1 = (v1 - 32 + 8); - } -} - -void ov26_0225649C(UnkStruct_ov26_02256404 *param0) -{ - if (param0 != NULL) { - Heap_FreeToHeap(param0); - } -} - -static const PoketchTask Unk_ov26_02256744[] = { - { 0x0, ov26_022564F8, 0x0 }, - { 0x1, ov26_0225658C, 0x0 }, - { 0x2, ov26_022565AC, 0x0 }, - { 0x3, ov26_022565D8, 0x0 }, - { 0x0, NULL, 0x0 } -}; - -void ov26_022564A8(UnkStruct_ov26_02256404 *param0, u32 param1) -{ - PoketchTask_Start(Unk_ov26_02256744, param1, param0, param0->unk_00, param0->unk_08, 2, 8); -} - -BOOL ov26_022564CC(UnkStruct_ov26_02256404 *param0, u32 param1) -{ - return PoketchTask_TaskIsNotActive(param0->unk_08, param1); -} - -BOOL ov26_022564D8(UnkStruct_ov26_02256404 *param0) -{ - return PoketchTask_NoActiveTasks(param0->unk_08); -} - -static void ov26_022564E4(PoketchTaskManager *param0) -{ - UnkStruct_ov26_02256404 *v0 = PoketchTask_GetTaskData(param0); - PoketchTask_EndTask(v0->unk_08, param0); -} - -static void ov26_022564F8(SysTask *param0, void *param1) -{ - static const BgTemplate v0 = { - 0, - 0, - 0x800, - 0, - 1, - GX_BG_COLORMODE_16, - GX_BG_SCRBASE_0x7000, - GX_BG_CHARBASE_0x00000, - GX_BG_EXTPLTT_01, - 2, - 0, - 0, - 0 - }; - GXSDispCnt v1; - UnkStruct_ov26_02256404 *v2; - - v2 = PoketchTask_GetTaskData(param1); - - Bg_InitFromTemplate(v2->unk_04, 6, &v0, 0); - Graphics_LoadTilesToBgLayer(12, 23, v2->unk_04, 6, 0, 0, 1, 8); - Graphics_LoadTilemapToBgLayer(12, 24, v2->unk_04, 6, 0, 0, 1, 8); - - Poketch_LoadActivePalette(0, 0); - ov26_022565F4(v2); - - Bg_CopyTilemapBufferToVRAM(v2->unk_04, 6); - - v1 = GXS_GetDispCnt(); - GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2); - ov26_022564E4(param1); -} - -static void ov26_0225658C(SysTask *param0, void *param1) -{ - UnkStruct_ov26_02256404 *v0 = PoketchTask_GetTaskData(param1); - - ov26_022565F4(v0); - Bg_CopyTilemapBufferToVRAM(v0->unk_04, 6); - ov26_022564E4(param1); -} - -static void ov26_022565AC(SysTask *param0, void *param1) -{ - UnkStruct_ov26_02256404 *v0 = PoketchTask_GetTaskData(param1); - - if (v0->unk_00->unk_0C) { - Poketch_LoadActiveBacklightPalette(0, 0); - } else { - Poketch_LoadActivePalette(0, 0); - } - - ov26_022564E4(param1); -} - -static void ov26_022565D8(SysTask *param0, void *param1) -{ - UnkStruct_ov26_02256404 *v0 = PoketchTask_GetTaskData(param1); - - Bg_FreeTilemapBuffer(v0->unk_04, 6); - ov26_022564E4(param1); -} - -static void ov26_022565F4(UnkStruct_ov26_02256404 *param0) -{ - u32 v0, v1; - - CP_SetDiv32_32(param0->unk_00->unk_00.hour, 10); - - v0 = CP_GetDivResult32(); - v1 = CP_GetDivRemainder32(); - - Bg_CopyToTilemapRect(param0->unk_04, 6, 3, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); - Bg_CopyToTilemapRect(param0->unk_04, 6, (3 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); - - CP_SetDiv32_32(param0->unk_00->unk_00.minute, 10); - - v0 = CP_GetDivResult32(); - v1 = CP_GetDivRemainder32(); - - Bg_CopyToTilemapRect(param0->unk_04, 6, 15, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); - Bg_CopyToTilemapRect(param0->unk_04, 6, (15 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); -} From 3e120ec8a0a59d8feff5146c16460ecf5f277f27 Mon Sep 17 00:00:00 2001 From: Lucie Date: Mon, 17 Feb 2025 12:07:14 +0000 Subject: [PATCH 10/15] changes from PR review --- .../poketch_digital_clock_graphics.c | 19 +++++------ .../poketch_digital_clock_manager.c | 33 +++++++++---------- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c index 3ce363d0b8..5ae3b29381 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -19,8 +19,6 @@ #define PRE_POKETCH_DISPLAY_NARC_TILES_IDX 23 #define PRE_POKETCH_DISPLAY_NARC_TILEMAP_IDX 24 -#define TILE_SIZE_BYTES 2 - #define POKETCH_CLOCK_DIGIT_WIDTH 4 #define POKETCH_CLOCK_DIGIT_HEIGHT 9 #define POKETCH_CLOCK_DIGIT_GAP 1 @@ -30,16 +28,9 @@ #define POKETCH_CLOCK_MINUETS_DIGIT_Y 7 #define POKETCH_DIGIT_TILEMAP_WIDTH (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS) -#define POKETCH_DIGIT_TILEMAP_HEIGHT POKETCH_CLOCK_DIGIT_HEIGHT +#define POKETCH_DIGIT_TILEMAP_HEIGHT (POKETCH_CLOCK_DIGIT_HEIGHT) #define POKETCH_DIGIT_TILEMAP_SIZE_BYTES (POKETCH_DIGIT_TILEMAP_WIDTH * POKETCH_DIGIT_TILEMAP_HEIGHT) -struct DisplayData_t { - const ClockData *clockData; - BgConfig *bgConfig; - u32 taskList[2 + NUM_TASK_SLOTS]; - u16 digitsTilemap[POKETCH_DIGIT_TILEMAP_SIZE_BYTES]; -}; - static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst); static void PoketchDigitalClock_EndTask(PoketchTaskManager *taskManager); static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *taskManager); @@ -48,6 +39,14 @@ static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *t static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *taskManager); static void PoketchDigitalClock_DrawClockDigits(DisplayData *displayData); +struct DisplayData_t { + const ClockData *clockData; + BgConfig *bgConfig; + u32 taskList[2 + NUM_TASK_SLOTS]; + u16 digitsTilemap[POKETCH_DIGIT_TILEMAP_SIZE_BYTES]; +}; + + BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const ClockData *clockData, BgConfig *bgConfig) { DisplayData *newDisplayData = (DisplayData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(DisplayData)); diff --git a/src/poketch_digital_clock/poketch_digital_clock_manager.c b/src/poketch_digital_clock/poketch_digital_clock_manager.c index 1027642562..dfbe695b49 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_manager.c +++ b/src/poketch_digital_clock/poketch_digital_clock_manager.c @@ -24,15 +24,14 @@ typedef struct { u8 appTasktaskID; - u8 taskStage; + u8 state; u8 shutdown; - u8 unk_03; - u8 unk_04; + u8 unused_0; // Assigned value of 1 + u8 unused_1; u8 hour; u8 minute; u8 backlightChange; - u32 unk_08; - u32 unk_0C; + u8 unused_2[8]; PoketchButtonManager *buttonManager; ClockData clockData; DisplayData *displayData; @@ -66,11 +65,10 @@ static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, AppData *newAppData = (AppData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(AppData)); if (newAppData != NULL) { - if (PoketchDigitalClock_SetupAppData(newAppData, poketchSys, bgConfig, appID)) { - if (SysTask_Start(PoketchDigitalClock_AppTaskRunner, newAppData, 1) != NULL) { - *appData = newAppData; - return TRUE; - } + if (PoketchDigitalClock_SetupAppData(newAppData, poketchSys, bgConfig, appID) + && SysTask_Start(PoketchDigitalClock_AppTaskRunner, newAppData, 1) != NULL) { + *appData = newAppData; + return TRUE; } Heap_FreeToHeap(newAppData); @@ -83,9 +81,9 @@ static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *po { if (PoketchDigitalClock_SetupDisplayData(&(appData->displayData), &(appData->clockData), bgConfig)) { appData->appTasktaskID = APP_TASK_LOAD_APP; - appData->taskStage = 0; + appData->state = 0; appData->shutdown = FALSE; - appData->unk_03 = 1; + appData->unused_0 = 1; appData->backlightChange = FALSE; appData->clockData.backlightActive = FALSE; @@ -140,7 +138,6 @@ static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *callbackDa SysTask_Done(sysTask); PoketchSystem_NotifyAppUnloaded(appData->poketchSys); } - } else { } } @@ -173,15 +170,15 @@ static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 taskID) appData->appTasktaskID = APP_TASK_UNLOAD_APP; } - appData->taskStage = 0; + appData->state = 0; } static BOOL PoketchDigitalClock_LoadApp(AppData *appData) { - switch (appData->taskStage) { + switch (appData->state) { case 0: PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_SETUP_BACKGROUND); - appData->taskStage++; + appData->state++; break; case 1: if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, SYS_TASK_FUNC_SETUP_BACKGROUND)) { @@ -221,10 +218,10 @@ static BOOL PoketchDigitalClock_UpdateApp(AppData *appData) static BOOL PoketchDigitalClock_UnloadApp(AppData *appData) { - switch (appData->taskStage) { + switch (appData->state) { case 0: PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_FREE_BACKGROUND); - appData->taskStage++; + appData->state++; break; case 1: From 4e4b3003b8900d84f99b48f6203076cddc0d62cb Mon Sep 17 00:00:00 2001 From: Lucie Date: Mon, 17 Feb 2025 12:10:40 +0000 Subject: [PATCH 11/15] make format --- src/poketch_digital_clock/poketch_digital_clock_graphics.c | 1 - src/poketch_digital_clock/poketch_digital_clock_manager.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c index 5ae3b29381..03dc50c9ee 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -46,7 +46,6 @@ struct DisplayData_t { u16 digitsTilemap[POKETCH_DIGIT_TILEMAP_SIZE_BYTES]; }; - BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const ClockData *clockData, BgConfig *bgConfig) { DisplayData *newDisplayData = (DisplayData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(DisplayData)); diff --git a/src/poketch_digital_clock/poketch_digital_clock_manager.c b/src/poketch_digital_clock/poketch_digital_clock_manager.c index dfbe695b49..298ff03075 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_manager.c +++ b/src/poketch_digital_clock/poketch_digital_clock_manager.c @@ -66,7 +66,7 @@ static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, if (newAppData != NULL) { if (PoketchDigitalClock_SetupAppData(newAppData, poketchSys, bgConfig, appID) - && SysTask_Start(PoketchDigitalClock_AppTaskRunner, newAppData, 1) != NULL) { + && SysTask_Start(PoketchDigitalClock_AppTaskRunner, newAppData, 1) != NULL) { *appData = newAppData; return TRUE; } From 1f846ffa8abb05068b28f9530a245dd31b3c16f3 Mon Sep 17 00:00:00 2001 From: Lucie Date: Tue, 18 Feb 2025 12:39:03 +0000 Subject: [PATCH 12/15] updated from PR review --- .../poketch_digital_clock_graphics.h | 48 +++-- .../poketch_digital_clock_graphics.c | 179 ++++++++---------- .../poketch_digital_clock_manager.c | 142 +++++++------- 3 files changed, 185 insertions(+), 184 deletions(-) diff --git a/include/poketch_digital_clock/poketch_digital_clock_graphics.h b/include/poketch_digital_clock/poketch_digital_clock_graphics.h index 0a01c310e7..b3035f0b88 100644 --- a/include/poketch_digital_clock/poketch_digital_clock_graphics.h +++ b/include/poketch_digital_clock/poketch_digital_clock_graphics.h @@ -3,22 +3,48 @@ #include "bg_window.h" -#define SYS_TASK_FUNC_SETUP_BACKGROUND 0 -#define SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS 1 -#define SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE 2 -#define SYS_TASK_FUNC_FREE_BACKGROUND 3 +// Display Tasks +#define NUM_TASK_SLOTS 8 -typedef struct DisplayData_t DisplayData; +#define POKETCH_TASK_SETUP_BACKGROUND 0 +#define POKETCH_TASK_UPDATE_WATCH_DIGITS 1 +#define POKETCH_TASK_TOGGLE_BACKLIGHT 2 +#define POKETCH_TASK_FREE_BACKGROUND 3 + +// Graphics +#define POKETCH_DIGITAL_WATCH_NARC_TILES_IDX 23 +#define POKETCH_DIGITAL_WATCH_NARC_TILEMAP_IDX 24 +#define POKETCH_CLOCK_DIGITS_TILEMAP_IDX 25 +#define POKETCH_NUM_CLOCK_DIGITS 10 + +#define POKETCH_CLOCK_DIGIT_WIDTH 4 +#define POKETCH_CLOCK_DIGIT_HEIGHT 9 +#define POKETCH_CLOCK_DIGIT_GAP 1 +#define POKETCH_CLOCK_HOURS_DIGIT_X 3 +#define POKETCH_CLOCK_HOURS_DIGIT_Y 7 +#define POKETCH_CLOCK_MINUTES_DIGIT_X 15 +#define POKETCH_CLOCK_MINUTES_DIGIT_Y 7 + +#define POKETCH_DIGIT_TILEMAP_WIDTH (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS) +#define POKETCH_DIGIT_TILEMAP_HEIGHT (POKETCH_CLOCK_DIGIT_HEIGHT) +#define POKETCH_DIGIT_TILEMAP_SIZE_BYTES (POKETCH_DIGIT_TILEMAP_WIDTH * POKETCH_DIGIT_TILEMAP_HEIGHT) typedef struct { RTCTime time; u32 backlightActive; -} ClockData; +} WatchData; -BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const ClockData *clockData, BgConfig *bgConfig); -void PoketchDigitalClock_FreeDisplayData(DisplayData *displayData); -void PoketchDigitalClock_StartTask(DisplayData *displayData, u32 taskID); -BOOL PoketchDigitalClock_TaskIsNotActive(DisplayData *displayData, u32 taskID); -BOOL PoketchDigitalClock_NoActiveTasks(DisplayData *displayData); +typedef struct DisplayManager { + const WatchData *watchData; + BgConfig *bgConfig; + u32 taskList[2 + NUM_TASK_SLOTS]; + u16 digitsTilemap[POKETCH_DIGIT_TILEMAP_SIZE_BYTES]; +} DisplayManager; + +BOOL PoketchDigitalClock_SetupDisplayManager(DisplayManager **displayManager, const WatchData *watchData, BgConfig *bgConfig); +void PoketchDigitalClock_FreeDisplayManager(DisplayManager *displayManager); +void PoketchDigitalClock_StartDisplayTask(DisplayManager *displayManager, u32 taskID); +BOOL PoketchDigitalClock_DisplayTaskIsNotActive(DisplayManager *displayManager, u32 taskID); +BOOL PoketchDigitalClock_NoActiveDisplayTasks(DisplayManager *displayManager); #endif // POKEPLATINUM_POKETCH_DIGITAL_CLOCK_GRAPHICS_H diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_clock/poketch_digital_clock_graphics.c index 03dc50c9ee..bd853da9c8 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_clock/poketch_digital_clock_graphics.c @@ -11,71 +11,44 @@ #include "heap.h" #include "sys_task_manager.h" -#define NUM_TASK_SLOTS 8 +static void CopyDigitTilemap(const u16 *rawScreenData, u16 *dst); +static void EndTask(PoketchTaskManager *taskManager); +static void SetupBackground(SysTask *sysTask, void *taskManager); +static void UpdateClockDigits(SysTask *sysTask, void *taskManager); +static void ToggleBacklightPalette(SysTask *sysTask, void *taskManager); +static void FreeBackground(SysTask *sysTask, void *taskManager); +static void DrawClockDigits(DisplayManager *displayManager); -#define POKETCH_CLOCK_DIGITS_TILEMAP_IDX 25 -#define POKETCH_NUM_CLOCK_DIGITS 10 - -#define PRE_POKETCH_DISPLAY_NARC_TILES_IDX 23 -#define PRE_POKETCH_DISPLAY_NARC_TILEMAP_IDX 24 - -#define POKETCH_CLOCK_DIGIT_WIDTH 4 -#define POKETCH_CLOCK_DIGIT_HEIGHT 9 -#define POKETCH_CLOCK_DIGIT_GAP 1 -#define POKETCH_CLOCK_HOURS_DIGIT_X 3 -#define POKETCH_CLOCK_HOURS_DIGIT_Y 7 -#define POKETCH_CLOCK_MINUETS_DIGIT_X 15 -#define POKETCH_CLOCK_MINUETS_DIGIT_Y 7 - -#define POKETCH_DIGIT_TILEMAP_WIDTH (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS) -#define POKETCH_DIGIT_TILEMAP_HEIGHT (POKETCH_CLOCK_DIGIT_HEIGHT) -#define POKETCH_DIGIT_TILEMAP_SIZE_BYTES (POKETCH_DIGIT_TILEMAP_WIDTH * POKETCH_DIGIT_TILEMAP_HEIGHT) - -static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst); -static void PoketchDigitalClock_EndTask(PoketchTaskManager *taskManager); -static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *taskManager); -static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *taskManager); -static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *taskManager); -static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *taskManager); -static void PoketchDigitalClock_DrawClockDigits(DisplayData *displayData); - -struct DisplayData_t { - const ClockData *clockData; - BgConfig *bgConfig; - u32 taskList[2 + NUM_TASK_SLOTS]; - u16 digitsTilemap[POKETCH_DIGIT_TILEMAP_SIZE_BYTES]; -}; - -BOOL PoketchDigitalClock_SetupDisplayData(DisplayData **displayData, const ClockData *clockData, BgConfig *bgConfig) +BOOL PoketchDigitalClock_SetupDisplayManager(DisplayManager **displayManager, const WatchData *watchData, BgConfig *bgConfig) { - DisplayData *newDisplayData = (DisplayData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(DisplayData)); + DisplayManager *newDisplayManager = Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(DisplayManager)); - if (newDisplayData != NULL) { + if (newDisplayManager != NULL) { NNSG2dScreenData *screenData; - PoketchTask_InitActiveTaskList(newDisplayData->taskList, NUM_TASK_SLOTS); + PoketchTask_InitActiveTaskList(newDisplayManager->taskList, NUM_TASK_SLOTS); - newDisplayData->clockData = clockData; - newDisplayData->bgConfig = Poketch_GetBgConfig(); + newDisplayManager->watchData = watchData; + newDisplayManager->bgConfig = Poketch_GetBgConfig(); void *nscrBuffer = Graphics_GetScrnData(NARC_INDEX_GRAPHIC__POKETCH, POKETCH_CLOCK_DIGITS_TILEMAP_IDX, TRUE, &screenData, HEAP_ID_POKETCH_APP); if (nscrBuffer == NULL) { - Heap_FreeToHeap(newDisplayData); + Heap_FreeToHeap(newDisplayManager); return FALSE; } - PoketchDigitalClock_CopyDigitTilemap((const u16 *)(screenData->rawData), newDisplayData->digitsTilemap); + CopyDigitTilemap((const u16 *)(screenData->rawData), newDisplayManager->digitsTilemap); Heap_FreeToHeap(nscrBuffer); - *displayData = newDisplayData; + *displayManager = newDisplayManager; return TRUE; } return FALSE; } -static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 *dst) +static void CopyDigitTilemap(const u16 *rawScreenData, u16 *dst) { int offset = 9 * 32; int row; @@ -90,43 +63,43 @@ static void PoketchDigitalClock_CopyDigitTilemap(const u16 *rawScreenData, u16 * } } -void PoketchDigitalClock_FreeDisplayData(DisplayData *displayData) +void PoketchDigitalClock_FreeDisplayManager(DisplayManager *displayManager) { - if (displayData != NULL) { - Heap_FreeToHeap(displayData); + if (displayManager != NULL) { + Heap_FreeToHeap(displayManager); } } -static const PoketchTask appTasks[] = { - { SYS_TASK_FUNC_SETUP_BACKGROUND, PoketchDigitalClock_SetupBackground, 0x0 }, - { SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS, PoketchDigitalClock_UpdateClockDigits, 0x0 }, - { SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE, PoketchDigitalClock_ToggleBacklightPalette, 0x0 }, - { SYS_TASK_FUNC_FREE_BACKGROUND, PoketchDigitalClock_FreeBackground, 0x0 }, - { 0x0, NULL, 0x0 } +static const PoketchTask sDisplayTasks[] = { + { POKETCH_TASK_SETUP_BACKGROUND, SetupBackground, 0 }, + { POKETCH_TASK_UPDATE_WATCH_DIGITS, UpdateClockDigits, 0 }, + { POKETCH_TASK_TOGGLE_BACKLIGHT, ToggleBacklightPalette, 0 }, + { POKETCH_TASK_FREE_BACKGROUND, FreeBackground, 0 }, + { 0, NULL, 0 } }; -void PoketchDigitalClock_StartTask(DisplayData *displayData, u32 taskID) +void PoketchDigitalClock_StartDisplayTask(DisplayManager *displayManager, u32 taskID) { - PoketchTask_Start(appTasks, taskID, displayData, displayData->clockData, displayData->taskList, 2, HEAP_ID_POKETCH_APP); + PoketchTask_Start(sDisplayTasks, taskID, displayManager, displayManager->watchData, displayManager->taskList, 2, HEAP_ID_POKETCH_APP); } -BOOL PoketchDigitalClock_TaskIsNotActive(DisplayData *displayData, u32 taskID) +BOOL PoketchDigitalClock_DisplayTaskIsNotActive(DisplayManager *displayManager, u32 taskID) { - return PoketchTask_TaskIsNotActive(displayData->taskList, taskID); + return PoketchTask_TaskIsNotActive(displayManager->taskList, taskID); } -BOOL PoketchDigitalClock_NoActiveTasks(DisplayData *displayData) +BOOL PoketchDigitalClock_NoActiveDisplayTasks(DisplayManager *displayManager) { - return PoketchTask_NoActiveTasks(displayData->taskList); + return PoketchTask_NoActiveTasks(displayManager->taskList); } -static void PoketchDigitalClock_EndTask(PoketchTaskManager *taskManager) +static void EndTask(PoketchTaskManager *taskManager) { - DisplayData *displayData = PoketchTask_GetTaskData(taskManager); - PoketchTask_EndTask(displayData->taskList, taskManager); + DisplayManager *displayManager = PoketchTask_GetTaskData(taskManager); + PoketchTask_EndTask(displayManager->taskList, taskManager); } -static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *taskManager) +static void SetupBackground(SysTask *sysTask, void *taskManager) { static const BgTemplate template = { .x = 0, @@ -143,107 +116,107 @@ static void PoketchDigitalClock_SetupBackground(SysTask *sysTask, void *taskMana .mosaic = FALSE, }; - DisplayData *displayData = PoketchTask_GetTaskData(taskManager); + DisplayManager *displayManager = PoketchTask_GetTaskData(taskManager); - Bg_InitFromTemplate(displayData->bgConfig, BG_LAYER_SUB_2, &template, BG_TYPE_STATIC); - Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILES_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); - Graphics_LoadTilemapToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, PRE_POKETCH_DISPLAY_NARC_TILEMAP_IDX, displayData->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); + Bg_InitFromTemplate(displayManager->bgConfig, BG_LAYER_SUB_2, &template, BG_TYPE_STATIC); + Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, POKETCH_DIGITAL_WATCH_NARC_TILES_IDX, displayManager->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); + Graphics_LoadTilemapToBgLayer(NARC_INDEX_GRAPHIC__POKETCH, POKETCH_DIGITAL_WATCH_NARC_TILEMAP_IDX, displayManager->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, HEAP_ID_POKETCH_APP); Poketch_LoadActivePalette(0, 0); - PoketchDigitalClock_DrawClockDigits(displayData); + DrawClockDigits(displayManager); - Bg_CopyTilemapBufferToVRAM(displayData->bgConfig, BG_LAYER_SUB_2); + Bg_CopyTilemapBufferToVRAM(displayManager->bgConfig, BG_LAYER_SUB_2); GXSDispCnt displayControler = GXS_GetDispCnt(); GXS_SetVisiblePlane(displayControler.visiblePlane | GX_PLANEMASK_BG2); - PoketchDigitalClock_EndTask(taskManager); + EndTask(taskManager); } -static void PoketchDigitalClock_UpdateClockDigits(SysTask *sysTask, void *taskManager) +static void UpdateClockDigits(SysTask *sysTask, void *taskManager) { - DisplayData *displayData = PoketchTask_GetTaskData(taskManager); + DisplayManager *displayManager = PoketchTask_GetTaskData(taskManager); - PoketchDigitalClock_DrawClockDigits(displayData); - Bg_CopyTilemapBufferToVRAM(displayData->bgConfig, BG_LAYER_SUB_2); - PoketchDigitalClock_EndTask(taskManager); + DrawClockDigits(displayManager); + Bg_CopyTilemapBufferToVRAM(displayManager->bgConfig, BG_LAYER_SUB_2); + EndTask(taskManager); } -static void PoketchDigitalClock_ToggleBacklightPalette(SysTask *sysTask, void *taskManager) +static void ToggleBacklightPalette(SysTask *sysTask, void *taskManager) { - DisplayData *displayData = PoketchTask_GetTaskData(taskManager); + DisplayManager *displayManager = PoketchTask_GetTaskData(taskManager); - if (displayData->clockData->backlightActive) { + if (displayManager->watchData->backlightActive) { Poketch_LoadActiveBacklightPalette(0, 0); } else { Poketch_LoadActivePalette(0, 0); } - PoketchDigitalClock_EndTask(taskManager); + EndTask(taskManager); } -static void PoketchDigitalClock_FreeBackground(SysTask *sysTask, void *taskManager) +static void FreeBackground(SysTask *sysTask, void *taskManager) { - DisplayData *displayData = PoketchTask_GetTaskData(taskManager); + DisplayManager *displayManager = PoketchTask_GetTaskData(taskManager); - Bg_FreeTilemapBuffer(displayData->bgConfig, BG_LAYER_SUB_2); - PoketchDigitalClock_EndTask(taskManager); + Bg_FreeTilemapBuffer(displayManager->bgConfig, BG_LAYER_SUB_2); + EndTask(taskManager); } -static void PoketchDigitalClock_DrawClockDigits(DisplayData *displayData) +static void DrawClockDigits(DisplayManager *displayManager) { - CP_SetDiv32_32(displayData->clockData->time.hour, POKETCH_NUM_CLOCK_DIGITS); + CP_SetDiv32_32(displayManager->watchData->time.hour, POKETCH_NUM_CLOCK_DIGITS); u32 tensDigitOffset = CP_GetDivResult32(); u32 onesDigitOffset = CP_GetDivRemainder32(); - Bg_CopyToTilemapRect(displayData->bgConfig, + Bg_CopyToTilemapRect(displayManager->bgConfig, BG_LAYER_SUB_2, POKETCH_CLOCK_HOURS_DIGIT_X, POKETCH_CLOCK_HOURS_DIGIT_Y, POKETCH_CLOCK_DIGIT_WIDTH, POKETCH_CLOCK_DIGIT_HEIGHT, - displayData->digitsTilemap, + displayManager->digitsTilemap, POKETCH_CLOCK_DIGIT_WIDTH * tensDigitOffset, 0, - (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS), + POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS, POKETCH_CLOCK_DIGIT_HEIGHT); - Bg_CopyToTilemapRect(displayData->bgConfig, + Bg_CopyToTilemapRect(displayManager->bgConfig, BG_LAYER_SUB_2, - (POKETCH_CLOCK_HOURS_DIGIT_X + POKETCH_CLOCK_DIGIT_WIDTH + POKETCH_CLOCK_DIGIT_GAP), + POKETCH_CLOCK_HOURS_DIGIT_X + POKETCH_CLOCK_DIGIT_WIDTH + POKETCH_CLOCK_DIGIT_GAP, POKETCH_CLOCK_HOURS_DIGIT_Y, POKETCH_CLOCK_DIGIT_WIDTH, POKETCH_CLOCK_DIGIT_HEIGHT, - displayData->digitsTilemap, + displayManager->digitsTilemap, POKETCH_CLOCK_DIGIT_WIDTH * onesDigitOffset, 0, - (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS), + POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS, POKETCH_CLOCK_DIGIT_HEIGHT); - CP_SetDiv32_32(displayData->clockData->time.minute, POKETCH_NUM_CLOCK_DIGITS); + CP_SetDiv32_32(displayManager->watchData->time.minute, POKETCH_NUM_CLOCK_DIGITS); tensDigitOffset = CP_GetDivResult32(); onesDigitOffset = CP_GetDivRemainder32(); - Bg_CopyToTilemapRect(displayData->bgConfig, + Bg_CopyToTilemapRect(displayManager->bgConfig, BG_LAYER_SUB_2, - POKETCH_CLOCK_MINUETS_DIGIT_X, - POKETCH_CLOCK_MINUETS_DIGIT_Y, + POKETCH_CLOCK_MINUTES_DIGIT_X, + POKETCH_CLOCK_MINUTES_DIGIT_Y, POKETCH_CLOCK_DIGIT_WIDTH, POKETCH_CLOCK_DIGIT_HEIGHT, - displayData->digitsTilemap, + displayManager->digitsTilemap, POKETCH_CLOCK_DIGIT_WIDTH * tensDigitOffset, 0, - (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS), + POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS, POKETCH_CLOCK_DIGIT_HEIGHT); - Bg_CopyToTilemapRect(displayData->bgConfig, + Bg_CopyToTilemapRect(displayManager->bgConfig, BG_LAYER_SUB_2, - (POKETCH_CLOCK_MINUETS_DIGIT_X + POKETCH_CLOCK_DIGIT_WIDTH + POKETCH_CLOCK_DIGIT_GAP), - POKETCH_CLOCK_MINUETS_DIGIT_Y, + POKETCH_CLOCK_MINUTES_DIGIT_X + POKETCH_CLOCK_DIGIT_WIDTH + POKETCH_CLOCK_DIGIT_GAP, + POKETCH_CLOCK_MINUTES_DIGIT_Y, POKETCH_CLOCK_DIGIT_WIDTH, POKETCH_CLOCK_DIGIT_HEIGHT, - displayData->digitsTilemap, + displayManager->digitsTilemap, POKETCH_CLOCK_DIGIT_WIDTH * onesDigitOffset, 0, - (POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS), + POKETCH_CLOCK_DIGIT_WIDTH * POKETCH_NUM_CLOCK_DIGITS, POKETCH_CLOCK_DIGIT_HEIGHT); } diff --git a/src/poketch_digital_clock/poketch_digital_clock_manager.c b/src/poketch_digital_clock/poketch_digital_clock_manager.c index 298ff03075..18c4936c86 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_manager.c +++ b/src/poketch_digital_clock/poketch_digital_clock_manager.c @@ -13,17 +13,19 @@ #include "sys_task_manager.h" #include "touch_screen.h" +// App Tasks +#define APP_TASK_LOAD 0 +#define APP_TASK_UPDATE 1 +#define APP_TASK_UNLOAD 2 + +// Touch Screen Boundaries #define BACKLIGHT_BUTTON_MIN_Y 0x10 #define BACKLIGHT_BUTTON_MAX_Y 0xAF #define BACKLIGHT_BUTTON_MIN_X 0x10 #define BACKLIGHT_BUTTON_MAX_X 0xCF -#define APP_TASK_LOAD_APP 0 -#define APP_TASK_UPDATE_APP 1 -#define APP_TASK_UNLOAD_APP 2 - typedef struct { - u8 appTasktaskID; + u8 activeTask; u8 state; u8 shutdown; u8 unused_0; // Assigned value of 1 @@ -33,40 +35,40 @@ typedef struct { u8 backlightChange; u8 unused_2[8]; PoketchButtonManager *buttonManager; - ClockData clockData; - DisplayData *displayData; + WatchData watchData; + DisplayManager *displayManager; PoketchSystem *poketchSys; } AppData; static void NitroStaticInit(void); -static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID); -static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID); -static void PoketchDigitalClock_FreeAppData(AppData *appData); -static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *taskManager); -static void PoketchDigitalClock_Shutdown(void *appData); -static void PoketchDigitalClock_ToggleBacklight(u32 btnNumber, u32 buttonState, u32 touchState, void *appDataIn); -static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 taskID); -static BOOL PoketchDigitalClock_LoadApp(AppData *appData); -static BOOL PoketchDigitalClock_UpdateApp(AppData *appData); -static BOOL PoketchDigitalClock_UnloadApp(AppData *appData); +static BOOL Init(void **appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID); +static BOOL SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID); +static void FreeAppData(AppData *appData); +static void Main(SysTask *sysTask, void *taskManager); +static void Exit(void *appData); +static void ToggleBacklight(u32 btnNumber, u32 buttonState, u32 touchState, void *appDataIn); +static void ChangeActiveTask(AppData *appData, u32 taskID); +static BOOL LoadApp(AppData *appData); +static BOOL UpdateApp(AppData *appData); +static BOOL UnloadApp(AppData *appData); -static const TouchScreenHitTable digital_clock_buttons[] = { +static const TouchScreenHitTable sButtonHitTable[] = { { BACKLIGHT_BUTTON_MIN_Y, BACKLIGHT_BUTTON_MAX_Y, BACKLIGHT_BUTTON_MIN_X, BACKLIGHT_BUTTON_MAX_X } }; static void NitroStaticInit(void) { - PoketchSystem_SetAppFunctions(PoketchDigitalClock_Init, PoketchDigitalClock_Shutdown); + PoketchSystem_SetAppFunctions(Init, Exit); } -static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) +static BOOL Init(void **appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) { - AppData *newAppData = (AppData *)Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(AppData)); + AppData *newAppData = Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(AppData)); if (newAppData != NULL) { - if (PoketchDigitalClock_SetupAppData(newAppData, poketchSys, bgConfig, appID) - && SysTask_Start(PoketchDigitalClock_AppTaskRunner, newAppData, 1) != NULL) { + if (SetupAppData(newAppData, poketchSys, bgConfig, appID) + && SysTask_Start(Main, newAppData, 1)) { *appData = newAppData; return TRUE; } @@ -77,30 +79,30 @@ static BOOL PoketchDigitalClock_Init(void **appData, PoketchSystem *poketchSys, return FALSE; } -static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) +static BOOL SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) { - if (PoketchDigitalClock_SetupDisplayData(&(appData->displayData), &(appData->clockData), bgConfig)) { - appData->appTasktaskID = APP_TASK_LOAD_APP; + if (PoketchDigitalClock_SetupDisplayManager(&(appData->displayManager), &(appData->watchData), bgConfig)) { + appData->activeTask = APP_TASK_LOAD; appData->state = 0; appData->shutdown = FALSE; appData->unused_0 = 1; appData->backlightChange = FALSE; - appData->clockData.backlightActive = FALSE; + appData->watchData.backlightActive = FALSE; - GetCurrentTime(&(appData->clockData.time)); + GetCurrentTime(&(appData->watchData.time)); - if (appData->clockData.time.hour >= 24) { - appData->clockData.time.hour %= 24; + if (appData->watchData.time.hour >= 24) { + appData->watchData.time.hour %= 24; } - if (appData->clockData.time.minute >= 60) { - appData->clockData.time.hour %= 60; - appData->clockData.time.minute %= 60; + if (appData->watchData.time.minute >= 60) { + appData->watchData.time.hour %= 60; + appData->watchData.time.minute %= 60; } - appData->minute = appData->clockData.time.minute; - appData->hour = appData->clockData.time.hour; - appData->buttonManager = PoketchButtonManager_New(digital_clock_buttons, NELEMS(digital_clock_buttons), PoketchDigitalClock_ToggleBacklight, appData, HEAP_ID_POKETCH_APP); + appData->minute = appData->watchData.time.minute; + appData->hour = appData->watchData.time.hour; + appData->buttonManager = PoketchButtonManager_New(sButtonHitTable, NELEMS(sButtonHitTable), ToggleBacklight, appData, HEAP_ID_POKETCH_APP); if (appData->buttonManager == NULL) { return FALSE; @@ -113,77 +115,77 @@ static BOOL PoketchDigitalClock_SetupAppData(AppData *appData, PoketchSystem *po return FALSE; } -static void PoketchDigitalClock_FreeAppData(AppData *appData) +static void FreeAppData(AppData *appData) { - PoketchDigitalClock_FreeDisplayData(appData->displayData); + PoketchDigitalClock_FreeDisplayManager(appData->displayManager); PoketchButtonManager_Free(appData->buttonManager); Heap_FreeToHeap(appData); } -static void PoketchDigitalClock_AppTaskRunner(SysTask *sysTask, void *callbackData) +static void Main(SysTask *sysTask, void *callbackData) { static BOOL (*const funcArray[])(AppData *) = { - PoketchDigitalClock_LoadApp, - PoketchDigitalClock_UpdateApp, - PoketchDigitalClock_UnloadApp, + LoadApp, + UpdateApp, + UnloadApp, }; - AppData *appData = (AppData *)callbackData; + AppData *appData = callbackData; - if (appData->appTasktaskID < NELEMS(funcArray)) { + if (appData->activeTask < NELEMS(funcArray)) { PoketechSystem_UpdateButtonManager(appData->poketchSys, appData->buttonManager); - if (funcArray[appData->appTasktaskID](appData)) { - PoketchDigitalClock_FreeAppData(appData); + if (funcArray[appData->activeTask](appData)) { + FreeAppData(appData); SysTask_Done(sysTask); PoketchSystem_NotifyAppUnloaded(appData->poketchSys); } } } -static void PoketchDigitalClock_Shutdown(void *appData) +static void Exit(void *appData) { ((AppData *)appData)->shutdown = TRUE; } -static void PoketchDigitalClock_ToggleBacklight(u32 btnNumber, u32 buttonState, u32 touchState, void *appDataIn) +static void ToggleBacklight(u32 btnNumber, u32 buttonState, u32 touchState, void *appDataIn) { - AppData *appData = (AppData *)appDataIn; + AppData *appData = appDataIn; switch (touchState) { case TRUE: - appData->clockData.backlightActive = TRUE; + appData->watchData.backlightActive = TRUE; appData->backlightChange = TRUE; break; case FALSE: - appData->clockData.backlightActive = FALSE; + appData->watchData.backlightActive = FALSE; appData->backlightChange = TRUE; break; } } -static void PoketchDigitalClock_SetAppTaskFunction(AppData *appData, u32 taskID) +static void ChangeActiveTask(AppData *appData, u32 taskID) { if (appData->shutdown == FALSE) { - appData->appTasktaskID = taskID; + appData->activeTask = taskID; } else { - appData->appTasktaskID = APP_TASK_UNLOAD_APP; + appData->activeTask = APP_TASK_UNLOAD; } appData->state = 0; } -static BOOL PoketchDigitalClock_LoadApp(AppData *appData) +static BOOL LoadApp(AppData *appData) { switch (appData->state) { case 0: - PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_SETUP_BACKGROUND); + PoketchDigitalClock_StartDisplayTask(appData->displayManager, POKETCH_TASK_SETUP_BACKGROUND); appData->state++; break; case 1: - if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, SYS_TASK_FUNC_SETUP_BACKGROUND)) { + if (PoketchDigitalClock_DisplayTaskIsNotActive(appData->displayManager, POKETCH_TASK_SETUP_BACKGROUND)) { PoketchSystem_NotifyAppLoaded(appData->poketchSys); - PoketchDigitalClock_SetAppTaskFunction(appData, APP_TASK_UPDATE_APP); + ChangeActiveTask(appData, APP_TASK_UPDATE); } break; } @@ -191,41 +193,41 @@ static BOOL PoketchDigitalClock_LoadApp(AppData *appData) return FALSE; } -static BOOL PoketchDigitalClock_UpdateApp(AppData *appData) +static BOOL UpdateApp(AppData *appData) { if (appData->shutdown) { - PoketchDigitalClock_SetAppTaskFunction(appData, APP_TASK_UNLOAD_APP); + ChangeActiveTask(appData, APP_TASK_UNLOAD); return FALSE; } if (appData->backlightChange) { appData->backlightChange = FALSE; - PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_TOGGLE_BACKLIGHT_PALETTE); + PoketchDigitalClock_StartDisplayTask(appData->displayManager, POKETCH_TASK_TOGGLE_BACKLIGHT); } - if (PoketchDigitalClock_TaskIsNotActive(appData->displayData, SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS)) { - appData->minute = appData->clockData.time.minute; - appData->hour = appData->clockData.time.hour; - GetCurrentTime(&(appData->clockData.time)); + if (PoketchDigitalClock_DisplayTaskIsNotActive(appData->displayManager, POKETCH_TASK_UPDATE_WATCH_DIGITS)) { + appData->minute = appData->watchData.time.minute; + appData->hour = appData->watchData.time.hour; + GetCurrentTime(&(appData->watchData.time)); - if ((appData->minute != appData->clockData.time.minute) || (appData->hour != appData->clockData.time.hour)) { - PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_UPDATE_CLOCK_DIGITS); + if ((appData->minute != appData->watchData.time.minute) || (appData->hour != appData->watchData.time.hour)) { + PoketchDigitalClock_StartDisplayTask(appData->displayManager, POKETCH_TASK_UPDATE_WATCH_DIGITS); } } return FALSE; } -static BOOL PoketchDigitalClock_UnloadApp(AppData *appData) +static BOOL UnloadApp(AppData *appData) { switch (appData->state) { case 0: - PoketchDigitalClock_StartTask(appData->displayData, SYS_TASK_FUNC_FREE_BACKGROUND); + PoketchDigitalClock_StartDisplayTask(appData->displayManager, POKETCH_TASK_FREE_BACKGROUND); appData->state++; break; case 1: - if (PoketchDigitalClock_NoActiveTasks(appData->displayData)) { + if (PoketchDigitalClock_NoActiveDisplayTasks(appData->displayManager)) { return TRUE; } From a322a18518d2e1ff904dcdb6566c9bdd91368ab9 Mon Sep 17 00:00:00 2001 From: Lucie Date: Tue, 18 Feb 2025 12:55:42 +0000 Subject: [PATCH 13/15] renamed files --- .../display.h} | 16 +++++++-------- platinum.us/main.lsf | 4 ++-- src/meson.build | 4 ++-- .../display.c} | 12 +++++------ .../main.c} | 20 +++++++++---------- 5 files changed, 28 insertions(+), 28 deletions(-) rename include/{poketch_digital_clock/poketch_digital_clock_graphics.h => poketch_digital_watch/display.h} (74%) rename src/{poketch_digital_clock/poketch_digital_clock_graphics.c => poketch_digital_watch/display.c} (95%) rename src/{poketch_digital_clock/poketch_digital_clock_manager.c => poketch_digital_watch/main.c} (90%) diff --git a/include/poketch_digital_clock/poketch_digital_clock_graphics.h b/include/poketch_digital_watch/display.h similarity index 74% rename from include/poketch_digital_clock/poketch_digital_clock_graphics.h rename to include/poketch_digital_watch/display.h index b3035f0b88..0b7ccc6375 100644 --- a/include/poketch_digital_clock/poketch_digital_clock_graphics.h +++ b/include/poketch_digital_watch/display.h @@ -1,5 +1,5 @@ -#ifndef POKEPLATINUM_POKETCH_DIGITAL_CLOCK_GRAPHICS_H -#define POKEPLATINUM_POKETCH_DIGITAL_CLOCK_GRAPHICS_H +#ifndef POKEPLATINUM_POKETCH_DIGITAL_WATCH_DISPLAY_H +#define POKEPLATINUM_POKETCH_DIGITAL_WATCH_DISPLAY_H #include "bg_window.h" @@ -41,10 +41,10 @@ typedef struct DisplayManager { u16 digitsTilemap[POKETCH_DIGIT_TILEMAP_SIZE_BYTES]; } DisplayManager; -BOOL PoketchDigitalClock_SetupDisplayManager(DisplayManager **displayManager, const WatchData *watchData, BgConfig *bgConfig); -void PoketchDigitalClock_FreeDisplayManager(DisplayManager *displayManager); -void PoketchDigitalClock_StartDisplayTask(DisplayManager *displayManager, u32 taskID); -BOOL PoketchDigitalClock_DisplayTaskIsNotActive(DisplayManager *displayManager, u32 taskID); -BOOL PoketchDigitalClock_NoActiveDisplayTasks(DisplayManager *displayManager); +BOOL PoketchDigitalWatch_SetupDisplayManager(DisplayManager **displayManager, const WatchData *watchData, BgConfig *bgConfig); +void PoketchDigitalWatch_FreeDisplayManager(DisplayManager *displayManager); +void PoketchDigitalWatch_StartDisplayTask(DisplayManager *displayManager, u32 taskID); +BOOL PoketchDigitalWatch_DisplayTaskIsNotActive(DisplayManager *displayManager, u32 taskID); +BOOL PoketchDigitalWatch_NoActiveDisplayTasks(DisplayManager *displayManager); -#endif // POKEPLATINUM_POKETCH_DIGITAL_CLOCK_GRAPHICS_H +#endif // POKEPLATINUM_POKETCH_DIGITAL_WATCH_DISPLAY_H diff --git a/platinum.us/main.lsf b/platinum.us/main.lsf index 49d4811d41..3519e15fb7 100644 --- a/platinum.us/main.lsf +++ b/platinum.us/main.lsf @@ -881,8 +881,8 @@ Overlay overlay25 Overlay poketch_digital_clock { After overlay25 - Object main.nef.p/src_poketch_digital_clock_poketch_digital_clock_manager.c.o - Object main.nef.p/src_poketch_digital_clock_poketch_digital_clock_graphics.c.o + Object main.nef.p/src_poketch_digital_watch_main.c.o + Object main.nef.p/src_poketch_digital_watch_display.c.o } Overlay overlay27 diff --git a/src/meson.build b/src/meson.build index 890e541125..4337438061 100644 --- a/src/meson.build +++ b/src/meson.build @@ -667,8 +667,8 @@ pokeplatinum_c = files( 'overlay025/ov25_02255540.c', 'overlay025/poketch_button.c', 'overlay025/ov25_02255DBC.c', - 'poketch_digital_clock/poketch_digital_clock_manager.c', - 'poketch_digital_clock/poketch_digital_clock_graphics.c', + 'poketch_digital_watch/main.c', + 'poketch_digital_watch/display.c', 'overlay027/ov27_022561C0.c', 'overlay027/ov27_0225680C.c', 'overlay028/ov28_022561C0.c', diff --git a/src/poketch_digital_clock/poketch_digital_clock_graphics.c b/src/poketch_digital_watch/display.c similarity index 95% rename from src/poketch_digital_clock/poketch_digital_clock_graphics.c rename to src/poketch_digital_watch/display.c index bd853da9c8..54577748cd 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_graphics.c +++ b/src/poketch_digital_watch/display.c @@ -1,4 +1,4 @@ -#include "poketch_digital_clock/poketch_digital_clock_graphics.h" +#include "poketch_digital_watch/display.h" #include #include @@ -19,7 +19,7 @@ static void ToggleBacklightPalette(SysTask *sysTask, void *taskManager); static void FreeBackground(SysTask *sysTask, void *taskManager); static void DrawClockDigits(DisplayManager *displayManager); -BOOL PoketchDigitalClock_SetupDisplayManager(DisplayManager **displayManager, const WatchData *watchData, BgConfig *bgConfig) +BOOL PoketchDigitalWatch_SetupDisplayManager(DisplayManager **displayManager, const WatchData *watchData, BgConfig *bgConfig) { DisplayManager *newDisplayManager = Heap_AllocFromHeap(HEAP_ID_POKETCH_APP, sizeof(DisplayManager)); @@ -63,7 +63,7 @@ static void CopyDigitTilemap(const u16 *rawScreenData, u16 *dst) } } -void PoketchDigitalClock_FreeDisplayManager(DisplayManager *displayManager) +void PoketchDigitalWatch_FreeDisplayManager(DisplayManager *displayManager) { if (displayManager != NULL) { Heap_FreeToHeap(displayManager); @@ -78,17 +78,17 @@ static const PoketchTask sDisplayTasks[] = { { 0, NULL, 0 } }; -void PoketchDigitalClock_StartDisplayTask(DisplayManager *displayManager, u32 taskID) +void PoketchDigitalWatch_StartDisplayTask(DisplayManager *displayManager, u32 taskID) { PoketchTask_Start(sDisplayTasks, taskID, displayManager, displayManager->watchData, displayManager->taskList, 2, HEAP_ID_POKETCH_APP); } -BOOL PoketchDigitalClock_DisplayTaskIsNotActive(DisplayManager *displayManager, u32 taskID) +BOOL PoketchDigitalWatch_DisplayTaskIsNotActive(DisplayManager *displayManager, u32 taskID) { return PoketchTask_TaskIsNotActive(displayManager->taskList, taskID); } -BOOL PoketchDigitalClock_NoActiveDisplayTasks(DisplayManager *displayManager) +BOOL PoketchDigitalWatch_NoActiveDisplayTasks(DisplayManager *displayManager) { return PoketchTask_NoActiveTasks(displayManager->taskList); } diff --git a/src/poketch_digital_clock/poketch_digital_clock_manager.c b/src/poketch_digital_watch/main.c similarity index 90% rename from src/poketch_digital_clock/poketch_digital_clock_manager.c rename to src/poketch_digital_watch/main.c index 18c4936c86..a9ac72ccdc 100644 --- a/src/poketch_digital_clock/poketch_digital_clock_manager.c +++ b/src/poketch_digital_watch/main.c @@ -4,7 +4,7 @@ #include "overlay025/poketch_button.h" #include "overlay025/poketch_system.h" -#include "poketch_digital_clock/poketch_digital_clock_graphics.h" +#include "poketch_digital_watch/display.h" #include "bg_window.h" #include "heap.h" @@ -81,7 +81,7 @@ static BOOL Init(void **appData, PoketchSystem *poketchSys, BgConfig *bgConfig, static BOOL SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig *bgConfig, u32 appID) { - if (PoketchDigitalClock_SetupDisplayManager(&(appData->displayManager), &(appData->watchData), bgConfig)) { + if (PoketchDigitalWatch_SetupDisplayManager(&(appData->displayManager), &(appData->watchData), bgConfig)) { appData->activeTask = APP_TASK_LOAD; appData->state = 0; appData->shutdown = FALSE; @@ -117,7 +117,7 @@ static BOOL SetupAppData(AppData *appData, PoketchSystem *poketchSys, BgConfig * static void FreeAppData(AppData *appData) { - PoketchDigitalClock_FreeDisplayManager(appData->displayManager); + PoketchDigitalWatch_FreeDisplayManager(appData->displayManager); PoketchButtonManager_Free(appData->buttonManager); Heap_FreeToHeap(appData); } @@ -179,11 +179,11 @@ static BOOL LoadApp(AppData *appData) { switch (appData->state) { case 0: - PoketchDigitalClock_StartDisplayTask(appData->displayManager, POKETCH_TASK_SETUP_BACKGROUND); + PoketchDigitalWatch_StartDisplayTask(appData->displayManager, POKETCH_TASK_SETUP_BACKGROUND); appData->state++; break; case 1: - if (PoketchDigitalClock_DisplayTaskIsNotActive(appData->displayManager, POKETCH_TASK_SETUP_BACKGROUND)) { + if (PoketchDigitalWatch_DisplayTaskIsNotActive(appData->displayManager, POKETCH_TASK_SETUP_BACKGROUND)) { PoketchSystem_NotifyAppLoaded(appData->poketchSys); ChangeActiveTask(appData, APP_TASK_UPDATE); } @@ -202,16 +202,16 @@ static BOOL UpdateApp(AppData *appData) if (appData->backlightChange) { appData->backlightChange = FALSE; - PoketchDigitalClock_StartDisplayTask(appData->displayManager, POKETCH_TASK_TOGGLE_BACKLIGHT); + PoketchDigitalWatch_StartDisplayTask(appData->displayManager, POKETCH_TASK_TOGGLE_BACKLIGHT); } - if (PoketchDigitalClock_DisplayTaskIsNotActive(appData->displayManager, POKETCH_TASK_UPDATE_WATCH_DIGITS)) { + if (PoketchDigitalWatch_DisplayTaskIsNotActive(appData->displayManager, POKETCH_TASK_UPDATE_WATCH_DIGITS)) { appData->minute = appData->watchData.time.minute; appData->hour = appData->watchData.time.hour; GetCurrentTime(&(appData->watchData.time)); if ((appData->minute != appData->watchData.time.minute) || (appData->hour != appData->watchData.time.hour)) { - PoketchDigitalClock_StartDisplayTask(appData->displayManager, POKETCH_TASK_UPDATE_WATCH_DIGITS); + PoketchDigitalWatch_StartDisplayTask(appData->displayManager, POKETCH_TASK_UPDATE_WATCH_DIGITS); } } @@ -222,12 +222,12 @@ static BOOL UnloadApp(AppData *appData) { switch (appData->state) { case 0: - PoketchDigitalClock_StartDisplayTask(appData->displayManager, POKETCH_TASK_FREE_BACKGROUND); + PoketchDigitalWatch_StartDisplayTask(appData->displayManager, POKETCH_TASK_FREE_BACKGROUND); appData->state++; break; case 1: - if (PoketchDigitalClock_NoActiveDisplayTasks(appData->displayManager)) { + if (PoketchDigitalWatch_NoActiveDisplayTasks(appData->displayManager)) { return TRUE; } From 1ba6d4ef66aaa76ce1e1b98ab9e7b06a3364377d Mon Sep 17 00:00:00 2001 From: Lucie Date: Tue, 18 Feb 2025 12:59:18 +0000 Subject: [PATCH 14/15] renamed macros --- include/poketch_digital_watch/display.h | 8 ++++---- src/poketch_digital_watch/display.c | 8 ++++---- src/poketch_digital_watch/main.c | 12 ++++++------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/include/poketch_digital_watch/display.h b/include/poketch_digital_watch/display.h index 0b7ccc6375..9d6b7ce292 100644 --- a/include/poketch_digital_watch/display.h +++ b/include/poketch_digital_watch/display.h @@ -6,10 +6,10 @@ // Display Tasks #define NUM_TASK_SLOTS 8 -#define POKETCH_TASK_SETUP_BACKGROUND 0 -#define POKETCH_TASK_UPDATE_WATCH_DIGITS 1 -#define POKETCH_TASK_TOGGLE_BACKLIGHT 2 -#define POKETCH_TASK_FREE_BACKGROUND 3 +#define DISPLAY_TASK_SETUP_BACKGROUND 0 +#define DISPLAY_TASK_UPDATE_WATCH_DIGITS 1 +#define DISPLAY_TASK_TOGGLE_BACKLIGHT 2 +#define DISPLAY_TASK_FREE_BACKGROUND 3 // Graphics #define POKETCH_DIGITAL_WATCH_NARC_TILES_IDX 23 diff --git a/src/poketch_digital_watch/display.c b/src/poketch_digital_watch/display.c index 54577748cd..8d0b67d63c 100644 --- a/src/poketch_digital_watch/display.c +++ b/src/poketch_digital_watch/display.c @@ -71,10 +71,10 @@ void PoketchDigitalWatch_FreeDisplayManager(DisplayManager *displayManager) } static const PoketchTask sDisplayTasks[] = { - { POKETCH_TASK_SETUP_BACKGROUND, SetupBackground, 0 }, - { POKETCH_TASK_UPDATE_WATCH_DIGITS, UpdateClockDigits, 0 }, - { POKETCH_TASK_TOGGLE_BACKLIGHT, ToggleBacklightPalette, 0 }, - { POKETCH_TASK_FREE_BACKGROUND, FreeBackground, 0 }, + { DISPLAY_TASK_SETUP_BACKGROUND, SetupBackground, 0 }, + { DISPLAY_TASK_UPDATE_WATCH_DIGITS, UpdateClockDigits, 0 }, + { DISPLAY_TASK_TOGGLE_BACKLIGHT, ToggleBacklightPalette, 0 }, + { DISPLAY_TASK_FREE_BACKGROUND, FreeBackground, 0 }, { 0, NULL, 0 } }; diff --git a/src/poketch_digital_watch/main.c b/src/poketch_digital_watch/main.c index a9ac72ccdc..56f449429b 100644 --- a/src/poketch_digital_watch/main.c +++ b/src/poketch_digital_watch/main.c @@ -179,11 +179,11 @@ static BOOL LoadApp(AppData *appData) { switch (appData->state) { case 0: - PoketchDigitalWatch_StartDisplayTask(appData->displayManager, POKETCH_TASK_SETUP_BACKGROUND); + PoketchDigitalWatch_StartDisplayTask(appData->displayManager, DISPLAY_TASK_SETUP_BACKGROUND); appData->state++; break; case 1: - if (PoketchDigitalWatch_DisplayTaskIsNotActive(appData->displayManager, POKETCH_TASK_SETUP_BACKGROUND)) { + if (PoketchDigitalWatch_DisplayTaskIsNotActive(appData->displayManager, DISPLAY_TASK_SETUP_BACKGROUND)) { PoketchSystem_NotifyAppLoaded(appData->poketchSys); ChangeActiveTask(appData, APP_TASK_UPDATE); } @@ -202,16 +202,16 @@ static BOOL UpdateApp(AppData *appData) if (appData->backlightChange) { appData->backlightChange = FALSE; - PoketchDigitalWatch_StartDisplayTask(appData->displayManager, POKETCH_TASK_TOGGLE_BACKLIGHT); + PoketchDigitalWatch_StartDisplayTask(appData->displayManager, DISPLAY_TASK_TOGGLE_BACKLIGHT); } - if (PoketchDigitalWatch_DisplayTaskIsNotActive(appData->displayManager, POKETCH_TASK_UPDATE_WATCH_DIGITS)) { + if (PoketchDigitalWatch_DisplayTaskIsNotActive(appData->displayManager, DISPLAY_TASK_UPDATE_WATCH_DIGITS)) { appData->minute = appData->watchData.time.minute; appData->hour = appData->watchData.time.hour; GetCurrentTime(&(appData->watchData.time)); if ((appData->minute != appData->watchData.time.minute) || (appData->hour != appData->watchData.time.hour)) { - PoketchDigitalWatch_StartDisplayTask(appData->displayManager, POKETCH_TASK_UPDATE_WATCH_DIGITS); + PoketchDigitalWatch_StartDisplayTask(appData->displayManager, DISPLAY_TASK_UPDATE_WATCH_DIGITS); } } @@ -222,7 +222,7 @@ static BOOL UnloadApp(AppData *appData) { switch (appData->state) { case 0: - PoketchDigitalWatch_StartDisplayTask(appData->displayManager, POKETCH_TASK_FREE_BACKGROUND); + PoketchDigitalWatch_StartDisplayTask(appData->displayManager, DISPLAY_TASK_FREE_BACKGROUND); appData->state++; break; From 6ec00bbabea542cd0f58db9eb7accf1dc5ff8282 Mon Sep 17 00:00:00 2001 From: Lucie Date: Thu, 20 Feb 2025 13:41:09 +0000 Subject: [PATCH 15/15] updated overlay name --- platinum.us/main.lsf | 2 +- platinum.us/sbins.sha1 | 2 +- src/overlay025/poketch_system.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/platinum.us/main.lsf b/platinum.us/main.lsf index 3519e15fb7..87d9bda17e 100644 --- a/platinum.us/main.lsf +++ b/platinum.us/main.lsf @@ -878,7 +878,7 @@ Overlay overlay25 Object main.nef.p/src_overlay025_ov25_02255DBC.c.o } -Overlay poketch_digital_clock +Overlay poketch_digital_watch { After overlay25 Object main.nef.p/src_poketch_digital_watch_main.c.o diff --git a/platinum.us/sbins.sha1 b/platinum.us/sbins.sha1 index 64b40debfb..b0892b063c 100644 --- a/platinum.us/sbins.sha1 +++ b/platinum.us/sbins.sha1 @@ -25,7 +25,7 @@ d414d37a9b80f1d346666ad9ef5ba635d5ebb552 *overlay19.sbin 2e8fcd133e2736d90dae6e23ac9a669cefc1a7c8 *overlay23.sbin cc4bb361071632627532c48af9a0b37c1751670a *pre_poketch_subscreen.sbin 0fbd0432432d42462b9c02f07e30634987708dc6 *overlay25.sbin -44e45c2b6ec6aa74142550f25f770954b8e0d555 *poketch_digital_clock.sbin +44e45c2b6ec6aa74142550f25f770954b8e0d555 *poketch_digital_watch.sbin 3301af166bc328d4df4412dbf6c740635151867c *overlay27.sbin 98a048c770a311a3fd756ad725997964fdd14aa8 *overlay28.sbin ca63341e12e782896fc58d5ce6fefa2170b5e921 *overlay29.sbin diff --git a/src/overlay025/poketch_system.c b/src/overlay025/poketch_system.c index d3b531b275..452f03d422 100644 --- a/src/overlay025/poketch_system.c +++ b/src/overlay025/poketch_system.c @@ -27,7 +27,7 @@ #include "unk_0201E3D8.h" #include "unk_02099D44.h" -FS_EXTERN_OVERLAY(poketch_digital_clock); +FS_EXTERN_OVERLAY(poketch_digital_watch); FS_EXTERN_OVERLAY(overlay27); FS_EXTERN_OVERLAY(overlay28); FS_EXTERN_OVERLAY(overlay29); @@ -85,7 +85,7 @@ static const struct { int appID; FSOverlayID overlayID; } sAppOverlayIDs[] = { - { POKETCH_APPID_DIGITALWATCH, FS_OVERLAY_ID(poketch_digital_clock) }, + { POKETCH_APPID_DIGITALWATCH, FS_OVERLAY_ID(poketch_digital_watch) }, { POKETCH_APPID_UNUSED_STOPWATCH, FS_OVERLAY_ID(overlay27) }, { POKETCH_APPID_CALCULATOR, FS_OVERLAY_ID(overlay28) }, { POKETCH_APPID_MEMOPAD, FS_OVERLAY_ID(overlay29) },