Project

General

Profile

Emulator Issues #11608

GameCube Controllers with WiiU Adapter do not calibrate properly on second run

Added by cangelo 11 months ago. Updated 10 months ago.

Status:
Fixed
Priority:
Normal
Assignee:
% Done:

0%

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

Description

Game Name?
F-Zero GX
Metroid Prime (Revision 2)
Paper Mario

Game ID? (right click the game in the game list, properties, info tab)
GFZE01
GM8E01
NAEE01

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)
b3e4932731c63b98f0617e6764cc364d
fdfc41b8414dd7d24834c800f567c0f8
db1a0353a29c3234a2f32b090357d878

What's the problem? Describe what went wrong.
The Super Smash Bros. Ultimate version of the GameCube controller has different deadzones from the original GameCube controllers using the GC Controller Adapter for Wii U. The games most affected by this are F-Zero GX and Metroid Prime.
The control stick in F-Zero GX is about +15 values away from the typical deadzone. Metroid Prime is unplayable as the right trigger is much more sensitive than normal, making Samus exclusively aim.
Virtual Console games like Paper Mario seem to be unaffected. I am unable to rip any Wii games to test. Super Mario 64 and Mario Kart 64 were also tested.

Booting via the Wii System Menu or the GameCube BIOS is a cheap way to circumvent this issue.
With homebrew, booting through Neogamma using MIOS or using Gecko OS/Nintendont will also do the trick.

Priiloader, a remainder from my BootMii nand, is the fastest "solution" from using its autoboot feature.

What steps will reproduce the problem?
Boot up any GameCube game with the Super Smash Bros. Ultimate GameCube Controller.
Booting a game via the Wii Disc Channel, the GameCube BIOS, or some homebrew software will fix this issue.

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Revision 08b95c3 (5.0-9723)

Is the issue present in the latest stable version?
Yes

If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)
???

If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible. Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too. For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer

What are your PC specifications? (CPU, GPU, Operating System, more)

[PC specs here]
Intel Core i7-7500U (Kaby Lake GT2), Integrated Graphics, Ubuntu Minimal 64-bit + KDE

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

The mIOS or the IPL probably calibrates the GameCube controllers at startup as well as any IOS the N64 Virtual Console uses.

regular.png (561 KB) regular.png Regular Boot Calibration cangelo, 03/12/2019 03:39 AM
hotplugged.png (541 KB) hotplugged.png Hotplug Calibration cangelo, 03/12/2019 03:43 AM
genuine.png (549 KB) genuine.png Original Controller Calibration cangelo, 03/12/2019 03:52 AM
ex_rare.mp4 (1.45 MB) ex_rare.mp4 Framedump of broken controller functions. cangelo, 03/14/2019 12:42 AM
common.mp4 (1.52 MB) common.mp4 Framedump of semi-broken controller functions. cangelo, 03/14/2019 12:42 AM
rare.mp4 (928 KB) rare.mp4 Framedump of common controller functions. cangelo, 03/14/2019 12:42 AM
Prime_Dead.mp4 (3.74 MB) Prime_Dead.mp4 Framedump of broken Metroid Prime controls. cangelo, 03/14/2019 05:21 AM
7287
7288
7289

History

#1 Updated by MayImilae 11 months ago

The Super Smash Bros. Ultimate version of the GameCube controller has different deadzones from the original GameCube controllers using the GC Controller Adapter for Wii U.

And what is your source for this?

#2 Updated by Quakluigispeeder9 11 months ago

cangelo wrote:

Game Name?
F-Zero GX
Metroid Prime (Revision 2)
Paper Mario

Game ID? (right click the game in the game list, properties, info tab)
GFZE01
GM8E01
NAEE01

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)
b3e4932731c63b98f0617e6764cc364d
fdfc41b8414dd7d24834c800f567c0f8
db1a0353a29c3234a2f32b090357d878

