mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-19 12:40:29 +00:00
RSX/Overlays: Add option for japanese button layout
This commit is contained in:
parent
76da3fa907
commit
49e5212a8f
@ -143,7 +143,7 @@ s32 cellSysutilGetSystemParamInt(CellSysutilParamId id, vm::ptr<s32> value)
|
||||
break;
|
||||
|
||||
case CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN:
|
||||
*value = CELL_SYSUTIL_ENTER_BUTTON_ASSIGN_CROSS;
|
||||
*value = g_cfg.sys.enter_button_assignment;
|
||||
break;
|
||||
|
||||
case CELL_SYSUTIL_SYSTEMPARAM_ID_DATE_FORMAT:
|
||||
|
@ -1472,8 +1472,17 @@ namespace rsx
|
||||
|
||||
m_scroll_indicator_top->set_image_resource(resource_config::standard_image_resource::fade_top);
|
||||
m_scroll_indicator_bottom->set_image_resource(resource_config::standard_image_resource::fade_bottom);
|
||||
m_accept_btn->set_image_resource(resource_config::standard_image_resource::cross);
|
||||
m_cancel_btn->set_image_resource(resource_config::standard_image_resource::circle);
|
||||
|
||||
if (g_cfg.sys.enter_button_assignment == enter_button_assign::circle)
|
||||
{
|
||||
m_accept_btn->set_image_resource(resource_config::standard_image_resource::circle);
|
||||
m_cancel_btn->set_image_resource(resource_config::standard_image_resource::cross);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_accept_btn->set_image_resource(resource_config::standard_image_resource::cross);
|
||||
m_cancel_btn->set_image_resource(resource_config::standard_image_resource::circle);
|
||||
}
|
||||
|
||||
m_scroll_indicator_bottom->set_pos(0, height - 40);
|
||||
m_accept_btn->set_pos(30, height + 20);
|
||||
|
@ -153,13 +153,13 @@ namespace rsx
|
||||
button_id = pad_button::triangle;
|
||||
break;
|
||||
case CELL_PAD_CTRL_CIRCLE:
|
||||
button_id = pad_button::circle;
|
||||
button_id = g_cfg.sys.enter_button_assignment == enter_button_assign::circle ? pad_button::cross : pad_button::circle;
|
||||
break;
|
||||
case CELL_PAD_CTRL_SQUARE:
|
||||
button_id = pad_button::square;
|
||||
break;
|
||||
case CELL_PAD_CTRL_CROSS:
|
||||
button_id = pad_button::cross;
|
||||
button_id = g_cfg.sys.enter_button_assignment == enter_button_assign::circle ? pad_button::circle : pad_button::cross;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -790,18 +790,27 @@ namespace rsx
|
||||
progress_1.back_color = color4f(0.25f, 0.f, 0.f, 0.85f);
|
||||
progress_2.back_color = color4f(0.25f, 0.f, 0.f, 0.85f);
|
||||
|
||||
btn_ok.set_image_resource(resource_config::standard_image_resource::cross);
|
||||
btn_ok.set_text("Yes");
|
||||
btn_ok.set_size(140, 30);
|
||||
btn_ok.set_pos(545, 420);
|
||||
btn_ok.set_font("Arial", 16);
|
||||
|
||||
btn_cancel.set_image_resource(resource_config::standard_image_resource::circle);
|
||||
btn_cancel.set_text("No");
|
||||
btn_cancel.set_size(140, 30);
|
||||
btn_cancel.set_pos(685, 420);
|
||||
btn_cancel.set_font("Arial", 16);
|
||||
|
||||
if (g_cfg.sys.enter_button_assignment == enter_button_assign::circle)
|
||||
{
|
||||
btn_ok.set_image_resource(resource_config::standard_image_resource::circle);
|
||||
btn_cancel.set_image_resource(resource_config::standard_image_resource::cross);
|
||||
}
|
||||
else
|
||||
{
|
||||
btn_ok.set_image_resource(resource_config::standard_image_resource::cross);
|
||||
btn_cancel.set_image_resource(resource_config::standard_image_resource::circle);
|
||||
}
|
||||
|
||||
if (use_custom_background)
|
||||
{
|
||||
std::string root_path = Emu.GetBoot();
|
||||
|
@ -257,6 +257,21 @@ void fmt_class_string<tsx_usage>::format(std::string& out, u64 arg)
|
||||
});
|
||||
}
|
||||
|
||||
template <>
|
||||
void fmt_class_string<enter_button_assign>::format(std::string& out, u64 arg)
|
||||
{
|
||||
format_enum(out, arg, [](enter_button_assign value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case enter_button_assign::circle: return "Enter with circle";
|
||||
case enter_button_assign::cross: return "Enter with cross";
|
||||
}
|
||||
|
||||
return unknown;
|
||||
});
|
||||
}
|
||||
|
||||
void Emulator::Init()
|
||||
{
|
||||
if (!g_tty)
|
||||
|
@ -170,6 +170,12 @@ enum class tsx_usage
|
||||
forced,
|
||||
};
|
||||
|
||||
enum enter_button_assign
|
||||
{
|
||||
circle = 0, // CELL_SYSUTIL_ENTER_BUTTON_ASSIGN_CIRCLE
|
||||
cross = 1 // CELL_SYSUTIL_ENTER_BUTTON_ASSIGN_CROSS
|
||||
};
|
||||
|
||||
enum CellNetCtlState : s32;
|
||||
enum CellSysutilLang : s32;
|
||||
|
||||
@ -523,6 +529,7 @@ struct cfg_root : cfg::node
|
||||
node_sys(cfg::node* _this) : cfg::node(_this, "System") {}
|
||||
|
||||
cfg::_enum<CellSysutilLang> language{this, "Language", (CellSysutilLang)1}; // CELL_SYSUTIL_LANG_ENGLISH_US
|
||||
cfg::_enum<enter_button_assign> enter_button_assignment{this, "Enter button assignment", enter_button_assign::cross};
|
||||
|
||||
} sys{this};
|
||||
|
||||
|
@ -137,6 +137,7 @@
|
||||
},
|
||||
"system": {
|
||||
"sysLangBox": "Some games may fail to boot if the system language is not available in the game itself.\nOther games will switch language automatically to what is selected here.\nIt is recommended leaving this on a language supported by the game.",
|
||||
"enterButtonAssignment": "The button used for enter/accept/confirm in system dialogs.\nChange this to use the circle button instead, which is the default configuration on japanese systems and in many japanese games.\nIn these cases having the cross button assigned can often lead to confusion.",
|
||||
"enableHostRoot": "Required for some Homebrew.\nIf unsure, don't use this option."
|
||||
}
|
||||
}
|
||||
|
@ -122,8 +122,9 @@ public:
|
||||
// Network
|
||||
ConnectionStatus,
|
||||
|
||||
// Language
|
||||
// System
|
||||
Language,
|
||||
EnterButtonAssignment,
|
||||
EnableHostRoot,
|
||||
|
||||
// Virtual File System
|
||||
@ -322,8 +323,9 @@ private:
|
||||
{ ConnectionStatus, { "Net", "Connection status"}},
|
||||
|
||||
// System
|
||||
{ Language, { "System", "Language"}},
|
||||
{ EnableHostRoot, { "VFS", "Enable /host_root/"}},
|
||||
{ Language, { "System", "Language"}},
|
||||
{ EnterButtonAssignment, { "System", "Enter button assignment"}},
|
||||
{ EnableHostRoot, { "VFS", "Enable /host_root/"}},
|
||||
|
||||
// Virtual File System
|
||||
{ emulatorLocation, { "VFS", "$(EmulatorDir)"}},
|
||||
|
@ -765,6 +765,35 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
|
||||
xemu_settings->EnhanceCheckBox(ui->enableHostRoot, emu_settings::EnableHostRoot);
|
||||
SubscribeTooltip(ui->enableHostRoot, json_sys["enableHostRoot"].toString());
|
||||
|
||||
// Radio Buttons
|
||||
|
||||
SubscribeTooltip(ui->gb_enterButtonAssignment, json_sys["enterButtonAssignment"].toString());
|
||||
|
||||
// creating this in ui file keeps scrambling the order...
|
||||
QButtonGroup *enterButtonAssignmentBG = new QButtonGroup(this);
|
||||
enterButtonAssignmentBG->addButton(ui->enterButtonAssignCircle, 0);
|
||||
enterButtonAssignmentBG->addButton(ui->enterButtonAssignCross, 1);
|
||||
|
||||
{ // EnterButtonAssignment options
|
||||
QString assigned_button = qstr(xemu_settings->GetSetting(emu_settings::EnterButtonAssignment));
|
||||
QStringList assignable_buttons = xemu_settings->GetSettingOptions(emu_settings::EnterButtonAssignment);
|
||||
|
||||
for (int i = 0; i < assignable_buttons.count(); i++)
|
||||
{
|
||||
enterButtonAssignmentBG->button(i)->setText(assignable_buttons[i]);
|
||||
|
||||
if (assignable_buttons[i] == assigned_button)
|
||||
{
|
||||
enterButtonAssignmentBG->button(i)->setChecked(true);
|
||||
}
|
||||
|
||||
connect(enterButtonAssignmentBG->button(i), &QAbstractButton::pressed, [=]()
|
||||
{
|
||||
xemu_settings->SetSetting(emu_settings::EnterButtonAssignment, sstr(assignable_buttons[i]));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// _ _ _ _ _______ _
|
||||
// | \ | | | | | | |__ __| | |
|
||||
// | \| | ___| |___ _____ _ __| | __ | | __ _| |__
|
||||
|
@ -1015,7 +1015,7 @@
|
||||
<attribute name="title">
|
||||
<string>System</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_37">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_73">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_14" stretch="1,1,1">
|
||||
<item>
|
||||
@ -1076,6 +1076,39 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_17" stretch="1,1,1">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_enterButtonAssignment">
|
||||
<property name="title">
|
||||
<string>Enter Button Assignment</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_72">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="enterButtonAssignCircle">
|
||||
<property name="text">
|
||||
<string>Enter with circle</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="enterButtonAssignCross">
|
||||
<property name="text">
|
||||
<string>Enter with cross</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_12" native="true"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_13" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_8">
|
||||
<property name="orientation">
|
||||
|
Loading…
x
Reference in New Issue
Block a user