Project

General

Profile

Actions

Emulator Issues #6420

closed

Wiimote not working properly after JP-wiimote-savestate-fixes

Added by idan345 almost 11 years ago.

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

0%

Operating system:
N/A
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

Do not attach files to this issue. Upload them to another site and
link here. Use imgur.com for images.

Have you searched the issue tracker for a similar issue?
Yes, did not find something similar

Game Name?
New SMB wii , Kirby's return to dreamland

Game ID?
SMNP01 - smb wii
SUKE01 - kirby

What went wrong?
after rev.1526 , named JP-wiimote-savestate-fixes the wiimote doesn't connect at times, disconnects randomly , and when it does work , it's "half working" , i've uploaded a video to YouTube to show you what's "half working"(basically- the wiimote is connected, i press the button in the game using the wii mote which is connected, but it says it has no communication, which is not correct as i can click and it gets it.)

What did you expect to happen?
i had expected the wiimotes to keep their behavior from rev.1522, with better wiimote savestates fixes :)

What steps will reproduce the problem?
try to play with a rvl-cnt-01 wiimote.

What version of Dolphin were you using (please test the latest version
from http://dolphin-emu.org/download first, 3.5 or 3.5-367 are not valid
tests!)?
i have been trying these revisions (took some old ones to see) :
3.5-1204 - works
-1243 - works
-1344 - works
-1501 - works
-1522 - LAST REV THAT WORKS.

3.5-1526 - not working
3.5-1527 - not working
3.5-1528 >> 1551 - not working
3.5-1559 - not working
3.5-1563 - not working
3.5-1576 - latest rev, not working.
64 or 32 bit Dolphin?

What version of Dolphin used to work?
3.5-1522

What Operating System were you using and what are your hardware
specifications?
Windows 8 x64

64 or 32 bit Operating system?
64

Any other relevant information or links to logs:

uhm , i tried all the possible combination :

  • 3 different bluetooth dongles (+1 integrated bluetooth)
  • 2 different computers
  • 2 different WiiMotes
  • every setting combination possible (with audio/without audio, with motor, without motor.. ALL of them)

youtube vid- http://www.youtube.com/watch?v=N3tiNFndVlw&

Actions #1

Updated by degasus almost 11 years ago

I can confirm this. Reverting this merge from current master fixes this issue.

Actions #2

Updated by rachelbryk almost 11 years ago

I never had any issues with i tested it...

Actions #3

Updated by john.s.peterson almost 11 years ago

Reproduce

Place the Dolphin folder in Dropbox (and paste the link to the Dropbox folder) because

that can make it easier to reproduce the problem because it allow

  • running the same code and settings
  • reading User/Logs/dolphin.log

Log

Run Dolphin.exe from this folder

because

  • it has the log function WiimoteEmu::Spy enabled which is beneficial to identify the problem

State

Run the states from the folder linked in the topic "Log"

with command

./dolphin -e SMNE01.s01
./dolphin -e SMNE01.s02
…

./dolphin -e SUKE01.s01
./dolphin -e SUKE01.s02
…

or with the GUI in "File > Open"

and

  • communicate if the Wiimote input works directly after and a longer while after loading the state
  • share the Dolphin folder from this test because that allow reading User/Logs/dolphin.log from this test

Real compared to hybrid

Communicate if the real Wiimote operation in hybrid mode

that's enabled with the User/Config/WiimoteNew.ini settings

[Wiimote1]
; real
Source = 2
; hybrid
Source = 3

is different because

  • if the hybrid mode is functional the real mode can easily be made functional

More information

There's more information about this patch in the topic "Real Wiimote" at https://github.com/mirror/dolphin-emu/pull/1#issuecomment-18724064 that can be useful to analyse the problem

Actions #4

Updated by wespipes69 almost 11 years ago

Wiimotes are complete broken. Since recent changes, I have to use "hybrid" to even have functionality in game (bypass wiimote screens) BUT even then I have no IR. The wiimote screen takes forever to appear and has a lot of trouble initially syncing up with wiimote. Also, I can only connect one wiimote. I've tried four wiimotes, new and old, and all have the same problem. This is a major regression - please revert as soon as possible.

Everything is perfect in 1487 and was broken by 1545.

Actions #5

Updated by john.s.peterson almost 11 years ago

Read data reply

The problem that the emulated program detect input (f.e. the B button in the NSMB level start screen) but still report that the Wiimote is disconnected can be a result of missing or unsynchronised

  • read data acknowledgement 0x21
  • output report acknowledgement 0x22

because

  • the emulated program expect these reports in addition to data reports from a functional connection

The read data acknowledgement was unintentionally disabled for the real Wiimote in the commit with the title "Saving real Wiimote state"

