Skip to content

Commit

Permalink
Improved aiming, improved button combinations for Nintendo controller…
Browse files Browse the repository at this point in the history
…s, new version of JoyShock Library
  • Loading branch information
r57zone committed Jan 6, 2025
1 parent bfbfd40 commit a2572fa
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 66 deletions.
16 changes: 11 additions & 5 deletions README.RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,19 @@
Нажимая на профиль по умолчанию, на DualSense, белые светодиоды отображают текущий статус заряда аккумулятора (1 - 0..25%, 2 - 26..50%, 3 - 51..75%, 4 - 76..100%), также на DualSense и DualShock 4 показывается статус батареи на световой панели (зелёный - 100..30%, жёлтый - 29..10%, красный - 9..1%), можно отключить в конфиге, параметр `ShowBatteryStatusOnLightBar`. Для DualSense и DualShock 4 отображается текущий заряд в самой программе.


Для изменения яркости 2 раза нажмите на область яркости. Если изменение яркости заблокировано, то подстветка будет выключаться по двойному клику.
Для изменения яркости Sony контроллеров 2 раза нажмите на область яркости. Если изменение яркости заблокировано, то подстветка будет выключаться по двойному клику.


Кнопка `PS` или `Capture + Home` открывает "Xbox Game Bar" (нажимая `Win + G`), `PS + □` или `CAPTURE + Y` - уменьшить громкость, `PS + ○` или `PS + A` - увеличить громкость, `PS + △` или `CAPTURE + X` - увеличивает, а затем уменьшает чувствительность прицеливания (сброс на `PS + R3` или `CAPTURE + R3`), `PS + X` или `CAPTURE + B` - кнопка микрофона (скриншот или нажатие сконфигурированной кнопки клавиатуры).


Можно сделать автонажатие стика при определённом наклонении стика (значение в конфигурационном файле), а также инвертировать нажатие на `ALT + S` или `PS/HOME + LS`.


По умолчанию кнопка микрофона делает скриншот `Win + Alt + PrtScr` (для DualShock 4 `PS + X`, а для Nintendo контроллеров `CAPTURE + B`). Изменив параметр `MicCustomKey` на [нужное значение кнопки](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.RU.md) будет производится её нажатие.


Для эмуляции клавиатуры и мыши, для старых игр, переключите режим работы на `ALT + Q` или `PS + ←` и `PS + →`, или `HOME + ←` и `HOME + →`, и выберите нужный профиль или [создайте новый профиль](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.RU.md). Профили переключаются на клавиши `ALT + ↑` и `ALT + ↓`, если окно активно или на геймпаде, с помощью `PS + ↑` и `PS + ↓` или `HOME + ↑` и `HOME + ↓`. Профиль по умолчанию позволяет работать в Windows.
Для эмуляции клавиатуры и мыши, для старых игр, переключите режим работы на `ALT + Q` или `PS/HOME + ←` и `PS/HOME + →`, и выберите нужный профиль или [создайте новый профиль](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.RU.md). Профили переключаются на клавиши `ALT + ↑` и `ALT + ↓`, если окно активно или на геймпаде, с помощью `PS + ↑` и `PS + ↓` или `HOME + ↑` и `HOME + ↓`. Профиль по умолчанию позволяет работать в Windows.


