I'm opening this one, because this topic was closed: PS4 with Saitek X52 and Ace Combat 7 (
http://www.reasnow.com/forum/index.php?topic=2943.0 ).
Let me try to make things clear. Some games have dead zones configured inside the game, this is made in order to make the gameplay more enjoyable for controllers users., but it is a huge problem for us trying to use Reasnow S1 as a controller converter.
An example, Ace Combat has a huge dead-zone of 22 points, At the moment the value is send 1-1. Input value and output to the ps4 are the same. (eg. if you move 20 points on your stick it will send 20) to the console, if you sum this deadzone plus the flight stick natural deadzone it makes impossible to use Reasnow as a controller converter for this game.
On that closed thread, I read that Richard acknowledge this problem, but I think Austin didn't understand what I meant.
Anyway, I have two suggestions.
- In the APP:
- On the Joysticks configuration, remove the "curves" link (as that one is for "mouse" configuration) and instead include two TextBoxes, eg.:
---------
Mapping
min [ 0 ] max [ 100 ]
----------
You can implement this in the firmware using lerp (and inverse) functions.
Y = ( ( X - X1 )( Y2 - Y1) / ( X2 - X1) ) + Y1
Where,
X1, X2 = First range( on our example it could be the flight sticks or wheel),
Y2,Y2 = Second range ( the target we sent to the console, can be hard coded in the firmware),
X = current stick value,
Y = Interpolated Y value (desired).
I think this is a quite easy solution and would improve A LOT the compatibility of this device.
---
Second suggestion
Implement proper curves like betaflight does, you can have a look at their source code for ideias on how to implement that:
https://github.com/betaflight/betaflight/blob/c243e83de2c2b222fabc5997d3c1f97ed5c712cc/src/main/fc/rc.c#L213