Project

General

Profile

Actions

Emulator Issues #5997

closed

Linux - Wiimote not working when using interrupt channel

Added by magley22 about 11 years ago. Updated almost 7 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
Controls
% Done:

0%

Operating system:
Linux
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Have you searched the issue tracker for a similar issue?
Yes

Game Name?
Any game I tried

Game ID?
Any ID I tried

What went wrong?
When starting any game with the 1 and 2 buttons pressed in the wiimote to pair it, the lights on the wiimote never get fixed indicating a sucessfull pairing. Then the wiimote does not work

What did you expect to happen?
Wiimote getting paired with the light fixed

What steps will reproduce the problem?
Pairing the wiimote

What version of Dolphin were you using?
Last test Main branch 3.5-395 with same result

64 or 32 bit Dolphin?
64 bits

What version of Dolphin used to work?
3.5-339 Network Branch and previous Main Branch used to works fine and previous main branch too

What Operating System were you using and what are your hardware
specifications?
Opensuse 12.2 x64
AMD Phenom 955 3.2 mhz
2 Gb DDR3 memory
Nvidia GT240 video card

64 or 32 bit Operating system?
64

Any other relevant information or links to logs:

As you can see on the "dolphin-emu" command output, dolphin see the wiimote, I can see the blinking pause for a second, but then continues blinking:

24:27:630 /sda3/dolphin/dolphin-emu/Source/Core/DolphinWX/Src/GLInterface/GLX.cpp:93 N[Video]: glX-Version 1.4
24:27:631 /sda3/dolphin/dolphin-emu/Source/Core/DolphinWX/Src/GLInterface/GLX.cpp:115 N[Video]: Got double buffered visual!
24:33:312 /sda3/dolphin/dolphin-emu/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp:123 N[Wiimote]: Found wiimote 1, (00:1F:32:E5:7E:E5).

Actions #1

Updated by Luke.Hernandez about 11 years ago

I got the same issue, wiimote not working on linux version since 3.5.125 (that was the last revision that I got the wiimote working fine).

I found a quick solution:

Go to this: /dolphin-emu/Source/Core/Core/Src/HW Folder, then replace the realwiimote folder with the one in the link below, compile and you'll have the wiimote working again, I haven't edit anything there, it's just the realwiimote folder that I have from revision 3.5.125, so I have no credit in this fix :P

Actions #2

Updated by Billiard26 about 11 years ago

  • Status changed from New to Questionable
  • Issue type set to Bug

You're claiming that 3.5-126 (i.e. ra1f476943a21257d4ba633e51797181700bbf535) introduced this issue?

That revision did not touch any wiimote related code. If you meant a different revision please provide the hash. The 3.5-# descriptions are not as useful.

Actions #3

Updated by Billiard26 about 11 years ago

Or maybe you mean r3da05af30ab82639b5898f6ef46326bdd2f1dc7e. :/
Still doesn't touch wiimote code.

Those "version numbers" suck.

Actions #4

Updated by Luke.Hernandez about 11 years ago

rI don't know since what version is this problem present, but the issue is in the realwiimote folder, I'm just providing a range 3.5.126---3.5.395, sorry for not being more specific about the issue but it seems that's only affecting to linux :(

Actions #5

Updated by Billiard26 about 11 years ago

What type of wiimote are you using?..
Official/3rd-party?
Wii Remote Plus?

Actions #6

Updated by magley22 about 11 years ago

Thanks for the workarround, I'll try an comment on the result
Regarding the wiimotes I'm using official, no Wii Remote Plus.
Thanks,

Actions #7

Updated by Luke.Hernandez about 11 years ago

I'm using the official wiimote + Wii Motion Plus, it used to work fine here :(

Actions #8

Updated by Billiard26 about 11 years ago

It works flawlessly here!

I cannot fix it if you do not tell me the exact revision which broke it.

Actions #9

Updated by magley22 about 11 years ago

Hello,
I tried using the WiimoteReal directory from the "3.5-339 Network Branch" on the latest "3.5-540 Network Branch" and it worked fine. Comparing both WiimoteReal directories with a diff there are several changes. I'll try to determine the exact revision starting this issue for me. Thank you very much!!
Regards,

Actions #10

Updated by Billiard26 about 11 years ago

  • Status changed from Questionable to Won't fix

I can't fix a regression if I can't reproduce the problem or be told which revision is the cause.

Will re-open if given usable information.

Actions #11

Updated by michael.jenney about 11 years ago

I am a little new to git versioning so I will link, to hopefully provide some insight.
I found that going from revision cc0226254dab
http://code.google.com/p/dolphin-emu/source/detail?path=/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp&r=cc0226254dabcbec36936a7c71d61d280168aecf

