Add checkboxes to enable/disable the three input backends.

Can probably serve as a workaround for #21494
This commit is contained in:
Henrik Rydgård
2026-05-01 21:28:25 +02:00
parent 56229ea468
commit bc62602935
51 changed files with 95 additions and 18 deletions
+6
View File
@@ -1038,6 +1038,12 @@ static const ConfigSetting controlSettings[] = {
ConfigSetting("SystemControls", SETTING(g_Config, bSystemControls), true, CfgFlag::DEFAULT),
ConfigSetting("RapidFileInterval", SETTING(g_Config, iRapidFireInterval), 5, CfgFlag::DEFAULT),
#if PPSSPP_PLATFORM(WINDOWS)
ConfigSetting("AllowHIDInput", SETTING(g_Config, bAllowHIDInput), true, CfgFlag::DEFAULT),
ConfigSetting("AllowXInput", SETTING(g_Config, bAllowXInput), true, CfgFlag::DEFAULT),
ConfigSetting("AllowDInput", SETTING(g_Config, bAllowDInput), true, CfgFlag::DEFAULT),
#endif
};
static const std::vector<std::string_view> emptyList;
+5
View File
@@ -532,6 +532,11 @@ public:
float fMouseSmoothing;
int iMouseWheelUpDelayMs;
// Crude Windows controller filter.
bool bAllowHIDInput;
bool bAllowXInput;
bool bAllowDInput;
bool bSystemControls;
int iRapidFireInterval;
+7
View File
@@ -917,6 +917,13 @@ void GameSettingsScreen::CreateControlsSettings(UI::ViewGroup *controlsSettings)
disableDiags->SetEnabledPtr(&g_Config.bShowTouchControls);
}
#if PPSSPP_PLATFORM(WINDOWS)
controlsSettings->Add(new ItemHeader(co->T("Control input sources")));
controlsSettings->Add(new CheckBox(&g_Config.bAllowHIDInput, co->T("HID input")));
controlsSettings->Add(new CheckBox(&g_Config.bAllowXInput, co->T("XInput")));
controlsSettings->Add(new CheckBox(&g_Config.bAllowDInput, co->T("DirectInput")));
#endif
if (deviceType != DEVICE_TYPE_VR) {
controlsSettings->Add(new ItemHeader(co->T("Keyboard", "Keyboard Control Settings")));
#if defined(USING_WIN_UI)
+17 -10
View File
@@ -32,6 +32,7 @@
#include "Common/StringUtils.h"
#include "Common/System/NativeApp.h"
#include "Core/KeyMap.h"
#include "Core/Config.h"
#include "Windows/DinputDevice.h"
#include "Windows/Hid/HidInputDevice.h"
@@ -234,7 +235,7 @@ void DinputDevice::ReleaseAllKeys() {
}
void SendNativeAxis(InputDeviceID deviceId, int value, int &lastValue, InputAxis axisId) {
if (value != lastValue) {
if (value != lastValue && g_Config.bAllowDInput) {
AxisInput axis;
axis.deviceId = deviceId;
axis.axisId = axisId;
@@ -297,6 +298,8 @@ int DinputDevice::UpdateState() {
}
void DinputDevice::ApplyButtons(DIJOYSTATE2 &state) {
const bool sendInput = g_Config.bAllowDInput;
BYTE *buttons = state.rgbButtons;
u32 downMask = 0x80;
@@ -306,11 +309,13 @@ void DinputDevice::ApplyButtons(DIJOYSTATE2 &state) {
}
bool down = (state.rgbButtons[i] & downMask) == downMask;
KeyInput key;
key.deviceId = DEVICE_ID_PAD_0 + pDevNum;
key.flags = down ? KeyInputFlags::DOWN : KeyInputFlags::UP;
key.keyCode = dinput_buttons[i];
NativeKey(key);
if (sendInput) {
KeyInput key;
key.deviceId = DEVICE_ID_PAD_0 + pDevNum;
key.flags = down ? KeyInputFlags::DOWN : KeyInputFlags::UP;
key.keyCode = dinput_buttons[i];
NativeKey(key);
}
lastButtons_[i] = state.rgbButtons[i];
}
@@ -343,10 +348,12 @@ void DinputDevice::ApplyButtons(DIJOYSTATE2 &state) {
}
}
NativeKey(dpad[0]);
NativeKey(dpad[1]);
NativeKey(dpad[2]);
NativeKey(dpad[3]);
if (sendInput) {
NativeKey(dpad[0]);
NativeKey(dpad[1]);
NativeKey(dpad[2]);
NativeKey(dpad[3]);
}
lastPOV_[0] = LOWORD(state.rgdwPOV[0]);
}
+8 -5
View File
@@ -20,6 +20,7 @@
#include "Common/System/NativeApp.h"
#include "Common/System/OSD.h"
#include "Core/KeyMap.h"
#include "Core/Config.h"
struct HidStickMapping {
HidStickAxis stickAxis;
@@ -235,6 +236,8 @@ int HidInputDevice::UpdateState() {
}
}
const bool sendInput = g_Config.bAllowHIDInput;
if (controller_) {
HIDControllerState state{};
bool result = false;
@@ -258,14 +261,14 @@ int HidInputDevice::UpdateState() {
for (u32 i = 0; i < buttonMappingsSize; i++) {
const ButtonInputMapping &mapping = buttonMappings[i];
if (downMask & mapping.button) {
if ((downMask & mapping.button) && sendInput) {
KeyInput key;
key.deviceId = deviceID;
key.flags = KeyInputFlags::DOWN;
key.keyCode = mapping.keyCode;
NativeKey(key);
}
if (upMask & mapping.button) {
if ((upMask & mapping.button) && sendInput) {
KeyInput key;
key.deviceId = deviceID;
key.flags = KeyInputFlags::UP;
@@ -275,7 +278,7 @@ int HidInputDevice::UpdateState() {
}
for (const auto &mapping : g_psStickMappings) {
if (state.stickAxes[mapping.stickAxis] != prevState_.stickAxes[mapping.stickAxis]) {
if (state.stickAxes[mapping.stickAxis] != prevState_.stickAxes[mapping.stickAxis] && sendInput) {
AxisInput axis;
axis.deviceId = deviceID;
axis.axisId = mapping.inputAxis;
@@ -285,7 +288,7 @@ int HidInputDevice::UpdateState() {
}
for (const auto &mapping : g_psTriggerMappings) {
if (state.triggerAxes[mapping.triggerAxis] != prevState_.triggerAxes[mapping.triggerAxis]) {
if (state.triggerAxes[mapping.triggerAxis] != prevState_.triggerAxes[mapping.triggerAxis] && sendInput) {
AxisInput axis;
axis.deviceId = deviceID;
axis.axisId = mapping.inputAxis;
@@ -294,7 +297,7 @@ int HidInputDevice::UpdateState() {
}
}
if (state.accValid) {
if (state.accValid && sendInput) {
NativeAccelerometer(state.accelerometer[0], state.accelerometer[1], state.accelerometer[2]);
}
+7 -3
View File
@@ -232,7 +232,11 @@ void XinputDevice::ReleaseAllKeys(int pad) {
}
void XinputDevice::UpdatePad(int pad, const XINPUT_STATE &state, XINPUT_VIBRATION &vibration) {
ApplyButtons(pad, state);
const bool sendInput = g_Config.bAllowXInput;
if (sendInput) {
ApplyButtons(pad, state);
}
ApplyVibration(pad, vibration);
AxisInput axis[6];
@@ -256,12 +260,13 @@ void XinputDevice::UpdatePad(int pad, const XINPUT_STATE &state, XINPUT_VIBRATIO
sendAxis(JOYSTICK_AXIS_LTRIGGER, (float)state.Gamepad.bLeftTrigger / 255.0f, 4);
sendAxis(JOYSTICK_AXIS_RTRIGGER, (float)state.Gamepad.bRightTrigger / 255.0f, 5);
if (axisCount) {
if (axisCount && sendInput) {
NativeAxis(axis, axisCount);
}
padData_[pad].prevState = state;
padData_[pad].checkDelayUpdates = 0;
padData_[pad].prevButtons = state.Gamepad.wButtons;
}
void XinputDevice::ApplyButtons(int pad, const XINPUT_STATE &state) {
@@ -269,7 +274,6 @@ void XinputDevice::ApplyButtons(int pad, const XINPUT_STATE &state) {
const u32 downMask = buttons & (~padData_[pad].prevButtons);
const u32 upMask = (~buttons) & padData_[pad].prevButtons;
padData_[pad].prevButtons = buttons;
for (int i = 0; i < ARRAY_SIZE(xinput_ctrl_map); i++) {
if (downMask & xinput_ctrl_map[i].from) {
+1
View File
@@ -127,6 +127,7 @@ Circular deadzone = منطقة الحساسيه الدائرية
Circular stick input = ادخال العصا الدائرية
Classic = ‎كلاسيكي
Confine Mouse = ‎حجز مؤشر الماوس في حدود نافذة البرنامج
Control input sources = تحكم في مصادر الإدخال # AI translated
Control mapping = ‎تعديل ازرار التحكم
Custom touch button setup = اعدادات مفاتيح مخصصة
Customize = تخصيص
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Dairəvi ölü bölgə
Circular stick input = Dairəvi çubuq girişi
Classic = Klassik
Confine Mouse = Siçanı pəncərə/görüntü içində tut
Control input sources = Daxil etmə mənbələrinə nəzarət # AI translated
Control mapping = Yönəltmə xəritələnişi
Custom touch button setup = Özəl toxunuşlu düymə quruluşu
Customize = Özəlləşdir # Customize Touch Controls = Toxunuşlu yönəltmə düzənini düzəlt...
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Кругавая мёртвая зона
Circular stick input = Кругавы ўвод джойсцікам
Classic = Класічны
Confine Mouse = Trap mouse within window/display area
Control input sources = Кіраванне ўваходнымі крыніцамі # AI translated
Control mapping = Control mapping
Custom touch button setup = Налада карыстальніцкіх клавіш
Customize = Наладзіць
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Класик
Confine Mouse = Trap mouse within window/display area
Control input sources = Контрол на входящите източници # AI translated
Control mapping = Избиране на контроли
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Zona inactiva circular
Circular stick input = Entrada de stick circular
Classic = Clàssic
Confine Mouse = Fixar el ratolí a l'àrea de la finestra/pantalla
Control input sources = Controla les fonts d'entrada # AI translated
Control mapping = Assignar botons
Custom touch button setup = Ajust de tecla personalitzada
Customize = Personalitzar
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Klasický
Confine Mouse = Trap mouse within window/display area
Control input sources = Ovládat vstupní zdroje # AI translated
Control mapping = Mapování ovládání
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Klassisk
Confine Mouse = Begræns mus indenfor vindue/skærmområde
Control input sources = Kontroller inputkilder # AI translated
Control mapping = Ændre tasteplaceringen
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Kreisförmige Totzone
Circular stick input = Kreisförmige Stick-Eingabe
Classic = Klassisch
Confine Mouse = Maus im Fenster-/Anzeigebereich einfangen
Control input sources = Eingabequellen steuern # AI translated
Control mapping = Tastenbelegung ändern
Custom touch button setup = Benutzerdefinierte Tasteneinstellung
Customize = Anpassen
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Classic
Confine Mouse = Trap mouse within window/display area
Control input sources = Mengontrol sumber input # AI translated
Control mapping = Atoro'i tombolna
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -143,6 +143,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Classic
Confine Mouse = Trap mouse within window/display area
Control input sources = Control input sources
Control mapping = Control mapping
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Zona muerta circular
Circular stick input = Entrada de stick circular
Classic = Clásico
Confine Mouse = Parar ratón dentro del área de la ventana/pantalla
Control input sources = Controlar fuentes de entrada # AI translated
Control mapping = Asignar botones
Custom touch button setup = Configurar tecla personalizada
Customize = Personalizar
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone o Zona Inactiva circular
Circular stick input = Entrada del stick circular
Classic = Clásico
Confine Mouse = Fijar el ratón al área de la ventana/pantalla
Control input sources = Controlar fuentes de entrada # AI translated
Control mapping = Asignar botones / Mapeo de botones
Custom touch button setup = Configurar teclas personalizadas
Customize = Personalizar
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = کلاسیک
Confine Mouse = ‎محدود کردن موس به ناحیه درون پنجره
Control input sources = کنترل منابع ورودی # AI translated
Control mapping = ‎تنظیمات کنترلر
Custom touch button setup = شخصی سازی تنظیمات کلید
Customize = شخصی‌سازی
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Klassinen
Confine Mouse = Kaappaa hiiri ikkunan/näytön sisälle
Control input sources = Ohjaa syöttölähteitä # AI translated
Control mapping = Ohjauksen kartoitus
Custom touch button setup = Custom touch button setup
Customize = Mukauta
+1
View File
@@ -143,6 +143,7 @@ Circular deadzone = Zone morte circulaire
Circular stick input = Entrée du stick circulaire
Classic = Classique
Confine Mouse = Capturer la souris dans la fenêtre/zone d'affichage
Control input sources = Contrôler les sources d'entrée # AI translated
Control mapping = Réassignation des touches
Custom touch button setup = Configuration personnalisée des boutons tactiles
Customize = Personnaliser
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Clásico
Confine Mouse = Trap mouse within window/display area
Control input sources = Controla as fontes de entrada # AI translated
Control mapping = Asignar botóns
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Κλασικό
Confine Mouse = Εγκλωβισμός ποντικιού μέσα στην περιοχή παραθύρου/οθόνης
Control input sources = Έλεγχος πηγών εισόδου # AI translated
Control mapping = Χαρτογράφηση κουμπιών
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Classic
Confine Mouse = Trap mouse within window/display area
Control input sources = שלוט במקורות קלט # AI translated
Control mapping = מיפוי מקשים
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Classic
Confine Mouse = Trap mouse within window/display area
Control input sources = שלוט במקורות קלט # AI translated
Control mapping = םישקמ יופימ
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Klasično
Confine Mouse = Zaključaj miš u window/display području
Control input sources = Kontrolirajte izvore unosa # AI translated
Control mapping = Namještanje kontrola
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Kör alakú holtzóna
Circular stick input = Kör alakú bemenet
Classic = Klasszikus
Confine Mouse = Egérkurzor rögzítése az ablakhoz
Control input sources = Bemeneti források vezérlése # AI translated
Control mapping = Gombok beállítása
Custom touch button setup = Saját gomb beállítása
Customize = Testreszab
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Zona mati melingkar
Circular stick input = Masukan stik melingkar
Classic = Klasik
Confine Mouse = Kunci mouse di area layar
Control input sources = Kontrol sumber input # AI translated
Control mapping = Pemetaan kontrol
Custom touch button setup = Pengaturan kunci kustom
Customize = Kustomisasi
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Raggio circolare di base
Circular stick input = Input circolare levetta
Classic = Classico
Confine Mouse = Confina il mouse all'interno dell'area della finestra
Control input sources = Controlla le sorgenti di input # AI translated
Control mapping = Mappatura dei Controlli
Custom touch button setup = Impostazioni tasto personalizz.
Customize = Personalizza
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = 環状デッドゾーン
Circular stick input = 環状スティック入力
Classic = クラシック
Confine Mouse = ウィンドウ/表示領域内でマウスをトラップする
Control input sources = 入力ソースを制御 # AI translated
Control mapping = キーマッピング(入力ボタン設定)
Custom touch button setup = カスタムキーの設定
Customize = カスタマイズ
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Klasik
Confine Mouse = Trap mouse within window/display area
Control input sources = Ngontrol sumber input # AI translated
Control mapping = Pemetaan Kontrol
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = 원형 하단 반경
Circular stick input = 원형 스틱 입력
Classic = 클래식
Confine Mouse = 창/표시 영역 내에서 마우스 트랩
Control input sources = 입력 소스 제어 # AI translated
Control mapping = 제어 맵핑
Custom touch button setup = 커스텀 키 설정
Customize = 맞춤설정
+1
View File
@@ -132,6 +132,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = کلاسیک
Confine Mouse = Trap mouse within window/display area
Control input sources = Kontrolka çavkanên têkevin # AI translated
Control mapping = Control mapping
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = ແບບດັ້ງເດີມ
Confine Mouse = ຈຳກັດເມົ້າໃນໜ້າຕ່າງ/ພື້ນທີ່ສະແດງຜົນ
Control input sources = ຄວບຄຸມແหลວນສູງໃສ່ # AI translated
Control mapping = ປ່ຽນແປງຄ່າຄວບຄຸມ
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Klasikinis
Confine Mouse = Trap mouse within window/display area
Control input sources = Valdyti įvesties šaltinius # AI translated
Control mapping = Valdymo mygtukų nustatymai
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Klasik
Confine Mouse = Trap mouse within window/display area
Control input sources = Kawal sumber input # AI translated
Control mapping = Pemetaan kawalan
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Klassiek
Confine Mouse = Muis binnen venster/weergavegebied vastzetten
Control input sources = Beheer invoerbronnen # AI translated
Control mapping = Besturing toewijzen
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Classic
Confine Mouse = Trap mouse within window/display area
Control input sources = Kontroller inngangskilder # AI translated
Control mapping = Control mapping
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Okrągły promień dolny
Circular stick input = Okrągły odczyt analoga
Classic = Klasyczny
Confine Mouse = Zablokuj myszkę w oknie
Control input sources = Kontroluj źródła wejściowe # AI translated
Control mapping = Mapowanie przycisków
Custom touch button setup = Niestandardowe Ustawienia Klawiszy
Customize = Ustawienia Niestandardowe
+1
View File
@@ -143,6 +143,7 @@ Circular deadzone = Zona morta circular
Circular stick input = Entrada circular do direcional
Classic = Clássico
Confine Mouse = Travar o mouse dentro da janela/tela
Control input sources = Controlar fontes de entrada # AI translated
Control mapping = Mapeamento dos controles
Custom touch button setup = Configuração personalizada do toque dos botões
Customize = Personalizar
+1
View File
@@ -143,6 +143,7 @@ Circular deadzone = Zona morta circular
Circular stick input = Input circular do direcional
Classic = Clássico
Confine Mouse = Isolar o rato dentro da janela / área de exibição
Control input sources = Controlar fontes de entrada # AI translated
Control mapping = Mapeamento de controlos
Custom touch button setup = Definição personalizada de teclas
Customize = Personalizar
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Clasic
Confine Mouse = Trap mouse within window/display area
Control input sources = Controlează sursele de input # AI translated
Control mapping = Editare controale
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Круговая мёртвая зона
Circular stick input = Круговой ввод стика
Classic = Классический
Confine Mouse = Не давать мыши выходить за пределы окна
Control input sources = Управление источниками ввода # AI translated
Control mapping = Назначение кнопок
Custom touch button setup = Настройка кастомных кнопок
Customize = Настроить
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Cirkulär dödzon
Circular stick input = Cirkulär analog inmatning
Classic = Klassisk
Confine Mouse = Stäng in muspekaren i fönstret
Control input sources = Kontrollera ingångskällor # AI translated
Control mapping = Kontrollmappning
Custom touch button setup = Anpassa touch-knappar
Customize = Anpassa
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Pabilog na deadzone
Circular stick input = Input ng pabilog na stick
Classic = Klasiko
Confine Mouse = I-trap ang mouse sa loob ng window/display area
Control input sources = Назорати манбаъҳои воридот # AI translated
Control mapping = Pagtakda ng Kontrol
Custom touch button setup = Magtakda ng pasadyang pag-aayos sa pindutan
Customize = I-customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = รัศมีต่ำสุดของการหมุ
Circular stick input = ค่านำเข้าการหมุนปุ่ม
Classic = แบบดั้งเดิม
Confine Mouse = จำกัดเม้าส์ภายในหน้าต่าง/พื้นที่แสดงผล
Control input sources = ควบคุมแหล่งข้อมูลเข้า # AI translated
Control mapping = เปลี่ยนแปลงค่าการควบคุม
Custom touch button setup = ติดตั้งปุ่มคอมโบปรับแต่ง
Customize = ปรับแต่ง
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Dairesel ölü bölge
Circular stick input = Dairesel çubuk girişi
Classic = Klasik
Confine Mouse = Fareyi Sınırlandır
Control input sources = Kontrol giriş kaynakları # AI translated
Control mapping = Kontrolleri Ayarla
Custom touch button setup = Özel Tuş Ayarı
Customize = Özelleştir
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Кругова мертва зона
Circular stick input = Введення круглого стіка
Classic = Класичний
Confine Mouse = Не давати миші виходити за межі екрану
Control input sources = Керування джерелами введення # AI translated
Control mapping = Призначення кнопок
Custom touch button setup = Індивідуальне налаштування клавіші
Customize = Кастомізувати
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = Circular deadzone
Circular stick input = Circular stick input
Classic = Cổ điển
Confine Mouse = hiển thị chuột
Control input sources = Kiểm soát nguồn nhập # AI translated
Control mapping = Chỉnh nút
Custom touch button setup = Custom touch button setup
Customize = Customize
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = 环形死区
Circular stick input = 环形摇杆输入
Classic = 经典款式
Confine Mouse = 限制鼠标在窗口内
Control input sources = 控制输入源 # AI translated
Control mapping = 按键映射
Custom touch button setup = 自定义键位设置
Customize = 自定义…
+1
View File
@@ -119,6 +119,7 @@ Circular deadzone = 圓形死區
Circular stick input = 圓形搖桿輸入
Classic = 傳統
Confine Mouse = 在視窗/顯示區域內截獲滑鼠
Control input sources = 控制輸入來源 # AI translated
Control mapping = 控制對應
Custom touch button setup = 自訂按鍵設定
Customize = 自訂