UE4.16.2, FMOD 1.09.05 won't deploy to Xbox One

Hi there,

Fmod plugin folder is in UE4/Engine/Plugins, and works just fine on PC and Switch. When attempting to deploy to Xbox One, plugins appear to be found and deploy just fine, but then in the output window (Debug) I get the following:

0134:0138 @ 00014015 - LdrpFindOrMapDependency - ERROR: Loading DLL fmodL.dll failed with status 0xc0000135
0134:0138 @ 00014015 - LdrpInitializeProcess - ERROR: Walking the import tables of the executable and its static imports failed with status 0xc0000135
0134:0138 @ 00014015 - _LdrpInitialize - ERROR: Process initialization failed with status 0xc0000135
0134:0138 @ 00014015 - LdrpInitializationFailure - ERROR: Process initialization failed with status 0xc0000135
The thread 0x158 has exited with code -1073741515 (0xc0000135).
The program '[309] BoxJump.exe' has exited with code -1073741515 (0xc0000135) 'A dependent dll was not found'.

.
.
During Build I assume the plugins are found and the DLLs moved because of the following:

 copying C:\Perforce\UE416\Engine/Plugins/FMODStudio/Binaries/XboxOne/fmodL.dll to ../../../Unbox416/Saved/XboxOne/Layout/Image/Loose/Engine/Plugins/FMODStudio/Binaries/XboxOne/fmodL.dll
    copying C:\Perforce\UE416\Engine/Plugins/FMODStudio/Binaries/XboxOne/fmodstudioL.dll to ../../../Unbox416/Saved/XboxOne/Layout/Image/Loose/Engine/Plugins/FMODStudio/Binaries/XboxOne/fmodstudioL.dll  	

.
.
I’ve not edited the XboxOnePlatform.Automation.cs or XboxOneDeploy.cs as per http://www.fmod.org/docs/content/generated/engine_ue4/deployment.html because I read that as of 4.14 we no longer need to do those steps.

Have I potentially missed something during set up?

The steps listed on the deployment page are still required to run on Xbox One at the moment. That will solve the errors you mentioned.

Right-o. Heads up for 416 and anyone else attempting to integrate, XboxOneDeploy.cs has changed and you’ll find that DestDir can’t be found as a variable. To fix this I added the following two variables like so:

if (FMODDLLPath != null)
{
string RelativeBinPath = Utils.MakePathRelativeTo(Path.GetDirectoryName(InTarget.OutputPath.FullName), Path.Combine(InTarget.ProjectDirectory.FullName, “…”), true);
string DestDir = Path.Combine(DeployDirectory, RelativeBinPath);

FMOD appears to work now, thanks Cameron :slight_smile: