diff --git a/src/xenia/kernel/xam/xam_video.cc b/src/xenia/kernel/xam/xam_video.cc index e19ddfec3..3f8c2cee9 100644 --- a/src/xenia/kernel/xam/xam_video.cc +++ b/src/xenia/kernel/xam/xam_video.cc @@ -11,17 +11,37 @@ #include "xenia/kernel/xam/xam_private.h" #include "xenia/kernel/xboxkrnl/xboxkrnl_video.h" +DEFINE_bool(enable_3d_mode, false, + "Enables usage of stereoscopic mode in titles.", "Video"); + namespace xe { namespace kernel { namespace xam { +enum X_VIDEO_CAPABILITIES : uint32_t { + X_VIDEO_ENABLE_STEREOSCOPIC_3D_MODE = 0x1, + X_VIDEO_ENABLE_STEREOSCOPIC_720P_60HZ_MODE = 0x10 +}; + void XGetVideoMode_entry(pointer_t video_mode) { // TODO(benvanik): actually check to see if these are the same. xboxkrnl::VdQueryVideoMode(video_mode); } DECLARE_XAM_EXPORT1(XGetVideoMode, kVideo, ExportTag::kSketchy); -dword_result_t XGetVideoCapabilities_entry() { return 0; } +dword_result_t XGetVideoCapabilities_entry() { + uint32_t capabilities = 0; + + if (cvars::enable_3d_mode) { + capabilities = + static_cast( + X_VIDEO_CAPABILITIES::X_VIDEO_ENABLE_STEREOSCOPIC_3D_MODE) | + static_cast( + X_VIDEO_CAPABILITIES::X_VIDEO_ENABLE_STEREOSCOPIC_720P_60HZ_MODE); + } + + return capabilities; +} DECLARE_XAM_EXPORT1(XGetVideoCapabilities, kVideo, kStub); } // namespace xam