This simple change enables the use of Guide button
for Windows 7 users, provided they have DirectX End-User
Runtimes installed. XInput 9.1.0 does not have the hidden
XInputGetStateEx export, so it was not possible to poll for
Guide button.
There are several reasons for this:
1. XINPUT_CAPS_FFB_SUPPORTED flag was introduced in Windows 8,
and therefore only supported by XInput 1.4
2. Despite the name, this flag does NOT indicate whether normal rumble
is supported. This flag is reserved for more complex force feedback,
and according to MSDN it may have went unused on Windows.
This fixes a future (the method is not used yet) bug where
XInputControllerInterface::GetControllerRumbleMotorCount would
erroreously report no rumble support.
If an optional "gamecontrollerdb.txt" file exists in the user directory,
then SDL game controller mappings will be loaded from it.
There is an officially endorsed community sourced database in
https://github.com/gabomdq/SDL_GameControllerDB
* CPU/Recompiler: Use rel32 call where possible for no-args
* JitCodeBuffer: Support using preallocated buffer
* CPU/Recompiler/AArch64: Use bl instead of blr for short branches
* CPU/CodeCache: Allocate recompiler buffer in program space
This means we don't need 64-bit moves for every call out of the
recompiler.
* GTE: Don't store as u16 and load as u32
* CPU/Recompiler: Add methods to emit global load/stores
* GTE: Convert class to namespace
* CPU/Recompiler: Call GTE functions directly
* Settings: Turn into a global variable
* GPU: Replace local pointers with global
* InterruptController: Turn into a global pointer
* System: Replace local pointers with global
* Timers: Turn into a global instance
* DMA: Turn into a global instance
* SPU: Turn into a global instance
* CDROM: Turn into a global instance
* MDEC: Turn into a global instance
* Pad: Turn into a global instance
* SIO: Turn into a global instance
* CDROM: Move audio FIFO to the heap
* CPU/Recompiler: Drop ASMFunctions
No longer needed since we have code in the same 4GB window.
* CPUCodeCache: Turn class into namespace
* Bus: Local pointer -> global pointers
* CPU: Turn class into namespace
* Bus: Turn into namespace
* GTE: Store registers in CPU state struct
Allows relative addressing on ARM.
* CPU/Recompiler: Align code storage to page size
* CPU/Recompiler: Fix relative branches on A64
* HostInterface: Local references to global
* System: Turn into a namespace, move events out
* Add guard pages
* Android: Fix build
This is required for phasing out QSettings usage because game paths were
being saved using the QSettings multi-value format, which is
incompatible with SimpleIni.