[Not64] GameCube controller analog sticks are too sensitive

All Wii64 related discussions here
Post Reply
User avatar
Nintendo Maniac 64
Posts: 166
Joined: Mon Dec 24, 2012 4:02 am

[Not64] GameCube controller analog sticks are too sensitive

Post by Nintendo Maniac 64 » Tue Aug 24, 2021 11:13 pm

This is basically just a dedicated thread on the subject that I tangentially brought up in the Wii64 issues tracker: For whatever reason, Extrems and I are seeing exactly opposite analog stick sensitivity between GameCube controllers and classic controllers - for me, GameCube controllers are too sensitive, meanwhile Extrems find classic controllers to be too sensitive (not a typo).

I could understand if it Extrems found classic controllers to be insensitive as that could mean it's simply a difference of who is used to what, but for him to find classic controllers overly sensitive is just wacky - I almost kind of wonder if it's game-related.


As usual, my go-to use-case that I've been testing with is BattleTanx: Global Assault (must use EUR rom, USA fails to boot as mentioned in the other thread) in deathmatch using the "Rino" tank (available as the default tank if you select "Dark Angels" as your gang). With a 1st party classic controller and/or nunchuck, the Rino can rotate 360 degrees in about 3 seconds while, with a 1st party GameCube controller, the Rino only takes something like 2 seconds to rotate 360 degrees.

And on a real N64 with a 1st party controller, the Rino also takes about 3 seconds to rotate 360 degrees.


I am unsure however of Extrems' status regarding his nunchuck analog sensitivity - I don't suppose that could help shed some light on this discrepancy? Heck I'd even be willing to take a video recording demonstrating what I'm describing showing the differences between a N64 controller on a real N64 console, classic controller on Not64, and a GameCube controller on Not64.


EDIT: Also I do not experience this issue in Wii64, though in that version of the emulator the GameCube analog sensitivity still seemed a teeny bit more sensitive but that's easily within margin of error between different controllers since using a new SSBU GameCube controller resulted in analog sensitivity that was even more similar to classic controllers.
User avatar
Papy.G
Posts: 916
Joined: Mon Mar 04, 2019 6:14 am
Location: France, Occitanie
Contact:

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Papy.G » Wed Aug 25, 2021 11:28 am

Sensitivity<>precision

If the stick hits the end of his race without getting to the ultimate value it is supposed to output, it is too precise.
If it outputs its max value halfway its race, it is too sensible.

The dead zone is usually stretched or shrunk along with such behaviours.
DMG/MultiFreq OC/EDGB/EZF Jr, AGB/SC miniSD, NTR/NeoMK3, USG/flashme V8/SC miniSD
DOL001(EUR)/RGB/GCPlug/GBP/SD2SP2, RVL 001(EUR)/RGB/CMP/WiiSD

Zelda WW with Tingle Tuner in split screen was what the GC RF modulator was made for! (Video)
User avatar
Nintendo Maniac 64
Posts: 166
Joined: Mon Dec 24, 2012 4:02 am

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Nintendo Maniac 64 » Fri Aug 27, 2021 8:15 pm

Papy.G wrote:
Wed Aug 25, 2021 11:28 am
If it outputs its max value halfway its race, it is too sensible.
This is the closest to what is happening, but what seems to actually be happening is that the GameCube analog is hitting a max value that is substantially greater than what the N64 analog stick is hitting (and no, this was not tested with a wobbly worn-out N64 analog stick but rather the least worn one that I have).

And it sounds like Extrems is seeing the exact same behavior but only with the Classic Controller analog sticks instead.


It may be worth noting that, at least in some games on a real N64, you can input greater analog values than the actual physical analog stick can provide. I know this because I have an N64 racing wheel that lets you adjust the steering sensitivity, and at least one of the settings is substantially more sensitive than the N64 analog stick, allowing one to turn sharper or quicker in-game.

I know that this occurs with Star Wars Episode 1 Racer for example which is almost like cheating since it lets you use some of the faster but worse-handling pod racers like Sebulba with turning more comparable to the slower pod racers like Neva Kee, and I think that too is a game where one can tell that the GameCube analog sensitivity is overly-sensitive in Not64.
User avatar
Papy.G
Posts: 916
Joined: Mon Mar 04, 2019 6:14 am
Location: France, Occitanie
Contact:

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Papy.G » Sun Aug 29, 2021 1:34 pm

Strange that an emulator doesn't max the input value to the max physically reachable on an original controller…

The GC/Wii Thrustmaster Kart Challenge Wheel offers a sensitivity setting too, although I never used it. I know that it can be a way of "cheating" for faster, if not greater input values, as my son prefers the worn-out Thrusmaster Harry Potter controller to play Burnout2, and I know this controller makes it very hard to get Link just walk instead of always running.
DMG/MultiFreq OC/EDGB/EZF Jr, AGB/SC miniSD, NTR/NeoMK3, USG/flashme V8/SC miniSD
DOL001(EUR)/RGB/GCPlug/GBP/SD2SP2, RVL 001(EUR)/RGB/CMP/WiiSD