Для подключения [внешних педалей (DInput)](https://github.com/r57zone/XboxExternalPedals#setup-dinput-pedals-mh-et-live-board) измените параметр `DInput` на `1`, в разделе `ExternalPedals`. Для поключения [внешних педалей на Arduino](https://github.com/r57zone/XboxExternalPedals#setup-arduino-pedals) измените номер COM-порта, изменив параметр `COMPort`.
Expand Down Expand Up @@ -75,14 +78,17 @@
**Не работает эмуляция клавиатура, в некоторых играх**<br>
В некоторых играх, например, Max Payne или Crysis 2, к сожалению, это пока не работает.



**Не работает вибрация на Nintendo контроллерах**<br>
К сожалению, это пока не реализовано.

## Благодарности
* Sony и Nintendo за самые продвинутые геймпады и инвестирование в инновации, а также за продвижение инноваций в игры.
* [ViGEm](https://github.com/ViGEm) за возможность эмуляции разных геймпадов.
* [HIDAPI library](https://github.com/signal11/hidapi), с [исправлениями](https://github.com/libusb/hidapi), за библиотеку для работы с USB устройства. В проекте используется этот [форк](https://github.com/r57zone/hidapi).
* [JoyShockLibrary](https://github.com/JibbSmart/JoyShockLibrary) за классную библиотеку геймпадов, позволяющую легко получить вращение контроллера. Также используется некоторый код из этой библиотеки.
* [Пользователям Reddit](https://www.reddit.com/r/gamedev/comments/jumvi5/dualsense_haptics_leds_and_more_hid_output_report/) за детальное описание выходного USB пакета DualSense.
* [JoyShockLibrary](https://github.com/JibbSmart/JoyShockLibrary) за классную библиотеку геймпадов, позволяющую легко получить вращение контроллера. Также используется некоторый код из этой библиотеки и [пример JibbSmart](https://gist.github.com/JibbSmart/8cbaba568c1c2e1193771459aa5385df) для прицеливания.
* DS4Windows[[1]](https://github.com/Jays2Kings/DS4Windows)[[2]](https://github.com/Ryochan7/DS4Windows) за уровень заряда батареи.
* ChatGPT за улучшения прицеливания.

## Сборка
1. Загрузите исходники и распакуйте.
Expand Down
17 changes: 13 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,19 @@ To exit the stick emulation mode on the touchpad, need to switch to the default
By clicking on the default profile on DualSense the white LEDs display the current battery status (1 - 0..25%, 2 - 26..50%, 3 - 51..75%, 4 - 76..100%), also on DualSense and DualShock 4 the battery status is shown on the lightbar (green - 100..30%, yellow - 29..10%, red - 9..1%), can be disabled in the config, parameter `ShowBatteryStatusOnLightBar`. For DualSense and DualShock 4 the current charge is displayed in the program itself.


To change the brightness of Sony controllers, double-click on the brightness area. If the brightness change is blocked, the backlight will turn off by double-clicking.


`PS` or `Capture + Home` button opens "Xbox Game Bar" (press `Win + G`), `PS + □` or `CAPTURE + Y` - decrease volume, `PS + ○` or `PS + A` - increase volume, `PS + △` or `CAPTURE + X` - increases and then decreases aiming sensitivity (reset to `PS + R3` or `CAPTURE + R3`), `PS + X` or `CAPTURE + B` - microphone button (screenshot or pressing configured keyboard button).


You can make the stick automatically pressed at a certain stick tilt (value in the configuration file), and also invert the pressing of `ALT + S` or `PS/HOME + LS`.


By default, the microphone button takes a screenshot of `Win + Alt + PrtScr` (for DualShock 4 `PS + X`, and for Nintendo controllers `CAPTURE + B`). By changing the `MicCustomKey` parameter to the [desired button value](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.md), it will be pressed.


To emulate keyboard and mouse, for old games, switch the operating mode to `ALT + Q` or `PS + ←` and `PS + →`, or `HOME + ←` and `HOME + →`, and select the desired profile or [create the desired profile](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.md). Profiles are switched to the `ALT + ↑` and `ALT + ↓` keys if the window is active or on a gamepad using `PS + ↑` and `PS + ↓` or `HOME + ↑` and `HOME + ↓`. The default profile allows to work in Windows.
To emulate keyboard and mouse, for old games, switch the operating mode to `ALT + Q` or `PS/HOME + ←` and `PS/HOME + →`, and select the desired profile or [create the desired profile](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.md). Profiles are switched to the `ALT + ↑` and `ALT + ↓` keys if the window is active or on a gamepad using `PS + ↑` and `PS + ↓` or `HOME + ↑` and `HOME + ↓`. The default profile allows to work in Windows.


To connect [external pedals (DInput)](https://github.com/r57zone/XboxExternalPedals#setup-dinput-pedals-mh-et-live-board), change the `DInput` parameter to `1`, in the `ExternalPedals` section. To connect [external pedals on Arduino](https://github.com/r57zone/XboxExternalPedals#setup-arduino-pedals), change the COM port number by changing the `COMPort` parameter.
Expand Down Expand Up @@ -73,14 +79,17 @@ Launch DSAdvance first, and only then the game itself, the game can give priorit
**Keyboard emulation don't work in some games**<br>
In some games, for example, Max Payne or Crysis 2, unfortunately, this don'n work yet.



**Vibration does not work on Nintendo controllers**<br>
Unfortunately, this is not yet implemented.

## Credits
* Sony and Nintendo for the most advanced gamepads and investment in innovation, and for driving innovation in games.
* [ViGEm](https://github.com/ViGEm) for the ability to emulate different gamepads.
* [HIDAPI library](https://github.com/signal11/hidapi) with [fixes](https://github.com/libusb/hidapi) for the library to work with a USB devices. The project uses this [fork](https://github.com/r57zone/hidapi).
* [JoyShockLibrary](https://github.com/JibbSmart/JoyShockLibrary) for a cool gamepad library that makes it easy to get controller rotation. Also some code from this library is used.
* For [Reddit users](https://www.reddit.com/r/gamedev/comments/jumvi5/dualsense_haptics_leds_and_more_hid_output_report/) for a detailed description of the DualSense USB output packet.
* [JoyShockLibrary](https://github.com/JibbSmart/JoyShockLibrary) for a cool gamepad library that makes it easy to get controller rotation. Also uses some code from this library and [JibbSmart snippet](https://gist.github.com/JibbSmart/8cbaba568c1c2e1193771459aa5385df) for aiming.
* DS4Windows[[1]](https://github.com/Jays2Kings/DS4Windows)[[2]](https://github.com/Ryochan7/DS4Windows) for the battery level.
* ChatGPT for improved aiming.

## Building
1. Download the sources and unzip them.
Expand Down
Loading

0 comments on commit a2572fa

Please sign in to comment.