mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-12-06 07:12:28 +01:00
cellMouse: Add debug overlay
Some checks are pending
Generate Translation Template / Generate Translation Template (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux-aarch64.sh, gcc, rpcs3/rpcs3-ci-jammy-aarch64:1.6, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux.sh, gcc, rpcs3/rpcs3-ci-jammy:1.6, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1, rpcs3/rpcs3-binaries-linux-arm64, /rpcs3/.ci/build-linux-aarch64.sh, clang, rpcs3/rpcs3-ci-jammy-aarch64:1.6, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (d812f1254a1157c80fd402f94446310560f54e5f, rpcs3/rpcs3-binaries-linux, /rpcs3/.ci/build-linux.sh, clang, rpcs3/rpcs3-ci-jammy:1.6, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (51ae32f468089a8169aaf1567de355ff4a3e0842, rpcs3/rpcs3-binaries-mac, arch -X86_64 .ci/build-mac.sh, Intel) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (8e21bdbc40711a3fccd18fbf17b742348b0f4281, rpcs3/rpcs3-binaries-mac-arm64, .ci/build-mac-arm64.sh, Apple Silicon) (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run
Build RPCS3 / RPCS3 Windows Clang (win64, clang, clang64) (push) Waiting to run
Build RPCS3 / RPCS3 FreeBSD (push) Waiting to run
Some checks are pending
Generate Translation Template / Generate Translation Template (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux-aarch64.sh, gcc, rpcs3/rpcs3-ci-jammy-aarch64:1.6, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux.sh, gcc, rpcs3/rpcs3-ci-jammy:1.6, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1, rpcs3/rpcs3-binaries-linux-arm64, /rpcs3/.ci/build-linux-aarch64.sh, clang, rpcs3/rpcs3-ci-jammy-aarch64:1.6, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (d812f1254a1157c80fd402f94446310560f54e5f, rpcs3/rpcs3-binaries-linux, /rpcs3/.ci/build-linux.sh, clang, rpcs3/rpcs3-ci-jammy:1.6, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (51ae32f468089a8169aaf1567de355ff4a3e0842, rpcs3/rpcs3-binaries-mac, arch -X86_64 .ci/build-mac.sh, Intel) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (8e21bdbc40711a3fccd18fbf17b742348b0f4281, rpcs3/rpcs3-binaries-mac-arm64, .ci/build-mac-arm64.sh, Apple Silicon) (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run
Build RPCS3 / RPCS3 Windows Clang (win64, clang, clang64) (push) Waiting to run
Build RPCS3 / RPCS3 FreeBSD (push) Waiting to run
This commit is contained in:
parent
c36d01b46b
commit
a2a3ce1d7a
|
|
@ -1,8 +1,9 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "Emu/IdManager.h"
|
#include "Emu/IdManager.h"
|
||||||
|
#include "Emu/system_config.h"
|
||||||
#include "Emu/Cell/PPUModule.h"
|
#include "Emu/Cell/PPUModule.h"
|
||||||
|
|
||||||
#include "Emu/Io/MouseHandler.h"
|
#include "Emu/Io/MouseHandler.h"
|
||||||
|
#include "Emu/RSX/Overlays/overlay_debug_overlay.h"
|
||||||
|
|
||||||
#include "cellMouse.h"
|
#include "cellMouse.h"
|
||||||
|
|
||||||
|
|
@ -13,6 +14,54 @@ extern bool is_input_allowed();
|
||||||
|
|
||||||
LOG_CHANNEL(cellMouse);
|
LOG_CHANNEL(cellMouse);
|
||||||
|
|
||||||
|
void show_debug_overlay(const CellMouseData& data, const MouseData* _mouse)
|
||||||
|
{
|
||||||
|
// The cell mouse can be set empty without any new mouse input.
|
||||||
|
// Only update our mouse input if there is new data.
|
||||||
|
static MouseData mouse {};
|
||||||
|
if (_mouse)
|
||||||
|
{
|
||||||
|
mouse = *_mouse;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string text = fmt::format(
|
||||||
|
"> Name: Raw Value Pixel\n"
|
||||||
|
">\n"
|
||||||
|
"> Update: %5d %5d\n"
|
||||||
|
"> Wheel: %5d %5d\n"
|
||||||
|
"> Tilt: %5d %5d\n"
|
||||||
|
"> X: %5d %5d %5d\n"
|
||||||
|
"> Y: %5d %5d %5d\n"
|
||||||
|
">\n"
|
||||||
|
"> Buttons: 0x%04x 0x%04x\n"
|
||||||
|
"> Button 1: %5d %5d\n"
|
||||||
|
"> Button 2: %5d %5d\n"
|
||||||
|
"> Button 3: %5d %5d\n"
|
||||||
|
"> Button 4: %5d %5d\n"
|
||||||
|
"> Button 5: %5d %5d\n"
|
||||||
|
"> Button 6: %5d %5d\n"
|
||||||
|
"> Button 7: %5d %5d\n"
|
||||||
|
"> Button 8: %5d %5d\n"
|
||||||
|
,
|
||||||
|
mouse.update, data.update,
|
||||||
|
mouse.wheel, data.wheel,
|
||||||
|
mouse.tilt, data.tilt,
|
||||||
|
mouse.x_axis, data.x_axis, mouse.pixel_x,
|
||||||
|
mouse.y_axis, data.y_axis, mouse.pixel_y,
|
||||||
|
mouse.buttons, data.buttons,
|
||||||
|
!!(mouse.buttons & CELL_MOUSE_BUTTON_1), !!(data.buttons & CELL_MOUSE_BUTTON_1),
|
||||||
|
!!(mouse.buttons & CELL_MOUSE_BUTTON_2), !!(data.buttons & CELL_MOUSE_BUTTON_2),
|
||||||
|
!!(mouse.buttons & CELL_MOUSE_BUTTON_3), !!(data.buttons & CELL_MOUSE_BUTTON_3),
|
||||||
|
!!(mouse.buttons & CELL_MOUSE_BUTTON_4), !!(data.buttons & CELL_MOUSE_BUTTON_4),
|
||||||
|
!!(mouse.buttons & CELL_MOUSE_BUTTON_5), !!(data.buttons & CELL_MOUSE_BUTTON_5),
|
||||||
|
!!(mouse.buttons & CELL_MOUSE_BUTTON_6), !!(data.buttons & CELL_MOUSE_BUTTON_6),
|
||||||
|
!!(mouse.buttons & CELL_MOUSE_BUTTON_7), !!(data.buttons & CELL_MOUSE_BUTTON_7),
|
||||||
|
!!(mouse.buttons & CELL_MOUSE_BUTTON_8), !!(data.buttons & CELL_MOUSE_BUTTON_8)
|
||||||
|
);
|
||||||
|
|
||||||
|
rsx::overlays::set_debug_overlay_text(std::move(text));
|
||||||
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
void fmt_class_string<CellMouseError>::format(std::string& out, u64 arg)
|
void fmt_class_string<CellMouseError>::format(std::string& out, u64 arg)
|
||||||
{
|
{
|
||||||
|
|
@ -214,10 +263,16 @@ error_code cellMouseGetData(u32 port_no, vm::ptr<CellMouseData> data)
|
||||||
if (data_list.empty() || current_info.is_null_handler || (current_info.info & CELL_MOUSE_INFO_INTERCEPTED) || !is_input_allowed())
|
if (data_list.empty() || current_info.is_null_handler || (current_info.info & CELL_MOUSE_INFO_INTERCEPTED) || !is_input_allowed())
|
||||||
{
|
{
|
||||||
data_list.clear();
|
data_list.clear();
|
||||||
|
|
||||||
|
if (port_no == 0 && g_cfg.io.mouse_debug_overlay && !g_cfg.io.pad_debug_overlay && !g_cfg.video.debug_overlay)
|
||||||
|
{
|
||||||
|
show_debug_overlay(*data, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MouseData current_data = data_list.front();
|
const MouseData& current_data = data_list.front();
|
||||||
data->update = current_data.update;
|
data->update = current_data.update;
|
||||||
data->buttons = current_data.buttons;
|
data->buttons = current_data.buttons;
|
||||||
data->x_axis = current_data.x_axis;
|
data->x_axis = current_data.x_axis;
|
||||||
|
|
@ -225,6 +280,11 @@ error_code cellMouseGetData(u32 port_no, vm::ptr<CellMouseData> data)
|
||||||
data->wheel = current_data.wheel;
|
data->wheel = current_data.wheel;
|
||||||
data->tilt = current_data.tilt;
|
data->tilt = current_data.tilt;
|
||||||
|
|
||||||
|
if (port_no == 0 && g_cfg.io.mouse_debug_overlay && !g_cfg.io.pad_debug_overlay && !g_cfg.video.debug_overlay)
|
||||||
|
{
|
||||||
|
show_debug_overlay(*data, ¤t_data);
|
||||||
|
}
|
||||||
|
|
||||||
data_list.pop_front();
|
data_list.pop_front();
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
|
|
@ -264,20 +324,31 @@ error_code cellMouseGetDataList(u32 port_no, vm::ptr<CellMouseDataList> data)
|
||||||
if (list.empty() || current_info.is_null_handler || (current_info.info & CELL_MOUSE_INFO_INTERCEPTED) || !is_input_allowed())
|
if (list.empty() || current_info.is_null_handler || (current_info.info & CELL_MOUSE_INFO_INTERCEPTED) || !is_input_allowed())
|
||||||
{
|
{
|
||||||
list.clear();
|
list.clear();
|
||||||
|
|
||||||
|
if (port_no == 0 && g_cfg.io.mouse_debug_overlay && !g_cfg.io.pad_debug_overlay && !g_cfg.video.debug_overlay)
|
||||||
|
{
|
||||||
|
show_debug_overlay(data->list[0], nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->list_num = std::min<u32>(CELL_MOUSE_MAX_DATA_LIST_NUM, static_cast<u32>(list.size()));
|
data->list_num = std::min<u32>(CELL_MOUSE_MAX_DATA_LIST_NUM, static_cast<u32>(list.size()));
|
||||||
|
|
||||||
int i = 0;
|
for (size_t i = 0; i < list.size() && i < CELL_MOUSE_MAX_DATA_LIST_NUM; ++i)
|
||||||
for (auto it = list.begin(); it != list.end() && i < CELL_MOUSE_MAX_DATA_LIST_NUM; ++it, ++i)
|
|
||||||
{
|
{
|
||||||
data->list[i].update = it->update;
|
const MouseData& current_data = list[i];
|
||||||
data->list[i].buttons = it->buttons;
|
data->list[i].update = current_data.update;
|
||||||
data->list[i].x_axis = it->x_axis;
|
data->list[i].buttons = current_data.buttons;
|
||||||
data->list[i].y_axis = it->y_axis;
|
data->list[i].x_axis = current_data.x_axis;
|
||||||
data->list[i].wheel = it->wheel;
|
data->list[i].y_axis = current_data.y_axis;
|
||||||
data->list[i].tilt = it->tilt;
|
data->list[i].wheel = current_data.wheel;
|
||||||
|
data->list[i].tilt = current_data.tilt;
|
||||||
|
|
||||||
|
if (port_no == 0 && g_cfg.io.mouse_debug_overlay && !g_cfg.io.pad_debug_overlay && !g_cfg.video.debug_overlay)
|
||||||
|
{
|
||||||
|
show_debug_overlay(data->list[i], ¤t_data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
list.clear();
|
list.clear();
|
||||||
|
|
|
||||||
|
|
@ -721,7 +721,7 @@ error_code cellPadGetData(u32 port_no, vm::ptr<CellPadData> data)
|
||||||
|
|
||||||
pad_get_data(port_no, data.get_ptr());
|
pad_get_data(port_no, data.get_ptr());
|
||||||
|
|
||||||
if (g_cfg.io.debug_overlay && !g_cfg.video.debug_overlay && port_no == 0)
|
if (g_cfg.io.pad_debug_overlay && !g_cfg.video.debug_overlay && port_no == 0)
|
||||||
{
|
{
|
||||||
show_debug_overlay(*data, *pad, config);
|
show_debug_overlay(*data, *pad, config);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,8 @@ void MouseHandlerBase::Button(u32 index, u8 button, bool pressed)
|
||||||
MouseData new_data{};
|
MouseData new_data{};
|
||||||
new_data.update = CELL_MOUSE_DATA_UPDATE;
|
new_data.update = CELL_MOUSE_DATA_UPDATE;
|
||||||
new_data.buttons = mouse.buttons;
|
new_data.buttons = mouse.buttons;
|
||||||
|
new_data.pixel_x = mouse.x_pos;
|
||||||
|
new_data.pixel_y = mouse.y_pos;
|
||||||
|
|
||||||
datalist.push_back(std::move(new_data));
|
datalist.push_back(std::move(new_data));
|
||||||
}
|
}
|
||||||
|
|
@ -100,6 +102,8 @@ void MouseHandlerBase::Scroll(u32 index, s8 x, s8 y)
|
||||||
new_data.buttons = mouse.buttons;
|
new_data.buttons = mouse.buttons;
|
||||||
new_data.wheel = y;
|
new_data.wheel = y;
|
||||||
new_data.tilt = x;
|
new_data.tilt = x;
|
||||||
|
new_data.pixel_x = mouse.x_pos;
|
||||||
|
new_data.pixel_y = mouse.y_pos;
|
||||||
|
|
||||||
datalist.push_back(std::move(new_data));
|
datalist.push_back(std::move(new_data));
|
||||||
}
|
}
|
||||||
|
|
@ -137,6 +141,8 @@ void MouseHandlerBase::Move(u32 index, s32 x_pos_new, s32 y_pos_new, s32 x_max,
|
||||||
|
|
||||||
new_data.x_axis = static_cast<s8>(std::clamp(x_delta, -127, 128));
|
new_data.x_axis = static_cast<s8>(std::clamp(x_delta, -127, 128));
|
||||||
new_data.y_axis = static_cast<s8>(std::clamp(y_delta, -127, 128));
|
new_data.y_axis = static_cast<s8>(std::clamp(y_delta, -127, 128));
|
||||||
|
new_data.pixel_x = x_pos_new;
|
||||||
|
new_data.pixel_y = y_pos_new;
|
||||||
|
|
||||||
mouse.x_max = x_max;
|
mouse.x_max = x_max;
|
||||||
mouse.y_max = y_max;
|
mouse.y_max = y_max;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <list>
|
#include <deque>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "Utilities/StrFmt.h"
|
#include "Utilities/StrFmt.h"
|
||||||
#include "Utilities/mutex.h"
|
#include "Utilities/mutex.h"
|
||||||
|
|
@ -96,6 +96,9 @@ struct MouseData
|
||||||
s8 y_axis = 0;
|
s8 y_axis = 0;
|
||||||
s8 wheel = 0;
|
s8 wheel = 0;
|
||||||
s8 tilt = 0;
|
s8 tilt = 0;
|
||||||
|
|
||||||
|
s32 pixel_x = 0;
|
||||||
|
s32 pixel_y = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MouseTabletData
|
struct MouseTabletData
|
||||||
|
|
@ -104,8 +107,8 @@ struct MouseTabletData
|
||||||
u8 data[MOUSE_MAX_CODES]{};
|
u8 data[MOUSE_MAX_CODES]{};
|
||||||
};
|
};
|
||||||
|
|
||||||
using MouseTabletDataList = std::list<MouseTabletData>;
|
using MouseTabletDataList = std::deque<MouseTabletData>;
|
||||||
using MouseDataList = std::list<MouseData>;
|
using MouseDataList = std::deque<MouseData>;
|
||||||
|
|
||||||
struct Mouse
|
struct Mouse
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,8 @@ namespace rsx
|
||||||
: home_menu_settings_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SETTINGS_DEBUG))
|
: home_menu_settings_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SETTINGS_DEBUG))
|
||||||
{
|
{
|
||||||
add_checkbox(&g_cfg.video.debug_overlay, localized_string_id::HOME_MENU_SETTINGS_DEBUG_OVERLAY);
|
add_checkbox(&g_cfg.video.debug_overlay, localized_string_id::HOME_MENU_SETTINGS_DEBUG_OVERLAY);
|
||||||
add_checkbox(&g_cfg.io.debug_overlay, localized_string_id::HOME_MENU_SETTINGS_DEBUG_INPUT_OVERLAY);
|
add_checkbox(&g_cfg.io.pad_debug_overlay, localized_string_id::HOME_MENU_SETTINGS_DEBUG_INPUT_OVERLAY);
|
||||||
|
add_checkbox(&g_cfg.io.mouse_debug_overlay, localized_string_id::HOME_MENU_SETTINGS_MOUSE_DEBUG_INPUT_OVERLAY);
|
||||||
add_checkbox(&g_cfg.video.disable_video_output, localized_string_id::HOME_MENU_SETTINGS_DEBUG_DISABLE_VIDEO_OUTPUT);
|
add_checkbox(&g_cfg.video.disable_video_output, localized_string_id::HOME_MENU_SETTINGS_DEBUG_DISABLE_VIDEO_OUTPUT);
|
||||||
add_float_slider(&g_cfg.video.texture_lod_bias, localized_string_id::HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS, "", 0.25f);
|
add_float_slider(&g_cfg.video.texture_lod_bias, localized_string_id::HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS, "", 0.25f);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ namespace rsx
|
||||||
{
|
{
|
||||||
auto overlay = manager->get<rsx::overlays::debug_overlay>();
|
auto overlay = manager->get<rsx::overlays::debug_overlay>();
|
||||||
|
|
||||||
if (g_cfg.video.debug_overlay || g_cfg.io.debug_overlay)
|
if (g_cfg.video.debug_overlay || g_cfg.io.pad_debug_overlay || g_cfg.io.mouse_debug_overlay)
|
||||||
{
|
{
|
||||||
if (!overlay)
|
if (!overlay)
|
||||||
{
|
{
|
||||||
|
|
@ -66,7 +66,7 @@ namespace rsx
|
||||||
|
|
||||||
extern void set_debug_overlay_text(std::string&& text)
|
extern void set_debug_overlay_text(std::string&& text)
|
||||||
{
|
{
|
||||||
if (!g_cfg.misc.use_native_interface || (!g_cfg.video.debug_overlay && !g_cfg.io.debug_overlay))
|
if (!g_cfg.misc.use_native_interface || (!g_cfg.video.debug_overlay && !g_cfg.io.pad_debug_overlay && !g_cfg.io.mouse_debug_overlay))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (auto manager = g_fxo->try_get<rsx::overlays::display_manager>())
|
if (auto manager = g_fxo->try_get<rsx::overlays::display_manager>())
|
||||||
|
|
|
||||||
|
|
@ -264,6 +264,7 @@ enum class localized_string_id
|
||||||
HOME_MENU_SETTINGS_DEBUG,
|
HOME_MENU_SETTINGS_DEBUG,
|
||||||
HOME_MENU_SETTINGS_DEBUG_OVERLAY,
|
HOME_MENU_SETTINGS_DEBUG_OVERLAY,
|
||||||
HOME_MENU_SETTINGS_DEBUG_INPUT_OVERLAY,
|
HOME_MENU_SETTINGS_DEBUG_INPUT_OVERLAY,
|
||||||
|
HOME_MENU_SETTINGS_MOUSE_DEBUG_INPUT_OVERLAY,
|
||||||
HOME_MENU_SETTINGS_DEBUG_DISABLE_VIDEO_OUTPUT,
|
HOME_MENU_SETTINGS_DEBUG_DISABLE_VIDEO_OUTPUT,
|
||||||
HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS,
|
HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS,
|
||||||
HOME_MENU_SCREENSHOT,
|
HOME_MENU_SCREENSHOT,
|
||||||
|
|
|
||||||
|
|
@ -285,7 +285,8 @@ struct cfg_root : cfg::node
|
||||||
cfg::_bool lock_overlay_input_to_player_one{this, "Lock overlay input to player one", false, true};
|
cfg::_bool lock_overlay_input_to_player_one{this, "Lock overlay input to player one", false, true};
|
||||||
cfg::string midi_devices{this, "Emulated Midi devices", "ßßß@@@ßßß@@@ßßß@@@"};
|
cfg::string midi_devices{this, "Emulated Midi devices", "ßßß@@@ßßß@@@ßßß@@@"};
|
||||||
cfg::_bool load_sdl_mappings{ this, "Load SDL GameController Mappings", true };
|
cfg::_bool load_sdl_mappings{ this, "Load SDL GameController Mappings", true };
|
||||||
cfg::_bool debug_overlay{ this, "IO Debug overlay", false, true };
|
cfg::_bool pad_debug_overlay{ this, "IO Debug overlay", false, true };
|
||||||
|
cfg::_bool mouse_debug_overlay{ this, "Mouse Debug overlay", false, true };
|
||||||
cfg::uint<1, 180> fake_move_rotation_cone_h{ this, "Fake Move Rotation Cone", 10, true };
|
cfg::uint<1, 180> fake_move_rotation_cone_h{ this, "Fake Move Rotation Cone", 10, true };
|
||||||
cfg::uint<1, 180> fake_move_rotation_cone_v{ this, "Fake Move Rotation Cone (Vertical)", 10, true };
|
cfg::uint<1, 180> fake_move_rotation_cone_v{ this, "Fake Move Rotation Cone (Vertical)", 10, true };
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,7 @@ enum class emu_settings_type
|
||||||
MidiDevices,
|
MidiDevices,
|
||||||
SDLMappings,
|
SDLMappings,
|
||||||
IoDebugOverlay,
|
IoDebugOverlay,
|
||||||
|
MouseDebugOverlay,
|
||||||
|
|
||||||
// Misc
|
// Misc
|
||||||
ExitRPCS3OnFinish,
|
ExitRPCS3OnFinish,
|
||||||
|
|
@ -357,24 +358,25 @@ inline static const std::map<emu_settings_type, cfg_location> settings_location
|
||||||
{ emu_settings_type::MusicHandler, { "Audio", "Music Handler"}},
|
{ emu_settings_type::MusicHandler, { "Audio", "Music Handler"}},
|
||||||
|
|
||||||
// Input / Output
|
// Input / Output
|
||||||
{ emu_settings_type::BackgroundInput, { "Input/Output", "Background input enabled"}},
|
{ emu_settings_type::BackgroundInput, { "Input/Output", "Background input enabled"}},
|
||||||
{ emu_settings_type::ShowMoveCursor, { "Input/Output", "Show move cursor"}},
|
{ emu_settings_type::ShowMoveCursor, { "Input/Output", "Show move cursor"}},
|
||||||
{ emu_settings_type::LockOvlIptToP1, { "Input/Output", "Lock overlay input to player one"}},
|
{ emu_settings_type::LockOvlIptToP1, { "Input/Output", "Lock overlay input to player one"}},
|
||||||
{ emu_settings_type::PadHandlerMode, { "Input/Output", "Pad handler mode"}},
|
{ emu_settings_type::PadHandlerMode, { "Input/Output", "Pad handler mode"}},
|
||||||
{ emu_settings_type::PadConnection, { "Input/Output", "Keep pads connected" }},
|
{ emu_settings_type::PadConnection, { "Input/Output", "Keep pads connected" }},
|
||||||
{ emu_settings_type::KeyboardHandler, { "Input/Output", "Keyboard"}},
|
{ emu_settings_type::KeyboardHandler, { "Input/Output", "Keyboard"}},
|
||||||
{ emu_settings_type::MouseHandler, { "Input/Output", "Mouse"}},
|
{ emu_settings_type::MouseHandler, { "Input/Output", "Mouse"}},
|
||||||
{ emu_settings_type::Camera, { "Input/Output", "Camera"}},
|
{ emu_settings_type::Camera, { "Input/Output", "Camera"}},
|
||||||
{ emu_settings_type::CameraType, { "Input/Output", "Camera type"}},
|
{ emu_settings_type::CameraType, { "Input/Output", "Camera type"}},
|
||||||
{ emu_settings_type::CameraFlip, { "Input/Output", "Camera flip"}},
|
{ emu_settings_type::CameraFlip, { "Input/Output", "Camera flip"}},
|
||||||
{ emu_settings_type::CameraID, { "Input/Output", "Camera ID"}},
|
{ emu_settings_type::CameraID, { "Input/Output", "Camera ID"}},
|
||||||
{ emu_settings_type::Move, { "Input/Output", "Move" }},
|
{ emu_settings_type::Move, { "Input/Output", "Move" }},
|
||||||
{ emu_settings_type::Buzz, { "Input/Output", "Buzz emulated controller" }},
|
{ emu_settings_type::Buzz, { "Input/Output", "Buzz emulated controller" }},
|
||||||
{ emu_settings_type::Turntable, { "Input/Output", "Turntable emulated controller" }},
|
{ emu_settings_type::Turntable, { "Input/Output", "Turntable emulated controller" }},
|
||||||
{ emu_settings_type::GHLtar, { "Input/Output", "GHLtar emulated controller" }},
|
{ emu_settings_type::GHLtar, { "Input/Output", "GHLtar emulated controller" }},
|
||||||
{ emu_settings_type::MidiDevices, { "Input/Output", "Emulated Midi devices" }},
|
{ emu_settings_type::MidiDevices, { "Input/Output", "Emulated Midi devices" }},
|
||||||
{ emu_settings_type::SDLMappings, { "Input/Output", "Load SDL GameController Mappings" }},
|
{ emu_settings_type::SDLMappings, { "Input/Output", "Load SDL GameController Mappings" }},
|
||||||
{ emu_settings_type::IoDebugOverlay, { "Input/Output", "IO Debug overlay" }},
|
{ emu_settings_type::IoDebugOverlay, { "Input/Output", "IO Debug overlay" }},
|
||||||
|
{ emu_settings_type::MouseDebugOverlay, { "Input/Output", "Mouse Debug overlay" }},
|
||||||
|
|
||||||
// Misc
|
// Misc
|
||||||
{ emu_settings_type::ExitRPCS3OnFinish, { "Miscellaneous", "Exit RPCS3 when process finishes" }},
|
{ emu_settings_type::ExitRPCS3OnFinish, { "Miscellaneous", "Exit RPCS3 when process finishes" }},
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,7 @@ private:
|
||||||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG: return tr("Debug");
|
case localized_string_id::HOME_MENU_SETTINGS_DEBUG: return tr("Debug");
|
||||||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_OVERLAY: return tr("Debug Overlay", "Debug");
|
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_OVERLAY: return tr("Debug Overlay", "Debug");
|
||||||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_INPUT_OVERLAY: return tr("Input Debug Overlay", "Debug");
|
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_INPUT_OVERLAY: return tr("Input Debug Overlay", "Debug");
|
||||||
|
case localized_string_id::HOME_MENU_SETTINGS_MOUSE_DEBUG_INPUT_OVERLAY: return tr("Mouse Debug Overlay", "Debug");
|
||||||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_DISABLE_VIDEO_OUTPUT: return tr("Disable Video Output", "Debug");
|
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_DISABLE_VIDEO_OUTPUT: return tr("Disable Video Output", "Debug");
|
||||||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS: return tr("Texture LOD Bias Addend", "Debug");
|
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS: return tr("Texture LOD Bias Addend", "Debug");
|
||||||
case localized_string_id::HOME_MENU_SCREENSHOT: return tr("Take Screenshot");
|
case localized_string_id::HOME_MENU_SCREENSHOT: return tr("Take Screenshot");
|
||||||
|
|
|
||||||
|
|
@ -2522,6 +2522,9 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
|
||||||
m_emu_settings->EnhanceCheckBox(ui->debugOverlayIO, emu_settings_type::IoDebugOverlay);
|
m_emu_settings->EnhanceCheckBox(ui->debugOverlayIO, emu_settings_type::IoDebugOverlay);
|
||||||
SubscribeTooltip(ui->debugOverlayIO, tooltips.settings.debug_overlay_io);
|
SubscribeTooltip(ui->debugOverlayIO, tooltips.settings.debug_overlay_io);
|
||||||
|
|
||||||
|
m_emu_settings->EnhanceCheckBox(ui->debugOverlayMouse, emu_settings_type::MouseDebugOverlay);
|
||||||
|
SubscribeTooltip(ui->debugOverlayMouse, tooltips.settings.debug_overlay_mouse);
|
||||||
|
|
||||||
// Comboboxes
|
// Comboboxes
|
||||||
|
|
||||||
m_emu_settings->EnhanceComboBox(ui->combo_accurate_ppu_128, emu_settings_type::AccuratePPU128Loop, true);
|
m_emu_settings->EnhanceComboBox(ui->combo_accurate_ppu_128, emu_settings_type::AccuratePPU128Loop, true);
|
||||||
|
|
|
||||||
|
|
@ -4547,6 +4547,13 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="debugOverlayMouse">
|
||||||
|
<property name="text">
|
||||||
|
<string>Debug Overlay For Mouse Input</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,8 @@ public:
|
||||||
const QString force_high_pz = tr("Only useful when debugging differences in GPU hardware.\nNot necessary for average users.\nIf unsure, don't use this option.");
|
const QString force_high_pz = tr("Only useful when debugging differences in GPU hardware.\nNot necessary for average users.\nIf unsure, don't use this option.");
|
||||||
const QString debug_output = tr("Enables the selected API's inbuilt debugging functionality.\nWill cause severe performance degradation especially with Vulkan.\nOnly useful to developers.\nIf unsure, don't use this option.");
|
const QString debug_output = tr("Enables the selected API's inbuilt debugging functionality.\nWill cause severe performance degradation especially with Vulkan.\nOnly useful to developers.\nIf unsure, don't use this option.");
|
||||||
const QString debug_overlay = tr("Provides a graphical overlay of various debugging information.\nIf unsure, don't use this option.");
|
const QString debug_overlay = tr("Provides a graphical overlay of various debugging information.\nIf unsure, don't use this option.");
|
||||||
const QString debug_overlay_io = tr("Provides a graphical overlay with pad input values for player 1.\nThis is only shown if the other debug overlay is disabled.\nIf unsure, don't use this option.");
|
const QString debug_overlay_io = tr("Provides a graphical overlay with pad input values for player 1.\nThis is only shown if the debug overlay is disabled.\nIf unsure, don't use this option.");
|
||||||
|
const QString debug_overlay_mouse = tr("Provides a graphical overlay with mouse input values.\nThis is only shown if the other debug overlays are disabled.\nIf unsure, don't use this option.");
|
||||||
const QString log_shader_programs = tr("Dump game shaders to file. Only useful to developers.\nIf unsure, don't use this option.");
|
const QString log_shader_programs = tr("Dump game shaders to file. Only useful to developers.\nIf unsure, don't use this option.");
|
||||||
const QString disable_occlusion_queries = tr("Disables running occlusion queries. Minor to moderate performance boost.\nMight introduce issues with broken occlusion e.g missing geometry and extreme pop-in.");
|
const QString disable_occlusion_queries = tr("Disables running occlusion queries. Minor to moderate performance boost.\nMight introduce issues with broken occlusion e.g missing geometry and extreme pop-in.");
|
||||||
const QString disable_video_output = tr("Disables all video output and PS3 graphical rendering.\nIts only use case is to evaluate performance on CELL for development.");
|
const QString disable_video_output = tr("Disables all video output and PS3 graphical rendering.\nIts only use case is to evaluate performance on CELL for development.");
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue