Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support the Wii-mote #7

Open
GoogleCodeExporter opened this issue Jul 23, 2015 · 186 comments
Open

Support the Wii-mote #7

GoogleCodeExporter opened this issue Jul 23, 2015 · 186 comments

Comments

@GoogleCodeExporter
Copy link

If possible, the Wii-mote should be supported as well.

Original issue reported on code.google.com by kenneth@hexad.dk on 30 Jan 2011 at 9:37

@GoogleCodeExporter
Copy link
Author

I am definitely interested in this :) but try the wii classic controller 
because it has more buttons and would be more applicable to most emulators. 
Great app regardless.

Original comment by philipbyrdjr@gmail.com on 30 Jan 2011 at 7:05

@GoogleCodeExporter
Copy link
Author

I would also be highly keen for this to work too, bought a Datel wii retro 
wireless gamepad thinking it would work on my galaxy s and have been hunting 
the internet for weeks for something that will make it work.
Thanks

Original comment by foxcade...@gmail.com on 8 Feb 2011 at 10:24

@GoogleCodeExporter
Copy link
Author

Any updates or progress? I've read many places that a wii remote (or classic 
one) will not work on most HTC devices unless you root and install a custom 
rom/kernal. But many have also said that the EVO can't have full HDMI mirroring 
and yet that is happening (and should be finished soon!). Thanks again.

Original comment by philipbyrdjr@gmail.com on 12 Feb 2011 at 10:38

@GoogleCodeExporter
Copy link
Author

Sorry, I'm quite swamped with work atm, but I might get a quick try tomorrow.

Original comment by kenneth@hexad.dk on 12 Feb 2011 at 10:40

@GoogleCodeExporter
Copy link
Author

I just had a quick look at it, and it does not seem easy to get working:
http://mtrr.org/blog/?p=81

According to this, the device uses the HID layer to communicate, which is not 
supported on Android < 2.3 and does not seem to be supported on my custom 2.3.1 
rom either.

Original comment by kenneth@hexad.dk on 13 Feb 2011 at 1:53

@GoogleCodeExporter
Copy link
Author

I have looked into it some more, and it is not feasible in any sane way. The 
(first) problem is that the Bluetooth implementation on Android assumes that 
all devices must be paired with a pincode or other. The Wiimote connects 
without any passcode, thus the entire connection fails.

I have looked at the other apps that supports Wiimote, and they basically ship 
their app with a binary component that appears to talk directly to the hardware 
(or at least some kernel functions). This may be possible to replicate, but is 
likely to only work for a subset of the handsets, and particularly the HTC 
models seems to have trouble working this way. And my only test device is a HTC 
(rooted with custom FW).

In short: I won't be able to support this anytime soon, but I will gladly 
provide info to anyone who knows this stuff better than me.

Original comment by kenneth@hexad.dk on 4 Mar 2011 at 8:03

@GoogleCodeExporter
Copy link
Author

Wii remote classic controller please :-) 

Original comment by joshhe...@gmail.com on 20 Mar 2011 at 2:22

@GoogleCodeExporter
Copy link
Author

Same issue here on sgs see issue 32. Am willing to to wtry beta and work with 
develepors.

Original comment by jonathan...@gmail.com on 12 Apr 2011 at 8:45

@GoogleCodeExporter
Copy link
Author

Issue 32 has been merged into this issue.

Original comment by kenneth@hexad.dk on 13 Apr 2011 at 1:25

@GoogleCodeExporter
Copy link
Author

my understanding is the wiimote can be connected to unpaired, or paired using a 
pin that's the reverse of the BT mac address of wiimote or host (depending on 
how wiimote pairing was initiated).  I've not seen how to programmatically 
issue your own pin under android, assuming you need to get underneath the 
framework level.

Original comment by daveby...@gmail.com on 15 Apr 2011 at 3:03

@GoogleCodeExporter
Copy link
Author

AFAIK, there is no way to use the Android API to set the PIN or pair a device.

I am working on using some internals such as dbus/hidd/hcitool etc. to 
establish the connection, but there is not a lot of Android documentation at 
this level, so it is mostly slow and painfull trial-n-error :).

Original comment by kenneth@hexad.dk on 15 Apr 2011 at 6:46

@GoogleCodeExporter
Copy link
Author

Good news on this issue, I have now successfully connected to a WiiMote, 
without using any binary libraries or other tricks. The remaining work is 
fixing up the data to send the right key presses.

