diff options
author | Akira Akashi <rubenru09@aol.com> | 2021-08-28 14:24:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-28 14:24:05 +0100 |
commit | 12d164b14df9b8936a5aa13111d3fe81e033ec6b (patch) | |
tree | 15352e1fc3681bf177fb77065ac0e6324e9a9c6c | |
parent | ab1ad9955b4f81e442b7a7114ec1ce82572c10ed (diff) | |
parent | 766cb136d9b9b4f2fc6fc14059a316a93f9aff9b (diff) |
Merge branch 'master' into decompile_sound
-rw-r--r-- | arm9/modules/59/asm/mod59_021D74E0_asm.s | 86 | ||||
-rw-r--r-- | arm9/modules/59/include/mod59_021D74E0.h | 37 | ||||
-rw-r--r-- | arm9/modules/59/src/mod59_021D74E0_src.c | 79 |
3 files changed, 86 insertions, 116 deletions
diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index d1e39e08..77bc1174 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -5,92 +5,6 @@ .extern MOD59_021D7730 - thumb_func_start MOD59_021D796C -MOD59_021D796C: ; 0x021D796C - push {r4, lr} - add r4, r0, #0 - mov r0, #0 - add r1, r0, #0 - bl ToggleBgLayer - mov r0, #1 - mov r1, #0 - bl ToggleBgLayer - mov r0, #2 - mov r1, #0 - bl ToggleBgLayer - mov r0, #3 - mov r1, #0 - bl ToggleBgLayer - mov r0, #4 - mov r1, #0 - bl ToggleBgLayer - mov r0, #5 - mov r1, #0 - bl ToggleBgLayer - mov r0, #6 - mov r1, #0 - bl ToggleBgLayer - mov r0, #7 - mov r1, #0 - bl ToggleBgLayer - ldr r0, [r4, #0x18] - mov r1, #0 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #1 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #2 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #3 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #4 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #5 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #6 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #7 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - bl FreeToHeap - pop {r4, pc} - thumb_func_end MOD59_021D796C - - thumb_func_start MOD59_021D79F8 -MOD59_021D79F8: ; 0x021D79F8 - push {r4, lr} - add r4, r0, #0 - ldr r2, _021D7A30 ; =0x00000155 - ldr r3, [r4] - mov r0, #1 - mov r1, #0x1a - bl NewMsgDataFromNarc - str r0, [r4, #0x4c] - bl FUN_0201BD5C - mov r0, #0 - ldr r3, [r4] - add r1, r0, #0 - mov r2, #6 - bl FUN_020142EC - str r0, [r4, #0x60] - ldr r0, [r4] - bl ScrStrBufs_new - str r0, [r4, #0x64] - mov r0, #0 - str r0, [r4, #0x50] - str r0, [r4, #0x54] - str r0, [r4, #0x2c] - pop {r4, pc} - nop -_021D7A30: .word 0x00000155 - thumb_func_end MOD59_021D79F8 - thumb_func_start MOD59_021D7A34 MOD59_021D7A34: ; 0x021D7A34 push {r4, lr} diff --git a/arm9/modules/59/include/mod59_021D74E0.h b/arm9/modules/59/include/mod59_021D74E0.h index 0a594ad3..bee72507 100644 --- a/arm9/modules/59/include/mod59_021D74E0.h +++ b/arm9/modules/59/include/mod59_021D74E0.h @@ -20,22 +20,31 @@ typedef struct MOD59_OverlayData u32 heap_id; struct SaveBlock2 *sav2; struct Options *options; - u32 Unk0C; - u32 Unk10; - struct UnkStruct_02006234 *Unk14; + u32 unk0C; + u32 unk10; + struct UnkStruct_02006234 *unk14; struct BgConfig *bgConfig; - u8 padding[0x54]; + u8 filler1C[0x10]; + u32 unk2C; + u8 filler30[0x1C]; + struct MsgData *msgData; + u32 unk50; + u32 unk54; + u8 filler58[0x8]; + u32 unk60; // unknown if this is the right type, possibly a pointer instead? + struct ScrStrBufs *strBufs; + u8 filler68[0x8]; struct MOD59_UnkPlayerStruct *playerStruct; struct MOD59_UnkPlayerStruct *rivalStruct; - u32 Unk78; - u8 padding2[0xC]; - u8 Unk88; - u8 Unk89; - u8 Unk8A; - u8 Unk8B; - u8 padding3[4]; - u32 Unk90; - u8 padding4[32]; + u32 unk78; + u8 filler7C[0xC]; + u8 unk88; + u8 unk89; + u8 unk8A; + u8 unk8B; + u8 filler8C[4]; + u32 unk90; + u8 filler94[32]; } MOD59_OverlayData; BOOL MOD59_Init(struct UnkStruct_02006234 *param0); @@ -44,5 +53,7 @@ BOOL MOD59_021D76C0(struct UnkStruct_02006234 *param0); void MOD59_021D7724(MOD59_OverlayData *data); BOOL MOD59_021D7730(void); void MOD59_SetupBg(MOD59_OverlayData *data); +void MOD59_DestroyBg(MOD59_OverlayData *data); +void MOD59_SetupMsg(MOD59_OverlayData *data); #endif //POKEDIAMOND_MOD59_021D74E0_H diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c index 7d6be2ca..1a301bc1 100644 --- a/arm9/modules/59/src/mod59_021D74E0_src.c +++ b/arm9/modules/59/src/mod59_021D74E0_src.c @@ -8,6 +8,10 @@ #include "unk_02024E64.h" #include "bg_window.h" #include "render_window.h" +#include "msgdata.h" +#include "msgdata/msg.naix" +#include "text.h" +#include "script_buffers.h" #include "module_52.h" extern void *FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct Options *options); @@ -20,9 +24,7 @@ extern struct GraphicsModes MOD59_021D9DCC; extern struct BgTemplate MOD59_021D9EA0; extern struct BgTemplate MOD59_021D9EBC; -extern void MOD59_021D79F8(MOD59_OverlayData *data); extern void MOD59_021D7A34(MOD59_OverlayData *data); -extern void MOD59_021D796C(MOD59_OverlayData *data); extern void MOD59_021D7A4C(MOD59_OverlayData *data); extern void MOD59_021D7A5C(MOD59_OverlayData *data); extern void MOD59_021D8058(MOD59_OverlayData *data); @@ -31,6 +33,8 @@ extern u32 MOD59_021D8920(MOD59_OverlayData *data); extern void FUN_0200E1D0(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 heap_id); extern u32 FUN_0200E308(void); +extern u32 FUN_020142EC(u32 param0, u32 param1, u32 param2, u32 heap_id); + extern void FUN_02077AC4(void *param0); FS_EXTERN_OVERLAY(MODULE_52); @@ -45,15 +49,15 @@ THUMB_FUNC BOOL MOD59_Init(struct UnkStruct_02006234 *param0) s32 *field18 = OverlayManager_GetField18(param0); data->sav2 = (struct SaveBlock2 *)field18[2]; //? data->options = Sav2_PlayerData_GetOptionsAddr(data->sav2); - data->Unk10 = data->Unk0C = 0; - data->Unk14 = NULL; + data->unk10 = data->unk0C = 0; + data->unk14 = NULL; data->playerStruct = (struct MOD59_UnkPlayerStruct *)FUN_02077A84(0x52, 0, 0, 7, data->options); data->rivalStruct = (struct MOD59_UnkPlayerStruct *)FUN_02077A84(0x52, 3, 0, 7, data->options); - data->Unk88 = 0; - data->Unk89 = 0; - data->Unk8A = 0; - data->Unk8B = 0; - data->Unk90 = 0; + data->unk88 = 0; + data->unk89 = 0; + data->unk8A = 0; + data->unk8B = 0; + data->unk90 = 0; return TRUE; } @@ -80,7 +84,7 @@ THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) SetKeyRepeatTimers(4, 8); MOD59_SetupBg(data); - MOD59_021D79F8(data); + MOD59_SetupMsg(data); MOD59_021D7A4C(data); Main_SetVBlankIntrCB((void (*)(void *))MOD59_021D7724, data); @@ -98,7 +102,7 @@ THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) *param1 = 2; } - if (data->Unk14 == NULL) + if (data->unk14 == NULL) { break; } @@ -115,7 +119,7 @@ THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) } MOD59_021D7A34(data); - MOD59_021D796C(data); + MOD59_DestroyBg(data); MOD59_021D7A5C(data); Main_SetVBlankIntrCB(NULL, NULL); @@ -130,7 +134,7 @@ THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) } MOD59_021D7A34(data); - MOD59_021D796C(data); + MOD59_DestroyBg(data); MOD59_021D7A5C(data); Main_SetVBlankIntrCB(NULL, NULL); @@ -140,13 +144,13 @@ THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) break; case 4: - if (OverlayManager_Run(data->Unk14) != TRUE) + if (OverlayManager_Run(data->unk14) != TRUE) { break; } - OverlayManager_delete(data->Unk14); - data->Unk14 = NULL; + OverlayManager_delete(data->unk14); + data->unk14 = NULL; *param1 = 5; @@ -275,5 +279,46 @@ THUMB_FUNC void MOD59_SetupBg(MOD59_OverlayData *data) ToggleBgLayer(GF_BG_LYR_SUB_3, GX_LAYER_TOGGLE_OFF); MOD59_021D8058(data); - data->Unk78 = 0; + data->unk78 = 0; +} + +THUMB_FUNC void MOD59_DestroyBg(MOD59_OverlayData *data) +{ + ToggleBgLayer(GF_BG_LYR_MAIN_0, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_1, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_2, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_3, GX_LAYER_TOGGLE_OFF); + + ToggleBgLayer(GF_BG_LYR_SUB_0, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_1, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_2, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_3, GX_LAYER_TOGGLE_OFF); + + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_0); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_1); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_2); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_3); + + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_SUB_0); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_SUB_1); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_SUB_2); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_SUB_3); + + FreeToHeap(data->bgConfig); +} + +THUMB_FUNC void MOD59_SetupMsg(MOD59_OverlayData *data) +{ + data->msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, NARC_msg_narc_0341_bin, data->heap_id); + + FUN_0201BD5C(); + + data->unk60 = FUN_020142EC(0, 0, 6, data->heap_id); + + data->strBufs = ScrStrBufs_new(data->heap_id); + + data->unk50 = 0; + data->unk54 = 0; + data->unk2C = 0; } + |