From a891862aca457a59d8f9a6b4c4ac822826aceb06 Mon Sep 17 00:00:00 2001 From: tgsm Date: Tue, 17 Oct 2023 11:20:12 -0500 Subject: [PATCH] Decompile unk_02007200 -> systask_environment --- asm/include/overlay_01_021EFB38.inc | 4 +-- asm/include/overlay_01_021F4464.inc | 4 +-- asm/include/overlay_01_021F6830.inc | 4 +-- asm/include/overlay_05.inc | 4 +-- asm/include/overlay_08.inc | 4 +-- asm/include/overlay_106.inc | 4 +-- asm/include/overlay_27.inc | 4 +-- asm/include/overlay_28.inc | 4 +-- asm/include/overlay_29.inc | 4 +-- asm/include/overlay_30.inc | 4 +-- asm/include/overlay_31.inc | 4 +-- asm/include/overlay_32.inc | 4 +-- asm/include/overlay_33.inc | 4 +-- asm/include/overlay_34.inc | 4 +-- asm/include/overlay_41.inc | 4 +-- asm/include/overlay_70.inc | 4 +-- asm/include/overlay_80_0223A00C.inc | 4 +-- asm/include/render_window.inc | 4 +-- asm/include/unk_02007200.inc | 4 +-- asm/include/unk_020163E0.inc | 4 +-- asm/include/unk_02082908.inc | 4 +-- asm/overlay_01_021EFB38.s | 4 +-- asm/overlay_01_021F4464.s | 4 +-- asm/overlay_01_021F6830.s | 4 +-- asm/overlay_05.s | 4 +-- asm/overlay_08.s | 8 ++--- asm/overlay_106.s | 4 +-- asm/overlay_27.s | 8 ++--- asm/overlay_28.s | 4 +-- asm/overlay_29.s | 4 +-- asm/overlay_30.s | 4 +-- asm/overlay_31.s | 4 +-- asm/overlay_32.s | 4 +-- asm/overlay_33.s | 4 +-- asm/overlay_34.s | 4 +-- asm/overlay_41.s | 20 ++++++------ asm/overlay_70.s | 8 ++--- asm/overlay_80_0223A00C.s | 4 +-- asm/render_window.s | 4 +-- asm/unk_02007200.s | 49 ----------------------------- asm/unk_020163E0.s | 8 ++--- asm/unk_02082908.s | 8 ++--- include/systask_environment.h | 10 ++++++ main.lsf | 2 +- src/systask_environment.c | 28 +++++++++++++++++ 45 files changed, 139 insertions(+), 150 deletions(-) delete mode 100644 asm/unk_02007200.s create mode 100644 include/systask_environment.h create mode 100644 src/systask_environment.c diff --git a/asm/include/overlay_01_021EFB38.inc b/asm/include/overlay_01_021EFB38.inc index f2def8b9e..f7194d437 100644 --- a/asm/include/overlay_01_021EFB38.inc +++ b/asm/include/overlay_01_021EFB38.inc @@ -2,8 +2,8 @@ #pragma once .public UnloadOverlayByID .public HandleLoadOverlay -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public NARC_New .public NARC_Delete .public GfGfxLoader_LoadCharDataFromOpenNarc diff --git a/asm/include/overlay_01_021F4464.inc b/asm/include/overlay_01_021F4464.inc index b73d48747..a8ee6e6ca 100644 --- a/asm/include/overlay_01_021F4464.inc +++ b/asm/include/overlay_01_021F4464.inc @@ -1,7 +1,7 @@ #include #pragma once -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public sub_0200E374 .public DestroySysTask .public sub_0201F988 diff --git a/asm/include/overlay_01_021F6830.inc b/asm/include/overlay_01_021F6830.inc index 3b7e1cde9..69f7996aa 100644 --- a/asm/include/overlay_01_021F6830.inc +++ b/asm/include/overlay_01_021F6830.inc @@ -2,8 +2,8 @@ #pragma once .public UnloadOverlayByID .public HandleLoadOverlay -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public BeginNormalPaletteFade .public IsPaletteFadeFinished .public sub_0201F988 diff --git a/asm/include/overlay_05.inc b/asm/include/overlay_05.inc index d69637619..8cb593e8a 100644 --- a/asm/include/overlay_05.inc +++ b/asm/include/overlay_05.inc @@ -13,8 +13,8 @@ .public sub_0200398C .public sub_02003B74 .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public NARC_New .public NARC_Delete .public NARC_AllocAndReadWholeMember diff --git a/asm/include/overlay_08.inc b/asm/include/overlay_08.inc index d12d34eaa..bef3a79d3 100644 --- a/asm/include/overlay_08.inc +++ b/asm/include/overlay_08.inc @@ -10,8 +10,8 @@ .public sub_02003370 .public sub_02003B44 .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public AllocAndReadWholeNarcMemberByIdPair .public NARC_New .public NARC_Delete diff --git a/asm/include/overlay_106.inc b/asm/include/overlay_106.inc index c361e47df..04a823d92 100644 --- a/asm/include/overlay_106.inc +++ b/asm/include/overlay_106.inc @@ -9,8 +9,8 @@ .public sub_02006118 .public StopSE .public PlayCry -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public AllocAndReadWholeNarcMemberByIdPair .public NARC_New .public NARC_Delete diff --git a/asm/include/overlay_27.inc b/asm/include/overlay_27.inc index 077a92098..ea64d319b 100644 --- a/asm/include/overlay_27.inc +++ b/asm/include/overlay_27.inc @@ -5,8 +5,8 @@ .public FontID_Release .public FontID_String_GetWidth .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public NARC_New .public NARC_Delete .public GfGfxLoader_LoadCharData diff --git a/asm/include/overlay_28.inc b/asm/include/overlay_28.inc index fe8fe7279..ebfcfeacd 100644 --- a/asm/include/overlay_28.inc +++ b/asm/include/overlay_28.inc @@ -4,8 +4,8 @@ .public FontID_Release .public PlaySE_SetPitch .public StopSE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public NARC_New .public NARC_Delete .public GfGfxLoader_LoadCharDataFromOpenNarc diff --git a/asm/include/overlay_29.inc b/asm/include/overlay_29.inc index a60b22f21..99a5b6a3b 100644 --- a/asm/include/overlay_29.inc +++ b/asm/include/overlay_29.inc @@ -4,8 +4,8 @@ .public FontID_Release .public FontID_String_GetWidth .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public NARC_New .public NARC_Delete .public GfGfxLoader_LoadCharDataFromOpenNarc diff --git a/asm/include/overlay_30.inc b/asm/include/overlay_30.inc index 33bda23dc..1f6cb850c 100644 --- a/asm/include/overlay_30.inc +++ b/asm/include/overlay_30.inc @@ -3,8 +3,8 @@ .public sub_02002B8C .public LoadFontPal0 .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public GfGfxLoader_LoadCharData .public GfGfxLoader_LoadScrnData .public GfGfxLoader_GXLoadPal diff --git a/asm/include/overlay_31.inc b/asm/include/overlay_31.inc index 496e89174..76a8d5fd7 100644 --- a/asm/include/overlay_31.inc +++ b/asm/include/overlay_31.inc @@ -6,8 +6,8 @@ .public LoadFontPal0 .public LoadFontPal1 .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public GfGfxLoader_LoadCharData .public GfGfxLoader_GXLoadPal .public GfGfxLoader_GetScrnData diff --git a/asm/include/overlay_32.inc b/asm/include/overlay_32.inc index 925ab1c95..6361a0872 100644 --- a/asm/include/overlay_32.inc +++ b/asm/include/overlay_32.inc @@ -4,8 +4,8 @@ .public FontID_Release .public FontID_String_GetWidth .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public NARC_New .public NARC_Delete .public GfGfxLoader_LoadCharDataFromOpenNarc diff --git a/asm/include/overlay_33.inc b/asm/include/overlay_33.inc index d61db849c..32b6a8fb0 100644 --- a/asm/include/overlay_33.inc +++ b/asm/include/overlay_33.inc @@ -3,8 +3,8 @@ .public FontID_Alloc .public FontID_Release .public FontID_String_GetWidth -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public NARC_New .public NARC_Delete .public GfGfxLoader_LoadCharDataFromOpenNarc diff --git a/asm/include/overlay_34.inc b/asm/include/overlay_34.inc index 4135b191b..d6dbe0e8f 100644 --- a/asm/include/overlay_34.inc +++ b/asm/include/overlay_34.inc @@ -3,8 +3,8 @@ .public FontID_SetAccessDirect .public FontID_SetAccessLazy .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public GfGfxLoader_LoadCharData .public GfGfxLoader_LoadScrnData .public GfGfxLoader_GXLoadPal diff --git a/asm/include/overlay_41.inc b/asm/include/overlay_41.inc index 7eec77f0a..c76f1e08f 100644 --- a/asm/include/overlay_41.inc +++ b/asm/include/overlay_41.inc @@ -9,8 +9,8 @@ .public FontID_String_GetCenterAlignmentX .public sub_02004EC4 .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public OverlayManager_CreateAndGetData .public OverlayManager_GetData .public OverlayManager_FreeData diff --git a/asm/include/overlay_70.inc b/asm/include/overlay_70.inc index 1d4067922..31f323643 100644 --- a/asm/include/overlay_70.inc +++ b/asm/include/overlay_70.inc @@ -11,8 +11,8 @@ .public sub_02004EC4 .public PlaySE .public StopSE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public OverlayManager_New .public OverlayManager_Delete .public OverlayManager_CreateAndGetData diff --git a/asm/include/overlay_80_0223A00C.inc b/asm/include/overlay_80_0223A00C.inc index e5072b512..8b0f11cca 100644 --- a/asm/include/overlay_80_0223A00C.inc +++ b/asm/include/overlay_80_0223A00C.inc @@ -5,8 +5,8 @@ .public PaletteData_LoadNarc .public sub_02003E5C .public sub_02003EA4 -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public NARC_New .public NARC_Delete .public GfGfxLoader_GetPlttData diff --git a/asm/include/render_window.inc b/asm/include/render_window.inc index 91b2b3462..1e21b30e7 100644 --- a/asm/include/render_window.inc +++ b/asm/include/render_window.inc @@ -1,8 +1,8 @@ #include #pragma once .public sub_020027F0 -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public AllocAndReadWholeNarcMemberByIdPair .public GfGfxLoader_LoadCharData .public GfGfxLoader_GXLoadPal diff --git a/asm/include/unk_02007200.inc b/asm/include/unk_02007200.inc index d03d58476..c4b61c906 100644 --- a/asm/include/unk_02007200.inc +++ b/asm/include/unk_02007200.inc @@ -1,7 +1,7 @@ #include #pragma once -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public CreateSysTask .public DestroySysTask .public AllocFromHeap diff --git a/asm/include/unk_020163E0.inc b/asm/include/unk_020163E0.inc index 410820d83..4d4dc23fa 100644 --- a/asm/include/unk_020163E0.inc +++ b/asm/include/unk_020163E0.inc @@ -2,8 +2,8 @@ #pragma once .public PaletteData_LoadPalette .public PaletteData_GetUnfadedBuf -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public sub_020163E0 .public sub_0201649C .public sub_020164C4 diff --git a/asm/include/unk_02082908.inc b/asm/include/unk_02082908.inc index fbb505120..c40d953b6 100644 --- a/asm/include/unk_02082908.inc +++ b/asm/include/unk_02082908.inc @@ -12,8 +12,8 @@ .public LoadFontPal1 .public sub_02004EC4 .public PlaySE -.public sub_02007200 -.public sub_02007234 +.public CreateSysTaskAndEnvironment +.public DestroySysTaskAndEnvironment .public OverlayManager_CreateAndGetData .public OverlayManager_GetData .public OverlayManager_FreeData diff --git a/asm/overlay_01_021EFB38.s b/asm/overlay_01_021EFB38.s index 42ade739c..dc3afc991 100644 --- a/asm/overlay_01_021EFB38.s +++ b/asm/overlay_01_021EFB38.s @@ -194,7 +194,7 @@ ov01_021EFC94: ; 0x021EFC94 mov r1, #0x24 mov r2, #5 mov r3, #4 - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 add r4, r0, #0 str r5, [r4, #0x10] @@ -228,7 +228,7 @@ ov01_021EFCDC: ; 0x021EFCDC mov r0, #4 bl FreeToHeapExplicit add r0, r4, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment pop {r3, r4, r5, pc} thumb_func_end ov01_021EFCDC diff --git a/asm/overlay_01_021F4464.s b/asm/overlay_01_021F4464.s index 16f65bd03..5f0594fdb 100644 --- a/asm/overlay_01_021F4464.s +++ b/asm/overlay_01_021F4464.s @@ -22,7 +22,7 @@ ov01_021F4464: ; 0x021F4464 ldr r3, [r5, #0x28] mov r1, #0x38 mov r2, #5 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r6, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -116,7 +116,7 @@ _021F4524: _021F452A: ldr r0, [r4] ldr r0, [r0, #0x34] - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #0 str r0, [r4] pop {r4, pc} diff --git a/asm/overlay_01_021F6830.s b/asm/overlay_01_021F6830.s index 3e6592a4e..05f4444f8 100644 --- a/asm/overlay_01_021F6830.s +++ b/asm/overlay_01_021F6830.s @@ -128,7 +128,7 @@ ov01_021F68DC: ; 0x021F68DC mov r1, #0x10 mov r2, #0xa mov r3, #4 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r4, r0, #0 bl sub_0201F988 ldr r1, [r5, #0x1c] @@ -185,7 +185,7 @@ ov01_021F6930: ; 0x021F6930 bl ov01_021F69A4 add r5, #0xd8 ldr r0, [r5] - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #1 pop {r3, r4, r5, pc} _021F6960: diff --git a/asm/overlay_05.s b/asm/overlay_05.s index 89b9e42e6..274eceea7 100644 --- a/asm/overlay_05.s +++ b/asm/overlay_05.s @@ -12,7 +12,7 @@ ov05_0221BA00: ; 0x0221BA00 ldr r1, _0221BA60 ; =0x00000BD4 ldr r3, [r5, #0x24] mov r2, #0x64 - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 ldr r2, _0221BA60 ; =0x00000BD4 mov r1, #0 @@ -2337,7 +2337,7 @@ _0221CCCA: add r0, #0x2b strb r1, [r0] add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #1 pop {r3, r4, r5, pc} thumb_func_end ov05_0221CC74 diff --git a/asm/overlay_08.s b/asm/overlay_08.s index ea35fff4d..0aee484a0 100644 --- a/asm/overlay_08.s +++ b/asm/overlay_08.s @@ -19,7 +19,7 @@ _0221BE2E: ldr r1, _0221BE8C ; =0x00002090 ldr r3, [r5, #0xc] mov r2, #0 - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 ldr r2, _0221BE8C ; =0x00002090 add r4, r0, #0 @@ -2031,7 +2031,7 @@ _0221CDA8: add r0, #0x36 strb r1, [r0] add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #1 pop {r3, r4, r5, pc} nop @@ -12720,7 +12720,7 @@ ov08_022225D4: ; 0x022225D4 ldr r1, _02222668 ; =0x0000115C ldr r3, [r5, #0xc] mov r2, #0x64 - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 ldr r2, _02222668 ; =0x0000115C add r4, r0, #0 @@ -13823,7 +13823,7 @@ _02222EAC: add r0, #0x26 strb r1, [r0] add r0, r7, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #1 pop {r3, r4, r5, r6, r7, pc} nop diff --git a/asm/overlay_106.s b/asm/overlay_106.s index a20565346..dcb9a1d75 100644 --- a/asm/overlay_106.s +++ b/asm/overlay_106.s @@ -689,7 +689,7 @@ ov106_021E5E0C: ; 0x021E5E0C ldr r3, [r5, #0x28] mov r1, #0x38 mov r2, #5 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r6, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -780,7 +780,7 @@ _021E5EC8: bl GX_SetBankForLCDC _021E5ECE: ldr r0, [r4, #0x34] - bl sub_02007234 + bl DestroySysTaskAndEnvironment pop {r4, pc} nop _021E5ED8: .word 0x06820000 diff --git a/asm/overlay_27.s b/asm/overlay_27.s index 244ef7408..3e0e807d2 100644 --- a/asm/overlay_27.s +++ b/asm/overlay_27.s @@ -44,7 +44,7 @@ ov27_02259F80: ; 0x02259F80 lsl r1, r1, #6 mov r2, #0xa mov r3, #8 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r7, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -333,7 +333,7 @@ _0225A246: mov r0, #4 bl FontID_Release ldr r0, [sp, #4] - bl sub_02007234 + bl DestroySysTaskAndEnvironment ldr r0, [sp] mov r1, #5 bl FreeBgTilemapBuffer @@ -4457,7 +4457,7 @@ ov27_0225C250: ; 0x0225C250 lsl r1, r1, #2 mov r2, #0xa mov r3, #8 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r6, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -4567,7 +4567,7 @@ _0225C3C4: mov r0, #4 bl FontID_Release ldr r0, [sp, #4] - bl sub_02007234 + bl DestroySysTaskAndEnvironment ldr r0, [sp] mov r1, #6 bl FreeBgTilemapBuffer diff --git a/asm/overlay_28.s b/asm/overlay_28.s index 4422f531b..488642506 100644 --- a/asm/overlay_28.s +++ b/asm/overlay_28.s @@ -24,7 +24,7 @@ ov28_0225D520: ; 0x0225D520 lsl r1, r1, #6 mov r2, #0xa mov r3, #8 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r6, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -110,7 +110,7 @@ ov28_0225D5EC: ; 0x0225D5EC ldr r0, [r4, #0x10] bl ov28_0225D6E0 add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #8 bl DestroyHeap pop {r3, r4, r5, pc} diff --git a/asm/overlay_29.s b/asm/overlay_29.s index 3f1ea5f1d..81644929c 100644 --- a/asm/overlay_29.s +++ b/asm/overlay_29.s @@ -24,7 +24,7 @@ ov29_0225D520: ; 0x0225D520 lsl r1, r1, #2 mov r2, #0xa mov r3, #8 - bl sub_02007200 + bl CreateSysTaskAndEnvironment str r0, [sp, #4] bl sub_0201F988 add r4, r0, #0 @@ -114,7 +114,7 @@ ov29_0225D5EC: ; 0x0225D5EC ldr r0, [r4] bl ov29_0225D6B4 add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #8 bl DestroyHeap pop {r3, r4, r5, pc} diff --git a/asm/overlay_30.s b/asm/overlay_30.s index e81b9c84b..0c381e2ab 100644 --- a/asm/overlay_30.s +++ b/asm/overlay_30.s @@ -75,7 +75,7 @@ ov30_0225D520: ; 0x0225D520 mov r1, #0x6c mov r2, #0xa mov r3, #8 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r6, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -169,7 +169,7 @@ _0225D69E: add r0, r4, #0 bl ov30_0225D86C add r0, r6, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment add r0, r5, #0 mov r1, #6 bl FreeBgTilemapBuffer diff --git a/asm/overlay_31.s b/asm/overlay_31.s index 7bb4d4366..e4afa69a6 100644 --- a/asm/overlay_31.s +++ b/asm/overlay_31.s @@ -21,7 +21,7 @@ ov31_0225D520: ; 0x0225D520 lsl r1, r1, #4 mov r2, #0xa mov r3, #8 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r5, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -245,7 +245,7 @@ ov31_0225D710: ; 0x0225D710 add r0, r4, #0 bl ov31_0225D654 add r0, r6, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment add r0, r5, #0 mov r1, #6 bl FreeBgTilemapBuffer diff --git a/asm/overlay_32.s b/asm/overlay_32.s index 8305b5c9c..c5a58211a 100644 --- a/asm/overlay_32.s +++ b/asm/overlay_32.s @@ -24,7 +24,7 @@ ov32_0225D520: ; 0x0225D520 lsl r1, r1, #2 mov r2, #0xa mov r3, #8 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r7, r0, #0 bl sub_0201F988 add r5, r0, #0 @@ -97,7 +97,7 @@ ov32_0225D5CC: ; 0x0225D5CC mov r0, #4 bl FontID_Release add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #8 bl DestroyHeap pop {r3, r4, r5, pc} diff --git a/asm/overlay_33.s b/asm/overlay_33.s index a588f0a6c..95ffcbbac 100644 --- a/asm/overlay_33.s +++ b/asm/overlay_33.s @@ -24,7 +24,7 @@ ov33_0225D520: ; 0x0225D520 lsl r1, r1, #6 mov r2, #0xa mov r3, #8 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r7, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -75,7 +75,7 @@ ov33_0225D5A8: ; 0x0225D5A8 ldr r0, [r4] bl ov33_0225D7B8 add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment mov r0, #8 bl DestroyHeap pop {r3, r4, r5, pc} diff --git a/asm/overlay_34.s b/asm/overlay_34.s index c974345f3..b149441e9 100644 --- a/asm/overlay_34.s +++ b/asm/overlay_34.s @@ -334,7 +334,7 @@ ov34_0225D7A8: ; 0x0225D7A8 ldr r0, _0225D874 ; =ov34_0225D5A0 lsl r1, r1, #2 add r3, r2, #0 - bl sub_02007200 + bl CreateSysTaskAndEnvironment add r6, r0, #0 bl sub_0201F988 add r4, r0, #0 @@ -467,7 +467,7 @@ _0225D8B2: mov r0, #0xa9 lsl r0, r0, #2 ldr r0, [r6, r0] - bl sub_02007234 + bl DestroySysTaskAndEnvironment pop {r3, r4, r5, r6, r7, pc} _0225D8F8: bl GF_AssertFail diff --git a/asm/overlay_41.s b/asm/overlay_41.s index 2e652058d..dca2c4075 100644 --- a/asm/overlay_41.s +++ b/asm/overlay_41.s @@ -3188,7 +3188,7 @@ ov41_022476B8: ; 0x022476B8 mov r1, #0x10 mov r2, #0xa mov r3, #0xd - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 str r5, [r0] str r4, [r0, #4] @@ -3362,7 +3362,7 @@ _02247818: ldr r1, [r4, #4] mov r2, #1 str r2, [r1] - bl sub_02007234 + bl DestroySysTaskAndEnvironment _02247822: add sp, #4 pop {r3, r4, pc} @@ -3378,7 +3378,7 @@ ov41_02247828: ; 0x02247828 mov r1, #0x10 mov r2, #0xa mov r3, #0xd - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 str r5, [r0] str r4, [r0, #4] @@ -3558,7 +3558,7 @@ _02247998: ldr r1, [r4, #4] mov r2, #1 str r2, [r1] - bl sub_02007234 + bl DestroySysTaskAndEnvironment _022479A2: add sp, #4 pop {r3, r4, pc} @@ -6098,7 +6098,7 @@ ov41_02248B84: ; 0x02248B84 mov r1, #0x30 mov r2, #0 mov r3, #0xd - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 add r4, r0, #0 str r5, [r4] @@ -6316,7 +6316,7 @@ _02248D20: ldr r0, [r4, #0x28] bl FreeToHeap add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment add sp, #4 pop {r3, r4, r5, r6, pc} _02248D54: @@ -7308,7 +7308,7 @@ ov41_02249480: ; 0x02249480 mov r1, #0x2c mov r2, #0 mov r3, #0xd - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 add r4, r0, #0 ldr r0, [r5, #8] @@ -7404,7 +7404,7 @@ _02249532: bl ov41_022463FC _0224955A: add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment add sp, #8 pop {r3, r4, r5, pc} _02249564: @@ -8613,7 +8613,7 @@ ov41_02249DB4: ; 0x02249DB4 mov r1, #0x4c mov r2, #0 mov r3, #0xd - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 add r4, r0, #0 str r6, [r4] @@ -8831,7 +8831,7 @@ _02249F40: str r0, [r1] _02249F74: add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment pop {r3, r4, r5, pc} thumb_func_end ov41_02249F0C diff --git a/asm/overlay_70.s b/asm/overlay_70.s index 68924d126..ae6302901 100644 --- a/asm/overlay_70.s +++ b/asm/overlay_70.s @@ -18915,7 +18915,7 @@ ov70_02240EF4: ; 0x02240EF4 mov r1, #0x10 mov r2, #5 mov r3, #0x3d - bl sub_02007200 + bl CreateSysTaskAndEnvironment ldr r1, _02240F34 ; =0x000011D8 str r0, [r5, r1] ldr r0, [r5, r1] @@ -19034,7 +19034,7 @@ _02240FE2: mov r2, #1 strh r2, [r1, r0] add r0, r6, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment _02240FF6: pop {r4, r5, r6, pc} .balign 4, 0 @@ -19052,7 +19052,7 @@ ov70_02241004: ; 0x02241004 mov r1, #0x10 mov r2, #5 mov r3, #0x3d - bl sub_02007200 + bl CreateSysTaskAndEnvironment ldr r1, _02241040 ; =0x000011D8 str r0, [r5, r1] ldr r0, [r5, r1] @@ -19150,7 +19150,7 @@ _022410D6: ldr r1, _022410EC ; =0x000011DC mov r2, #1 strh r2, [r5, r1] - bl sub_02007234 + bl DestroySysTaskAndEnvironment _022410E0: pop {r3, r4, r5, pc} nop diff --git a/asm/overlay_80_0223A00C.s b/asm/overlay_80_0223A00C.s index 9b99a34ed..8ee916bd1 100644 --- a/asm/overlay_80_0223A00C.s +++ b/asm/overlay_80_0223A00C.s @@ -17,7 +17,7 @@ ov80_0223A00C: ; 0x0223A00C lsl r1, r1, #2 lsl r2, r2, #2 mov r3, #0x65 - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 add r4, r0, #0 str r5, [r4, #0x10] @@ -104,7 +104,7 @@ ov80_0223A0C0: ; 0x0223A0C0 mov r0, #0x65 bl FreeToHeapExplicit add r0, r4, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment pop {r3, r4, r5, pc} thumb_func_end ov80_0223A0C0 diff --git a/asm/render_window.s b/asm/render_window.s index c812321b5..cc80f6995 100644 --- a/asm/render_window.s +++ b/asm/render_window.s @@ -2264,7 +2264,7 @@ _0200F564: add r0, r4, #0 bl ov01_021E86F4 add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment pop {r3, r4, r5, pc} _0200F582: mov r1, #3 @@ -2312,7 +2312,7 @@ sub_0200F5C4: ; 0x0200F5C4 ldr r3, [sp, #0x18] lsl r1, r1, #4 mov r2, #0 - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 ldr r1, _0200F5FC ; =0x0000016F mov r2, #0 diff --git a/asm/unk_02007200.s b/asm/unk_02007200.s deleted file mode 100644 index e5732ec91..000000000 --- a/asm/unk_02007200.s +++ /dev/null @@ -1,49 +0,0 @@ - .include "asm/macros.inc" - .include "unk_02007200.inc" - .include "global.inc" - - .text - - thumb_func_start sub_02007200 -sub_02007200: ; 0x02007200 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - add r6, r0, #0 - add r7, r2, #0 - cmp r5, #0 - beq _02007224 - add r0, r3, #0 - bl AllocFromHeap - add r4, r0, #0 - bne _0200721A - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0200721A: - mov r1, #0 - add r2, r5, #0 - bl memset - b _02007226 -_02007224: - mov r4, #0 -_02007226: - add r0, r6, #0 - add r1, r4, #0 - add r2, r7, #0 - bl CreateSysTask - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end sub_02007200 - - thumb_func_start sub_02007234 -sub_02007234: ; 0x02007234 - push {r4, lr} - add r4, r0, #0 - bl sub_0201F988 - cmp r0, #0 - beq _02007244 - bl FreeToHeap -_02007244: - add r0, r4, #0 - bl DestroySysTask - pop {r4, pc} - thumb_func_end sub_02007234 diff --git a/asm/unk_020163E0.s b/asm/unk_020163E0.s index 21a570714..e5784a2f4 100644 --- a/asm/unk_020163E0.s +++ b/asm/unk_020163E0.s @@ -14,7 +14,7 @@ sub_020163E0: ; 0x020163E0 ldr r0, _02016488 ; =sub_020164D0 mov r1, #0x50 mov r2, #0 - bl sub_02007200 + bl CreateSysTaskAndEnvironment str r0, [sp, #4] bl sub_0201F988 add r4, r0, #0 @@ -123,11 +123,11 @@ _020164BA: thumb_func_start sub_020164C4 sub_020164C4: ; 0x020164C4 - ldr r3, _020164CC ; =sub_02007234 + ldr r3, _020164CC ; =DestroySysTaskAndEnvironment ldr r0, [r0] bx r3 nop -_020164CC: .word sub_02007234 +_020164CC: .word DestroySysTaskAndEnvironment thumb_func_end sub_020164C4 thumb_func_start sub_020164D0 @@ -193,7 +193,7 @@ _02016538: add r1, #0xc blx r2 add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment _02016546: pop {r3, r4, r5, pc} thumb_func_end sub_020164D0 diff --git a/asm/unk_02082908.s b/asm/unk_02082908.s index eaa8ceb5c..98d0a22b5 100644 --- a/asm/unk_02082908.s +++ b/asm/unk_02082908.s @@ -820,7 +820,7 @@ _02082F86: lsl r7, r7, #2 _02082F98: ldr r0, [r5, r7] - bl sub_02007234 + bl DestroySysTaskAndEnvironment add r6, r6, #1 add r5, r5, #4 cmp r6, #7 @@ -2197,7 +2197,7 @@ _02083AFE: mov r1, #0x10 mov r2, #5 mov r3, #0x12 - bl sub_02007200 + bl CreateSysTaskAndEnvironment mov r1, #0xe7 lsl r1, r1, #2 str r0, [r4, r1] @@ -2467,7 +2467,7 @@ _02083D18: ldr r0, [r4] bl Sprite_SetMatrix add r0, r5, #0 - bl sub_02007234 + bl DestroySysTaskAndEnvironment _02083D2A: ldr r0, [r4, #4] add r0, r0, #1 @@ -2582,7 +2582,7 @@ _02083DE6: mov r1, #0x10 mov r2, #0 mov r3, #0x12 - bl sub_02007200 + bl CreateSysTaskAndEnvironment bl sub_0201F988 add r7, r0, #0 ldr r0, [sp, #0x48] diff --git a/include/systask_environment.h b/include/systask_environment.h new file mode 100644 index 000000000..05054b0e2 --- /dev/null +++ b/include/systask_environment.h @@ -0,0 +1,10 @@ +#ifndef POKEHEARTGOLD_SYSTASK_ENVIRONMENT_H +#define POKEHEARTGOLD_SYSTASK_ENVIRONMENT_H + +#include "heap.h" +#include "unk_0200E320.h" + +SysTask *CreateSysTaskAndEnvironment(SysTaskFunc function, u32 environmentSize, u32 priority, HeapID heapId); +void DestroySysTaskAndEnvironment(SysTask *task); + +#endif diff --git a/main.lsf b/main.lsf index d74187064..a594ac6a2 100644 --- a/main.lsf +++ b/main.lsf @@ -23,7 +23,7 @@ Static main Object asm/unk_02005D10.o Object src/sound_chatot.o Object src/poke_overlay.o - Object asm/unk_02007200.o + Object src/systask_environment.o Object src/overlay_manager.o Object src/filesystem.o Object src/gf_gfx_loader.o diff --git a/src/systask_environment.c b/src/systask_environment.c new file mode 100644 index 000000000..ec6bfa646 --- /dev/null +++ b/src/systask_environment.c @@ -0,0 +1,28 @@ +#include "global.h" +#include "systask_environment.h" +#include "unk_0201F79C.h" + +SysTask *CreateSysTaskAndEnvironment(SysTaskFunc function, u32 environmentSize, u32 priority, HeapID heapId) { + void *environment; + + if (environmentSize != 0) { + environment = AllocFromHeap(heapId, environmentSize); + if (environment == NULL) { + return NULL; + } + memset(environment, 0, environmentSize); + } else { + environment = NULL; + } + + return CreateSysTask(function, environment, priority); +} + +void DestroySysTaskAndEnvironment(SysTask *task) { + void *environment = sub_0201F988(task); + if (environment != NULL) { + FreeToHeap(environment); + } + + DestroySysTask(task); +}