Conflicts fixed

This commit is contained in:
O1L 2015-02-22 20:06:42 +04:00
commit 4d27198ad7
17 changed files with 506 additions and 341 deletions

View file

@ -496,8 +496,8 @@ void GLFragmentDecompilerThread::Task()
case RSX_FP_OPCODE_BEM: LOG_ERROR(RSX, "Unimplemented TEX_SRB instruction: BEM"); break; case RSX_FP_OPCODE_BEM: LOG_ERROR(RSX, "Unimplemented TEX_SRB instruction: BEM"); break;
case RSX_FP_OPCODE_TEX: SetDst("texture($t, $0.xy)"); break; case RSX_FP_OPCODE_TEX: SetDst("texture($t, $0.xy)"); break;
case RSX_FP_OPCODE_TEXBEM: SetDst("texture($t, $0.xy, $1.x)"); break; case RSX_FP_OPCODE_TEXBEM: SetDst("texture($t, $0.xy, $1.x)"); break;
case RSX_FP_OPCODE_TXP: SetDst("textureProj($t, $0.xy, $1.x)"); break; //TODO: More testing (Sonic The Hedgehog (NPUB-30442/NPEB-00478) and The Simpsons Arcade Game (NPUB30563)) case RSX_FP_OPCODE_TXP: SetDst("textureProj($t, $0.xyz, $1.x)"); break; //TODO: More testing (Sonic The Hedgehog (NPUB-30442/NPEB-00478) and The Simpsons Arcade Game (NPUB30563))
case RSX_FP_OPCODE_TXPBEM: SetDst("textureProj($t, $0.xy, $1.x)"); break; case RSX_FP_OPCODE_TXPBEM: SetDst("textureProj($t, $0.xyz, $1.x)"); break;
case RSX_FP_OPCODE_TXD: LOG_ERROR(RSX, "Unimplemented TEX_SRB instruction: TXD"); break; case RSX_FP_OPCODE_TXD: LOG_ERROR(RSX, "Unimplemented TEX_SRB instruction: TXD"); break;
case RSX_FP_OPCODE_TXB: SetDst("texture($t, $0.xy, $1.x)"); break; case RSX_FP_OPCODE_TXB: SetDst("texture($t, $0.xy, $1.x)"); break;
case RSX_FP_OPCODE_TXL: SetDst("textureLod($t, $0.xy, $1.x)"); break; case RSX_FP_OPCODE_TXL: SetDst("textureLod($t, $0.xy, $1.x)"); break;

View file

