Coder Social home page Coder Social logo

electronicks / joyshockmapper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jibbsmart/joyshockmapper

336.0 336.0 20.0 3.75 MB

A tool for PC gamers to play games with DualShock 4s, JoyCons, and Pro Controllers. Gyro aiming, flick stick.

License: Other

C 0.10% C++ 92.84% CMake 6.27% Batchfile 0.30% Shell 0.49%

joyshockmapper's People

Contributors

electronicks avatar jibbsmart avatar kicsyromy avatar mmmaisel avatar rstraver avatar ryochan7 avatar somebelse avatar tauakiou avatar theofficialgman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

joyshockmapper's Issues

Paddles on Xbox Elite Series 2 not visible or able to be re-bound to other inputs

Using JSM version 3.2.+, connected an Elite Series 2 controller. Device connects successfully, and all other buttons/inputs are received by JSM. Paddle inputs are not received or visible by JSM.

Steps taken to try to troubleshoot:

  • Uninstalled Steam Xbox Extended Feature Support driver
  • Using the Xbox Accessories app, made a profile but unbound the paddles (required by reWASD for paddle rebinding, and according to Xbox/Microsoft using one of those profiles is needed for paddles to be enabled)

Nothing has worked so far.

Modeshifting out of FLICK mode causes in-progress flick to pause

I've been using Black Mesa to test out different JSM configs, and the one I've settled on for now uses AIM on the right stick, with R1 disabling the gyro, and modeshifting the right stick into FLICK mode for when I need a quick 180.

However, I've noticed that if I release R1 and modeshift back into AIM mode while the flick is still in progress, the flick stops short. If I press R1 again, the flick will resume, skipping ahead to the correct position with regard to the FLICK_TIME.

Here is the issue demonstrated using a very long FLICK_TIME (2 seconds), and R1 as the modeshift button:

Jsmflickmodeshift-1.mp4
RESET_MAPPINGS

IN_GAME_SENS = 3.0
REAL_WORLD_CALIBRATION = 45.454

RIGHT_STICK_MODE = AIM
FLICK_TIME = 2.0
R,RIGHT_STICK_MODE = FLICK

using right stick for camera controls

some games use hold MMOUSE plus mouse movement to rotate the camera. the specific game i'm trying to work it is Exanima. i've tried AIM, MOUSE_AREA, MOUSE_RING and none so far seems to work.

my last attempt:

GYRO_OFF = RIGHT_STICK
RIGHT_STICK_MODE = MOUSE_AREA
RIGHT_RING_MODE = INNER
MOUSE_RING_RADIUS = 300
RRING = MMOUSE

i've tried binding the middle mouse to the inner radius press. but the mouse always moves first before the MMOUSE input. sometimes letting go of RSTICK moves the mouse right back to where it started.

RIGHT_STICK_DEADZONE_INNER seems to do nothing for virtual Xbox controller using Nintendo Switch Pro controller gyro for right stick

I have the following config:

VIRTUAL_CONTROLLER = XBOX

UP = X_UP
DOWN = X_DOWN
LEFT = X_LEFT
RIGHT = X_RIGHT
L = X_LB
R = X_RB
W = X_X
S = X_A
N = X_Y
E = X_B
L3 = X_LS
R3 = X_RS
- = X_BACK
+ = X_START
HOME = X_GUIDE
ZL_MODE = X_LT
ZR_MODE = X_RT
LEFT_STICK_MODE = LEFT_STICK
RIGHT_STICK_MODE = RIGHT_STICK
MOTION_STICK_MODE = RIGHT_STICK
MOTION_DEADZONE_INNER = 1

When I move the gyro to control the right stick there's a large deadzone. I already set MOTION_DEADZONE_INNER to a small value. I think the problem is that the virtual controller's right stick has a high deadzone, so I tried setting RIGHT_STICK_DEADZONE_INNER = 0.01 but that doesn't seem to do anything.

Turbo uses HOLD_PRESS_TIME delay twice

Turbo has a delay equal to HOLD_PRESS_TIME before and after the initial key; for example if "S = X+", when holding S there will be a delay equal to HOLD_PRESS_TIME, then x is sent, then another delay equal to HOLD_PRESS_TIME, then x starts repeating with the expected TURBO_PERIOD time.

