Project

General

Profile

Actions

Emulator Issues #4608

closed

ACL queue tends to be overfilled (over 10 packets) in some situations, causing occasionnal packet loss (Wiimote disconnections, forgotten extensions, etc) -- issue introduced with r7394's functionality changes

Added by DimitriPilot3 almost 13 years ago.

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

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
Yes
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

I started investigating this issue (the first one) after finding this forum post: http://forums.dolphin-emulator.com/showthread.php?tid=16198&pid=153328#pid153328
Has this issue eventually been fixed in a later commit? I doubt so, judging by the apparent behaviour of example II (which is harder to reproduce after r7394 because micro-de-connections became more fatal; try it with 3 Wiimotes, while making sure to properly reconnect bugged-out Wiimotes by changing the Input Source between "Emulated" and "None")...

What steps will reproduce the problem?

Example I

  1. Start up Dolphin (preferably r7272 or r7393, or any revision between these two - any later revision will make this issue harder to reproduce due to another issue);
  2. Set up all four Wiimotes (emulated or real - shouldn't make a difference), and enable them;
  3. Run a Wii game (such as SSBB (id RSBP for me) or NSMB Wii (id SMNP for me));
  4. Do some controller input...

Example II

  1. is the same step as in example I;
  2. Set up (and enable) all four Wiimotes so they all have a Nunchuk attachment;
  3. Run Super Smash Bros. Brawl (RSBP);
  4. Go to a character select screen that shows four players (Group->Brawl);
  5. Disconnect all four Wiimotes (ALT+F5, ALT+F6, ALT+F7 and ALT+F8);
  6. After that, quickly reconnect all Wiimotes by holding ALT and pressing F5 then F6 then F7 then F8.
  7. Observe the way in which the Wiimotes are being recognized and then "upgraded" to Nunchuk + Wiimote combos...

What is the expected output? What do you see instead?
##Example I
I expect output from all 4 Wiimotes to occur (somewhat) immediately after polling my gamepad. Instead, the delay between controller input and Wiimote output appears to increase.
And no, I am not talking about the lag created by Wiimote Speaker output; I am talking about a delay that seems independent from that, as the issue can occur at the beginning of emulation if all 4 Wiimotes are enabled.

##Example II
I expect the same behaviour as in r7271: fast recognition of Wiimote connections by the game, then a delay, then fast "upgrades" to Nunchuk/Wiimote combos, without any micro-disconnections (no temporary connection losses).
Since r7272, however, things have slowed down in a way that sometimes causes micro-disconnections, and sometimes causes a few "downgrades" followed with "upgrades". This also causes the symptoms of example I (delayed input/output) to be noticeable.

Dolphin version with the problem? Other Dolphin version without the
problem?
Both these problems are reproducible using Mamario's x86 builds of r7272 and r7393. These don't seem to occur when using Mamario's x86 build of r7271.

32-bit or 64-bit and any other build parameters?
To narrow down the culprit to a limited set of changes, I "updated" my repository to r7272, reverted changes to some files from r7272, and then recompiled Dolphin.
I brought back the "Wiimote Speaker" option that manipulated "IsBusyStrm_" in three different ways, only to see the two different issues (the Wiimote Speaker lag and the input/output delay).
When I reverted r7272's changes to WII_IPC_HLE_Device_usb (.h and .cpp) in my local repository, both these problems seem to have disappeared, at the cost of no Wiimote Speaker input.

OS version and versions of tools/libraries used?
Windows 7 Ultimate x86

Please provide any additional information below.
Well...
I am not sure where exactly (in WII_IPC_HLE_Device_usb) the problem may be (no ACL buffer overflow AFAIK), but I'd think that if the "culprit" is not going to be fixed (for 3.0?), this might be another piece of code that "Disable Wiimote Speaker" option should be toggling. Just a guess. Anyway, feel free to comment.


Related issues 2 (0 open2 closed)

Has duplicate Emulator - Emulator Issues #5221: Randomly Disconnect Wiimote from Dolphin!Duplicate

Actions
Has duplicate Emulator - Emulator Issues #5631: Inconsistent WiiMote Sync on gameloadDuplicate

Actions
Actions

Also available in: Atom PDF