@ -536,7 +536,7 @@ void GLVertexDecompilerThread::Task()
switch (d1.sca_opcode) switch (d1.sca_opcode)
{ {
case 0x08: //BRA case 0x08: //BRA
LOG_WARNING(RSX, "BRA found. Please report to RPCS3 team."); LOG_ERROR(RSX, "BRA found. Please report to RPCS3 team.");
is_has_BRA = true; is_has_BRA = true;
m_jump_lvls.clear(); m_jump_lvls.clear();
d3.HEX = m_data[++i]; d3.HEX = m_data[++i];

View file

@ -1,7 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "ModuleManager.h" #include "ModuleManager.h"
extern Module sys_fs;
extern Module cellAdec; extern Module cellAdec;
extern Module cellAtrac; extern Module cellAtrac;
extern Module cellAudio; extern Module cellAudio;
@ -16,19 +15,19 @@ extern Module cellGcmSys;
extern Module cellGem; extern Module cellGem;
extern Module cellGifDec; extern Module cellGifDec;
extern Module cellJpgDec; extern Module cellJpgDec;
extern Module sys_io;
extern Module cellL10n; extern Module cellL10n;
extern Module cellMic; extern Module cellMic;
extern Module sys_io;
extern Module cellSysutil; extern Module cellSysutil;
extern Module cellNetCtl; extern Module cellNetCtl;
extern Module cellOvis; extern Module cellOvis;
extern Module sys_io;
extern Module cellPamf; extern Module cellPamf;
extern Module cellPngDec; extern Module cellPngDec;
extern Module cellResc; extern Module cellResc;
extern Module cellRtc; extern Module cellRtc;
extern Module cellRudp;
extern Module cellSail; extern Module cellSail;
extern Module cellScreenshot;
extern Module cellSearch;
extern Module cellSysutil; extern Module cellSysutil;
extern Module cellSpurs; extern Module cellSpurs;
extern Module cellSpursJq; extern Module cellSpursJq;
@ -38,8 +37,10 @@ extern Module cellSync2;
extern Module cellSysmodule; extern Module cellSysmodule;
extern Module cellSysutil; extern Module cellSysutil;
extern Module cellSysutilAp; extern Module cellSysutilAp;
extern Module cellUsbd;
extern Module cellUserInfo; extern Module cellUserInfo;
extern Module cellVdec; extern Module cellVdec;
extern Module cellVoice;
extern Module cellVpost; extern Module cellVpost;
extern Module libmixer; extern Module libmixer;
extern Module sceNp; extern Module sceNp;
@ -48,6 +49,7 @@ extern Module sceNpCommerce2;
extern Module sceNpSns; extern Module sceNpSns;
extern Module sceNpTrophy; extern Module sceNpTrophy;
extern Module sceNpTus; extern Module sceNpTus;
extern Module sys_fs;
extern Module sys_io; extern Module sys_io;
extern Module sys_net; extern Module sys_net;
extern Module sysPrxForUser; extern Module sysPrxForUser;
@ -88,7 +90,7 @@ static const g_module_list[] =
{ 0x0019, "cellFont", &cellFont }, { 0x0019, "cellFont", &cellFont },
{ 0x001a, "cellFontFT", &cellFontFT }, { 0x001a, "cellFontFT", &cellFontFT },
{ 0x001b, "cellFreetype", nullptr }, { 0x001b, "cellFreetype", nullptr },
{ 0x001c, "cellUsbd", nullptr }, { 0x001c, "cellUsbd", &cellUsbd },
{ 0x001d, "cellSail", &cellSail }, { 0x001d, "cellSail", &cellSail },
{ 0x001e, "cellL10n", &cellL10n }, { 0x001e, "cellL10n", &cellL10n },
{ 0x001f, "cellResc", &cellResc }, { 0x001f, "cellResc", &cellResc },
@ -126,12 +128,12 @@ static const g_module_list[] =
{ 0x0043, "cellFiber", &cellFiber }, { 0x0043, "cellFiber", &cellFiber },
{ 0x0044, "sceNpCommerce2", &sceNpCommerce2 }, { 0x0044, "sceNpCommerce2", &sceNpCommerce2 },
{ 0x0045, "sceNpTus", &sceNpTus }, { 0x0045, "sceNpTus", &sceNpTus },
{ 0x0046, "cellVoice", nullptr }, { 0x0046, "cellVoice", &cellVoice },
{ 0x0047, "cellAdecCelp8", nullptr }, { 0x0047, "cellAdecCelp8", nullptr },
{ 0x0048, "cellCelp8Enc", nullptr }, { 0x0048, "cellCelp8Enc", nullptr },
{ 0x0049, "cellLicenseArea", nullptr }, { 0x0049, "cellLicenseArea", nullptr },
{ 0x004a, "cellMusic2", nullptr }, { 0x004a, "cellMusic2", nullptr },
{ 0x004e, "cellScreenshot", nullptr }, { 0x004e, "cellScreenShotUtility", &cellScreenshot },
{ 0x004f, "cellMusicDecode", nullptr }, { 0x004f, "cellMusicDecode", nullptr },
{ 0x0050, "cellSpursJq", &cellSpursJq }, { 0x0050, "cellSpursJq", &cellSpursJq },
{ 0x0052, "cellPngEnc", nullptr }, { 0x0052, "cellPngEnc", nullptr },
@ -154,7 +156,7 @@ static const g_module_list[] =
{ 0xf02b, "cellPhotoImport", nullptr }, { 0xf02b, "cellPhotoImport", nullptr },
{ 0xf02c, "cellMusicExport", nullptr }, { 0xf02c, "cellMusicExport", nullptr },
{ 0xf02e, "cellPhotoDecode", nullptr }, { 0xf02e, "cellPhotoDecode", nullptr },
{ 0xf02f, "cellSearch", nullptr }, { 0xf02f, "cellSearch", &cellSearch },
{ 0xf030, "cellAvchat2", nullptr }, { 0xf030, "cellAvchat2", nullptr },
{ 0xf034, "cellSailRec", nullptr }, { 0xf034, "cellSailRec", nullptr },
{ 0xf035, "sceNpTrophy", &sceNpTrophy }, { 0xf035, "sceNpTrophy", &sceNpTrophy },

View file

@ -8,30 +8,46 @@
extern Module sys_io; extern Module sys_io;
int cellPadInit(u32 max_connect) s32 cellPadInit(u32 max_connect)
{ {
sys_io.Warning("cellPadInit(max_connect=%d)", max_connect); sys_io.Warning("cellPadInit(max_connect=%d)", max_connect);
if(Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_ALREADY_INITIALIZED;
if (max_connect > CELL_PAD_MAX_PORT_NUM) return CELL_PAD_ERROR_INVALID_PARAMETER; if (Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_ALREADY_INITIALIZED;
if (max_connect > CELL_PAD_MAX_PORT_NUM)
return CELL_PAD_ERROR_INVALID_PARAMETER;
Emu.GetPadManager().Init(max_connect); Emu.GetPadManager().Init(max_connect);
return CELL_OK; return CELL_OK;
} }
int cellPadEnd() s32 cellPadEnd()
{ {
sys_io.Log("cellPadEnd()"); sys_io.Log("cellPadEnd()");
if(!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
Emu.GetPadManager().Close(); Emu.GetPadManager().Close();
return CELL_OK; return CELL_OK;
} }
int cellPadClearBuf(u32 port_no) s32 cellPadClearBuf(u32 port_no)
{ {
sys_io.Log("cellPadClearBuf(port_no=%d)", port_no); sys_io.Log("cellPadClearBuf(port_no=%d)", port_no);
if(!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
//Set 'm_buffer_cleared' to force a resend of everything //Set 'm_buffer_cleared' to force a resend of everything
//might as well also reset everything in our pad 'buffer' to nothing as well //might as well also reset everything in our pad 'buffer' to nothing as well
@ -54,7 +70,7 @@ int cellPadClearBuf(u32 port_no)
return CELL_OK; return CELL_OK;
} }
int cellPadPeriphGetInfo(vm::ptr<CellPadPeriphInfo> info) s32 cellPadPeriphGetInfo(vm::ptr<CellPadPeriphInfo> info)
{ {
sys_io.Warning("cellPadPeriphGetInfo(info_addr=0x%x)", info.addr()); sys_io.Warning("cellPadPeriphGetInfo(info_addr=0x%x)", info.addr());
@ -67,26 +83,23 @@ int cellPadPeriphGetInfo(vm::ptr<CellPadPeriphInfo> info)
return CELL_OK; return CELL_OK;
} }
int cellPadGetData(u32 port_no, vm::ptr<CellPadData> data) s32 cellPadGetData(u32 port_no, vm::ptr<CellPadData> data)
{ {
sys_io.Log("cellPadGetData(port_no=%d, data_addr=0x%x)", port_no, data.addr()); sys_io.Log("cellPadGetData(port_no=%d, data_addr=0x%x)", port_no, data.addr());
std::vector<Pad>& pads = Emu.GetPadManager().GetPads(); std::vector<Pad>& pads = Emu.GetPadManager().GetPads();
if (!Emu.GetPadManager().IsInited()) { if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED; return CELL_PAD_ERROR_UNINITIALIZED;
}
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) { if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER; return CELL_PAD_ERROR_INVALID_PARAMETER;
}
//We have a choice here of NO_DEVICE or READ_FAILED...lets try no device for now //We have a choice here of NO_DEVICE or READ_FAILED...lets try no device for now
if (port_no >= rinfo.now_connect) { if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE; return CELL_PAD_ERROR_NO_DEVICE;
}
Pad& pad = pads[port_no]; Pad& pad = pads[port_no];
@ -249,33 +262,46 @@ int cellPadGetData(u32 port_no, vm::ptr<CellPadData> data)
return CELL_OK; return CELL_OK;
} }
int cellPadGetDataExtra(u32 port_no, u32 device_type_addr, u32 data_addr) s32 cellPadGetDataExtra(u32 port_no, u32 device_type_addr, u32 data_addr)
{ {
sys_io.Log("cellPadGetDataExtra(port_no=%d, device_type_addr=0x%x, device_type_addr=0x%x)", port_no, device_type_addr, data_addr); sys_io.Log("cellPadGetDataExtra(port_no=%d, device_type_addr=0x%x, device_type_addr=0x%x)", port_no, device_type_addr, data_addr);
if(!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
return CELL_OK; return CELL_OK;
} }
int cellPadSetActDirect(u32 port_no, u32 param_addr) s32 cellPadSetActDirect(u32 port_no, u32 param_addr)
{ {
sys_io.Log("cellPadSetActDirect(port_no=%d, param_addr=0x%x)", port_no, param_addr); sys_io.Log("cellPadSetActDirect(port_no=%d, param_addr=0x%x)", port_no, param_addr);
if(!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
return CELL_OK; return CELL_OK;
} }
int cellPadGetInfo(vm::ptr<CellPadInfo> info) s32 cellPadGetInfo(vm::ptr<CellPadInfo> info)
{ {
sys_io.Log("cellPadGetInfo(info_addr=0x%x)", info.addr()); sys_io.Log("cellPadGetInfo(info_addr=0x%x)", info.addr());
if(!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED; if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
info->max_connect = rinfo.max_connect; info->max_connect = rinfo.max_connect;
@ -299,11 +325,12 @@ int cellPadGetInfo(vm::ptr<CellPadInfo> info)
return CELL_OK; return CELL_OK;
} }
int cellPadGetInfo2(vm::ptr<CellPadInfo2> info) s32 cellPadGetInfo2(vm::ptr<CellPadInfo2> info)
{ {
sys_io.Log("cellPadGetInfo2(info_addr=0x%x)", info.addr()); sys_io.Log("cellPadGetInfo2(info_addr=0x%x)", info.addr());
if(!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED; if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
info->max_connect = rinfo.max_connect; info->max_connect = rinfo.max_connect;
@ -327,14 +354,19 @@ int cellPadGetInfo2(vm::ptr<CellPadInfo2> info)
return CELL_OK; return CELL_OK;
} }
int cellPadGetCapabilityInfo(u32 port_no, vm::ptr<CellCapabilityInfo> info) s32 cellPadGetCapabilityInfo(u32 port_no, vm::ptr<CellCapabilityInfo> info)
{ {
sys_io.Log("cellPadGetCapabilityInfo(port_no=%d, data_addr:=0x%x)", port_no, info.addr()); sys_io.Log("cellPadGetCapabilityInfo(port_no=%d, data_addr:=0x%x)", port_no, info.addr());
if (!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED; if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
const std::vector<Pad>& pads = Emu.GetPadManager().GetPads(); const std::vector<Pad>& pads = Emu.GetPadManager().GetPads();
@ -344,13 +376,19 @@ int cellPadGetCapabilityInfo(u32 port_no, vm::ptr<CellCapabilityInfo> info)
return CELL_OK; return CELL_OK;
} }
int cellPadSetPortSetting(u32 port_no, u32 port_setting) s32 cellPadSetPortSetting(u32 port_no, u32 port_setting)
{ {
sys_io.Log("cellPadSetPortSetting(port_no=%d, port_setting=0x%x)", port_no, port_setting); sys_io.Log("cellPadSetPortSetting(port_no=%d, port_setting=0x%x)", port_no, port_setting);
if(!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
std::vector<Pad>& pads = Emu.GetPadManager().GetPads(); std::vector<Pad>& pads = Emu.GetPadManager().GetPads();
pads[port_no].m_port_setting = port_setting; pads[port_no].m_port_setting = port_setting;
@ -358,40 +396,59 @@ int cellPadSetPortSetting(u32 port_no, u32 port_setting)
return CELL_OK; return CELL_OK;
} }
int cellPadInfoPressMode(u32 port_no) s32 cellPadInfoPressMode(u32 port_no)
{ {
sys_io.Log("cellPadInfoPressMode(port_no=%d)", port_no); sys_io.Log("cellPadInfoPressMode(port_no=%d)", port_no);
if (!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
const std::vector<Pad>& pads = Emu.GetPadManager().GetPads(); const std::vector<Pad>& pads = Emu.GetPadManager().GetPads();
return (pads[port_no].m_device_capability & CELL_PAD_CAPABILITY_PRESS_MODE) > 0; return (pads[port_no].m_device_capability & CELL_PAD_CAPABILITY_PRESS_MODE) > 0;
} }
int cellPadInfoSensorMode(u32 port_no) s32 cellPadInfoSensorMode(u32 port_no)
{ {
sys_io.Log("cellPadInfoSensorMode(port_no=%d)", port_no); sys_io.Log("cellPadInfoSensorMode(port_no=%d)", port_no);
if (!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
const std::vector<Pad>& pads = Emu.GetPadManager().GetPads(); const std::vector<Pad>& pads = Emu.GetPadManager().GetPads();
return (pads[port_no].m_device_capability & CELL_PAD_CAPABILITY_SENSOR_MODE) > 0; return (pads[port_no].m_device_capability & CELL_PAD_CAPABILITY_SENSOR_MODE) > 0;
} }
int cellPadSetPressMode(u32 port_no, u32 mode) s32 cellPadSetPressMode(u32 port_no, u32 mode)
{ {
sys_io.Log("cellPadSetPressMode(port_no=%d, mode=%d)", port_no, mode); sys_io.Log("cellPadSetPressMode(port_no=%d, mode=%d)", port_no, mode);
if (!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (mode != 0 && mode != 1) return CELL_PAD_ERROR_INVALID_PARAMETER; if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
if (mode != 0 && mode != 1)
return CELL_PAD_ERROR_INVALID_PARAMETER;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
std::vector<Pad>& pads = Emu.GetPadManager().GetPads(); std::vector<Pad>& pads = Emu.GetPadManager().GetPads();
@ -403,14 +460,21 @@ int cellPadSetPressMode(u32 port_no, u32 mode)
return CELL_OK; return CELL_OK;
} }
int cellPadSetSensorMode(u32 port_no, u32 mode) s32 cellPadSetSensorMode(u32 port_no, u32 mode)
{ {
sys_io.Log("cellPadSetSensorMode(port_no=%d, mode=%d)", port_no, mode); sys_io.Log("cellPadSetSensorMode(port_no=%d, mode=%d)", port_no, mode);
if (!Emu.GetPadManager().IsInited()) return CELL_PAD_ERROR_UNINITIALIZED;
if (mode != 0 && mode != 1) return CELL_PAD_ERROR_INVALID_PARAMETER; if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
if (mode != 0 && mode != 1)
return CELL_PAD_ERROR_INVALID_PARAMETER;
const PadInfo& rinfo = Emu.GetPadManager().GetInfo(); const PadInfo& rinfo = Emu.GetPadManager().GetInfo();
if (port_no >= rinfo.max_connect) return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect) return CELL_PAD_ERROR_NO_DEVICE; if (port_no >= rinfo.max_connect)
return CELL_PAD_ERROR_INVALID_PARAMETER;
if (port_no >= rinfo.now_connect)
return CELL_PAD_ERROR_NO_DEVICE;
std::vector<Pad>& pads = Emu.GetPadManager().GetPads(); std::vector<Pad>& pads = Emu.GetPadManager().GetPads();
@ -422,6 +486,46 @@ int cellPadSetSensorMode(u32 port_no, u32 mode)
return CELL_OK; return CELL_OK;
} }
s32 cellPadLddRegisterController()
{
sys_io.Todo("cellPadLddRegisterController()");
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
return CELL_OK;
}
s32 cellPadLddDataInsert(s32 handle, vm::ptr<CellPadData> data)
{
sys_io.Todo("cellPadLddDataInsert(handle=%d, data_addr=0x%x)", handle, data.addr());
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
return CELL_OK;
}
s32 cellPadLddGetPortNo(s32 handle)
{
sys_io.Todo("cellPadLddGetPortNo(handle=%d)", handle);
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
return CELL_OK;
}
s32 cellPadLddUnregisterController(s32 handle)
{
sys_io.Todo("cellPadLddUnregisterController(handle=%d)", handle);
if (!Emu.GetPadManager().IsInited())
return CELL_PAD_ERROR_UNINITIALIZED;
return CELL_OK;
}
void cellPad_init() void cellPad_init()
{ {
REG_FUNC(sys_io, cellPadInit); REG_FUNC(sys_io, cellPadInit);
@ -439,4 +543,8 @@ void cellPad_init()
REG_FUNC(sys_io, cellPadSetPressMode); REG_FUNC(sys_io, cellPadSetPressMode);
REG_FUNC(sys_io, cellPadSetSensorMode); REG_FUNC(sys_io, cellPadSetSensorMode);
REG_FUNC(sys_io, cellPadGetCapabilityInfo); REG_FUNC(sys_io, cellPadGetCapabilityInfo);
REG_FUNC(sys_io, cellPadLddRegisterController);
REG_FUNC(sys_io, cellPadLddDataInsert);
REG_FUNC(sys_io, cellPadLddGetPortNo);
REG_FUNC(sys_io, cellPadLddUnregisterController);
} }

View file

@ -1,8 +1,9 @@
#include "stdafx.h" #include "stdafx.h"
#if 0 #include "Emu/Memory/Memory.h"
#include "Emu/System.h"
#include "Emu/SysCalls/Modules.h"
void cellRudp_init(); extern Module cellRudp;
Module cellRudp(0x0057, cellRudp_init);
// Return Codes // Return Codes
enum enum
@ -48,175 +49,175 @@ enum
CELL_RUDP_ERROR_KEEP_ALIVE_FAILURE = 0x80770026, CELL_RUDP_ERROR_KEEP_ALIVE_FAILURE = 0x80770026,
}; };
int cellRudpInit() s32 cellRudpInit()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpEnd() s32 cellRudpEnd()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpEnableInternalIOThread() s32 cellRudpEnableInternalIOThread()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpSetEventHandler() s32 cellRudpSetEventHandler()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpSetMaxSegmentSize() s32 cellRudpSetMaxSegmentSize()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpGetMaxSegmentSize() s32 cellRudpGetMaxSegmentSize()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpCreateContext() s32 cellRudpCreateContext()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpSetOption() s32 cellRudpSetOption()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpGetOption() s32 cellRudpGetOption()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpGetContextStatus() s32 cellRudpGetContextStatus()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpGetStatus() s32 cellRudpGetStatus()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpGetLocalInfo() s32 cellRudpGetLocalInfo()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpGetRemoteInfo() s32 cellRudpGetRemoteInfo()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpBind() s32 cellRudpBind()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpInitiate() s32 cellRudpInitiate()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpActivate() s32 cellRudpActivate()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpTerminate() s32 cellRudpTerminate()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpRead() s32 cellRudpRead()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpWrite() s32 cellRudpWrite()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpGetSizeReadable() s32 cellRudpGetSizeReadable()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpGetSizeWritable() s32 cellRudpGetSizeWritable()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpFlush() s32 cellRudpFlush()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpPollCreate() s32 cellRudpPollCreate()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpPollDestroy() s32 cellRudpPollDestroy()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpPollControl() s32 cellRudpPollControl()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpPollWait() s32 cellRudpPollWait()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpNetReceived() s32 cellRudpNetReceived()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
int cellRudpProcessEvents() s32 cellRudpProcessEvents()
{ {
UNIMPLEMENTED_FUNC(cellRudp); UNIMPLEMENTED_FUNC(cellRudp);
return CELL_OK; return CELL_OK;
} }
void cellRudp_init() Module cellRudp("cellRudp", []()
{ {
REG_FUNC(cellRudp, cellRudpInit); REG_FUNC(cellRudp, cellRudpInit);
REG_FUNC(cellRudp, cellRudpEnd); REG_FUNC(cellRudp, cellRudpEnd);
@ -249,9 +250,8 @@ void cellRudp_init()
REG_FUNC(cellRudp, cellRudpPollDestroy); REG_FUNC(cellRudp, cellRudpPollDestroy);
REG_FUNC(cellRudp, cellRudpPollControl); REG_FUNC(cellRudp, cellRudpPollControl);
REG_FUNC(cellRudp, cellRudpPollWait); REG_FUNC(cellRudp, cellRudpPollWait);
//cellRudp.AddFunc(, cellRudpPollCancel); //REG_FUNC(cellRudp, cellRudpPollCancel);
REG_FUNC(cellRudp, cellRudpNetReceived); REG_FUNC(cellRudp, cellRudpNetReceived);
REG_FUNC(cellRudp, cellRudpProcessEvents); REG_FUNC(cellRudp, cellRudpProcessEvents);
} });
#endif

View file

@ -868,74 +868,77 @@ s32 cellSaveDataListAutoLoad(
u32 container, u32 container,
vm::ptr<void> userdata) vm::ptr<void> userdata)
{ {
cellSysutil.Todo("cellSaveDataListAutoLoad(version=%d, errDialog=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", cellSysutil.Warning("cellSaveDataListAutoLoad(version=%d, errDialog=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)",
version, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); version, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr());
//vm::var<CellSaveDataCBResult> result; vm::var<CellSaveDataCBResult> result;
//vm::var<CellSaveDataListGet> listGet; vm::var<CellSaveDataListGet> listGet;
//vm::var<CellSaveDataFixedSet> fixedSet; vm::var<CellSaveDataFixedSet> fixedSet;
//vm::var<CellSaveDataStatGet> statGet; vm::var<CellSaveDataStatGet> statGet;
//vm::var<CellSaveDataStatSet> statSet; vm::var<CellSaveDataStatSet> statSet;
//std::string saveBaseDir = "/dev_hdd0/home/00000001/savedata/"; // TODO: Get the path of the current user std::string saveBaseDir = "/dev_hdd0/home/00000001/savedata/"; // TODO: Get the path of the current user
//vfsDir dir(saveBaseDir); vfsDir dir(saveBaseDir);
//if (!dir.IsOpened()) if (!dir.IsOpened())
// return CELL_SAVEDATA_ERROR_INTERNAL; return CELL_SAVEDATA_ERROR_INTERNAL;
//std::string dirNamePrefix = setList->dirNamePrefix.get_ptr(); std::string dirNamePrefix = setList->dirNamePrefix.get_ptr();
//std::vector<SaveDataEntry> saveEntries; std::vector<SaveDataEntry> saveEntries;
//for (const DirEntryInfo* entry = dir.Read(); entry; entry = dir.Read()) for (const DirEntryInfo* entry = dir.Read(); entry; entry = dir.Read())
//{ {
// if (entry->flags & DirEntry_TypeDir && entry->name.substr(0, dirNamePrefix.size()) == dirNamePrefix) if (entry->flags & DirEntry_TypeDir && entry->name.substr(0, dirNamePrefix.size()) == dirNamePrefix)
// { {
// // Count the amount of matches and the amount of listed directories // Count the amount of matches and the amount of listed directories
// listGet->dirListNum++; listGet->dirListNum++;
// if (listGet->dirListNum > setBuf->dirListMax) if (listGet->dirListNum > setBuf->dirListMax)
// continue; continue;
// listGet->dirNum++; listGet->dirNum++;
// std::string saveDir = saveBaseDir + entry->name; std::string saveDir = saveBaseDir + entry->name;
// addSaveDataEntry(saveEntries, saveDir); addSaveDataEntry(saveEntries, saveDir);
// } }
//} }
//// Sort the entries and fill the listGet->dirList array // Sort the entries and fill the listGet->dirList array
//std::sort(saveEntries.begin(), saveEntries.end(), sortSaveDataEntry(setList->sortType, setList->sortOrder)); std::sort(saveEntries.begin(), saveEntries.end(), sortSaveDataEntry(setList->sortType, setList->sortOrder));
//listGet->dirList = vm::bptr<CellSaveDataDirList>::make(setBuf->buf.addr()); listGet->dirList = vm::bptr<CellSaveDataDirList>::make(setBuf->buf.addr());
//auto dirList = vm::get_ptr<CellSaveDataDirList>(listGet->dirList.addr()); auto dirList = vm::get_ptr<CellSaveDataDirList>(listGet->dirList.addr());
//for (u32 i = 0; i<saveEntries.size(); i++) { for (u32 i = 0; i<saveEntries.size(); i++) {
// strcpy_trunc(dirList[i].dirName, saveEntries[i].dirName); strcpy_trunc(dirList[i].dirName, saveEntries[i].dirName);
// strcpy_trunc(dirList[i].listParam, saveEntries[i].listParam); strcpy_trunc(dirList[i].listParam, saveEntries[i].listParam);
// memset(dirList[i].reserved, 0, sizeof(dirList[i].reserved)); memset(dirList[i].reserved, 0, sizeof(listGet->dirList[i].reserved));
//} }
//funcFixed(result, listGet, fixedSet); funcFixed(result, listGet, fixedSet);
//if (result->result < 0) { if (result->result < 0) {
// cellSysutil.Error("cellSaveDataListAutoLoad: CellSaveDataListCallback failed."); // TODO: Once we verify that the entire SysCall is working, delete this debug error message. cellSysutil.Error("cellSaveDataListAutoLoad: CellSaveDataListCallback failed."); // TODO: Once we verify that the entire SysCall is working, delete this debug error message.
// return CELL_SAVEDATA_ERROR_CBRESULT; return CELL_SAVEDATA_ERROR_CBRESULT;
//} }
//setSaveDataFixed(saveEntries, fixedSet); setSaveDataFixed(saveEntries, fixedSet);
//getSaveDataStat(saveEntries[0], statGet); // There should be only one element in this list getSaveDataStat(saveEntries[0], statGet); // There should be only one element in this list
//// TODO: Display the Yes|No dialog here // TODO: Display the Yes|No dialog here
//result->userdata = userdata; result->userdata = userdata;
//funcStat(result, statGet, statSet); funcStat(result, statGet, statSet);
//Memory.Free(statGet->fileList.addr()); Memory.Free(statGet->fileList.addr());
//if (result->result < 0) {
// cellSysutil.Error("cellSaveDataFixedLoad2: CellSaveDataStatCallback failed."); // TODO: Once we verify that the entire SysCall is working, delete this debug error message. if (result->result < 0) {
// return CELL_SAVEDATA_ERROR_CBRESULT; cellSysutil.Error("cellSaveDataFixedLoad2: CellSaveDataStatCallback failed."); // TODO: Once we verify that the entire SysCall is working, delete this debug error message.
//} return CELL_SAVEDATA_ERROR_CBRESULT;
///*if (statSet->setParam) }
//// TODO: Write PARAM.SFO file
//*/ /*if (statSet->setParam)
// TODO: Write PARAM.SFO file
*/
// Enter the loop where the save files are read/created/deleted.
s32 ret = modifySaveDataFiles(funcFile, result, saveBaseDir + (char*)statGet->dir.dirName);
//// Enter the loop where the save files are read/created/deleted.
//s32 ret = modifySaveDataFiles(funcFile, result, saveBaseDir + (char*)statGet->dir.dirName);
return CELL_OK; return CELL_OK;
} }

View file

@ -1,58 +1,38 @@
#include "stdafx.h" #include "stdafx.h"
#if 0 #include "Emu/Memory/Memory.h"
#include "Emu/System.h"
#include "Emu/SysCalls/Modules.h"
void cellScreenshot_init(); extern Module cellScreenshot;
Module cellScreenshot(0x004e, cellScreenshot_init);
// Return Codes s32 cellScreenShotSetParameter() //const CellScreenShotSetParam *param
enum
{
CELL_SCREENSHOT_OK = 0x0,
CELL_SCREENSHOT_ERROR_INTERNAL = 0x8002d101,
CELL_SCREENSHOT_ERROR_PARAM = 0x8002d102,
CELL_SCREENSHOT_ERROR_DECODE = 0x8002d103,
CELL_SCREENSHOT_ERROR_NOSPACE = 0x8002d104,
CELL_SCREENSHOT_ERROR_UNSUPPORTED_COLOR_FORMAT = 0x8002d105,
};
// Datatypes
struct CellScreenShotSetParam
{
const char *photo_title;
const char *game_title;
const char *game_comment;
};
// Functions
int cellScreenShotSetParameter() //const CellScreenShotSetParam *param
{ {
UNIMPLEMENTED_FUNC(cellScreenshot); UNIMPLEMENTED_FUNC(cellScreenshot);
return CELL_OK; return CELL_OK;
} }
int cellScreenShotSetOverlayImage() //const char *srcDir, const char *srcFile, s32 offset_x, s32 offset_y s32 cellScreenShotSetOverlayImage() //const char *srcDir, const char *srcFile, s32 offset_x, s32 offset_y
{ {
UNIMPLEMENTED_FUNC(cellScreenshot); UNIMPLEMENTED_FUNC(cellScreenshot);
return CELL_OK; return CELL_OK;
} }
int cellScreenShotEnable() s32 cellScreenShotEnable()
{ {
UNIMPLEMENTED_FUNC(cellScreenshot); UNIMPLEMENTED_FUNC(cellScreenshot);
return CELL_OK; return CELL_OK;
} }
int cellScreenShotDisable() s32 cellScreenShotDisable()
{ {
UNIMPLEMENTED_FUNC(cellScreenshot); UNIMPLEMENTED_FUNC(cellScreenshot);
return CELL_OK; return CELL_OK;
} }
void cellScreenshot_init() Module cellScreenshot("cellScreenshot", []()
{ {
REG_FUNC(cellScreenshot, cellScreenShotSetParameter); REG_FUNC(cellScreenshot, cellScreenShotSetParameter);
REG_FUNC(cellScreenshot, cellScreenShotSetOverlayImage); REG_FUNC(cellScreenshot, cellScreenShotSetOverlayImage);
REG_FUNC(cellScreenshot, cellScreenShotEnable); REG_FUNC(cellScreenshot, cellScreenShotEnable);
REG_FUNC(cellScreenshot, cellScreenShotDisable); REG_FUNC(cellScreenshot, cellScreenShotDisable);
} });
#endif

View file

@ -0,0 +1,17 @@
// Return Codes
enum
{
CELL_SCREENSHOT_OK = 0x0,
CELL_SCREENSHOT_ERROR_INTERNAL = 0x8002d101,
CELL_SCREENSHOT_ERROR_PARAM = 0x8002d102,
CELL_SCREENSHOT_ERROR_DECODE = 0x8002d103,
CELL_SCREENSHOT_ERROR_NOSPACE = 0x8002d104,
CELL_SCREENSHOT_ERROR_UNSUPPORTED_COLOR_FORMAT = 0x8002d105,
};
struct CellScreenShotSetParam
{
const char *photo_title;
const char *game_title;
const char *game_comment;
};

View file

@ -1,8 +1,9 @@
#include "stdafx.h" #include "stdafx.h"
#if 0 #include "Emu/Memory/Memory.h"
#include "Emu/System.h"
#include "Emu/SysCalls/Modules.h"
void cellSearch_init(); extern Module cellSearch;
Module cellSearch(0xf02f, cellSearch_init);
// Error Codes // Error Codes
enum enum
@ -30,127 +31,127 @@ enum
CELL_SEARCH_ERROR_GENERIC = 0x8002C8FF, CELL_SEARCH_ERROR_GENERIC = 0x8002C8FF,
}; };
int cellSearchInitialize() s32 cellSearchInitialize()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchFinalize() s32 cellSearchFinalize()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchStartListSearch() s32 cellSearchStartListSearch()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchStartContentSearchInList() s32 cellSearchStartContentSearchInList()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchStartContentSearch() s32 cellSearchStartContentSearch()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchStartSceneSearchInVideo() s32 cellSearchStartSceneSearchInVideo()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchStartSceneSearch() s32 cellSearchStartSceneSearch()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetContentInfoByOffset() s32 cellSearchGetContentInfoByOffset()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetContentInfoByContentId() s32 cellSearchGetContentInfoByContentId()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetOffsetByContentId() s32 cellSearchGetOffsetByContentId()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetContentIdByOffset() s32 cellSearchGetContentIdByOffset()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetContentInfoGameComment() s32 cellSearchGetContentInfoGameComment()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetMusicSelectionContext() s32 cellSearchGetMusicSelectionContext()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetMusicSelectionContextOfSingleTrack() s32 cellSearchGetMusicSelectionContextOfSingleTrack()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetContentInfoPath() s32 cellSearchGetContentInfoPath()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetContentInfoPathMovieThumb() s32 cellSearchGetContentInfoPathMovieThumb()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchPrepareFile() s32 cellSearchPrepareFile()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchGetContentInfoDeveloperData() s32 cellSearchGetContentInfoDeveloperData()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchCancel() s32 cellSearchCancel()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
int cellSearchEnd() s32 cellSearchEnd()
{ {
UNIMPLEMENTED_FUNC(cellSearch); UNIMPLEMENTED_FUNC(cellSearch);
return CELL_OK; return CELL_OK;
} }
void cellSearch_init() Module cellSearch("cellSearch", []()
{ {
REG_FUNC(cellSearch, cellSearchInitialize); REG_FUNC(cellSearch, cellSearchInitialize);
REG_FUNC(cellSearch, cellSearchFinalize); REG_FUNC(cellSearch, cellSearchFinalize);
@ -172,5 +173,4 @@ void cellSearch_init()
REG_FUNC(cellSearch, cellSearchGetContentInfoDeveloperData); REG_FUNC(cellSearch, cellSearchGetContentInfoDeveloperData);
REG_FUNC(cellSearch, cellSearchCancel); REG_FUNC(cellSearch, cellSearchCancel);
REG_FUNC(cellSearch, cellSearchEnd); REG_FUNC(cellSearch, cellSearchEnd);
} });
#endif

View file

@ -1,177 +1,157 @@
#include "stdafx.h" #include "stdafx.h"
#if 0 #include "Emu/Memory/Memory.h"
#include "Emu/System.h"
#include "Emu/SysCalls/Modules.h"
void cellUsbd_init(); #include "cellUsbd.h"
Module cellUsbd(0x001c, cellUsbd_init);
// Return Codes extern Module cellUsbd;
enum
{
CELL_USBD_ERROR_NOT_INITIALIZED = 0x80110001,
CELL_USBD_ERROR_ALREADY_INITIALIZED = 0x80110002,
CELL_USBD_ERROR_NO_MEMORY = 0x80110003,
CELL_USBD_ERROR_INVALID_PARAM = 0x80110004,
CELL_USBD_ERROR_INVALID_TRANSFER_TYPE = 0x80110005,
CELL_USBD_ERROR_LDD_ALREADY_REGISTERED = 0x80110006,
CELL_USBD_ERROR_LDD_NOT_ALLOCATED = 0x80110007,
CELL_USBD_ERROR_LDD_NOT_RELEASED = 0x80110008,
CELL_USBD_ERROR_LDD_NOT_FOUND = 0x80110009,
CELL_USBD_ERROR_DEVICE_NOT_FOUND = 0x8011000a,
CELL_USBD_ERROR_PIPE_NOT_ALLOCATED = 0x8011000b,
CELL_USBD_ERROR_PIPE_NOT_RELEASED = 0x8011000c,
CELL_USBD_ERROR_PIPE_NOT_FOUND = 0x8011000d,
CELL_USBD_ERROR_IOREQ_NOT_ALLOCATED = 0x8011000e,
CELL_USBD_ERROR_IOREQ_NOT_RELEASED = 0x8011000f,
CELL_USBD_ERROR_IOREQ_NOT_FOUND = 0x80110010,
CELL_USBD_ERROR_CANNOT_GET_DESCRIPTOR = 0x80110011,
CELL_USBD_ERROR_FATAL = 0x801100ff,
};
int cellUsbdInit() s32 cellUsbdInit()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdEnd() s32 cellUsbdEnd()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdSetThreadPriority() s32 cellUsbdSetThreadPriority()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdSetThreadPriority2() s32 cellUsbdSetThreadPriority2()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdGetThreadPriority() s32 cellUsbdGetThreadPriority()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdRegisterLdd() s32 cellUsbdRegisterLdd()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdRegisterExtraLdd() s32 cellUsbdRegisterExtraLdd()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdRegisterExtraLdd2() s32 cellUsbdRegisterExtraLdd2()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdUnregisterLdd() s32 cellUsbdUnregisterLdd()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdUnregisterExtraLdd() s32 cellUsbdUnregisterExtraLdd()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdOpenPipe() s32 cellUsbdOpenPipe()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdClosePipe() s32 cellUsbdClosePipe()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdControlTransfer() s32 cellUsbdControlTransfer()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdBulkTransfer() s32 cellUsbdBulkTransfer()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdInterruptTransfer() s32 cellUsbdInterruptTransfer()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdIsochronousTransfer() s32 cellUsbdIsochronousTransfer()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdHSIsochronousTransfer() s32 cellUsbdHSIsochronousTransfer()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdScanStaticDescriptor() s32 cellUsbdScanStaticDescriptor()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdGetDeviceSpeed() s32 cellUsbdGetDeviceSpeed()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdGetDeviceLocation() s32 cellUsbdGetDeviceLocation()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdSetPrivateData() s32 cellUsbdSetPrivateData()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdGetPrivateData() s32 cellUsbdGetPrivateData()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdAllocateMemory() s32 cellUsbdAllocateMemory()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
int cellUsbdFreeMemory() s32 cellUsbdFreeMemory()
{ {
UNIMPLEMENTED_FUNC(cellUsbd); UNIMPLEMENTED_FUNC(cellUsbd);
return CELL_OK; return CELL_OK;
} }
void cellUsbd_init() Module cellUsbd("cellUsbd", []()
{ {
REG_FUNC(cellUsbd, cellUsbdInit); REG_FUNC(cellUsbd, cellUsbdInit);
REG_FUNC(cellUsbd, cellUsbdEnd); REG_FUNC(cellUsbd, cellUsbdEnd);
@ -204,5 +184,4 @@ void cellUsbd_init()
REG_FUNC(cellUsbd, cellUsbdAllocateMemory); REG_FUNC(cellUsbd, cellUsbdAllocateMemory);
REG_FUNC(cellUsbd, cellUsbdFreeMemory); REG_FUNC(cellUsbd, cellUsbdFreeMemory);
} });
#endif

View file

@ -0,0 +1,39 @@
// Return Codes
enum
{
CELL_USBD_ERROR_NOT_INITIALIZED = 0x80110001,
CELL_USBD_ERROR_ALREADY_INITIALIZED = 0x80110002,
CELL_USBD_ERROR_NO_MEMORY = 0x80110003,
CELL_USBD_ERROR_INVALID_PARAM = 0x80110004,
CELL_USBD_ERROR_INVALID_TRANSFER_TYPE = 0x80110005,
CELL_USBD_ERROR_LDD_ALREADY_REGISTERED = 0x80110006,
CELL_USBD_ERROR_LDD_NOT_ALLOCATED = 0x80110007,
CELL_USBD_ERROR_LDD_NOT_RELEASED = 0x80110008,
CELL_USBD_ERROR_LDD_NOT_FOUND = 0x80110009,
CELL_USBD_ERROR_DEVICE_NOT_FOUND = 0x8011000a,
CELL_USBD_ERROR_PIPE_NOT_ALLOCATED = 0x8011000b,
CELL_USBD_ERROR_PIPE_NOT_RELEASED = 0x8011000c,
CELL_USBD_ERROR_PIPE_NOT_FOUND = 0x8011000d,
CELL_USBD_ERROR_IOREQ_NOT_ALLOCATED = 0x8011000e,
CELL_USBD_ERROR_IOREQ_NOT_RELEASED = 0x8011000f,
CELL_USBD_ERROR_IOREQ_NOT_FOUND = 0x80110010,
CELL_USBD_ERROR_CANNOT_GET_DESCRIPTOR = 0x80110011,
CELL_USBD_ERROR_FATAL = 0x801100ff,
};
// TCC (Transfer Completion Codes)
enum
{
HC_CC_NOERR = 0x0,
EHCI_CC_MISSMF = 0x10,
EHCI_CC_XACT = 0x20,
EHCI_CC_BABBLE = 0x30,
EHCI_CC_DATABUF = 0x40,
EHCI_CC_HALTED = 0x50,
USBD_HC_CC_NOERR = 0x0,
USBD_HC_CC_MISSMF = 0x1,
USBD_HC_CC_XACT = 0x2,
USBD_HC_CC_BABBLE = 0x4,
USBD_HC_CC_DATABUF = 0x8,
};

View file

@ -1,8 +1,9 @@
#include "stdafx.h" #include "stdafx.h"
#if 0 #include "Emu/Memory/Memory.h"
#include "Emu/System.h"
#include "Emu/SysCalls/Modules.h"
void cellVoice_init(); extern Module cellVoice;
Module cellVoice(0x0046, cellVoice_init);
// Error Codes // Error Codes
enum enum
@ -27,211 +28,211 @@ enum
CELL_VOICE_ERROR_TOPOLOGY = 0x80310807, CELL_VOICE_ERROR_TOPOLOGY = 0x80310807,
}; };
int cellVoiceConnectIPortToOPort() s32 cellVoiceConnectIPortToOPort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceCreateNotifyEventQueue() s32 cellVoiceCreateNotifyEventQueue()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceCreatePort() s32 cellVoiceCreatePort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceDeletePort() s32 cellVoiceDeletePort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceDisconnectIPortFromOPort() s32 cellVoiceDisconnectIPortFromOPort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceEnd() s32 cellVoiceEnd()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceGetBitRate() s32 cellVoiceGetBitRate()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceGetMuteFlag() s32 cellVoiceGetMuteFlag()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceGetPortAttr() s32 cellVoiceGetPortAttr()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceGetPortInfo() s32 cellVoiceGetPortInfo()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceGetSignalState() s32 cellVoiceGetSignalState()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceGetVolume() s32 cellVoiceGetVolume()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceInit() s32 cellVoiceInit()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceInitEx() s32 cellVoiceInitEx()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoicePausePort() s32 cellVoicePausePort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoicePausePortAll() s32 cellVoicePausePortAll()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceRemoveNotifyEventQueue() s32 cellVoiceRemoveNotifyEventQueue()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceResetPort() s32 cellVoiceResetPort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceResumePort() s32 cellVoiceResumePort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceResumePortAll() s32 cellVoiceResumePortAll()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceSetBitRate() s32 cellVoiceSetBitRate()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceSetMuteFlag() s32 cellVoiceSetMuteFlag()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceSetMuteFlagAll() s32 cellVoiceSetMuteFlagAll()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceSetNotifyEventQueue() s32 cellVoiceSetNotifyEventQueue()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceSetPortAttr() s32 cellVoiceSetPortAttr()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceSetVolume() s32 cellVoiceSetVolume()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceStart() s32 cellVoiceStart()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceStartEx() s32 cellVoiceStartEx()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceStop() s32 cellVoiceStop()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceUpdatePort() s32 cellVoiceUpdatePort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceWriteToIPort() s32 cellVoiceWriteToIPort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceWriteToIPortEx() s32 cellVoiceWriteToIPortEx()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceReadFromOPort() s32 cellVoiceReadFromOPort()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
int cellVoiceDebugTopology() s32 cellVoiceDebugTopology()
{ {
UNIMPLEMENTED_FUNC(cellVoice); UNIMPLEMENTED_FUNC(cellVoice);
return CELL_OK; return CELL_OK;
} }
void cellVoice_init() Module cellVoice("cellVoice", []()
{ {
REG_FUNC(cellVoice, cellVoiceConnectIPortToOPort); REG_FUNC(cellVoice, cellVoiceConnectIPortToOPort);
REG_FUNC(cellVoice, cellVoiceCreateNotifyEventQueue); REG_FUNC(cellVoice, cellVoiceCreateNotifyEventQueue);
@ -267,5 +268,4 @@ void cellVoice_init()
REG_FUNC(cellVoice, cellVoiceWriteToIPortEx); REG_FUNC(cellVoice, cellVoiceWriteToIPortEx);
REG_FUNC(cellVoice, cellVoiceReadFromOPort); REG_FUNC(cellVoice, cellVoiceReadFromOPort);
REG_FUNC(cellVoice, cellVoiceDebugTopology); REG_FUNC(cellVoice, cellVoiceDebugTopology);
} });
#endif

View file

@ -1029,6 +1029,24 @@ s32 cellFsReadWithOffset(PPUThread& CPU, u32 fd, u64 offset, vm::ptr<void> buf,
return CELL_OK; return CELL_OK;
} }
s32 cellFsSetDefaultContainer(u32 id, u32 total_limit)
{
sys_fs.Todo("cellFsSetDefaultContainer(id=%d, total_limit=%d)", id, total_limit);
return CELL_OK;
}
s32 cellFsSetIoBufferFromDefaultContainer(u32 fd, u32 buffer_size, u32 page_type)
{
sys_fs.Todo("cellFsSetIoBufferFromDefaultContainer(fd=%d, buffer_size=%d, page_type=%d)", fd, buffer_size, page_type);
std::shared_ptr<vfsStream> file;
if (!sys_fs.CheckId(fd, file))
return CELL_ESRCH;
return CELL_OK;
}
Module sys_fs("sys_fs", []() Module sys_fs("sys_fs", []()
{ {
g_FsAioReadID = 0; g_FsAioReadID = 0;
@ -1076,4 +1094,6 @@ Module sys_fs("sys_fs", []()
REG_FUNC(sys_fs, cellFsStReadPutCurrentAddr); REG_FUNC(sys_fs, cellFsStReadPutCurrentAddr);
REG_FUNC(sys_fs, cellFsStReadWait); REG_FUNC(sys_fs, cellFsStReadWait);
REG_FUNC(sys_fs, cellFsStReadWaitCallback); REG_FUNC(sys_fs, cellFsStReadWaitCallback);
REG_FUNC(sys_fs, cellFsSetDefaultContainer);
REG_FUNC(sys_fs, cellFsSetIoBufferFromDefaultContainer);
}); });

View file

@ -61,7 +61,8 @@ s32 sys_ppu_thread_join(u64 thread_id, vm::ptr<u64> vptr)
sys_ppu_thread.Warning("sys_ppu_thread_join(thread_id=%lld, vptr_addr=0x%x)", thread_id, vptr.addr()); sys_ppu_thread.Warning("sys_ppu_thread_join(thread_id=%lld, vptr_addr=0x%x)", thread_id, vptr.addr());
std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id); std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id);
if(!thr) return CELL_ESRCH; if (!thr) return
CELL_ESRCH;
while (thr->IsAlive()) while (thr->IsAlive())
{ {
@ -83,7 +84,8 @@ s32 sys_ppu_thread_detach(u64 thread_id)
sys_ppu_thread.Todo("sys_ppu_thread_detach(thread_id=%lld)", thread_id); sys_ppu_thread.Todo("sys_ppu_thread_detach(thread_id=%lld)", thread_id);
std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id); std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id);
if(!thr) return CELL_ESRCH; if (!thr)
return CELL_ESRCH;
if (!thr->IsJoinable()) if (!thr->IsJoinable())
return CELL_EINVAL; return CELL_EINVAL;
@ -104,7 +106,8 @@ s32 sys_ppu_thread_set_priority(u64 thread_id, s32 prio)
sys_ppu_thread.Log("sys_ppu_thread_set_priority(thread_id=%lld, prio=%d)", thread_id, prio); sys_ppu_thread.Log("sys_ppu_thread_set_priority(thread_id=%lld, prio=%d)", thread_id, prio);
std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id); std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id);
if(!thr) return CELL_ESRCH; if (!thr)
return CELL_ESRCH;
thr->SetPrio(prio); thr->SetPrio(prio);
@ -138,7 +141,8 @@ s32 sys_ppu_thread_stop(u64 thread_id)
sys_ppu_thread.Warning("sys_ppu_thread_stop(thread_id=%lld)", thread_id); sys_ppu_thread.Warning("sys_ppu_thread_stop(thread_id=%lld)", thread_id);
std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id); std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id);
if(!thr) return CELL_ESRCH; if (!thr)
return CELL_ESRCH;
thr->Stop(); thr->Stop();
@ -150,7 +154,8 @@ s32 sys_ppu_thread_restart(u64 thread_id)
sys_ppu_thread.Warning("sys_ppu_thread_restart(thread_id=%lld)", thread_id); sys_ppu_thread.Warning("sys_ppu_thread_restart(thread_id=%lld)", thread_id);
std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id); std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id);
if(!thr) return CELL_ESRCH; if (!thr)
return CELL_ESRCH;
thr->Stop(); thr->Stop();
thr->Run(); thr->Run();
@ -169,8 +174,8 @@ PPUThread* ppu_thread_create(u32 entry, u64 arg, s32 prio, u32 stacksize, bool i
// If not times of smallest allocation unit, round it up to the nearest one. // If not times of smallest allocation unit, round it up to the nearest one.
// And regard zero as a same condition. // And regard zero as a same condition.
sys_ppu_thread.Warning("sys_ppu_thread_create: stacksize increased from 0x%x to 0x%x.", sys_ppu_thread.Warning("sys_ppu_thread_create: stacksize increased from 0x%x to 0x%x.",
stacksize, 4096 * ((u32)(stacksize / 4096) + 1)); stacksize, SYS_PPU_THREAD_STACK_MIN * ((u32)(stacksize / SYS_PPU_THREAD_STACK_MIN) + 1));
stacksize = 4096 * ((u32)(stacksize / 4096) + 1); stacksize = SYS_PPU_THREAD_STACK_MIN * ((u32)(stacksize / SYS_PPU_THREAD_STACK_MIN) + 1);
} }
u32 id = new_thread.GetId(); u32 id = new_thread.GetId();
@ -256,9 +261,8 @@ s32 sys_ppu_thread_rename(u64 thread_id, vm::ptr<const char> name)
sys_ppu_thread.Log("sys_ppu_thread_rename(thread_id=%d, name_addr=0x%x('%s'))", thread_id, name.addr(), name.get_ptr()); sys_ppu_thread.Log("sys_ppu_thread_rename(thread_id=%d, name_addr=0x%x('%s'))", thread_id, name.addr(), name.get_ptr());
std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id); std::shared_ptr<CPUThread> thr = Emu.GetCPU().GetThread(thread_id);
if (!thr) { if (!thr)
return CELL_ESRCH; return CELL_ESRCH;
}
thr->SetThreadName(name.get_ptr()); thr->SetThreadName(name.get_ptr());
return CELL_OK; return CELL_OK;