Issue present in JSM 3.3.0 and 3.2.3

Map button to multiple keys

Some console games have use and reload on the same button, while the keyboard has them as two separate keys.
I would like to be able to bind Square to press both E and R at the same time without hold or chorded press.

Instant (!) Action Modifier not functioning correctly

When trying to use the Instant (!) modifier for a normal binding, rather than performing an instant press, it simply behaves like a regular press.

Result with R = !W:

Instant.Regular.mp4

More puzzlingly, trying to use Instant for a release press, it instead toggles the binding, and unlike a normal Toggle, pressing the button again does not remove the toggle.

Result with R = !W/:

Instant.Release.mp4

"BOW" Trigger effect doesn't go all the way down

The DualSense is definitely able to provide resistance all the way down, as proven by using NO_FULL trigger mode with the default trigger effect. Yet the BOW trigger effect stops short of a full pull, even when the "end" parameter is set to its maximum value of 8. As far as I can tell, this is completely unaffected by the Trigger Calibration (the macro is broken btw, see my other report)

[Feature Request] Flydigi controllers gyro support

Flydigi is releasing Android/PC controllers with gyro controls. Maybe it will be worth someday to add their support to JoyShockMapper.
I have found that these controllers have gyro support on Android:

  • Flydigi Vader 2
  • Flydigi Wee2T
  • Flydigi Apex
  • Flydigi Apex

Thanks. It would be nice to have more smaller gamepad releasing companies interested in motion controls.

DS4: Clicking touchpad without touching capacitive surface causes TOUCH binding to fire rapidly

The touchpad click on the Dualshock 4 can be easily pressed without touching the actual pad surface by pressing the curled edge on top of the controller. This means that CAPTURE can be mapped to its own binding, while chording TOUCH (or T1-T25) with CAPTURE can create more bindings still.

However, clicking the touchpad in this way causes the TOUCH binding to toggle state constantly, causing rapid inputs.

Here is Red Eclipse with TOUCH = SPACE:

TouchpadRapid.mp4

Out of curiosity, I tried changing TURBO_PERIOD to see if it affected anything, which it did not.

3.1.0+ SDL2 Version Crashes on Windows 10

The SDL2 Versions of 3.1.0 and 3.1.1 Crash almost immediately.
No commands appear in the command line before the crash.
image
It probably crashes before being able to load OnStartup.txt, as the absence of the file has no effect.
JSL/Legacy versions of 3.1.0 and 3.1.1, as well as all versions of 3.0.2, 3.0.1, 3.0.0, do not crash.

My PC is 64bit, but if the 64bit version crashes, or runs, the 32bit version performs the same.
OS: Windows 10 Home 1909 build 18363.1440
I understand that my Windows installation is not exactly up-to-date, but I don't think this is the problem.
I can provide more information/perform more tests if necessary.

DualSense Haptics and Adaptive Triggers do not function properly

I imagine this is more due to the fact that these aren't entirely supported on PC yet, but this program gets the closest I've seen to actually getting these to work.

I've spent the last couple days trying to get the DualSense to work on ScarletNexus, which has both Haptics and Adaptive Trigger support on the PS5. When using JoyShockMapper with a custom Autoload file, I can get it to recognize that there is Rumble and the Adaptive Triggers seem to turn on. However, the Rumble is binary (either on or off, no haptics) and the Adaptive Triggers seem to be stuck at a single resistive strength.

I went and tried the Demo on the PS5 to make sure and it does appear that it's not quite right. I'd be interested in seeing if this can be fixed or not. I'm not really sure if SDL2 even has support for this yet but perhaps one day down the line it will.

