Deploying on PS4

Hello, I followed the instruction container in the FMOD Studio Integration, in particular, I added the FMOD folder (which is in the Content folder) to the list of directories to be packaged. Yet, the game is totally silent. The relevant part of the console log is this:

03:45:54	[2015.04.27-09.50.35:969][  0]LogFMODOculus: StartupModule
03:45:54	[2015.04.27-09.50.35:969][  0]LogFMOD: FFMODStudioModule startup
03:45:54	[2015.04.27-09.50.35:969][  0]LogFMOD: FFMODStudioModule::LoadDll: Loading /app0/sce_sys/libfmodL.prx
03:45:55	[2015.04.27-09.50.36:044][  0]LogFMOD: FFMODStudioModule::LoadDll: Loading /app0/sce_sys/libfmodstudioL.prx
03:45:55	[LOG] System::create                           : Header version = 1.6.0.  Current version = 1.6.0.
03:45:55	[LOG] SystemI::init                            : FMOD Studio Version: 00010600 (63292)
03:45:55	[LOG] SystemI::init                            : maxchannels = 1, flags = 00000000, extradriverdata = 0
03:45:55	[LOG] SystemI::close                           :
03:45:55	[LOG] SystemI::close                           : Stop all sounds
03:45:55	[LOG] SystemI::close                           : Shut down output.
03:45:55	[LOG] SystemI::close                           : Remove miscllaneous DSP stuff.
03:45:55	[LOG] SystemI::close                           : done.
03:45:55	
03:45:55	[LOG] OutputNoSound::init                      : Initializing.
03:45:55	[LOG] OutputNoSound::init                      : Done.
03:45:55	[LOG] OutputPolled::start                      : Starting thread that automatically wakes up every 1 ms
03:45:55	[LOG] Thread::initThread                       : Initializing FMOD mixer thread.  priority 3
03:45:55	[LOG] Thread::initThread                       : - Stacksize 49152.  Stack pointer 0 : usesemaphore = 0 : sleeptime = 1
03:45:55	[LOG] Thread::callback                         : * FMOD mixer thread started
03:45:55	[LOG] SystemI::init                            : Set up emulated output
03:45:55	[LOG] SystemI::init                            : create the channel pool
03:45:55	[LOG] SystemI::init                            : Set up streamer
03:45:55	[LOG] Thread::initThread                       : Initializing FMOD stream thread.  priority 2
03:45:55	[LOG] Thread::initThread                       : - Stacksize 65536.  Stack pointer 0 : usesemaphore = 0 : sleeptime = 10
03:45:55	[LOG] Thread::callback                         : * FMOD stream thread started
03:45:55	[LOG] Thread::initThread                       : Initializing FMOD Studio update thread.  priority 0
03:45:55	[LOG] Thread::initThread                       : - Stacksize 65536.  Stack pointer 0 : usesemaphore = 0 : sleeptime = 1
03:45:55	[LOG] Thread::callback                         : * FMOD Studio update thread started
03:45:55	[LOG] Thread::initThread                       : Initializing FMOD Studio load thread.  priority 0
03:45:55	[LOG] Thread::initThread                       : - Stacksize 65536.  Stack pointer 0 : usesemaphore = 0 : sleeptime = 1
03:45:55	[LOG] Thread::callback                         : * FMOD Studio load thread started
03:45:55	[2015.04.27-09.50.36:217][  0]LogFMOD: Loading strings bank: ../../../myproject/Content/FMOD/PS4/Master Bank.strings.bank
03:45:55	[ERR] BankLoader::openBankFile                 : Failed to open file '../../../myproject/Content/FMOD/PS4/Master Bank.strings.bank'
03:45:55	<118>[VSMALLOC] Video: Free=56254484, FreeChunk=198; System: Free=7115360, FreeChunk=5; Heap: Free=4833824
03:45:55	<118>Shader=13;VertexBuffer=165;PixelBuffer=442;FrameBuffer=30;Image=30
03:45:55	[2015.04.27-09.50.36:362][  0]LogFMOD:Warning: Failed to load strings bank: ../../../myproject/Content/FMOD/PS4/Master Bank.strings.bank
03:45:55	[2015.04.27-09.50.36:362][  0]LogFMOD: Creating Studio System
03:45:55	[2015.04.27-09.50.36:363][  0]LogFMOD:Warning: e:\jk\workspace\Build__1.6rel__UE4Libs_PS4\lowlevel_api\platforms\orbis\src\fmod_output_audioout.cpp(176) - sc
03:45:55	eAudioOutInit already initialized.
03:45:55	
03:45:55	[2015.04.27-09.50.36:419][  0]LogFMOD: Triggering Initialized on other modules
03:45:55	[2015.04.27-09.50.36:419][  0]LogFMODOculus: FMOD_OSP_SUPPORTED is not enabled
03:45:55	[2015.04.27-09.50.36:419][  0]LogFMOD: Loading Banks
03:45:55	[2015.04.27-09.50.36:568][  0]LogFMOD:Warning: e:\jk\workspace\Build__1.6rel__UE4Libs_PS4\studio_api\src\fmod_bank_loader.cpp(66) - Failed to open file '../.
03:45:55	./../myproject/Content/FMOD/PS4/Master Bank.bank'
03:45:55	
03:45:55	[2015.04.27-09.50.36:568][  0]LogFMOD:Warning: Failed to master bank: ../../../myproject/Content/FMOD/PS4/Master Bank.bank

As you can see, the FMOD plugin starts properly, but does not find the banks. By the way, the banks in my project are contained in the Content/FMOD directory, but the log reports FMOD looking into the Content/FMOD/PS4 directory, which I don’t have. Could this be the source of the problem?

