diff --git a/src/core/libraries/videoout/video_out.cpp b/src/core/libraries/videoout/video_out.cpp index 090ed8624..91616a5ae 100644 --- a/src/core/libraries/videoout/video_out.cpp +++ b/src/core/libraries/videoout/video_out.cpp @@ -199,10 +199,15 @@ int PS4_SYSV_ABI sceVideoOutGetEventData(const Kernel::SceKernelEvent* ev, int64 return ORBIS_VIDEO_OUT_ERROR_INVALID_ADDRESS; } if (ev->filter != Kernel::SceKernelEvent::Filter::VideoOut) { - return ORBIS_VIDEO_OUT_ERROR_INVALID_EVENT_QUEUE; + return ORBIS_VIDEO_OUT_ERROR_INVALID_EVENT; } - *data = ev->data; + auto event_data = ev->data >> 0x10; + if (ev->ident != static_cast(OrbisVideoOutInternalEventId::Flip) || ev->data == 0) { + *data = event_data; + } else { + *data = event_data | 0xFFFF000000000000; + } return ORBIS_OK; }