Better fix for savedata and cellCamera improvements

This commit is contained in:
Raul Tambre 2015-07-14 14:45:31 +03:00
parent 66cf864ee0
commit ddcaf4972f
2 changed files with 18 additions and 20 deletions

View file

@ -121,25 +121,31 @@ s32 cellCameraGetType(s32 dev_num, vm::ptr<s32> type)
s32 cellCameraIsAvailable(s32 dev_num) s32 cellCameraIsAvailable(s32 dev_num)
{ {
UNIMPLEMENTED_FUNC(cellCamera); cellCamera.Todo("cellCameraIsAvailable(dev_num=%d)", dev_num);
return CELL_OK; return CELL_OK;
} }
s32 cellCameraIsAttached(s32 dev_num) s32 cellCameraIsAttached(s32 dev_num)
{ {
UNIMPLEMENTED_FUNC(cellCamera); cellCamera.Warning("cellCameraIsAttached(dev_num=%d)", dev_num);
return CELL_OK;
if (Ini.Camera.GetValue() == 1)
{
return 1;
}
return CELL_OK; // CELL_OK means that no camera is attached
} }
s32 cellCameraIsOpen(s32 dev_num) s32 cellCameraIsOpen(s32 dev_num)
{ {
UNIMPLEMENTED_FUNC(cellCamera); cellCamera.Todo("cellCameraIsOpen(dev_num=%d)", dev_num);
return CELL_OK; return CELL_OK;
} }
s32 cellCameraIsStarted(s32 dev_num) s32 cellCameraIsStarted(s32 dev_num)
{ {
UNIMPLEMENTED_FUNC(cellCamera); cellCamera.Todo("cellCameraIsStarted(dev_num=%d)", dev_num);
return CELL_OK; return CELL_OK;
} }

View file

@ -351,24 +351,16 @@ never_inline s32 savedata_op(
{ {
if (!Emu.GetVFS().ExistsDir(dir_path) && !Emu.GetVFS().CreateDir(dir_path)) if (!Emu.GetVFS().ExistsDir(dir_path) && !Emu.GetVFS().CreateDir(dir_path))
{ {
// Let's ignore this error for now cellSysutil.Error("savedata_op(): Savedata directory creation failed.");
} }
else else
{ {
std::string rSfo_path = "/dev_hdd0/game/" + save_entry.dirName.substr(0, 9) + "/PS3_GAME/PARAM.SFO"; // The real SFO path // Is loading the PARAM.SFO really necessary? Setting empty stuff seems to fix a couple games.
if (!Emu.GetVFS().ExistsFile(rSfo_path)) psf.SetInteger("ATTRIBUTE", 0);
{ psf.SetString("TITLE", "");
rSfo_path = "/dev_hdd0/game/" + save_entry.dirName.substr(0, 9) + "/PARAM.SFO"; psf.SetString("SUB_TITLE", "");
} psf.SetString("DETAIL", "");
psf.SetString("SAVEDATA_LIST_PARAM", "");
vfsFile rSfo(rSfo_path);
PSFLoader rPsf(rSfo);
psf.Clear();
psf.SetInteger("ATTRIBUTE", rPsf.GetInteger("ATTRIBUTE"));
psf.SetString("TITLE", rPsf.GetString("TITLE"));
psf.SetString("SUB_TITLE", rPsf.GetString("SUB_TITLE"));
psf.SetString("DETAIL", rPsf.GetString("DETAIL"));
psf.SetString("SAVEDATA_LIST_PARAM", rPsf.GetString("SAVEDATA_LIST_PARAM"));
} }
} }