What's the problem? Describe what went wrong.
The Super Smash Bros. Ultimate version of the GameCube controller has different deadzones from the original GameCube controllers using the GC Controller Adapter for Wii U. The games most affected by this are F-Zero GX and Metroid Prime.
The control stick in F-Zero GX is about +15 values away from the typical deadzone. Metroid Prime is unplayable as the right trigger is much more sensitive than normal, making Samus exclusively aim.
Virtual Console games like Paper Mario seem to be unaffected. I am unable to rip any Wii games to test. Super Mario 64 and Mario Kart 64 were also tested.

Booting via the Wii System Menu or the GameCube BIOS is a cheap way to circumvent this issue.
With homebrew, booting through Neogamma using MIOS or using Gecko OS/Nintendont will also do the trick.

Priiloader, a remainder from my BootMii nand, is the fastest "solution" from using its autoboot feature.

What steps will reproduce the problem?
Boot up any GameCube game with the Super Smash Bros. Ultimate GameCube Controller.
Booting a game via the Wii Disc Channel, the GameCube BIOS, or some homebrew software will fix this issue.

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Revision 08b95c3 (5.0-9723)

Is the issue present in the latest stable version?
Yes

If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)
???

If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible. Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too. For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer

What are your PC specifications? (CPU, GPU, Operating System, more)

[PC specs here]
Intel Core i7-7500U (Kaby Lake GT2), Integrated Graphics, Ubuntu Minimal 64-bit + KDE

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

The mIOS or the IPL probably calibrates the GameCube controllers at startup as well as any IOS the N64 Virtual Console uses.

try downloading zadig or testing this in the newer builds it should be fixed

#3 Updated by Quakluigispeeder9 11 months ago

It seems that someone changed the code in the last few builds as this problem was already fixed and fully prevented from happening much be a new git hub user

#4 Updated by Quakluigispeeder9 11 months ago

Also what adapter are you using because if it's a third part swap it into wii u/switch mode

#5 Updated by JosJuice 11 months ago

Quakluigispeeder9, please read the issue properly before commenting. They have already tested on the very latest version of Dolphin, for one.

#6 Updated by cangelo 11 months ago

MayImilae wrote:

The Super Smash Bros. Ultimate version of the GameCube controller has different deadzones from the original GameCube controllers using the GC Controller Adapter for Wii U.

And what is your source for this?

F-Zero GX has a controller calibration tool in "Options."

The control stick in F-Zero GX is about +15 values away from the typical deadzone.

If I got spare time I could possibly post screenshots.

#7 Updated by cangelo 11 months ago

7287
7288
7289

F-Zero GX controller calibration screenshots.
The analog stick calibration isn't 1:1 using 16:9 aspect ratio.

There are three screenshots.
1. SSBU GC Controller through a regular launch.
2. SSBU GC Controller via hotplugging.
3. Genuine GC Controller.

SSBU GC Controller through a regular launch.
The controller is recognized as a steering wheel.
Controller calibration via launch.

SSBU GC Controller via hotplugging.
Works better than launching normally. Games like Metroid Prime are still unplayable but it is manageable in other GameCube games.
Controller calibration via hotplugging.

Original GC Controller.
This is what you may expect from a genuine console with the SSBU GC Controller.
Original GC Controller calibration.

Side Note:
The SSBU controller works fine with a legit GameCube and the Nintendo Switch.

#8 Updated by cangelo 11 months ago

I got even more images.

Just tested the latest version of Dolphin on Windows 10 Home x64. I got the same issue.

More images: (Imgur hosting because of big images.)

SSBU GC Controller working in F-Zero GX properly.
Real GC F-Zero GX

I cannot prove the issue with Metroid Prime being unplayable in Dolphin with the SSBU GC Controller immediately, but I can confirm that it is playable on legit hardware.
SSBU GC Controller working in Metroid Prime properly.
Real GC Metroid Prime

#9 Updated by JMC4789 11 months ago

All my controllers work fine so I'm really confused as for what's going on here.

Is it only the new Smash controllers? Is there a regression caused by a particular Dolphin build?

#10 Updated by cangelo 10 months ago

JMC4789 wrote:

All my controllers work fine so I'm really confused as for what's going on here.

Is it only the new Smash controllers? Is there a regression caused by a particular Dolphin build?

