Folders in this repository:
stick/
: The Stick crate.sdb/
: The Stick Public Domain database of controllers (not limited to game controllers).gcdb/
: Git Submodule to grab optional SDL mappings from.xtask/
: Scripts run withcargo-xtask
.
Stick uses the xtask repository model to have various scripts written in Rust process controller data, also allowing serde to not be a direct dependency.
cargo xtask
,cargo xtask --help
- Print helpcargo xtask sdb
- Generate the embeddable bytecode databases.
File names are 64-bit hexadecimal values with leading zeros followed by .toml
within a folder referring to the platform.
name = "My Controller Name"
type = "xbox"
[remap]
TriggerR = {} # Ignore events
TriggerL = {}
HatUp = "Up" # Map hat to dpad when you're not using a flightstick
HatDown = "Down"
HatLeft = "Left"
HatRight = "Right"
CamX = { event = "CamX", deadzone = 0.075 } # Adjust deadzones
CamY = { event = "CamY", deadzone = 0.075 }
JoyZ = { event = "TriggerR", max = 1024 } # Set higher-precision axis ranges (usually 255)
CamZ = { event = "TriggerL", max = 1024 }
Type can be any of the following:
xbox
- An Xbox Gamepad (W3 Standard Gamepad Compliant)flight
- A Flightstickplaystation
- A PlayStation Gamepad (W3 Standard Gamepad Compliant)nintendo
- A Nintendo Gamepad (W3 Standard Gamepad Compliant)
Licensed under any of
- Apache License, Version 2.0, (LICENSE_APACHE_2_0.txt or https://www.apache.org/licenses/LICENSE-2.0)
- MIT License, (LICENSE_MIT.txt or https://mit-license.org/)
- Boost Software License, Version 1.0, (LICENSE_BOOST_1_0.txt or https://www.boost.org/LICENSE_1_0.txt)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as described above, without any additional terms or conditions.
If you want help using or contributing to this library, feel free to send me an email at aldaronlau@gmail.com.