Awesome
<img align="right" alt="logo" width="100" height="100" src="public/icon.png">slidershim
Software adapter for various Chunithm slider controllers with a built-in Brokenithm web controller. Has support for keyboard/gamepad output and LED lighting. Requires Windows 8 or later.
Download link | Demo Video (Brokestalgia) | UMIGURI setup instructions
<img alt="screenshot" src="res/screenshots/demo.png">Starting 0.2.0, there are reports that windows defender may block this software. You may need to disable windows defender the first time you run slidershim. If you are not comfortable with this, you can download an older version here that is known to be OK with windows defender.
Changelog
- v0.5.1
- Support SSL/wss if brokenithm used with tunnelling. Thanks @kokarare1212
- v0.5.0
- Support for Yubideck 3.0 firmware
- v0.4.3
- Make Yubideck USB reports more flexible when reading data
- v0.4.2
- Fix HORI Project Diva gamepad slider output order
- v0.4.1
- Fix misplaced checkbox label (clicking on "use DirectInput" would check "disable air" instead)
- Make Yuancon USB reports more flexible when reading data
- v0.4.0
- Add DirectInput keyboard emulation using oblitum/Interception
- Add slide LED support for some controllers
- v0.3.1
- Fix wrong key in UMIGURI keyboard layout
- v0.3.0
- Add UMIGURI LED controller server support
- Add UMIGURI default keyboard layout
- v0.2.8
- Add slider only layout (no buttons) for Project Diva gamepad output
- Add options button to Project Diva gamepad output
- v0.2.7
- Add HORI Project Diva gamepad output and lighting mode
- v0.2.6
- Add Yubideck controller support
- Add option to change Brokenithm sever port
- v0.2.5
- Add 6k and 4k keyboard output options
- Add settings for reactive LED colors
- v0.2.4
- Restore support for older tablet devices for brokenithm by compiling brokenithm JS with older babel preset
- Fix keys staying pressed even after brokenithm controller is closed
- New Brokestalgia 28k web touch controller option
- v0.2.3
- Fix first and last buttons not working with brokenithm
- Add option to disable air strings for controllers
- Add option to slow down lighting updates
- v0.2.2
- Retcon serial slider name
- Fix crash on some systems due to time math
- Add link to repo
- v0.2.1
- Reactive + Rainbow mode
- Fixed byte order for serial slider lights
- v0.2.0
- Added support for serial slider protocol
- Added 16 key keyboard layout
- v0.1.4
- Initial public release
Setup Instructions
- Download here
- Run the msi installer (recommended for first run) or extract zip to any location you like.
- Run
slidershim.exe
. - Pick your input device, output method and preferred lighting.
- Click apply.
- ???
- Profit!
Extra Pointers
- Less resources are used when the configuration window is hidden.
- Un-hide the configuration window from the system tray.
- For gamepad output, you will need to install ViGEmBus for it to work.
- For serial LED input, you may need to install com0com to bridge slidershim with the LED data stream.
Brokenithm Setup
- Set the device option to "Brokenithm" and apply.
- Allow firewall access to
slidershim.exe
For more info on setting up firewall, check out instructions at brokenithm-kb
- Connect a touch device to the same wifi or local network as your windows machine
Windows hotspot works too, but make sure to give "public" firewall access
- Open the web controller in your touch device web browser. One of the links should work.
- Either manually type in the IP address if you know what IP it is;
- Or scan the generated "Broknenithm QR" to get a list of clickable links and save some typing.
- (Optional) Add the webpage to home screen and/or enable guided access to avoid accidentally exiting the web controller.
Output Layouts
Voltex layout disables air tower, Neardayo layout enables air tower.
Troubleshooting
<details> <summary><strong>slidershim crashes when I am running it for the first time</strong></summary>- Use the .msi installer file instead of the .zip. You may be missing some windows addons that the installer will take care of (specifically Edge WebView).
- slidershim supports the GAMO2 Tasoller, Yuancon Laverita v2 and ZhouSensor 大四 / Yubideck controllers on HID firmware.
- If you are using a Tasoller controller, make sure it has the correct HID firmware installed.
- If your hardware controller is not one of these, it will not work.
- If you have a device that communicates using serial protocol, chances are it will work with the "Slider over Serial" option
- Hotplug is not supported. If you plugged in the controller after starting slidershim, re-connect your controller by just clicking the "Apply" button (even if it is grey).
- Adjust the sensitivity options.
- The higher the number, the harder it is for keyboard buttons to be pressed.
- Increase output polling rate. This does not change how fast your controller is updated, but it does reduce lag with keyboard / XBOX controller simulation.
- Make sure that you can load the controller in your web browser from the same windows machine that is running slidershim.
- Close the windows machine web browser afterwards once you have tested it.
- Double check that your tablet device is connected to the same wifi or local network.
- Try restarting slidershim.
- Applying changes to the slidershim configuration will reset the brokenithm controller.
- Refresh the web page or force-stop the controller from your tablet device's task switcher and re-open the controller.
- I'm not sure why this happens. I suspect some cases are because of windows defender and other antivirus software stopping the process while running.
- Try disabling antivirus or using an older version of slidershim.
- Join the Cons&Stuff Discord and ping me there.
- Try to bring your logs.
Technical Information
- Built with Rust, tauri + Svelte, rusb, vigem-client, hyper, tokio-tungstenite, serialport, dtolnay/cxx, wjwwood/serial, oblitum/Interception and bozbez/interception-rs
- USB device and serial polling is done on a dedicated thread while everything else is done on a async runtime.
Building from Source
- Install Visual Studio Community 2019/2022 with C++ developer kit
- Install rustup with nightly toolchain
- Install node.js and yarn
- (Optional) Setup VSCode with rust-analyzer
- Clone this repository
- (Optional) If using powershell,
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
to whitelistyarn
script yarn install
yarn tauri dev
/yarn tauri build
Repository Layout
public
/src
: Svelte frontendsrc-tauri
: Tauri adapter between frontend and backendsrc-slider_io
: Backend logic for handling usb, brokenithm, output emulation and lighting.src-wwserial
: FFI to wjwwood/serial using dtolnay/cxx. For some reason serialport does not work well with hardware devices, so we use this as an alternative.src-interception
: Vendored bozbez/interception-rs that statically links against oblitum/Interception for DirectInput keyboard emulation.res
: Miscellaneous tools such as Brokenithm QR parser and keyboard layout visualisation.
Planned Features
- Major:
- ✅ DONE: Support AC slider serial protocol
- ✅ DONE: Output and LED websocket adapters when UMIGURI comes out
- QOL:
- Documentation
- Comprehensive logging and error handling