3e075586ea ("To prevent undesirable release of
analogue joystick while using touchpad.") used SDLK_LSUPER from SDL1.2 which is
not used anymore in mupen64plus-input-sdl. Instead SDL2 keys must be used and
only the SDL1.2 compatibility wrapper can reference SDLK_*
While playing FPS game like Goldeneye, The World is not Enough etc with touchpad, the cursor/crosshair/crosswire tries to return to origin/centre thus preventing player to set it to target hence shoot it. Now this can be prevented by pressing Left Window Key, then moving cursor through touchpad.
Different operation systems (Unix vs. Windows) use different line ending types.
It can easily happen that users from different systems edit files and replace
all line endings of a file with the system specific version. This screws up
diffs and makes merges harder.
Git can normalize line endings for specific files and avoid this problem.
Binary files should be marked to avoid accidentally normalization.
SDL2.0 introduces a new input backend for XInput devices. These have a
different layout (buttons, axis, hats, ...) than the previous backends. This
makes the current AutoConfig entries for such devices useless. Unfortunatelly,
SDL2 doesn't inform us about the backend used to talk to a joystick/gamepad.
This makes it hard to decide whether we must search for an entry without
prefix, with Win32 prefix or with a new "XInput" prefix.
Instead the whole ini is parsed and it is not stopped when a section with a
valid entry is finished. Priorities are saved to decide whether a new found
section is interesting for the user config or not. Entries without a known
prefix have the priority 3, one with a known entry have the priority 2 and
entries with the prefix "XInput" get the priority of 1 on windows with SDL2.
The lowest priority is always preferred.
This allows the autoconfiguration to use XInput configs whenever it is
required and use the old configurations everywhere else.
It is easier for a user to keep the old SDL1.2 values for the keys in the
config instead of converting them by hand. This is extreme important when the
default (automatic) config is used.
The plugin allows to use 4 input devices but only space for the force feedback
effects of 3 devices were provided. A fourth device with force feedback support
caused an invalid access.
The name of the Joystick device is automatically set back to '' when
SDL_JoystickClose(...) is called. The compability wrapper has to store the name
inside a private buffer to provide a similar functionality like pre-SDL2.0
versions of SDL_JoystickName.
The Grab API of SDL now needs the SDL_Window to work. This information is not
provided by Mupen64Plus and therefore such functionality is currently disabled
when building against SDL 2.0. Further adjustments of the Mupen64plus API
should consider moving this functionality do a different part which has access
to all necessary informations.
The Joystick API only changed in such way that it is possible to use a
compatibility wrapper.
SDL 1.3 separated KeyCodes and ScanCodes in its API. The new names for the
scancodes can therefore be easier "backported" than the old name which would be
conflict with the still existing KeyCodes. A simple compatible wrapper is
enough to allow coexistense of SDL 1.2 and SDL 1.3 code.