From 806913baf585ded75e0000c28da23a9663d01bb2 Mon Sep 17 00:00:00 2001 From: mailwl Date: Fri, 7 Feb 2025 20:52:13 +0300 Subject: [PATCH] Fix lseek(fd, -1, SEEK_SET) for XNA --- src/core/libraries/kernel/file_system.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/libraries/kernel/file_system.cpp b/src/core/libraries/kernel/file_system.cpp index 0150c11f5..600164ef7 100644 --- a/src/core/libraries/kernel/file_system.cpp +++ b/src/core/libraries/kernel/file_system.cpp @@ -317,6 +317,12 @@ s64 PS4_SYSV_ABI sceKernelLseek(int d, s64 offset, int whence) { } s64 PS4_SYSV_ABI posix_lseek(int d, s64 offset, int whence) { + // Workaround for XNA AudioEngine + if (whence == SEEK_SET && (s32)offset == -1) { + SetPosixErrno(EINVAL); + return offset; + } + s64 result = sceKernelLseek(d, offset, whence); if (result < 0) { LOG_ERROR(Kernel_Pthread, "posix_lseek: error = {}", result);