Skip to content

Some audio work, CGX_Impl.hpp, CCube* fixes#40

Merged
encounter merged 5 commits intomainfrom
audio
Mar 8, 2026
Merged

Some audio work, CGX_Impl.hpp, CCube* fixes#40
encounter merged 5 commits intomainfrom
audio

Conversation

@encounter
Copy link
Member

No description provided.

@decomp-dev
Copy link

decomp-dev bot commented Mar 8, 2026

Report for GM8E01_48 (571b196 - cbd73be)

📈 Matched code: 11.38% (+0.11%, +4248 bytes)
📈 Matched data: 7.03% (+0.05%, +1000 bytes)

✅ 46 new matches
Unit Item Bytes Before After
main/Kyoto/Audio/CDSPStream .bss +992 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial DoModelShadow(unsigned int, unsigned int) +872 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager __sinit_CStreamAudioManager_cpp +268 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial HandleDepth(unsigned int, unsigned int) +208 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::InitializeStream() +200 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::Initialize() +160 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::DeallocateStream() +160 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::FindStreamIdx(int) +140 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::EnsureTevsDirect() +132 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager SDSPStreamCacheEntry::SDSPStreamCacheEntry() +124 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysUnloadSampleData(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +116 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SfxStart(unsigned short, unsigned char, unsigned char, unsigned char) +104 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::SilenceStream() +100 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial CCubeModel::EnableShadowMaps(const CTexture*, const CTransform4f&, unsigned char, unsigned char) +88 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::FreeAllStreams(int) +88 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::UpdateStreamVolume(int) +88 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::StopStreaming(int) +84 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysIsGroupSetLoaded(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +80 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::StopStream() +76 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::GetCompressedBlend() const +56 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::CloseFiles() +56 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::ResetCachedMaterials() +52 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SfxSpan(unsigned long, unsigned char) +44 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SfxVolume(unsigned long, unsigned char) +44 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SfxPitchBend(unsigned long, unsigned short) +44 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::TrkSetVolume(unsigned char, unsigned char) +40 0.00% 100.00%
main/Kyoto/Audio/CStaticAudioPlayer CStaticAudioPlayer::SetVolume(char) +40 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysPopGroupFromARAM() +32 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SfxStop(unsigned long) +32 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SfxCheck(unsigned long) +32 0.00% 100.00%

...and 16 more new matches

📈 33 improvements in unmatched items
Unit Item Bytes Before After
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::SetCurrent(const CModelFlags&, const CCubeSurface&, const CCubeModel&) const +1347 0.00% 70.63%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::HandleReflection(bool, _GXTexMapID, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int&, unsigned int&) +978 0.00% 97.07%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::EnsureViewDepStateCached(const CCubeSurface*) +804 0.00% 62.07%
main/Kyoto/Graphics/CCubeMaterial HandleColorChannels(unsigned int, unsigned int) +727 0.00% 94.25%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::SetCurrentBlack() const +627 0.00% 99.94%
main/Kyoto/Audio/DolphinCAudioSys rstl::red_black_tree<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>, 0, rstl::select1st<rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>>, rstl::less<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>, rstl::rmemory_allocator>::insert_into(rstl::red_black_tree<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>, 0, rstl::select1st<rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>>, rstl::less<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>, rstl::rmemory_allocator>::node*, const rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>&) +584 0.00% 91.31%
main/Kyoto/Audio/DolphinCAudioSys rstl::red_black_tree<unsigned int, rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>, 0, rstl::select1st<rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>>, rstl::less<unsigned int>, rstl::rmemory_allocator>::insert_into(rstl::red_black_tree<unsigned int, rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>, 0, rstl::select1st<rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>>, rstl::less<unsigned int>, rstl::rmemory_allocator>::node*, const rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>&) +519 0.00% 91.46%
main/Kyoto/Audio/CDSPStream CDSPStream::BufferStream() +468 0.00% 98.32%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::TrkQueueTrack(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, void (*)(unsigned long), unsigned int) +443 0.00% 99.85%
main/Kyoto/Audio/CDSPStream CDSPStream::AllocateStereo(const SStreamInfo&, const SStreamInfo&, char, int) +301 0.00% 94.06%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysLoadGroupSet(CSimplePool*, unsigned int) +235 0.00% 41.22%
main/Kyoto/Graphics/CCubeMaterial DoPassthru(unsigned int) +225 0.00% 95.42%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::S3dAddEmitterParaEx(const CAudioSys::C3DEmitterParmData&, unsigned short, SND_PARAMETER_INFO*) +214 40.09% 97.80%
main/Kyoto/Audio/CDSPStream CDSPStream::AllocateMono(const SStreamInfo&, char, char, int) +189 0.00% 98.75%
main/Kyoto/Graphics/CCubeMaterial CCubeModel::SetNewPlayerPositionAndTime(const CVector3f&, const CStopwatch&) +182 0.00% 65.96%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysGetGroupSetName(unsigned int) +143 0.00% 83.21%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysUnloadGroupSet(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +140 0.00% 34.21%
main/Kyoto/Audio/CDSPStream CDSPStream::IsStreamAvailable(int) +121 0.00% 98.06%
main/Kyoto/Audio/CDSPStream CDSPStream::IsStreamActive(int) +119 0.00% 96.13%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysPushGroupIntoARAM(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, unsigned char) +117 0.00% 54.43%
main/Kyoto/Audio/CStaticAudioPlayer CStaticAudioPlayer::Decode(const unsigned short*, unsigned short*, int) +102 55.44% 90.29%
main/Kyoto/Graphics/CCubeMaterial .rodata +98 71.43% 94.12%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::FindGroupSet(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +96 0.00% 46.25%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::FindTrack(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +96 0.00% 46.25%
main/Kyoto/Graphics/CCubeMaterial CGX::SetTevIndWarp(_GXTevStageID, _GXIndTexStageID, unsigned char, unsigned char, _GXIndTexMtxID) +73 0.00% 42.88%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::TrkFlushTracks() +45 0.00% 44.15%
main/Kyoto/Audio/CStreamAudioManager .sdata2 +33 0.00% 83.33%
main/Kyoto/Graphics/CCubeMaterial .sdata2 +26 41.67% 68.52%
main/Kyoto/Graphics/CCubeMaterial .sdata +11 0.00% 72.73%
main/Kyoto/Audio/CStreamAudioManager .sdata +10 0.00% 41.86%

...and 3 more improvements in unmatched items

📉 4 regressions in unmatched items
Unit Item Bytes Before After
main/Kyoto/rstl/RstlExtras CStringExtras::IndexOfSubstring(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) -187 95.51% 0.00%
main/Kyoto/Audio/CStaticAudioPlayer CStaticAudioPlayer::DecodeMonoAndMix(const unsigned short*, unsigned short*, int, int, int, unsigned short, g72x_state&) -4 0.99% 0.00%
main/Kyoto/Graphics/CCubeMaterial .sbss -3 18.18% 10.26%
main/Kyoto/Audio/DolphinCAudioSys .sbss 0 6.06% 4.76%

Report for GM8E01_00 (571b196 - cbd73be)

📈 Matched code: 30.04% (+0.26%, +10300 bytes)
📈 Matched data: 31.79% (+0.05%, +1040 bytes)

✅ 105 new matches
Unit Item Bytes Before After
main/Kyoto/Audio/CDSPStream .bss +992 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial DoModelShadow(unsigned int, unsigned int) +872 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::ReadCompleted(long, DVDFileInfo*) +612 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::AllocateStream(const SStreamInfo&, char, char) +356 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::Update(float) +344 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::SetCurrentAudio(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, float, float, unsigned char) +332 0.00% 100.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) +304 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager __sinit_CStreamAudioManager_cpp +268 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::StopAllStreams() +268 0.00% 100.00%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::FindUnclaimedStereoPair(int&, int&) +236 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::StopOneShot() +236 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::fn_8036590C(float) +224 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::PlayTrack(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +212 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial HandleDepth(unsigned int, unsigned int) +208 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::InitializeStream() +200 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::DoAllocateStream() +184 0.00% 100.00%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::CDSPStreamManager(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, int, char, char) +176 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::UpdateVolume(int, int) +168 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::Silence(int) +164 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::Initialize() +160 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::DeallocateStream() +160 0.00% 100.00%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::FindClaimedStreamIdx(int) +156 0.00% 100.00%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::CDSPStreamManager() +148 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager SDSPStreamCacheEntry::SDSPStreamCacheEntry(int, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, int, float, float, int, bool) +140 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::FindStreamIdx(int) +140 0.00% 100.00%
main/Kyoto/Audio/CStaticAudioPlayer fn_8036C8F0 +133 19.37% 100.00%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::EnsureTevsDirect() +132 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::UpdateStream(void*, unsigned long, void*, unsigned long, unsigned long) +132 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::GetTargetDSPVolume(int, bool) +128 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys rstl::rc_ptr<CAudioSys::CTrkData>::ReleaseData() +124 0.00% 100.00%

...and 75 more new matches

🥀 12 broken matches
Unit Item Bytes Before After
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) -304 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::IsDSPFile(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) -180 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::~CScriptStreamedMusic() -116 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio .data -104 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::Play(CStateManager&) -96 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio rstl::operator+(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, char) -96 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::Accept(IVisitor&) -56 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::StopStream(CStateManager&) -56 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::Stop(CStateManager&) -52 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::sub_8020c3f0(CStateManager&) -36 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio sub_8020c844 -16 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio nullsub_42 -4 100.00% 0.00%
📈 58 improvements in unmatched items
Unit Item Bytes Before After
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::SetCurrent(const CModelFlags&, const CCubeSurface&, const CCubeModel&) const +1347 0.00% 70.63%
main/Kyoto/Graphics/CCubeMaterial HandleTransparency(unsigned int&, unsigned int&, const CModelFlags&, unsigned int, unsigned int&, unsigned int&) +1079 0.00% 96.36%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::HandleReflection(bool, _GXTexMapID, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int&, unsigned int&) +978 0.00% 97.07%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::EnsureViewDepStateCached(const CCubeSurface*) +804 0.00% 62.07%
main/Kyoto/Graphics/CCubeMaterial HandleColorChannels(unsigned int, unsigned int) +727 0.00% 94.25%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::SetCurrentBlack() const +627 0.00% 99.94%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::UpdateSoftwareChannel(CStreamAudioManager::ESoftwareChannel, float) +583 0.00% 96.56%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::PlaySoftwareAudio(CStreamAudioManager::ESoftwareChannel, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, int, bool, float, float) +564 0.00% 97.31%
main/MetroidPrime/CFluidPlaneCPU CFluidPlaneCPU::RenderSetup(const CStateManager&, float, const CTransform4f&, const CTransform4f&, const CAABox&, CScriptWater*) const +520 70.90% 80.21%
main/Kyoto/Audio/CDSPStream CDSPStream::BufferStream() +468 0.00% 98.32%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::TrkQueueTrack(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, void (*)(unsigned long), unsigned int) +443 0.00% 99.85%
main/Kyoto/Audio/CStaticAudioPlayer CStaticAudioPlayer::DecodeMonoAndMix(unsigned short*, unsigned short*, int, int, int, int, int, g72x_state&) +388 0.99% 97.19%
main/Kyoto/Audio/CDSPStream CDSPStream::AllocateStereo(const SStreamInfo&, const SStreamInfo&, char, int) +301 0.00% 94.06%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::StopSoftwareAudio(CStreamAudioManager::ESoftwareChannel, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +291 0.00% 98.51%
main/Kyoto/Audio/CDSPStream CDSPStream::PickFreeStream(CDSPStream*&, int) +286 0.00% 95.40%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::sub_8020be90() +276 0.00% 53.51%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::TweakOverride(CStateManager&) +269 0.00% 91.14%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysLoadGroupSet(TLockedToken<CAudioGroupSet>, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, unsigned int) +268 0.00% 51.67%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysLoadGroupSet(CSimplePool*, unsigned int) +235 0.00% 41.22%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::GetFreeHandleId() +233 0.00% 92.68%
main/Kyoto/Graphics/CCubeMaterial DoPassthru(unsigned int) +225 0.00% 95.42%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::S3dAddEmitterParaEx(const CAudioSys::C3DEmitterParmData&, unsigned short, SND_PARAMETER_INFO*) +214 40.09% 97.80%
main/Kyoto/Audio/CDSPStream CDSPStream::AllocateMono(const SStreamInfo&, char, char, int) +189 0.00% 98.75%
main/Kyoto/Graphics/CCubeMaterial CCubeModel::SetNewPlayerPositionAndTime(const CVector3f&, const CStopwatch&) +182 0.00% 65.96%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::CScriptStreamedMusic(TUniqueId, const CEntityInfo&, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, bool, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, bool, float, float, unsigned int, bool, bool) +181 0.00% 98.70%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::StartHeaderRead(void (*)(long, DVDFileInfo*)) +165 0.00% 82.98%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::GetStreamState(int) +155 0.00% 74.79%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysGetGroupSetName(unsigned int) +143 0.00% 83.21%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysUnloadGroupSet(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +140 0.00% 34.21%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::CanStop(int) +125 0.00% 62.74%

...and 28 more improvements in unmatched items

📉 10 regressions in unmatched items
Unit Item Bytes Before After
main/MetaRender/CCubeRenderer CCubeRenderer::DrawXRayOutline(const CModel&, const float*, const float*) -434 98.66% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::sub_8020be90() -286 55.44% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::TweakOverride(CStateManager&) -201 67.96% 0.00%
main/Kyoto/rstl/RstlExtras CStringExtras::IndexOfSubstring(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) -187 95.51% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::CScriptStreamedMusic(TUniqueId, const CEntityInfo&, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, bool, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, bool, float, float, unsigned int, bool, bool) -181 98.70% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::sub_8020c414(CStateManager&) -90 93.75% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::StartStream(CStateManager&) -70 93.37% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio .rodata -21 90.91% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::IsOneShot(bool) -13 85.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio .sdata2 -2 28.57% 0.00%

Report for GM8E01_01 (571b196 - cbd73be)

📈 Matched code: 29.29% (+0.18%, +7072 bytes)
📈 Matched data: 9.20% (+0.05%, +1000 bytes)

✅ 77 new matches
Unit Item Bytes Before After
main/Kyoto/Audio/CDSPStream .bss +992 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial DoModelShadow(unsigned int, unsigned int) +872 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::Update(float) +344 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::SetCurrentAudio(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, float, float, unsigned char) +332 0.00% 100.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) +304 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager __sinit_CStreamAudioManager_cpp +268 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::StopAllStreams() +268 0.00% 100.00%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::FindUnclaimedStereoPair(int&, int&) +236 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::StopOneShot() +236 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::fn_8036590C(float) +224 0.00% 100.00%
main/Kyoto/Graphics/CCubeMaterial HandleDepth(unsigned int, unsigned int) +208 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::InitializeStream() +200 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::Initialize() +160 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::DeallocateStream() +160 0.00% 100.00%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::FindClaimedStreamIdx(int) +156 0.00% 100.00%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::CDSPStreamManager() +148 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::FindStreamIdx(int) +140 0.00% 100.00%
main/Kyoto/Audio/CStaticAudioPlayer fn_8036C8F0 +133 19.37% 100.00%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::EnsureTevsDirect() +132 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager SDSPStreamCacheEntry::SDSPStreamCacheEntry() +124 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysUnloadSampleData(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +116 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::InternalSetVolume(float) +116 0.00% 100.00%
main/Kyoto/Audio/CStaticAudioPlayer fn_8036C87C +116 0.00% 100.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::~CScriptStreamedMusic() +116 0.00% 100.00%
main/Kyoto/Audio/CStreamAudioManager CStreamAudioManager::SetDefaultAudio(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, float, float, unsigned char) +112 0.00% 100.00%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SfxStart(unsigned short, unsigned char, unsigned char, unsigned char) +104 0.00% 100.00%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::FindUnclaimedStreamIdx() +104 0.00% 100.00%
main/Kyoto/Audio/CDSPStream CDSPStream::SilenceStream() +100 0.00% 100.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::Play(CStateManager&) +96 0.00% 100.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic rstl::operator+(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, char) +96 0.00% 100.00%

...and 47 more new matches

🥀 10 broken matches
Unit Item Bytes Before After
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) -304 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::IsDSPFile(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) -180 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::~CScriptStreamedMusic() -116 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::Play(CStateManager&) -96 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio rstl::operator+(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, char) -96 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::Accept(IVisitor&) -56 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::StopStream(CStateManager&) -56 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::Stop(CStateManager&) -52 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio sub_8020c844 -16 100.00% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio nullsub_42 -4 100.00% 0.00%
📈 48 improvements in unmatched items
Unit Item Bytes Before After
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::SetCurrent(const CModelFlags&, const CCubeSurface&, const CCubeModel&) const +1347 0.00% 70.63%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::HandleReflection(bool, _GXTexMapID, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int&, unsigned int&) +978 0.00% 97.07%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::EnsureViewDepStateCached(const CCubeSurface*) +804 0.00% 62.07%
main/Kyoto/Graphics/CCubeMaterial HandleColorChannels(unsigned int, unsigned int) +727 0.00% 94.25%
main/Kyoto/Graphics/CCubeMaterial CCubeMaterial::SetCurrentBlack() const +627 0.00% 99.94%
main/Kyoto/Audio/DolphinCAudioSys rstl::red_black_tree<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>, 0, rstl::select1st<rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>>, rstl::less<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>, rstl::rmemory_allocator>::insert_into(rstl::red_black_tree<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>, 0, rstl::select1st<rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>>, rstl::less<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>, rstl::rmemory_allocator>::node*, const rstl::pair<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::ncrc_ptr<CAudioGroupSet>>&) +584 0.00% 91.31%
main/MetroidPrime/CFluidPlaneCPU CFluidPlaneCPU::RenderSetup(const CStateManager&, float, const CTransform4f&, const CTransform4f&, const CAABox&, CScriptWater*) const +520 70.90% 80.21%
main/Kyoto/Audio/DolphinCAudioSys rstl::red_black_tree<unsigned int, rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>, 0, rstl::select1st<rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>>, rstl::less<unsigned int>, rstl::rmemory_allocator>::insert_into(rstl::red_black_tree<unsigned int, rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>, 0, rstl::select1st<rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>>, rstl::less<unsigned int>, rstl::rmemory_allocator>::node*, const rstl::pair<unsigned int, rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>>&) +519 0.00% 91.46%
main/Kyoto/Audio/CDSPStream CDSPStream::BufferStream() +468 0.00% 98.32%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::TrkQueueTrack(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, void (*)(unsigned long), unsigned int) +443 0.00% 99.85%
main/Kyoto/Audio/CDSPStream CDSPStream::AllocateStereo(const SStreamInfo&, const SStreamInfo&, char, int) +301 0.00% 94.06%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::TweakOverride(CStateManager&) +269 0.00% 91.14%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysLoadGroupSet(CSimplePool*, unsigned int) +235 0.00% 41.22%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::GetFreeHandleId() +233 0.00% 92.68%
main/Kyoto/Graphics/CCubeMaterial DoPassthru(unsigned int) +225 0.00% 95.42%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::S3dAddEmitterParaEx(const CAudioSys::C3DEmitterParmData&, unsigned short, SND_PARAMETER_INFO*) +214 40.09% 97.80%
main/Kyoto/Audio/CDSPStream CDSPStream::AllocateMono(const SStreamInfo&, char, char, int) +189 0.00% 98.75%
main/Kyoto/Graphics/CCubeMaterial CCubeModel::SetNewPlayerPositionAndTime(const CVector3f&, const CStopwatch&) +182 0.00% 65.96%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic CScriptStreamedMusic::CScriptStreamedMusic(TUniqueId, const CEntityInfo&, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, bool, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, bool, float, float, unsigned int, bool, bool) +181 0.00% 98.70%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::GetStreamState(int) +155 0.00% 74.79%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysGetGroupSetName(unsigned int) +143 0.00% 83.21%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysUnloadGroupSet(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) +140 0.00% 34.21%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::CanStop(int) +125 0.00% 62.74%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::UpdateVolume(int, char) +123 0.00% 80.97%
main/Kyoto/Audio/CDSPStream CDSPStream::IsStreamAvailable(int) +121 0.00% 98.06%
main/Kyoto/Audio/CDSPStream CDSPStream::IsStreamActive(int) +119 0.00% 96.13%
main/Kyoto/Audio/DolphinCAudioSys CAudioSys::SysPushGroupIntoARAM(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, unsigned char) +117 0.00% 54.43%
main/Kyoto/Audio/CDSPStreamManager CDSPStreamManager::IsStreamAvailable(int) +102 0.00% 53.40%
main/Kyoto/Audio/CStaticAudioPlayer CStaticAudioPlayer::Decode(const unsigned short*, unsigned short*, int) +102 55.44% 90.29%
main/MetroidPrime/ScriptObjects/CScriptStreamedMusic .data +101 0.00% 98.04%

...and 18 more improvements in unmatched items

📉 12 regressions in unmatched items
Unit Item Bytes Before After
main/MetaRender/CCubeRenderer CCubeRenderer::DrawXRayOutline(const CModel&, const float*, const float*) -434 98.66% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::TweakOverride(CStateManager&) -201 67.96% 0.00%
main/Kyoto/rstl/RstlExtras CStringExtras::IndexOfSubstring(const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&) -187 95.51% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::CScriptStreamedMusic(TUniqueId, const CEntityInfo&, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, bool, const rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>&, bool, float, float, unsigned int, bool, bool) -181 98.70% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio .data -101 98.04% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::StartStream(CStateManager&) -70 93.37% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio .rodata -21 90.91% 0.00%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio CScriptStreamedMusic::IsOneShot(bool) -13 85.00% 0.00%
main/Kyoto/Graphics/CCubeMaterial .sbss -3 18.18% 10.26%
main/MetroidPrime/ScriptObjects/CScriptStreamedAudio .sdata2 -2 28.57% 0.00%
main/Kyoto/Audio/CStaticAudioPlayer .sbss -1 12.50% 9.52%
main/Kyoto/Audio/DolphinCAudioSys .sbss 0 6.06% 4.76%

@encounter encounter marked this pull request as ready for review March 8, 2026 23:59
@encounter encounter merged commit cbd73be into main Mar 8, 2026
6 checks passed
@encounter encounter deleted the audio branch March 8, 2026 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant