317 Commits

Author SHA1 Message Date
Viačasłaŭ 3019b926c2 Fix typos (#17068) 2024-10-01 17:36:33 -07:00
libretroadmin b8391e233f * PATH_MAX_LENGTH redefined from 4096 to 2048
* Massive reduction in heap space allocation, going from settings struct
264kb to 119Kb
* Use NAME_MAX_LENGTH for base paths/names, etc
* Use DIR_MAX_LENGTH for directory sizes
2024-09-09 05:47:32 +02:00
Eric Warmenhoven c579033abf macos: fix hid driver crash on disconnecting controller second time (#16860) 2024-08-10 07:38:56 -07:00
libretroadmin e543aa25ae Silence some warnings 2024-07-20 15:46:26 +02:00
Eric Warmenhoven 280dcb32f9 Fix several warnings 2023-07-02 05:46:45 +02:00
libretroadmin 7ebab640d7 Cleanups/style nits 2023-02-23 13:15:14 +01:00
serakeri 347ea8157c Various memory access fixes to prevent crashes (#14459) (#15000)
Prevent double free and null dereference when the controller is quickly reconnected.
Handle error when controller device query returns null instead of crashing.
2023-02-21 06:09:36 +01:00
libretroadmin da51b441f4 (wiiu_hid) More buildfixes 2023-02-19 13:20:09 +01:00
libretroadmin 94745eaf31 (WiiU) wiiu_hid - buildfixes 2023-02-19 13:01:11 +01:00
reallibretroadmin 78e935b7a9 (IOHIDManager) Buildfix 2023-02-19 12:20:11 +01:00
libretroadmin 6728d5a2fa (Subsystem) Cleanups 2023-02-19 12:15:45 +01:00
warmenhoven 2946e6704b Fix a crash in for BT HID devices. (#14922)
pad_connection_destroy() frees slots, no need to free it again.
2023-01-29 14:51:36 +01:00
reallibretroadmin 3ae8e35d0e (iOS) Buildfix and cleanup some unused variables 2023-01-09 01:54:45 +01:00
libretroadmin 6a098d37ac Use HAVE_DYLIB instead of HAVE_DYNAMIC when loading shared libraries 2022-11-21 05:37:35 +01:00
LibretroAdmin ace21d28f7 Fix C++ comments 2022-10-01 17:56:16 +02:00
gblues a4b934b71a Fix some HID bugs (#14435)
* Fix Sixaxis gamepad operation

== DETAILS
It looks like commit 78e7d23c14 broke
the DualShock. Sorry, @revvv, but this is probably going to break the
Retrode driver. We'll need to figure out a different solution.

* Fix a bunch of HID implementations

== DETAILS
As mentioned in the previous commit, the thing that broke the DS3
driver was a change to the wiiu HID handler, which did some pointer
math on the data buffer.

The thing is.. there's no reason to do that pointer math. Yet, I found
the same thing on almost every other HID driver: OSX, libusb, wiiusb.
The only other HID driver that did not do this was the Bluetooth
HID driver.

It doesn't make any sense. The only reason it doesn't crash is because
the memory right before the buffer is valid memory.

Change summary:
- remove the weird pointer math from all HID controllers
- remove the `#ifdef apple ...` in the ds3 and gamecube adapter
  drivers, because it's no longer needed.
- in the pad packet handlers, decrement data buffer offset references
  to account for the removal of the buffer manipulation.

* Fix DualShock 4

== DETAILS
Should've only subtracted 1, not 2; and now the pad works.

Also, added a PID to cover newer model DS4s. I picked "R2" out of the air
for the constant.

Tested on Mac OS

* Really really fix iohidmanager_set_report

A huge apology to @23rd for insulting your fix. I was wrong to call you
wrong.

That left the question: why did that change break the DS3?

Well, it's because `IOHIDDeviceSetReport` expects the report buffer to be
just the report. All of RA's HID SetReport calls include the report number
in the first byte, so we have to trim that off.

We actually do this in a different invocation of `IOHIDDeviceSetReport`
elsewhere in the file! This commit applies that same logic to
`iohidmanager_set_report`

This has two benefits:

1. The DS3 works
2. The DS3 no longer requres the user to press the PS button to activate
   it the first time. You plug it in and it Just Works, just like on Wii U.
2022-09-26 14:32:49 +02:00
23rd 171a79e879 Fixed sending of report id to HID device on macOS. (#14430) 2022-09-19 18:01:27 +02:00
revvv 1cd6413e24 Wii U: Fix USB get_device_name(), don't truncate to three chars 2022-03-29 18:25:27 +01:00
revvv 78e7d23c14 Fix USB gamepad support
1. get_axis() didn't use AXIS_NEG_GET() / AXIS_POS_GET()
2. packet_handler() needs byte shift
3. log messages need SWAP_IF_BIG()
2022-03-27 04:35:06 +01:00
twinaphex 03ce03eb81 Remove unused variable 2022-03-25 16:19:39 +01:00
revvv 9b00a932d5 Remove special treatment for Retrode gamepad adapter 2022-03-22 18:17:50 +01:00
gblues bf9706395d Fix gamepad disconnect on unrecognized HID device (#13321)
== DETAILS
So, the reason the gamepad was getting deregistered was
because adapter free code wasn't properly handling null-interface
adapters, causing the gamepad to match erroneously and get
deregistered.

This doesn't fix the weird "Generic SNES USB" detection issue,
but it should make it non-fatal.

Co-authored-by: Nathan Strong <nstrong@tripwire.com>
2021-12-04 12:43:58 +01:00
gblues 1dd15ac516 WIIU: Fix keyboard support (#13308)
== DETAILS
The problem was caused by changing the driver lookup point. The deferred
lookup resulted in the WIIU trying to treat the keyboard as a gamepad which ...
didn't work.

This change short-circuits at the connection event by ignoring mouse &
keyboard connection events.

Tested this with a dev build.

Co-authored-by: Nathan Strong <nstrong@tripwire.com>
2021-12-02 12:43:19 +01:00
twinaphex 619398bbe4 Backport parts of https://github.com/neil4/RetroArch-Lite/commit/73c07602362471f2c82d866250e4b2015edafc07 2021-11-09 23:12:57 +01:00
twinaphex 5ec93d2493 (HID) Fix some warnings 2021-10-20 02:23:01 +02:00