You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Изменение силы вибрации или её отключение | `PS + Options` | `Capture + Плюс` | `ALT + </>`
67
67
Выключение и включение нажатия тачпада для переключения режимов (Sony) | `PS + Share` | - | `ALT + W`
68
-
Автонажатие стика при определённом наклоне стика (значение в конфигурационном файле), а также инвертирование | `PS + LS` | `HOME + LS` | `ALT + S`
68
+
Автонажатие стика при определённом наклоне (значение в конфигурационном файле), единажды или постоянно | `PS + LS` | `HOME + LS` | `ALT + S`
69
69
Режимы скриншота: Игровая панель Xbox, Steam, Игровая панель Xbox + Steam, заданная кнопка в конфиге (параметру `MicCustomKey` задать [нужное значение кнопки](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.RU.md) | - | - | `ALT + X`
70
70
Выключение подсветки (Sony) | `PS + L1` или 2 раза нажмите на область яркости тапада и проведите пальцем влево или вправо. Если изменение яркости заблокировано `LockChangeBrightness`, то подсветка будет выключаться по двойному клику. | - | `ALT + B`
71
71
@@ -114,7 +114,7 @@
114
114
115
115
116
116
• **Не работает вибрация на Nintendo Pro контроллере**<br>
117
-
Пока не поддерживается, решения ищуться.
117
+
В режиме USB вибрация отключена из-за проблем, в беспроводном на совместимых контроллерах работает, на оригинальных не проверено.
118
118
119
119
## Благодарности
120
120
* Sony и Nintendo за самые продвинутые геймпады и инвестирование в инновации, а также за продвижение инноваций в игры.
Auto-stick press at a certain tilt angle (value set in the config file), as well as inversion | `PS + LS` | `HOME + LS` | `ALT + S`
69
+
Autostick press when tilted at a certain angle (value set in the configuration file), either once or continuously | `PS + LS` | `HOME + LS` | `ALT + S`
70
70
Screenshot modes: Xbox Game Bar, Steam, Xbox Game Bar + Steam, custom-configured button (`MicCustomKey` parameter should be set to [the desired key](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.md)) | - | - | `ALT + X`
71
71
Turn off light bar (Sony) | `PS + L1` or double-tap the brightness area of the touchpad and swipe left or right. If brightness adjustment is locked (`LockChangeBrightness`), the light bar will turn off with a double tap. | - | `ALT + B`
72
72
@@ -115,7 +115,7 @@ In some games, for example, Max Payne or Crysis 2, unfortunately, this don'n wor
115
115
116
116
117
117
• **Rumble don't work on Nintendo Pro controller**<br>
118
-
Not supported yet, solutions are being explored.
118
+
In USB mode, rumble is disabled due to issues, it works in wireless mode on compatible controllers, but hasn't been tested on original ones.
119
119
120
120
## Credits
121
121
* Sony and Nintendo for the most advanced gamepads and investment in innovation, and for driving innovation in games.
outputReportLeft[2] = (unsignedint)OutState.SmallMotor * PrimaryGamepad.RumbleStrength * 90 / 10000; // std::clamp(OutState.SmallMotor - 0, 0, 229); // It seems that it is not recommended to use the Nintendo Switch motors at 100 % , there is a risk of damaging them, so we will limit ourselves to 90%
if (OutState.SmallMotor == 0 && OutState.LargeMotor == 0) PrimaryGamepad.RumbleOffCounter = 2; // Looks like Nintendo needs some "0" rumble packets to stop it
305
+
if (PrimaryGamepad.RumbleOffCounter == 0 && OutState.SmallMotor == 0 && OutState.LargeMotor == 0) PrimaryGamepad.RumbleOffCounter = 2; // Looks like Nintendo needs some "0" rumble packets to stop it
289
306
}
290
-
} elseif (PrimaryGamepad.ControllerType == NINTENDO_SWITCH_PRO) { // Working only one motor :(
307
+
}
308
+
elseif (PrimaryGamepad.ControllerType == NINTENDO_SWITCH_PRO && !PrimaryGamepad.USBConnection) { // Working only one motor :(
309
+
//printf("rumble\n");
291
310
if (PrimaryGamepad.RumbleStrength != 0) {
292
311
unsignedchar outputReport[64] = { 0 };
293
312
294
-
/* // BT ???
295
-
if (!PrimaryGamepad.USBConnection) {
296
-
outputReport[0] = 0x80; // Заголовок для Bluetooth
297
-
outputReport[1] = 0x92; // Команда вибрации для Bluetooth
298
-
outputReport[3] = 0x31; // Подкоманда для вибрации
299
-
outputReport[8] = 0x10; // Дополнительные данные для Bluetooth
unsignedchar h_amp = (unsignedint)OutState.SmallMotor * PrimaryGamepad.RumbleStrength * 90 / 10000; // std::clamp(OutState.SmallMotor * 2 / 229, 0, 255); // It seems that it is not recommended to use the Nintendo Switch motors at 100 % , there is a risk of damaging them, so we will limit ourselves to 90%
//unsigned char l_amp1 = (unsigned int)OutState.LargeMotor * PrimaryGamepad.RumbleStrength * 90 / 10000; // The way is correct, but work only one motor
if (OutState.SmallMotor == 0 && OutState.LargeMotor == 0) PrimaryGamepad.RumbleOffCounter = 2; // Looks like Nintendo needs some "0" rumble packets to stop it
335
+
if (PrimaryGamepad.RumbleOffCounter == 0 && OutState.SmallMotor == 0 && OutState.LargeMotor == 0) PrimaryGamepad.RumbleOffCounter = 2; // Looks like Nintendo needs some "0" rumble packets to stop it
@@ -1560,10 +1580,7 @@ int main(int argc, char **argv)
1560
1580
if (!(PrimaryGamepad.InputState.buttons & JSMASK_PS && PrimaryGamepad.InputState.buttons & JSMASK_CAPTURE && PrimaryGamepad.InputState.buttons & JSMASK_CAPTURE)) { // During special functions, nothing is pressed in the game
0 commit comments