From ebf356187ea76a9ac3c49347a719cba9344e27f8 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Mon, 3 Nov 2025 13:15:35 +0900 Subject: [PATCH] [Kernel] Reduce some Kinect/camera related log spam Mainly in Forza Horizon 2 --- src/xenia/kernel/xam/apps/xam_app.cc | 6 ++++++ src/xenia/kernel/xam/xam_nui.cc | 8 ++++++++ src/xenia/kernel/xboxkrnl/xboxkrnl_video.cc | 11 +++++++++++ 3 files changed, 25 insertions(+) diff --git a/src/xenia/kernel/xam/apps/xam_app.cc b/src/xenia/kernel/xam/apps/xam_app.cc index 7cf8a1276..05801d747 100644 --- a/src/xenia/kernel/xam/apps/xam_app.cc +++ b/src/xenia/kernel/xam/apps/xam_app.cc @@ -152,6 +152,12 @@ X_HRESULT XamApp::DispatchMessageSync(uint32_t message, uint32_t buffer_ptr, args->unk1.get(), args->unk2.get(), args->unk3.get()); return X_E_SUCCESS; } + case 0x0002B004: { + // Probably related to 0x0002B003, maybe camera/Kinect related. + // Seen in Forza Horizon 2. + XELOGD("XamUnk2B004, unimplemented"); + return X_E_SUCCESS; + } } XELOGE( "Unimplemented XAM message app={:08X}, msg={:08X}, arg1={:08X}, " diff --git a/src/xenia/kernel/xam/xam_nui.cc b/src/xenia/kernel/xam/xam_nui.cc index aa2417e84..6ef6d9677 100644 --- a/src/xenia/kernel/xam/xam_nui.cc +++ b/src/xenia/kernel/xam/xam_nui.cc @@ -74,6 +74,14 @@ dword_result_t XamNuiGetDeviceStatus_entry( } DECLARE_XAM_EXPORT1(XamNuiGetDeviceStatus, kNone, kStub); +dword_result_t XamXStudioRequest_entry(dword_t request_type, + lpdword_t result_ptr) { + // Return failure to indicate XStudio/dev features not available. + XELOGW("XamXStudioRequest called, returning X_E_FAIL"); + return X_E_FAIL; +} +DECLARE_XAM_EXPORT1(XamXStudioRequest, kNone, kStub); + dword_result_t XamUserNuiGetUserIndex_entry(unknown_t unk, lpdword_t index) { return X_E_NO_SUCH_USER; } diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_video.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_video.cc index 9fa9808c1..2f012c073 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_video.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_video.cc @@ -522,6 +522,17 @@ void VdSwap_entry( DECLARE_XBOXKRNL_EXPORT3(VdSwap, kVideo, kImplemented, kHighFrequency, kImportant); +dword_result_t PsCamDeviceRequest_entry(dword_t request_type, + lpvoid_t param_ptr) { + // Quietly return X_E_FAIL to keep from log spamming due to + // lack of proper implemenation. There might be a way to signal + // to the game not to do this, maybe in XamXStudioRequest return + // value? + // Seen in Forza Horizon 2 + return X_E_FAIL; +} +DECLARE_XBOXKRNL_EXPORT1(PsCamDeviceRequest, kVideo, kStub); + void RegisterVideoExports(xe::cpu::ExportResolver* export_resolver, KernelState* kernel_state) { auto memory = kernel_state->memory();