omnishock

🎮 Something to do with game controllers!

GPL-3.0 License

Stars
4

🎮 Omnishock

Something to do with game controllers!

Supported Hardware

Omnishock currently supports communicating with a Teensy 2.0, running either:

Support for more hardware, and more firmware variants, is planned for the future.

Prerequisites

  • Rust
  • SDL2 (v2.0.9 or later)
  • Controller emulator hardware (see above)

Mac-specific

SDL2 has broad support for many types of USB and Bluetooth gamepads on macOS, however, for Xbox 360 controllers, and for better support for Xbox One controllers, you will likely want the 360Controller driver.

Linux-specific

The version of sdl2 currently in the Debian package library is quite old (it's version 2.0.5 as of writing), so if you have trouble using certain gamepads (like the Xbox Wireless Controller, for instance), you will need to build sdl from source.

You'll likely need either permissive udev rules for your USB gamepads, or to make sure your user is in the input group. You can add your user account to the input group with the command sudo usermod --append --groups input $(whoami).

For more information specific to setting up gamepads on Linux, I recommend checking out this article on the Arch Wiki.

Building

  • git clone --recurse-submodules https://github.com/ticky/omnishock.git omnishock && cd omnishock
  • cargo build --release

Running

cargo run --release

Releasing

  1. Make sure both .travis.tml and appveyor.yml are specifying the same Rust versions
  2. Ensure that both files' deploy conditions are using that Rust version
  3. Tag & sign a version with git tag -a -s [version]
  4. Push the tag to GitHub, and watch Travis and AppVeyor cut a build