From WiiUBrew
Revision as of 12:32, 21 April 2016 by Tueidj (talk | contribs) (WPADSetDataFormat)
Jump to navigation Jump to search

Reading Remote Values (solved)

Does anybody know how to correctly read data from the Wii Remote? Calling WPADRead and reading the button presses works perfectly, as long as the controllers are actually connected. If the controllers aren't connected, (mostly with controllers 3 and 4) I get a garbled mess of fake button presses. Does anybody know why? (see Wii Remote Button Tester for an example) You will see that some buttons are reported as being pressed, even though the controller isn't connected. CreeperMario (talk) 10:28, 20 April 2016 (CEST)

Just a guess but try actually checking the return value of WPADRead? Tueidj (talk) 11:46, 20 April 2016 (CEST)
Just tested that theory, and it appears that WPADRead always returns with 0, regardless of the input. The value of WPADStatus.err is randomized when remotes are disconnected, sometimes being zero, sometimes not. CreeperMario (talk) 12:45, 20 April 2016 (CEST)
In that case check if there's a function called WPADProbe which is what the wii's WPAD library uses for controller detection. Tueidj (talk) 01:44, 21 April 2016 (CEST)
Thanks! This does indeed work. As long as I call WPADProbe before WPADRead, I can safely avoid detecting fake button presses if the controller is not connected. CreeperMario (talk) 10:45, 21 April 2016 (CEST)

There should also be a WPADSetDataFormat function to specify what type of status should be filled... you would think whoever added the WPAD*Status struct definitions would have known they're useless without it. Tueidj (talk) 12:32, 21 April 2016 (CEST)