# Conflict between FMOD and NX multimedia.nso lib

**URL:** <https://qa.fmod.com/t/conflict-between-fmod-and-nx-multimedia-nso-lib/13817>\
**Category:** FMOD Studio\
**Created:** [April 12, 2018, 6:41am UTC](https://qa.fmod.com/t/conflict-between-fmod-and-nx-multimedia-nso-lib/13817 "2018-04-12T06:41:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![lisenlin](https://avatars.discourse-cdn.com/v4/letter/l/a88e4f/32.png) [@lisenlin](https://qa.fmod.com/u/lisenlin)\
**Post date:** [April 12, 2018, 6:41am UTC](https://qa.fmod.com/t/conflict-between-fmod-and-nx-multimedia-nso-lib/13817/1 "2018-04-12T06:41:32Z")

</div>

Hi Guys,  
We implemented multimedia.nso lib to play movie and FMOD to play other sounds for our games on NX( NXSDK: 5.4, FMOD Studio SDK: 10.04), they will be working correctly if we make our games to Executable Application. As we have 2 game titles, so we need to change our games to Dynamic library and run them with a launcher, in this case we can play movie correctly, but we can not hear any other FMOD sounds and there is any fmod error/worning message in the output window.

There are some steps below to check if there is a conflict between FMOD and NX multimedia.nso lib:

1: we implemented FMOD to the NX Dynamic Library Loading Sample( Nintendo5.4\NintendoSDK\Samples\Sources\Applications\RoSimple\RoStaticApplication), at this moment the FMOD is working correctly and can hear the sound.  
2: Only linked multimedia.nso, and did not add any codes to play a movie, now we can not hear any sound from FMOD.

I have been working on this issue several days, do you have any suggestion about it?

There are my codes below, you can take my changes to the RoStaticApplication sample to reproduce it.

RoStaticApplication.cpp

Change this line from  
static const size\_t MaxFileSize = 0x400000;  
to  
static const size\_t MaxFileSize = 0x40000000;

RoDynamicModule.cpp:

#include \<nn/nn\_Log.h\>  
#include “fmod\_studio.hpp”  
#include “fmod.hpp”  
#include “common.h”

void PrintHelloWorld()  
{  
NN\_LOG(“Hello world.\n”);

```
void *extraDriverData = NULL;

FMOD::Studio::System* systemFmod = NULL;

FMOD::Debug_Initialize(FMOD_DEBUG_LEVEL_ERROR | FMOD_DEBUG_LEVEL_WARNING | FMOD_DEBUG_LEVEL_LOG, FMOD_DEBUG_MODE_TTY);

FMOD_RESULT res;
res = (FMOD::Studio::System::create(&systemFmod));

// The example Studio project is authored for 5.1 sound, so set up the system output mode to match
FMOD::System* lowLevelSystem = NULL;
res = (systemFmod->getLowLevelSystem(&lowLevelSystem));
res = (lowLevelSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0));

res = (systemFmod->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData));

FMOD::Studio::Bank* masterBank = NULL;
res = (systemFmod->loadBankFile(("rom:/MasterBank.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank));

FMOD::Studio::Bank* stringsBank = NULL;
res = (systemFmod->loadBankFile(("rom:/MasterBank.strings.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &stringsBank));

FMOD::Studio::Bank* ambienceBank = NULL;
res = (systemFmod->loadBankFile(("rom:/Weapons.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &ambienceBank));

FMOD::Studio::EventDescription* loopingAmbienceDescription = NULL;
res = (systemFmod->getEvent("event:/Weapons/Full Auto Loop", &loopingAmbienceDescription));

loopingAmbienceDescription->loadSampleData();
FMOD::Studio::EventInstance* loopingAmbienceInstance = NULL;
res = (loopingAmbienceDescription->createInstance(&loopingAmbienceInstance));
res = loopingAmbienceInstance->start();

do
{
	(systemFmod->update());
	nn::os::SleepThread(nn::TimeSpan::FromMilliSeconds(50));
} while (true);

(masterBank->unload());
(stringsBank->unload());
(ambienceBank->unload());
(systemFmod->release());

```

}

The changes for RoDynamicModule-spec.NX.autogen project:

Additional Include Directories:  
C:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Switch\_10\_4\api\studio\inc;  
C:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Switch\_10\_4\api\studio\examples;  
C:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Switch\_10\_4\api\lowlevel\inc

Additional Library Directories:  
C:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Switch\_10\_4\api\studio\lib\nx64;  
C:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Switch\_10\_4\api\lowlevel\lib\nx64

Additional Dependencies(with object culling):  
libfmodstudio.a;libfmod.a;

The changes for RoStaticApplication-spec.NX.autogen project:  
Additional NSO Files:  
multimedia.nso;

---

<div class="post-metadata">

**Author:** ![cameron-fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/cameron-fmod/32/261_2.png) [@cameron-fmod](https://qa.fmod.com/u/cameron-fmod)\
**Post date:** [April 19, 2018, 3:43am UTC](https://qa.fmod.com/t/conflict-between-fmod-and-nx-multimedia-nso-lib/13817/2 "2018-04-19T03:43:54Z")

</div>

This is due to conflicting vorbis lookup tables. We originally thought it was caused by UE4 but now seems like this is the offending library.

This fix will be available in the next release (1.10.05).

---

<div class="post-metadata">

**Author:** ![lisenlin](https://avatars.discourse-cdn.com/v4/letter/l/a88e4f/32.png) [@lisenlin](https://qa.fmod.com/u/lisenlin)\
**Post date:** [April 19, 2018, 3:47am UTC](https://qa.fmod.com/t/conflict-between-fmod-and-nx-multimedia-nso-lib/13817/3 "2018-04-19T03:47:21Z")

</div>

Ok, thank you for your help.

---

<div class="post-metadata">

**Author:** ![lisenlin](https://avatars.discourse-cdn.com/v4/letter/l/a88e4f/32.png) [@lisenlin](https://qa.fmod.com/u/lisenlin)\
**Post date:** [April 19, 2018, 5:46am UTC](https://qa.fmod.com/t/conflict-between-fmod-and-nx-multimedia-nso-lib/13817/4 "2018-04-19T05:46:39Z")

</div>

Hi Cameron,

At this moment, we found a workaround: if we create FMOD system in the launcher and pass it to the dynamic lib, it will be working correctly.

Best,
