Few warnings fixed

This commit is contained in:
Nekotekina 2014-10-24 17:24:09 +04:00
parent 973e3f8f7e
commit 6df5ddb973
15 changed files with 720 additions and 159 deletions

View file

@ -28,7 +28,7 @@ public:
{ {
if (m_count >= SQSize) if (m_count >= SQSize)
{ {
if (Emu.IsStopped() || do_exit && *do_exit) if (Emu.IsStopped() || (do_exit && *do_exit))
{ {
return false; return false;
} }
@ -55,7 +55,7 @@ public:
{ {
if (!m_count) if (!m_count)
{ {
if (Emu.IsStopped() || do_exit && *do_exit) if (Emu.IsStopped() || (do_exit && *do_exit))
{ {
return false; return false;
} }
@ -90,7 +90,7 @@ public:
{ {
if (m_count <= pos) if (m_count <= pos)
{ {
if (Emu.IsStopped() || do_exit && *do_exit) if (Emu.IsStopped() || (do_exit && *do_exit))
{ {
return false; return false;
} }

View file

@ -21,6 +21,12 @@ std::wstring ConvertUTF8ToWString(const std::string &source) {
} }
#endif #endif
#ifdef _WIN32
#define GET_API_ERROR GetLastError()
#else
#define GET_API_ERROR err
#endif
bool getFileInfo(const char *path, FileInfo *fileInfo) { bool getFileInfo(const char *path, FileInfo *fileInfo) {
// TODO: Expand relative paths? // TODO: Expand relative paths?
fileInfo->fullName = path; fileInfo->fullName = path;
@ -103,14 +109,15 @@ bool rMkpath(const std::string &path)
bool rRmdir(const std::string &dir) bool rRmdir(const std::string &dir)
{ {
#ifdef _WIN32 #ifdef _WIN32
if (!RemoveDirectory(ConvertUTF8ToWString(dir).c_str())) { if (!RemoveDirectory(ConvertUTF8ToWString(dir).c_str()))
LOG_ERROR(GENERAL, "Error deleting directory %s: %i", dir.c_str(), GetLastError()); #else
if (int err = rmdir(dir.c_str()))
#endif
{
LOG_ERROR(GENERAL, "Error deleting directory %s: %i", dir.c_str(), GET_API_ERROR);
return false; return false;
} }
return true; return true;
#else
rmdir(dir.c_str());
#endif
} }
bool rRename(const std::string &from, const std::string &to) bool rRename(const std::string &from, const std::string &to)
@ -137,17 +144,14 @@ bool rExists(const std::string &file)
bool rRemoveFile(const std::string &file) bool rRemoveFile(const std::string &file)
{ {
#ifdef _WIN32 #ifdef _WIN32
if (!DeleteFile(ConvertUTF8ToWString(file).c_str())) { if (!DeleteFile(ConvertUTF8ToWString(file).c_str()))
LOG_ERROR(GENERAL, "Error deleting %s: %i", file.c_str(), GetLastError());
return false;
}
#else #else
int err = unlink(file.c_str()); if (int err = unlink(file.c_str()))
if (err) { #endif
LOG_ERROR(GENERAL, "Error unlinking %s: %i", file.c_str(), err); {
LOG_ERROR(GENERAL, "Error deleting %s: %i", file.c_str(), GET_API_ERROR);
return false; return false;
} }
#endif
return true; return true;
} }

View file

@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Express 2013 for Windows Desktop # Visual Studio 2013
VisualStudioVersion = 12.0.30723.0 VisualStudioVersion = 12.0.30723.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rpcs3", "rpcs3\rpcs3.vcxproj", "{70CD65B0-91D6-4FAE-9A7B-4AF55D0D1B12}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rpcs3", "rpcs3\rpcs3.vcxproj", "{70CD65B0-91D6-4FAE-9A7B-4AF55D0D1B12}"
@ -21,6 +21,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rpcs3", "rpcs3\rpcs3.vcxpro
{7047EE97-7F80-A70D-6147-BC11102DB6F4} = {7047EE97-7F80-A70D-6147-BC11102DB6F4} {7047EE97-7F80-A70D-6147-BC11102DB6F4} = {7047EE97-7F80-A70D-6147-BC11102DB6F4}
{87B42A9C-3F5C-53D7-9017-2B1CAE39457D} = {87B42A9C-3F5C-53D7-9017-2B1CAE39457D} {87B42A9C-3F5C-53D7-9017-2B1CAE39457D} = {87B42A9C-3F5C-53D7-9017-2B1CAE39457D}
{6FCB55A5-563F-4039-1D79-1EB6ED8AAB82} = {6FCB55A5-563F-4039-1D79-1EB6ED8AAB82} {6FCB55A5-563F-4039-1D79-1EB6ED8AAB82} = {6FCB55A5-563F-4039-1D79-1EB6ED8AAB82}
{8BC303AB-25BE-4276-8E57-73F171B2D672} = {8BC303AB-25BE-4276-8E57-73F171B2D672}
{949C6DB8-E638-6EC6-AB31-BCCFD1379E01} = {949C6DB8-E638-6EC6-AB31-BCCFD1379E01} {949C6DB8-E638-6EC6-AB31-BCCFD1379E01} = {949C6DB8-E638-6EC6-AB31-BCCFD1379E01}
{74827EBD-93DC-5110-BA95-3F2AB029B6B0} = {74827EBD-93DC-5110-BA95-3F2AB029B6B0} {74827EBD-93DC-5110-BA95-3F2AB029B6B0} = {74827EBD-93DC-5110-BA95-3F2AB029B6B0}
{46333DC3-B4A5-3DCC-E8BF-A3F20ADC56D2} = {46333DC3-B4A5-3DCC-E8BF-A3F20ADC56D2} {46333DC3-B4A5-3DCC-E8BF-A3F20ADC56D2} = {46333DC3-B4A5-3DCC-E8BF-A3F20ADC56D2}
@ -138,9 +139,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "asmjit", "asmjit", "{E2A982F2-4B1A-48B1-8D77-A17A589C58D7}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "asmjit", "asmjit", "{E2A982F2-4B1A-48B1-8D77-A17A589C58D7}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emucore", "rpcs3\emucore.vcxproj", "{C4A10229-4712-4BD2-B63E-50D93C67A038}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emucore", "rpcs3\emucore.vcxproj", "{C4A10229-4712-4BD2-B63E-50D93C67A038}"
ProjectSection(ProjectDependencies) = postProject
{8BC303AB-25BE-4276-8E57-73F171B2D672} = {8BC303AB-25BE-4276-8E57-73F171B2D672}
EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "llvm", "llvm", "{C8068CE9-D626-4FEA-BEE7-893F06A25BF3}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "llvm", "llvm", "{C8068CE9-D626-4FEA-BEE7-893F06A25BF3}"
EndProject EndProject

File diff suppressed because it is too large Load diff

View file

@ -241,13 +241,13 @@ void SPUThread::ProcessCmd(u32 cmd, u32 tag, u32 lsa, u64 ea, u32 size)
{ {
case MFC_PUT_CMD: case MFC_PUT_CMD:
{ {
vm::write32(ea, ReadLS32(lsa)); vm::write32((u32)ea, ReadLS32(lsa));
return; return;
} }
case MFC_GET_CMD: case MFC_GET_CMD:
{ {
WriteLS32(lsa, vm::read32(ea)); WriteLS32(lsa, vm::read32((u32)ea));
return; return;
} }
@ -264,13 +264,13 @@ void SPUThread::ProcessCmd(u32 cmd, u32 tag, u32 lsa, u64 ea, u32 size)
{ {
case MFC_PUT_CMD: case MFC_PUT_CMD:
{ {
memcpy(vm::get_ptr<void>(ea), vm::get_ptr<void>(ls_offset + lsa), size); memcpy(vm::get_ptr<void>((u32)ea), vm::get_ptr<void>(ls_offset + lsa), size);
return; return;
} }
case MFC_GET_CMD: case MFC_GET_CMD:
{ {
memcpy(vm::get_ptr<void>(ls_offset + lsa), vm::get_ptr<void>(ea), size); memcpy(vm::get_ptr<void>(ls_offset + lsa), vm::get_ptr<void>((u32)ea), size);
return; return;
} }
@ -402,6 +402,17 @@ void SPUThread::EnqMfcCmd(MFCReg& MFCArgs)
op == MFC_PUTLLUC_CMD ? "PUTLLUC" : "PUTQLLUC"), op == MFC_PUTLLUC_CMD ? "PUTLLUC" : "PUTQLLUC"),
lsa, ea, tag, size, cmd); lsa, ea, tag, size, cmd);
if ((u32)ea != ea)
{
LOG_ERROR(Log::SPU, "DMA %s: Invalid external address (0x%llx)",
(op == MFC_GETLLAR_CMD ? "GETLLAR" :
op == MFC_PUTLLC_CMD ? "PUTLLC" :
op == MFC_PUTLLUC_CMD ? "PUTLLUC" : "PUTQLLUC"),
ea);
Emu.Pause();
return;
}
if (op == MFC_GETLLAR_CMD) // get reservation if (op == MFC_GETLLAR_CMD) // get reservation
{ {
if (R_ADDR) if (R_ADDR)
@ -412,7 +423,7 @@ void SPUThread::EnqMfcCmd(MFCReg& MFCArgs)
R_ADDR = ea; R_ADDR = ea;
for (u32 i = 0; i < 16; i++) for (u32 i = 0; i < 16; i++)
{ {
R_DATA[i] = vm::get_ptr<u64>(R_ADDR)[i]; R_DATA[i] = vm::get_ptr<u64>((u32)R_ADDR)[i];
vm::get_ptr<u64>(ls_offset + lsa)[i] = R_DATA[i]; vm::get_ptr<u64>(ls_offset + lsa)[i] = R_DATA[i];
} }
MFCArgs.AtomicStat.PushUncond(MFC_GETLLAR_SUCCESS); MFCArgs.AtomicStat.PushUncond(MFC_GETLLAR_SUCCESS);
@ -432,7 +443,7 @@ void SPUThread::EnqMfcCmd(MFCReg& MFCArgs)
{ {
changed++; changed++;
mask |= (0x3 << (i * 2)); mask |= (0x3 << (i * 2));
if (vm::get_ptr<u64>(R_ADDR)[i] != R_DATA[i]) if (vm::get_ptr<u64>((u32)R_ADDR)[i] != R_DATA[i])
{ {
m_events |= SPU_EVENT_LR; m_events |= SPU_EVENT_LR;
MFCArgs.AtomicStat.PushUncond(MFC_PUTLLC_FAILURE); MFCArgs.AtomicStat.PushUncond(MFC_PUTLLC_FAILURE);
@ -446,7 +457,7 @@ void SPUThread::EnqMfcCmd(MFCReg& MFCArgs)
{ {
if (buf[i] != R_DATA[i]) if (buf[i] != R_DATA[i])
{ {
if (InterlockedCompareExchange(&vm::get_ptr<volatile u64>(ea)[i], buf[i], R_DATA[i]) != R_DATA[i]) if (InterlockedCompareExchange(&vm::get_ptr<volatile u64>((u32)R_ADDR)[i], buf[i], R_DATA[i]) != R_DATA[i])
{ {
m_events |= SPU_EVENT_LR; m_events |= SPU_EVENT_LR;
MFCArgs.AtomicStat.PushUncond(MFC_PUTLLC_FAILURE); MFCArgs.AtomicStat.PushUncond(MFC_PUTLLC_FAILURE);
@ -520,7 +531,7 @@ bool SPUThread::CheckEvents()
{ {
for (u32 i = 0; i < 16; i++) for (u32 i = 0; i < 16; i++)
{ {
if (vm::get_ptr<u64>(R_ADDR)[i] != R_DATA[i]) if (vm::get_ptr<u64>((u32)R_ADDR)[i] != R_DATA[i])
{ {
m_events |= SPU_EVENT_LR; m_events |= SPU_EVENT_LR;
R_ADDR = 0; R_ADDR = 0;

View file

@ -90,9 +90,8 @@ struct GLParamArray
case PARAM_IN: return "in "; case PARAM_IN: return "in ";
case PARAM_UNIFORM: return "uniform "; case PARAM_UNIFORM: return "uniform ";
case PARAM_CONST: return "const "; case PARAM_CONST: return "const ";
default: return "";
} }
return "";
} }
bool HasParam(const GLParamFlag flag, std::string type, const std::string& name) bool HasParam(const GLParamFlag flag, std::string type, const std::string& name)

View file

@ -201,36 +201,38 @@ void fix_relocs(Module* module, u32 lib, u32 start, u32 end, u32 seg2)
for (u32 i = lib + start; i < lib + end; i += 24) for (u32 i = lib + start; i < lib + end; i += 24)
{ {
u64 addr = vm::read64(i); u64 addr = vm::read64(i) + lib;
const u64 flag = vm::read64(i + 8); const u64 flag = vm::read64(i + 8);
if (flag == 0x10100000001ull) if ((u32)addr != addr || (u32)(addr + seg2) != (addr + seg2))
{ {
addr = addr + seg2 + lib; module->Error("fix_relocs(): invalid address (0x%llx)", addr);
u32 value = vm::read32(addr); }
else if (flag == 0x10100000001ull)
{
addr = addr + seg2;
u32 value = vm::read32((u32)addr);
assert(value == vm::read64(i + 16) + seg2); assert(value == vm::read64(i + 16) + seg2);
vm::write32(addr, value + lib); vm::write32((u32)addr, value + lib);
} }
else if (flag == 0x100000001ull) else if (flag == 0x100000001ull)
{ {
addr = addr + seg2 + lib; addr = addr + seg2;
u32 value = vm::read32(addr); u32 value = vm::read32((u32)addr);
assert(value == vm::read64(i + 16)); assert(value == vm::read64(i + 16));
vm::write32(addr, value + lib); vm::write32((u32)addr, value + lib);
} }
else if (flag == 0x10000000001ull) else if (flag == 0x10000000001ull)
{ {
addr = addr + lib; u32 value = vm::read32((u32)addr);
u32 value = vm::read32(addr);
assert(value == vm::read64(i + 16) + seg2); assert(value == vm::read64(i + 16) + seg2);
vm::write32(addr, value + lib); vm::write32((u32)addr, value + lib);
} }
else if (flag == 1) else if (flag == 1)
{ {
addr = addr + lib; u32 value = vm::read32((u32)addr);
u32 value = vm::read32(addr);
assert(value == vm::read64(i + 16)); assert(value == vm::read64(i + 16));
vm::write32(addr, value + lib); vm::write32((u32)addr, value + lib);
} }
else if (flag == 0x10000000004ull || flag == 0x10000000006ull) else if (flag == 0x10000000004ull || flag == 0x10000000006ull)
{ {

View file

@ -16,15 +16,15 @@ int cellVideoOutGetScreenSize(u32 videoOut, vm::ptr<float> screenSize)
{ {
cellAvconfExt->Warning("cellVideoOutGetScreenSize(videoOut=%d, screenSize_addr=0x%x)", videoOut, screenSize.addr()); cellAvconfExt->Warning("cellVideoOutGetScreenSize(videoOut=%d, screenSize_addr=0x%x)", videoOut, screenSize.addr());
if (!videoOut == CELL_VIDEO_OUT_PRIMARY) if (videoOut != CELL_VIDEO_OUT_PRIMARY)
return CELL_VIDEO_OUT_ERROR_UNSUPPORTED_VIDEO_OUT; return CELL_VIDEO_OUT_ERROR_UNSUPPORTED_VIDEO_OUT;
#ifdef _WIN32 #ifdef _WIN32
HDC screen = GetDC(NULL); HDC screen = GetDC(NULL);
u32 diagonal = round(sqrt((pow(GetDeviceCaps(screen, HORZSIZE), 2) + pow(GetDeviceCaps(screen, VERTSIZE), 2))) * 0.0393); float diagonal = roundf(sqrtf((powf(GetDeviceCaps(screen, HORZSIZE), 2) + powf(GetDeviceCaps(screen, VERTSIZE), 2))) * 0.0393);
#else #else
// TODO: Linux implementation, without using wx // TODO: Linux implementation, without using wx
// u32 diagonal = round(sqrt((pow(wxGetDisplaySizeMM().GetWidth(), 2) + pow(wxGetDisplaySizeMM().GetHeight(), 2))) * 0.0393); // float diagonal = roundf(sqrtf((powf(wxGetDisplaySizeMM().GetWidth(), 2) + powf(wxGetDisplaySizeMM().GetHeight(), 2))) * 0.0393);
#endif #endif
if (Ini.GS3DTV.GetValue()) if (Ini.GS3DTV.GetValue())

View file

@ -75,13 +75,13 @@ s32 pngDecOpen(
stream->fd = 0; stream->fd = 0;
stream->src = *src; stream->src = *src;
switch (src->srcSelect.ToBE()) switch (src->srcSelect)
{ {
case se32(CELL_PNGDEC_BUFFER): case CELL_PNGDEC_BUFFER:
stream->fileSize = src->streamSize.ToLE(); stream->fileSize = src->streamSize.ToLE();
break; break;
case se32(CELL_PNGDEC_FILE): case CELL_PNGDEC_FILE:
// Get file descriptor // Get file descriptor
vm::var<be_t<u32>> fd; vm::var<be_t<u32>> fd;
int ret = cellFsOpen(vm::ptr<const char>::make(src->fileName.addr()), 0, fd, vm::ptr<u32>::make(0), 0); int ret = cellFsOpen(vm::ptr<const char>::make(src->fileName.addr()), 0, fd, vm::ptr<u32>::make(0), 0);

View file

@ -997,7 +997,7 @@ s32 cellSyncLFQueueInitialize(vm::ptr<CellSyncLFQueue> queue, vm::ptr<u8> buffer
s32 syncLFQueueGetPushPointer(vm::ptr<CellSyncLFQueue> queue, s32& pointer, u32 isBlocking, u32 useEventQueue) s32 syncLFQueueGetPushPointer(vm::ptr<CellSyncLFQueue> queue, s32& pointer, u32 isBlocking, u32 useEventQueue)
{ {
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_PPU2SPU)) if (queue->m_direction != CELL_SYNC_QUEUE_PPU2SPU)
{ {
return CELL_SYNC_ERROR_PERM; return CELL_SYNC_ERROR_PERM;
} }
@ -1124,7 +1124,7 @@ s32 _cellSyncLFQueueGetPushPointer2(vm::ptr<CellSyncLFQueue> queue, vm::ptr<u32>
s32 syncLFQueueCompletePushPointer(vm::ptr<CellSyncLFQueue> queue, s32 pointer, const std::function<s32(u32 addr, u32 arg)> fpSendSignal) s32 syncLFQueueCompletePushPointer(vm::ptr<CellSyncLFQueue> queue, s32 pointer, const std::function<s32(u32 addr, u32 arg)> fpSendSignal)
{ {
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_PPU2SPU)) if (queue->m_direction != CELL_SYNC_QUEUE_PPU2SPU)
{ {
return CELL_SYNC_ERROR_PERM; return CELL_SYNC_ERROR_PERM;
} }
@ -1305,7 +1305,7 @@ s32 _cellSyncLFQueuePushBody(vm::ptr<CellSyncLFQueue> queue, vm::ptr<const void>
{ {
s32 res; s32 res;
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_ANY2ANY)) if (queue->m_direction != CELL_SYNC_QUEUE_ANY2ANY)
{ {
#ifdef PRX_DEBUG_XXX #ifdef PRX_DEBUG_XXX
res = cb_caller<s32, vm::ptr<CellSyncLFQueue>, u32, u32, u64>::call(GetCurrentPPUThread(), libsre + 0x24B0, libsre_rtoc, res = cb_caller<s32, vm::ptr<CellSyncLFQueue>, u32, u32, u64>::call(GetCurrentPPUThread(), libsre + 0x24B0, libsre_rtoc,
@ -1351,7 +1351,7 @@ s32 _cellSyncLFQueuePushBody(vm::ptr<CellSyncLFQueue> queue, vm::ptr<const void>
memcpy(vm::get_ptr<void>((u64)(queue->m_buffer.addr() & ~1ull) + size * (position >= depth ? position - depth : position)), buffer.get_ptr(), size); memcpy(vm::get_ptr<void>((u64)(queue->m_buffer.addr() & ~1ull) + size * (position >= depth ? position - depth : position)), buffer.get_ptr(), size);
s32 res; s32 res;
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_ANY2ANY)) if (queue->m_direction != CELL_SYNC_QUEUE_ANY2ANY)
{ {
#ifdef PRX_DEBUG_XXX #ifdef PRX_DEBUG_XXX
res = cb_caller<s32, vm::ptr<CellSyncLFQueue>, s32, u64>::call(GetCurrentPPUThread(), libsre + 0x26C0, libsre_rtoc, res = cb_caller<s32, vm::ptr<CellSyncLFQueue>, s32, u64>::call(GetCurrentPPUThread(), libsre + 0x26C0, libsre_rtoc,
@ -1376,7 +1376,7 @@ s32 _cellSyncLFQueuePushBody(vm::ptr<CellSyncLFQueue> queue, vm::ptr<const void>
s32 syncLFQueueGetPopPointer(vm::ptr<CellSyncLFQueue> queue, s32& pointer, u32 isBlocking, u32, u32 useEventQueue) s32 syncLFQueueGetPopPointer(vm::ptr<CellSyncLFQueue> queue, s32& pointer, u32 isBlocking, u32, u32 useEventQueue)
{ {
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_SPU2PPU)) if (queue->m_direction != CELL_SYNC_QUEUE_SPU2PPU)
{ {
return CELL_SYNC_ERROR_PERM; return CELL_SYNC_ERROR_PERM;
} }
@ -1503,7 +1503,7 @@ s32 _cellSyncLFQueueGetPopPointer2(vm::ptr<CellSyncLFQueue> queue, vm::ptr<u32>
s32 syncLFQueueCompletePopPointer(vm::ptr<CellSyncLFQueue> queue, s32 pointer, const std::function<s32(u32 addr, u32 arg)> fpSendSignal, u32 noQueueFull) s32 syncLFQueueCompletePopPointer(vm::ptr<CellSyncLFQueue> queue, s32 pointer, const std::function<s32(u32 addr, u32 arg)> fpSendSignal, u32 noQueueFull)
{ {
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_SPU2PPU)) if (queue->m_direction != CELL_SYNC_QUEUE_SPU2PPU)
{ {
return CELL_SYNC_ERROR_PERM; return CELL_SYNC_ERROR_PERM;
} }
@ -1681,7 +1681,7 @@ s32 _cellSyncLFQueuePopBody(vm::ptr<CellSyncLFQueue> queue, vm::ptr<void> buffer
while (true) while (true)
{ {
s32 res; s32 res;
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_ANY2ANY)) if (queue->m_direction != CELL_SYNC_QUEUE_ANY2ANY)
{ {
#ifdef PRX_DEBUG_XXX #ifdef PRX_DEBUG_XXX
res = cb_caller<s32, vm::ptr<CellSyncLFQueue>, u32, u32, u64, u64>::call(GetCurrentPPUThread(), libsre + 0x2A90, libsre_rtoc, res = cb_caller<s32, vm::ptr<CellSyncLFQueue>, u32, u32, u64, u64>::call(GetCurrentPPUThread(), libsre + 0x2A90, libsre_rtoc,
@ -1724,7 +1724,7 @@ s32 _cellSyncLFQueuePopBody(vm::ptr<CellSyncLFQueue> queue, vm::ptr<void> buffer
memcpy(buffer.get_ptr(), vm::get_ptr<void>((u64)(queue->m_buffer.addr() & ~1ull) + size * (position >= depth ? position - depth : position)), size); memcpy(buffer.get_ptr(), vm::get_ptr<void>((u64)(queue->m_buffer.addr() & ~1ull) + size * (position >= depth ? position - depth : position)), size);
s32 res; s32 res;
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_ANY2ANY)) if (queue->m_direction != CELL_SYNC_QUEUE_ANY2ANY)
{ {
#ifdef PRX_DEBUG_XXX #ifdef PRX_DEBUG_XXX
res = cb_caller<s32, vm::ptr<CellSyncLFQueue>, s32, u64, u64>::call(GetCurrentPPUThread(), libsre + 0x2CA8, libsre_rtoc, res = cb_caller<s32, vm::ptr<CellSyncLFQueue>, s32, u64, u64>::call(GetCurrentPPUThread(), libsre + 0x2CA8, libsre_rtoc,
@ -1767,7 +1767,7 @@ s32 cellSyncLFQueueClear(vm::ptr<CellSyncLFQueue> queue)
const auto push = queue->push1.read_relaxed(); const auto push = queue->push1.read_relaxed();
s32 var1, var2; s32 var1, var2;
if (queue->m_direction.ToBE() != se32(CELL_SYNC_QUEUE_ANY2ANY)) if (queue->m_direction != CELL_SYNC_QUEUE_ANY2ANY)
{ {
var1 = var2 = (u16)queue->pop2.read_relaxed().pack; var1 = var2 = (u16)queue->pop2.read_relaxed().pack;
} }

View file

@ -358,7 +358,7 @@ int cellSurMixerCreate(vm::ptr<const CellSurMixerConfig> config)
memset(mixdata, 0, sizeof(mixdata)); memset(mixdata, 0, sizeof(mixdata));
if (surMixerCb) if (surMixerCb)
{ {
surMixerCb.call(cb_thread, surMixerCbArg, mixcount, 256); surMixerCb.call(cb_thread, surMixerCbArg, (u32)mixcount, 256);
} }
//u64 stamp1 = get_system_time(); //u64 stamp1 = get_system_time();

View file

@ -157,7 +157,7 @@ int sys_get_random_number(vm::ptr<u8> addr, u64 size)
if (size > 4096) if (size > 4096)
size = 4096; size = 4096;
for (u64 i = 0; i < size - 1; i++) for (u32 i = 0; i < (u32)size - 1; i++)
{ {
addr[i] = rand() % 256; addr[i] = rand() % 256;
} }

View file

@ -154,7 +154,6 @@ s32 sys_memory_container_get_size(vm::ptr<sys_memory_info_t> mem_info, u32 cid)
return CELL_ESRCH; return CELL_ESRCH;
// HACK: Return all memory. // HACK: Return all memory.
sys_memory_info_t info;
mem_info->total_user_memory = ct->size; mem_info->total_user_memory = ct->size;
mem_info->available_user_memory = ct->size; mem_info->available_user_memory = ct->size;
return CELL_OK; return CELL_OK;

View file

@ -218,9 +218,8 @@ s32 sys_mutex_trylock(u32 mutex_id)
switch (mutex->m_mutex.trylock(tid)) switch (mutex->m_mutex.trylock(tid))
{ {
case SMR_OK: mutex->recursive = 1; t.owned_mutexes++; return CELL_OK; case SMR_OK: mutex->recursive = 1; t.owned_mutexes++; return CELL_OK;
default: return CELL_EBUSY;
} }
return CELL_EBUSY;
} }
s32 sys_mutex_unlock(u32 mutex_id) s32 sys_mutex_unlock(u32 mutex_id)

View file

@ -240,7 +240,7 @@ void Emulator::Load()
try try
{ {
if(!(is_error = !l.Analyze()) && l.GetMachine() != MACHINE_Unknown) if(!(is_error = !l.Analyze()))
{ {
switch(l.GetMachine()) switch(l.GetMachine())
{ {
@ -260,6 +260,9 @@ void Emulator::Load()
case MACHINE_ARM: case MACHINE_ARM:
Memory.Init(Memory_PSV); Memory.Init(Memory_PSV);
break; break;
default:
throw std::string("Unknown machine!");
} }
is_error = !l.Load(); is_error = !l.Load();