313 lines
9.5 KiB
Markdown
313 lines
9.5 KiB
Markdown
|
|
Fork of <https://github.com/rpavlik/wiiuse>.
|
|
|
|
----------
|
|
|
|
|
|
WiiUse README
|
|
=============
|
|
|
|
Semi-Official Fork, located at <http://github.com/rpavlik/wiiuse>
|
|
|
|
Issue/bug tracker: <https://github.com/rpavlik/wiiuse/issues>
|
|
|
|
Mailing list: <wiiuse@librelist.com> - just email to subscribe. See
|
|
<http://librelist.com/browser/wiiuse/> for archives and
|
|
<http://librelist.com/> for more information.
|
|
|
|
Changelog: <https://github.com/rpavlik/wiiuse/blob/master/CHANGELOG.mkd>
|
|
|
|
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/>
|
|
- admiral0 and fwiine project <http://sourceforge.net/projects/fwiine/files/wiiuse/0.13/>
|
|
- Jeff Baker/Inv3rsion, LLC. <http://www.inv3rsion.com/>
|
|
- Jan Ciger - Reviatech SAS <jan.ciger@reviatech.com>
|
|
- Gabriele Randelli and the WiiC project <http://wiic.sourceforge.net/>
|
|
- Juan Sebastian Casallas <https://github.com/jscasallas/wiiuse>
|
|
- Lysann Schlegel <https://github.com/lysannkessler/wiiuse>
|
|
|
|
|
|
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 Mac: ###
|
|
|
|
- Mac OS X 10.2 or newer (to have the Mac OS X Bluetooth protocol stack)
|
|
|
|
|
|
### 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 & Mac: ###
|
|
|
|
$ mkdir build
|
|
|
|
$ 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.
|
|
|
|
If you are going to use Motion+, make sure to call wiiuse_poll or wiiuse_update
|
|
in a loop for some 10-15 seconds before enabling it. Ideally you should be checking
|
|
the status of any expansion (nunchuk) you may have connected as well.
|
|
Otherwise the extra expansion may not initialize correctly - the initialization
|
|
and calibration takes some time.
|
|
|
|
|
|
### Mac OS X
|
|
|
|
Sometimes you may not be able to connect to the device, even if it is discoverable.
|
|
If that happens open the Bluetooth Preferences, select the Nintendo device on the
|
|
list and remove it (by clicking on the minus sign). Close the Preference Pane and
|
|
try again.
|
|
|
|
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.
|
|
|
|
Known Forks/Derivative Versions
|
|
-------------------------------
|
|
The last "old upstream" version of WiiUse was 0.12. A number of projects
|
|
forked or embedded that version or earlier, making their own improvements.
|
|
A (probably incomplete) list follows, split between those whose improvements
|
|
are completed integrated into this new mainline version, and those whose
|
|
improvements have not yet been ported/merged into this version. An eventual
|
|
goal is to integrate all appropriate improvements (under the GPL 3+) back
|
|
into this mainline community-maintained "master fork" - contributions are
|
|
greatly appreciated.
|
|
|
|
### Forks that have been fully integrated: ###
|
|
- [TU Delft's version with Balance Board support](http://graphics.tudelft.nl/Projects/WiiBalanceBoard)
|
|
|
|
- Added balance board support only.
|
|
|
|
- Integrated into mainline 0.13.
|
|
|
|
### Forks not yet fully integrated: ###
|
|
- [libogc/WPAD/DevKitPro](http://wiibrew.org/wiki/Libogc)
|
|
|
|
- Started before the disappearance of the original upstream
|
|
|
|
- Focused on Wiimote use with Wii hardware
|
|
|
|
- Functions renamed, copyright statements removed
|
|
|
|
- Additional functionality unknown?
|
|
|
|
- git-svn mirror found here: <https://github.com/xloem/libogc-wiiuse>
|
|
|
|
- [fwiine](http://sourceforge.net/projects/fwiine/files/wiiuse/0.13/)
|
|
|
|
- Created an 0.13 version with some very preliminary MotionPlus support.
|
|
|
|
- Integrated into branch `fwiine-motionplus`, not yet merged pending
|
|
alternate MotionPlus merge from WiiC by Jan Ciger.
|
|
|
|
- [DolphinEmu](http://code.google.com/p/dolphin-emu/source/checkout)
|
|
|
|
- Embedded, converted to C++, drastically changed over time and
|
|
mostly unrecognizable now.
|
|
|
|
- A mostly intact version is here:
|
|
<http://code.google.com/p/dolphin-emu/source/browse/?name=2.0#git%2FExternals%2FWiiUseSrc%2FSrc>
|
|
|
|
- Added Mac support
|
|
|
|
- Added code to handle finding and pairing wiimotes on windows, see:
|
|
<http://code.google.com/p/dolphin-emu/source/browse/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp>
|
|
|
|
- Fully modified version of the IO code is here:
|
|
<http://code.google.com/p/dolphin-emu/source/browse/#git%2FSource%2FCore%2FCore%2FSrc%2FHW%2FWiimoteReal>
|
|
|
|
- [paulburton on github](https://github.com/paulburton/wiiuse)
|
|
|
|
- Added balance board support - skipped in favor of the TU Delft version.
|
|
|
|
- Added static library support - not yet added to the mainline.
|
|
|
|
- [KzMz on github)](https://github.com/KzMz/wiiuse_fork)
|
|
|
|
- Started work on speaker support.
|
|
|
|
- [WiiC](http://wiic.sourceforge.net/)
|
|
|
|
- Dramatically changed, C++ API added.
|
|
|
|
- MotionPlus support added.
|
|
|
|
- Added Mac support.
|
|
|
|
- DolphinEmu PPA: used to have a WiiUse 0.13
|
|
|
|
- Added Mac support.
|
|
|
|
- Unknown other changes - not yet investigated.
|
|
|
|
- Source package zipped up and available here:
|
|
<https://github.com/rpavlik/wiiuse/downloads>
|
|
|
|
Other Links
|
|
-----------
|
|
- Thread about MotionPlus: <http://forum.wiibrew.org/read.php?11,32585,32922>
|
|
|
|
Original project:
|
|
- SourceForge page: <http://sourceforge.net/projects/wiiuse/>
|
|
- Archived pages of the original project:
|
|
- http://web.archive.org/web/*/http://wiiuse.net/
|
|
- http://web.archive.org/web/*/http://wiiuse.sourceforge.net/
|