Commit Graph

735 Commits

Author SHA1 Message Date
LibretroAdmin aeef3d6220 (3DS/CTR) Remove debug button combo that quites RetroArch 2022-10-31 23:02:35 +01:00
LibretroAdmin d506210fbe
(menu_driver.c) Use flags instead of bools (#14500)
* (menu_driver.c) Use flags instead of bools
2022-10-08 22:52:18 +02:00
LibretroAdmin ace21d28f7 Fix C++ comments 2022-10-01 17:56:16 +02:00
LibretroAdmin da13fb0f48 Don't include errno.h in files that don't justify its use 2022-08-25 05:19:30 +02:00
libretroadmin 9590fdd0d4 Cleanups pt.2 2022-05-22 20:29:53 +02:00
Francisco Javier Trujillo Mata 6366fcf8e3 [ORBIS] Remove legacy implementation and compile with Werror 2022-05-21 17:10:35 +02:00
Antonio Jose Ramos Marquez 9dd060dbc8 [ORBIS] some changes for input 2022-05-21 16:31:10 +02:00
OsirizX c6d51fdb32 [ORBIS] Initial changes for PS4 2022-05-21 16:31:10 +02:00
Vladimir Serbinenko c2db12c727
Enable menu toggle button on retrofw devices (#13889) 2022-04-26 09:59:36 +02:00
Vladimir Serbinenko c11a798467
Series of djgpp fixes (#13705)
* features_cpu: Fix clock for djgpp

* frontend_dos_set_fork: Fix wrong id names

* dos_input: Fix missing indexing

* dos_joypad: Fix wrong id name

* Fix menu drawing

Menu is already prescaled to VGA_WIDTH x VGA_HEIGHT in vga_menu_frame. We need
to always use those dimensions

* Change dos compilation from griffin to common

* Set vga menu size to 320x200

* Add DOS compilation in gitlab-ci.yml
2022-03-05 15:53:18 +01:00
Tony 6d5d2e722d
Logging cleanups (#13579) 2022-01-31 18:05:23 +01:00
twinaphex 60eaf14afc C89_BUILDFIX 2022-01-29 10:55:31 +01:00
Dystopian 0afdb2a0cf
Improve udev logging (#13549) 2022-01-29 10:57:38 +01:00
Francisco Javier Trujillo Mata 86b47b4859
[PSP] Update Retroarch to latest PSPDev status (#13544)
* Added newlib changes

* Add action to launch PPSSPP simulator

* Remove legacy config for the stack and heap

* Add pthread

* Simplify kernel_functions and improve references to HAVE_KERNEL_PRX

* Add some flags

* Improve audio init/deinit

* Improve exit by clicking home

* Add CI for PSP1

* Update PSP.yml
2022-01-25 03:50:18 +01:00
Ryan Kuba 6ae1270e5c
remove test for standard mapping in controller detection (#13528) 2022-01-24 16:31:03 +01:00
Francisco Javier Trujillo Mata 1cd0938cc3
[PS2] Improve Compilation (#13359)
* Allow parallel compilation in PS2

* Allow to compile with griffin or common compilation in PS2

* Enable dummy core to be used in other platforms

* Use threads in YML config

* Add the compilation to PS2 in GitHub Actions
2021-12-15 19:01:56 +01:00
Tomáš Kelemen (vudiq) 0cf437e375
Lakka/Nintendo Switch: disable rumble gain
Rumble gain breaks controlls on Nintendo Switch port of Lakka, probably
due to issue in the driver).

Upstream of patch used by Lakka at build time
1943ad296e/packages/libretro/retroarch/patches/retroarch-06-switch_disable_rumble_gain.patch
2021-11-18 00:36:11 +01:00
twinaphex 619398bbe4 Backport parts of 73c0760236 2021-11-09 23:12:57 +01:00
Nathan Strong 5b4b766459 Fix wiimotes regression
== DETAILS
- only call disconnect when we're actually disconnecting a remote
  (e.g. read errors or remote goes to sleep).
- clean up some compile warnings introduced by others (mainly
  unused variables)
2021-10-16 23:56:15 -07:00
jdgleaver f1ac1ad9f9 (Dingux) Fix HAS_ANALOG/HAS_MENU_TOGGLE defines in sdl_dingux joypad driver 2021-10-13 12:53:54 +01:00
gblues dd6c70a083
Fix a couple regressions (#13101)
== DETAILS

- rewrote the HID deregistration algorithm; it should no longer
  cause issues when dealing with multiple pads of the same HID/VID
  combo
- fix initialization bug that caused wiimotes to fail to register
  without an accessory attached
2021-10-11 09:39:13 +02:00
Salvador 58e7dd8a1a
Add Miyoo target (#12860)
* add miyoo target
2021-10-08 13:53:49 +02:00
Nathan Strong c832828ddb Figured out the cause of crash
== DETAILS
cause of crash: trying to deference init when it's null
the reason it was going into deregister: the HID/VID lookup was
failing because it wasn't getting initialized first
cause of 2nd crash: the "end of pad list" method looked for an entry
with a magic value, so we add an end marker
2021-10-05 09:23:08 -07:00
Nathan Strong a4d8ce7753 Try to support multi-pad HID devices
== DETAILS
I tried to modify the joypad connection interface to support
multi-pad HID devices ... it doesn't work. I'm not sure why.
2021-10-05 09:23:08 -07:00
Nathan Strong 5da1cd08ff Unify the HID driver architecture
== DETAILS
When I first implemented the Wii U HID architecture, I ended up
having to design my own implementation because, at the time, I did
not have a way to read the HID device string to allow the existing
code to successfully detect the gamepad.

After spending some time experimenting, I've figured out how to
do this. And that means I can better align the HID driver with other
platforms.

change summary:

- create a single state structure for all three sub-types of wiiu pads
  (kpad, wpad, and hid)
- eliminate confusing duplicate pad lists
- eliminate confusing duplicate HID pad drivers (ds3, gamecube
  adapter, etc)
- ensure the ds3 driver still works
2021-10-05 09:23:08 -07:00
Nathan Strong 9edb449471 wip commit 2021-10-05 09:10:41 -07:00
p-sam 54d2ac9f43 libnx: Splitted Joycons button mapping
- Minus/Plus is always Plus when splitted (JOYPAD_START)
- StickR/StickL is always StickL when splitted (JOYPAD_L3)
2021-10-01 20:18:54 +02:00
twinaphex ddceb51f89 Get rid of some needless getters/setters 2021-09-30 21:10:12 +02:00
twinaphex e886e908d5 Create consistent naming conventions - use retroarch_ instead
of rarch_ for some functions for all functions coming from retroarch.h
2021-09-28 12:56:10 +02:00
twinaphex 8ef9065c86 Get rid of menu_driver_is_alive - we don't want these one/two-line getters/setters anymore 2021-09-28 10:27:00 +02:00
M4xw 931eb3221b [LIBNX] Fix Split Joycon 2021-09-23 13:45:22 +02:00
Michael Burgardt 303d17e2e6 Rebase 'Add generic rumble gain to input settings' by davidgfnet 2021-09-08 19:52:32 +02:00
bulzipke 8adc24ecbc
(3DS) Add bottom screen menu (#12470)
* (3DS) Add bottom screen menu
 -> User can save/load state on botom screen with thumbnail.
 -> Call a save_state_to_file() when RAM state has data to write a disk.
 -> If the bottom screen needs updating, swap the bottom framebuffers.

Add: SAVE/LODE STATE TO RAM
 -> This is useful for devices with slow I/O
 -> 3DS bottom save state use CMD_EVENT_SAVE_STATE_TO_RAM
 -> 3DS bottom load state use CMD_EVENT_LOAD_STATE when RAM state has no data
 -> 3DS bottom load state use CMD_EVENT_LOAD_STATE_FROM_RAM when RAM sate has data

* Rewrite path_get_state to retroarch_get_current_savestate_path

* Fix unterminated state_path
2021-09-03 18:14:03 +02:00
twinaphex 20ef0667b0 Add initial webOS port courtesy of informatic/webosbrew/mariotaku 2021-08-11 20:04:11 +02:00
twinaphex bb30dc3dee After gblues' change, the rest of the button function callbacks
for the other joypad drivers still had int16_t as the return type
instead of int32_t - fix this
2021-08-08 21:48:19 +02:00
Nathan Strong feb4f266fa WIIU: Fix L3/R3 buttons
== DETAILS
After a bisect, the culprit was changing the gamepad interface from
returing a single button (bool) to multiple (int16).

The issue is that the Wii U gamepad (and presumably the Pro controller too)
have more than 16 buttons, which means some buttons get lost. Notably, L3 (18)
and R3 (17).

The solution: use int32 instead of int16.

I did a test build and confirmed that this change restores L3/R3 functionality
with the gamepad. Don't have a pro controller to test, but it should work too.
2021-08-07 23:23:33 -07:00
amtz d0612f906d Limit udev device scan to subsystem 'input'
This change makes the call to 'udev_enumerate_scan_devices' much faster.
In particular, for some bluetooth devices, this function may implicitly
read its battery's virtual file 'uevent', e.g.

/sys/devices/*/usb1/1-1/*/bluetooth/hci0/*/power_supply/hid-*-battery/uevent

Reading this file may (for unknown reasons) block up to 10 seconds.
Since udev_enumerate_scan_devices is called 4 times (for keyboard,
mouse, touchpad, and joypad) during startup this may cause a
considerable delay.

Limiting the scan to subsystem 'input' yields the same devices but makes
the scan faster and does not read 'uevent' of the input controller's
power_supply.
2021-08-02 13:17:00 +02:00
Autechre 0c2299396c
Merge pull request #12711 from Poligraf/retrofw
Add retrofw port
2021-07-29 13:41:13 +02:00
Poligraf 9000e81498
Add retrofw port 2021-07-29 22:16:59 +12:00
R-YaTian 1d988d374a
libnx: Fix split joycons 2021-07-29 12:18:11 +08:00
p-sam 0f5f8798ea libnx: input fixes
- fix poll missing for controller 2-8
- fix layout not applied correctly and hangs when splitting joycons
2021-07-28 21:49:09 +02:00
Ash Logan 27b02d66aa (Wii U) Ignore some bogus KPAD results
This API is completely bonkers, seems to have no idea what the error 
conditions are
2021-07-19 16:59:41 +10:00
John Parton f6aeb717ba Basic rs90 build
DINGUX_BETA has clock_gettime libogc
Add tinyalsa support to rs90
2021-07-13 11:36:48 -05:00
M4xw d00c2a6407 [Libnx] Style nits 2021-06-28 17:38:17 +02:00
p-sam ac8a977492 Replace deprecated HID APIs 2021-06-28 17:38:17 +02:00
p-sam 1bc588acbd Fix building with libnx 4.0.0 2021-06-28 17:38:17 +02:00
jdgleaver 973f5cda6d Add support for mapping multiple controllers to a single input device 2021-06-21 12:42:38 +01:00
Francisco José García García 87a7795331 [VITA] Fix input driver for PSTV 2021-05-21 10:54:02 +02:00
twinaphex 35543ecd91 Move defines files over to libretro-common 2021-05-18 22:15:04 +02:00
Todd Laney be8dd0dba1 prevent crash on controller connect.
disable system button gestures on iOS 14.
remove deprecation warnings.
2021-04-03 09:28:49 -07:00
jdgleaver 0a08437e0a Add OpenDingux Beta support 2021-03-25 16:19:42 +00:00
twinaphex 938c8f3abc Fix some tvOS warnings 2021-03-15 01:52:18 +01:00
AKuHAK 3c0633839f
(PS2) added Multitap support (up to 8 players) (#11928)
* (PS2) added Multitap support (up to 8 players)

* (PS2) revert some identation changes

* (PS2) fix for non-analog controllers
* fix for not recognized digital and other non-standart controllers
* fixed ps2_joypad_destroy
2021-01-24 00:04:04 +01:00
twinaphex 875cb06a93 (iOS) Fix signature on apple_gamecontroller_joypad_init 2021-01-16 20:05:53 +01:00
David Lawson 0bdf574cfd udev_joypad: make rumble work
Rumble was not working for me. I learnt a bit about how evdev works and it seems like you need to set a replay which defines how long the effect is (previously we set it to 0). This means there's a maximum length to the rumble effect which feels wrong.

When we do `play.value = !!strength;` we're setting the number of times for the effect to repeat, which works fine because the effect stops when we set it to 0.

It doesn't feel quite right to me playing e.g. Goldeneye but I've not played on real hardware for a while.

I'm hoping someone is more familiar with evdev and can suggest a better approach.
2020-12-31 07:55:02 +00:00
David Lawson b0de18ea12 udev_joypad: some cleanup 2020-12-30 22:07:26 +00:00
twinaphex 51f0d04569 Update 2020-12-20 16:41:44 +01:00
jdgleaver 88254d8402 (sdl_dingux_joypad) Fix typo 2020-12-01 11:28:31 +00:00
David Guillen Fandos bf48757a2e Add support for 64 buttons in udev gamepads
It seems only 16 were only really supported anyway due to the
usage of BITS_COPY16_PTR (which only copies 16 bit states)?
2020-11-18 19:29:46 +01:00
jdgleaver de146545af OpenDingux: Optimise rumble interface 2020-11-18 17:21:38 +00:00
jdgleaver e582cf9f1d OpenDingux: Add rumble support 2020-11-17 16:13:37 +00:00
jdgleaver 2dc837850f OpenDingux: Add 'sdl_dingux' input/joypad drivers and use by default 2020-10-08 13:26:45 +01:00
jdgleaver 3fa1166ec4 (udev/linuxraw/wayland) Fix return key keyboard input 2020-09-29 11:23:35 +01:00
Yoshi Sugawara f70aed431d [iOS][tvOS] Fix declaration of input driver init method 2020-09-24 07:21:08 -10:00
twinaphex 236622ffa6 (Joypad driver) Init function - return void pointer 2020-09-22 02:30:47 +02:00
twinaphex b4bbad494a (drivers_joypad) Cleanups to wiiu_joypad and xdk_joypad 2020-09-11 15:58:44 +02:00
twinaphex 99cff42988 (udev_joypad) Struct reordering, alignment 2020-09-11 15:53:18 +02:00
twinaphex 72f1ff0f4b Reorder structs, alignment 2020-09-11 12:40:19 +02:00
twinaphex 7c36e615c2 (MFI_joypad) Cleanups 2020-09-11 12:39:05 +02:00
twinaphex ab9202c0aa Cleanups 2020-09-11 12:35:14 +02:00
twinaphex 0c45135160 (ps2_joypad) Cleanups 2020-09-11 12:32:06 +02:00
twinaphex 0adee503f2 (Android) Don't do memcpy copy anymore 2020-08-31 03:11:52 +02:00
twinaphex 7b0fe59722 Get rid of duplicate dinput_hybrid_joypad.c 2020-08-30 19:41:44 +02:00
twinaphex 9fdbcae3a8 Update copyrights; person was not involved in this file 2020-08-30 19:00:44 +02:00
twinaphex 82c558e5ce Update copyrights 2020-08-30 18:59:57 +02:00
twinaphex adf1322cbb (DInput joypad) Cut down on code duplication 2020-08-30 06:53:16 +02:00
twinaphex 1e223733fc Add joypad_rumble function in Android joypad driver 2020-08-29 23:47:56 +02:00
twinaphex 71fb5ac941 Clear state in joypad_destroy 2020-08-29 23:35:11 +02:00
twinaphex b133ea3296 (XInput) add ifdef 2020-08-29 22:48:28 +02:00
twinaphex c5099a312c Reimplement XDK set_rumble function 2020-08-29 22:25:51 +02:00
twinaphex 88a93b0053 Cleanups 2020-08-28 19:59:31 +02:00
twinaphex a15a033e72 (XInput) Cleanups 2020-08-19 03:40:55 +02:00
twinaphex 5166eebcaf for loop cleanups - use space after 'for' 2020-08-19 03:06:22 +02:00
twinaphex c250b94dcf Move p_anim state to rarch_state 2020-08-14 06:29:13 +02:00
twinaphex c3d8c8661f Buildfixes for C89_BUILD --disable-menu 2020-08-06 03:04:21 +02:00
twinaphex 76ec05314c Remove unused variable 2020-08-05 13:54:36 +02:00
twinaphex d864fd9ead Cleanups 2020-08-03 17:59:44 +02:00
twinaphex 4676e102d0 (input/drivers_joypad) Add TODO/FIXME notes 2020-08-03 17:31:22 +02:00
twinaphex 08a8de6227 (XInput) Proper joypad disconnect messages now with autoconfig
system
2020-07-31 22:31:38 +02:00
twinaphex 3518b4ef9c Cleanups - stray variables and functions can now be made static 2020-07-31 20:05:04 +02:00
twinaphex 65af2828da Move dinput_joypad_get_vidpid_from_xinput_index to
xinput_hybrid_joypad.c
2020-07-31 19:54:15 +02:00
twinaphex 212fc885ed Cleanups - xinput_hybrid_joypad.c no longer calls into separate
dinput_joypad driver interface
2020-07-31 19:52:03 +02:00
twinaphex 8ab1d7f8ec Cleanups 2020-07-31 19:30:03 +02:00
twinaphex 449f8dff8e Cleanups 2020-07-31 19:25:20 +02:00
twinaphex 5c7ba50ce1 Cleanups 2020-07-31 19:22:07 +02:00
twinaphex b171f35836 Move these globals out of dinput.c and into dinput_joypad_inl.h 2020-07-31 19:08:46 +02:00
twinaphex b5e0f7edfd Split up dinput_joypad.c into dinput_hybrid_joypad.c (both HAVE_DINPUT
and HAVE_XINPUT defined) and dinput_joypad.c (only HAVE_DINPUT defined)
2020-07-31 19:06:22 +02:00
twinaphex 5c5c57de9c Split up xinput_joypad.c into xinput_hybrid_joypad.c (assumes
-DHAVE_DINPUT) and xinput_joypad.c (no Dinput available at all)
2020-07-31 18:57:44 +02:00
twinaphex 95604f55b9 Add inline header files 2020-07-31 18:48:45 +02:00
twinaphex 04e67f1ac9 Make Xbox 360 reuse default xinput_joypad.c driver 2020-07-31 18:32:28 +02:00