I can read the accelerometer as well as buttons. I *think* I can get the 
Classic Controller to work based on the documentation, but I do not have one 
for testing, so it is mostly qualified guessing.

Original comment by kenneth@hexad.dk on 11 May 2011 at 10:20

  • Changed state: Started

@GoogleCodeExporter
Copy link
Author

Great news but will this include my HTC Evo too? I don't have my hopes up so 
don't worry lol

Original comment by philipbyrdjr@gmail.com on 11 May 2011 at 10:25

@GoogleCodeExporter
Copy link
Author

I have a classic controller, I would be happy to help test. I have a Samsung 
Captivate which has been known to not work with other Wiimote apps due to 
Samsung's bluetooth stack. But if it works with this app I can help test.

Original comment by superblo...@gmail.com on 11 May 2011 at 10:29

@GoogleCodeExporter
Copy link
Author

Attached is a fresh build with Wiimote support.

I assume it works on any Bluetooth enabled Android device (it works on my HTC 
desire), but please try it and let me know.

I have tested it as much as I could, and found no problems. I also tested it 
with the Nunchuck and that works too. The attached build will produce a lot of 
debugging output, which can help me diagnose any issues, but may cause it to 
run a little slower.

Since I do not have the Classic Controller, I have implemented it based on 
whatever documentation I could find. I most likely made some mistakes, such as 
swap left/right, mixed up buttons, wrong reading of the thumbsticks, etc.

If you try this out, and find that something is not working correctly, please 
let me know. If possible, please also include a logcat dump.

If any developers are trying this out, it is possible to activate the 
accelerometers as well, but they flood the Bluetooth channel with data, so they 
are deactivated by default.

Original comment by kenneth@hexad.dk on 14 May 2011 at 12:10

Attachments:

@GoogleCodeExporter
Copy link
Author

Hi, thanks for the update. Unfortunately the new build doesn't work with my HTC 
Desire HD. When I run it I receive the message: "Unknown error: 0". I've 
attached a logcat output.

Original comment by Matt.Lov...@gmail.com on 14 May 2011 at 12:48

Attachments:

@GoogleCodeExporter
Copy link
Author

That is a weird message "out of wsock blocks", the only thing I can find on 
google about it is some chinese forum message, but there is no solution.

Could you try to reboot the device and then start logcat before connecting, to 
see if the wsock errors occur on first connection attempt?

Original comment by kenneth@hexad.dk on 14 May 2011 at 1:20

@GoogleCodeExporter
Copy link
Author

Done.

Original comment by Matt.Lov...@gmail.com on 14 May 2011 at 1:38

Attachments:

@GoogleCodeExporter
Copy link
Author

I'm guessing you have a Samsung device:
http://forum.xda-developers.com/showthread.php?p=13701143

The error message is "ERROR : blz20_wrp_close: protocol BTPROTO_L2CAP not yet 
supported", meaning that the binary stuff underneath does not support the L2CAP 
connection which is used by the Wiimote Driver.

Unfortunately this means that it will not work on all devices, as I had hoped. 
I don't see any way to fix without putting a custom ROM on the device.

Original comment by kenneth@hexad.dk on 14 May 2011 at 1:53

@GoogleCodeExporter
Copy link
Author

My phone is actually a HTC Desire HD, so it's strange how it works for your HTC 
Desire, but not my HTC Desire HD. Thanks anyway trying.

Original comment by Matt.Lov...@gmail.com on 14 May 2011 at 1:59

@GoogleCodeExporter
Copy link
Author

Wiimote fails on my HTC Thunderbolt. Reads as "Unknown Error: 0" What exactly 
is logcat and does it work on unrooted devices? Just tried your 1.6 build 
listed. I anticipate a working version. I greatly appreciate your steps in 
trying to get unsupported devices support for Human Interface devices.

Original comment by ExtremeY...@gmail.com on 14 May 2011 at 5:08

@GoogleCodeExporter
Copy link
Author

I figured out what logcat is. I attached a log. Here you go.

Original comment by ExtremeY...@gmail.com on 14 May 2011 at 9:42

Attachments:

@GoogleCodeExporter
Copy link
Author

@Matt: I use a custom ROM (Oxygen) with Android 2.3.3, so that is probably why 
it works on mine.

@ExtremeY: You have the same problem as Matt "blz20_wrp_close: protocol 
BTPROTO_L2CAP not yet supported"