This is a common problem. You can see from the log that FMOD is loaded up correctly but it fails to load any banks.

The most likely cause is due to not adding the platform to the Studio bank view. Once you do that and re-export banks, you should see:

  • YourGame\Content\FMOD\Desktop\ *.bank (UE4 editor tries to load these)
  • YourGame\Content\FMOD\PS4\ *.bank (PS4 tries to load these)

The other cause is not adding “FMOD” to the “Additional Non-Asset Directories to Package” packaging settings.

The most likely cause is due to not adding the platform to the Studio
bank view.

Yup. That was it. I knew it must have been that simple.

However, now I have bigger problems… In the attempt of fixing the issue I have upgraded to FMOD Studio 1.06.01 (I was using 1.06.00 before). Now FMOD doesn’t even start, the log says:

00:12:59	[2015.04.29-01.54.56:524][  0]LogFMOD: FFMODStudioModule startup
00:12:59	[2015.04.29-01.54.56:524][  0]LogFMOD: FFMODStudioModule::LoadDll: Loading /app0/sce_sys/libfmodL.prx
00:12:59	[rtld] <62> syscall load_prx failed due to 0x00000008
00:12:59	[2015.04.29-01.54.56:655][  0]LogFMOD:Error: Failed to load module (error code -2147352568)
00:12:59	[2015.04.29-01.54.56:655][  0]LogFMOD:Error: Failed to load FMOD DLL '/app0/sce_sys/libfmodL.prx', FMOD sounds will not play!

The error code -2147352568 is SCE_KERNEL_ERROR_ENOEXEC (0x80020008) that means “Exec format error”, which might mean that the prx file is either corrupted or requires a version of the firmware different from the one I’m using.

If I revert to the previous version of the prx files (the 1.06.00), the situation doesn’t get better: the FMOD library loads and initializes correctly but still can’t load the banks, although the error message is different:

00:30:55	[2015.04.29-02.12.52:602][  0]LogFMOD: Loading strings bank: ../../../project/Content/FMOD/PS4/Master Bank.strings.bank
00:30:55	[ERR] assert                                   : assertion: 'mRiffChunk.mType == ChunkType_Riff && mRiffChunk.mID == id' failed
00:30:55	[2015.04.29-02.12.52:774][  0]LogFMOD:Warning: Failed to load strings bank: ../../../project/Content/FMOD/PS4/Master Bank.strings.bank

Now it’s the banks that seem to be corrupted or maybe it’s just the library complaining about them been packaged with FMOD Studio 1.06.01. I’ll make some more test re-packaging them with the previous version of the Studio.

I’m sorry, I tried formatting my comment nicely, but while you can pretty format an “answer” it seems that you can’t do that with a “comment”… :frowning:

Good news. The bank files had been actually corrupted by Perforce, that handled them as “text” files instead of “binary”. I am now able to hear in-game sounds with the PS4 integration 1.06.00. Hurray!

The loading problems with the 1.06.01 libraries remains. However, I am no longer blocked now. Thanks!

The most likely cause is due to not adding the platform to the Studio
bank view.

Yup. That was it. I knew it must have been that simple.

However, now I have bigger problems… In the attempt of fixing the issue I have upgraded to FMOD Studio 1.06.01 (I was using 1.06.00 before). Now FMOD doesn’t even start, the log says:

00:12:59	[2015.04.29-01.54.56:524][  0]LogFMOD: FFMODStudioModule startup
00:12:59	[2015.04.29-01.54.56:524][  0]LogFMOD: FFMODStudioModule::LoadDll: Loading /app0/sce_sys/libfmodL.prx
00:12:59	[rtld] <62> syscall load_prx failed due to 0x00000008
00:12:59	[2015.04.29-01.54.56:655][  0]LogFMOD:Error: Failed to load module (error code -2147352568)
00:12:59	[2015.04.29-01.54.56:655][  0]LogFMOD:Error: Failed to load FMOD DLL '/app0/sce_sys/libfmodL.prx', FMOD sounds will not play!

The error code -2147352568 is SCE_KERNEL_ERROR_ENOEXEC (0x80020008) that means “Exec format error”, which might mean that the prx file is either corrupted or requires a version of the firmware different from the one I’m using.

If I revert to the previous version of the prx files (the 1.06.00), the situation doesn’t get better: the FMOD library loads and initializes correctly but still can’t load the banks, although the error message is different:

00:30:55	[2015.04.29-02.12.52:602][  0]LogFMOD: Loading strings bank: ../../../project/Content/FMOD/PS4/Master Bank.strings.bank
00:30:55	[ERR] assert                                   : assertion: 'mRiffChunk.mType == ChunkType_Riff && mRiffChunk.mID == id' failed
00:30:55	[2015.04.29-02.12.52:774][  0]LogFMOD:Warning: Failed to load strings bank: ../../../project/Content/FMOD/PS4/Master Bank.strings.bank

Now it’s the banks that seem to be corrupted or maybe it’s just the library complaining about them been packaged with FMOD Studio 1.06.01. I’ll make some more test re-packaging them with the previous version of the Studio.

00:15:45 LogFMOD:Error: c:\jk\workspace\Build_UE4_4.16_1.9_PS4\studio_api\src\fmod_bankmodel.cpp(346) – Failed to open file ‘…/…/…/testpackag
00:15:45 e/Content/FMOD/PS4/Master Bank.strings.bank’

I met this error too. are you resolve this error? Please ask me how to resolve this problem.Thanks!