Page 1 of 1

Hyperkin Procube controller libogc

Posted: Thu Jan 24, 2019 9:17 pm
by Raflos
Hey
I have a pretty popular 3rd party Wii U pro controller called "Hyperkin Procube" controller. There are several people who have posted in various places because they bought the controller expecting it to work with homebrew apps, but unfortunately it doesn't.

Here's what I've been able to figure out about the controller:
  • It uses the same bluetooth name as a standard WUPC
  • On version 1.8.16 of Libogc it doesn't connect at all
  • On the latest version, it connects but doesn't respond to inputs other than the power and home buttons, and the joystick input is stuck pointing towards the bottom left
I've been using homebrew (especially wii homebrew) for many years, but I've only ever made small tweaks to source codes here and there.
I'm always interested in learning, so I'd like to set up a basic homebrew app that can test out inputs, then make adjustments to libogc's wpad/bluetooth code to see if I can get any results.
I'd appreciate any help on this.
Thanks.

Re: Hyperkin Procube controller libogc

Posted: Thu Feb 07, 2019 9:50 pm
by DacoTaco
if the home button works then i guess that wpad/wiiuse detects the controller in some way.

couldn't the standard wiimote input example show you what button presses it detected?
i haven't looked at the wiiuse code yet, so idk how it looks though...

Re: Hyperkin Procube controller libogc

Posted: Sat Feb 23, 2019 8:32 pm
by Raflos
DacoTaco wrote: Thu Feb 07, 2019 9:50 pm if the home button works then i guess that wpad/wiiuse detects the controller in some way.

couldn't the standard wiimote input example show you what button presses it detected?
i haven't looked at the wiiuse code yet, so idk how it looks though...
It definitely detects the controller yeah. I'm not sure which library does though, because it seems like the standard wiiuse library doesn't have WUPC support, but the wiiuse code used in libogc was modified to support it. And obviously the wpad code supports WUPC.

Could you point me towards the standard wiimote input example? If it uses libogc and is open source then it would be perfect for testing.

Re: Hyperkin Procube controller libogc

Posted: Wed Aug 14, 2019 3:45 am
by Raflos
It's been a while, but I decided to give this a try yesterday.
I haven't been able to get it to work, but I found more information.

First, here is the memory/registers data that the controllers send when they connect.
Wii U Pro Controller:
Image

Hyperkin Controller:
Image

Then, I checked the raw outputs of the controllers.
The WUPC output: 0x340000JJJJJJJJJJJJJJJJBBBBBB0000000000000000 where J is the joysticks value and B is the buttons value.
Hyperkin output: 0x340000120000700000000000000000000000A4200120
The Hyperkin controller's output doesn't change no matter how I manipulate the joysticks/buttons.
Except when I press the Home button, then the two bytes after 0x34 become 0080, which explains why the Home and Power buttons work, they're the only buttons that express as Wiimote buttons instead of WUPC buttons.

I thought that it could be encrypted, but if it were, the data would still change when moving around joysticks and such, right?
My other theory is that the controller is misinterpreting the button data requests as something else, and responding with some other data (which would explain why it's spitting out A4200120 in the button report). But that would be strange too, because 0x34 is the right byte for WUPC button/joy data.

Does anyone know what could be going on?