I assume that you are both on an Android version less than 2.3. I will look 
into the source for Android to see if I can identify the changes that made this 
work, and then determine if I can backport them somehow. But given that others 
have failed before me, I fear that it is not possible to do in user-space (i.e. 
you need a new ROM).

Original comment by kenneth@hexad.dk on 15 May 2011 at 11:57

@GoogleCodeExporter
Copy link
Author

Well. I am not exactly willing to root over something as trivial as wiimote 
support. It isn't a necessity. I'll wait until 2.3 is released for my phone and 
then see what happens. Thanks.

Original comment by ExtremeY...@gmail.com on 15 May 2011 at 2:37

@GoogleCodeExporter
Copy link
Author

GREAT WORK!

just so you have the data, this works on stock Xoom latest OTA update.  which 
one could infer means it'll work on most every HC tablet...

however... the nunchuk doesn't do anything right now.  I assume that's just an 
oversight, a couple of hours of further enhancement to the code.

And yeah, I'd love to find a way to push accelerometer data.  At some point, 
what I want is the ability to start pushing data using the new NativeActivity 
input support, so these things map as joysticks/gamepads/etc., not just 
keyboard keys. :)

Original comment by daveby...@gmail.com on 16 May 2011 at 8:26

@GoogleCodeExporter
Copy link
Author

Hooray! It works for someone other than me :)

The Nunchuck thumbstick and C+Z buttons works for me?
Do you get any logcat messages if you unplug and re-connect it?

Original comment by kenneth@hexad.dk on 16 May 2011 at 8:50

@GoogleCodeExporter
Copy link
Author

Can one of you who has a non-working device try to connect to the Wiimote
 with this application while collecting logcat output:

 http://www.teksoftco.com/index.php?section=blueinputandroid

I know it will not work, but I am curious to see if they managed to get HID 
working.

If it appears to connect in some way, that means that it is actually possible. 

Original comment by kenneth@hexad.dk on 18 May 2011 at 5:03

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

To those having connection issues:

Wiimote uses something called HID to connect.
Unfortunately, the device manufacturers put their own version of Bluetooth 
libraries onto the devices. For Android 2.x, almost no vendors supported HID, 
so you need a custom ROM if you want HID.

For never versions (3.x+), most venders DO support HID. However, Android now 
automatically connects to paired HID devices. Even though the Wiimote connectio 
does not work, Android keeps the connection open, preventing other apps, like 
BluezIME, from connecting.

For Android 4.x+, the undocumented API that enables apps to connect with HID 
appears to have changed.

In most of these cases, you get an error message like "unknown error: 0".

As you can see Android really does not make this easy, and as I have no control 
over any of these issues, my interest in BluezIME is diminished.

If anyone can elaborate on these problems, or provide workarounds, I would 
appreciate it.

Otherwise: Sorry, can't fix it for you.

Original comment by kenneth@hexad.dk on 3 Aug 2013 at 11:46

@GoogleCodeExporter
Copy link
Author

support for wii u pro controller on galaxy s 4 version 4.2.2

Original comment by xXFallen...@gmail.com on 25 Sep 2013 at 5:54

@GoogleCodeExporter
Copy link
Author

I'm trying to use Bluez IME on my new Kindle Fire HDX.  When I click on "Select 
IME", I only see English as a Keyboard Language.  How do I enable Bluez IME?  
The app says to access "Settings -> Language", which doesn't exist on the 
Kindle.  There is Settings -> Device -> Language, and there's Settings -> 
Keyboard -> Languages, but Bluez IME is not shown under either one.

Thanks in advance.

Original comment by dclar...@gmail.com on 29 Oct 2013 at 6:16

@GoogleCodeExporter
Copy link
Author

I'm trying this on Android 4.4 on a 2013N7, and just get "Error: bt socket 
connect failed".
Any ideas? I'm actually trying to get the Wiimote to pair with Google Glass so 
I can try and make an immersive shooter.

Original comment by kurtisnelson on 27 Nov 2013 at 7:28

@GoogleCodeExporter
Copy link
Author

Same exact issue on HP touch pad.

Original comment by rhyvio...@gmail.com on 3 Dec 2013 at 11:13

@GoogleCodeExporter
Copy link
Author

@dclar: Kindle Fires have to be rooted to change the input method. They run a 
basically locked-down version of android.
@kenneth: Dumb question, but does a BT keyboard count as a(n) HID device? Also, 
I installed the HID plugin and still get no response from my BTKB. Remapping 
with External Keyboard Helper Pro doesn't work either. Everything gives "Error: 
connection refused", I have a feeling that it's an Angry Andy. (that green 
bastard doesn't like us too much, does he?)

