Register HLE libmedi, cellCrossController, cellSysutilNpEula

Motorstorm Apocalypse calls for cellMediatorGetSignatureLength,
cellMediatorCreateContext, cellMediatorGetProviderUrl,
cellMediatorGetStatus

LittleBigPlanet 2 and 3 may call for 0x37E1F502 (unknown name) on
cellCrossController

Resistance 3 and Uncharted 2 may call for the functions registered
on cellSysutilNpEula
This commit is contained in:
Ani 2017-03-25 14:25:24 +00:00 committed by Ivan
parent 7d59f7e69c
commit 7ae2a8840b
7 changed files with 149 additions and 0 deletions

View File

@ -28,6 +28,7 @@ LOG_CHANNEL(cellBGDL);
LOG_CHANNEL(cellCamera);
LOG_CHANNEL(cellCelp8Enc);
LOG_CHANNEL(cellCelpEnc);
LOG_CHANNEL(cellCrossController);
LOG_CHANNEL(cellDaisy);
LOG_CHANNEL(cellDmux);
LOG_CHANNEL(cellFiber);
@ -85,6 +86,7 @@ LOG_CHANNEL(cellSysutilAp);
LOG_CHANNEL(cellSysutilAvc);
LOG_CHANNEL(cellSysutilAvc2);
LOG_CHANNEL(cellSysutilMisc);
LOG_CHANNEL(cellSysutilNpEula);
LOG_CHANNEL(cellUsbd);
LOG_CHANNEL(cellUsbPspcm);
LOG_CHANNEL(cellUserInfo);
@ -93,6 +95,7 @@ LOG_CHANNEL(cellVideoExport);
LOG_CHANNEL(cellVideoUpload);
LOG_CHANNEL(cellVoice);
LOG_CHANNEL(cellVpost);
LOG_CHANNEL(libmedi);
LOG_CHANNEL(libmixer);
LOG_CHANNEL(libsnd3);
LOG_CHANNEL(libsynth2);
@ -213,6 +216,7 @@ static void ppu_initialize_modules()
&ppu_module_manager::cellCamera,
&ppu_module_manager::cellCelp8Enc,
&ppu_module_manager::cellCelpEnc,
&ppu_module_manager::cellCrossController,
&ppu_module_manager::cellDaisy,
&ppu_module_manager::cellDmux,
&ppu_module_manager::cellFiber,
@ -271,6 +275,7 @@ static void ppu_initialize_modules()
&ppu_module_manager::cellSysutilAp,
&ppu_module_manager::cellSysutilAvc,
&ppu_module_manager::cellSysutilAvc2,
&ppu_module_manager::cellSysutilNpEula,
&ppu_module_manager::cellSysutilMisc,
&ppu_module_manager::cellUsbd,
&ppu_module_manager::cellUsbPspcm,
@ -280,6 +285,7 @@ static void ppu_initialize_modules()
&ppu_module_manager::cellVideoUpload,
&ppu_module_manager::cellVoice,
&ppu_module_manager::cellVpost,
&ppu_module_manager::libmedi,
&ppu_module_manager::libmixer,
&ppu_module_manager::libsnd3,
&ppu_module_manager::libsynth2,

View File

@ -114,6 +114,7 @@ public:
static const ppu_static_module cellCamera;
static const ppu_static_module cellCelp8Enc;
static const ppu_static_module cellCelpEnc;
static const ppu_static_module cellCrossController;
static const ppu_static_module cellDaisy;
static const ppu_static_module cellDmux;
static const ppu_static_module cellFiber;
@ -172,6 +173,7 @@ public:
static const ppu_static_module cellSysutilAp;
static const ppu_static_module cellSysutilAvc;
static const ppu_static_module cellSysutilAvc2;
static const ppu_static_module cellSysutilNpEula;
static const ppu_static_module cellSysutilMisc;
static const ppu_static_module cellUsbd;
static const ppu_static_module cellUsbPspcm;
@ -181,6 +183,7 @@ public:
static const ppu_static_module cellVideoUpload;
static const ppu_static_module cellVoice;
static const ppu_static_module cellVpost;
static const ppu_static_module libmedi;
static const ppu_static_module libmixer;
static const ppu_static_module libsnd3;
static const ppu_static_module libsynth2;

View File

@ -0,0 +1,17 @@
#include "stdafx.h"
#include "Emu/System.h"
#include "Emu/Cell/PPUModule.h"
logs::channel cellCrossController("cellCrossController", logs::level::notice);
s32 cellCrossController_37E1F502() // LittleBigPlanet 2 and 3
{
cellCrossController.todo("cellCrossController_37E1F502");
return CELL_OK;
}
DECLARE(ppu_module_manager::cellCrossController)("cellCrossController", []()
{
REG_FNID(cellCrossController, 0x37E1F502, cellCrossController_37E1F502);
});

View File