to 5005d528c4e4 broke the wiimote for me in Ubuntu 12.04 LTS (64 bit)
http://code.google.com/p/dolphin-emu/source/detail?path=/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp&r=5005d528c4e4df24994af94843799870d914ac71

I can switch back to the older revision, and the Wiimote works for me again.

Actions #12

Updated by Billiard26 about 11 years ago

  • Status changed from Won't fix to Questionable

@ michael.jenney
What type of wiimote?
Set Dolphin's log config to "warning" and provide a log of attempting to connect a wiimote.

Actions #13

Updated by michael.jenney about 11 years ago

The testing above was with a non-TR wiimote. I have both a non-TR and TR wiimote and will verify.

I will get logs from both revisions.

Actions #14

Updated by michael.jenney about 11 years ago

Attached are the warning logs.

lsusb reports my bluetooth adapter as:
Bus 002 Device 009: ID 1131:1001 Integrated System Solution Corp. KY-BT100 Bluetooth Adapter

The behavior I am seeing in 5005d528c434, is the log window reports that it finds the wiimote, but doesn't connect. the lights on the wiimote continue to blink and it doesn't work. TR wiimotes dont work for me in either version.

however, I had another USB bluetooth dongle which lsusb reported as:
Bus 002 Device 010: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

In the 5005d528c4e4, and the nonTR wiimote paired fine, and the TR wiimote paired using the red sync button.

Maybe there is an issue with the some of the later changes and certain bluetooth adapters.

Actions #15

Updated by Billiard26 about 11 years ago

Provide a link to where I can purchase a bluetooth adapter with this problem for under $5.

Actions #16

Updated by Billiard26 about 11 years ago

:| I'm not seeing how r5005d528c4e4 could have caused connection to fail like it is for you. Connection code is essentially unchanged, reading/writing differs.

Actions #17

Updated by Billiard26 about 11 years ago

An hci_read_remote_name call was added, but if that is making connection fail your adapter is just broken..

Actions #18

Updated by Billiard26 about 11 years ago

  • Status changed from Questionable to Won't fix

Can't fix if not told which adapter has the issue.

Actions #19

Updated by magley22 about 11 years ago

Hi,

I tried 3 different bluetooth dongles, but the 3 have the same problem.

As reported by lsus:

This is the one I've been using with no problem up to this issue:
Bus 006 Device 003: ID 0e5e:6622 Conwise Technology Co., Ltd. CW6622

This are the other two I tried with no success:
Bus 006 Device 002: ID 1131:1004 Integrated System Solution Corp. Bluetooth Device
Bus 005 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Now, updated the git repo I tried to compile again revision 3.5.339 (the one that was working fine until this issue showed up) using the command "git checkout 570997e6a11424bcd274fe08ef6e6fe0439e9e85" but it fail to compile on make command with:

