summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2025-12-26 19:20:21 -0500
committerGitHub <noreply@github.com>2025-12-26 16:20:21 -0800
commit09280ae00bf6e457aa4694dbcb3f8388f702f3b9 (patch)
tree05a1146271664c2d81756eaa162f11b4823ae1d0 /src
parent4ebf9fac9f21ffb7a0c9f33317001e83e82a39ac (diff)
Fix optimization flag for Shield (#3004)
* Fix optimization flag for Shield * Minor debug work * Fix NULL asserts
Diffstat (limited to 'src')
-rw-r--r--src/JSystem/J3DGraphBase/J3DTexture.cpp2
-rw-r--r--src/JSystem/JAWExtSystem/JAWWindow.cpp2
-rw-r--r--src/JSystem/JAudio2/JASAramStream.cpp2
-rw-r--r--src/JSystem/JAudio2/JASBNKParser.cpp4
-rw-r--r--src/JSystem/JAudio2/JASBasicInst.cpp4
-rw-r--r--src/JSystem/JAudio2/JASCmdStack.cpp2
-rw-r--r--src/JSystem/JAudio2/JASSimpleWaveBank.cpp2
-rw-r--r--src/JSystem/JAudio2/JASTrack.cpp2
-rw-r--r--src/JSystem/JStudio/JStudio/functionvalue.cpp10
-rw-r--r--src/JSystem/JStudio/JStudio/fvb.cpp12
-rw-r--r--src/d/actor/d_a_npc_ashB.cpp2
-rw-r--r--src/d/actor/d_a_obj_brakeeff.cpp2
-rw-r--r--src/d/actor/d_a_obj_shield.cpp4
-rw-r--r--src/d/actor/d_a_tag_watchge.cpp7
-rw-r--r--src/d/actor/d_a_title.cpp1
-rw-r--r--src/d/d_map_path.cpp2
-rw-r--r--src/d/d_menu_fmap.cpp2
-rw-r--r--src/m_Do/m_Do_ext.cpp29
18 files changed, 61 insertions, 30 deletions
diff --git a/src/JSystem/J3DGraphBase/J3DTexture.cpp b/src/JSystem/J3DGraphBase/J3DTexture.cpp
index 60c0590222..70d9a69031 100644
--- a/src/JSystem/J3DGraphBase/J3DTexture.cpp
+++ b/src/JSystem/J3DGraphBase/J3DTexture.cpp
@@ -49,7 +49,7 @@ void J3DTexture::addResTIMG(u16 newNum, const ResTIMG* newRes) {
if (newNum == 0)
return;
- J3D_ASSERT_NULLPTR(105, newRes != 0);
+ J3D_ASSERT_NULLPTR(105, newRes != NULL);
u16 oldNum = mNum;
ResTIMG* oldRes = mpRes;
diff --git a/src/JSystem/JAWExtSystem/JAWWindow.cpp b/src/JSystem/JAWExtSystem/JAWWindow.cpp
index 0a8b8f1afd..7153fd0d2d 100644
--- a/src/JSystem/JAWExtSystem/JAWWindow.cpp
+++ b/src/JSystem/JAWExtSystem/JAWWindow.cpp
@@ -207,7 +207,7 @@ void JAWWindow::TWindowText::drawSelf(f32, f32, Mtx* param_3) {
MTXConcat(*param_3, mGlobalMtx, stack_48);
GXLoadPosMtxImm(stack_48, 0);
field_0xfc.setParentAlpha(mColorAlpha);
- JUT_ASSERT(209, m_pParent != 0);
+ JUT_ASSERT(209, m_pParent != NULL);
m_pParent->setMatrix(stack_48);
m_pParent->onDraw(&field_0xfc);
}
diff --git a/src/JSystem/JAudio2/JASAramStream.cpp b/src/JSystem/JAudio2/JASAramStream.cpp
index a78c66d3ec..34a2c811c7 100644
--- a/src/JSystem/JAudio2/JASAramStream.cpp
+++ b/src/JSystem/JAudio2/JASAramStream.cpp
@@ -89,7 +89,7 @@ JASAramStream::JASAramStream() {
}
void JASAramStream::init(u32 param_0, u32 param_1, StreamCallback i_callback, void* i_callbackData) {
- JUT_ASSERT(153, sReadBuffer != 0);
+ JUT_ASSERT(153, sReadBuffer != NULL);
field_0x148 = param_0;
field_0x14c = param_1;
field_0x0c8 = 0.0f;
diff --git a/src/JSystem/JAudio2/JASBNKParser.cpp b/src/JSystem/JAudio2/JASBNKParser.cpp
index 66b9746715..c19daf5fe1 100644
--- a/src/JSystem/JAudio2/JASBNKParser.cpp
+++ b/src/JSystem/JAudio2/JASBNKParser.cpp
@@ -95,7 +95,7 @@ JASBasicBank* JASBNKParser::Ver1::createBasicBank(void const* stream, JKRHeap* h
switch (*data++) {
case 'Inst': {
JASBasicInst* instp = new (heap, 0) JASBasicInst();
- JUT_ASSERT(187, instp != 0);
+ JUT_ASSERT(187, instp != NULL);
u32 count = *data++;
for (int j = 0; j < count; j++) {
u32 index = *data++;
@@ -127,7 +127,7 @@ JASBasicBank* JASBNKParser::Ver1::createBasicBank(void const* stream, JKRHeap* h
case 'Perc': {
JASDrumSet* drump = new (heap, 0) JASDrumSet();
- JUT_ASSERT(264, drump != 0);
+ JUT_ASSERT(264, drump != NULL);
u32 pmap_count = data[1];
JUT_ASSERT(268, pmap_count <= 128);
u32 count = *data++;
diff --git a/src/JSystem/JAudio2/JASBasicInst.cpp b/src/JSystem/JAudio2/JASBasicInst.cpp
index 051136bc46..4cd85278f6 100644
--- a/src/JSystem/JAudio2/JASBasicInst.cpp
+++ b/src/JSystem/JAudio2/JASBasicInst.cpp
@@ -49,8 +49,8 @@ bool JASBasicInst::getParam(int param_0, int param_1, JASInstParam* param_2) con
void JASBasicInst::setKeyRegionCount(u32 count, JKRHeap* param_1) {
delete [] mKeymap;
- mKeymap = new (param_1, 0) TKeymap[count];
- JUT_ASSERT(114, mKeymap != 0);
+ mKeymap = new (param_1, 0) TKeymap[count];
+ JUT_ASSERT(114, mKeymap != NULL);
mKeymapCount = count;
}
diff --git a/src/JSystem/JAudio2/JASCmdStack.cpp b/src/JSystem/JAudio2/JASCmdStack.cpp
index 8d214151cc..1a39ab1560 100644
--- a/src/JSystem/JAudio2/JASCmdStack.cpp
+++ b/src/JSystem/JAudio2/JASCmdStack.cpp
@@ -18,7 +18,7 @@ bool JASPortCmd::addPortCmdOnce() {
}
bool JASPortCmd::setPortCmd(Command func, JASPortArgs* args) {
- JUT_ASSERT(81, func != 0);
+ JUT_ASSERT(81, func != NULL);
if (getSupervisor()) {
return false;
}
diff --git a/src/JSystem/JAudio2/JASSimpleWaveBank.cpp b/src/JSystem/JAudio2/JASSimpleWaveBank.cpp
index 1dc9da38ea..5598ab2277 100644
--- a/src/JSystem/JAudio2/JASSimpleWaveBank.cpp
+++ b/src/JSystem/JAudio2/JASSimpleWaveBank.cpp
@@ -15,7 +15,7 @@ JASSimpleWaveBank::~JASSimpleWaveBank() {
void JASSimpleWaveBank::setWaveTableSize(u32 size, JKRHeap* heap) {
delete[] mWaveTable;
mWaveTable = new (heap, 0) TWaveHandle[size];
- JUT_ASSERT(29, mWaveTable != 0);
+ JUT_ASSERT(29, mWaveTable != NULL);
mWaveTableSize = size;
}
diff --git a/src/JSystem/JAudio2/JASTrack.cpp b/src/JSystem/JAudio2/JASTrack.cpp
index 6ba0a66a79..eec0ebd644 100644
--- a/src/JSystem/JAudio2/JASTrack.cpp
+++ b/src/JSystem/JAudio2/JASTrack.cpp
@@ -190,7 +190,7 @@ void JASTrack::stopSeq() {
}
void JASTrack::start() {
- JUT_ASSERT(289, mParent != 0);
+ JUT_ASSERT(289, mParent != NULL);
JUT_ASSERT(290, mStatus == STATUS_FREE);
mStatus = STATUS_RUN;
}
diff --git a/src/JSystem/JStudio/JStudio/functionvalue.cpp b/src/JSystem/JStudio/JStudio/functionvalue.cpp
index 3aada44eb1..3a929bb433 100644
--- a/src/JSystem/JStudio/JStudio/functionvalue.cpp
+++ b/src/JSystem/JStudio/JStudio/functionvalue.cpp
@@ -262,7 +262,7 @@ f64 TFunctionValue_composite::composite_raw(TVector_pointer<TFunctionValue*> con
}
TFunctionValue** p = (TFunctionValue**)param_1.begin();
std::advance(p, index);
- JUT_ASSERT(0x247, p!=0);
+ JUT_ASSERT(0x247, p!=NULL);
TFunctionValue* piVar4 = *p;
return piVar4->getValue(param_3);
}
@@ -348,7 +348,7 @@ f64 TFunctionValue_composite::composite_add(TVector_pointer<TFunctionValue*> con
TContainerEnumerator_const_TVector<TFunctionValue*> aTStack_18(param_1);
while (aTStack_18) {
TFunctionValue* const* p = *aTStack_18;
- JUT_ASSERT(0x2a1, p!=0);
+ JUT_ASSERT(0x2a1, p!=NULL);
TFunctionValue* piVar3 = *p;
dVar4 += piVar3->getValue(param_3);
}
@@ -368,7 +368,7 @@ f64 TFunctionValue_composite::composite_subtract(TVector_pointer<TFunctionValue*
f64 dVar4 = pFront->getValue(param_3);
while (aTStack_18) {
TFunctionValue* const* p = *aTStack_18;
- JUT_ASSERT(0x2b5, p!=0);
+ JUT_ASSERT(0x2b5, p!=NULL);
TFunctionValue* piVar3 = *p;
dVar4 -= piVar3->getValue(param_3);
}
@@ -383,7 +383,7 @@ f64 TFunctionValue_composite::composite_multiply(TVector_pointer<TFunctionValue*
TContainerEnumerator_const_TVector<TFunctionValue*> aTStack_18(param_1);
while (aTStack_18) {
TFunctionValue* const* p = *aTStack_18;
- JUT_ASSERT(0x2c5, p!=0);
+ JUT_ASSERT(0x2c5, p!=NULL);
TFunctionValue* piVar3 = *p;
dVar4 *= piVar3->getValue(param_3);
}
@@ -403,7 +403,7 @@ f64 TFunctionValue_composite::composite_divide(TVector_pointer<TFunctionValue*>
TValue fData = pFront->getValue(param_3);
while (aTStack_18) {
TFunctionValue* const* p = *aTStack_18;
- JUT_ASSERT(0x2d9, p!=0);
+ JUT_ASSERT(0x2d9, p!=NULL);
TFunctionValue* piVar3 = *p;
fData /= piVar3->getValue(param_3);
JGADGET_ASSERTWARN(0x2db, fData!=TValue(0));
diff --git a/src/JSystem/JStudio/JStudio/fvb.cpp b/src/JSystem/JStudio/JStudio/fvb.cpp
index ce703f62dc..d10cd0c78a 100644
--- a/src/JSystem/JStudio/JStudio/fvb.cpp
+++ b/src/JSystem/JStudio/JStudio/fvb.cpp
@@ -374,14 +374,14 @@ void TFactory::destroy(TObject* pObject) {
}
TParse::TParse(TControl* pControl) : pControl_(pControl) {
- ASSERT(pControl_ != 0);
+ ASSERT(pControl_ != NULL);
}
TParse::~TParse() {}
bool TParse::parseHeader_next(void const** ppData_inout, u32* puBlock_out, u32 flags) {
- ASSERT(ppData_inout != 0);
- ASSERT(puBlock_out != 0);
+ ASSERT(ppData_inout != NULL);
+ ASSERT(puBlock_out != NULL);
const void* pData = *ppData_inout;
ASSERT(pData != NULL);
@@ -415,8 +415,8 @@ bool TParse::parseHeader_next(void const** ppData_inout, u32* puBlock_out, u32 f
}
bool TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 flags) {
- ASSERT(ppData_inout != 0);
- ASSERT(puData_out != 0);
+ ASSERT(ppData_inout != NULL);
+ ASSERT(puData_out != NULL);
const void* pData = *ppData_inout;
ASSERT(pData != NULL);
@@ -425,7 +425,7 @@ bool TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 fla
*puData_out = blk.get_size();
TControl* pControl = getControl();
- ASSERT(pControl != 0);
+ ASSERT(pControl != NULL);
if (flags & 0x10) {
if (pControl->getObject(blk.get_ID(), blk.get_IDSize()) != NULL)
diff --git a/src/d/actor/d_a_npc_ashB.cpp b/src/d/actor/d_a_npc_ashB.cpp
index 2073b86fa9..0a61d67882 100644
--- a/src/d/actor/d_a_npc_ashB.cpp
+++ b/src/d/actor/d_a_npc_ashB.cpp
@@ -943,7 +943,7 @@ bool daNpcAshB_c::demo(void* param_0) {
s32 staff_id = evtmgr.getMyStaffId(l_myName, NULL, 0);
if (staff_id != -1) {
mStaffID = staff_id;
- JUT_ASSERT(1523, mEvtSeqList[mOrderEvtNo] != 0);
+ JUT_ASSERT(1523, mEvtSeqList[mOrderEvtNo] != NULL);
if ((this->*(mEvtSeqList[mOrderEvtNo]))(staff_id)) {
evtmgr.cutEnd(staff_id);
}
diff --git a/src/d/actor/d_a_obj_brakeeff.cpp b/src/d/actor/d_a_obj_brakeeff.cpp
index cf8a2b06b0..d9299694f9 100644
--- a/src/d/actor/d_a_obj_brakeeff.cpp
+++ b/src/d/actor/d_a_obj_brakeeff.cpp
@@ -147,7 +147,7 @@ int useHeapInit(fopAc_ac_c* i_this) {
J3DModelData* modelData =
static_cast<J3DModelData*>(dComIfG_getObjectRes("Obj_Bef", bef_bmd[a_this->mEffectType]));
- JUT_ASSERT(339, modelData != 0);
+ JUT_ASSERT(339, modelData != NULL);
a_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
diff --git a/src/d/actor/d_a_obj_shield.cpp b/src/d/actor/d_a_obj_shield.cpp
index d2105d38b0..9815391dfa 100644
--- a/src/d/actor/d_a_obj_shield.cpp
+++ b/src/d/actor/d_a_obj_shield.cpp
@@ -349,11 +349,13 @@ static int daItemShield_Execute(daItemShield_c* i_this) {
}
static int daItemShield_Delete(daItemShield_c* i_this) {
+ fopAcM_RegisterDeleteID(i_this, "ObjSShield");
return i_this->_delete();
}
static int daItemShield_Create(fopAc_ac_c* i_this) {
- return static_cast<daItemShield_c*>(i_this)->create();
+ fopAcM_RegisterCreateID(daItemShield_c, i_this, "ObjSShield");
+ return a_this->create();
}
static actor_method_class l_daItemShield_Method = {
diff --git a/src/d/actor/d_a_tag_watchge.cpp b/src/d/actor/d_a_tag_watchge.cpp
index 7c1b06a5c1..15b920f211 100644
--- a/src/d/actor/d_a_tag_watchge.cpp
+++ b/src/d/actor/d_a_tag_watchge.cpp
@@ -59,17 +59,20 @@ static int daTagWatchGe_Delete(daTagWatchGe_c* i_this) {
int daTagWatchGe_c::create() {
fopAcM_ct(this, daTagWatchGe_c);
+ OS_REPORT("Tag_WatchGe PARAM %x\n", fopAcM_GetParam(this));
mGroupNo = fopAcM_GetParam(this);
if (mGroupNo == 0xFF) {
+ OS_REPORT("監視するグェーのグループが指定されてません!");
return cPhs_ERROR_e;
} else {
- field_0x568 = fopAcM_GetParam(this) >> 8;
+ field_0x568 = (fopAcM_GetParam(this) >> 8) & 0xFF;
if (field_0x568 == 0xFF) {
+ OS_REPORT("グェー監視タグのスイッチが指定されてません!");
return cPhs_ERROR_e;
}
- if (dComIfGs_isSwitch(field_0x568,fopAcM_GetRoomNo(this)) != 0) {
+ if (dComIfGs_isSwitch(field_0x568, fopAcM_GetRoomNo(this)) != 0) {
return cPhs_ERROR_e;
}
}
diff --git a/src/d/actor/d_a_title.cpp b/src/d/actor/d_a_title.cpp
index 22d39a7bbb..3072d3c24c 100644
--- a/src/d/actor/d_a_title.cpp
+++ b/src/d/actor/d_a_title.cpp
@@ -117,6 +117,7 @@ int daTitle_c::create() {
field_0x5f9 = 0;
m2DHeap = JKRExpHeap::create(0x8000, mDoExt_getGameHeap(), false);
+ JUT_ASSERT(345, m2DHeap != NULL);
loadWait_init();
g_daTitHIO.field_0x4 = -1;
diff --git a/src/d/d_map_path.cpp b/src/d/d_map_path.cpp
index afba0654ff..d34b981e89 100644
--- a/src/d/d_map_path.cpp
+++ b/src/d/d_map_path.cpp
@@ -173,7 +173,7 @@ bool dMpath_HIO_file_base_c::readBinaryFile(const char* param_1) {
if (file.open(JORFile::EFlags_READ, r26, NULL, NULL, NULL)) {
s32 r28 = file.getFileSize();
char* buf = new char[r28];
- JUT_ASSERT(855, buf != 0);
+ JUT_ASSERT(855, buf != NULL);
file.readData(buf, r28);
copyReadBufToData(buf, r28);
OSReport("write read success!::%6d\n", r28);
diff --git a/src/d/d_menu_fmap.cpp b/src/d/d_menu_fmap.cpp
index 649df3039f..1fb29a54ce 100644
--- a/src/d/d_menu_fmap.cpp
+++ b/src/d/d_menu_fmap.cpp
@@ -189,7 +189,7 @@ dMenu_Fmap_c::dMenu_Fmap_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i
}
mpTalkHeap = JKRCreateExpHeap(0x32000, mpHeap, false);
- JUT_ASSERT(359, mpTalkHeap != 0);
+ JUT_ASSERT(359, mpTalkHeap != NULL);
field_0x200 = 0;
mIsWarpMap = false;
diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp
index f8c2d65728..228bc9f29f 100644
--- a/src/m_Do/m_Do_ext.cpp
+++ b/src/m_Do/m_Do_ext.cpp
@@ -831,17 +831,42 @@ u32 mDoExt_adjustSolidHeap(JKRSolidHeap* i_heap) {
return -1;
}
+ u32 estimatedSize = i_heap->getHeapSize();
s32 result = i_heap->adjustSize();
if (result < 0) {
// "adjustSize failure %08x\n"
OSReport_Error("adjustSize失敗 %08x\n", i_heap);
return -1;
}
+ u32 actualSize = i_heap->getHeapSize();
+
+ #if DEBUG
+ if (lbl_8074C3B9[0]) {
+ // "\x1B[33mSolid heap estimate: %08x actual: %08x\n\x1B[m"
+ OS_REPORT("\x1B[33mソリッドヒープの見積もり %08x 実際 %08x\n\x1B[m", estimatedSize, actualSize);
+
+ if (estimatedSize > 0x400 && estimatedSize > (actualSize + 0x400)) {
+ // "\x1B[33mThe estimate is %x bytes too large (%5.2f times). This could lead to degraded memory efficiency.\n\x1B[m"
+ OS_REPORT("\x1B[33m見積もりが %x バイト大きい(%5.2f倍)です。メモリ効率悪化が懸念されます。\n\x1B[m", estimatedSize - actualSize, (f32)estimatedSize / (f32)actualSize);
+ } else if (estimatedSize >= (actualSize + 0x20)) {
+ // "\x1B[36mThe estimate is %x bytes too large. That's pretty good.\n\x1B[m"
+ OS_REPORT("\x1B[36m見積もりが %x バイト大きいです。だいぶいい感じです。\n\x1B[m", estimatedSize - actualSize);
+ } else {
+ // "\x1B[32mThe estimate is spot on! Perfect.\n\x1B[m"
+ OS_REPORT("\x1B[32m見積もりが、ジャストミート!完璧です。\n\x1B[m");
+ }
+ }
+
+ if (lbl_8074C3B9[0]) {
+ OS_REPORT("JKRSolidHeap::adjustSize %08x (%08x bytes)\n", (u32)i_heap, result);
+ }
+ #endif
// this probably indicates that 0x80 is some constant, maybe from a sizeof(JKRSolidHeap)
// with alignment?
- if (result >= (u32)0x80) {
- result -= 0x80;
+ u32 r25 = 0x80;
+ if (result >= r25) {
+ return result - r25;
}
return result;