20/02/07 4.06.10 – Stable release update

  • Add gapless mp2/mp3 looping. Use FSBank or FMOD designer to get this through
    .fsb. Will not work with normal .mp2/.mp3 files unless they have been
    preencoded properly to loop.

  • Fixed seeking with FMOD_CREATECOMPRESSED sounds not seeking to the right place.

  • Fix multichannel sounds not playing properly when maxinputchannels is set to
    anything other than 6.
  • Fix mapping of 4.0 sound sources.
  • Fix Channel::setDelay causing channel to not stop / crash in System::update.
  • Wii – Fixed reduced release library printing debug messages.
  • XBox360 – Fixed "music" category not being paused properly in some cases if
    dashboard music is playing before "music" has started playing.
  • PS3 – Fixed channels dropping sometimes when there are a lot of virtual voices.
  • Event API – Fixed main thread blocking when using streamed wavebanks

  • Event API – Changed EVENT_LOADINFO field "sounddefentrylimit" from a set number
    to a 0 -> 1 multiplier e.g. 0.5 = half the number of sounddef entries.

  • Sound::GetSubSound with FMOD_NONBLOCKING streams will now go into seeking mode
    if you call it on the same subsound index 2 times in a row, the second and
    further times returning FMOD_ERR_NOTREADY just as it would if you specified
    a different index than the one currently active.

This thread is for discussion / bugreports for the current release.
Download the current release from the front page at http://www.fmod.org

  • You must to post comments

Having a weird issue. I’m using 4.06.09, but I searched the board and don’t see any issues like this reported (unless I’m blind, which is quite possible because the A/C has been dead all day).

fmodex.dll seems to be loading up other DLLs in the same directory. When I start up the sound system, if I put a breakpoint in DLLs that aren’t directly used by the game, the DllMain breaks. This has been causing mysterious crashes lately on shutdown that I traced back to this. The DLL in question was being used out of context. The debug output window shows these DLLs being loaded and scanned for debug symbols when they aren’t dependencies of the game EXE. Why would fmodex.dll be loading these DLLs?

> Engine.dll!DllMain(HINSTANCE__ * hinstDLL=0x0d9d0000, unsigned long fwdreason=0x00000001, void * lpvReserved=0x00000000) Line 238 C++
Engine.dll!__DllMainCRTStartup(void * hDllHandle=0x0d9d0000, unsigned long dwReason=0x00000001, void * lpreserved=0x00000000) Line 365 + 0x11 bytes C
Engine.dll!_DllMainCRTStartup(void * hDllHandle=0x0d9d0000, unsigned long dwReason=0x00000001, void * lpreserved=0x00000000) Line 328 + 0x11 bytes C
ntdll.dll!_LdrpCallInitRoutine@16() + 0x14 bytes
ntdll.dll!_LdrpRunInitializeRoutines@4() + 0x1c7 bytes
ntdll.dll!_LdrpLoadDll@24() – 0x1b1 bytes
ntdll.dll!_LdrLoadDll@16() + 0x110 bytes
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
(rest is fairly munched up)

If I disable sound by never calling the FMOD startup, this doesn’t happen, so 100% correlation with FMOD being started.

  • You must to post comments

I updated everything to 4.06.10, same result. Any response to this?

  • You must to post comments

If you are initializing fmod from a ‘DLLMain’ function, then this is wrong. Certain operating system functionality is not ready at this point, and it wont work. Put it in a proper init function or in the main app.

  • You must to post comments

I’m initializing FMOD in the manual-proscribed fashion in the EXE’s main, not a DLL.

What I’m saying is that FMOD is causing every DLL in the directory with the app to be loaded and enumerated when FMOD is initialized and that these external DLLs are receiving calls to THEIR DLLMain during this phase – almost as if FMOD is trying to enumerate plugins, even though I am linking against fmodex.dll and not fmodexp.dll.

"Use api/fmodex.dll to use FMOD Ex with all plugins statically compiled into the DLL. This means you can use all the features of FMOD without needing extra plugins accompanying your application. The DLL is bigger because of this.

Use api/fmodexp.dll to use FMOD Ex with plugins external. This DLL needs plugins to function, which you can find in the plugins directory. Plugins in the plugins/ directory need to be used to support all of FMOD Ex’s features. Use this if you want a smaller distribution and only need one file format support for example (ie .WAV). The DLL is smaller because of this."

If I am using fmodex.dll, why is FMOD loading any other DLLs in this case? Seems like the plugin enumeration is happening even in fmodex.dll when it shouldn’t be, and even then it should load only DLLs that follow a plugin naming or directory (\plugins) convention – not .*.DLL.

  • You must to post comments
Showing 4 results
Your Answer

Please first to submit.