From f5b0640e4c8c4a1521832cab0e146529b2a62bed Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Wed, 16 Apr 2025 02:49:52 +0200 Subject: [PATCH] update aurora, fixups --- CMakeLists.txt | 2 +- extern/aurora | 2 +- include/REL/m440Dll.h | 1 + src/REL/m409Dll/cursor.c | 2 +- src/REL/m415Dll/map.c | 3 ++- src/REL/m417Dll/main.c | 4 ++-- src/REL/m424Dll/ball.c | 3 ++- src/REL/m424Dll/claw.c | 5 +++-- src/REL/m424Dll/map.c | 4 ++-- src/REL/m425Dll/main.c | 2 +- src/REL/m427Dll/main.c | 2 +- src/REL/m427Dll/map.c | 8 ++++---- src/REL/m427Dll/player.c | 6 +++--- src/REL/m430Dll/player.c | 12 ++++++------ src/REL/m432Dll/main.c | 2 +- src/REL/m438Dll/fire.c | 33 +++++++++++++++++---------------- src/REL/m438Dll/map.c | 3 ++- src/REL/m440Dll/main.c | 8 ++++---- src/REL/m440Dll/object.c | 4 ++-- src/REL/m443Dll/player.c | 2 +- src/REL/m446Dll/card.c | 6 +++--- src/REL/m446Dll/cursor.c | 2 +- src/REL/m446Dll/deck.c | 2 +- src/REL/m446Dll/main.c | 2 +- src/REL/m446Dll/player.c | 2 +- src/REL/m446Dll/stage.c | 2 +- src/REL/m446Dll/table.c | 2 +- src/REL/m450Dll/main.c | 2 +- src/REL/m453Dll/map.c | 3 ++- src/REL/w03Dll/condor.c | 2 +- src/game/armem.c | 40 +++++++++++++++++++++++++++++++++------- src/game/hsfdraw.c | 3 +++ src/game/window.c | 2 +- src/port/audio.c | 2 +- 34 files changed, 108 insertions(+), 72 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 166e7fee..51bc4561 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,7 +150,7 @@ endif () add_library(dol SHARED ${DOLPHIN_FILES} ${GAME_FILES} ${PORT_FILES}) target_compile_definitions(dol PRIVATE TARGET_PC NON_MATCHING TARGET_DOL VERSION=${VERSION} MUSY_VERSION_MAJOR=1 MUSY_VERSION_MINOR=5 MUSY_VERSION_PATCH=4) target_include_directories(dol PRIVATE include build/GMPE01_00/include) -target_link_libraries(dol PRIVATE aurora::core aurora::gx aurora::vi musyx) +target_link_libraries(dol PRIVATE aurora::core aurora::gx aurora::si aurora::vi aurora::pad musyx) if (MSVC) if (CMAKE_SIZEOF_VOID_P EQUAL 8) enable_language(ASM_MASM) diff --git a/extern/aurora b/extern/aurora index a18cdf3b..6c27585c 160000 --- a/extern/aurora +++ b/extern/aurora @@ -1 +1 @@ -Subproject commit a18cdf3b599b482c850096994cef09ba3920851b +Subproject commit 6c27585cf9f662ca08ae49560eab1b171ac214dc diff --git a/include/REL/m440Dll.h b/include/REL/m440Dll.h index 85c35f28..3b853962 100644 --- a/include/REL/m440Dll.h +++ b/include/REL/m440Dll.h @@ -241,6 +241,7 @@ typedef struct _unkObjStruct { float unk68; float unk6C; float unk70; + char unk74[0x4]; } unkObjStruct; #if VERSION_NTSC diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index 84f6f5d6..d8db13eb 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -767,7 +767,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) temp_r31->unkC = 1.0f; temp_r31->unk10 = 0.0f; if (temp_r31->unk4 == NULL) { - temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, MEMORY_DEFAULT_NUM); + temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); } temp_r31->unk4[0].x = temp_r31->unk0 * temp_r30->unk54; temp_r31->unk4[0].y = temp_r31->unk0 * temp_r30->unk58; diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c index be453486..cf1ef352 100644 --- a/src/REL/m415Dll/map.c +++ b/src/REL/m415Dll/map.c @@ -1,3 +1,4 @@ +#include "game/memory.h" #define HUSPR_USE_OLD_DEFS #include "REL/m415Dll.h" @@ -767,7 +768,7 @@ void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) HuSprAnimKill(var_r31->unk0); var_r31->unk8 |= 0xFFFF0000; var_r30 = HuSprAnimMake(arg2, arg3, arg1); - var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (var_r30->bmp->pixSize * arg2), 0x10000000U); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (var_r30->bmp->pixSize * arg2), MEMORY_DEFAULT_NUM); var_f31 = arg4 / (f32)var_r30->bmp->sizeX; var_f30 = arg5 / (f32)var_r30->bmp->sizeY; var_r31->unk0 = var_r30; diff --git a/src/REL/m417Dll/main.c b/src/REL/m417Dll/main.c index f4199513..60972bd2 100644 --- a/src/REL/m417Dll/main.c +++ b/src/REL/m417Dll/main.c @@ -112,9 +112,9 @@ void fn_1_4D8(omObjData *object) { UnkM417Struct *var_r31; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x68, 268435456); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM417Struct), 268435456); var_r31 = object->data; - memset(var_r31, 0, 0x68); + memset(var_r31, 0, sizeof(UnkM417Struct)); var_r31->unk_00 = 0; var_r31->unk_04 = 0; var_r31->unk_0C = 0; diff --git a/src/REL/m424Dll/ball.c b/src/REL/m424Dll/ball.c index 8a8cf7b1..f0a15594 100644 --- a/src/REL/m424Dll/ball.c +++ b/src/REL/m424Dll/ball.c @@ -9,6 +9,7 @@ #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/memory.h" #include "game/pad.h" #include "game/sprite.h" #include "string.h" @@ -1085,7 +1086,7 @@ void *fn_1_6078(s32 arg0) if (var_r31 == 0x20) { return NULL; } - lbl_1_bss_5BC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, 0x10000000); + lbl_1_bss_5BC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, MEMORY_DEFAULT_NUM); return lbl_1_bss_5BC[var_r31]; } diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index 7cf12e65..07647127 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -8,6 +8,7 @@ #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/memory.h" #include "game/pad.h" #include "math.h" @@ -152,8 +153,8 @@ void fn_1_94D0(omObjData *arg0) s32 var_r29; M424DllClawStruct *var_r31; - var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B0, 0x10000000); - memset(var_r31, 0, 0x1B0); + var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M424DllClawStruct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(M424DllClawStruct)); var_r31->unk0 = lbl_1_bss_24[3]; var_r31->unk2 = GWPlayerCfg[var_r31->unk0].character; var_r31->unk4 = GWPlayerCfg[var_r31->unk0].pad_idx; diff --git a/src/REL/m424Dll/map.c b/src/REL/m424Dll/map.c index 4536b396..5cd4eb0d 100644 --- a/src/REL/m424Dll/map.c +++ b/src/REL/m424Dll/map.c @@ -55,8 +55,8 @@ void fn_1_1BB8(omObjData *arg0) { M424DllMapStruct *var_r30; - var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); - memset(var_r30, 0, 0x54); + var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M424DllMapStruct), MEMORY_DEFAULT_NUM); + memset(var_r30, 0, sizeof(M424DllMapStruct)); var_r30->unk0 = 0.0f; var_r30->unk4 = 0.0f; var_r30->unk38 = -1; diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index f3329a8f..234b169b 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -1450,7 +1450,7 @@ void fn_1_5608(GXColor **arg0, s16 arg1, GXColor *arg2) s32 var_r29; s32 var_r28; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(GXColor)), 0x10000000); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(GXColor)), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; diff --git a/src/REL/m427Dll/main.c b/src/REL/m427Dll/main.c index 917a5c88..a00ca58c 100644 --- a/src/REL/m427Dll/main.c +++ b/src/REL/m427Dll/main.c @@ -543,7 +543,7 @@ void fn_1_1954(void) { s32 var_r31; M427DllStruct2* var_r30; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA4, 0x10000000); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M427DllStruct2), MEMORY_DEFAULT_NUM); lbl_1_bss_40 = var_r30; var_r30->unk9C = 0; var_r30->unkA0 = 0; diff --git a/src/REL/m427Dll/map.c b/src/REL/m427Dll/map.c index 536671da..5506e4d0 100644 --- a/src/REL/m427Dll/map.c +++ b/src/REL/m427Dll/map.c @@ -388,9 +388,9 @@ void fn_1_32F4(Process *arg0) lbl_1_bss_158.unk0 = 0; lbl_1_bss_548 = omAddObjEx(arg0, 0x7F, 0, 0, -1, fn_1_6760); - lbl_1_bss_F0 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct), MEMORY_DEFAULT_NUM); + lbl_1_bss_F0 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(M427DllMapStruct), MEMORY_DEFAULT_NUM); - for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + for (var_r31 = 0; var_r31 < 16; var_r31++) { lbl_1_bss_F0[var_r31].unk2 = -1; } temp_r30 = HuSprAnimRead(HuDataReadNum(0x3A0017, MEMORY_DEFAULT_NUM)); @@ -613,8 +613,8 @@ void fn_1_3E58(omObjData *arg0) var_r29->unk48[0] = 0; var_r29->unk4A = 0; var_r29->unk4 = 0; - lbl_1_bss_E4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct5), MEMORY_DEFAULT_NUM); - for (var_r28 = 0; var_r28 < 0x10; var_r28++) { + lbl_1_bss_E4 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(M427DllMapStruct5), MEMORY_DEFAULT_NUM); + for (var_r28 = 0; var_r28 < 16; var_r28++) { lbl_1_bss_E4[var_r28].unk10 = -1.0f; } fn_1_510C(0, 0x32, 0x32); diff --git a/src/REL/m427Dll/player.c b/src/REL/m427Dll/player.c index 4e63dcdf..1d28252d 100644 --- a/src/REL/m427Dll/player.c +++ b/src/REL/m427Dll/player.c @@ -1570,10 +1570,10 @@ void fn_1_12B08(void) lbl_1_bss_558 = lbl_1_data_260; lbl_1_bss_554 = lbl_1_data_3BC; lbl_1_bss_550 = lbl_1_bss_584; - var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x40 * sizeof(M427DllBss57CStruct), MEMORY_DEFAULT_NUM); + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 64 * sizeof(M427DllBss57CStruct), MEMORY_DEFAULT_NUM); lbl_1_bss_57C = var_r29; - memset(lbl_1_bss_57C, 0, 0x40 * sizeof(M427DllBss57CStruct)); - for (var_r30 = 0; var_r30 < 0x40; var_r30++, var_r29++) { + memset(lbl_1_bss_57C, 0, 64 * sizeof(M427DllBss57CStruct)); + for (var_r30 = 0; var_r30 < 64; var_r30++, var_r29++) { var_r29->unk_00 = var_r30; var_r29->unk_04 = -1; var_r29->unk_08 = -1; diff --git a/src/REL/m430Dll/player.c b/src/REL/m430Dll/player.c index 22421e84..7010b15b 100644 --- a/src/REL/m430Dll/player.c +++ b/src/REL/m430Dll/player.c @@ -1633,9 +1633,9 @@ void fn_1_10B88(void) M430PlayerBss16CStruct *var_r31; s32 var_r30; - var_r31 = lbl_1_bss_16C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M430PlayerBss16CStruct), MEMORY_DEFAULT_NUM); - memset(var_r31, 0, 0x10 * sizeof(M430PlayerBss16CStruct)); - for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + var_r31 = lbl_1_bss_16C = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(M430PlayerBss16CStruct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 16 * sizeof(M430PlayerBss16CStruct)); + for (var_r30 = 0; var_r30 < 16; var_r30++, var_r31++) { var_r31->unk_00 = var_r30; if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x23)); @@ -1810,9 +1810,9 @@ void fn_1_113AC(void) M430PlayerBss168Struct *var_r31; s32 var_r30; - var_r31 = lbl_1_bss_168 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20 * sizeof(M430PlayerBss168Struct), MEMORY_DEFAULT_NUM); - memset(var_r31, 0, 0x20 * sizeof(M430PlayerBss168Struct)); - for (var_r30 = 0; var_r30 < 0x20; var_r31++) { + var_r31 = lbl_1_bss_168 = HuMemDirectMallocNum(HEAP_SYSTEM, 32 * sizeof(M430PlayerBss168Struct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 32 * sizeof(M430PlayerBss168Struct)); + for (var_r30 = 0; var_r30 < 32; var_r31++) { var_r31->unk_00 = var_r30; if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x22)); diff --git a/src/REL/m432Dll/main.c b/src/REL/m432Dll/main.c index 8db5b965..15e2894b 100644 --- a/src/REL/m432Dll/main.c +++ b/src/REL/m432Dll/main.c @@ -2328,7 +2328,7 @@ void fn_1_B974(Vec *arg0, float arg8, float arg9) if (lbl_1_bss_402 < 0xF0) { lbl_1_bss_402++; var_r30 = omAddObjEx(lbl_1_bss_5B4, 0x67, 1, 0, 3, fn_1_B7E4); - var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM432DllStruct2), 0x10000000); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM432DllStruct2), MEMORY_DEFAULT_NUM); var_r31 = var_r30->data; var_r31->unk_00 = *arg0; var_r31->unk_00.x += 30.0f * arg9; diff --git a/src/REL/m438Dll/fire.c b/src/REL/m438Dll/fire.c index 42650782..d105fa64 100644 --- a/src/REL/m438Dll/fire.c +++ b/src/REL/m438Dll/fire.c @@ -1,6 +1,7 @@ #include "REL/m438Dll.h" #include "game/hsfdraw.h" +#include "game/memory.h" #define HUSPR_USE_OLD_DEFS #include "game/sprite.h" @@ -25,10 +26,10 @@ void fn_1_E658(s16 arg0, s16 arg1) lbl_1_bss_DE4.unk_34 = Hu3DHookFuncCreate(fn_1_F538); Hu3DModelLayerSet(lbl_1_bss_DE4.unk_34, 6); lbl_1_bss_DE4.unk_30 = arg0; - var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(M438UnkStruct2), 0x10000000); + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(M438UnkStruct2), MEMORY_DEFAULT_NUM); lbl_1_bss_DE4.unk_40 = var_r29; lbl_1_bss_DE4.unk_32 = arg1; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438UnkStruct3), 0x10000000); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438UnkStruct3), MEMORY_DEFAULT_NUM); lbl_1_bss_DE4.unk_3C = var_r30; for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { @@ -335,7 +336,7 @@ void fn_1_F6C8(M438FireStruct **arg0, s16 arg1, f32 arg8, f32 arg9) s32 var_r30; M438FireStruct *var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), 0x10000000); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), MEMORY_DEFAULT_NUM); for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); @@ -376,7 +377,7 @@ void fn_1_F8EC(M438FireStruct2 **arg0, s16 arg1, GXColor *arg2) s32 var_r29; s32 var_r28; - var_r31 = (GXColor *)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct2), 0x10000000U); + var_r31 = (GXColor *)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct2), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { @@ -393,7 +394,7 @@ void fn_1_F994(Vec **arg0, s16 arg1, Vec *arg2) s32 var_r29; Vec *var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), 0x10000000); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; @@ -408,7 +409,7 @@ void fn_1_FA20(M438FireStruct3 **arg0, s16 arg1, HsfVector2f *arg2) s32 var_r29; s32 var_r28; - var_r31 = (HsfVector2f *)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct3), 0x10000000); + var_r31 = (HsfVector2f *)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct3), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { @@ -595,15 +596,15 @@ s16 fn_1_10258(u8 arg0, u8 arg1) var_r31->unk_30 = NULL; var_r31->unk_02 = arg0; var_r31->unk_04 = arg1; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x98, MEMORY_DEFAULT_NUM); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(M438UnkStruct), MEMORY_DEFAULT_NUM); var_r31->unk_3C = var_r30; - var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, MEMORY_DEFAULT_NUM); + var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(s16), MEMORY_DEFAULT_NUM); var_r31->unk_48 = 0; var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, MEMORY_DEFAULT_NUM); - var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x30, MEMORY_DEFAULT_NUM); - var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x10, MEMORY_DEFAULT_NUM); - var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0xC, MEMORY_DEFAULT_NUM); - var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * 0x30), MEMORY_DEFAULT_NUM); + var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * (4 * sizeof(Vec)), MEMORY_DEFAULT_NUM); + var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * (4 * sizeof(GXColor)), MEMORY_DEFAULT_NUM); + var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * sizeof(M438UnkSubStruct)), MEMORY_DEFAULT_NUM); DCFlushRangeNoSync(var_r31->unk_4C, arg0 << 8); var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f; var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f; @@ -657,7 +658,7 @@ s16 fn_1_10258(u8 arg0, u8 arg1) var_r31->unk_48 += var_r30->unk_3C; } temp_r25 = var_r31->unk_4C; - var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, 0x10000000); + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, MEMORY_DEFAULT_NUM); memcpy(var_r31->unk_4C, temp_r25, var_r31->unk_48); HuMemDirectFree(temp_r25); DCFlushRangeNoSync(var_r31->unk_50, arg0 * 0x30); @@ -749,11 +750,11 @@ s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2) var_r31->unk_06 = 1; if (((arg0 & 0xFFFF0000) + 0x10000) == 0) { var_r30 = HuSprAnimMake(arg1, arg2, 2); - var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), 0x10000000); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), MEMORY_DEFAULT_NUM); arg1 = arg2 = 0; } else { - var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); + var_r30 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); } if ((arg1 == 0) || (arg2 == 0)) { arg1 = var_r30->bmp->sizeX; @@ -798,7 +799,7 @@ void fn_1_10CB8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) HuSprAnimKill(temp_r31->unk_00); temp_r31->unk_08 |= 0xFFFF0000; temp_r30 = HuSprAnimMake(arg2, arg3, arg1); - temp_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (temp_r30->bmp->pixSize * arg2), 0x10000000U); + temp_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (temp_r30->bmp->pixSize * arg2), MEMORY_DEFAULT_NUM); var_f31 = arg4 / (f32)temp_r30->bmp->sizeX; var_f30 = arg5 / (f32)temp_r30->bmp->sizeY; temp_r31->unk_00 = temp_r30; diff --git a/src/REL/m438Dll/map.c b/src/REL/m438Dll/map.c index 2784c005..1ba02bc0 100644 --- a/src/REL/m438Dll/map.c +++ b/src/REL/m438Dll/map.c @@ -4,6 +4,7 @@ #include "game/audio.h" #include "game/hsfanim.h" #include "game/hsfmotion.h" +#include "game/memory.h" #include "game/sprite.h" #include "game/wipe.h" #include "string.h" @@ -96,7 +97,7 @@ void fn_1_B54C(omObjData *arg0) M438MapStruct *var_r24; M438MapStruct3 *temp_r23; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, MEMORY_DEFAULT_NUM); temp_r23 = arg0->data; memset(temp_r23, 0, 0x108C); arg0->model[0] = Hu3DModelCreateFile(0x450000); diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index 31d8a98a..97152388 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -600,7 +600,7 @@ void fn_1_2470(omObjData *arg0) s16 var_r30; unkStruct2 *temp_r27; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, MEMORY_DEFAULT_NUM); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct2), MEMORY_DEFAULT_NUM); temp_r27 = arg0->data; arg0->stat |= 0x100; arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x08)); @@ -1565,7 +1565,7 @@ void fn_1_6B58(unkStruct6 *arg0, HsfObject *arg1) break; } } - arg0->unk24 = HuMemDirectMallocNum(HEAP_DATA, arg0->unk20 * 0xD0, var_r22->unk_48); + arg0->unk24 = HuMemDirectMallocNum(HEAP_DATA, arg0->unk20 * sizeof(unkStruct8), var_r22->unk_48); var_r31 = arg0->unk24; if (var_r24 != 0) { var_r30 = arg1->data.vertex->count; @@ -2255,14 +2255,14 @@ s16 fn_1_956C(AnimData *arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) var_r20 = Hu3DHookFuncCreate(fn_1_9C04); temp_r28 = &Hu3DData[var_r20]; - var_r31 = HuMemDirectMallocNum(HEAP_DATA, 0x68, temp_r28->unk_48); + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(unkStruct5), temp_r28->unk_48); temp_r28->unk_120 = var_r31; arg0->useNum += 1; var_r31->unk10 = arg0; var_r31->unk0 = arg1; var_r31->unk8 = 0; var_r31->unkC = NULL; - var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0x64, temp_r28->unk_48); + var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(unkStruct4), temp_r28->unk_48); var_r31->unk18 = var_r24; for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r24++) { diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index a2179797..5de16855 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -53,9 +53,9 @@ void fn_1_AEE4(omObjData *arg0) s16 var_r29; unkObjStruct *temp_r31; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, MEMORY_DEFAULT_NUM); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkObjStruct), MEMORY_DEFAULT_NUM); temp_r31 = (unkObjStruct *)arg0->data; - memset(temp_r31, 0, 0x78); + memset(temp_r31, 0, sizeof(unkObjStruct)); arg0->stat |= 0x100; temp_r31->unk4 = arg0->work[0]; temp_r31->unk6 = GWPlayerCfg[temp_r31->unk4].pad_idx; diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index 94fc1a0c..2ee3729e 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -220,7 +220,7 @@ void fn_1_5680(omObjData *object) M443DllWorkStruct *temp_r31; HsfanimStruct01 *var_r28; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x134, MEMORY_DEFAULT_NUM); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M443DllWorkStruct), MEMORY_DEFAULT_NUM); temp_r31 = object->data; memset(temp_r31, 0, 0x134); object->stat |= 0x100; diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index d852a399..0f187b20 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -15,7 +15,7 @@ unkStruct2 *fn_1_1C64(s32 arg0) { unkStruct2 *temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct2), MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } @@ -86,7 +86,7 @@ unkStruct3 *fn_1_1DF4(void *arg0) { unkStruct3 *temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct3), MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } @@ -273,7 +273,7 @@ unkStruct4 *m446CardCreate(s32 arg0) unkStruct4 *temp_r31; unkStruct3 *temp_r30; - temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, MEMORY_DEFAULT_NUM); + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct4), MEMORY_DEFAULT_NUM); if (!temp_r31) { OSReport("[!] m446CardCreate ERROR...\n"); return NULL; diff --git a/src/REL/m446Dll/cursor.c b/src/REL/m446Dll/cursor.c index c57da258..0fee3a5f 100644 --- a/src/REL/m446Dll/cursor.c +++ b/src/REL/m446Dll/cursor.c @@ -70,7 +70,7 @@ unkStruct7 *m446CursorCreate(s32 arg0) unkStruct7 *var_r31; unkStruct3 *var_r29; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, MEMORY_DEFAULT_NUM); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } diff --git a/src/REL/m446Dll/deck.c b/src/REL/m446Dll/deck.c index d3e7c7e2..cf3ce64d 100644 --- a/src/REL/m446Dll/deck.c +++ b/src/REL/m446Dll/deck.c @@ -18,7 +18,7 @@ unkStruct5* fn_1_3064(void) { s32 var_r30; unkStruct5* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, MEMORY_DEFAULT_NUM); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct5), MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } diff --git a/src/REL/m446Dll/main.c b/src/REL/m446Dll/main.c index 9296ddea..91e62596 100644 --- a/src/REL/m446Dll/main.c +++ b/src/REL/m446Dll/main.c @@ -94,7 +94,7 @@ unkStruct *m446FlowCreate(void) s32 var_r30; unkStruct *temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, MEMORY_DEFAULT_NUM); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct), MEMORY_DEFAULT_NUM); if (temp_r3 == 0) { OSReport("[!] m446FlowCreate() ERROR...\n"); return NULL; diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index 9dd2c9b1..57d002a4 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -167,7 +167,7 @@ unkStruct8 *m446PlayerCreate(s32 arg0, unkStruct6 *arg1) s32 var_r30; unkStruct8 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xCC, MEMORY_DEFAULT_NUM); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct8), MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } diff --git a/src/REL/m446Dll/stage.c b/src/REL/m446Dll/stage.c index 19f9d91f..5248117e 100644 --- a/src/REL/m446Dll/stage.c +++ b/src/REL/m446Dll/stage.c @@ -101,7 +101,7 @@ unkStruct9 *m446StageCreate(void) unkStruct3 *temp_ret; unkStruct9 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct9), MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } diff --git a/src/REL/m446Dll/table.c b/src/REL/m446Dll/table.c index 12668d6f..e972842c 100644 --- a/src/REL/m446Dll/table.c +++ b/src/REL/m446Dll/table.c @@ -47,7 +47,7 @@ unkStruct6 *fn_1_39D0(void) unkStruct3 *var_r29; unkStruct6 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x70, MEMORY_DEFAULT_NUM); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct6), MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index 5fc960d2..8f537152 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -1707,7 +1707,7 @@ s16 fn_1_5ED8(AnimData *arg0, Vec *arg1, float *arg2, s16 arg3, float arg8, s16 var_r31->unk_00 = 0; var_r31->unk_66 = arg3; var_r31->unk_6B = 0; - var_r31->unk_10 = HuMemDirectMallocNum(HEAP_DATA, arg3 * 0x40, var_r28->unk_48); + var_r31->unk_10 = HuMemDirectMallocNum(HEAP_DATA, arg3 * sizeof(UnkM450Struct2), var_r28->unk_48); for (var_r24 = var_r31->unk_10, var_r30 = 0; var_r30 < arg3; var_r30++, var_r24++) { var_r24->unk_3E = -1; var_r24->unk_3C = -1; diff --git a/src/REL/m453Dll/map.c b/src/REL/m453Dll/map.c index 7dde21e8..97cbe2ab 100644 --- a/src/REL/m453Dll/map.c +++ b/src/REL/m453Dll/map.c @@ -7,6 +7,7 @@ #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/memory.h" #include "game/sprite.h" #include "math.h" #include "string.h" @@ -459,7 +460,7 @@ void fn_1_6C74(omObjData *object) s32 var_r31; M453MapUnkStruct *var_r29; - var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M453MapUnkStruct), MEMORY_DEFAULT_NUM); object->data = var_r29; memset(object->data, 0, 0x54); for (var_r31 = 0; var_r31 < 0xC; var_r31++) { diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index c42f53b3..630569bb 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -660,7 +660,7 @@ void fn_1_48EC(s32 arg0) temp_r31->unkbit_04 = 0; temp_r31->unk_02 = -1; temp_r31->unkbit_01 = arg0; - temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, MEMORY_DEFAULT_NUM); + temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 80 * sizeof(w03StructUnk3), MEMORY_DEFAULT_NUM); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &spC); temp_r31->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x07), NULL, 0); BoardModelVisibilitySet(temp_r31->model, 0); diff --git a/src/game/armem.c b/src/game/armem.c index 7417e0ba..248b5c2b 100644 --- a/src/game/armem.c +++ b/src/game/armem.c @@ -1,6 +1,8 @@ #include "game/armem.h" #include "game/data.h" +#include + typedef struct armem_block { /* 0x00 */ u8 flag; /* 0x02 */ u16 dir; @@ -327,6 +329,12 @@ void HuARDirFree(u32 dir) { } } +#ifdef TARGET_PC +#define DIR_DATA (dir_data_pc) +#else +#define DIR_DATA (dir_data) +#endif + void *HuAR_ARAMtoMRAMFileRead(u32 dir, u32 num, HeapID heap) { s32 *dir_data; void *dst; @@ -335,6 +343,10 @@ void *HuAR_ARAMtoMRAMFileRead(u32 dir, u32 num, HeapID heap) { s32 count; s32 size; u32 amemptr; +#ifdef TARGET_PC + s32 dir_data_pc[2]; + s32 i; +#endif if ((amemptr = HuARDirCheck(dir)) == 0) { OSReport("Error: data none on ARAM %0x\n", dir); @@ -342,19 +354,25 @@ void *HuAR_ARAMtoMRAMFileRead(u32 dir, u32 num, HeapID heap) { return 0; } DCInvalidateRange(&preLoadBuf, sizeof(preLoadBuf)); - amem_src = amemptr + (u32)((u32)(((u16)dir + 1) * 4) & 0xFFFFFFFE0); + amem_src = amemptr + (u32)((((dir & 0xFFFF) + 1) * 4) & 0xFFFFFFFE0); arqCnt++; ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, amem_src, (uintptr_t) &preLoadBuf, sizeof(preLoadBuf), ArqCallBackAMFileRead); arqIdx++; arqIdx &= 0xF; while (HuARDMACheck()); dir_data = &preLoadBuf[(dir + 1) & 7]; - count = dir_data[0]; +#ifdef TARGET_PC + for (i = 0; i < 2; i++) { + dir_data_pc[i] = dir_data[i]; + byteswap_s32(&dir_data_pc[i]); + } +#endif + count = DIR_DATA[0]; amem_src = amemptr + (u32)(count & 0xFFFFFFFE0); - if (dir_data[1] - count < 0) { + if (DIR_DATA[1] - count < 0) { size = (HuARSizeGet(amemptr) - count + 0x3F) & 0xFFFFFFFE0; } else { - size = (dir_data[1] - count + 0x3F) & 0xFFFFFFFE0; + size = (DIR_DATA[1] - count + 0x3F) & 0xFFFFFFFE0; } dvd_data = HuMemDirectMalloc(HEAP_DVD, size); if (!dvd_data) { @@ -363,20 +381,28 @@ void *HuAR_ARAMtoMRAMFileRead(u32 dir, u32 num, HeapID heap) { DCFlushRangeNoSync(dvd_data, size); arqCnt++; PPCSync(); - ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, amem_src, (u32) dvd_data, (u32) size, ArqCallBackAMFileRead); + ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, amem_src, (uintptr_t) dvd_data, (u32) size, ArqCallBackAMFileRead); arqIdx++; arqIdx &= 0xF; while (HuARDMACheck()); dir_data = (s32*) ((u8*) dvd_data + (count & 0x1F)); - dst = HuMemDirectMallocNum(heap, (dir_data[0] + 1) & ~1, num); +#ifdef TARGET_PC + for (i = 0; i < 2; i++) { + dir_data_pc[i] = dir_data[i]; + byteswap_s32(&dir_data_pc[i]); + } +#endif + dst = HuMemDirectMallocNum(heap, (DIR_DATA[0] + 1) & ~1, num); if (!dst) { return 0; } - HuDecodeData(&dir_data[2], dst, dir_data[0], dir_data[1]); + HuDecodeData(&dir_data[2], dst, DIR_DATA[0], DIR_DATA[1]); HuMemDirectFree(dvd_data); return dst; } +#undef DIR_DATA + static void ArqCallBackAMFileRead(u32 pointerToARQRequest) { arqCnt--; (void)pointerToARQRequest; // required to match (return?) diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index 6439704d..ecf66312 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -2510,9 +2510,12 @@ void MakeDisplayList(s16 arg0, uintptr_t arg1) var_r30 = &Hu3DData[arg0]; curModelID = arg0; mallocNo = arg1; +#ifdef __MWERKS__ + // TODO PC faceNumBuf = HuMemDirectMallocNum(HEAP_DATA, 0x800 * sizeof(u16), mallocNo); MDObjCall(temp_r31, temp_r31->root); HuMemDirectFree(faceNumBuf); +#endif if (var_r30->attr & HU3D_ATTR_SHADOW) { Hu3DShadowCamBit++; } diff --git a/src/game/window.c b/src/game/window.c index 5d5cd0b0..136b0bfa 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -1901,7 +1901,7 @@ static void HuWinExCreatePortrait(s16 window, s16 portrait, float x, float y) WindowData *window_ptr; void *data; - data = HuAR_ARAMtoMRAMFileRead(winPortraitTbl[portrait], MEMORY_DEFAULT_NUM, 2); + data = HuAR_ARAMtoMRAMFileRead(winPortraitTbl[portrait], MEMORY_DEFAULT_NUM, HEAP_DATA); anim = HuSprAnimRead(data); window_ptr = &winData[window]; sprite = HuSprCreate(anim, window_ptr->prio - 1, 0); diff --git a/src/port/audio.c b/src/port/audio.c index 4b3e5085..0e5423df 100644 --- a/src/port/audio.c +++ b/src/port/audio.c @@ -259,7 +259,7 @@ s32 HuAudFXVolSet(int seNo, s16 vol) } s32 HuAudSeqPlay(s16 musId) { - s32 channel; + s32 channel = 0; if (musicOffF != 0 || omSysExitReq != 0) { return 0;