View file

@ -14,6 +14,11 @@ enum ppu_thread_flags : u64
SYS_PPU_THREAD_CREATE_INTERRUPT = 0x2, SYS_PPU_THREAD_CREATE_INTERRUPT = 0x2,
}; };
enum stackSize
{
SYS_PPU_THREAD_STACK_MIN = 0x4000,
};
// Aux // Aux
PPUThread* ppu_thread_create(u32 entry, u64 arg, s32 prio, u32 stacksize, bool is_joinable, bool is_interrupt, const std::string& name, std::function<void(PPUThread&)> task = nullptr); PPUThread* ppu_thread_create(u32 entry, u64 arg, s32 prio, u32 stacksize, bool is_joinable, bool is_interrupt, const std::string& name, std::function<void(PPUThread&)> task = nullptr);

View file

@ -488,6 +488,7 @@
<ClInclude Include="Emu\SysCalls\Modules\cellResc.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellResc.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellRtc.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellRtc.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellSail.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellSail.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellScreenshot.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellSpurs.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellSpurs.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellSpursJq.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellSpursJq.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellSubdisplay.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellSubdisplay.h" />
@ -495,6 +496,7 @@
<ClInclude Include="Emu\SysCalls\Modules\cellSync2.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellSync2.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellSysutil.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellSysutil.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellSaveData.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellSaveData.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellUsbd.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellUserInfo.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellUserInfo.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellVdec.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellVdec.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellVpost.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellVpost.h" />

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Source Files"> <Filter Include="Source Files">
@ -167,6 +167,9 @@
<ClCompile Include="Emu\SysCalls\Modules\cellGcmSys.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellGcmSys.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellGem.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellGifDec.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellGifDec.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
@ -206,9 +209,18 @@
<ClCompile Include="Emu\SysCalls\Modules\cellRtc.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellRtc.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellRudp.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellSaveData.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellSaveData.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellScreenshot.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellSearch.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellSpurs.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellSpurs.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
@ -233,12 +245,18 @@
<ClCompile Include="Emu\SysCalls\Modules\cellSysutilAp.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellSysutilAp.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellUsbd.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellUserInfo.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellUserInfo.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellVdec.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellVdec.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellVoice.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellVpost.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellVpost.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
@ -404,9 +422,6 @@
<ClCompile Include="Emu\SysCalls\Modules\cellCelpEnc.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellCelpEnc.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellGem.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellHttpUtil.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellHttpUtil.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
@ -443,33 +458,18 @@
<ClCompile Include="Emu\SysCalls\Modules\cellPrint.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellPrint.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellRudp.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellSailRec.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellSailRec.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellScreenshot.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellSearch.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellSheap.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellSheap.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellSsl.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellSsl.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellUsbd.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellUsbpspcm.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellUsbpspcm.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellVoice.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\libsnd3.cpp"> <ClCompile Include="Emu\SysCalls\Modules\libsnd3.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
@ -587,6 +587,9 @@
<ClCompile Include="Emu\RSX\RSXThread.cpp"> <ClCompile Include="Emu\RSX\RSXThread.cpp">
<Filter>Emu\GPU\RSX</Filter> <Filter>Emu\GPU\RSX</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\RSX\CgBinaryFragmentProgram.cpp">
<Filter>Emu\GPU\RSX</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\lv2\sys_event_flag.cpp"> <ClCompile Include="Emu\SysCalls\lv2\sys_event_flag.cpp">
<Filter>Emu\SysCalls\lv2</Filter> <Filter>Emu\SysCalls\lv2</Filter>
</ClCompile> </ClCompile>
@ -854,9 +857,6 @@
<ClCompile Include="Emu\ARMv7\Modules\psv_cond.cpp"> <ClCompile Include="Emu\ARMv7\Modules\psv_cond.cpp">
<Filter>Emu\CPU\ARMv7\Objects</Filter> <Filter>Emu\CPU\ARMv7\Objects</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\RSX\CgBinaryFragmentProgram.cpp">
<Filter>Emu\GPU\RSX</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="Crypto\aes.h"> <ClInclude Include="Crypto\aes.h">
@ -1366,6 +1366,9 @@
<ClInclude Include="Emu\RSX\RSXThread.h"> <ClInclude Include="Emu\RSX\RSXThread.h">
<Filter>Emu\GPU\RSX</Filter> <Filter>Emu\GPU\RSX</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Emu\RSX\CgBinaryProgram.h">
<Filter>Emu\GPU\RSX</Filter>
</ClInclude>
<ClInclude Include="Emu\RSX\RSXVertexProgram.h"> <ClInclude Include="Emu\RSX\RSXVertexProgram.h">
<Filter>Emu\GPU\RSX</Filter> <Filter>Emu\GPU\RSX</Filter>
</ClInclude> </ClInclude>
@ -1522,8 +1525,11 @@
<ClInclude Include="Emu\ARMv7\Modules\psv_cond.h"> <ClInclude Include="Emu\ARMv7\Modules\psv_cond.h">
<Filter>Emu\CPU\ARMv7\Objects</Filter> <Filter>Emu\CPU\ARMv7\Objects</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Emu\RSX\CgBinaryProgram.h"> <ClInclude Include="Emu\SysCalls\Modules\cellUsbd.h">
<Filter>Emu\GPU\RSX</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClInclude>
<ClInclude Include="Emu\SysCalls\Modules\cellScreenshot.h">
<Filter>Emu\SysCalls\Modules</Filter>
</ClInclude> </ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>