This issue is for FMOD 4.17.05 for WII.
We are currently overriding FMOD event system file access by specifying callbacks using EventSystem::setFileSystem()
In the file open callback, we do not allow FMOD to open any files other than the FEV file and streamed soundbanks.
So for all non-streamed sound events (sound events that don’t need any streaming soundbanks), the soundbank(s) must preloaded and registered via EventSystem::registerMemoryFSB(). Unfortunately, there are occasions in our game where a sound event is requested whose soundbank is not yet preloaded and registered. We want to reject these sound requests.
We are finding that when using EventSystem::getEvent() with FMOD_EVENT_DEFAULT only, this situation is handled gracefully. EventSystem::getEvent() fails when a non-streamed sound event wants to open a file. When its required soundbanks are registered, subsequent requests for that sound event succeed.
However, if the non-streamed sound event is requested with FMOD_EVENT_NONBLOCKING specified, it fails and often CONTINUES TO FAIL even when its required soundbanks are registered. It’s almost as if FMOD is not recognizing that the needed soundbanks have become available when FMOD_EVENT_NONBLOCKING is specified.
Unfortunately, we found that we must specify FMOD_EVENT_NONBLOCKING wit EventSystem::getEvent() for ALL sound event requests due to performance with mixing blocking/non-blocking requests. We tried specifying FMOD_EVENT_NONBLOCKING | FMOD_EVENT_ERROR_ON_DISKACCESS for nonstreamed sounds. Different error (FMOD_ERR_FILE_UNWANTED) but same behavior.
Furthermore, when a non-streamed sound event is requested as non-blocking and a previous request has failed due to its soundbank(s) not being registered, FMOD isn’t even calling our file open callback or even attempting to open the required soundbank. EventSystem::getEvent() just continues to return FMOD_ERR_FILE_UNWANTED.
Has anyone else run into this issue? Any thoughts or suggestions are greatly appreciated.
- nn1871 asked 8 years ago
- You must login to post comments