61 Commits

Author SHA1 Message Date
Stenzek
234e1f721f
FullscreenUI: Improve controller settings page
- Add 'Clear Bindings' menu item.
- Show icons in controller types.
- Add confirmation to Reset Settings.
2025-01-11 21:29:04 +10:00
Stenzek
6f9caa6b12
InputManager: Add proper binds for vibration motors
Instead of the janky "vibration capabilities" flag.

Fixes the "Clear Mappings" button not applying to vibration motors.
2025-01-11 20:25:11 +10:00
Stenzek
5577328f35
Controller: Allow !compatsettings to always start in analog mode 2024-12-12 17:42:37 +10:00
Stenzek
7c627a8c83
Controller: Add JogCon
This is probably wrong, but I have no way of testing it with an actual
force feedback wheel.

PRs welcome to improve it further.
2024-12-01 21:17:54 +10:00
Stenzek
4fe3e1147d
Controller: Add GetPortDisplayName() that takes pad index 2024-12-01 17:47:55 +10:00
Stenzek
0d3501d435
Misc: Pass SettingsInterface by const reference 2024-10-20 23:59:47 +10:00
Stenzek
e0bc03b525
Controller: Fix localization with new types 2024-10-20 12:55:10 +10:00
Stenzek
e4a358cacb
Controller: Add Pop'n and Densha De Go Controllers
Variants of digital controller with different buttons grounded.
2024-10-19 16:23:01 +10:00
Stenzek
036e11f7a8
Qt: Remove unused variable 2024-09-27 22:48:43 +10:00
Stenzek
4e880280bd
Qt: Fix inconsistent multitap addressing
And remove multiple copies of the same variables while we're at it.
2024-09-27 20:59:04 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
Stenzek
9e3507e0f4
InputManager: Support multiple mice via raw input
Only on Windows for now.
2024-08-23 22:31:59 +10:00
Stenzek
fda6140088
GameDatabase: Add DisableAutoAnalogMode trait
For games that can handle analog controllers, but the sticks do not do
anything.
2024-08-18 20:33:15 +10:00
Stenzek
aa9a5e383d
ImGuiOverlays: Change icon colour depending on controller mode 2024-08-18 20:30:45 +10:00
Stenzek
fa104acdd1
Misc: Purge unused code and report startup error to host 2024-05-05 22:29:26 +10:00
Stenzek
ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
Stenzek
d094978214
Justifier: Add controller implementation 2024-04-28 15:25:24 +10:00
Stenzek
3e99084770
Settings: Fix double source of truth for controller names 2024-04-27 13:21:11 +10:00
Matheus Fraguas
07c012aee5
Negcon rumble (#3177)
* Implemented NeGcon with rumble. Code is a mix of the existing NeGcon AnalogController modes.

* Fix negcon id reply and analog/digital toggle.

* Implemented NeGcon with rumble. Code is a mix of the existing NeGcon AnalogController modes.

* Fix negcon id reply and analog/digital toggle.

* Update macros

* Code cleanup
2024-04-16 15:40:31 +10:00
Stenzek
7d5e2bf50c
FullscreenUI: More localization fixes 2023-11-30 14:21:44 +10:00
Stenzek
dfb27c14be
FullscreenUI: More localization fixes 2023-11-29 23:11:28 +10:00
Stenzek
fc6359457b
ImGuiManager: Use PromptFont icons for input OSD 2023-11-26 21:35:29 +10:00
Stenzek
3cd28f433b Controller: Use std::span 2023-09-20 17:11:29 +10:00
Stenzek
7e07d2feb8 GunCon: Add relative pointer binding 2023-09-20 17:11:29 +10:00
Stenzek
259193a8e5 GPUDevice: Move software cursor to ImGuiManager 2023-08-30 00:44:00 +10:00
Stenzek
1ec6aee5bf Host: Split translation macros dependent on return type 2023-08-20 12:40:47 +10:00
Dolphin
9526e15ec2
Update japanese translation (#2969)
* update base duckstation-qt_ja.ts

* update Japanese translation

* translate controller name on controllersettingsdialog
2023-05-02 21:46:06 +10:00
Connor McLaughlin
395e9a934b InputManager: Support inverted full axis
i.e. pedals
2023-01-15 15:13:54 +10:00
Connor McLaughlin
8c7a192128 Misc: Add copyright/license statement to applicable files
Should've did this in the beginning.
2022-12-04 21:03:49 +10:00
Connor McLaughlin
f5b7311a45 Controllers: Make deadzone circular 2022-10-21 21:20:21 +10:00
Connor McLaughlin
4feb5ad548 Controller: Make InAnalogMode() virtual 2022-10-09 14:10:54 +10:00
Connor McLaughlin
35f272b336 Settings: Set default controller type to AnalogController 2022-08-29 20:34:12 +10:00
Connor McLaughlin
b42b5501f6 UI: Massive revamp, new features and improvements 2022-07-22 21:19:54 +10:00
Connor McLaughlin
b7fbde31a7 Move utility classes from common to own static lib 2022-07-21 17:29:58 +10:00
Connor McLaughlin
251043f11a OSD: Add controller input display overlay 2021-04-04 04:08:42 +10:00
Albert Liu
5ff3299384 Controller: Add method for reading analog input bytes 2021-01-07 15:04:23 -08:00
Connor McLaughlin
8bb5ff47eb PlaystationMouse: Add option to use relative mode 2020-12-28 00:37:04 +10:00
Connor McLaughlin
ca42d027ac Qt: Implement relative mouse mode 2020-12-28 00:37:04 +10:00
Connor McLaughlin
47f0720b93 Controller: Always preserve internal state when loading/resuming
Fixes analog mode getting disabled when loading state.
2020-12-17 01:20:06 +10:00
Albert Liu
191e6b0496 DigitalController: Add option to force as Pop'n Controller 2020-12-09 23:39:11 -08:00
Connor McLaughlin
ea9829946d Cheats: Implement D4/D5/D6 code types 2020-12-06 15:47:00 +10:00
Albert Liu
f9d2643d98 Controller: Add Analog Joystick support 2020-11-14 07:46:26 -08:00
Albert Liu
3b51b993f3 NeGcon: Add steering axis deadzone setting 2020-11-01 04:17:18 -08:00
Connor McLaughlin
b6f871d2b9
JIT optimizations and refactoring (#675)
* 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
2020-07-31 17:09:18 +10:00
Connor McLaughlin
e374853cf5 HostInterface: Better configuration of custom crosshair/software cursor 2020-07-01 01:57:25 +10:00
Connor McLaughlin
4dc9e10777 HostInterface: Support per-controller-type settings 2020-07-01 00:56:46 +10:00
Albert Liu
ee3a96011e Controller: Add NeGcon support 2020-05-30 23:11:02 -07:00
Connor McLaughlin
9539ce032b AnalogController: Show controller number in OSD messages 2020-05-08 15:32:39 +10:00
Connor McLaughlin
95468901f2 AnalogController: Add analog toggle button 2020-05-08 15:13:07 +10:00
Connor McLaughlin
8f82987341 Controller: Add basic PlayStation Mouse support
Still needs capture/relative movement for a better experience.
2020-04-29 14:00:11 +10:00