Fast FMOD Bank Loading Redux#1124
Conversation
…-bank-loading" This reverts commit 3ead00f.
Co-authored-by: wuke65536 <2446214230@qq.com>
|
The bug-hunt status of the Fast FMOD Loading currently is:
|
|
my theory was, in old sequential load, it's: load A.bank -> ingest A.guids.txt -> load B.bank -> ingest B.guids.txt -> ... in new async load, there's one of the possibilities: load A.bank -> load B.bank -> ingest A.guids.txt -> ingest B.guids.txt -> ... the difference is, Everest/Celeste.Mod.mm/Patches/Audio.cs Lines 223 to 228 in 985fd82 if A.guids.txt and B.guids.txt both declared an path<->guid whose corresponding event is only defined in B.bank, in old sequential load, A.guids.txt is filtered out because in new async load, A.guids.txt is applied. then B.guids.txt is filtered out because the given ID is already registered. if unfortunately A.guids.txt is wrong, it breaks. i made two branches to bypass it. any of them can work, but which one is better? wuke32767@10b9bb5this branch allows multiple paths to be mapped to the same guid.
wuke32767@d6bb3eein this branch, guid<->path in A.guids.txt is only registered when it's defined in A.bank.
|
|
Thanks @wuke32767 for looking into the issues related to Fast FMOD Bank Loading. About your two suggestions, I believe the second approach is better, because I think we can reasonably expect GUIDs to be defined in the related bank. If this assumption does not hold in practice, we could still fallback to the first approach. |
Reapply #1079 + apply fixes from #1103