193 lines
5.4 KiB
Markdown
193 lines
5.4 KiB
Markdown
WiiUse README
|
|
=============
|
|
|
|
Fork, located at <http://github.com/rpavlik/wiiuse>
|
|
|
|
Changelog: <https://github.com/rpavlik/wiiuse/blob/master/CHANGELOG.mkd>
|
|
|
|
Original project:
|
|
|
|
- <http://wiiuse.net/>
|
|
- <http://wiiuse.sourceforge.net/>
|
|
- <http://sourceforge.net/projects/wiiuse/>
|
|
|
|
|
|
About
|
|
-----
|
|
|
|
Wiiuse is a library written in C that connects with several Nintendo
|
|
Wii remotes. Supports motion sensing, IR tracking, nunchuk, classic
|
|
controller, Balance Board, and the Guitar Hero 3 controller. Single
|
|
threaded and nonblocking makes a light weight and clean API.
|
|
|
|
Distributed under the GPL 3+.
|
|
|
|
This is a friendly fork, prompted by apparent non-maintained status
|
|
of upstream project but proliferation of ad-hoc forks without
|
|
project infrastructure. Balance board support has been merged from
|
|
[TU-Delft][1] cross-referenced with other similar implementations in
|
|
embedded forks of WiiUse in other applications. Additional community
|
|
contributions have since been merged. Hopefully GitHub will help the
|
|
community maintain this project more seamlessly now.
|
|
|
|
Patches and improvements are greatly appreciated - the easiest way
|
|
to submit them is to fork the repository on GitHub and make the
|
|
changes, then submit a pull request. The "fork and edit this file"
|
|
button on the web interface should make this even simpler.
|
|
|
|
[1]: http://graphics.tudelft.nl/Projects/WiiBalanceBoard
|
|
|
|
|
|
Authors
|
|
-------
|
|
|
|
Fork Maintainer: Ryan Pavlik <rpavlik@iastate.edu> or <abiryan@ryand.net>
|
|
|
|
Original Author: Michael Laforest < para > < thepara (--AT--) g m a i l [--DOT--] com >
|
|
|
|
Additional Contributors:
|
|
|
|
- dhewg
|
|
- Christopher Sawczuk @ TU-Delft (initial Balance Board support)
|
|
- Paul Burton <https://github.com/paulburton/wiiuse>
|
|
- Karl Semich <https://github.com/xloem>
|
|
- Johannes Zarl <johannes.zarl@jku.at>
|
|
- hartsantler <http://code.google.com/p/rpythonic/>
|
|
- Jeff Baker/Inv3rsion, LLC. <http://www.inv3rsion.com/>
|
|
|
|
|
|
License
|
|
-------
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
Audience
|
|
--------
|
|
This project is intended for developers who wish to include support
|
|
for the Nintendo Wii remote with their third party application.
|
|
|
|
|
|
Platforms and Dependencies
|
|
--------------------------
|
|
Wiiuse currently operates on both Linux and Windows. You will need:
|
|
|
|
### For Linux: ###
|
|
|
|
- The kernel must support bluetooth
|
|
|
|
- The BlueZ bluetooth drivers must be installed
|
|
|
|
- If compiling, you'll need the BlueZ dev files (Debian/Ubuntu package
|
|
libbluetooth-dev)
|
|
|
|
|
|
### For Windows: ###
|
|
|
|
- Bluetooth driver (tested with Microsoft's stack with Windows XP SP2)
|
|
|
|
- If compiling, Microsoft Windows Driver Development Kit (DDK)
|
|
|
|
|
|
### For either platform: ###
|
|
|
|
- If compiling, [CMake](http://cmake.org) is needed to generate a makefile/project
|
|
|
|
|
|
Compiling
|
|
---------
|
|
You need SDL and OpenGL installed to compile the (optional) SDL example.
|
|
|
|
### Linux: ###
|
|
|
|
$ cd build
|
|
|
|
$ ccmake .. [-DCMAKE_INSTALL_PREFIX=/usr/local] [-DCMAKE_BUILD_TYPE=Release]
|
|
|
|
OR
|
|
|
|
$ cmake-gui ..
|
|
|
|
$ make [target]
|
|
|
|
If `target` is omitted then everything is compiled.
|
|
|
|
Where `target` can be any of the following:
|
|
|
|
- *wiiuse* - Compiles `libwiiuse.so`
|
|
|
|
- *wiiuseexample* - Compiles `wiiuse-example`
|
|
|
|
- *wiiuseexample-sdl* - Compiles `wiiuse-sdl`
|
|
|
|
- *doc* - Generates doxygen-based API documentation in HTML and PDF
|
|
format in `docs-generated`
|
|
|
|
Become root.
|
|
|
|
# make install
|
|
|
|
`libwiiuse.so` is installed to `CMAKE_INSTALL_PREFIX/lib`
|
|
`wiiuse-example` and `wiiuse-sdl` are installed to `CMAKE_INSTALL_PREFIX/bin`
|
|
|
|
|
|
### Windows: ###
|
|
|
|
The CMake GUI can be used to generate a Visual Studio solution.
|
|
|
|
You need the install the Windows DDK (driver development kit) to compile
|
|
wiiuse. You can download this from here:
|
|
<http://www.microsoft.com/whdc/devtools/ddk/default.mspx>
|
|
|
|
You might also need to install the latest Windows SDK.
|
|
|
|
|
|
Using the Library
|
|
-----------------
|
|
|
|
To use the library in your own program you must first compile wiiuse as
|
|
a module. Include `include/wiiuse.h` in any file that uses wiiuse.
|
|
|
|
For Linux you must link `libwiiuse.so` ( `-lwiiuse` ). For Windows you
|
|
must link `wiiuse.lib`. When your program runs it will need
|
|
`wiiuse.dll`.
|
|
|
|
|
|
Known Issues
|
|
------------
|
|
|
|
On Windows using more than one wiimote (usually more than two wiimotes)
|
|
may cause significant latency.
|
|
|
|
Acknowledgements by Michael Laforest
|
|
------------------------------------
|
|
<http://wiibrew.org/>
|
|
|
|
> This site and their users have contributed an immense amount of
|
|
> information about the wiimote and its technical details. I could
|
|
> not have written this program without the vast amounts of
|
|
> reverse engineered information that was researched by them.
|
|
|
|
Nintendo
|
|
|
|
> Of course Nintendo for designing and manufacturing the Wii and Wii remote.
|
|
|
|
BlueZ
|
|
|
|
> Easy and intuitive bluetooth stack for Linux.
|
|
|
|
Thanks to Brent for letting me borrow his Guitar Hero 3 controller.
|
|
|
|
|