fix malloc sizes of HuMemDirectMalloc calls (#579)

This commit is contained in:
Rainchus 2025-04-06 18:53:55 -05:00 committed by GitHub
parent 887cb00c5b
commit 086800b79a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 219 additions and 207 deletions

View File

@ -69,7 +69,8 @@
"msghndlr.h": "c",
"dispatch.h": "c",
"trk.h": "c",
"debuggerdriver.h": "c"
"debuggerdriver.h": "c",
"mpexdll.h": "c"
},
"search.useIgnoreFiles": false,
"search.exclude": {
@ -142,4 +143,4 @@
"C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false
}
}

View File

@ -20,7 +20,6 @@ typedef struct _unkStruct {
HsfVector2f unk1C;
Vec unk24;
float unk30;
float unk34;
} unkStruct;
typedef struct _unkStruct2 {

View File

@ -71,13 +71,13 @@ typedef struct anim_bmp_data {
} AnimBmpData;
typedef struct anim_data {
s16 bankNum;
s16 patNum;
s16 bmpNum;
s16 useNum;
AnimBankData *bank;
AnimPatData *pat;
AnimBmpData *bmp;
} AnimData;
/* 0x00 */ s16 bankNum;
/* 0x02 */ s16 patNum;
/* 0x04 */ s16 bmpNum;
/* 0x06 */ s16 useNum;
/* 0x08 */ AnimBankData *bank;
/* 0x0C */ AnimPatData *pat;
/* 0x10 */ AnimBmpData *bmp;
} AnimData; //sizeof 0x14
#endif
#endif

View File

