Code Monkey home page Code Monkey logo

wiipad's Introduction

Wiipad

Wiipad is a simple user-space driver written in python that allows you to use some Wii/WiiU peripherals as a gamepad or keyboard. Current supported devices are Wii Remote (the original one), Wii Remote Plus (Motion Plus inside) and WiiU Pro Controller. The Nunchuk and Classic Controller extensions are supported as well.

Author: Arturo Casal

Requirements

  • python2.7 or python3
  • PyBluez >= 0.18
  • pygi (Python GObject Instrospection needed by the gui version)

Usage

There are two flavours of wiipad: a command-line interface (cli) and a slightly graphical interface based on an app-indicator (gui).

CLI version: $ ./wiipad_cli.sh -m mapping.map (mapping.map is a file containing the mapping applied at runtime) The program will search for devices for 5 seconds at start time. Moreover, you can enable continuous scanning at start time by adding the option -s on the command line.

GUI version: $ ./wiipad.sh -m mapping.map (mapping.map is a file containing the mapping applied at runtime) Now, you can trigger device scanning by clicking on the proper indicator item. Also, you can enable continuous scanning at start time by adding the option -s on the command line.

Installation (Ubuntu)

$ sudo apt-get install python-pip
$ sudo pip install --upgrade PyBluez

If you don't have write permissions on /dev/uinput:
$ sudo cp udev_rules/90-uinput.rules /etc/udev/rules.d/
$ sudo service udev restart
Now restart the computer to apply changes and have write permission on /dev/uinput

What's not supported

  • Rumble: currently there's no rumble support. It's supported on the libwiimote side, and partially supported on the uinput side. Also, this requires rumble effect simulation code that supports the effects defined by the structs ff_constant_effect and ff_rumble_effect. Other effects can be supported but the Wii/WiiU remotes only support two states (rumble on/rumble off).

  • Wii Remote IR camera: this feature is not supported and there isn't plans for its support. This application is intended for gamepad/keyboard simulation, so it's not needed. But who knows, the door is open.

What's supported

  • Analog Sticks, Triggers, buttons, and accelerometers.
  • Dead zones for sticks/accelerometer axes.
  • Scale axis ranges.
  • Button simulation with an axis.
  • Axis simulation with a button.
  • Map Wiimote/Nunchuk shake to a button.
  • Map 2 axes to 1 axis. (positive range to one axis, and the negative range to another axis) ie: tilt left = left trigger & tilt right = right trigger

Future Work

  • Implement rumble support.
  • GUI to visualize current mapping (controller image with mapping text overlayed)

How to copy

Wiipad is free (libre) software and licensed under the terms of GNU Public License version 2 or later. In short, it means that you are free to copy, redistribute and modify this software as long as you place the derivative work under a compatible license. See COPYING for details.

wiipad's People

Contributors

berfenger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.