From 2a9354dc1aaaa98a53308f95fea686f43e904d92 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 6 Apr 2013 13:07:31 -0700 Subject: [PATCH] IO waits don't work without dispatch enabled. --- Core/HLE/sceIo.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Core/HLE/sceIo.cpp b/Core/HLE/sceIo.cpp index b608bf2db8..93689056db 100644 --- a/Core/HLE/sceIo.cpp +++ b/Core/HLE/sceIo.cpp @@ -1166,6 +1166,9 @@ u32 sceIoGetAsyncStat(int id, u32 poll, u32 address) DEBUG_LOG(HLE, "%lli = sceIoGetAsyncStat(%i, %i, %08x): not ready", f->asyncResult, id, poll, address); return 1; } else { + if (!__KernelIsDispatchEnabled()) + return SCE_KERNEL_ERROR_CAN_NOT_WAIT; + DEBUG_LOG(HLE, "%lli = sceIoGetAsyncStat(%i, %i, %08x): waiting", f->asyncResult, id, poll, address); __KernelWaitCurThread(WAITTYPE_IO, id, address, 0, false, "io waited"); } @@ -1508,8 +1511,8 @@ const HLEFunction IoFileMgrForUser[] = { { 0x6d08a871, &WrapU_C, "sceIoUnassign" }, { 0x42EC03AC, &WrapU_IUI, "sceIoWrite" }, //(int fd, void *data, int size); { 0x0facab19, &WrapU_IUI, "sceIoWriteAsync" }, - { 0x35dbd746, &WrapI_IU, "sceIoWaitAsyncCB" }, - { 0xe23eec33, &WrapI_IU, "sceIoWaitAsync" }, + { 0x35dbd746, &WrapI_IU, "sceIoWaitAsyncCB", HLE_NOT_DISPATCH_SUSPENDED }, + { 0xe23eec33, &WrapI_IU, "sceIoWaitAsync", HLE_NOT_DISPATCH_SUSPENDED }, { 0x5C2BE2CC, &WrapU_UIU, "sceIoGetFdList"}, };