2020-12-05 13:08:24 +01:00
|
|
|
#include "stdafx.h"
|
2016-03-21 20:43:03 +01:00
|
|
|
#include "Emu/Cell/PPUModule.h"
|
2015-07-30 00:30:13 +02:00
|
|
|
|
2015-08-21 22:57:49 +02:00
|
|
|
#include "cellGame.h"
|
|
|
|
|
|
2018-08-25 14:39:00 +02:00
|
|
|
LOG_CHANNEL(cellGameExec);
|
2015-07-30 00:30:13 +02:00
|
|
|
|
2020-07-16 12:14:57 +02:00
|
|
|
error_code cellGameSetExitParam(u32 execdata)
|
2015-07-30 00:30:13 +02:00
|
|
|
{
|
2017-07-23 22:46:16 +02:00
|
|
|
cellGameExec.todo("cellGameSetExitParam(execdata=0x%x)", execdata);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 00:30:13 +02:00
|
|
|
}
|
|
|
|
|
|
2020-07-16 12:14:57 +02:00
|
|
|
error_code cellGameGetHomeDataExportPath(vm::ptr<char> exportPath)
|
2015-07-30 00:30:13 +02:00
|
|
|
{
|
2017-07-23 22:46:16 +02:00
|
|
|
cellGameExec.warning("cellGameGetHomeDataExportPath(exportPath=*0x%x)", exportPath);
|
2015-09-10 16:30:14 +02:00
|
|
|
|
2018-06-12 21:32:40 +02:00
|
|
|
if (!exportPath)
|
|
|
|
|
{
|
|
|
|
|
return CELL_GAME_ERROR_PARAM;
|
|
|
|
|
}
|
|
|
|
|
|
2015-09-10 16:30:14 +02:00
|
|
|
// TODO: PlayStation home is defunct.
|
|
|
|
|
|
|
|
|
|
return CELL_GAME_ERROR_NOAPP;
|
2015-07-30 00:30:13 +02:00
|
|
|
}
|
|
|
|
|
|
2020-07-16 12:14:57 +02:00
|
|
|
error_code cellGameGetHomePath()
|
2015-07-30 00:30:13 +02:00
|
|
|
{
|
2017-07-23 22:46:16 +02:00
|
|
|
UNIMPLEMENTED_FUNC(cellGameExec);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 00:30:13 +02:00
|
|
|
}
|
|
|
|
|
|
2020-07-16 12:14:57 +02:00
|
|
|
error_code cellGameGetHomeDataImportPath(vm::ptr<char> importPath)
|
2015-07-30 00:30:13 +02:00
|
|
|
{
|
2017-07-23 22:46:16 +02:00
|
|
|
cellGameExec.warning("cellGameGetHomeDataImportPath(importPath=*0x%x)", importPath);
|
|
|
|
|
|
2018-06-12 21:32:40 +02:00
|
|
|
if (!importPath)
|
|
|
|
|
{
|
|
|
|
|
return CELL_GAME_ERROR_PARAM;
|
|
|
|
|
}
|
|
|
|
|
|
2017-07-23 22:46:16 +02:00
|
|
|
// TODO: PlayStation home is defunct.
|
|
|
|
|
|
|
|
|
|
return CELL_GAME_ERROR_NOAPP;
|
2015-07-30 00:30:13 +02:00
|
|
|
}
|
|
|
|
|
|
2020-07-16 12:14:57 +02:00
|
|
|
error_code cellGameGetHomeLaunchOptionPath(vm::ptr<char> commonPath, vm::ptr<char> personalPath)
|
2015-07-30 00:30:13 +02:00
|
|
|
{
|
2017-02-14 18:46:56 +01:00
|
|
|
cellGameExec.todo("cellGameGetHomeLaunchOptionPath(commonPath=%s, personalPath=%s)", commonPath, personalPath);
|
|
|
|
|
|
2018-06-12 21:32:40 +02:00
|
|
|
if (!commonPath || !personalPath)
|
|
|
|
|
{
|
|
|
|
|
return CELL_GAME_ERROR_PARAM;
|
|
|
|
|
}
|
|
|
|
|
|
2017-02-14 18:46:56 +01:00
|
|
|
// TODO: PlayStation home is not supported atm.
|
|
|
|
|
return CELL_GAME_ERROR_NOAPP;
|
2015-07-30 00:30:13 +02:00
|
|
|
}
|
|
|
|
|
|
2020-07-16 12:14:57 +02:00
|
|
|
error_code cellGameExecGame()
|
2019-04-10 19:34:44 +02:00
|
|
|
{
|
|
|
|
|
UNIMPLEMENTED_FUNC(cellGameExec);
|
|
|
|
|
return CELL_OK;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-16 12:14:57 +02:00
|
|
|
error_code cellGameGetBootGameInfo(vm::ptr<u32> type, vm::ptr<char> dirName, vm::ptr<u32> execdata)
|
2015-07-30 00:30:13 +02:00
|
|
|
{
|
2017-07-23 22:46:16 +02:00
|
|
|
cellGameExec.todo("cellGameGetBootGameInfo(type=*0x%x, dirName=%s, execdata=*0x%x)", type, dirName, execdata);
|
2015-07-30 00:30:13 +02:00
|
|
|
|
2018-06-12 21:32:40 +02:00
|
|
|
if (!type || !dirName) // execdata can be NULL
|
|
|
|
|
{
|
|
|
|
|
return CELL_GAME_ERROR_PARAM;
|
|
|
|
|
}
|
|
|
|
|
|
2015-08-21 22:57:49 +02:00
|
|
|
// TODO: Support more boot types
|
|
|
|
|
*type = CELL_GAME_GAMETYPE_SYS;
|
|
|
|
|
|
|
|
|
|
return CELL_OK;
|
|
|
|
|
}
|
2015-07-30 00:30:13 +02:00
|
|
|
|
2016-03-21 20:43:03 +01:00
|
|
|
DECLARE(ppu_module_manager::cellGameExec)("cellGameExec", []()
|
2015-07-30 00:30:13 +02:00
|
|
|
{
|
|
|
|
|
REG_FUNC(cellGameExec, cellGameSetExitParam);
|
|
|
|
|
REG_FUNC(cellGameExec, cellGameGetHomeDataExportPath);
|
|
|
|
|
REG_FUNC(cellGameExec, cellGameGetHomePath);
|
|
|
|
|
REG_FUNC(cellGameExec, cellGameGetHomeDataImportPath);
|
|
|
|
|
REG_FUNC(cellGameExec, cellGameGetHomeLaunchOptionPath);
|
2019-04-10 19:34:44 +02:00
|
|
|
REG_FUNC(cellGameExec, cellGameExecGame);
|
2015-07-30 00:30:13 +02:00
|
|
|
REG_FUNC(cellGameExec, cellGameGetBootGameInfo);
|
|
|
|
|
});
|