Commit Graph

14218 Commits

Author SHA1 Message Date
Ryan Houdek af6a5ddafe Fixup typo in GCAdapter 2016-01-06 00:41:00 -06:00
Ryan Houdek 1dcc199a63 Fix GCPad recalibration shortcut.
Dolphin has supported the recalibration shortcut (X+Y+Start) for quite a long while. So if someont's axises are terrible, you could easily
recalibrate.
Games even get the initial calibration upon boot(Most of the time).

While changing over the GCAdapter code, I was testing to make sure the reset and calibration shortcuts still worked, turns out they didn't work at
all.
Looking in to the problem, we capture the combination properly, and we wait three seconds until we actually fire that off recalibration.
The problem is for Nintendo's SDK to properly handle recalibrating, we need to send back data saying that it needs to recalibrate.
On hardware this is done as part of the 64bits of data the controller sends back to us.
On holding of the controller, bit 61 of the return value is set, which the Nintendo SDK catches, and then signals immediately afterwards a CMD_ORIGIN
command in order to recalibrate the controller.
We were outright ignoring this bit, so the library wasn't ever recalibrating. I suspect in the past the class itself used to use the calibration data
to to offset the data, but somewhere along the lines it got munged out of existence.

The Gamecube adapter does this shortcut in a bit of a unique way, instead of sending the command and having the library support it and what have you.
Once holding the shortcut for the amount of time, the adapter reports back that the controller has actually been disconnected. Then when you let go of
the combination, the adapter states that a new device has been connected to that port, and the recalibration happens because a new device is
"connected."

This fixes controller calibration for both emulated GC controllers and also the Wii Gamecube Adapter.
2016-01-06 00:41:00 -06:00
Ryan Houdek 49410576e9 Make the Wii U Gamecube adapter work with less magic.
The Wii U Gamecube controller adapter setup has always been a bit weird. It tries to be as automatic as possible to make the user experience as easy
as possible.
The problem with this approach is that it brings a large disconnect in the user experience because you have the Gamecube controller setup with regular
gamepads and then for some reason below that you have a "direct connect" option which will cause the Gamecube Adapter to overwrite the regular inputs
if something was connected.
While this works and allows the user to only click one checkbox to get the device working, it breaks the user's experience because they don't really
know what "direct connect" means and won't look it up to figure out what it is. Just expecting the device to work (At least one occurence of this in
the IRC channel in the last week).

This way around also had the terrible nature of making the code more filthy than it needed to be. The GCAdapter namespace was parasitic and hooked in
to the regular GC Controller SI class to overwrite the data that it was getting from the default configuration.
Now instead we have a specific SIDevice class for the Wii U Gamecube adapter. This class is fairly simple and is a child of the regular SI Gamecube
Pad device and only reimplements what it needs to.
This also gives the ability to configure controllers individually, which allows the user to configure rumble individually per pad input.

Overall the code is cleaner, and it fits more in line with how the rest of Dolphin works.
2016-01-05 13:44:37 -06:00
Ryan Houdek 6e932af831 Add two missing values that can fit in GCPadStatus 2016-01-05 13:44:37 -06:00
Ryan Houdek 371e9f4fae Move SI_GCAdapter over to InputCommon 2016-01-05 13:44:37 -06:00
Markus Wick 0da8bd0f61 Merge pull request #3444 from RisingFog/avidumpfixes
AVIDump Clean Up and Fixes
2016-01-05 10:38:07 +01:00
Ryan Houdek e8e0ad3e52 Merge pull request #3408 from Tilka/fcmp
JitArm64: fix fcmpo/fcmpu
2016-01-04 22:19:32 -05:00
Ryan Houdek b00bb300e5 Merge pull request #3447 from degasus/arm
JITArm64: Single precision + FPRF
2016-01-04 22:09:44 -05:00
Mathew Maidment 0509292f86 Merge pull request #3431 from stenzek/shadercache
ShaderGen: Remove virtual methods and string from ShaderGeneratorInterface.
2016-01-04 19:11:14 -05:00
Markus Wick 8b3bf1557f Merge pull request #3445 from jake8/add-crop-hotkey
Added Hotkey for toggling the Crop Setting
2016-01-04 16:24:22 +01:00
jake8 cc8aeec58c Added hotkey for toggling the crop setting 2016-01-04 10:10:49 -05:00
Markus Wick f3c1cc95fc Merge pull request #3311 from Phatcat/analog_input_android
[Android] More analog input configurations + misc
2016-01-04 14:57:43 +01:00
Markus Wick d29b406292 Merge pull request #3433 from lioncash/gl
GLInterface: Minor changes
2016-01-04 13:49:40 +01:00
Markus Wick ca7160f714 Merge pull request #3434 from lioncash/enum
OnScreenDisplay: Make CallbackType an enum class
2016-01-04 13:47:22 +01:00
Markus Wick 3045e08daf Merge pull request #3430 from lioncash/compare
ProgramShaderCache: Simplify SHADERUID comparison operators
2016-01-04 13:42:39 +01:00
Phatcat f62054e467 Android: More analog input configurations
Lets the user set the following in intervals of 10 between 10 and 100;
- Stick/Radius (default 100,000000)
- Triggers/Threshold (default 90,000000)
- Tilt/Modifier/Range (default 50,000000) + mapped Tilt/Modifier button
to the configurations for wiimotes & nunchuks
2016-01-04 13:35:04 +01:00
Phatcat 158f0e8102 Android: Added categories to input controls
- Seperates input configurations into categories
- Reworked input configurations to reuse more strings
2016-01-04 13:19:44 +01:00
Phatcat cfe8400cdd Android: Revision of PR 3253 (Wiimote controls)
- Fix small error in NativeLibrary (line 141)
- Fix faulty indentment in arrays.xml
- Rework numbering system to be more accessible.
2016-01-04 13:19:42 +01:00
Chris Burgener fe4e99d6bf AVIDump Clean Up and Fixes 2016-01-03 18:39:52 -05:00
Ryan Houdek 465ef93beb Merge pull request #3441 from Sonicadvance1/opensles_audio_delay
[OpenSLES] Fix a delay in audio processing.
2016-01-03 18:34:20 -05:00
Lioncash 1bcfae5fd7 OGL: Correct unique_ptr types
By default unique_ptr will call delete on the given type if an array
qualifier isn't present, not delete[]. It's important to explicitly
specify an array is being handled.
2016-01-03 16:00:16 -05:00
Ryan Houdek a898aa1585 Merge pull request #3436 from endrift/fix-libusb
HW: Fix libusb support for older libusb APIs
2016-01-03 12:35:08 -05:00
Ryan Houdek 1db01a8c56 [OpenSLES] Fix a delay in audio processing.
A failure on my part. I was updating the two buffers in the wrong order, so we were always a buffer behind in sending audio out to OpenSLES.
2016-01-03 11:33:38 -06:00
Ganael Laplanche fb3b1e4eb0 Add missing header for sprintf() 2016-01-03 01:30:39 -08:00
Jeffrey Pfau d4e2c9fa98 HW: Fix libusb support for older libusb APIs 2016-01-03 00:53:31 -08:00
Lioncash 01f99a04a2 VideoBackend: Get rid of a boolean global
Also gets rid of global headers
2016-01-02 18:03:28 -05:00
Lioncash edda018d54 OnScreenDisplay: Make CallbackType an enum class 2016-01-02 14:57:55 -05:00
Lioncash f3c05d39b9 GLInterface: Make GLInterfaceMode an enum class 2016-01-02 14:26:43 -05:00
Lioncash df9c9ad706 GLInterfaceBase: In-class initialize protected members
Gives the class a well-defined initial state
2016-01-02 14:26:42 -05:00
Lioncash 11a7defdba WGL: Make class member private 2016-01-02 14:26:41 -05:00
Lioncash df2f6089be GLInterface: Add missing override specifiers 2016-01-02 14:26:36 -05:00
Stenzek 617f9d9532 ShaderGen: Remove virtual methods from ShaderGeneratorInterface, move string buffer to ShaderCode
This fixes the crashes occuring at startup with a non-empty shader cache.
Because LinearDiskCache reads/writes to the storage of ShaderUid, ShaderUid must be trivially copyable.
Additionally, adds a static assert to LinearDiskCache to ensure this doesn't happen in the future.

The initialization of ShaderUid data has been moved to the code generation functions, so the above condition holds true.
2016-01-02 17:35:06 +10:00
Lioncash 6093d1f72a ProgramShaderCache: Simplify SHADERUID comparison operators 2016-01-01 22:28:42 -05:00
skidau 066af14272 Merge pull request #3409 from sepalani/r_menu_code
RegisterView: View code menu added
2016-01-02 11:40:02 +11:00
skidau 96d8ea5537 Merge pull request #3415 from rabbott99/movie-end-pause
Movie: Fix "Pause at End of Movie" for wii games
2016-01-02 09:08:06 +11:00
Mathew Maidment 988f62dfb1 Merge pull request #3427 from rohit-n/build-pch
Fix building with PCH disabled.
2016-01-01 15:36:48 -05:00
Ryan Houdek b4e9bbb551 Merge pull request #3336 from Sonicadvance1/improve_glextensions
[GLExtensions] Improve the extension loader.
2016-01-01 13:01:51 -05:00
Rohit Nirmal 76333b388f Fix building with PCH disabled. 2016-01-01 10:26:15 -06:00
Ryan Houdek f836e5937f Merge pull request #3422 from Sonicadvance1/Linux_bba_bridge
Support multiple bridge interfaces in Linux.
2016-01-01 04:23:06 -05:00
Ryan Houdek 454ebb7150 Merge pull request #3417 from aserna3/remove_salt_button
[Netplay] Disabled loading savestates
2016-01-01 04:02:43 -05:00
Ryan Houdek 4e22bab71d Support multiple bridge interfaces in Linux.
This allows you to run multiple instances of Dolphin that touch the BBA (Up to a 32 interface limit)
2016-01-01 02:51:31 -06:00
Scott Mansell 552ea58bf5 Merge pull request #3419 from Sonicadvance1/QC_driverdetails
Add a comment to DriverDetails about Qualcomm failing our alpha tests.
2016-01-01 21:50:22 +13:00
Scott Mansell d2e9688ab0 Merge pull request #3388 from spxtr/DQt2
DQt2: Implement Paths config dialog
2016-01-01 21:48:05 +13:00
Scott Mansell 5cd4619a1d Merge pull request #3413 from spxtr/follow-pointers
Allow MemoryWatcher to follow pointers
2016-01-01 21:45:44 +13:00
Rohit Nirmal a551e8adbb Fix building with PCH disabled. 2016-01-01 02:32:53 -06:00
Anthony Serna 42c38cbbd3 Blocked netplay users from desyncing by messing with savestates. 2015-12-31 18:50:45 -06:00
Ryan Houdek 721d319c7b Add a comment to DriverDetails about Qualcomm failing our alpha tests. 2015-12-31 10:14:14 -06:00
rabbott99 d2ef903d1a Movie: Fix "Pause at End of Movie" for wii games.
InputUpdate() is never called during wii playback, so the pause never
executed.
2015-12-30 23:11:40 -05:00
spxtr 525fc4fe8a Allow MemoryWatcher to follow pointers 2015-12-30 19:10:31 -08:00
spxtr 5b2a76458d DQt2: Implement Paths config dialog 2015-12-30 19:03:13 -08:00