Avoid unnecessary state changes and reduces the amount of OpenGL calls.
It also puts all the interesting logic at the same place, reducing the
complexity a little.
Add missing #include to various files.
strings.h isn't provided by MSVC so we don't include it there; it's needed
for other OSes/compilers.
Get rid of pre-ISO-C malloc.h includes; malloc is provided by stdlib.h.
Fixes some linuxisms.
Prepend __builtin_ to __clear_cache, calling it without the prefix is a
GNU extension.
Removes the windows-specific hack from sceCtrl
to read keyboard input and instead add a hack to
PPSSPPWindows.
The input mapping is still hardcoded and is the same
as it was in sceCtrl.
Add an std::list to WindowsHost that, curretly, contains
a hardcoded list of preferred `InputDevice`s. Devices
are tried in-order until one of them reports success.
Xinput is preferred over Keyboard. Keyboard always
returns success. Pointers are stored in the std::list
for polymorphism.
Change XinputDevice to report failure as soon as a
device can't be queried, instead of only a frame later.
Picks the first Xinput device available, waits 100 frames between
retries when no devices are available.
Controls are hardcoded so every x360 controller button corresponds
to the PSP button in the same physical position. Input from right
stick and from analog triggers is ignored.
The Xinput code though is overriden by SampleControls' hardcoded
keyboard input. XinputDevice was tested to work with
samples/controller/basic when SampleControls is disabled.
Now builds on Playbook and Dev Alpha
Make emulator more compatible with other OS (case sensitivity, defines, includes)
Uses Android's code paths and backend