diff --git a/rpcs3/Emu/Cell/Modules/cellVideoOut.cpp b/rpcs3/Emu/Cell/Modules/cellVideoOut.cpp index 76c9957ac6..fcb78887d7 100644 --- a/rpcs3/Emu/Cell/Modules/cellVideoOut.cpp +++ b/rpcs3/Emu/Cell/Modules/cellVideoOut.cpp @@ -34,7 +34,6 @@ const extern std::unordered_map> g_video_out_aspect_id { - { video_aspect::_auto, CELL_VIDEO_OUT_ASPECT_AUTO }, { video_aspect::_16_9, CELL_VIDEO_OUT_ASPECT_16_9 }, { video_aspect::_4_3, CELL_VIDEO_OUT_ASPECT_4_3 }, }; @@ -61,11 +60,21 @@ void fmt_class_string::format(std::string& out, u64 arg) }); } +error_code cellVideoOutGetNumberOfDevice(u32 videoOut); + error_code cellVideoOutGetState(u32 videoOut, u32 deviceIndex, vm::ptr state) { cellSysutil.trace("cellVideoOutGetState(videoOut=%d, deviceIndex=%d, state=*0x%x)", videoOut, deviceIndex, state); - if (deviceIndex) return CELL_VIDEO_OUT_ERROR_DEVICE_NOT_FOUND; + if (!state) + { + return CELL_VIDEO_OUT_ERROR_ILLEGAL_PARAMETER; + } + + if (deviceIndex >= cellVideoOutGetNumberOfDevice(videoOut)) + { + return CELL_VIDEO_OUT_ERROR_DEVICE_NOT_FOUND; + } switch (videoOut) { @@ -183,6 +192,11 @@ error_code cellVideoOutGetConfiguration(u32 videoOut, vm::ptr= cellVideoOutGetNumberOfDevice(videoOut)) + { + return CELL_VIDEO_OUT_ERROR_DEVICE_NOT_FOUND; + } // Use standard dummy values for now. info->portType = CELL_VIDEO_OUT_PORT_HDMI; diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index d5e27c3312..c5beb07a5d 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -157,7 +157,6 @@ void fmt_class_string::format(std::string& out, u64 arg) { switch (value) { - case video_aspect::_auto: return "Auto"; case video_aspect::_4_3: return "4:3"; case video_aspect::_16_9: return "16:9"; } diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index 17e98d40c0..065f728388 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -152,7 +152,6 @@ enum class video_resolution enum class video_aspect { - _auto, _4_3, _16_9, }; diff --git a/rpcs3/Json/tooltips.json b/rpcs3/Json/tooltips.json index b95c0c317f..0ee6ea4ce1 100644 --- a/rpcs3/Json/tooltips.json +++ b/rpcs3/Json/tooltips.json @@ -115,7 +115,7 @@ "renderBox": "Vulkan is the fastest renderer. OpenGL is the most accurate renderer.\nIf unsure, use Vulkan. Should you have any compatibility issues, fall back to OpenGL.", "resBox": "This setting will be ignored if the Resolution Scale is set to anything other than 100%!\nLeave this on 1280x720, every PS3 game is compatible with this resolution.\nOnly use 1920x1080 if the game supports it.\nRarely due to emulation bugs some games will only render at low resolutions like 480p.", "graphicsAdapterBox": "On multi GPU systems select which GPU to use in RPCS3 when using Vulkan.\nThis is not needed when using OpenGL.", - "aspectBox": "Leave this on 16:9 unless you have a 4:3 monitor.\nAuto also works well, especially if you use a resolution that is not 720p.", + "aspectBox": "Leave this on 16:9 unless you have a 4:3 monitor.", "frameLimitBox": "Off is the best option as it performs faster.\nUsing the frame limiter will add extra overhead and slow down the game.\nHowever, some games will crash if the frame rate is too high.\nIf that happens, set value to anything other than Off.", "antiAliasing": "Emulate PS3 multisampling layout.\nCan fix some otherwise difficult to solve graphics glitches.\nLow to moderate performance hit depending on your GPU hardware.", "anisotropicFilterOverride": "Higher values increase sharpness of textures on sloped surfaces at the cost of GPU resources.\nModern GPUs can handle this setting just fine even at 16x.\nKeep this on Automatic if you want to use the original setting used by a real PS3."