I just wanna use my keyboard's WASD keys instead of the DPad to play games on 
RetroArch, because the down button is a little weird and you have to press down 
harder to make it work but then you'll press both the left and the right 
buttons too.(It's a square button that has four different buttons, one on each 
side.)

Proposal for the 4.x+ problem: Read up on the Android Developer site. :P

One last thing: Does this support touchpads for joysticks? If not, it would be 
a good idea.

Sent from my unrooted Samsung Galaxy Tab 3 7.0 running Android 4.1.2.

Original comment by lolepicn...@gmail.com on 16 Jan 2014 at 3:54

@GoogleCodeExporter
Copy link
Author

my experience with latest bluez and hid apk, with lg l3 II e430
I can use it like IME, for connect the wiimote i choice before keyboard and 
after the wiimote on listed device, and i can see connected, after i choice the 
right botton config for use it with horizzontal wiimote

Original comment by nax...@gmail.com on 22 Apr 2014 at 4:26

@GoogleCodeExporter
Copy link
Author

I am getting "Error: read failed, socket might be closed or timeout, read ret: 
-1" I am on a Nexus 5 Android 4.4.2. On my Nexus 7 v2 I am getting "Error: bt 
docket connect failed" 

Trying to connect both to Wiimote Motion Plus. 

Original comment by jrus...@gmail.com on 25 Apr 2014 at 3:04

@GoogleCodeExporter
Copy link
Author

No funciona con controles moga?

Original comment by mariogg8...@gmail.com on 12 Aug 2014 at 5:01

@GoogleCodeExporter
Copy link
Author

I obtain an error message"BT socket failed. I'm on OnePlus with 4.4.4 installed 
the HID PACK. the app recognized the controller. But when I open the nastalgia 
emulator and open a ROM. It doesn't connect. 

Original comment by Giovanni...@gmail.com on 21 Oct 2014 at 10:49

@GoogleCodeExporter
Copy link
Author

what a disgrace for wiimote users... I could play on my old s2, but I cant on 
my new Lg g2... so sad...I wish you guys fix one day for new android version. 
Greetings.

Original comment by rafarodr...@hotmail.com on 22 Nov 2014 at 11:18

@GoogleCodeExporter
Copy link
Author

Apparently it has been made able to work with CM12 nightlies. 

http://review.cyanogenmod.org/#/c/89843/

I haven't been able to do so unfortunately on my Nexus 4. 

Original comment by sidban...@gmail.com on 15 Mar 2015 at 3:43

@GoogleCodeExporter
Copy link
Author

Guys, if your wiimote is not working, go pester Google. They apparently changed 
the bluetooth stack for NO PARTICULAR REASON WHATSOEVER. =.=

Original comment by theultim...@gmail.com on 28 Mar 2015 at 2:54

@GoogleCodeExporter
Copy link
Author

I am having issue using the latest bluez ime wiimote with the HID enabler.  I 
am running on Lollipop on nvidia shield tablet.  I've followed these particular 
set of directions - 
http://androidforums.com/threads/bluetooth-wiimote-fix-stock-sense.692392/

After I finished step 10 in that guide, I get stuck at this particular step "2. 
Hit the menu button and click "Search for devices".  Which menu is it referring 
to?  I see no search for devices option and also when I try go to the bluetooth 
menu in settings and it automatically looks for devices, all it says is 
"Error:bit socket connect failed".

Any ideas?  I'd like to get my official wiimote paired with the classic 
controller to work for emulators but I can't seem to get past this part.

Original comment by kuokuopu...@gmail.com on 31 Mar 2015 at 7:28

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

Is it possible to support the Fire TV box or Fire TV stick?  Does Fire OS 
support L2CAP now?  I sideloaded BluezIME and BluezIME-HIDEnabler.apk and it 
detects my wiimote (RVL-CNT-01, not RVL-CNT-01-TR, though I have one of those 
also).  But Bluez's "connect" button only says "BT socket connect failed".  
Specifically, I'd like to use RetroArch, as it is free software and it supports 
the most emulator cores for maximal compatibility.  Thank you.

This is the guide I followed:
http://forum.xda-developers.com/fire-tv/general/n64-games-wiimote-root-t3006978

Original comment by smuck...@gmail.com on 28 Jun 2015 at 3:45

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant