We don't throttle by frames, we throttle by coretiming speed.
So looking up VI for calculating the speed was just very wrong.
The new ini option is a float, 1.0f for fullspeed.
In the GUI, percentual values are used.
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.
Using the XPM format for images has become a maintenance problem because
people don't know how to create them. This commit removes all XPM images
and all C files that contain PNG images. DolphinWX now uses the PNGs
in the Resources folder instead, just like DolphinQt and DolphinQt2 do.
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
This reverts commit 81414b4fa2edadf0b2a2bb0bd4df61dd59165eec, reversing
changes made to b926061f641692ae31bacbeba304f5941db7d3bc.
Conflicts:
Source/Core/DolphinWX/Frame.cpp
Source/Core/VideoCommon/VideoConfig.cpp
Source/Core/VideoCommon/VideoConfig.h
It's so that the string in ControllerConfigDiag will match the string
in GameCubeConfigPane. Right now, it unnecessarily appears twice in
the list of strings to translate.
Commit 33487ab5f20309e33b4734dbea9201b5b0d893a2 introduced a regression
where items would vanish from the toolbar. This adds a call to Realize()
after the reinsertions of the play/pause button as required per
documentation.
Thanks to Simonwayneee for noticing this!
This fixes changing the play/pause button's label depending on the
emulation state. Before, wxToolBarToolBase's SetLabel() function was
used. This function, however, is not implemented in wxGTK which leads to
the label not changing on linux when the button is clicked. Although the preferred
method (according to the wxWidgets documentation) to change the properties
of a tool is to use the toolbar's setters, there is no such setter for
the label. Therefore, this implements a workaround where the
button is deleted and readded afterwards with the updated properties.
Thanks to linkmauve for noticing this!
Rather than rely on the developer to do the right thing,
just make the default behavior safely deallocate resources.
If shared semantics are ever needed in the future, the
constructor that takes a unique_ptr for shared_ptr can
be used.