This is only with the new Smash controllers.

Just updated to 5.0-9751 on Windows and the controller "basically" works now.
It is not perfect though. I got three framedumps from the same session showing varying degrees of "broken."

  1. ex_rare - This thing accidentally happened and I never got to replicate it.
  2. rare - Stick randomly (but commonly at ~1 min intervals) goes to -255, -255. It isn't that impactful and can be fixed by a replug.
  3. common - The controller just works 90% of the time.

#11 Updated by JMC4789 10 months ago

2 is caused by another program pinging your device and is not something Dolphin can fix.

#12 Updated by JMC4789 10 months ago

ex_rare is caused by the controller's sticks being held when Dolphin is powered on, or if you're using a wavebird, not turning on the wavebird before booting a game. Dunno why it does that.

#13 Updated by cangelo 10 months ago

JMC4789 wrote:

ex_rare is caused by the controller's sticks being held when Dolphin is powered on, or if you're using a wavebird, not turning on the wavebird before booting a game. Dunno why it does that.

The opposite seems to be happening. When Dolphin is powered on, the sticks get all messed up. It fixes itself after that. Still need to test on Linux.

Google Drive Web Viewer
Ignore the pinging if that's just a Windows issue.

#14 Updated by cangelo 10 months ago

The control stick is fine in Linux. The problem is everything else.
Right shoulder button and C-Stick is messed up, as demonstrated in Metroid Prime.

#15 Updated by cangelo 10 months ago

I found a related issue with the Emulated Wii Remote and Metroid Prime Trilogy.

If you boot up one game (e.g. Metroid Prime 2), exit, and boot into another game (e.g. Metroid Prime), the Emulated Wii Remote will have the same issues my SSBU GC Controller has been having.

On a normal Wii, the Wii Remote will reconnect. This doesn't happen with the Emulated Wii Remote and the game becomes broke unless if you set some settings like Auto-Hide IR and reconnecting the extension via the controller configuration.

#16 Updated by Billiard26 10 months ago

  • Regression changed from No to Yes
  • Assignee set to Billiard26
  • Subject changed from GameCube Controller Calibration for SSBU GC Controllers to GameCube Controllers with WiiU Adapter do not calibrate properly on second run

GCAdapter mis-calibration on second run is caused by the PAD_GET_ORIGIN flag only being set for newly attached physical controllers.

I'll get it fixed.

Regarding emulated wiimotes..

What is "game becomes broke" supposed to mean?
What is the problem?

#17 Updated by cangelo 10 months ago

Billiard26 wrote:

GCAdapter mis-calibration on second run is caused by the PAD_GET_ORIGIN flag only being set for newly attached physical controllers.

I'll get it fixed.

Regarding emulated wiimotes..

What is "game becomes broke" supposed to mean?
What is the problem?

Metroid Prime Trilogy's Emulated Wiimote Bug
The IR and Nunchuk center gets misaligned in Metroid Prime 1 from following the reproduction steps. I am not sure about any motion controls with Metroid Prime 3 because it is untested.

Steps to Reproduce:
1. Run Metroid Prime Trilogy
2. Launch Metroid Prime 2
3. Press "Quit" from the in-game menu.
4. Launch Metroid Prime 1

The IR in Trilogy isn't too accurate as it does a lot of rounding, but it is misaligned in Prime 1 from after testing the basic up, down, left, right inputs.

#18 Updated by Billiard26 10 months ago

IR is working just fine, but the Nunchuk is indeed using a wrong encryption key causing it to misbehave. Strange.

#19 Updated by Billiard26 10 months ago

  • Status changed from New to Fix pending

Please make a new issue report for the Nunchuk problem. It's totally unrelated.

#20 Updated by cangelo 10 months ago

Billiard26 wrote:

Please make a new issue report for the Nunchuk problem. It's totally unrelated.

The problem is fixed in the latest version of Dolphin.

#21 Updated by Billiard26 10 months ago

  • Fixed in set to 5.0-9863

#22 Updated by Billiard26 10 months ago

  • Status changed from Fix pending to Fixed

Also available in: Atom PDF