I'm currently rewriting the program. If you're interested, see rewrite branch. I don't have an estimate for when it's gonna be done.
Grab the latest version from Releases page.
SOCD stands for simultaneous opposite cardinal direction. Basically, what'll happen if you press "left" and "right" at the same time or "left" while holding "right", and vise versa. Every game handles it differently. Some set such cases to "neutral", some have "last win", and some games just don't know what to do and do whatever.
Devices like smashbox usually have settings that you can toggle to have the behavior you want. This program basically allows you to do the same but with your keyboard. (WIP, for now the only option is "last wins").
Use it at your own caution, especially if you do competitive gaming because some communities require to use something particular and ban any other alternatives. There you go, I warned you. Enjoy!
The program is in progress, expect backwards incompatible config changes and all that. Hopefully not a big deal since there's not much to configure, but feel free to reach out to me or leave github issue if something that you were using suddenly breaks.
You can specify your custom keybindings as you first 6 rows in socd_vxx.conf
.
First 4 rows are your directions - left, right, up, down, the fifth row is the disable key, sixth row is the esc binding.
If the file doesn't exist - run the program so it creates one with the default config.
You can get numbers for your keys here,
just make sure to remove 0x
and put only the number itself.
Just clicking on "Custom" doesn't do anything for now, but it'll appear as selected automatically
after you put anything other than WASD or arrows in your socd.conf
Sometimes you don't want SOCD cleaner messing with your keyboard in some applications (like messengers). It's very inconvenient when it starts overriding A and D with each other when you're typing a word that contains both. Now it's possible to specify programs that SOCD cleaner will target when they are focused.
Currently there is no proper interface to set it up, but you can open your socd.conf
file
and add a new line per program name after your keybindings, so starting with line number 7. Program
name should be specified as its .exe file name.
If you don't specify any filenames, SOCD cleaner will just work globally.
Example socd_v008.conf
content:
41
44
57
53
45
55
hollow_knight.exe
TheMessenger.exe
oriwotw.exe
hl2.exe
Some antiviruses might complain at prebuilt executable as if it has viruses. It doesn't, but you should never run untrusted code on your machine if you don't know what you are doing.
Assuming you have Visual Studio Build Tools installed, run build.bat
from the developer shell.
Running build.bat release
will produce a release build. Consult the script source code for details.
Generally, you should be able to compile it from source with any C compiler on Windows. There is no external dependencies outside of builtin windows libraries. For example, with clang:
Download clang and run in the project root
clang -o2 socd_cleaner.c -o socd_cleaner.exe
MIT or Apache 2.0, whatever you like