Zelda WW with Tingle Tuner in split screen was what the GC RF modulator was made for! (Video)
User avatar
Nintendo Maniac 64
Posts: 166
Joined: Mon Dec 24, 2012 4:02 am

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Nintendo Maniac 64 » Sun Aug 29, 2021 7:40 pm

Papy.G wrote:
Sun Aug 29, 2021 1:34 pm
Strange that an emulator doesn't max the input value to the max physically reachable on an original controller…
It's my understanding from the Project64 N-rage input plugin that a real physical N64 analog stick only reaches something like 67% of the full range that it can actually transmit to the console, e.g. if we assume it's an 8bit analog stick like the GameCube (which it isn't really since it's mechanical, but bare with me), then the physical N64 analog stick only reaches a range of ~170 rather than the full 256 values of 8bit.

I could be completely off-base with this, but it certainly lines up with what I'm seeing whereby the GameCube controllers (at least on my system; it'd be the classic controllers on Extrems' system) are reaching that full 8bit range in a sort of 1:1 manner rather than being clamped down to the more limited range that a real physical N64 analog stick can achieve.
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Extrems » Sun Aug 29, 2021 8:54 pm

The raw value is passed through for GameCube Controllers (except when using an Extenmote). Classic Controllers are scaled to a -80,80 range.
User avatar
Nintendo Maniac 64
Posts: 166
Joined: Mon Dec 24, 2012 4:02 am

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Nintendo Maniac 64 » Thu Sep 02, 2021 11:24 pm

Extrems wrote:
Sun Aug 29, 2021 8:54 pm
The raw value is passed through for GameCube Controllers (except when using an Extenmote). Classic Controllers are scaled to a -80,80 range.
I don't suppose you could point me to where in the source code the according lines of code are that control this functionality?

I may be barely a coding amateur, but I did manage to recompile mGBA for the 3DS to use a custom icon, so I'm curious if I can maybe try a similar thing here but instead making the gamecube controllers also scale to a -80,80 range.
Last edited by Nintendo Maniac 64 on Fri Sep 03, 2021 9:33 pm, edited 1 time in total.
User avatar
Nintendo Maniac 64
Posts: 166
Joined: Mon Dec 24, 2012 4:02 am

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Nintendo Maniac 64 » Fri Sep 03, 2021 10:17 pm

Is there a particular reason why this all can't just be another setting.cfg (and therefore a meta.xml) argument like several of the other more advanced functions like "videomode", "skipmenu", etc? Something like an "analogsensitivity" argument that's either 0 (current behavior), 1 (gamecube matches current classic controller behavior), or 2 (classic controllers match current gamecube controller behavior).

In theory then I'd want a value of 1 while you'd want a value of 2.


BTW for reference, it seems that emukidid's Wii64 fork has the GameCube stick's value multiplied by 5 and then divided by 6 (...wouldn't it have been simpler to just divide by 1.2?) which comes out to a value of ~213 which may explain why I found GameCube controllers to still be a teeny bit more sensitive than Classic Controllers in his fork (from my math, dividing by 1.45 aka multiplying by 20 and then dividing by 29, would much more closely match the classic controllers; or for a simpler equation that gets you within 3.5% margin is to multiply by 5 and then divide by 7 aka dividing by 1.4 resulting in a value of ~183):
Last edited by Nintendo Maniac 64 on Sat Sep 04, 2021 2:56 am, edited 5 times in total.
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Extrems » Fri Sep 03, 2021 10:32 pm

Dividing by 1.2 would imply an integer to floating-point conversion, loading of a floating-point constant, a floating-point to integer conversion, and a integer truncation.
User avatar
Papy.G
Posts: 916
Joined: Mon Mar 04, 2019 6:14 am
Location: France, Occitanie
Contact:

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Papy.G » Sat Sep 04, 2021 8:39 am

Typically what high level programmers tend to ignore.
To add to that, integer computation usually is dramatically faster than floating point one, to the point you can sometimes achieve the same in more operations but still less time.
DMG/MultiFreq OC/EDGB/EZF Jr, AGB/SC miniSD, NTR/NeoMK3, USG/flashme V8/SC miniSD
DOL001(EUR)/RGB/GCPlug/GBP/SD2SP2, RVL 001(EUR)/RGB/CMP/WiiSD

Zelda WW with Tingle Tuner in split screen was what the GC RF modulator was made for! (Video)
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: [Not64] GameCube controller analog sticks are too sensitive

Post by Extrems » Sat Sep 04, 2021 1:26 pm

Nah, floating-point multiplications are much faster here, but not fast enough to make up the other costs in this case.
Post Reply