diff --git a/configure.py b/configure.py index 22aeff6dee2..2385429416a 100755 --- a/configure.py +++ b/configure.py @@ -995,7 +995,7 @@ config.libs = [ Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01", "ShieldD"), "JSystem/JAudio2/JAUBankTable.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JAudio2/JAUClusterSound.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JAudio2/JAUInitializer.cpp"), - Object(Equivalent, "JSystem/JAudio2/JAUSectionHeap.cpp"), + Object(Equivalent, "JSystem/JAudio2/JAUSectionHeap.cpp"), #weak function order Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JAudio2/JAUSeqCollection.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JAudio2/JAUSeqDataBlockMgr.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JAudio2/JAUSoundAnimator.cpp"), @@ -1090,7 +1090,7 @@ config.libs = [ [ Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JSupport/JSUList.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JSupport/JSUInputStream.cpp"), - Object(NonMatching, "JSystem/JSupport/JSUOutputStream.cpp"), + Object(MatchingFor("Shield", "ShieldD"), "JSystem/JSupport/JSUOutputStream.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JSupport/JSUMemoryStream.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "JSystem/JSupport/JSUFileStream.cpp"), ], diff --git a/include/JSystem/JSupport/JSUOutputStream.h b/include/JSystem/JSupport/JSUOutputStream.h index 43d9d37ef05..b44ec084b05 100644 --- a/include/JSystem/JSupport/JSUOutputStream.h +++ b/include/JSystem/JSupport/JSUOutputStream.h @@ -12,7 +12,7 @@ public: JSUOutputStream() {} virtual ~JSUOutputStream(); - virtual s32 skip(s32, s8) = 0; + virtual s32 skip(s32, s8); virtual s32 writeData(const void*, s32) = 0; s32 write(const void*, s32); diff --git a/include/JSystem/JSupport/JSURandomOutputStream.h b/include/JSystem/JSupport/JSURandomOutputStream.h index 1b2648fabbf..d87a2995c5f 100644 --- a/include/JSystem/JSupport/JSURandomOutputStream.h +++ b/include/JSystem/JSupport/JSURandomOutputStream.h @@ -12,7 +12,6 @@ public: JSURandomOutputStream() {} virtual ~JSURandomOutputStream() {} - /* vt[3] */ virtual s32 skip(s32, s8); /* vt[4] */ virtual s32 writeData(const void*, s32) = 0; /* vt[5] */ virtual s32 getLength() const = 0; /* vt[6] */ virtual s32 getPosition() const = 0; diff --git a/src/JSystem/JAudio2/JAUSectionHeap.cpp b/src/JSystem/JAudio2/JAUSectionHeap.cpp index 3323a5839df..3cf6c7f2041 100644 --- a/src/JSystem/JAudio2/JAUSectionHeap.cpp +++ b/src/JSystem/JAudio2/JAUSectionHeap.cpp @@ -67,6 +67,14 @@ namespace { }; } +namespace { + bool JKRSolidHeap_isEmpty(JKRSolidHeap* pHeap) { + u32 beforeSize = pHeap->getFreeSize(); + pHeap->freeAll(); + return pHeap->getFreeSize() - beforeSize == 0; + } +} + /* 802A4EE8-802A4F68 29F828 0080+00 1/1 0/0 0/0 .text __ct__Q210JAUSection12TSectionDataFv */ JAUSection::TSectionData::TSectionData() { resetRegisteredWaveBankTables(); @@ -119,8 +127,8 @@ void JAUSection::finishBuild() { /* 802A5160-802A51E4 29FAA0 0084+00 2/0 0/0 0/0 .text dispose__10JAUSectionFv */ void JAUSection::dispose() { - /* JUT_ASSERT(267, ! data_.registeredBankTables.any()); - JUT_ASSERT(268, ! data_.registeredWaveBankTables.any()); */ + JUT_ASSERT(267, ! data_.registeredBankTables.any()); + JUT_ASSERT(268, ! data_.registeredWaveBankTables.any()); if (data_.mBstDst) { sectionHeap_->sectionHeapData_.soundTable->~JAUSoundTable(); sectionHeap_->sectionHeapData_.soundTable = NULL; @@ -362,7 +370,6 @@ JASBank* JAUSection::newBank(void const* param_0, u32 param_1) { } /* 802A5B84-802A5CAC 2A04C4 0128+00 0/0 1/1 0/0 .text newVoiceBank__10JAUSectionFUlUl */ -// NONMATCHING regalloc JASVoiceBank* JAUSection::newVoiceBank(u32 bank_no, u32 param_1) { { JUT_ASSERT(685, isOpen()); @@ -371,7 +378,6 @@ JASVoiceBank* JAUSection::newVoiceBank(u32 bank_no, u32 param_1) { JUT_ASSERT(688, waveBank != NULL); TPushCurrentHeap push(getHeap_()); JASBank* voiceBank = new JASVoiceBank(); - JASVoiceBank* voiceBank2 = (JASVoiceBank*)voiceBank; if (voiceBank) { if (buildingBankTable_) { JUT_ASSERT(696, buildingBankTable_->getBank( bank_no ) == 0); @@ -381,8 +387,8 @@ JASVoiceBank* JAUSection::newVoiceBank(u32 bank_no, u32 param_1) { JASDefaultBankTable::getInstance()->registBank(bank_no, voiceBank); data_.registeredBankTables.set(bank_no, true); } - voiceBank2->assignWaveBank(waveBank); - return voiceBank2; + voiceBank->assignWaveBank(waveBank); + return (JASVoiceBank*)voiceBank; } } return NULL; @@ -453,11 +459,6 @@ void JAUSectionHeap::releaseIdleDynamicSeqDataBlock() { sectionHeapData_.seqDataBlocks.releaseIdleDynamicSeqDataBlock(sectionHeapData_.seqDataUser); } -namespace { - // TODO - bool JKRSolidHeap_isEmpty(JKRSolidHeap*) { return 1; } -} - /* 802A5F24-802A5F9C 2A0864 0078+00 1/1 0/0 0/0 .text JAUNewSectionHeap__FP12JKRSolidHeapb */ static JAUSectionHeap* JAUNewSectionHeap(JKRSolidHeap* heap, bool param_1) { JUT_ASSERT(809, JKRSolidHeap_isEmpty( heap )); diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h index 4417a93b6c0..749acdcbf95 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h +++ b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h @@ -29,7 +29,7 @@ public: __bitset_base() { data = 0; } bool test(size_t pos) const { return data & (1 << pos); } - bool any() const; + bool any() const { return data != 0; } void set(size_t pos, bool val) { data |= (1 << pos); } void reset(size_t pos) { data &= ~(1 << pos); } private: @@ -62,6 +62,15 @@ template void __bitset_base::reset(size_t pos) { data[i] &= ~mask; } +template bool __bitset_base::any() const { + for (int i = 0; i < N; i++) { + if (data[i] != 0) { + return true; + } + } + return false; +} + template class bitset : private __bitset_base<(N - 1) / (sizeof(size_t) * 8) + 1> { public: typedef __bitset_base<(N - 1) / (sizeof(size_t) * 8) + 1> base; @@ -86,7 +95,9 @@ public: } return base::test(pos); } - bool any() const; + bool any() const { + return base::any(); + } }; } // namespace std