diff --git a/Core/HLE/HLETables.cpp b/Core/HLE/HLETables.cpp index a957fed180..308e4e29f7 100644 --- a/Core/HLE/HLETables.cpp +++ b/Core/HLE/HLETables.cpp @@ -77,7 +77,7 @@ const HLEFunction UtilsForUser[] = {0x91E4F6A7, WrapU_V, "sceKernelLibcClock"}, {0x27CC57F0, WrapU_U, "sceKernelLibcTime"}, {0x71EC4271, sceKernelLibcGettimeofday, "sceKernelLibcGettimeofday"}, - {0xBFA98062, WrapV_UI, "sceKernelDcacheInvalidateRange"}, + {0xBFA98062, WrapI_UI, "sceKernelDcacheInvalidateRange"}, {0xC8186A58, 0, "sceKernelUtilsMd5Digest"}, {0x9E5C5086, 0, "sceKernelUtilsMd5BlockInit"}, {0x61E1E525, 0, "sceKernelUtilsMd5BlockUpdate"}, @@ -90,10 +90,10 @@ const HLEFunction UtilsForUser[] = {0x06FB8A63, 0, "sceKernelUtilsMt19937UInt"}, {0x37FB5C42, sceKernelGetGPI, "sceKernelGetGPI"}, {0x6AD345D7, sceKernelSetGPO, "sceKernelSetGPO"}, - {0x79D1C3FA, sceKernelDcacheWritebackAll, "sceKernelDcacheWritebackAll"}, - {0xB435DEC5, sceKernelDcacheWritebackInvalidateAll, "sceKernelDcacheWritebackInvalidateAll"}, - {0x3EE30821, WrapV_UI, "sceKernelDcacheWritebackRange"}, - {0x34B9FA9E, WrapV_UI, "sceKernelDcacheWritebackInvalidateRange"}, + {0x79D1C3FA, WrapI_V, "sceKernelDcacheWritebackAll"}, + {0xB435DEC5, WrapI_V, "sceKernelDcacheWritebackInvalidateAll"}, + {0x3EE30821, WrapI_UI, "sceKernelDcacheWritebackRange"}, + {0x34B9FA9E, WrapI_UI, "sceKernelDcacheWritebackInvalidateRange"}, {0xC2DF770E, 0, "sceKernelIcacheInvalidateRange"}, {0x80001C4C, 0, "sceKernelDcacheProbe"}, {0x16641D70, 0, "sceKernelDcacheReadTag"}, diff --git a/Core/HLE/sceKernel.cpp b/Core/HLE/sceKernel.cpp index ad62a01ae7..be379dc6b6 100644 --- a/Core/HLE/sceKernel.cpp +++ b/Core/HLE/sceKernel.cpp @@ -237,23 +237,30 @@ void sceKernelGetGPI() // Don't even log these, they're spammy and we probably won't // need to emulate them. Might be useful for invalidating cached // textures, and in the future display lists, in some cases though. -void sceKernelDcacheInvalidateRange(u32 addr, int size) +int sceKernelDcacheInvalidateRange(u32 addr, int size) { gpu->InvalidateCache(addr, size); + return 0; } -void sceKernelDcacheWritebackAll() -{ -} -void sceKernelDcacheWritebackRange(u32 addr, int size) -{ -} -void sceKernelDcacheWritebackInvalidateRange(u32 addr, int size) -{ - gpu->InvalidateCache(addr, size); -} -void sceKernelDcacheWritebackInvalidateAll() +int sceKernelDcacheWritebackAll() { gpu->InvalidateCache(0, -1); + return 0; +} +int sceKernelDcacheWritebackRange(u32 addr, int size) +{ + gpu->InvalidateCache(addr, size); + return 0; +} +int sceKernelDcacheWritebackInvalidateRange(u32 addr, int size) +{ + gpu->InvalidateCache(addr, size); + return 0; +} +int sceKernelDcacheWritebackInvalidateAll() +{ + gpu->InvalidateCache(0, -1); + return 0; } KernelObjectPool::KernelObjectPool() diff --git a/Core/HLE/sceKernel.h b/Core/HLE/sceKernel.h index 08c373dfe6..e958bc92fd 100644 --- a/Core/HLE/sceKernel.h +++ b/Core/HLE/sceKernel.h @@ -294,11 +294,11 @@ void sceKernelFindModuleByName(); void sceKernelSetGPO(); void sceKernelGetGPI(); -void sceKernelDcacheInvalidateRange(u32 addr, int size); -void sceKernelDcacheWritebackAll(); -void sceKernelDcacheWritebackRange(u32 addr, int size); -void sceKernelDcacheWritebackInvalidateRange(u32 addr, int size); -void sceKernelDcacheWritebackInvalidateAll(); +int sceKernelDcacheInvalidateRange(u32 addr, int size); +int sceKernelDcacheWritebackAll(); +int sceKernelDcacheWritebackRange(u32 addr, int size); +int sceKernelDcacheWritebackInvalidateRange(u32 addr, int size); +int sceKernelDcacheWritebackInvalidateAll(); void sceKernelGetThreadStackFreeSize(); void sceKernelIcacheInvalidateAll(); void sceKernelIcacheClearAll();