summaryrefslogtreecommitdiffhomepage
path: root/wiiyourself/ReadMe.txt
diff options
context:
space:
mode:
Diffstat (limited to 'wiiyourself/ReadMe.txt')
-rw-r--r--wiiyourself/ReadMe.txt202
1 files changed, 202 insertions, 0 deletions
diff --git a/wiiyourself/ReadMe.txt b/wiiyourself/ReadMe.txt
new file mode 100644
index 00000000..85ca0034
--- /dev/null
+++ b/wiiyourself/ReadMe.txt
@@ -0,0 +1,202 @@
+__________________________________________________________________
+
+ - WiiYourself! - native C++ Wiimote library v1.15
+ (c) gl.tter 2007-10 - http://gl.tter.org
+__________________________________________________________________
+
+This marks the likely-final release of my free & fully-featured
+ Wiimote native C++ library for Windows.
+
+Originally based on Brian Peek's 'Managed Wiimote Library'
+ (http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx)
+ I then rewrote and extended it considerably.
+
+There's no documentation - check Brian's article for a good
+overview and general 'Wiimote with Windows' info - but the
+source code has extensive comments, and the demo app should help
+you make sense of it all. Any questions, join my mailing list
+(below).
+
+Check License.txt for the (few) conditions of use, and
+ History.txt for important changes from previous versions.
+_____
+
+Notes:
+
+ - the library consists only of wiimote.cpp & wiimote.h. Simply add
+ them to your project and include the header.
+
+ - VC 2005 & 2008 projects, and a MSYS makefile for MinGW for the
+ demo program are included.
+
+ - for MSYS:
+ at the MSYS prompt type: make -f Makefile.MSYS
+ (it will create a folder named MinGW whith the binaries
+ and proper folder structure)
+
+ - The Windows Driver Development Kit (WDK or DDK) is required to
+ build (for the HID API). It's a free download from MS page
+ (no need to register). Currently it's found here (or search
+ for it on microsoft.com):
+
+ 'Windows Driver Kit (WDK) 7.1.0'
+ http://www.microsoft.com/whdc/DevTools/WDK/WDKpkg.mspx
+
+ Unfortunately it changes frequently so the instructions below
+ may be wrong or incomplete. Google or ask on my mailing
+ list for help if needed:
+
+ - add its 'inc' and 'inc/api' dirs to your include paths
+ (make sure they are *above* other paths, ie. searched first)
+
+ - add its 'lib/win7/i386' dir to your library paths.
+
+ You can also use earlier versions known as the 'DDK'. The parts
+ of the HID API I use haven't changed in a long time. These paths
+ are usually used:
+
+ - add 'inc/wxp' dir to your include paths (*above* others)
+ - add 'lib/wxp/i386' to your library paths.
+
+ Notes:
+ - do _not_ add any 'STL' paths from the WDK/DDK as they can cause
+ build problems.
+ - the order of your include paths can be important. If you placed
+ them above the paths and are still getting compilation errors,
+ try moving them around.
+
+ - The library is Unicode-ready via <tchar.h> (see demo project).
+
+ - if you're not using VC you need to link with these libraries:
+ setupapi.lib
+ winmm.lib
+ hid.lib (from the DDK)
+__________________________
+
+Wiimote installation notes:
+
+ The Wiimote needs to be 'paired' (Bluetooth connected) with the
+ PC before you can install/use it. Pressing 1 & 2 simultaneously
+ puts it into 'discoverable' mode for a few seconds (LEDs will
+ flash - the number of LEDs reflects the battery level).
+
+ It will be detected as 'Nintendo RVL-CNT-01'.
+
+ Stack-specific instructions:
+
+ - Windows' built-in Bluetooth stack:
+
+ 1) open up the Bluetooth control panel.
+ 2) press _and hold_ 1 & 2 on the wiimote (LEDs flash) until the
+ installation is complete (otherwise the wiimote usually times
+ out half-way through the procedure, and although it may seem
+ to have installed it's never 'connected' and doesn't work).
+ 3) add a new device - it should find it. don't use a password.
+ 4) when the installation is fully complete, let go of 1&2. The
+ Bluetooth panel should now show it 'connected'.
+
+ if something goes wrong you need to uninstall it and try again.
+
+ if you un-pair the wiimote later (see below), it seems you need
+ to remove and install it all over again to get it to work (if you
+ know a workaround, let me know).
+
+ - Toshiba stack:
+
+ straight forward, press 1 & 2 on the Wiimote (you don't need to
+ hold them if you're quick) and click 'New Connection'.
+
+ once found, you can pair it anytime again by right-clicking its
+ device icon (and pressing 1 & 2 as before) - you can also set up
+ a desktop shortcut that enters discovery mode immediately.
+
+ - Widcomm stack:
+
+ 1) Open 'My Bluetooth Places'.
+ 2) Press and hold 1 & 2 (until the process is complete).
+ 3) Click 'View Devices in Range'.
+ 4) Wiimote is detected as Nintendo RVL-CNT-01.
+ 5) Select it, then click 'Bluetooth Setup Wizard'.
+ 5) Click 'Skip' (no password).
+ 6) Now it should be connected (you can let go of 1 & 2).
+
+ Troubleshooting:
+ - the device seems to be connected but the Demo can't find it
+ (CreateFile() fails with error 5 'Access Denied'),
+ or - it disconnects almost immediately after connection
+ or - asks for a password a few seconds after connection
+
+ Try uninstalling all HID devices from Device Manager, and then
+ redetecting them with 'Scan for hardware changes' (I had all
+ these problems and that fixed it for me).
+
+ - Other stacks
+
+ similar to the above (contribute instructions?)
+
+
+ - Disconnect/un-pair to save power (any stack):
+
+ hold the Wiimote Power button for a few seconds - it automatically
+ unpairs itself, re-enters pairing mode for a few seconds
+ (flashing LEDs), then times out and (effecively) switches off.
+
+__________________________
+
+Balance Boards notes:
+
+ Balance Boards are installed using the same procedure as wiimotes, by
+ holding the 'Sync' button in the battery compartment. The Bluetooth
+ stack detectes them as 'Nintendo RVL-WBC-01'.
+
+ They report to the library as wiimotes, with a permanent BALANCE_BOARD
+ extension. They only have one button (A), and no IR/Acceleration/Rumble
+ or Speaker support. There is only one supported 'report type' so the
+ library sets this automatically (see the demo for details).
+
+ You can detect them with the wiimote::IsBalanceBoard() call.
+
+ The boards tested so far all report up to ~ +-2.5KB weight offsets even
+ where there is no weight placed on them (ie. 'at rest'). It is unknown
+ if this is normal sensor inaccuracy/drift, or if the calibration values
+ read from the board are interpreted incorrectly. For now the library
+ automatically subtracts the first incoming sensor values after a Connect()
+ call from all future non-raw values (the raw values are never modified).
+
+ The offsets used are exposed in wiimote_state::balance_board::AtRestKG.
+
+ - if the board wasn't at rest during the Connect() call these offsets
+ will be wrong - the app can measure them manually (when the board
+ is at rest) by calling wiimote::CalibrateAtRest().
+
+__________________________
+
+MotionPlus notes:
+
+ Once activated it's reported like any other extension, but needs to be
+ manually enabled (see demo for an example):
+ - Test first if it's connected via MotionPlusConnected()
+ - Then call EnableMotionPlus()
+ - It will then replace any other extension connected to it, unil you
+ disable the Motion+ again with DisableMotionPlus().
+
+ The speed values are believed to be correct. The calibration values are not
+ yet understood, so the data is currently uncalibrated.
+
+ Some technical details are mentioned in this interview with the MotionPlus
+ hardware/software engineers:
+ http://uk.wii.com/wii/en_GB/software/iwata_asks_motionplus_volume_1_2162.html#top
+
+
+ * Special thanks to the guys at WiiBrew.org, and all contributing hackers *
+ for figuring out & documenting the wiimote protocols:
+ http://wiibrew.org/wiki/Wiimote/Extension_Controllers#Wii_Motion_Plus
+
+
+Sign up to the mailing list to stay in the loop, exchange ideas or help each
+ other out: http://gl.tter.org/mailman/listinfo/wiiyourself_gl.tter.org
+__
+
+gl.tter (glATr-i-lDOTnet)
+
+