diff --git a/Core/Core.cpp b/Core/Core.cpp index 5fab683bea..2d8a75cf91 100644 --- a/Core/Core.cpp +++ b/Core/Core.cpp @@ -120,6 +120,7 @@ reswitch: case CORE_POWERDOWN: case CORE_ERROR: + case CORE_NEXTFRAME: //1: Exit loop!! return; } diff --git a/Core/Debugger/SymbolMap.cpp b/Core/Debugger/SymbolMap.cpp index 81761819f3..2c90839b82 100644 --- a/Core/Debugger/SymbolMap.cpp +++ b/Core/Debugger/SymbolMap.cpp @@ -457,7 +457,7 @@ void SymbolMap::UseFuncSignaturesFile(const char *filename, u32 maxAddress) for (size_t j=0; j (id, error); int result; if (f) result = PSP_DEV_TYPE_ALIAS; else { - ERROR_LOG(HLE, "sceIoGetDevTyp: unknown id %s", id); + ERROR_LOG(HLE, "sceIoGetDevType: unknown id %d", id); result = ERROR_KERNEL_BAD_FILE_DESCRIPTOR; } @@ -401,13 +402,14 @@ u32 sceIoGetDevType(int id) u32 sceIoCancel(int id) { + ERROR_LOG(HLE, "UNIMPL sceIoCancel(%d)", id); u32 error; FileNode *f = kernelObjects.Get < FileNode > (id, error); int result; if (f) f->closePending = true; else { - ERROR_LOG(HLE, "sceIoCancel: unknown id %s", id); + ERROR_LOG(HLE, "sceIoCancel: unknown id %d", id); result = ERROR_KERNEL_BAD_FILE_DESCRIPTOR; } @@ -795,6 +797,7 @@ int sceIoCloseAsync(int id) u32 sceIoLseekAsync(int id, s64 offset, int whence) { + DEBUG_LOG(HLE, "sceIoLseekAsync(%d) sorta implemented", id); sceIoLseek(id, offset, whence); __IoCompleteAsyncIO(id); return 0; diff --git a/Core/HLE/sceKernelModule.cpp b/Core/HLE/sceKernelModule.cpp index 83ef5d59ff..290d03aab8 100644 --- a/Core/HLE/sceKernelModule.cpp +++ b/Core/HLE/sceKernelModule.cpp @@ -903,7 +903,7 @@ u32 sceKernelLoadModuleByID(u32 id, u32 flags, u32 lmoptionPtr) { u32 error; u32 handle = __IoGetFileHandleFromId(id, error); - if (handle < 0) { + if (handle == -1) { ERROR_LOG(HLE,"sceKernelLoadModuleByID(%08x, %08x, %08x): could not open file id",id,flags,lmoptionPtr); return error; } diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index 619e1c6603..0c86272339 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -1874,7 +1874,7 @@ void sceKernelSleepThreadCB() int sceKernelWaitThreadEnd(SceUID threadID, u32 timeoutPtr) { - DEBUG_LOG(HLE, "sceKernelWaitThreadEnd(%i, %08x)", threadID); + DEBUG_LOG(HLE, "sceKernelWaitThreadEnd(%i, %08x)", threadID, timeoutPtr); if (threadID == 0 || threadID == currentThread) return SCE_KERNEL_ERROR_ILLEGAL_THID; @@ -1900,7 +1900,7 @@ int sceKernelWaitThreadEnd(SceUID threadID, u32 timeoutPtr) int sceKernelWaitThreadEndCB(SceUID threadID, u32 timeoutPtr) { - DEBUG_LOG(HLE, "sceKernelWaitThreadEnd(%i)", threadID); + DEBUG_LOG(HLE, "sceKernelWaitThreadEndCB(%i)", threadID, timeoutPtr); if (threadID == 0 || threadID == currentThread) return SCE_KERNEL_ERROR_ILLEGAL_THID; @@ -1920,7 +1920,7 @@ int sceKernelWaitThreadEndCB(SceUID threadID, u32 timeoutPtr) } else { - ERROR_LOG(HLE, "sceKernelWaitThreadEnd - bad thread %i", threadID); + ERROR_LOG(HLE, "sceKernelWaitThreadEndCB - bad thread %i", threadID); return error; } } diff --git a/Core/HLE/sceMpeg.cpp b/Core/HLE/sceMpeg.cpp index 0519e3dc24..c51bd05622 100644 --- a/Core/HLE/sceMpeg.cpp +++ b/Core/HLE/sceMpeg.cpp @@ -193,7 +193,7 @@ struct MpegContext { bool endOfVideoReached; int videoPixelMode; u32 mpegMagic; - u32 mpegVersion; + int mpegVersion; u32 mpegRawVersion; u32 mpegOffset; u32 mpegStreamSize; @@ -1028,7 +1028,7 @@ int sceMpegGetAvcAu(u32 mpeg, u32 streamId, u32 auAddr, u32 attrAddr) } result = PSP_ERROR_MPEG_NO_DATA; } - if (ctx->mpegLastTimestamp < 0 || sceAu.pts >= ctx->mpegLastTimestamp) { + if (ctx->mpegLastTimestamp <= 0 || sceAu.pts >= ctx->mpegLastTimestamp) { NOTICE_LOG(HLE, "End of video reached"); ctx->endOfVideoReached = true; } else { diff --git a/Core/MIPS/MIPSIntVFPU.cpp b/Core/MIPS/MIPSIntVFPU.cpp index 3c51ebd68e..8ae4847f4e 100644 --- a/Core/MIPS/MIPSIntVFPU.cpp +++ b/Core/MIPS/MIPSIntVFPU.cpp @@ -656,6 +656,10 @@ namespace MIPSInt d[2] = ExpandHalf(s[1] & 0xFFFF); d[3] = ExpandHalf(s[1] >> 16); break; + case V_Triple: + case V_Quad: + _dbg_assert_msg_(CPU, 0, "Trying to interpret Int_Vh2f instruction that can't be interpreted"); + break; } ApplyPrefixD(d, sz); //TODO: and the mask to kill everything but mask WriteVector(d, sz, vd);