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