There's a commit with the title "Adding read data reply to the real Wiimote" that add a read data acknowledgement 0x21 to the real Wiimote

There's a link to a branch that contain this commit in the topic "More information"

There's a link to a folder that contain a build of this branch (in the file Dolphin.exe) in the topic "Log"

Actions #6

Updated by john.s.peterson almost 11 years ago

Removing wait for real Wiimote connection when the Wiimote configuration dialog is opened

The wiimote screen takes forever to appear …

This is solved in the commit "Removing wait for real Wiimote connection when the Wiimote configuration dialog is opened" by

not waiting for Wiimote::Initialize when

  • opening the Wiimote configuration dialog
  • booting from the emulated program entry point rather than a state

because

  • it doesn't have meaning in these scenarios but has meaning when booting from a state

Reason for wait

The commit "Saving real Wiimote state" add a wait function to Wiimote::Initialize because

  • the state shouldn't be loaded before the Wiimote connection is established because the Wiimote connection is used to apply the real Wiimote state
Actions #7

Updated by john.s.peterson almost 11 years ago

Connecting more than one Wiimote

Also, I can only connect one wiimote. I've tried four wiimotes, new and old, and all have the same problem

Do you mean that the log write the message

43:20:994 Src\HW\WiimoteReal\WiimoteReal.cpp:569 N[Wiimote] WiimoteReal::Initialize
43:20:994 Src\HW\WiimoteReal\WiimoteReal.cpp:450 N[Wiimote] Wiimote scanning has started.
43:23:880 Src\HW\WiimoteReal\WiimoteReal.cpp:642 N[Wiimote] Connected to Wiimote 1.

when you expect it to also write

43:23:880 Src\HW\WiimoteReal\WiimoteReal.cpp:642 N[Wiimote] Connected to Wiimote 2.
…

because there's more than one Wiimote in the Bluetooth range?

Actions #8

Updated by rachelbryk almost 11 years ago

Should be fixed in revision e36757bec1bc. Let us know if not.

Actions #9

Updated by idan345 almost 11 years ago

Hey.
I just tested this out , I can get past the screen and it gets my wiimote once again (thank you very much)

but!!!!
there's now a new issue.
in the nsmb + other 2 games that require you hold the wiimote HORIZONTALLY , it doesnt work. it keeps on working like VERTICALLY held wiimote.
AKA - Left is Down, Up is Left .. etc etc like holding it

Actions #10

Updated by idan345 almost 11 years ago

needless to say, in rev.1522 it's not like that.

Actions #11

Updated by rachelbryk almost 11 years ago

I can't reproduce that...doesn't nsmbw always control as if you're holding the wiimote horizontally, even if you're not?

Actions #12

Updated by idan345 almost 11 years ago

i guess it doesn't.. the 2 button is now the A one..

Actions #13

Updated by rachelbryk almost 11 years ago

Are you using hybrid wiimote with nunchuck?

Actions #14

Updated by idan345 almost 11 years ago

Okay, I guess it's somehow game specific ?
I went into Super paper mario , it does not occur.
it does however in NSMB + WarioLand Shake it!

Actions #15

Updated by rachelbryk almost 11 years ago

You're probably using hybrid wiimote with nunchuck. That changes the controls in nsmbw, but paper mario should ignore it.

Actions #16

Updated by idan345 almost 11 years ago

that's awkward. since i dont have a nunchuk , and in the dialog it says "real wiimote"

but anyway - my initial issue was resolved.
thank you very much for the fix. :-)

Actions #17

Updated by idan345 almost 11 years ago

Actions #18

Updated by john.s.peterson almost 11 years ago

Removing reading of the emulated Wiimote state in the real Wiimote mode

in the nsmb + other 2 games that require you hold the wiimote HORIZONTALLY , it doesnt work. it keeps on working like VERTICALLY held wiimote.

This is solved in the commit with the same name as the title of this topic by

  • not handling WM_REQUEST_STATUS and WM_READ_DATA in the real Wiimote mode

i.o.w. by making the emulated Wiimote object write only rather than read and write

Problem description

The hybrid Wiimote read the emulated Wiimote object with the intention of

  • synchronising the Wiimote extension with the emulated Wiimote

This doesn't have meaning for the real Wiimote mode because the emulated Wiimote isn't used

The problem was created in the commit "Saving real Wiimote state" because it doesn't solve the problem as described in this topic

Actions #19

Updated by wespipes69 almost 11 years ago

Thanks for the prompt fixes. All my issues have been resolved.

Actions #20

Updated by rachelbryk almost 11 years ago

  • Status changed from New to Fixed
Actions

Also available in: Atom PDF