@ -0,0 +1,31 @@
#include "stdafx.h"
#include "Emu/System.h"
#include "Emu/Cell/PPUModule.h"
logs::channel cellSysutilNpEula("cellSysutilNpEula", logs::level::notice);
s32 cellSysutilNpEula_59D1629A() // Resistance 3, Uncharted 2
{
cellSysutilNpEula.todo("cellSysutilNpEula_59D1629A");
return CELL_OK;
}
s32 cellSysutilNpEula_5EC05AD8() // Resistance 3
{
cellSysutilNpEula.todo("cellSysutilNpEula_5EC05AD8");
return CELL_OK;
}
s32 cellSysutilNpEula_6599500D() // Resistance 3, Uncharted 2
{
cellSysutilNpEula.todo("cellSysutilNpEula_6599500D");
return CELL_OK;
}
DECLARE(ppu_module_manager::cellSysutilNpEula)("cellSysutilNpEula", []()
{
REG_FNID(cellSysutilNpEula, 0x59D1629A, cellSysutilNpEula_59D1629A);
REG_FNID(cellSysutilNpEula, 0x5EC05AD8, cellSysutilNpEula_5EC05AD8);
REG_FNID(cellSysutilNpEula, 0x6599500D, cellSysutilNpEula_6599500D);
});

View File

@ -144,6 +144,7 @@
<ClCompile Include="Emu\Cell\Modules\cellCamera.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellCelp8Enc.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellCelpEnc.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellCrossController.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellDaisy.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellDmux.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellFiber.cpp" />
@ -207,6 +208,7 @@
<ClCompile Include="Emu\Cell\Modules\cellSysutilAvc.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellSysutilAvc2.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellSysutilMisc.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellSysutilNpEula.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellUsbd.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellUsbpspcm.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellUserInfo.cpp" />
@ -217,6 +219,7 @@
<ClCompile Include="Emu\Cell\Modules\cellVoice.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellVpost.cpp" />
<ClCompile Include="Emu\Cell\Modules\cellWebBrowser.cpp" />
<ClCompile Include="Emu\Cell\Modules\libmedi.cpp" />
<ClCompile Include="Emu\Cell\Modules\libmixer.cpp" />
<ClCompile Include="Emu\Cell\Modules\libsnd3.cpp" />
<ClCompile Include="Emu\Cell\Modules\libsynth2.cpp" />

View File

@ -329,6 +329,9 @@
<ClCompile Include="Emu\Cell\Modules\cellCelpEnc.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\Cell\Modules\cellCrossController.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\Cell\Modules\cellDaisy.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>
@ -518,6 +521,9 @@
<ClCompile Include="Emu\Cell\Modules\cellSysutilMisc.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\Cell\Modules\cellSysutilNpEula.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\Cell\Modules\cellUsbd.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>
@ -548,6 +554,9 @@
<ClCompile Include="Emu\Cell\Modules\cellWebBrowser.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\Cell\Modules\libmedi.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\Cell\Modules\libmixer.cpp">
<Filter>Emu\Cell\Modules</Filter>
</ClCompile>

80
rpcs3/libmedi.cpp Normal file
View File

@ -0,0 +1,80 @@
#include "stdafx.h"
#include "Emu/System.h"
#include "Emu/Cell/PPUModule.h"
logs::channel libmedi("libmedi", logs::level::notice);
s32 cellMediatorCreateContext()
{
libmedi.todo("cellMediatorCreateContext");
return CELL_OK;
}
s32 cellMediatorGetSignatureLength()
{
libmedi.todo("cellMediatorGetSignatureLength");
return CELL_OK;
}
s32 cellMediatorGetUserInfo()
{
libmedi.todo("cellMediatorGetUserInfo");
return CELL_OK;
}
s32 cellMediatorFlushCache()
{
libmedi.todo("cellMediatorFlushCache");
return CELL_OK;
}
s32 cellMediatorSign()
{
libmedi.todo("cellMediatorSign");
return CELL_OK;
}
s32 cellMediatorPostReports()
{
libmedi.todo("cellMediatorPostReports");
return CELL_OK;
}
s32 cellMediatorGetProviderUrl()
{
libmedi.todo("cellMediatorGetProviderUrl");
return CELL_OK;
}
s32 cellMediatorReliablePostReports()
{
libmedi.todo("cellMediatorReliablePostReports");
return CELL_OK;
}
s32 cellMediatorCloseContext()
{
libmedi.todo("cellMediatorCloseContext");
return CELL_OK;
}
s32 cellMediatorGetStatus()
{
libmedi.todo("cellMediatorGetStatus");
return CELL_OK;
}
DECLARE(ppu_module_manager::libmedi)("libmedi", []()
{
REG_FUNC(libmedi, cellMediatorCreateContext);
REG_FUNC(libmedi, cellMediatorGetSignatureLength);
REG_FUNC(libmedi, cellMediatorGetUserInfo);
REG_FUNC(libmedi, cellMediatorFlushCache);
REG_FUNC(libmedi, cellMediatorSign);
REG_FUNC(libmedi, cellMediatorPostReports);
REG_FUNC(libmedi, cellMediatorGetProviderUrl);
REG_FUNC(libmedi, cellMediatorReliablePostReports);
REG_FUNC(libmedi, cellMediatorCloseContext);
REG_FUNC(libmedi, cellMediatorGetStatus);
});