Assistance with SOCD cleaning while mapping to PS4 fightstick

Short version:
I would like to map input keyboard keys to both the D-Pad and the left thumbstick as a PS4 fightstick. To make that tournament legal in fighting games, it needs SOCD cleaning so that you can’t press right on the D-pad and left on the thumbstick at the same time (which you can do on a stock playstation controller, but which is not tournament legal on non-stock controllers).

I would also like to replace the standard HID Remapper D-pad and thumbstick neutral cleaning with last input priority for the up/down Y axis on both, and the x-axis on another (either the D-pad or the stick, but not both).

Ideally it would work on PC and PS5 via a Brook FGC2 without having to change mappings when switching between them.

Long version:
I’m using a Doio KBGM-M01-HE ( Magnetic axis audio gaming keyboard KBGM-M01-HE ) which gives keyboard outputs. I’m using the abundance of left hand and thumb buttons to map both D-Pad and left thumb stick directions. I’m hoping this is useful in game to be able to slide between two buttons with the same directional output (say D-Pad L, and stick L) to get a dash.

Stock playstation controllers have an exception under Evo controller rules for being able to press SOCD (I guess its hard to host an event on playstation and ban playstation controllers…), since I’m not using a stock playstation controller, I need to set it up to prevent SOCD (eg left on the thumbstick and right on the P-Pad). While the HID remapper automatically SOCD cleans the D-Pad, it allows for (as it probably should, to mimic an actual PS4 controller) SOCD to be pressed - one on the D-Pad and one on the stick (or both sticks). I need to fix that behaviour.

Additionally, I’d like to keep the neutral cleaning on one left/right X-axis, put last input on the other left/right x-axis, and put last input on both up/down y-axis (classic HitBox behaviour is neutral resolution for left/right, and absolute priority of up over down - last input is fine for up/down though). For Marvel crossover games (MvC2, UMvC3) superjumps (Down then Up) are cleaner with either absolute priority (UP) or last input, otherwise if you are still holding down you’ll get a slower superjump (only triggering after down is released) or none at all (Up+Down=neutral). Having the two different styles on the x-axis probably isn’t that useful, but it does mean that if I’m playing something that x-axis L/R last input is better (say Guile in any streetfighter) I have that available, while still having a a neutral x-axis L/R cleaning available for dragon punch shortcuts with other characters.

Can the HID Remapper default neutral SOCD cleaning for the D-Pad and thumbstick outputs be changed/overridden from neutral to change it to last input?

I’m currently thinking of the challenge like this: take a keyboard, have it output as a PS4 fightstick, and map WASD as D-Pad and the arrows keys as thumbstick ↑ ↓ ← →
You then need to:

  1. change SOCD cleaning on WS to last input (from HID Remapper default neutral)
  2. change SOCD cleaning on ↑ ↓ to last input (from HID Remapper default neutral)
  3. change SOCD cleaning on AD to last input (from HID Remapper default neutral)
  4. add last input SOCD cleaning to the following pairs (W ↓), (S ↑), (A ←), (A →), (D ←), (D →)
  5. (that should leave the HID Remapper neutral cleaning on ← →)

That should get us to the point where there is full SOCD cleaning, where all up/downs are last input, where the D-Pad L/R is last input, the stick L/R is neutral, and last input priority is applied when you press the same direction on both the D-Pad and the stick.

Alternatively, the same thing might be able to be achieved by having two sets of D-Pad outputs, so long as the SOCD can differentiate between different buttons that have the same output.

I’m very much a novice in this space and am going to see how well I got modifying the example keyboard SOCD cleaning for purpose. Any pointers, guidance, or confirmation of if the automatic SOCD cleaning on the D-Pad/thumbstick can’t be changed (and therefore I’m wasting my time) would be most welcome.

The only built-in SOCD cleaning is when left+right or up+down are pressed on the dpad, they cancel out (neutral). HID Remapper cannot send simultaneous opposing directions so it has to do something.

But this only kicks in if your mappings and logic behind them generate opposing directions. Since you’ll be manually implementing behaviors like last input wins or interactions between the analog stick and the dpad, you will just never generate up+down and the built-in cleaner never interferes.