Here is the /autoload ScarletNexus-Win64-Shipping.txt file that I am using (it's basically just the DS4 one found in GyroConfigs):

# This configuration file will map a virtual ds4 controller for each connected controller.
RESET_MAPPINGS
VIRTUAL_CONTROLLER = DS4
RUMBLE = ON
ADAPTIVE_TRIGGER = ON

UP = PS_UP
DOWN = PS_DOWN
LEFT = PS_LEFT
RIGHT = PS_RIGHT
L = PS_L1
R = PS_R1
W = PS_SQUARE
S = PS_CROSS
N = PS_TRIANGLE
E = PS_CIRCLE
L3 = PS_L3
R3 = PS_R3
- = PS_SHARE
+ = PS_OPTIONS
HOME = PS_HOME
CAPTURE = PS_PAD_CLICK
ZL_MODE = PS_L2
ZR_MODE = PS_R2
LEFT_STICK_MODE = LEFT_STICK
RIGHT_STICK_MODE = RIGHT_STICK

when sending HOME, if numlock is on it sends 7

Pretty much self explanatory I think.
If I turn off the numlock it works as expected.
(reminder that pressing 7 on the numpad without numlock sends "Home" 😉)

I am using a right joycon and this configuration:

RESET_MAPPINGS
REAL_WORLD_CALIBRATION = 5.33
IN_GAME_SENS = 1
COUNTER_OS_MOUSE_SPEED`

MIN_GYRO_SENS = 3 3
MAX_GYRO_SENS = 4 4
GYRO_CUTOFF_RECOVERY = 5
MIN_GYRO_THRESHOLD = 5
MAX_GYRO_THRESHOLD = 75
GYRO_SMOOTH_THRESHOLD = 5

RIGHT_STICK_MODE = AIM
STICK_SENS = 350 350
STICK_POWER = 1
STICK_ACCELERATION_RATE = 0

R = RMOUSE
ZR = LMOUSE

RSR = HOME
RSL = ^GYRO_OFF

W = \LSHIFT LMOUSE /LSHIFT
N = MMOUSE
E = SCROLLUP SCROLLUP+
S = SCROLLDOWN SCROLLDOWN+

+ = ENTER
R3 = NONE
HOME = NONE

Segmentation fault (core dumped) on linux Arch

Here's everything from the terminal:
[duncanm@arch ~]$ JoyShockMapper Welcome to JoyShockMapper version v3.2.1! AUTOLOAD is available. Files in /home/duncanm/.config/JoyShockMapper/AutoLoad/ folder will get loaded automatically when a matching application is in focus. DS4 DS 1 device connected Resetting all mappings to defaults There is no OnReset.txt file to load. There is no OnStartup.txt file to load. [AUTOLOAD] "~ : bash" in focus: create AutoLoad\konsole.txt to autoload for this application. Segmentation fault (core dumped)

Coredump file attached.
core.JoyShockMapper.1000.be72b90ced184d7ea0d206ab9569c6d8.58019.1626411286000000.zst.log

Double press and simultaneous press sometimes "stick"

Sometimes when I do a simultaneous press or a double press, the action will sometimes stick. For a double press, it'll continuously hold the action despite letting go of the button. Double-pressing again will not deactivate it, but pressing another button with the same action will unstick it.

For a simultaneous press, if I press one of the two buttons bound to that particular action, it'll perform the action again even though I didn't do a simultaneous press and only pressed one button. For example, if I have N+E bound to an action and the sticky glitch occurs, it'll act normally for the initial press, but then it'll repeat the action when I press either N or E later. It doesn't seem to matter how much later.

The simultaneous press issue is harder to replicate, so I might have to change my description later if I can replicate it and be more sure about what's actually happening.

As an example for the double-press, I have S,S bound to GYRO_OFF. When I press it, sometimes the gyro will just stay off until I press another button, in this case R3, which is also set to GYRO_OFF. See the attached screenshot to see what happens in the console window once I press R3:

image

More details: I'm on Arch Linux using a DualShock 4 plugged into USB. I've tried running JSM as a regular user and as root. The issue still occurs either way. I just built the latest version of JSM. I was using a fork of version 3.1.0 before and the problem was still occurring there. That's what prompted me to try the latest version, where the problem persists.

V3.3.0 not running on Pop OS 21.10

I have followed new instructions added in PR #56 to build the project and also applied changes suggested in PR #56.
Pleased to see It does build.
While I'm trying to run it with a dualsense connected via Bluetooth, the following is the output.

AUTOLOAD is available. Files in /root/.config/JoyShockMapper/AutoLoad/ folder will get loaded automatically when a matching application is in focus.
1 device connected
Resetting all mappings to defaults
There is no OnReset.txt file to load.
There is no OnStartup.txt file to load.
terminate called after throwing an instance of 'std::bad_function_call'
  what():  bad_function_call
Aborted

Windows Key Input Doesn't Work

The windows key input isn't working on any of the bindings it's on, but JSM doesn't list any errors with the bindings. I'm running JSM in admin mode, and the windows key is working both on my keyboard and on my mouse which has it bound to M4 with another software.

Cannot invert gyro Y axis

I'm trying to use JoyShockMapper in Xbox Cloud gaming (running in Chrome on Windows 10) with a Nintendo Switch Pro controller so that I can use the gyro to control the right stick for better aiming in FPS games. I have it working by using https://github.com/ViGEm/ViGEmBus and https://github.com/ViGEm/HidHide and using the follow config:

VIRTUAL_CONTROLLER = XBOX

UP = X_UP
DOWN = X_DOWN
LEFT = X_LEFT
RIGHT = X_RIGHT
L = X_LB
R = X_RB
W = X_X
S = X_A
N = X_Y
E = X_B
L3 = X_LS
R3 = X_RS
- = X_BACK
+ = X_START
HOME = X_GUIDE
ZL_MODE = X_LT
ZR_MODE = X_RT
LEFT_STICK_MODE = LEFT_STICK
RIGHT_STICK_MODE = RIGHT_STICK
MOTION_STICK_MODE = RIGHT_STICK

But the Gyro Y axis is inverted so that up moves my gun down and vice-versa. I tried fixing with the following but it doesn't work:

GYRO_AXIS_Y = INVERTED

Can't have right stick and gyro both control right stick

I have the config below on v3.2.2 and I'm trying to make it so my Nintendo Switch Pro Controller will show up as an Xbox controller where the right stick and gyro both emulate right stick movement. The gyro works fine with this config but the right stick doesn't map to right stick movement.

VIRTUAL_CONTROLLER = XBOX

UP = X_UP
DOWN = X_DOWN
LEFT = X_LEFT
RIGHT = X_RIGHT
L = X_LB
R = X_RB
W = X_X
S = X_A
N = X_Y
E = X_B
L3 = X_LS
R3 = X_RS
- = X_BACK
+ = X_START
HOME = X_GUIDE
ZL_MODE = X_LT
ZR_MODE = X_RT
LEFT_STICK_MODE = LEFT_STICK
RIGHT_STICK_MODE = RIGHT_STICK
MOTION_STICK_MODE = RIGHT_STICK

More keys not working in certain games

These keys don't work in some games:
N0-N9
ADD, SUBTRACT, DIVIDE, MULTIPLY, DECIMAL
PAGEUP, PAGEDOWN, HOME, END, INSERT, DELETE
Like the arrow keys before, they did work in v3.2.1 but not later versions.

README.md edit

Under section 1 Digital Inputs, in the paragraph just before 1.1 Tap & Hold: I suggest adding the directory in the example as the command will not work without the directory, i.e. HOME = "GyroConfigs/GTA_driving.txt"

Building instructions for Ubuntu 21.10

For anyone trying to run it on Ubuntu:

  • The highest version I was able to build after resolving all dependencies is 1.6.1
    Download link
  • Ubuntu version: 21.10
  • Backend: Wayland

Installing dependencies:
sudo apt-get install -y libappindicator3-dev gir1.2-appindicator3-0.1 libgtkmm-3.0-dev clang libsdl2-dev libdecoration0 libdrm-dev libhidapi-dev libusb-1.0-0 libgtk-3-dev

Building:

  • Download source code
  • Unpack it
  • Open the unpacked folder in terminal
  • Execute:
mkdir build && cd build
cmake .. -DCMAKE_CXX_COMPILER=clang++ && cmake --build .

Running:
(Requires sudo)

cd ./JoyShockMapper
sudo ./JoyShockMapper

Analog Axes Not Working Properly using Dual Joycons on Virtual DS4 Controller

Simply using the included ds4 example config in v.3.2.3, analog sticks and triggers are not recognized properly when testing Dual Joycons. This is a clip when previewing in Control Panel. Trying to move each analog stick in a clockwise circle, then click each button. Similar behavior when Steam is launched. All digital buttons seem to work fine.
GameControllers_1

If Virtual Controller is set to Xbox instead, the left analog stick behaves as expected although a little jittery, but Z axis doesn't work for both triggers and right stick is unresponsive.

Seems that for now, the only output mode useful for dual joycons is the original set of keyboard mappings. Is this an implementation problem with ViGEm, or something about the joycon's difference in analog stick deadzones that's causing this behavior?

Motion Stick behaves incorrectly with Joycon on Virtual DS4

When Virtual Controller is set to Xbox or DS4 and only the Motion Stick Mode is set to Right Stick (set Right Stick Mode to No-Mouse), the Motion Stick outputs the right stick as expected. When VC is Xbox and Right Stick Mode is also set to Right Stick, both can contribute to the Right Stick output, although the stick overrides the motion stick's angle, which is fine.

But if Virtual Controller is set to DS4 and an analog stick is set to Right Stick along with Motion Stick Mode, the axes seem to "max out", as if the values from both sets are added together instead of averaged or prioritized like with the Xbox setting.

`VIRTUAL_CONTROLLER = DS4
RECONNECT_CONTROLLERS MERGE

LEFT_STICK_MODE = LEFT_STICK
RIGHT_STICK_MODE = RIGHT_STICK

MOTION_STICK_MODE = RIGHT_STICK
JOYCON_MOTION_MASK = IGNORE_LEFT
HOME = "SET_MOTION_STICK_NEUTRAL"`

output2

Can't use GYRO_SENS with MOTION_STICK_MODE = RIGHT_STICK

I have the following config:

VIRTUAL_CONTROLLER = XBOX

UP = X_UP
DOWN = X_DOWN
LEFT = X_LEFT
RIGHT = X_RIGHT
L = X_LB
R = X_RB
W = X_X
S = X_A
N = X_Y
E = X_B
L3 = X_LS
R3 = X_RS
- = X_BACK
+ = X_START
HOME = X_GUIDE
ZL_MODE = X_LT
ZR_MODE = X_RT
LEFT_STICK_MODE = LEFT_STICK
RIGHT_STICK_MODE = RIGHT_STICK
MOTION_STICK_MODE = RIGHT_STICK

If I then try to input GYRO_SENS = 2 it resets the gyro to control the mouse. Is there another way to set gyro sensitivity with this config?

Anti-Cheat

Sorry if this is the wrong place for this, but I was just wondering if you know anything about how anti-cheat softwares might feel about JSM. I've been using JSM for Destiny 2 gyro aiming for ages and they're getting Battleye Anti-Cheat soon.

[Feature Request] Express x or y sensitivity as a percentage of the other sensitivity

Sometimes users want separate x and y sensitivities, but want them to be in a specific ratio. To avoid having to recalculate the y sensitivity when making many changes to the x sensitivity, it would be convenient to express the y sensitivity as a percentage of the x sensitivity. With accel both the min and max sensitivities need to be set, so a percentage option would be especially helpful.

For example: "GYRO_SENS = 3 65%"

Originally requested by Mezu5 on Discord.

ZRF crash

With a Dualsense, when ZRF is pressed JSM just dies.

Sample Unity/UE4 Project

Can you please provide a sample project in Unity or UE4 that showcases reading raw gyro/accelerometer data?

If that's too much trouble, a short guide in the README would be really helpful.

Thank you!

Issue with Instant Binding Modifier "!"

Hey there,

I've made a binding that is

N = !/_ E_ # Binding

My understanding is that means when I hold "N" for hold press time, "/" should tap on and off once, and "E" should hold out until I release "N". But with that binding, when I hold "N", "/" doesn't key up until I release "N".

That's my main issue, but that's a fallback binding actually. My initial problem was that with the binding

N = !/\ E\ # Binding

I was hoping there could be a way to set a small delay before the "E" key down occurs, since "/" brings up a menu, but the menu is animated, so it takes a sec for "E" to be able to be pressed.

Either way thanks so much for the great work on this :D

Unable to start JSM with hidhide v1.1.50.0 installed

image
any modification in the client will cause current running JSM to crash and unable to start again, unless the pc is restarted, and the issue still exist, and JSM unable to find the controller even with whitelist

after the client is closed, seems to work again

not effecting 3.0.0 but several versions after :X

Question: Adaptive Triggers

I'm trying to play around with the adaptive triggers and I've been able to easily configure them using CALIBRATE_TRIGGERS however I'm trying to use RIGHT_TRIGGER_EFFECT and keep getting the error that I'm not configuring it correctly, that it is an invalid value. So I'm wondering what should the correct value be? These are what I've tried.

# RIGHT_TRIGGER_EFFECT = RESISTANCE 
# RIGHT_TRIGGER_EFFECT = RESISTANCE start[0 9] force[0 8]
# RIGHT_TRIGGER_EFFECT = start[0 9] force[0 8]
# RIGHT_TRIGGER_EFFECT = RESISTANCE start[9] force[8]
# RIGHT_TRIGGER_EFFECT = RESISTANCE start[0 9] force[0 8]: Some resistance starting at point
# RIGHT_TRIGGER_EFFECT = MACHINE start[0 9] end[0 9] force1[0 7] force2[0 7] freq[Hz] period
# RIGHT_TRIGGER_EFFECT = MACHINE

Can't install on arch linux

This is the final message after doing a makepkg -si. The one in AUR also do not install.

20 warnings and 2 errors generated. make[2]: *** [JoyShockMapper/CMakeFiles/JoyShockMapper.dir/build.make:76: JoyShockMapper/CMakeFiles/JoyShockMapper.dir/src/main.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:174: JoyShockMapper/CMakeFiles/JoyShockMapper.dir/all] Error 2 make: *** [Makefile:136: all] Error 2 ==> ERROR: A failure occurred in build(). Aborting...

CALIBRATE_TRIGGERS stops way before full press

No matter how gently I press on the trigger, the macro seems to randomly decide when it wants to stop, giving completely inconsistent results from around 100 to around 300 for range on both triggers.

Release toggle modifier on different button

Hello again.
I have a toggle crouch binding and would like to release the toggle when I jump.
While I could use S = SPACE\ !LCONTROL\, crouching for a frame every time I jump isn't ideal, and also releases my hold binding.

Rumble not working on Dualsense(PS5) controller

I am using the xbox.txt config file that comes with JSM and in console I can see RUMBLE is enabled

HELP RUMBLE
RUMBLE :
    Disable the rumbling feature from vigem. Valid values are ON and OFF.
RUMBLE
RUMBLE = ON

I have vigem bus driver installed and games recognize the controller as Xbox controller.

I have even tried this guide because I have an HP omen laptop: nefarius/ViGEmBus#99

The problem is apparently not with vigem because DS4Windows can rumble my Dualsense controller while emulating xbox controller using the same vigem drivers.

[Feature Request] More Explicit Release Event Modifiers

VirtaMancer's suggestion from the discord:

  1. "Smart On Release Modifier",
    that only runs if an Hold modifier preceded it (not necessarily immediately in the chain, but at least somewhere before it in the chain)
    or
  2. A new modifier for On Release, so you have
  • on start press no modifier
  • on release press /
  • on start hold _
  • on release hold ~

The latest build isnt building on linux

Heres the errors I get

cmake .. -DCMAKE_CXX_COMPILER=clang++ -DSDL=1 -DHIDAPI=ON && cmake --build .
-- Checking for one of the modules 'gtk+-3.0'
-- Checking for one of the modules 'appindicator3-0.1'
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:707 (message):
None of the required 'appindicator3-0.1' found
Call Stack (most recent call first):
cmake/LinuxConfig.cmake:7 (pkg_search_module)
CMakeLists.txt:8 (include)

-- Checking for one of the modules 'libevdev'
-- JSM version is vHEAD-HASH-NOTFOUND.HEAD-HASH-NOTFOUND.HEAD-HASH-NOTFOUND
-- CPM: adding package SDL2@0 (3b7649c578b1ff98fb3f1c76fc1a586fe75fb617)
CMake Warning (dev) at build/_deps/sdl2-src/cmake/macros.cmake:8 (option):
Policy CMP0077 is not set: option() honors normal variables. Run "cmake
--help-policy CMP0077" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.

For compatibility with older versions of CMake, option is clearing the
normal variable 'HIDAPI'.
Call Stack (most recent call first):
build/_deps/sdl2-src/CMakeLists.txt:414 (set_option)
This warning is for project developers. Use -Wno-dev to suppress it.

-- dynamic libasound -> libasound.so.2
-- Checking for module 'jack'
-- No package 'jack' found
-- Checking for module 'libpipewire-0.3>=0.3.20'
-- No package 'libpipewire-0.3' found
-- dynamic libpulse-simple -> libpulse-simple.so.0
-- Checking for module 'esound'
-- No package 'esound' found
-- Checking for modules 'bcm_host;brcmegl'
-- No package 'bcm_host' found
-- No package 'brcmegl' found
-- dynamic libX11 -> libX11.so.6
-- dynamic libXext -> libXext.so.6
-- dynamic libXcursor -> libXcursor.so.1
-- dynamic libXinerama -> libXinerama.so.1
-- dynamic libXi -> libXi.so.6
-- dynamic libXrandr -> libXrandr.so.2
-- dynamic libXrender -> libXrender.so.1
-- Checking for modules 'libdrm;gbm;egl'
-- No package 'libdrm' found
-- No package 'gbm' found
-- Checking for modules 'wayland-client;wayland-scanner;wayland-egl;wayland-cursor;egl;xkbcommon'
-- Found wayland-client, version 1.18.0
-- Found wayland-scanner, version 1.18.0
-- Found wayland-egl, version 18.1.0
-- Found wayland-cursor, version 1.18.0
-- Found egl, version 1.5
-- Found xkbcommon, version 0.10.0
-- Checking for module 'wayland-scanner>=1.15'
-- Found wayland-scanner, version 1.18.0
-- dynamic libwayland-client -> libwayland-client.so.0
-- dynamic libwayland-egl -> libwayland-egl.so.1
-- dynamic libwayland-cursor -> libwayland-cursor.so.0
-- dynamic libxkbcommon -> libxkbcommon.so.0
-- Checking for module 'libdecor-0'
-- No package 'libdecor-0' found
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:463 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:643 (_pkg_check_modules_internal)
build/_deps/sdl2-src/cmake/sdlchecks.cmake:701 (pkg_check_modules)
build/_deps/sdl2-src/CMakeLists.txt:1217 (CheckWayland)

-- Configuring incomplete, errors occurred!
See also "/home/linus/Downloads/JoyShockMapper-master/build/CMakeFiles/CMakeOutput.log".

STICK_AXIS_Y refuses to invert

Fairly simply, I tried adding the argument STICK_AXIS_Y = INVERTED to the end of the included _2Dmouse.txt config, and it doesn't invert. Am I doing it wrong or is it broken?

STICK_SENS = 360
STICK_POWER = 1
STICK_ACCELERATION_RATE = 2
STICK_ACCELERATION_CAP = 4
STICK_AXIS_Y = INVERTED`

Doesn't compile on Arch

I get the following compiler error:

Consolidate compiler generated dependencies of target SDL2
[  0%] Building C object _deps/sdl2-build/CMakeFiles/SDL2.dir/src/audio/pipewire/SDL_pipewire.c.o
In file included from /usr/include/pipewire-0.3/pipewire/properties.h:35,
                 from /usr/include/pipewire-0.3/pipewire/core.h:87,
                 from /usr/include/pipewire-0.3/pipewire/context.h:67,
                 from /usr/include/pipewire-0.3/pipewire/protocol.h:46,
                 from /usr/include/pipewire-0.3/pipewire/proxy.h:108,
                 from /usr/include/pipewire-0.3/pipewire/client.h:35,
                 from /usr/include/pipewire-0.3/pipewire/pipewire.h:35,
                 from /home/jlm/.cache/pacaur/joyshockmapper-git/joyshockmapper-git/src/JoyShockMapper/build/_deps/sdl2-src/src/audio/pipewire/SDL_pipewire.h:28,
                 from /home/jlm/.cache/pacaur/joyshockmapper-git/joyshockmapper-git/src/JoyShockMapper/build/_deps/sdl2-src/src/audio/pipewire/SDL_pipewire.c:29:
/usr/include/spa-0.2/spa/utils/string.h: In function ‘spa_strtof’:
/usr/include/spa-0.2/spa/utils/string.h:282:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
  282 |         locale_t prev = uselocale(locale);
      |         ^~~~~~~~
/usr/include/spa-0.2/spa/utils/string.h: In function ‘spa_strtod’:
/usr/include/spa-0.2/spa/utils/string.h:325:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
  325 |         locale_t prev = uselocale(locale);
      |         ^~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [_deps/sdl2-build/CMakeFiles/SDL2.dir/build.make:1856: _deps/sdl2-build/CMakeFiles/SDL2.dir/src/audio/pipewire/SDL_pipewire.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:226: _deps/sdl2-build/CMakeFiles/SDL2.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Cannot compile master on Fedora 35

My Setup:
OS: Fedora 35
Clang: clang version 13.0.0 (Fedora 13.0.0-3.fc35)
Make: GNU Make 4.3
cmake: cmake version 3.22.1

I get the following errors (trimmed the path for readability):

JoyShockMapper/src/main.cpp:4038:32: error: no viable conversion from '<overloaded function type>' to 'JSMVariable<AdaptiveTriggerSetting>::FilterDelegate' (aka 'function<AdaptiveTriggerSetting (AdaptiveTriggerSetting, AdaptiveTriggerSetting)>')
        left_trigger_effect.SetFilter(&filterInvalidValue);
        
JoyShockMapper/src/main.cpp:4039:33: error: no viable conversion from '<overloaded function type>' to 'JSMVariable<AdaptiveTriggerSetting>::FilterDelegate' (aka 'function<AdaptiveTriggerSetting (AdaptiveTriggerSetting, AdaptiveTriggerSetting)>')
        right_trigger_effect.SetFilter(&filterInvalidValue);

You can reproduce it in a docker container:
Start the docker container docker run -it --rm fedora bash
Then run:

sudo dnf install -y \
    git cmake clang libdecor-devel SDL2-devel libappindicator-gtk3-devel \
    libevdev-devel gtk3-devel libusb-devel hidapi-devel
git clone https://github.com/Electronicks/JoyShockMapper.git
cd JoyShockMapper
mkdir build
cd build
cmake .. -DCMAKE_CXX_COMPILER=clang++
cmake --build .

DualSense Issue: ZL/ZR not working in either JSM or ingame

Please let me say one thing first: thank you so much for developing this incredible tool!

I have the following issue:
I'm trying to set up a new PS5 DualSense Pad in Windows 10, using the ViGEmBus featured Virtual Controller (the DualSense not being supported by the games I want to use it with + to set up gyro-aim).

As soon as I either set VIRTUAL_CONTROLLER = XBOX and ZL_MODE = X_LT or VIRTUAL_CONTROLLER = DS4 and ZL_MODE = PS_L2, JSM does not register the pull of the trigger anymore (does not matter if half or full, the issue is, naturally, exactly the same with the ZR command).

Ingame, in that case, pulling the trigger does get registered - as I want to set up GYRO_ON = ZL, that unfortunately does not help.
[As without ViGEm, the controller does not get recognized by either of the games at all, I assume that the issue does not directly and only lie in the emulation.]

If I set it to any other trigger mode, it does get registered in JSM again, but not ingame, so that does not work either.

While I thought that using an alternative trigger moder + setting ZL = X_LT might do the trick but as you will already know, it does not.

I tried this in two games: Cyberpunk 2077 and FarCry 5, both behave the same way.

I unfortunately could not find anything concerning this issue in either your (really great) documentation not anywhere else online. Is this a known issue, maybe related to the DualSense pad and is there anything that can be done about it?

If this turns out to be in fact an issue with ViGEmBus I apologize! In any case I would highly appreciate a comment on this issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.