Change markdown extension from mkd to md

This commit is contained in:
2014-10-29 22:21:50 +00:00
parent ae542911b6
commit 89c35c37c4
2 changed files with 722 additions and 722 deletions

View File

@@ -1,417 +1,417 @@
WiiUse Changelog WiiUse Changelog
================ ================
Fork, located at <http://github.com/rpavlik/wiiuse> Fork, located at <http://github.com/rpavlik/wiiuse>
Original project: Original project:
- <http://wiiuse.net/> - <http://wiiuse.net/>
- <http://wiiuse.sourceforge.net/> - <http://wiiuse.sourceforge.net/>
- <http://sourceforge.net/projects/wiiuse/> - <http://sourceforge.net/projects/wiiuse/>
v0.15 -- ??? v0.15 -- ???
------------ ------------
Added: Added:
- Callback API with constant-size wiimote_callback_data_t. - Callback API with constant-size wiimote_callback_data_t.
Added to more easily support a ctypes python binding, generated Added to more easily support a ctypes python binding, generated
by and included with RPythonic http://code.google.com/p/rpythonic/ by and included with RPythonic http://code.google.com/p/rpythonic/
Thanks to hartsantler for this feature. Thanks to hartsantler for this feature.
- Ability to build as a static library - must define WIIUSE_STATIC in - Ability to build as a static library - must define WIIUSE_STATIC in
client app as well as choosing the appropriate option when building client app as well as choosing the appropriate option when building
WiiUse. The default is still a shared library (dll/so). Merged from WiiUse. The default is still a shared library (dll/so). Merged from
paulburton and added to build system. paulburton and added to build system.
- Initial MotionPlus support. Thanks to admiral0 for the initial pull - Initial MotionPlus support. Thanks to admiral0 for the initial pull
request merging from fwiine, and to Jan Ciger Reviatech SAS for building request merging from fwiine, and to Jan Ciger Reviatech SAS for building
on it with fwiine and WiiC code as well as additional code. Try it out on it with fwiine and WiiC code as well as additional code. Try it out
in the example by pressing 1 to start and 2 to stop. in the example by pressing 1 to start and 2 to stop.
- Full Mac support using Apple's native Bluetooth stack, based on [wiic](http://wiic.sourceforge.net/). - Full Mac support using Apple's native Bluetooth stack, based on [wiic](http://wiic.sourceforge.net/).
Fixed: Fixed:
- Properly disable rumbling when told to. Thanks to Jeff Baker from - Properly disable rumbling when told to. Thanks to Jeff Baker from
(Inv3rsion, LLC.)(http://www.inv3rsion.com/) (Inv3rsion, LLC.)(http://www.inv3rsion.com/)
- Builds properly now on mingw (both cross-compile and native). - Builds properly now on mingw (both cross-compile and native).
- Improved reliability on Windows when running an app twice without dis-connecting - Improved reliability on Windows when running an app twice without dis-connecting
the Wiimote (came as a part of the MotionPlus support.) the Wiimote (came as a part of the MotionPlus support.)
Changed: Changed:
- Improved header includes using feedback from (include-what-you-use)[iwyu] - Improved header includes using feedback from (include-what-you-use)[iwyu]
- Additional internal function `wiiuse_millisleep()` to reduce the number - Additional internal function `wiiuse_millisleep()` to reduce the number
of `ifdef`s scattered through the code. of `ifdef`s scattered through the code.
- Provide endianness-conversion and buffer/unbuffer functions, rather than - Provide endianness-conversion and buffer/unbuffer functions, rather than
a jumble of function-style macros and raw type punning. This should a jumble of function-style macros and raw type punning. This should
fix all aliasing warnings. fix all aliasing warnings.
[iwyu]:http://code.google.com/p/include-what-you-use/ [iwyu]:http://code.google.com/p/include-what-you-use/
v0.14 -- 2 May 2011 v0.14 -- 2 May 2011
------------------- -------------------
Added: Added:
- Support for redirecting or disabling messages: function - Support for redirecting or disabling messages: function
`wiiuse_set_output` in `wiiuse.h`. The preprocessor symbol `wiiuse_set_output` in `wiiuse.h`. The preprocessor symbol
`WIIUSE_HAS_OUTPUT_REDIRECTION` indicates the presence of this feature. `WIIUSE_HAS_OUTPUT_REDIRECTION` indicates the presence of this feature.
Thanks to Johannes Zarl for this handy feature! Thanks to Johannes Zarl for this handy feature!
- Doxyfile and "doc" target to the build system, to easily make use of - Doxyfile and "doc" target to the build system, to easily make use of
the documentation already in the code, along with doc cleanups and the documentation already in the code, along with doc cleanups and
improvements. (rp) improvements. (rp)
- Added balance board code to example (Paul Burton, rp) - Added balance board code to example (Paul Burton, rp)
Fixed: Fixed:
- Off-by-two overflow in IR dot ordering - thanks to Karl Semich (xloem on GitHub) - Off-by-two overflow in IR dot ordering - thanks to Karl Semich (xloem on GitHub)
- Documentation typo fix - thanks to Johannes Zarl - Documentation typo fix - thanks to Johannes Zarl
- Check malloc results. (rp) - Check malloc results. (rp)
- Initialize an array entirely. (rp) - Initialize an array entirely. (rp)
- Fixed reading of balance board data. (rp) - Fixed reading of balance board data. (rp)
Changed: Changed:
- Cleaned up README. (rp) - Cleaned up README. (rp)
- Removed references to the LGPL/noncommercial license, since it's - Removed references to the LGPL/noncommercial license, since it's
confusing and not useful in a practical sense. See, e.g., confusing and not useful in a practical sense. See, e.g.,
<http://lists.fedoraproject.org/pipermail/legal/2010-November/001470.html> <http://lists.fedoraproject.org/pipermail/legal/2010-November/001470.html>
- Renamed bundled workaround stdint.h header for Visual Studio, which - Renamed bundled workaround stdint.h header for Visual Studio, which
we still have to use on MSVC 2010 for some unknown reason. (rp) we still have to use on MSVC 2010 for some unknown reason. (rp)
v0.13.1 -- 11 November 2010 v0.13.1 -- 11 November 2010
--------------------------- ---------------------------
Fixed: Fixed:
- Fix crashers due to unchecked pointer use. - Fix crashers due to unchecked pointer use.
- [Windows] Fix crashers due to unchecked pointer use. - [Windows] Fix crashers due to unchecked pointer use.
v0.13 -- 11 November 2010 v0.13 -- 11 November 2010
------------------------- -------------------------
Added: Added:
- Support for Wii Balance Board ("wiiboard"): your code can - Support for Wii Balance Board ("wiiboard"): your code can
`#ifdef EXP_WII_BOARD` (support based in part on code from TU-Delft) `#ifdef EXP_WII_BOARD` (support based in part on code from TU-Delft)
- CMake-based cross-platform build system - CMake-based cross-platform build system
- Version defines in `wiiuse.h` - Version defines in `wiiuse.h`
Fixed: Fixed:
- [Linux] Bluez issue with not initializing structure on newer kernels - [Linux] Bluez issue with not initializing structure on newer kernels
- Use `stdint.h` types for guaranteed type size independent of platform - Use `stdint.h` types for guaranteed type size independent of platform
- Bundle a suitable `stdint.h` for MSVC builds - Bundle a suitable `stdint.h` for MSVC builds
- Setting IR to off before handshake complete actually respected now. - Setting IR to off before handshake complete actually respected now.
(fix via Harald <Gotterdammerung@web.de>) (fix via Harald <Gotterdammerung@web.de>)
Changed: Changed:
- Old makefiles and Visual Studio projects removed. - Old makefiles and Visual Studio projects removed.
- CMake allows easy building of binary packages with a uniform - CMake allows easy building of binary packages with a uniform
directory structure: .dll/.exe in bin, .lib/.so in lib, .h in directory structure: .dll/.exe in bin, .lib/.so in lib, .h in
include. include.
v0.12 -- 2 Apr 2008 v0.12 -- 2 Apr 2008
------------------- -------------------
Added: Added:
- API function `wiiuse_set_ir_sensitivity()` - API function `wiiuse_set_ir_sensitivity()`
- Macro `WIIUSE_GET_IR_SENSITIVITY()` - Macro `WIIUSE_GET_IR_SENSITIVITY()`
- Event type `WIIUSE_READ_DATA` - Event type `WIIUSE_READ_DATA`
- Event type `WIIUSE_UNEXPECTED_DISCONNECT` - Event type `WIIUSE_UNEXPECTED_DISCONNECT`
Fixed: Fixed:
- [Linux] Ability to try to `select()` nothing - [Linux] Ability to try to `select()` nothing
- [Linux] Changed Makefile to include debug output when compiling in debug mode - [Linux] Changed Makefile to include debug output when compiling in debug mode
Changed: Changed:
- `wiiuse_set_nunchuk_orient_threshold()` now takes a`wiimote_t` pointer - `wiiuse_set_nunchuk_orient_threshold()` now takes a`wiimote_t` pointer
- `wiiuse_set_nunchuk_accel_threshold()` now takes a `wiimote_t` pointer - `wiiuse_set_nunchuk_accel_threshold()` now takes a `wiimote_t` pointer
- `wiiuse_read_data()` generates an event `WIIUSE_READ_DATA` rather than - `wiiuse_read_data()` generates an event `WIIUSE_READ_DATA` rather than
executing a callback executing a callback
v0.11 -- 25 Feb 2008 v0.11 -- 25 Feb 2008
-------------------- --------------------
Added: Added:
- API function `wiiuse_set_nunchuk_orient_threshold()` - API function `wiiuse_set_nunchuk_orient_threshold()`
- API function `wiiuse_set_nunchuk_accel_threshold()` - API function `wiiuse_set_nunchuk_accel_threshold()`
- Event type `WIIUSE_NUNCHUK_INSERTED` - Event type `WIIUSE_NUNCHUK_INSERTED`
- Event type `WIIUSE_NUNCHUK_REMOVED` - Event type `WIIUSE_NUNCHUK_REMOVED`
- Event type `WIIUSE_CLASSIC_CTRL_INSERTED` - Event type `WIIUSE_CLASSIC_CTRL_INSERTED`
- Event type `WIIUSE_CLASSIC_CTRL_REMOVED` - Event type `WIIUSE_CLASSIC_CTRL_REMOVED`
- Event type `WIIUSE_GUITAR_HERO_3_CTRL_INSERTED` - Event type `WIIUSE_GUITAR_HERO_3_CTRL_INSERTED`
- Event type `WIIUSE_GUITAR_HERO_3_CTRL_REMOVED` - Event type `WIIUSE_GUITAR_HERO_3_CTRL_REMOVED`
Fixed: Fixed:
- Added some missing function prototypes to wiiuse.h - Added some missing function prototypes to wiiuse.h
- [Linux] Fixed Makefile to link libmath and libbluetooth - [Linux] Fixed Makefile to link libmath and libbluetooth
- Status event is set when a status report comes in - Status event is set when a status report comes in
- Orientation threshold not being saved in lstate - Orientation threshold not being saved in lstate
v0.10 -- 11 Feb 2008 v0.10 -- 11 Feb 2008
-------------------- --------------------
Added: Added:
- Real dynamic linking (by noisehole) - Real dynamic linking (by noisehole)
- Changed from callback to SDL style - Changed from callback to SDL style
- Guitar Hero 3 controller support - Guitar Hero 3 controller support
- API function `wiiuse_set_accel_threshold()` - API function `wiiuse_set_accel_threshold()`
- API function `wiiuse_version()` - API function `wiiuse_version()`
- Macro `WIIUSE_USING_SPEAKER()` - Macro `WIIUSE_USING_SPEAKER()`
- Macro `WIIUSE_IS_LED_SET(wm, num)` - Macro `WIIUSE_IS_LED_SET(wm, num)`
- `wiiuse_init()` now autogenerates unids - `wiiuse_init()` now autogenerates unids
- `orient_t::a_roll/a_pitch` - `orient_t::a_roll/a_pitch`
- `wiiuse_resync()` - `wiiuse_resync()`
- `wiiuse_cleanup()` - `wiiuse_cleanup()`
- `wiiuse_set_timeout()` - `wiiuse_set_timeout()`
Fixed: Fixed:
- [Windows] Fixed bug where it did not detect expansions on startup - [Windows] Fixed bug where it did not detect expansions on startup
- Renamed `INFO/WARNING/DEBUG` macros to `WIIUSE_*` (by noisehole) - Renamed `INFO/WARNING/DEBUG` macros to `WIIUSE_*` (by noisehole)
- Updated Makefiles (by noisehole) - Updated Makefiles (by noisehole)
- Fixed incorrect roll/pitch when smoothing was enabled - Fixed incorrect roll/pitch when smoothing was enabled
- Fixed nunchuk and classic controller flooding events when significant changes occurred - Fixed nunchuk and classic controller flooding events when significant changes occurred
- Fixed bug where IR was not correct on roll if IR was enabled before handshake - Fixed bug where IR was not correct on roll if IR was enabled before handshake
Removed: Removed:
- `wiiuse_startup()`, no longer needed - `wiiuse_startup()`, no longer needed
v0.9 -- 3 Nov 2007 v0.9 -- 3 Nov 2007
------------------ ------------------
Fixed: Fixed:
- Can now use `include/wiiuse.h` in C++ projects. - Can now use `include/wiiuse.h` in C++ projects.
- HOME button works again. - HOME button works again.
- IR now functions after expansion is connected or removed. - IR now functions after expansion is connected or removed.
v0.8 -- 27 Oct 2007 v0.8 -- 27 Oct 2007
------------------- -------------------
Changed: Changed:
- Bumped API version to 8 - Bumped API version to 8
- Exported all API functions for usage with non-C/C++ languages. - Exported all API functions for usage with non-C/C++ languages.
- Changed event callback to only trigger if a significant state change - Changed event callback to only trigger if a significant state change
occurs. occurs.
Added: Added:
- `wiimote_t::lstate` structure - `wiimote_t::lstate` structure
Fixed: Fixed:
- Bug 1820140 - Buffer overflow in `io_nix.c`. Thanks proppy. - Bug 1820140 - Buffer overflow in `io_nix.c`. Thanks proppy.
v0.7 -- 19 Oct 2007 v0.7 -- 19 Oct 2007
------------------- -------------------
Changed: Changed:
- Bumped API version to 7 - Bumped API version to 7
- Renamed Linux build from `wii.so` to `wiiuse.so` - Renamed Linux build from `wii.so` to `wiiuse.so`
- Changed version representation from float to const char*. - Changed version representation from float to const char*.
Added: Added:
- [Windows] BlueSoleil support. - [Windows] BlueSoleil support.
- [Windows] Bluetooth stack auto-detection (WinXP SP2, Bluesoleil, - [Windows] Bluetooth stack auto-detection (WinXP SP2, Bluesoleil,
Widdcomm tested). Widdcomm tested).
- [Windows] API function `wiiuse_set_bluetooth_stack()`. - [Windows] API function `wiiuse_set_bluetooth_stack()`.
- Calculates yaw if IR tracking is enabled. - Calculates yaw if IR tracking is enabled.
Fixed: Fixed:
- [Windows] Problem where a connection is made to a wiimote that does - [Windows] Problem where a connection is made to a wiimote that does
not exist. not exist.
- [Windows] Issue that occurred while using multiple wiimotes. - [Windows] Issue that occurred while using multiple wiimotes.
v0.6 -- 16 Oct 2007 v0.6 -- 16 Oct 2007
------------------- -------------------
Changed: Changed:
- Bumped API version to 0.6. - Bumped API version to 0.6.
- Ported to Microsoft Windows. - Ported to Microsoft Windows.
- Improved IR tracking. - Improved IR tracking.
- Default IR virtual screen resolutions changed depending on 16:9 or 4:3. - Default IR virtual screen resolutions changed depending on 16:9 or 4:3.
Added: Added:
- `src/msvc/` and `api/msvc/` - Microsoft Visual C++ 6.0 project files. - `src/msvc/` and `api/msvc/` - Microsoft Visual C++ 6.0 project files.
v0.5 -- 13 Oct 2007 v0.5 -- 13 Oct 2007
------------------- -------------------
Changed: Changed:
- Bumped API version to 0.5. - Bumped API version to 0.5.
- Greatly improved IR tracking. - Greatly improved IR tracking.
- Renamed function `wiiuse_set_ir_correction()` to `wiiuse_set_ir_position()`. - Renamed function `wiiuse_set_ir_correction()` to `wiiuse_set_ir_position()`.
Added: Added:
- API function `wiiuse_set_aspect_ratio()` - API function `wiiuse_set_aspect_ratio()`
Fixed: Fixed:
- When rolling around 180 degree rotation smoothing would not be seemless. - When rolling around 180 degree rotation smoothing would not be seemless.
v0.4 -- 08 Oct 2007 v0.4 -- 08 Oct 2007
------------------- -------------------
Changed: Changed:
- Bumped API version to 0.4. - Bumped API version to 0.4.
- Greatly improved classic controller joystick functionality. - Greatly improved classic controller joystick functionality.
- Changed all functions named `wiimote_*()` to `wiiuse_*()` - Changed all functions named `wiimote_*()` to `wiiuse_*()`
- Renamed many macros from `WIIMOTE_*` to `WIIUSE_*` - Renamed many macros from `WIIMOTE_*` to `WIIUSE_*`
Added: Added:
- IR support - IR support
- New `WIIMOTE_CONTINUOUS` flag to set continuous reporting - New `WIIMOTE_CONTINUOUS` flag to set continuous reporting
- Macro `IS_JUST_PRESSED()` - Macro `IS_JUST_PRESSED()`
- Macro `WIIUSE_USING_ACC()` - Macro `WIIUSE_USING_ACC()`
- Macro `WIIUSE_USING_EXP()` - Macro `WIIUSE_USING_EXP()`
- Macro `WIIUSE_USING_IR()` - Macro `WIIUSE_USING_IR()`
- API function `wiiuse_set_ir()` - API function `wiiuse_set_ir()`
- API function `wiiuse_set_ir_vres()` - API function `wiiuse_set_ir_vres()`
- API function `wiiuse_set_ir_correction()` - API function `wiiuse_set_ir_correction()`
- `gfx/` - A small OpenGL example that renders IR data - `gfx/` - A small OpenGL example that renders IR data
Fixed: Fixed:
- Sometimes classic controller would only report infinite angle and magnitude for joysticks. - Sometimes classic controller would only report infinite angle and magnitude for joysticks.
v0.3 -- 10 Sept 2007 v0.3 -- 10 Sept 2007
-------------------- --------------------
Changed: Changed:
- Moved license to GPLv3. - Moved license to GPLv3.
- Bumped API version to 0.3. - Bumped API version to 0.3.
Added: Added:
- Support for Classic Controller - Support for Classic Controller
- Smoothing for roll and pitch values of the wiimote and nunchuk. - Smoothing for roll and pitch values of the wiimote and nunchuk.
- API: `wiimote_set_flags()` to set or disable wiimote options. - API: `wiimote_set_flags()` to set or disable wiimote options.
- API: `wiimote_set_smooth_alpha()` to set smoothing alpha value. - API: `wiimote_set_smooth_alpha()` to set smoothing alpha value.
Fixed: Fixed:
- When the wiimote accelerates the roll or pitch is unreliable and was - When the wiimote accelerates the roll or pitch is unreliable and was
set to 0. It now remains at previous tilt value. set to 0. It now remains at previous tilt value.
- If no event callback was specified then no events would be processed - If no event callback was specified then no events would be processed
internally. internally.
v0.2 -- 25 Aug 2007 v0.2 -- 25 Aug 2007
------------------- -------------------
Changed: Changed:
- Bumped API version to 0.2. - Bumped API version to 0.2.
Added: Added:
- Nunchuk support. - Nunchuk support.
- Ability to write to flash memory. - Ability to write to flash memory.
Fixed: Fixed:
- Roll and pitch rotation now ranges from -180 to 180 degrees - Roll and pitch rotation now ranges from -180 to 180 degrees
(previously -90 to 90). (previously -90 to 90).
- Bug when reading data from flash memory would read wrong address. - Bug when reading data from flash memory would read wrong address.
v0.1 -- 23 Feb 2007 v0.1 -- 23 Feb 2007
------------------- -------------------
- Initial release - Initial release

View File

@@ -1,306 +1,306 @@
WiiUse README WiiUse README
============= =============
Semi-Official Fork, located at <http://github.com/rpavlik/wiiuse> Semi-Official Fork, located at <http://github.com/rpavlik/wiiuse>
Issue/bug tracker: <https://github.com/rpavlik/wiiuse/issues> Issue/bug tracker: <https://github.com/rpavlik/wiiuse/issues>
Mailing list: <wiiuse@librelist.com> - just email to subscribe. See Mailing list: <wiiuse@librelist.com> - just email to subscribe. See
<http://librelist.com/browser/wiiuse/> for archives and <http://librelist.com/browser/wiiuse/> for archives and
<http://librelist.com/> for more information. <http://librelist.com/> for more information.
Changelog: <https://github.com/rpavlik/wiiuse/blob/master/CHANGELOG.mkd> Changelog: <https://github.com/rpavlik/wiiuse/blob/master/CHANGELOG.mkd>
About About
----- -----
Wiiuse is a library written in C that connects with several Nintendo Wiiuse is a library written in C that connects with several Nintendo
Wii remotes. Supports motion sensing, IR tracking, nunchuk, classic Wii remotes. Supports motion sensing, IR tracking, nunchuk, classic
controller, Balance Board, and the Guitar Hero 3 controller. Single controller, Balance Board, and the Guitar Hero 3 controller. Single
threaded and nonblocking makes a light weight and clean API. threaded and nonblocking makes a light weight and clean API.
Distributed under the GPL 3+. Distributed under the GPL 3+.
This is a friendly fork, prompted by apparent non-maintained status This is a friendly fork, prompted by apparent non-maintained status
of upstream project but proliferation of ad-hoc forks without of upstream project but proliferation of ad-hoc forks without
project infrastructure. Balance board support has been merged from project infrastructure. Balance board support has been merged from
[TU-Delft][1] cross-referenced with other similar implementations in [TU-Delft][1] cross-referenced with other similar implementations in
embedded forks of WiiUse in other applications. Additional community embedded forks of WiiUse in other applications. Additional community
contributions have since been merged. Hopefully GitHub will help the contributions have since been merged. Hopefully GitHub will help the
community maintain this project more seamlessly now. community maintain this project more seamlessly now.
Patches and improvements are greatly appreciated - the easiest way Patches and improvements are greatly appreciated - the easiest way
to submit them is to fork the repository on GitHub and make the 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" changes, then submit a pull request. The "fork and edit this file"
button on the web interface should make this even simpler. button on the web interface should make this even simpler.
[1]: http://graphics.tudelft.nl/Projects/WiiBalanceBoard [1]: http://graphics.tudelft.nl/Projects/WiiBalanceBoard
Authors Authors
------- -------
Fork Maintainer: Ryan Pavlik <rpavlik@iastate.edu> or <abiryan@ryand.net> 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 > Original Author: Michael Laforest < para > < thepara (--AT--) g m a i l [--DOT--] com >
Additional Contributors: Additional Contributors:
- dhewg - dhewg
- Christopher Sawczuk @ TU-Delft (initial Balance Board support) - Christopher Sawczuk @ TU-Delft (initial Balance Board support)
- Paul Burton <https://github.com/paulburton/wiiuse> - Paul Burton <https://github.com/paulburton/wiiuse>
- Karl Semich <https://github.com/xloem> - Karl Semich <https://github.com/xloem>
- Johannes Zarl <johannes.zarl@jku.at> - Johannes Zarl <johannes.zarl@jku.at>
- hartsantler <http://code.google.com/p/rpythonic/> - hartsantler <http://code.google.com/p/rpythonic/>
- admiral0 and fwiine project <http://sourceforge.net/projects/fwiine/files/wiiuse/0.13/> - admiral0 and fwiine project <http://sourceforge.net/projects/fwiine/files/wiiuse/0.13/>
- Jeff Baker/Inv3rsion, LLC. <http://www.inv3rsion.com/> - Jeff Baker/Inv3rsion, LLC. <http://www.inv3rsion.com/>
- Jan Ciger - Reviatech SAS <jan.ciger@reviatech.com> - Jan Ciger - Reviatech SAS <jan.ciger@reviatech.com>
- Gabriele Randelli and the WiiC project <http://wiic.sourceforge.net/> - Gabriele Randelli and the WiiC project <http://wiic.sourceforge.net/>
- Juan Sebastian Casallas <https://github.com/jscasallas/wiiuse> - Juan Sebastian Casallas <https://github.com/jscasallas/wiiuse>
- Lysann Schlegel <https://github.com/lysannkessler/wiiuse> - Lysann Schlegel <https://github.com/lysannkessler/wiiuse>
License License
------- -------
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
Audience Audience
-------- --------
This project is intended for developers who wish to include support This project is intended for developers who wish to include support
for the Nintendo Wii remote with their third party application. for the Nintendo Wii remote with their third party application.
Platforms and Dependencies Platforms and Dependencies
-------------------------- --------------------------
Wiiuse currently operates on both Linux and Windows. You will need: Wiiuse currently operates on both Linux and Windows. You will need:
### For Linux: ### ### For Linux: ###
- The kernel must support bluetooth - The kernel must support bluetooth
- The BlueZ bluetooth drivers must be installed - The BlueZ bluetooth drivers must be installed
- If compiling, you'll need the BlueZ dev files (Debian/Ubuntu package - If compiling, you'll need the BlueZ dev files (Debian/Ubuntu package
libbluetooth-dev) libbluetooth-dev)
### For Windows: ### ### For Windows: ###
- Bluetooth driver (tested with Microsoft's stack with Windows XP SP2) - Bluetooth driver (tested with Microsoft's stack with Windows XP SP2)
- If compiling, Microsoft Windows Driver Development Kit (DDK) - If compiling, Microsoft Windows Driver Development Kit (DDK)
### For Mac: ### ### For Mac: ###
- Mac OS X 10.2 or newer (to have the Mac OS X Bluetooth protocol stack) - Mac OS X 10.2 or newer (to have the Mac OS X Bluetooth protocol stack)
### For either platform: ### ### For either platform: ###
- If compiling, [CMake](http://cmake.org) is needed to generate a makefile/project - If compiling, [CMake](http://cmake.org) is needed to generate a makefile/project
Compiling Compiling
--------- ---------
You need SDL and OpenGL installed to compile the (optional) SDL example. You need SDL and OpenGL installed to compile the (optional) SDL example.
### Linux & Mac: ### ### Linux & Mac: ###
$ mkdir build $ mkdir build
$ cd build $ cd build
$ ccmake .. [-DCMAKE_INSTALL_PREFIX=/usr/local] [-DCMAKE_BUILD_TYPE=Release] $ ccmake .. [-DCMAKE_INSTALL_PREFIX=/usr/local] [-DCMAKE_BUILD_TYPE=Release]
OR OR
$ cmake-gui .. $ cmake-gui ..
$ make [target] $ make [target]
If `target` is omitted then everything is compiled. If `target` is omitted then everything is compiled.
Where `target` can be any of the following: Where `target` can be any of the following:
- *wiiuse* - Compiles `libwiiuse.so` - *wiiuse* - Compiles `libwiiuse.so`
- *wiiuseexample* - Compiles `wiiuse-example` - *wiiuseexample* - Compiles `wiiuse-example`
- *wiiuseexample-sdl* - Compiles `wiiuse-sdl` - *wiiuseexample-sdl* - Compiles `wiiuse-sdl`
- *doc* - Generates doxygen-based API documentation in HTML and PDF - *doc* - Generates doxygen-based API documentation in HTML and PDF
format in `docs-generated` format in `docs-generated`
Become root. Become root.
# make install # make install
`libwiiuse.so` is installed to `CMAKE_INSTALL_PREFIX/lib` `libwiiuse.so` is installed to `CMAKE_INSTALL_PREFIX/lib`
`wiiuse-example` and `wiiuse-sdl` are installed to `CMAKE_INSTALL_PREFIX/bin` `wiiuse-example` and `wiiuse-sdl` are installed to `CMAKE_INSTALL_PREFIX/bin`
### Windows: ### ### Windows: ###
The CMake GUI can be used to generate a Visual Studio solution. The CMake GUI can be used to generate a Visual Studio solution.
You need the install the Windows DDK (driver development kit) to compile You need the install the Windows DDK (driver development kit) to compile
wiiuse. You can download this from here: wiiuse. You can download this from here:
<http://www.microsoft.com/whdc/devtools/ddk/default.mspx> <http://www.microsoft.com/whdc/devtools/ddk/default.mspx>
You might also need to install the latest Windows SDK. You might also need to install the latest Windows SDK.
Using the Library Using the Library
----------------- -----------------
To use the library in your own program you must first compile wiiuse as 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. a module. Include `include/wiiuse.h` in any file that uses wiiuse.
For Linux you must link `libwiiuse.so` ( `-lwiiuse` ). For Windows you For Linux you must link `libwiiuse.so` ( `-lwiiuse` ). For Windows you
must link `wiiuse.lib`. When your program runs it will need must link `wiiuse.lib`. When your program runs it will need
`wiiuse.dll`. `wiiuse.dll`.
Known Issues Known Issues
------------ ------------
On Windows using more than one wiimote (usually more than two wiimotes) On Windows using more than one wiimote (usually more than two wiimotes)
may cause significant latency. may cause significant latency.
If you are going to use Motion+, make sure to call wiiuse_poll or wiiuse_update 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 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. the status of any expansion (nunchuk) you may have connected as well.
Otherwise the extra expansion may not initialize correctly - the initialization Otherwise the extra expansion may not initialize correctly - the initialization
and calibration takes some time. and calibration takes some time.
### Mac OS X ### Mac OS X
Sometimes you may not be able to connect to the device, even if it is discoverable. 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 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 list and remove it (by clicking on the minus sign). Close the Preference Pane and
try again. try again.
Acknowledgements by Michael Laforest Acknowledgements by Michael Laforest
------------------------------------ ------------------------------------
<http://wiibrew.org/> <http://wiibrew.org/>
> This site and their users have contributed an immense amount of > This site and their users have contributed an immense amount of
> information about the wiimote and its technical details. I could > information about the wiimote and its technical details. I could
> not have written this program without the vast amounts of > not have written this program without the vast amounts of
> reverse engineered information that was researched by them. > reverse engineered information that was researched by them.
Nintendo Nintendo
> Of course Nintendo for designing and manufacturing the Wii and Wii remote. > Of course Nintendo for designing and manufacturing the Wii and Wii remote.
BlueZ BlueZ
> Easy and intuitive bluetooth stack for Linux. > Easy and intuitive bluetooth stack for Linux.
Thanks to Brent for letting me borrow his Guitar Hero 3 controller. Thanks to Brent for letting me borrow his Guitar Hero 3 controller.
Known Forks/Derivative Versions Known Forks/Derivative Versions
------------------------------- -------------------------------
The last "old upstream" version of WiiUse was 0.12. A number of projects 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. forked or embedded that version or earlier, making their own improvements.
A (probably incomplete) list follows, split between those whose improvements A (probably incomplete) list follows, split between those whose improvements
are completed integrated into this new mainline version, and those whose are completed integrated into this new mainline version, and those whose
improvements have not yet been ported/merged into this version. An eventual improvements have not yet been ported/merged into this version. An eventual
goal is to integrate all appropriate improvements (under the GPL 3+) back goal is to integrate all appropriate improvements (under the GPL 3+) back
into this mainline community-maintained "master fork" - contributions are into this mainline community-maintained "master fork" - contributions are
greatly appreciated. greatly appreciated.
### Forks that have been fully integrated: ### ### Forks that have been fully integrated: ###
- [TU Delft's version with Balance Board support](http://graphics.tudelft.nl/Projects/WiiBalanceBoard) - [TU Delft's version with Balance Board support](http://graphics.tudelft.nl/Projects/WiiBalanceBoard)
- Added balance board support only. - Added balance board support only.
- Integrated into mainline 0.13. - Integrated into mainline 0.13.
### Forks not yet fully integrated: ### ### Forks not yet fully integrated: ###
- [libogc/WPAD/DevKitPro](http://wiibrew.org/wiki/Libogc) - [libogc/WPAD/DevKitPro](http://wiibrew.org/wiki/Libogc)
- Started before the disappearance of the original upstream - Started before the disappearance of the original upstream
- Focused on Wiimote use with Wii hardware - Focused on Wiimote use with Wii hardware
- Functions renamed, copyright statements removed - Functions renamed, copyright statements removed
- Additional functionality unknown? - Additional functionality unknown?
- git-svn mirror found here: <https://github.com/xloem/libogc-wiiuse> - git-svn mirror found here: <https://github.com/xloem/libogc-wiiuse>
- [fwiine](http://sourceforge.net/projects/fwiine/files/wiiuse/0.13/) - [fwiine](http://sourceforge.net/projects/fwiine/files/wiiuse/0.13/)
- Created an 0.13 version with some very preliminary MotionPlus support. - Created an 0.13 version with some very preliminary MotionPlus support.
- Integrated into branch `fwiine-motionplus`, not yet merged pending - Integrated into branch `fwiine-motionplus`, not yet merged pending
alternate MotionPlus merge from WiiC by Jan Ciger. alternate MotionPlus merge from WiiC by Jan Ciger.
- [DolphinEmu](http://code.google.com/p/dolphin-emu/source/checkout) - [DolphinEmu](http://code.google.com/p/dolphin-emu/source/checkout)
- Embedded, converted to C++, drastically changed over time and - Embedded, converted to C++, drastically changed over time and
mostly unrecognizable now. mostly unrecognizable now.
- A mostly intact version is here: - A mostly intact version is here:
<http://code.google.com/p/dolphin-emu/source/browse/?name=2.0#git%2FExternals%2FWiiUseSrc%2FSrc> <http://code.google.com/p/dolphin-emu/source/browse/?name=2.0#git%2FExternals%2FWiiUseSrc%2FSrc>
- Added Mac support - Added Mac support
- Added code to handle finding and pairing wiimotes on windows, see: - 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> <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: - 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> <http://code.google.com/p/dolphin-emu/source/browse/#git%2FSource%2FCore%2FCore%2FSrc%2FHW%2FWiimoteReal>
- [paulburton on github](https://github.com/paulburton/wiiuse) - [paulburton on github](https://github.com/paulburton/wiiuse)
- Added balance board support - skipped in favor of the TU Delft version. - Added balance board support - skipped in favor of the TU Delft version.
- Added static library support - not yet added to the mainline. - Added static library support - not yet added to the mainline.
- [KzMz on github)](https://github.com/KzMz/wiiuse_fork) - [KzMz on github)](https://github.com/KzMz/wiiuse_fork)
- Started work on speaker support. - Started work on speaker support.
- [WiiC](http://wiic.sourceforge.net/) - [WiiC](http://wiic.sourceforge.net/)
- Dramatically changed, C++ API added. - Dramatically changed, C++ API added.
- MotionPlus support added. - MotionPlus support added.
- Added Mac support. - Added Mac support.
- DolphinEmu PPA: used to have a WiiUse 0.13 - DolphinEmu PPA: used to have a WiiUse 0.13
- Added Mac support. - Added Mac support.
- Unknown other changes - not yet investigated. - Unknown other changes - not yet investigated.
- Source package zipped up and available here: - Source package zipped up and available here:
<https://github.com/rpavlik/wiiuse/downloads> <https://github.com/rpavlik/wiiuse/downloads>
Other Links Other Links
----------- -----------
- Thread about MotionPlus: <http://forum.wiibrew.org/read.php?11,32585,32922> - Thread about MotionPlus: <http://forum.wiibrew.org/read.php?11,32585,32922>
Original project: Original project:
- SourceForge page: <http://sourceforge.net/projects/wiiuse/> - SourceForge page: <http://sourceforge.net/projects/wiiuse/>
- Archived pages of the original project: - Archived pages of the original project:
- http://web.archive.org/web/*/http://wiiuse.net/ - http://web.archive.org/web/*/http://wiiuse.net/
- http://web.archive.org/web/*/http://wiiuse.sourceforge.net/ - http://web.archive.org/web/*/http://wiiuse.sourceforge.net/