update aurora, fixups

This commit is contained in:
dbalatoni13 2025-04-16 02:49:52 +02:00
parent 7628f37163
commit f5b0640e4c
34 changed files with 108 additions and 72 deletions

View file

@ -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)

2
extern/aurora vendored

@ -1 +1 @@
Subproject commit a18cdf3b599b482c850096994cef09ba3920851b
Subproject commit 6c27585cf9f662ca08ae49560eab1b171ac214dc

View file

@ -241,6 +241,7 @@ typedef struct _unkObjStruct {
float unk68;
float unk6C;
float unk70;
char unk74[0x4];
} unkObjStruct;
#if VERSION_NTSC

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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];
}

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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);

View file

@ -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;

View file

@ -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));

View file

@ -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;

View file

@ -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;

View file

@ -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);

View file

@ -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++) {

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;

View file

@ -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++) {

View file

@ -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);

View file

@ -1,6 +1,8 @@
#include "game/armem.h"
#include "game/data.h"
#include <port/byteswap.h>
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?)

View file

@ -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++;
}

View file

@ -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);

View file

@ -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;