OK, thanks for the feedback Joseph.
We have created a simple test case in our game and provided some of the bank loading code as requested, along with more details of our test case and results:
Bank Loading Code (modified slightly in our 2.00.07 test to use FMOD_STUDIO_LOAD_BANK_UNENCRYPTED flag since the banks we are testing with are not encrypted):
void MusicManager::LoadBank(const char* filepath)
{
FMOD_RESULT result;
FMOD::Studio::Bank* bank = NULL;
OutputDebugString(Format("Loading Bank File %s\n", filepath));
result = mFModStudio->loadBankFile(filepath, FMOD_STUDIO_LOAD_BANK_NORMAL, &bank);
// Fmod can fail to load custom banks the first time - this is a workaround
if (result != FMOD_OK)
{
OutputDebugString(Format("Error loading Bank File %s first time (%s), attempting a second time\n", filepath, FMOD_ErrorString(result)));
result = mFModStudio->loadBankFile(filepath, FMOD_STUDIO_LOAD_BANK_NORMAL, &bank);
}
if (result == FMOD_OK)
{
OutputDebugString(Format("Successfully loaded Bank File %s\n\n", filepath));
mBanks.push_back(bank);
}
else
OutputDebugString(Format("Error loading Bank File %s (%s), aborting\n\n", filepath, FMOD_ErrorString(result)));
}
List of banks we are loading (we can provide a dropbox link to these via email or PM):
“audio/master_bank.bank”,
“audio/master_bank.strings.bank”,
“audio/mod_bank.bank”,
“audio/mod_bank.strings.bank”,
Output using FMOD 1.10.09:
Loading Bank File audio/master_bank.bank
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_bank_loader.cpp(123) : [LOG] Manager::readBank : fileversion = 101, compatVersion = 99 (oldest = 44, newest = 101)
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_playback_system.cpp(1614) : [LOG] PlaybackSystem::acquireMasterBus : Setting master channel group format to 6
Successfully loaded Bank File audio/master_bank.bank
Loading Bank File audio/master_bank.strings.bank
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_bank_loader.cpp(123) : [LOG] Manager::readBank : fileversion = 101, compatVersion = 99 (oldest = 44, newest = 101)
Successfully loaded Bank File audio/master_bank.strings.bank
Loading Bank File audio/mod_bank.bank
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_bank_loader.cpp(123) : [LOG] Manager::readBank : fileversion = 101, compatVersion = 99 (oldest = 44, newest = 101)
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_factory.cpp(96) : [ERR] assert : assertion: '!mManager->masterBus()' failed
c:\jk\workspace\build__1.10__api_win\studio_api\src\fmod_factory.h(133) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_runtime_manager.cpp(1371) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_runtime_manager.cpp(1388) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_runtime_manager.cpp(4064) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_studio_impl.cpp(1754) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_studio_impl.cpp(4200) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
Error loading Bank File audio/mod_bank.bank first time (An error occurred that wasn't supposed to. Contact support.), attempting a second time
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_bank_loader.cpp(123) : [LOG] Manager::readBank : fileversion = 101, compatVersion = 99 (oldest = 44, newest = 101)
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_playback_system.cpp(1601) : [ERR] assert : assertion: 'mMasterBus == nullptr' failed
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_playback_system.cpp(1614) : [LOG] PlaybackSystem::acquireMasterBus : Setting master channel group format to 6
Successfully loaded Bank File audio/mod_bank.bank
Loading Bank File audio/mod_bank.strings.bank
c:\jk\workspace\Build__1.10__API_Win\studio_api\src\fmod_bank_loader.cpp(123) : [LOG] Manager::readBank : fileversion = 101, compatVersion = 99 (oldest = 44, newest = 101)
Successfully loaded Bank File audio/mod_bank.strings.bank
Output using FMOD 2.00.07:
Loading Bank File audio/master_bank.bank
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_bank_loader.cpp(120) : [LOG] Manager::readBank : fileversion = 125, compatVersion = 119 (oldest = 44, newest = 125)
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_playback_system.cpp(1629) : [LOG] PlaybackSystem::acquireMasterBus : Setting master channel group format to 6
Successfully loaded Bank File audio/master_bank.bank
Loading Bank File audio/master_bank.strings.bank
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_bank_loader.cpp(120) : [LOG] Manager::readBank : fileversion = 125, compatVersion = 119 (oldest = 44, newest = 125)
Successfully loaded Bank File audio/master_bank.strings.bank
Loading Bank File audio/mod_bank.bank
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_bank_loader.cpp(120) : [LOG] Manager::readBank : fileversion = 101, compatVersion = 99 (oldest = 44, newest = 125)
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_factory.cpp(96) : [ERR] assert : assertion: '!mManager->masterBus()' failed
f:\jk\workspace\build__2.0__api_win\studio_api\src\fmod_factory.h(134) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_runtime_manager.cpp(1273) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_runtime_manager.cpp(1290) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_runtime_manager.cpp(2967) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_studio_impl.cpp(1921) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_studio_impl.cpp(4551) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
Error loading Bank File audio/mod_bank.bank first time (An error occurred that wasn't supposed to. Contact support.), attempting a second time
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_bank_loader.cpp(120) : [LOG] Manager::readBank : fileversion = 101, compatVersion = 99 (oldest = 44, newest = 125)
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_factory.cpp(96) : [ERR] assert : assertion: '!mManager->masterBus()' failed
f:\jk\workspace\build__2.0__api_win\studio_api\src\fmod_factory.h(134) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_runtime_manager.cpp(1273) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_runtime_manager.cpp(1290) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_runtime_manager.cpp(2967) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_studio_impl.cpp(1921) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_studio_impl.cpp(4551) : [LOG] FMOD_RESULT = 28 -- An error occurred that wasn't supposed to. Contact support.
Error loading Bank File audio/mod_bank.bank (An error occurred that wasn't supposed to. Contact support.), aborting
Loading Bank File audio/mod_bank.strings.bank
f:\jk\workspace\Build__2.0__API_Win\studio_api\src\fmod_bank_loader.cpp(120) : [LOG] Manager::readBank : fileversion = 101, compatVersion = 99 (oldest = 44, newest = 125)
Successfully loaded Bank File audio/mod_bank.strings.bank
As can be seen, we are not doing anything strange as far as loading a bank file (apart from attepting to load it a second time), and from what we can tell, there is nothing obviously wrong with the modders bank file or their fmod project.
If possible, perhaps you could attempt to reproduce what we see using the same banks as we use in our test case?
As mentioned above, we can provide a dropbox link via email/PM to download the 4 bank files we used in our test case.