Project

General

Profile

Actions

Emulator Issues #1725

closed

Can't use real Wiimote in Animal Crossing

Added by phil.seidensticker over 14 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

What steps will reproduce the problem?
1.Connect a real Wiimote to the computer
2.Start Animal Crossing: City Folk[PAL](Let's go to the city) and try to
use the Wiimote
3.

What is the expected output? What do you see instead?

The Wiimote can't be used in the game. It will connect in Dolphin but not
while playing.

What version of the product are you using? On what operating system?

Dolphin x86 REV3600/3635
Vista 32bit
Athlon X2 5600+ @2.8GHz
GeForce 7600GT
1.0 GB DDR2-Ram

Please provide any additional information below.
Worked in older Revisions but I'm not sure since when it is broken.


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #2030: Can't use a Wiimote in Animal Crossing City FolkDuplicate

Actions
Actions #1

Updated by phil.seidensticker over 14 years ago

I tried REV 4562 and was able to use the wiimote.
Then the same settings with REV4585 and it was broken.

Actions #2

Updated by Anonymous over 14 years ago

  • Status changed from New to Questionable

how about latest svn?

Actions #3

Updated by phil.seidensticker over 14 years ago

Just tried R4655 but got the same problem.
The Wiimote is connected and rumbels when the wiimote option-dialog opens but will
lose connection when I start the game. It works fine with MarioGalaxy and WiiSports
but for Animal Crossing the status-ligths at the wii remote will turn off.

Actions #4

Updated by aegehn over 14 years ago

I'm on 4756 and the problem is still going on with an emulated wiimote.
For every games, the remote is displayed "connected" instantaneously , on Animal
Crossing: City Folks it's hang on "connecting...".

Actions #5

Updated by lpfaint99 over 14 years ago

Issue 2030 has been merged into this issue.

Actions #6

Updated by ayuanx over 14 years ago

Deselect all GC pads in config

Actions #7

Updated by aegehn over 14 years ago

Tried it with both nJoy and Dolphin KB/360 plugins (even if I don't really know how
to deselect GC pads in this last one), and the problem isn't solved. Still sticking
to "connecting".

Actions #8

Updated by ayuanx over 14 years ago

NOT in plugin config, main config-> Gamecube page -> Port 1/2/3/4

Actions #9

Updated by aegehn over 14 years ago

Tried it, but still stuck. I even started a game before which connect perfectly
(NSMBW) adn then launched AACF, but it didn't work either.

Actions #10

Updated by bertholdgiseler over 14 years ago

I am using just the Emulated Wiimote but it does not even works for me! I disabled the
GC-Pads and it didnt work, sorry

Actions #11

Updated by j.rechards over 14 years ago

Im experiencing the same issue

SVN R4872
Real wii-mote
Gamecube controllers set to none.

Wiimote does not respond in Animal Crossing (Lets got to the City)

JitIL 32Bit ,DX9 , Real Wiimote.

FPS wise the game seems to run great but i cant do anything wich kind of spoiles the
fun ^^

Actions #12

Updated by Anonymous over 14 years ago

What happens if you guys toggle the USB Keyboard setting in main config-> Wii page ?

Actions #13

Updated by aegehn over 14 years ago

Nothing. Tested with all wiimotes inactive, an emulated one or a real one.

Actions #14

Updated by Anonymous over 14 years ago

  • Status changed from Questionable to Accepted

I can reproduce issue, no idea what's causing it though

Actions #15

Updated by bertholdgiseler over 14 years ago

thanks!! I love this game...and I think it has something to do with the wiimote-plugin
between REV 4562 REV 4585! :D

Actions #16

Updated by james.straub over 14 years ago

I experience the same exact problem with r4910(and earlier releases).
I tried changing usb/keyboard, unplugging my rumble pad II, assign Port1 and Port2 to
... Nothing works...

When I remove my rumblepad II I get a dialog message after pressing play: "nJoy: No
Gamepad Detected". That seems strange. Animal crossing comes up after I press ok...
My wiimote config has wiimote#1 set to real and the others are set to inactive.
Perhaps some nJoy code is doing something it shouldn't.

Do people with this problem have issues with multiple wiimotes?
I also can't get multiple wiimotes to work on other games. (issue 1725)
Others have the same problem with Homebrew. (issue 2101)

Actions #17

Updated by james.straub over 14 years ago

I compiled the debug version of r4927 and captured the log output. Attached is the
log. It starts just before the "Reconnect Wiimote Confirm" dialog appears and stops
after I pressed the yes button. Before this point the wiimote shows the 1st light on
and the connect wiimote 1 menu option is checked.

I hope this helps...

Actions #18

Updated by james.straub over 14 years ago

Updated info:
My previous results (from my last comment) was performed on a 32-bit Windows XP
quad-processor machine.

I just built and tested the same release on my thinkpad running 64-bit Windows 7. I
got the same exact results.
The only thing that was the same was:

  • Wiimote (new from Costco)
  • Bluetooth adapter (MS stack)
  • The game image

Questions:
Could it be that new WiiMotes are different somehow?
Could this be a bad game image? If so, can I tell by looking at the debug log?

Actions #19

Updated by ayuanx over 14 years ago

The log is incomplete, can't see too much except game disconnected Wiimote.

Actions #20

Updated by aegehn over 14 years ago

To james.straub,

I have the same image as before, and I was able to play it with an emulated wiimote
on an older release of Dolphin, so it's something not working since then.

The fact is, I don't know when "then" is, so it's not very heplful.

Actions #21

Updated by bertholdgiseler over 14 years ago

yes! you can use the new wiimote-plugin in older revisions from dolphin. But if you put
for example the plugin from rev4959 in the directory of rev4252 then it just stucks on
connecting...

Actions #22

Updated by phil.seidensticker over 14 years ago

I just tested r4984 but it still sucks!
The only difference: Dolphin asked if I want to reconnect because my wiimote has
lost connection. (as if there ever was one ~_~) And in the end there was no
connection at all :D

Actions #23

Updated by james.straub over 14 years ago

I figured it out...
I finally got some time to look at this in more detail. I'm new to this code but
after some experimenting I figured out how to get a wiimote (emulated or real)
working in Animal Crossing. In fact this change seems to make my real wiimote more
reliable in other games as well(although I still can't connect two at a time).

I made 2 simple code changes:

  1. I modified the Update() method in WII_IPC_HLE.cpp. I removed the second call to
    DeqReply(). It looks like it was added to improve performance. I could not figure out
    why it caused problems but it did.
  2. That change caused the reply fifo to fill up in WII_IPC.cpp. So, I had to refactor
    EnqReply and DeqReply to increase the fifo size:

void EnqReply(u32 _Address)
{
int idx = replyFIFOPutIdx++ % FIFO_MAX;
if (replyFIFO[idx] != 0)
{
ERROR_LOG(WII_IPC, "Reply FIFO is full, something must be wrong!");
PanicAlert("WII_IPC: Reply FIFO is full, something must be wrong!");
}

replyFIFO[idx] = _Address;
}

u32 DeqReply()
{
int idx = replyFIFOGetIdx++ % FIFO_MAX;
u32 _Address = replyFIFO[idx];
replyFIFO[idx] = 0;
return _Address;
}

Ayuanx,

Could you check this out and work it into the next release? I'm not clear on how this
code works and I'm sure I overlooked a few things.

Thanks!

Actions #24

Updated by phil.seidensticker over 14 years ago

Great work, James!
Finally someone who has a heart for the Nintendo-Animals!^^
Can't wait to test the fixed thing. (hopefully soon :D)
Speed seems to be at 80% in AC, doesnt it?

Actions #25

Updated by james.straub over 14 years ago

After making this change AC is running flawlessly at full speed (well, the background
mountains flicker but who cares).

Actions #26

Updated by aegehn over 14 years ago

If it doesn't impact the others game, maybe a developer could commit the change?

Anyway, thanks for solving the issue.

Actions #27

Updated by ayuanx over 14 years ago

@ james.straub, I don't have this game, so I can't test it.
If you can do more tests on other games, pleae do so and let us know the result.

Actions #28

Updated by james.straub over 14 years ago

@ayuanx
This is a list of Wii games that I have tested and work fine:

  • Mario Cart
  • Marbles Balance Challenge Wii
  • Mario Smash Bro
  • The Legend of Spyro: Dawn of the Dragon
  • WiiMee

I did not compare performance but it seemed good and I did notice that Spyro's looks
much better! The opening screens and video are watchable (normal FPS) after this
change. I'm on vacation so I can't confirm this better but I was surprised just
before I left. I also noticed wiimote connections seem more stable...

Notes:
I wanted to investigate why that code I commented out caused a problem. From what I
understand it shouldn't. Also I'd prefer a cleaner FIFO implementation with some
better logging. I just became a dev member but I'm on vacation and can't do any real
development from here..

Thanks Ayuanx, hope it can get in the release...

Actions #29

Updated by ttnaru over 14 years ago

it is still not fixed. just letting u guys know. it just says connecting...

This is my setup:
rev 5017 32 bit
windows 7 32 bit ultimate
4 GB DDR2 RAM
Sparkle Nvidia Geforce 9400GT 1 GB

I tried opengl and directx, but to no avail, graphics are beautiful (still little
flicker in background in title screen), but the emulated wiimote for this game (and
probably real too) doesn't connect in dolphin or in the game.

Actions #30

Updated by phil.seidensticker over 14 years ago

@ttnaru: the fix was not committed by one of the devs yet. You can try to compile it
on your own using james' code.
I just tried so, but failed. :P
@james: it would be great if you can upload a compiled version with your fix
integradted. Im too stupid to compile dolphin. X_x
@devs:if the fix won't be committed soon, someone should change the status in the
compatibility-list to 'yellow'

Actions #31

Updated by james.straub over 14 years ago

Sorry all I'm still on vacation and can't get to the code.
The missing code: (This is from memory, hope it builds...)

static const int FIFO_MAX=6;
static std::vector replyFIFO(FIFO_MAX);
static int replyFIFOPutIdx=1;
static int replyFIFOGetIdx=1

Init():
replyFIFO.clear();
replyFIFOPutIdx=1;
replyFIFOGetIdx=1;

DoState():
p.Do(replyFIFO);
p.Do(replyFIFOPutIdx);
p.Do(replyFIFOGetIdx);

I should have used a std::queue but I was retrofitting code as I went and never
polished it for release.

@ayuanx If you need anything else let me know.

Actions #32

Updated by bertholdgiseler over 14 years ago

can you upload the files please? :D I dont know where to put the code(s)...sorry

Actions #33

Updated by ayuanx over 14 years ago

You can now test r5024

Actions #34

Updated by bertholdgiseler over 14 years ago

thanks in advance james.straub and ayuanx

Actions #35

Updated by ttnaru over 14 years ago

the animal crossing LGTTC issue with wiimote is fixed definitely in r5038, but the
game-play is much slower than others like 4525. The wii-mote disconnect message is
fixed too. I have a power-saving mouse, so if it says that, I just get out of
fullscreen, and click yes. Direct-X and OpenGL work for graphics, they are both
really slow for me. My computer stats:
Windows 7 Ultimate 32 bit
Pentium D
4GB RAM DDR2 single-sided (yes, I know I can't use it all on a 32-bit OS, LOL)
Sparkle Nvidia Geforce 9300GT 1GB
default settings checked.

Actions #36

Updated by Anonymous over 14 years ago

  • Status changed from Accepted to Fixed

The wiimote works, so the original issue is fixed.

Actions

Also available in: Atom PDF