3103 Commits

Author SHA1 Message Date
twinaphex
d01b9c4a09 Cleanups 2018-01-19 21:25:35 +01:00
twinaphex
82f721145c (XDK) Refactor xdk_joypad.c 2018-01-19 21:24:28 +01:00
twinaphex
b4b5ed1630 Rely on xbox input subsystem to attach/detach gamepads 2018-01-19 07:02:47 +01:00
twinaphex
0731a79a4f Pass this to XInputOpen 2018-01-19 06:56:44 +01:00
twinaphex
f71bbeae9f (XDK) Try to autodetect all pads at startup 2018-01-19 06:49:52 +01:00
twinaphex
897c1654ab Reduce usage of string_is_not_equal_fast 2018-01-17 01:03:48 +01:00
twinaphex
61ff51be2f Start using string_is_equal predominantly 2018-01-16 22:53:38 +01:00
Toad King
ccb45a068d fix compiler warning 2018-01-15 04:52:35 -06:00
Toad King
460ceaef97 queue keyboard events and only process them when polling
fixes hitting enter from search box also selecting underlying menu item
2018-01-14 14:37:25 -06:00
Toad King
4fd750b48a add builtin autoconf script for emscripten gamepads with "standard" mapping 2018-01-14 04:24:37 -06:00
Toad King
b3900217da clamp axis values to -1.0 - 1.0, at least firefox can report values outside that range 2018-01-14 03:43:23 -06:00
Toad King
1f8a85615c don't always clear poll state 2018-01-14 02:34:38 -06:00
Toad King
de3581de73 fix analog sticks 2018-01-14 01:35:28 -06:00
Toad King
15c3f56b37 fix phantom button presses 2018-01-14 01:00:46 -06:00
Toad King
21d928ba0e add joypad driver for emscripten 2018-01-14 00:15:30 -06:00
Toad King
38ec1acf8e add mouse support to emscripten 2018-01-13 20:51:30 -06:00
Toad King
0ce1fa7751 fix search box in menu 2018-01-13 20:47:15 -06:00
Toad King
1e212b4248 use emscripten HTML5 API for keyboard events instead of old JS library 2018-01-13 17:56:00 -06:00
Toad King
a77f9c37c6 start on bringing the emscripten video code up to speed with latest emscripten
fix rwebinput
2018-01-13 00:05:07 -06:00
twinaphex
7cbe4ba9a8 Turn some variables static 2018-01-12 01:37:23 +01:00
radius
3b334b60d6 add display name and config name to autoconf 2018-01-11 17:06:14 -05:00
David Walters
c76545bf6c Compile fix. 2018-01-11 17:03:18 +00:00
David Walters
3dc3534498 Merge branch 'master' of https://github.com/libretro/RetroArch into udev_lightgun_api 2018-01-08 14:37:05 +00:00
gblues
5894d0ef86 Remove all HID code from WiiU build via ifdef
== DETAILS
We're trying to track down the source of crashes when switching cores.
To rule out the HID code, this commit does the following:

- Wraps the library imports in an ifdef
- Wraps the object files in conditionals in Makefile.wiiu
- In wiiu_joypad, calls into the hidpad driver are wrapped in ifdef

== TESTING
This didn't solve the "System memory error" crash I've been experiencing.
But, maybe it will impact the other flavors of crashes others are seeing.
2018-01-07 20:26:24 -08:00
vgmoose
890de0e79b allow joycons to work while attached 2018-01-07 12:10:28 +01:00
radius
3ee75e86c5 ake the hack less specific 2018-01-06 13:47:54 -05:00
gblues
5b13f85967 Use the right value for BIT256_GET macro
== DETAILS

The BIT256_GET() macro expects a bit number (from 0-255), and we're giving it
a 32-bit mask (0x000080000).

Solution:

- Define VPAD_BUTTON_xxx_BIT macros using the bit number
- Use said macro in wiiu_input.c
- organizational cleanup:

  * put VPAD_BUTTON_TOUCH into the enum in stead of as a hokey define
  * put the touch bits in the right order
  * put in placeholder enums for (currently) unused bits
2018-01-05 20:03:10 -08:00
Gregor Richards
c8ec048459 More netplay flip nonsense to tear out. 2018-01-05 14:27:02 -05:00
Gregor Richards
8d5a79fc69 Removing long-obsolete now-disfunctional "netplay flip players" feature 2018-01-05 14:27:02 -05:00
twinaphex
cf8e7cd362 (wiiu) small style nits; declare variables at top; C comments 2018-01-05 13:09:05 +01:00
Ian House
5311544c65 Added overlay led driver, fixed a bug in the rpi led driver 2018-01-04 12:56:57 -05:00
twinaphex
edb8ecdbf8 (xdk_joypad.c) Add C codepath for XGetDeviceChanges 2018-01-03 14:13:29 +01:00
twinaphex
b57f0d95c2 Try to fix Apple iOS build - error: initializer element is not a compile-time constant 2018-01-01 15:27:52 +01:00
Alcaro
7fd4d5013d C89 2017-12-31 23:46:11 +01:00
twinaphex
bd16fd49ab Fix ./configure --disable-rgui 2017-12-31 17:53:11 +01:00
twinaphex
5aa159431e Prevent potential crash 2017-12-31 07:15:18 +01:00
Twinaphex
768be8b9c8
Merge pull request #6011 from gblues/master
Fix a couple crash bugs
2017-12-31 07:08:03 +01:00
twinaphex
2884ad2d73 (360) Some buildfixes 2017-12-31 06:09:39 +01:00
Brad Parker
8a8687ec9c add missing ifdef for device change fix and include 2K in the version check 2017-12-30 23:07:59 -05:00
twinaphex
b464014a51 C89_BUILD fixes 2017-12-31 03:27:55 +01:00
misson20000
7cc614263a (NSW) add default button bindings and fix right joystick 2017-12-31 03:04:11 +01:00
gblues
11fed40c79 Fix another crash bug in joypad_connect
== DETAILS

