Dolphin, the GameCube and Wii emulator - Forums

Full Version: Is it possible to emulate the Gamecube controller perfectly?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
What controller settings should be used with my dual port Mayflash to ensure that it is an exact emulation of the console?
Does the console assign different radius and threshold per game?
Is there anyway for me to test these settings through a title for the Wii/Gamecube to ensure that my controller settings emulate perfectly?
Hmm well I'm not sure exactly what you are after but I'm sure I have the answers. I know exactly how the console reads the controller and to emulate that you simple do this in the firmware of the adapter its self. Most adapters like Mayflah do not read the full signal string and make some guesses. Also their code is closed and not open source like so many other adapters out there. The adapter I make does read the entire signal and reads the controller in the very same manner as the console does.

but I dont think that is what you are asking...

The next step is to take that info and package it for windows or what ever OS you like. The best way to do this is with a HID drivers. Since just about every OS including some consoles know what HID is and how to read it, its clearly the best choice ( unlike Mayflash that uses a driver ).

Now dolphin simply uses DirrectX to see the HID data. So DX is like a interpreter if you will.
GC controller -> adapter firmware -> HID data -> DX -> dolphin.

Now the problem here is that after you go through all of the chains of commands data is no longer the same, I could send the raw data to Dolphin but a dev would have to read it properly and build an interface for that. Though its pointless really because DX encapsulates it very well.

Again, not sure that is what you are after?

In a simplified vague sense... You can make dolphin read the GC controller in the same manner but there is no way to tell you how as every adapter is not the same. With my adapters you can download a saved layout for the dolphin GCpad and dont have to configure it yourself. Though dont count on mayflash doing that Wink So maybe what you are asking is for someone that has saved a good mayflsh profile so share it with you?

On that note its very important you calibrate the GC pad and also the windows driver first.

from a source on the net
Quote:Like most analog controllers, the GameCube controller self-calibrates when the console is switched on, setting the current analog stick and L and R buttons' positions as "neutral," which may cause problems if the controls are not actually in their neutral position during calibration. Holding down X, Y and start/pause for three seconds at any time will recalibrate the controller. Unplugging and reconnecting the controller, and in the case of the wireless WaveBird controller, turning the controller off and back on, will also force a recalibration.

Calibration in windows is done in the control panel for the adapter. Then and only then, you can set the dead zones to you liking. Again DZ's vary with adapters.

Hope that helped.
Thank you for your response ulao.

I appreciate the insight from an experienced developer such as yourself.

Simply put, I would like my Dolphin setup to be an exact replica of the console, meaning if someone else were to try this setup they would be unable to tell the difference between emulation and console.

I am familiar enough with the calibration process that I believe my controller is correct through Windows control panel

My concerns are with Dolphin and values for radius and threshold.
How would you suggest that I fine tune my controller to achieve a one to one experience?
Well again I did this myself with my adapters. Using something like may flash would require doing the same. You need to run your console next to the emulator and load Zelda for example and compare. Do things like aim the arrow and see how much it takes to move the bow, then match the dead zone up on the PC end. There is no way to do this other then trying to mach every control up.

My emulator system is hidden in an armoire and my adapters come out of my entertainment center. Very often I can be in a game playing and a friend may stop by asking where I got X system. Personally I find it fun to mess with them as they have no clue its a emulator.
The calibration screen in F-Zero GX is the best thing for checking stick sensitivity while in-game.
Thank you ulao, I will consider your method of comparing my emulation to a console.

Thank you tueidj for suggesting GX.
On the console during this calibration screen what are the highest and lowest XY values (before correction)?
How would you recommend I figure my threshold and square stick values?
Here is what the range of a regular gamecube controller looks like:
[Image: fzero_cal.bmp]
X:Y co-ordinates for each point of the octagon, starting at the top and moving clockwise:
0, 106
72,86
107, 0
80, -73
0, -98
-67, -79
-104, 1
-77, 80
The controller itself doesn't really have a deadzone, but the one suggested by the game (the blue circle) looks like it covers about 5% of the possible range.

For contrast, this is what the range of a classic controller looks like (values are scaled up directly to GC controller range):
[Image: fzero_cc_cal.bmp]
And this is what a PS3 controller looks like (no scaling or correction, native values):
[Image: fzero_ps3_cal.bmp]
Thank you for sharing this info with me, this is exactly what I needed.

Now that I have my radius set, I am interested in fine tuning my threshold values.
Do you have any tips for figuring what value I should use for threshold?
Also is square stick necessary for a Gamecube controller?

I am also experiencing issues with my rumble feature in Dolphin. I can test rumble just fine in Windows control panel but when I go to enable rumble on Dolphin it is blank.
[Image: bix5O36.png]
You have selected "SDL/1/USB GamePad". At least on Windows, SDL never detected the rumble from my USB controller... Try choosing "DInput/1/USB GamePad" (or "XInput/1/USB GamePad", if available)
Thanks Jhonn I now see the options Constant, Ramp, Square, Sine, Triangle, Sawtooth Up, and Sawtooth Down.
However when I press test after selecting Constant, Ramp or Sine there is no response.
When I try Square, Triangle, Sawtooth Up or Sawtooth Down it causes Dolphin to crash.
Pages: 1 2