[ 3%] Built target translations_1
[ 3%] Building CXX object Externals/Bochs_disasm/CMakeFiles/bdisasm.dir/dis_decode.cpp.o
/bin/sh: -c: line 0: syntax error near unexpected token (' /bin/sh: -c: line 0: cd /sda3/dolphin/dolphin-emu/Build/Externals/Bochs_disasm && /usr/bin/c++ -DDATA_DIR="/usr/local/share/dolphin-emu/" -DUSER_DIR=".dolphin-emu" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DHAVE_ALSA=1 -DHAVE_AO=0 -DHAVE_BLUEZ=1 -DHAVE_PULSEAUDIO=0 -DHAVE_OPENAL=1 -DHAVE_X11=1 -DHAVE_XRANDR=1 -DHAVE_PORTAUDIO=0 -fvisibility-inlines-hidden -O3 -DNDEBUG -I/usr/include/AL -I/sda3/dolphin/dolphin-emu/Source/Core/AudioCommon/Src -I/sda3/dolphin/dolphin-emu/Source/Core/Common/Src -I/sda3/dolphin/dolphin-emu/Source/Core/Core/Src -I/sda3/dolphin/dolphin-emu/Source/Core/DebuggerUICommon/Src -I/sda3/dolphin/dolphin-emu/Source/Core/DebuggerWX/Src -I/sda3/dolphin/dolphin-emu/Source/Core/DiscIO/Src -I/sda3/dolphin/dolphin-emu/Source/Core/DolphinWX/Src -I/sda3/dolphin/dolphin-emu/Source/Core/InputCommon/Src -I/sda3/dolphin/dolphin-emu/Source/Core/VideoCommon/Src -I/sda3/dolphin/dolphin-emu/Source/Core/VideoUICommon/Src -msse2 -Wall -Wtype-limits -Wsign-compare -Wignored-qualifiers -Wuninitialized if ( NOT /usr/bin/c++ MATCHES clang++ ) -Wlogical-op endif ( NOT /usr/bin/c++ MATCHES clang++ ) -Wshadow -Winit-self -fno-strict-aliasing -fno-exceptions -Wno-psabi -Wno-unused-result -fvisibility=hidden -fomit-frame-pointer -fopenmp -o CMakeFiles/bdisasm.dir/dis_decode.cpp.o -c /sda3/dolphin/dolphin-emu/Externals/Bochs_disasm/dis_decode.cpp'
make[2]: *** [Externals/Bochs_disasm/CMakeFiles/bdisasm.dir/dis_decode.cpp.o] Error 1
make[1]: *** [Externals/Bochs_disasm/CMakeFiles/bdisasm.dir/all] Error 2
make: *** [all] Error 2

Could it be some other component of my systems is failing?

Thanks & Regards,

Actions #20

Updated by Billiard26 almost 11 years ago

  • Status changed from Won't fix to New

email from:

Good morning,

I think I found a timing issue with the linux wiimote connection code
in dolphin master. At some point during the previous months, my working
wiimote RVL-CNT-01 would not connect to new git-versions of dolphin
anymore.
I would get the message "Found wiimote " but "Unable to open output
socket to wiimote."
After some testing I found that connect(cmd_sock,... fails.
My workaround below hints at a timing issue which I didn't further
investigate. Maybe this is interesting for you.

Sorry for direclty contacting you, but I didn't want to open an account
for a 1 line patch.

Best,
Holger Ahlers

diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp
b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp
index 87ddc50..2a55ff3 100644
--- a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp
+++ b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp
@@ -139,6 +139,7 @@ bool Wiimote::Connect()

    // Output channel
    addr.l2_psm = htobs(WM_OUTPUT_CHANNEL);
  • sleep(1);
    if ((cmd_sock = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP))
    == -1 ||
    connect(cmd_sock, (sockaddr*)&addr, sizeof(addr)) < 0)
    {

Bill:
Perhaps we can attempt to connect without sleeping first, and if that fails, try once more after sleeping. (of course I don't have a faulty adapter and can't test if this method works.)

Actions #21

Updated by magley22 almost 11 years ago

Holger, adding "sleep(1)" works like a charm!!!
Thank you very much!!
Would it be possible to include this little change in the mail branch?

Actions #22

Updated by michael.jenney almost 11 years ago

Holger Ahlers sleep fix resolves my issues as well. Tested with both a TR wiimote and a non-TR wiimote.

Actions #23

Updated by MayImilae over 10 years ago

  • Category set to controls
Actions #24

Updated by fabioblk over 10 years ago

I just compiled dolphin's 4.0 version on an Ubuntu 13.04 machine and found that my real wiimote stopped working
Weird, since wiimote on version 3.5 stable worked like a charm on the same machine.
I just followed Holger sllep fix and it solved my issue.

Actions #25

Updated by evandro.pa over 10 years ago

Hi fabio

Does version 4.0 have any performance improvements?

Actions #26

Updated by fabioblk over 10 years ago

Hi Evandro,

I noticed only a small framerate improvement, specially if the game runs under DSP HLE emulation at sound settings.
running super mario galaxy, if the minumum framerate in heavy areas was like 45fps in 3.5, now I get 48 minimum in 4.0, most of the game runs at or close to 60fps tough.
These are my settings by the way:

Core I5 3570 - stock
Radeon HD 6870

Display settings
1920x1080
2x native internal resolution
2x anti aliasing
8x anisotropic

Actions #27

Updated by evandro.pa over 10 years ago

Hi Fabio

Thanks for the feedback. I tried it on my machine and... I need an upgrade :)

By the way, my TR remotes work flawless from this PPA

ppa:glennric/dolphin-emu

Actions #28

Updated by JMC4789 over 9 years ago

A report on the forum says that this above patch fixes wiimote connections on their machine. Can this be investigated any more?

Actions #29

Updated by feilen1000 over 9 years ago

I added that patch (assuming it's just a call to sleep) and yes it works
perfectly.

Actions #30

Updated by leoetlino about 7 years ago

  • Status changed from New to Fix pending
  • Operating system Linux added
  • Operating system deleted (N/A)
Actions #31

Updated by JosJuice almost 7 years ago

  • Status changed from Fix pending to Fixed

That PR has been merged.

Actions

Also available in: Atom PDF