I fixed a similar bug in a past commit, with the same root cause: making
assumptions about the length of the array.

- Add validation to joypad_connection_init() so that if >MAX_USERS is
  requested, a warning is logged and only MAX_USERS is allocated.
- Rewrote the iteration routines so they strictly use the
  joypad_is_end_of_list() method to detect the end.
2017-12-30 16:36:54 -08:00
Twinaphex
0389bc64fe
Merge pull request #5997 from libretro/new_hid
New HID system (courtesy of gblues)
2017-12-30 15:30:03 +01:00
twinaphex
20bb653f1e (Xbox 360) Buildfixes 2017-12-30 12:36:00 +01:00
gblues
65c177a0ee Move HID driver into wiiu/ code
== DETAILS

RetroArch's general HID drivers are intended as a full-on substitute for
other input drivers such as XInput, DInput, SDL, etc. The Wii U port is,
to my knowledge, the first case of heterogenous input drivers working
concurrently.

As such, I've moved things around:

- The HID driver source is moved into the wiiu/input/ directory alongside
  the joypad subdrivers.
- We no longer use the input_hid_init_first() method to instantiate; instead
  we just init the wiiu HID driver directly.
- The HID pad driver and HID subsystem driver enjoy a tighter coupling,
  mainly having to do with the initialization of the joypad connections
  list, because there's no way to inform the HID driver's init() method
  how many slots to allocate.

== TESTING
Will test in a moment, but at  least it compiles cleanly. ;)
2017-12-30 04:43:38 +01:00
gblues
704cc61fd8 Fix bug in autodetect macro, gamepad now works properly
== DETAILS
The gamepad didn't work because I had tried to rename the pad from
'WIIU Gamepad' to 'WiiU Gamepad'.

I added some debug logging and (to cut out a lot of trial-and-error)
discovered that the reason it didn't work was because a bug in a macro
was  using the define literally instead of substituting it (so e.g.
the autodetect handler was trying to match 'WiiU Gamepad' against the
literal string 'PAD_NAME_WIIU_GAMEPAD').

- Fixed the macro bug
- Left a minimal amount of the debug logging in place; may come in
  handy for someone else.
- Updated wpad/kpad/hidpad to use the define constants

== TESTING
Did a test build and confirmed the gamepad responded.
2017-12-30 04:43:33 +01:00
gblues
0ae7ffe0d3 Clean up dumb compile warnings, fix crash bug
== DETAILS

- the free() method of the hid_driver_t interface needs its
  parameter defined as const in order for the compiler to stop
  complaining about losing const-ness.
- if a joypad list is created with <MAX_USERS slots in it, the
  destroy() function will crash because it assumes there are MAX_USERS
  entries.

  To do this, the allocate function creates n+1 slots, and gives the
  last slot a canary value that the destroy() method can then watch for
  when iterating through the list.
2017-12-30 04:43:27 +01:00
gblues
52c754cfa8 Split wiiu_gamepad into three sub-drivers
== DETAILS
Well, after a lot of code analysis, this seems like the
best way to handle things on the Wii U without also completely
re-architecting the I/O handling in RetroArch.

How it works:

- the top-level wiiu_joypad driver is now nothing more than a
  delegator.
- the wiiu-specific drivers live in `wiiu/input/`
- wpad_driver.c handles the WiiU gamepad
- kpad_driver.c handles the wiimotes
- hidpad_driver.c will handle HID devices like the GC adapter, DS3/DS4, etc.

  (I say "will" because this isn't implemented yet)

== TESTING
Haven't actually tried the build to see if it works, but it does
compile.
2017-12-30 04:43:18 +01:00
gblues
8f900de65e Clean up USB VID/PID declarations
== DETAILS

USB Vendor and Product IDs are in little-endian byte order, and they
need to be byteswapped on big-endian systems.

This approach allows us to use the standard hex notation for the VID/HID
values, and give them meaningful names, and only swap on the platforms
that need it. Also prevents having to abuse SWAP16() in the platform-
specific code.
2017-12-30 04:43:03 +01:00
gblues
0f66bc3297 Implement HID read loop, add debug logging
== DETAILS

I haven't figured out how I'm going to get the data read via HIDRead()
funneled back to the adapter--the handle_packet() method doesn't actually
get called anywhere.

I'm probably going to need to do more tweaking to the function pointer
list.

This commit also adds logging for the data read via HIDRead.

== TESTING

I used my "stress test" (which I used to reproduce the crash caused
by the old HID implementation), and it did not crash.
2017-12-30 04:41:30 +01:00