diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2025-04-09 16:45:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-09 13:45:30 -0700 |
| commit | c6f76e7240dde8bbcf40a88d6d88cf87cab616b4 (patch) | |
| tree | bf9afbb1c32e66f45bdba30f61a9e4f0d92f804a /src/JSystem/JAudio2 | |
| parent | 6672817e41064e04951ec28d51070b66fc8377ac (diff) | |
Various JSystem work (#2383)
* JKernel and JStudio cleanup
* JMessage cleanup
* JAudio cleanup
* JASBNKParser work
* functionvalue work
* fvb work
* J2D and J3D cleanup
* steal from tww
* J2DPictureEx mostly done
* fix build
Diffstat (limited to 'src/JSystem/JAudio2')
| -rw-r--r-- | src/JSystem/JAudio2/JASAiCtrl.cpp | 2 | ||||
| -rw-r--r-- | src/JSystem/JAudio2/JASAramStream.cpp | 12 | ||||
| -rw-r--r-- | src/JSystem/JAudio2/JASBNKParser.cpp | 182 | ||||
| -rw-r--r-- | src/JSystem/JAudio2/JASBasicWaveBank.cpp | 59 | ||||
| -rw-r--r-- | src/JSystem/JAudio2/JASSeqParser.cpp | 27 | ||||
| -rw-r--r-- | src/JSystem/JAudio2/JASTrack.cpp | 1 | ||||
| -rw-r--r-- | src/JSystem/JAudio2/JAUSectionHeap.cpp | 24 |
7 files changed, 176 insertions, 131 deletions
diff --git a/src/JSystem/JAudio2/JASAiCtrl.cpp b/src/JSystem/JAudio2/JASAiCtrl.cpp index cb5a76edd9..25141ceb35 100644 --- a/src/JSystem/JAudio2/JASAiCtrl.cpp +++ b/src/JSystem/JAudio2/JASAiCtrl.cpp @@ -16,10 +16,8 @@ #include "JSystem/JAudio2/JASReport.h" #include "JSystem/JAudio2/JASLfo.h" #include "JSystem/JKernel/JKRSolidHeap.h" -#include "dol2asm.h" #include "dolphin/ai.h" #include <dolphin/os.h> -#include <dolphin/os.h> /* 80431C58-80431C68 05E978 000C+04 2/2 0/0 0/0 .bss sDmaDacBuffer__9JASDriver */ s16* JASDriver::sDmaDacBuffer[3]; diff --git a/src/JSystem/JAudio2/JASAramStream.cpp b/src/JSystem/JAudio2/JASAramStream.cpp index 4a56d47436..9f2596f5e9 100644 --- a/src/JSystem/JAudio2/JASAramStream.cpp +++ b/src/JSystem/JAudio2/JASAramStream.cpp @@ -29,8 +29,6 @@ u32 JASAramStream::sChannelMax; /* 80451260 0001+00 data_80451260 None */ /* 80451261 0001+00 data_80451261 None */ /* 80451262 0006+00 data_80451262 None */ -extern bool struct_80451260; -extern bool struct_80451261; bool struct_80451260; bool struct_80451261; @@ -331,7 +329,7 @@ bool JASAramStream::load() { } field_0x10c++; if (field_0x10c >= field_0x108) { - u32 uvar8 = mBlock - 1 + field_0x108; + u32 uvar8 = field_0x108 - 1 + mBlock; if (mLoop) { while (uvar8 > loop_end_block) { uvar8 -= loop_end_block; @@ -364,7 +362,6 @@ s32 JASAramStream::channelProcCallback(void* i_this) { /* 80296D94-80296DF0 2916D4 005C+00 2/1 0/0 0/0 .text dvdErrorCheck__13JASAramStreamFPv */ -// NONMATCHING supposed to use a switch table s32 JASAramStream::dvdErrorCheck(void* param_0) { switch (DVDGetDriveStatus()) { case DVD_STATE_END: @@ -375,7 +372,6 @@ s32 JASAramStream::dvdErrorCheck(void* param_0) { case DVD_STATE_WAITING: case DVD_STATE_COVER_CLOSED: case DVD_STATE_NO_DISK: - case DVD_STATE_COVER_OPEN: case DVD_STATE_WRONG_DISK: case DVD_STATE_MOTOR_STOPPED: case DVD_STATE_IGNORED: @@ -436,7 +432,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, i_dspChannel->field_0x110 = 0; field_0x120 = 0; field_0x12c |= 2; - if (field_0x0c4 < -1) { + if (field_0x0c4 < 0xffffffff) { field_0x0c4++; } field_0x0c0 = false; @@ -447,7 +443,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, } f32 fvar1 = field_0x0c4; fvar1 *= mLoopEnd - mLoopStart; - if (field_0x0c4 < -1) { + if (field_0x0c4 < 0xffffffff) { fvar1 += field_0x0b8; } fvar1 /= field_0x164; @@ -579,7 +575,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, } /* 802974AC-80297658 291DEC 01AC+00 1/1 0/0 0/0 .text channelProc__13JASAramStreamFv */ -// NONMATCHING instruction ordering +// NONMATCHING instruction ordering / regalloc s32 JASAramStream::channelProc() { OSMessage msg; while (OSReceiveMessage(&field_0x020, &msg, OS_MESSAGE_NOBLOCK)) { diff --git a/src/JSystem/JAudio2/JASBNKParser.cpp b/src/JSystem/JAudio2/JASBNKParser.cpp index 273112059f..0fe6b9b6eb 100644 --- a/src/JSystem/JAudio2/JASBNKParser.cpp +++ b/src/JSystem/JAudio2/JASBNKParser.cpp @@ -59,7 +59,6 @@ JASBNKParser::Ver1::TChunk* JASBNKParser::Ver1::findChunk(void const* stream, u3 /* 8029963C-80299A3C 293F7C 0400+00 1/1 0/0 0/0 .text * createBasicBank__Q212JASBNKParser4Ver1FPCvP7JKRHeap */ -// NONMATCHING instruction ordering, regalloc JASBasicBank* JASBNKParser::Ver1::createBasicBank(void const* stream, JKRHeap* heap) { if (heap == NULL) { heap = JASDram; @@ -74,44 +73,40 @@ JASBasicBank* JASBNKParser::Ver1::createBasicBank(void const* stream, JKRHeap* h TOscChunk* osc_chunk = (TOscChunk*)findChunk(stream, 'OSCT'); TListChunk* list_chunk = (TListChunk*)findChunk(stream, 'LIST'); - void* envt = new (heap, 2) u8[envt_chunk->mSize]; + u8* envt = new (heap, 2) u8[envt_chunk->mSize]; JASCalc::bcopy(envt_chunk->mData, envt, envt_chunk->mSize); - u32 count = osc_chunk->mCount; - TOsc* osc = osc_chunk->mOsc; + u32* ptr = &osc_chunk->mCount; + u32 count = *ptr++; JASOscillator::Data* osc_data = new (heap, 0) JASOscillator::Data[count]; - for (int i = 0; i < count; i++, osc++) { + for (int i = 0; i < count; i++, ptr += sizeof(TOsc) >> 2) { + TOsc* osc = (TOsc*)ptr; JASOscillator::Data* data = &osc_data[i]; data->mTarget = osc->mTarget; data->_04 = osc->_08; data->mScale = osc->mScale; data->_14 = osc->_18; - data->mTable = (JASOscillator::Point*)((int)envt + osc->mTableOffset); - data->_0C = (JASOscillator::Point*)((int)envt + osc->_10); + data->mTable = (JASOscillator::Point*)(envt + osc->mTableOffset); + data->_0C = (JASOscillator::Point*)(envt + osc->_10); } bank->newInstTable(list_chunk->mCount, heap); for (int i = 0; i < list_chunk->mCount; i++) { if (list_chunk->mOffsets[i] != 0) { - u32* ptr = (u32*)((int)stream + list_chunk->mOffsets[i]); - u32* data = ptr + 1; - switch (*ptr) { + u32* data = (u32*)((int)stream + list_chunk->mOffsets[i]); + switch (*data++) { case 'Inst': { JASBasicInst* inst = new (heap, 0) JASBasicInst(); - u32 count = *data; - data++; + u32 count = *data++; for (int j = 0; j < count; j++) { - u32 index = *data; - data++; + u32 index = *data++; inst->setOsc(j, &osc_data[index]); } - count = *data; - data++; + count = *data++; for (int j = 0; j < count; j++) { data++; } - count = *data; - data++; + count = *data++; inst->setKeyRegionCount(count, heap); for (int j = 0; j < count; j++) { JASBasicInst::TKeymap* keymap = inst->getKeyRegion(j); @@ -133,12 +128,10 @@ JASBasicBank* JASBNKParser::Ver1::createBasicBank(void const* stream, JKRHeap* h case 'Perc': { JASDrumSet* drum = new (heap, 0) JASDrumSet(); - u32 count = *data; - data++; + u32 count = *data++; drum->newPercArray(count, heap); for (int j = 0; j < count; j++) { - u32 offset = *data; - data++; + u32 offset = *data++; if (offset != 0) { JASDrumSet::TPerc* perc = new (heap, 0) JASDrumSet::TPerc(); u32* ptr = (u32*)((int)stream + offset); @@ -148,8 +141,7 @@ JASBasicBank* JASBNKParser::Ver1::createBasicBank(void const* stream, JKRHeap* h perc->setPan((f32)perc_data->mPan / 127.0f); perc->setRelease(perc_data->mRelease); ptr = (u32*)&perc_data->field_0xc; - u32 count2 = *ptr; - ptr++; + u32 count2 = *ptr++; for (int k = 0; k < count2; k++) { ptr++; } @@ -173,20 +165,150 @@ JASBasicBank* JASBNKParser::Ver1::createBasicBank(void const* stream, JKRHeap* h /* 80299A3C-80299E68 29437C 042C+00 1/1 0/0 0/0 .text * createBasicBank__Q212JASBNKParser4Ver0FPCvP7JKRHeap */ +// NONMATCHING JASBasicBank* JASBNKParser::Ver0::createBasicBank(void const* stream, JKRHeap* heap) { - // NONMATCHING + THeader const* header = (THeader*)stream; + + if (heap == NULL) { + heap = JASDram; + } + + JASBasicBank* bank = new (heap, 0) JASBasicBank(); + if (bank == NULL) { + return NULL; + } + + bank->newInstTable(0x80, heap); + + for (int i = 0; i < 0x80; i++) { + TInst* tinst = header->mOffsets.mInstOffset[i].ptr(stream); + if (tinst != NULL) { + JASBasicInst* inst = new (heap, 0) JASBasicInst(); + inst->setVolume(tinst->mVolume); + inst->setPitch(tinst->mPitch); + + int osc_idx = 0; + for (int j = 0; j < 2; j++) { + TOsc* tosc = tinst->mOscOffset[j].ptr(stream); + if (tosc != NULL) { + JASOscillator::Data* osc_data = findOscPtr(bank, header, tosc); + if (osc_data != NULL) { + inst->setOsc(osc_idx, osc_data); + } else { + osc_data = new (heap, 0) JASOscillator::Data(); + osc_data->mTarget = tosc->mTarget; + osc_data->_04 = tosc->field_0x4; + u32 size; + + JASOscillator::Point* points = tosc->mPointOffset.ptr(stream); + if (points != NULL) { + size = getOscTableEndPtr(points) - points; + JASOscillator::Point* table = new (heap, 0) JASOscillator::Point[size]; + JASCalc::bcopy(points, table, size * sizeof(JASOscillator::Point)); + osc_data->mTable = table; + } else { + osc_data->mTable = NULL; + } + + points = tosc->field_0xc.ptr(stream); + if (points != NULL) { + size = getOscTableEndPtr(points) - points; + JASOscillator::Point* table = new (heap, 0) JASOscillator::Point[size]; + JASCalc::bcopy(points, table, size * sizeof(JASOscillator::Point)); + osc_data->_0C = table; + } else { + osc_data->_0C = NULL; + } + + osc_data->mScale = tosc->mScale; + osc_data->_14 = tosc->field_0x14; + inst->setOsc(osc_idx, osc_data); + } + + osc_idx++; + } + } + + inst->setKeyRegionCount(tinst->mKeyRegionCount, heap); + for (int j = 0; j < tinst->mKeyRegionCount; j++) { + JASBasicInst::TKeymap* keymap = inst->getKeyRegion(j); + TKeymap* tkeymap = tinst->mKeymapOffset[j].ptr(stream); + keymap->setHighKey(tkeymap->mHighKey); + TVmap* tvmap = tkeymap->mVmapOffset.ptr(stream); + keymap->field_0x4 = JSULoHalf(tvmap->field_0x4); + keymap->field_0x8 = tvmap->field_0x8; + keymap->field_0xc = tvmap->field_0xc; + } + + bank->setInst(i, inst); + } + } + + for (int i = 0; i < 12; i++) { + TPerc* tperc = header->mOffsets.mPercOffset[i].ptr(stream); + if (tperc != NULL) { + JASDrumSet* drumset = new (heap, 0) JASDrumSet(); + drumset->newPercArray(0x80, heap); + + for (int j = 0; j < 0x80; j++) { + TPmap* tpmap = tperc->mPmapOffset[j].ptr(stream); + if (tpmap != NULL) { + JASDrumSet::TPerc* perc = new (heap, 0) JASDrumSet::TPerc(); + perc->setVolume(tpmap->mVolume); + perc->setPitch(tpmap->mPitch); + if (tperc->mMagic == 'PER2') { + perc->setPan(tperc->mPan[j] / 127.0f); + perc->setRelease(tperc->mRelease[j]); + } + TVmap* vmap = tpmap->mVmapOffset.ptr(stream); + perc->field_0xe = JSULoHalf(vmap->field_0x4); + perc->field_0x10 = vmap->field_0x8; + perc->field_0x14 = vmap->field_0xc; + drumset->setPerc(j, perc); + } + } + + bank->setInst(i + 0xe4, drumset); + } + } + + return bank; } /* 80299E68-80299F8C 2947A8 0124+00 1/1 0/0 0/0 .text * findOscPtr__Q212JASBNKParser4Ver0FP12JASBasicBankPCQ312JASBNKParser4Ver07THeaderPCQ312JASBNKParser4Ver04TOsc */ -void JASBNKParser::Ver0::findOscPtr(JASBasicBank* param_0, THeader const* param_1, - TOsc const* param_2) { - // NONMATCHING +JASOscillator::Data* JASBNKParser::Ver0::findOscPtr(JASBasicBank* bank, THeader const* header, + TOsc const* osc) { + TOffsetData const* data = &header->mOffsets; + for (int i = 0; i < 0x80; i++) { + TInst* tinst = data->mInstOffset[i].ptr(header); + if (tinst != NULL) { + for (int j = 0; j < 2; j++) { + TOsc* tosc = tinst->mOscOffset[j].ptr(header); + if (tosc == osc) { + JASInst* inst = bank->getInst(i); + if (inst != NULL) { + JASInstParam param; + inst->getParam(0x3c, 0x7f, ¶m); + if (j < param.field_0x1d) { + return param.field_0x14[j]; + } + } + } + } + } + } + return NULL; } /* 80299F8C-80299FA0 2948CC 0014+00 1/1 0/0 0/0 .text * getOscTableEndPtr__Q212JASBNKParser4Ver0FPCQ213JASOscillator5Point */ -void JASBNKParser::Ver0::getOscTableEndPtr(JASOscillator::Point const* param_0) { - // NONMATCHING +JASOscillator::Point const* JASBNKParser::Ver0::getOscTableEndPtr(JASOscillator::Point const* points) { + s16 tmp; + do { + tmp = points->_0; + points++; + } while (tmp <= 10); + return points; } diff --git a/src/JSystem/JAudio2/JASBasicWaveBank.cpp b/src/JSystem/JAudio2/JASBasicWaveBank.cpp index d4b44cada2..44d053da00 100644 --- a/src/JSystem/JAudio2/JASBasicWaveBank.cpp +++ b/src/JSystem/JAudio2/JASBasicWaveBank.cpp @@ -8,65 +8,6 @@ #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" -// -// Types: -// - -// -// Forward References: -// - -extern "C" void __ct__16JASBasicWaveBankFv(); -extern "C" void __dt__16JASBasicWaveBankFv(); -extern "C" void __dt__Q216JASBasicWaveBank11TWaveHandleFv(); -extern "C" void getWaveGroup__16JASBasicWaveBankFUl(); -extern "C" void setGroupCount__16JASBasicWaveBankFUlP7JKRHeap(); -extern "C" void setWaveTableSize__16JASBasicWaveBankFUlP7JKRHeap(); -extern "C" void incWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup(); -extern "C" void decWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup(); -extern "C" void getWaveHandle__16JASBasicWaveBankCFUl(); -extern "C" void -setWaveInfo__16JASBasicWaveBankFPQ216JASBasicWaveBank10TWaveGroupiUsRC11JASWaveInfo(); -extern "C" void __ct__Q216JASBasicWaveBank10TWaveGroupFv(); -extern "C" void __dt__Q216JASBasicWaveBank10TWaveGroupFv(); -extern "C" void setWaveCount__Q216JASBasicWaveBank10TWaveGroupFUlP7JKRHeap(); -extern "C" void onLoadDone__Q216JASBasicWaveBank10TWaveGroupFv(); -extern "C" void onEraseDone__Q216JASBasicWaveBank10TWaveGroupFv(); -extern "C" void getWaveID__Q216JASBasicWaveBank10TWaveGroupCFi(); -extern "C" void getWavePtr__Q216JASBasicWaveBank11TWaveHandleCFv(); -extern "C" void __dt__11JASWaveBankFv(); -extern "C" void __dt__13JASWaveHandleFv(); -extern "C" void __ct__Q216JASBasicWaveBank11TWaveHandleFv(); -extern "C" void __ct__Q216JASBasicWaveBank14TGroupWaveInfoFv(); -extern "C" void getWaveInfo__Q216JASBasicWaveBank11TWaveHandleCFv(); -extern "C" void getWaveArc__16JASBasicWaveBankFUl(); -extern "C" void getArcCount__16JASBasicWaveBankCFv(); -extern "C" u8 mNoLoad__16JASBasicWaveBank[4 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void __ct__10JASWaveArcFv(); -extern "C" void __dt__10JASWaveArcFv(); -extern "C" void onDispose__10JASWaveArcFv(); -extern "C" void* __nwa__FUlP7JKRHeapi(); -extern "C" void __dl__FPv(); -extern "C" void __dla__FPv(); -extern "C" void __destroy_new_array(); -extern "C" void __construct_new_array(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_29(); -extern "C" u32 one__11JASWaveInfo[1 + 1 /* padding */]; - -// -// Declarations: -// - /* 802984F8-80298558 292E38 0060+00 0/0 1/1 0/0 .text __ct__16JASBasicWaveBankFv */ JASBasicWaveBank::JASBasicWaveBank() { mWaveTable = NULL; diff --git a/src/JSystem/JAudio2/JASSeqParser.cpp b/src/JSystem/JAudio2/JASSeqParser.cpp index b0dfa1088e..7ed12a0ae9 100644 --- a/src/JSystem/JAudio2/JASSeqParser.cpp +++ b/src/JSystem/JAudio2/JASSeqParser.cpp @@ -843,15 +843,15 @@ s32 JASSeqParser::cmdDump(JASTrack* param_0, u32* param_1) { } /* 8029526C-80295498 28FBAC 022C+00 1/0 0/0 0/0 .text cmdPrintf__12JASSeqParserFP8JASTrackPUl */ -// NONMATCHING many things +// NONMATCHING problem with second for loop s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) { u8 stack_c[4]; u32 stack_10[4]; char buffer[128]; JASSeqCtrl* seqCtrl = param_0->getSeqCtrl(); - int r30 = 0; - for (u8 i = 0; i < 128; i++) { + u32 r30 = 0; + for (u32 i = 0; i < 128; i++) { buffer[i] = seqCtrl->readByte(); if (buffer[i] == 0) { break; @@ -861,15 +861,18 @@ s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) { if (buffer[i] == 0) { break; } - if (buffer[i] == 'n') { + switch (buffer[i]) { + case 'n': buffer[i] = '\r'; + break; } } else if (buffer[i] == '%') { - buffer[i + 1] = seqCtrl->readByte(); - if (buffer[i + 1] == 0) { + i++; + buffer[i] = seqCtrl->readByte(); + if (buffer[i] == 0) { break; } - switch (buffer[i + 1]) { + switch (buffer[i]) { case 'd': stack_c[r30] = 0; break; @@ -881,18 +884,17 @@ s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) { break; case 'r': stack_c[r30] = 3; - buffer[i + 1] = 'd'; + buffer[i] = 'd'; break; case 'R': stack_c[r30] = 4; - buffer[i + 1] = 'x'; - break; - default: + buffer[i] = 'x'; break; } r30++; } } + for (u32 i = 0; i < r30; i++) { stack_10[i] = seqCtrl->readByte(); switch (stack_c[i]) { @@ -903,10 +905,9 @@ s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) { case 4: stack_10[i] = readReg(param_0, stack_10[i] & 0xff); break; - default: - break; } } + JASReport(buffer, stack_10[0], stack_10[1], stack_10[2], stack_10[3]); return 0; } diff --git a/src/JSystem/JAudio2/JASTrack.cpp b/src/JSystem/JAudio2/JASTrack.cpp index 591dbf2e58..53a2d629e6 100644 --- a/src/JSystem/JAudio2/JASTrack.cpp +++ b/src/JSystem/JAudio2/JASTrack.cpp @@ -11,7 +11,6 @@ #include "JSystem/JAudio2/JASDSPInterface.h" /* 80291228-8029131C 28BB68 00F4+00 1/1 3/3 0/0 .text __ct__8JASTrackFv */ -// NONMATCHING JASTrack::JASTrack() : mDefaultChannelMgr(this), mChannelMgrCount(1), mStatus(0) { mChannelMgrs[0] = &mDefaultChannelMgr; for (int i = 1; i < 4; i++) { diff --git a/src/JSystem/JAudio2/JAUSectionHeap.cpp b/src/JSystem/JAudio2/JAUSectionHeap.cpp index a036282c89..866e5acef7 100644 --- a/src/JSystem/JAudio2/JAUSectionHeap.cpp +++ b/src/JSystem/JAudio2/JAUSectionHeap.cpp @@ -18,7 +18,6 @@ #include "JSystem/JAudio2/JAUStreamFileTable.h" #include "JSystem/JKernel/JKRSolidHeap.h" #include "stdlib.h" -#include "dol2asm.h" #include "dolphin/dvd.h" namespace { @@ -78,12 +77,6 @@ JAUSection::TSectionData::TSectionData() { field_0x9c = 0; } -/* 8039B950-8039B950 027FB0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039B950 = "index out of range of bitset::reset"; -#pragma pop - /* 802A4F68-802A4FE4 29F8A8 007C+00 1/1 0/0 0/0 .text * resetRegisteredBankTables__Q210JAUSection12TSectionDataFv */ void JAUSection::TSectionData::resetRegisteredBankTables() { @@ -139,7 +132,6 @@ void JAUSection::dispose() { /* 802A51E4-802A52A0 29FB24 00BC+00 0/0 1/1 0/0 .text newSoundTable__10JAUSectionFPCvUlb */ -// NONMATCHING regalloc JAUSoundTable* JAUSection::newSoundTable(void const* bst, u32 param_1, bool param_2) { JUT_ASSERT(285, isOpen()); JUT_ASSERT(286, isBuilding()); @@ -148,7 +140,7 @@ JAUSoundTable* JAUSection::newSoundTable(void const* bst, u32 param_1, bool para JUT_ASSERT(289, sectionHeap_->sectionHeapData_.soundTable == 0); { TPushCurrentHeap push(getHeap_()); - void* bstDst; + void const* bstDst = bst; if (param_1) { bstDst = newCopy(bst, param_1, 4); JUT_ASSERT(296, bstDst); @@ -163,7 +155,6 @@ JAUSoundTable* JAUSection::newSoundTable(void const* bst, u32 param_1, bool para } /* 802A52A0-802A535C 29FBE0 00BC+00 0/0 1/1 0/0 .text newSoundNameTable__10JAUSectionFPCvUlb */ -// NONMATCHING regalloc JAUSoundNameTable* JAUSection::newSoundNameTable(void const* bstn, u32 param_1, bool param_2) { JUT_ASSERT(315, isOpen()); JUT_ASSERT(316, isBuilding()); @@ -172,7 +163,7 @@ JAUSoundNameTable* JAUSection::newSoundNameTable(void const* bstn, u32 param_1, JUT_ASSERT(319, sectionHeap_->sectionHeapData_.soundNameTable == 0); { TPushCurrentHeap push(getHeap_()); - void* bstnDst; + void const* bstnDst = bstn; if (param_1) { bstnDst = newCopy(bstn, param_1, 4); JUT_ASSERT(326, bstnDst); @@ -304,13 +295,10 @@ void* JAUSection::newCopy(void const* param_0, u32 param_1, s32 param_2) { return r31; } -/* ############################################################################################## */ -/* 8039B950-8039B950 027FB0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039B974 = "index out of range of bitset::test"; -SECTION_DEAD static char const* const stringBase_8039B997 = "index out of range of bitset::set"; -#pragma pop +static bool dummy_string(int i) { + std::bitset<1> x; + return x.test(i); +} /* 802A5854-802A5948 2A0194 00F4+00 0/0 1/1 0/0 .text newWaveBank__10JAUSectionFUlPCv */ JASWaveBank* JAUSection::newWaveBank(u32 bank_no, void const* param_1) { |