@ -2,6 +2,8 @@
#include "REL/instDll.h"
#define FONT_CHAR_MAX 100
static s32 FontCharFile[0xC6] = {
0,
0,
@ -227,9 +229,9 @@ s32 FontCreate(SeqWork *work, char *mess, s16 jp_flag)
if (grpNo == 0x10) {
return -1;
}
animP = HuMemDirectMalloc(HEAP_SYSTEM, 0x190);
posX = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
posY = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*)));
posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX));
posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY));
for (str = mess, len = 0, charNum = 0; str[0] != 0; str++) {
if (str[0] == 0x20 || str[0] == 0x10) {

View File

@ -661,7 +661,7 @@ void fn_1_2064(void)
for (var_r30 = 0; var_r30 < 0x17; var_r30++) {
temp_r26 = HuPrcChildCreate(fn_1_1DBC, 0x2000, 0x1000, 0, HuPrcCurrentGet());
var_r27 = HuMemDirectMalloc(HEAP_DATA, 0x18);
var_r27 = HuMemDirectMalloc(HEAP_DATA, sizeof(unkStruct4));
temp_r26->user_data = var_r27;
var_r27->unk0 = temp_r31->unk4;
var_r27->unk4 = var_r30;
@ -692,7 +692,7 @@ s32 fn_1_2708(void)
if (var_r31 >= 0x20) {
var_r31 = -1;
}
lbl_1_bss_278[var_r31] = HuMemDirectMalloc(HEAP_DATA, 0x34);
lbl_1_bss_278[var_r31] = HuMemDirectMalloc(HEAP_DATA, sizeof(unkStruct));
lbl_1_bss_278[var_r31]->unk6 = -1;
lbl_1_bss_278[var_r31]->unkA = 0;
return var_r31;

View File

@ -640,7 +640,7 @@ void fn_1_2470(omObjData *arg0)
temp_r29 = &Hu3DData[temp_r26];
temp_r28 = temp_r29->hsfData->root;
lbl_1_bss_60 = temp_r28->data.childrenCount;
lbl_1_bss_64 = HuMemDirectMalloc(HEAP_DATA, lbl_1_bss_60 * 64);
lbl_1_bss_64 = HuMemDirectMalloc(HEAP_DATA, lbl_1_bss_60 * sizeof(unkStruct6));
OSReport("Koopa Object Count %d\n", temp_r29->hsfData->objectCnt);
for (var_r30 = 0; var_r30 < lbl_1_bss_60; var_r30++) {

View File

@ -13,7 +13,9 @@
#include "REL/mpexDll.h"
static s32 fontDataTbl[0xC6] = {
#define FONT_CHAR_MAX 100
static s32 FontCharFile[0xC6] = {
0,
0,
0,
@ -214,127 +216,126 @@ static s32 fontDataTbl[0xC6] = {
0x140025,
};
s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2)
s32 fn_1_1CB80(SeqWork *arg0, char *arg1, s16 arg2)
{
u8 *var_r31;
s16 var_r30;
s16 *var_r29;
s16 var_r28;
s32 *var_r27;
s16 var_r26;
s32 var_r25;
s16 var_r23;
s16 *var_r22;
AnimData **var_r21;
s16 var_r20;
s16 var_r19;
char *str;
s16 len;
s16 *posY;
s16 charNum;
s32 *fileTbl;
s16 i;
s16 grpNo;
s32 file;
s16 *posX;
AnimData **animP;
s16 gid;
s16 sprid;
var_r27 = fontDataTbl;
fileTbl = FontCharFile;
for (var_r23 = 0; var_r23 < 0x10; var_r23++) {
if (arg0->spr_grp[var_r23] == -1) {
for (grpNo = 0; grpNo < 0x10; grpNo++) {
if (arg0->spr_grp[grpNo] == -1) {
break;
}
}
if (var_r23 == 0x10) {
if (grpNo == 0x10) {
return -1;
}
var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190);
var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*)));
posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX));
posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY));
for (var_r31 = arg1, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) {
if (var_r31[0] == 0x20 || var_r31[0] == 0x10) {
var_r30 += 0xE;
for (str = arg1, len = 0, charNum = 0; str[0] != 0; str++) {
if (str[0] == 0x20 || str[0] == 0x10) {
len += 0xE;
}
else if (var_r31[0] < 0x30 || var_r31[0] == 0x80 || var_r31[0] == 0x81) {
else if (str[0] < 0x30 || str[0] == 0x80 || str[0] == 0x81) {
continue;
}
else {
if (var_r31[1] == 0x80) {
if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) {
var_r25 = var_r27[var_r31[0] + 0x6A];
if (str[1] == 0x80) {
if ((str[0] >= 0x96) && (str[0] <= 0xA4)) {
file = fileTbl[str[0] + 0x6A];
}
else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) {
var_r25 = var_r27[var_r31[0] + 0x65];
else if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) {
file = fileTbl[str[0] + 0x65];
}
else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) {
var_r25 = var_r27[var_r31[0] + 0x43];
else if ((str[0] >= 0xD6) && (str[0] <= 0xE4)) {
file = fileTbl[str[0] + 0x43];
}
else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) {
var_r25 = var_r27[var_r31[0] + 0x3E];
else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) {
file = fileTbl[str[0] + 0x3E];
}
}
else if (var_r31[1] == 0x81) {
if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) {
var_r25 = var_r27[var_r31[0] + 0x6A];
else if (str[1] == 0x81) {
if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) {
file = fileTbl[str[0] + 0x6A];
}
else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) {
var_r25 = var_r27[var_r31[0] + 0x43];
else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) {
file = fileTbl[str[0] + 0x43];
}
}
else {
var_r25 = var_r27[var_r31[0]];
file = fileTbl[str[0]];
}
var_r21[var_r28] = HuSprAnimReadFile(var_r25);
var_r22[var_r28] = var_r30;
if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) {
var_r29[var_r28] = 2;
var_r30 += 0x12;
animP[charNum] = HuSprAnimReadFile(file);
posX[charNum] = len;
if ((str[0] >= 0x61) && (str[0] <= 0x7A)) {
posY[charNum] = 2;
len += 0x12;
}
else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) {
var_r29[var_r28] = 0;
var_r30 += 0x12;
else if ((str[0] == 0xC2) || (str[0] == 0xC3)) {
posY[charNum] = 0;
len += 0x12;
}
else if (var_r31[0] == 0x5C) {
var_r29[var_r28] = 0;
var_r30 += 8;
else if (str[0] == 0x5C) {
posY[charNum] = 0;
len += 8;
}
else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) {
var_r29[var_r28] = 4;
var_r30 += 0x18;
else if ((str[0] >= 0x87) && (str[0] <= 0x8F)) {
posY[charNum] = 4;
len += 0x18;
}
else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) {
var_r29[var_r28] = 4;
var_r30 += 0x18;
else if ((str[0] >= 0xC7) && (str[0] <= 0xCF)) {
posY[charNum] = 4;
len += 0x18;
}
else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) {
var_r29[var_r28] = 0;
var_r30 += 0x14;
else if ((str[0] == 0x3D) || (str[0] == 0x84)) {
posY[charNum] = 0;
len += 0x14;
}
else {
var_r29[var_r28] = 0;
var_r30 += 0x1C;
posY[charNum] = 0;
len += 0x1C;
}
var_r28++;
charNum++;
}
}
var_r20 = HuSprGrpCreate(var_r28);
arg0->spr_grp[var_r23] = var_r20;
arg0->alt_word_len = var_r30;
var_r30 = (var_r30 / 2) - 0xE;
for (var_r26 = 0; var_r26 < var_r28; var_r26++) {
var_r19 = HuSprCreate(var_r21[var_r26], 0, 0);
HuSprGrpMemberSet(var_r20, var_r26, var_r19);
HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]);
gid = HuSprGrpCreate(charNum);
arg0->spr_grp[grpNo] = gid;
arg0->alt_word_len = len;
len = (len / 2) - 0xE;
for (i = 0; i < charNum; i++) {
sprid = HuSprCreate(animP[i], 0, 0);
HuSprGrpMemberSet(gid, i, sprid);
HuSprPosSet(gid, i, posX[i] - len, posY[i]);
}
arg0->word_len = var_r28;
HuMemDirectFree(var_r21);
HuMemDirectFree(var_r22);
HuMemDirectFree(var_r29);
return var_r20;
arg0->word_len = charNum;
HuMemDirectFree(animP);
HuMemDirectFree(posX);
HuMemDirectFree(posY);
return gid;
}
s32 fn_1_1D02C(s32 arg0)
{
SeqWork sp10;
s16 spC[2];
u8 *var_r31;
char *var_r31;
s32 var_r30;
s16 var_r29;
u8 *var_r28;
char *var_r28;
s32 var_r27;
s32 var_r26;
s16 var_r25;

View File

@ -3,6 +3,8 @@
#include "REL/ztardll.h"
#define FONT_CHAR_MAX 100
#if VERSION_ENG
s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x01), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x02),
@ -107,156 +109,158 @@ s32 lbl_1_data_B0[0x132] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s32 fn_1_7754(SeqWork *work, char *mess)
{
char *var_r31;
s16 var_r30;
s16 *var_r29;
s16 var_r28;
s32 *var_r27;
s16 var_r26;
s16 var_r25;
s32 var_r24;
s16 *var_r22;
AnimData **var_r21;
s16 var_r20;
s16 var_r19;
char* str;
s16 len;
s16* posY;
s16 charNum;
s32* fileTbl;
s16 i;
s16 grpNo;
s32 file;
s16 *posX;
AnimData **animP;
s16 gid;
s16 sprid;
s32 var_r19_2;
var_r27 = lbl_1_data_B0;
for (var_r25 = 0; var_r25 < 0x10; var_r25++) {
if (work->spr_grp[var_r25] == -1) {
fileTbl = lbl_1_data_B0;
for (grpNo = 0; grpNo < 0x10; grpNo++) {
if (work->spr_grp[grpNo] == -1) {
break;
}
}
if (var_r25 == 0x10) {
if (grpNo == 0x10) {
return -1;
}
var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190);
var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) {
if (var_r31[0] == 0x20 || var_r31[0] == 0x10) {
var_r30 += VERSION_JP ? 0x1C : 0xE;
animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*)));
posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX));
posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY));
for (str = mess, len = 0, charNum = 0; str[0] != 0; str++) {
if (str[0] == 0x20 || str[0] == 0x10) {
len += VERSION_JP ? 0x1C : 0xE;
}
#if VERSION_PAL
else if (*var_r31 >= 0x30) {
var_r19_2 = var_r27[*var_r31];
var_r21[var_r28] = HuSprAnimReadFile(var_r19_2);
var_r22[var_r28] = var_r30;
if ((*var_r31 >= 0x61) && (*var_r31 <= 0x7A)) {
var_r29[var_r28] = 2;
var_r30 += 0x12;
else if (*str >= 0x30) {
var_r19_2 = fileTbl[*str];
animP[charNum] = HuSprAnimReadFile(var_r19_2);
posX[charNum] = len;
if ((*str >= 0x61) && (*str <= 0x7A)) {
posY[charNum] = 2;
len += 0x12;
}
else if ((*var_r31 == 0xC2) || (*var_r31 == 0xC3) || (*var_r31 == 0xC7)) {
var_r29[var_r28] = 0;
var_r30 += 0x12;
else if ((*str == 0xC2) || (*str == 0xC3) || (*str == 0xC7)) {
posY[charNum] = 0;
len += 0x12;
}
else if (*var_r31 == 0xC6) {
var_r29[var_r28] = 0;
var_r30 += 0x18;
else if (*str == 0xC6) {
posY[charNum] = 0;
len += 0x18;
}
else if (*var_r31 == 0x5C) {
var_r29[var_r28] = 0;
var_r30 += 8;
else if (*str == 0x5C) {
posY[charNum] = 0;
len += 8;
}
else if ((*var_r31 >= 0x90) && (*var_r31 <= 0x9F)) {
var_r29[var_r28] = -2;
var_r30 += 0x18;
else if ((*str >= 0x90) && (*str <= 0x9F)) {
posY[charNum] = -2;
len += 0x18;
}
else if ((*var_r31 >= 0xD0) && (*var_r31 <= 0xEF)) {
var_r29[var_r28] = -2;
var_r30 += 0x12;
else if ((*str >= 0xD0) && (*str <= 0xEF)) {
posY[charNum] = -2;
len += 0x12;
}
else if ((*var_r31 == 0x3D) || (*var_r31 == 0x84)) {
var_r29[var_r28] = 0;
var_r30 += 0x14;
else if ((*str == 0x3D) || (*str == 0x84)) {
posY[charNum] = 0;
len += 0x14;
}
else {
var_r29[var_r28] = 0;
var_r30 += 0x1C;
posY[charNum] = 0;
len += 0x1C;
}
var_r28++;
charNum++;
}
#else
else if (var_r31[0] < 0x30) {
else if (str[0] < 0x30) {
}
else if (var_r31[0] == 0x80) {
else if (str[0] == 0x80) {
}
else if (var_r31[0] == 0x81) {
else if (str[0] == 0x81) {
}
else {
if (var_r31[1] == 0x80) {
if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) {
var_r24 = var_r27[var_r31[0] + 0x6A];
if (str[1] == 0x80) {
if ((str[0] >= 0x96) && (str[0] <= 0xA4)) {
file = fileTbl[str[0] + 0x6A];
}
else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) {
var_r24 = var_r27[var_r31[0] + 0x65];
else if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) {
file = fileTbl[str[0] + 0x65];
}
else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) {
var_r24 = var_r27[var_r31[0] + 0x43];
else if ((str[0] >= 0xD6) && (str[0] <= 0xE4)) {
file = fileTbl[str[0] + 0x43];
}
else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) {
var_r24 = var_r27[var_r31[0] + 0x3E];
else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) {
file = fileTbl[str[0] + 0x3E];
}
}
else if (var_r31[1] == 0x81) {
if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) {
var_r24 = var_r27[var_r31[0] + 0x6A];
else if (str[1] == 0x81) {
if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) {
file = fileTbl[str[0] + 0x6A];
}
else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) {
var_r24 = var_r27[var_r31[0] + 0x43];
else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) {
file = fileTbl[str[0] + 0x43];
}
}
else {
var_r24 = var_r27[var_r31[0]];
file = fileTbl[str[0]];
}
var_r21[var_r28] = HuSprAnimReadFile(var_r24);
var_r22[var_r28] = var_r30;
if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) {
var_r29[var_r28] = 2;
var_r30 += 0x12;
animP[charNum] = HuSprAnimReadFile(file);
posX[charNum] = len;
if ((str[0] >= 0x61) && (str[0] <= 0x7A)) {
posY[charNum] = 2;
len += 0x12;
}
else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) {
var_r29[var_r28] = 0;
var_r30 += 0x12;
else if ((str[0] == 0xC2) || (str[0] == 0xC3)) {
posY[charNum] = 0;
len += 0x12;
}
else if (var_r31[0] == 0x5C) {
var_r29[var_r28] = 0;
var_r30 += 8;
else if (str[0] == 0x5C) {
posY[charNum] = 0;
len += 8;
}
else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) {
var_r29[var_r28] = 4;
var_r30 += 0x18;
else if ((str[0] >= 0x87) && (str[0] <= 0x8F)) {
posY[charNum] = 4;
len += 0x18;
}
else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) {
var_r29[var_r28] = 4;
var_r30 += 0x18;
else if ((str[0] >= 0xC7) && (str[0] <= 0xCF)) {
posY[charNum] = 4;
len += 0x18;
}
#if !VERSION_JP
else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) {
var_r29[var_r28] = 0;
var_r30 += 0x14;
else if ((str[0] == 0x3D) || (str[0] == 0x84)) {
posY[charNum] = 0;
len += 0x14;
}
#endif
else {
var_r29[var_r28] = 0;
var_r30 += 0x1C;
posY[charNum] = 0;
len += 0x1C;
}
var_r28++;
charNum++;
}
#endif
}
var_r20 = HuSprGrpCreate(var_r28);
work->spr_grp[var_r25] = var_r20;
work->alt_word_len = var_r30;
var_r30 = (var_r30 / 2) - 0xE;
for (var_r26 = 0; var_r26 < var_r28; var_r26++) {
var_r19 = HuSprCreate(var_r21[var_r26], 0, 0);
HuSprGrpMemberSet(var_r20, var_r26, var_r19);
HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]);
gid = HuSprGrpCreate(charNum);
work->spr_grp[grpNo] = gid;
work->alt_word_len = len;
len = (len / 2) - 0xE;
for (i = 0; i < charNum; i++) {
sprid = HuSprCreate(animP[i], 0, 0);
HuSprGrpMemberSet(gid, i, sprid);
HuSprPosSet(gid, i, posX[i] - len, posY[i]);
}
work->word_len = var_r28;
HuMemDirectFree(var_r21);
HuMemDirectFree(var_r22);
HuMemDirectFree(var_r29);
return var_r25;
work->word_len = charNum;
HuMemDirectFree(animP);
HuMemDirectFree(posX);
HuMemDirectFree(posY);
return grpNo;
}

View File

@ -5,6 +5,8 @@
#include "game/wipe.h"
#include "game/gamework_data.h"
#define MUSIC_HEAP_SIZE 0x13FC00
static int HuSePlay(int seId, MSM_SEPARAM *param);
extern s16 omSysExitReq;
@ -32,7 +34,6 @@ static char *lbl_8012E9AC[] = {
""
};
void HuAudInit(void)
{
MSM_INIT msmInit;
@ -41,8 +42,8 @@ void HuAudInit(void)
s32 result;
s16 i;
msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, 0x13FC00);
msmInit.heapSize = 0x13FC00;
msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, MUSIC_HEAP_SIZE);
msmInit.heapSize = MUSIC_HEAP_SIZE;
msmInit.msmPath = "/sound/mpgcsnd.msm";
msmInit.pdtPath = "/sound/mpgcstr.pdt";
msmInit.open = NULL;

View File

@ -17,6 +17,8 @@
#include "math.h"
#include "ext_math.h"
#define SHADOW_HEAP_SIZE 0x9000
ModelData Hu3DData[HU3D_MODEL_MAX];
CameraData Hu3DCamera[HU3D_CAM_MAX];
static s16 layerNum[8];
@ -1876,7 +1878,7 @@ void Hu3DFogClear(void) {
void Hu3DShadowCreate(f32 arg8, f32 arg9, f32 argA) {
Hu3DShadowData.unk_02 = 0xC0;
if (Hu3DShadowData.unk_04 == 0) {
Hu3DShadowData.unk_04 = HuMemDirectMalloc(HEAP_DATA, 0x9000);
Hu3DShadowData.unk_04 = HuMemDirectMalloc(HEAP_DATA, SHADOW_HEAP_SIZE);
}
Hu3DShadowData.unk_08.x = arg8;
Hu3DShadowData.unk_08.y = arg9;

View File

@ -8,6 +8,8 @@
#include "string.h"
#define THP_DECODE_STACK_SIZE 0x2000
static void THPTestProc(void);
static void THPViewFunc(ModelData *arg0, Mtx arg1);
static void THPViewSprFunc(HuSprite *arg0);
@ -153,8 +155,8 @@ static void THPTestProc(void)
HuPrcVSleep();
}
HuPrcVSleep();
decodeStackP = HuMemDirectMalloc(HEAP_SYSTEM, 0x2000);
decodeThread = OSSetIdleFunction(THPDecodeFunc, NULL, decodeStackP + 0x2000, 0x2000);
decodeStackP = HuMemDirectMalloc(HEAP_SYSTEM, THP_DECODE_STACK_SIZE);
decodeThread = OSSetIdleFunction(THPDecodeFunc, NULL, (decodeStackP + THP_DECODE_STACK_SIZE), THP_DECODE_STACK_SIZE);
decodeRate = 0;
THPStart = 1;
if (SimpleControl.unk19C == 1) {