49 Commits

Author SHA1 Message Date
Stenzek
dd7fd32501
Controller: Add GetVibrationMotorState() 2025-01-13 16:49:14 +10:00
Stenzek
462a4a3b50
Controller: Refactor so that GetControllerInfo() can't return null 2025-01-13 16:07:43 +10:00
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
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
45c8f6ea56
BIOS: Make GetInfoForHash() public
And it should take a const span.
2024-10-01 21:14:43 +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
3e99084770
Settings: Fix double source of truth for controller names 2024-04-27 13:21:11 +10:00
Stenzek
620d08f72d
Build: Move Image from common to util 2024-03-06 16:09:21 +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
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
736996ab38 Controller: Add invert and button deadzone options 2022-09-24 13:14:13 +10:00
Connor McLaughlin
b42b5501f6 UI: Massive revamp, new features and improvements 2022-07-22 21:19:54 +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
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
Connor McLaughlin
ea9829946d Cheats: Implement D4/D5/D6 code types 2020-12-06 15:47:00 +10:00
Silent
057bf986c4
Allow mapping half axes to buttons
This allows to bind pressure sensitive NeGcon buttons to keyboard,
mouse and controller buttons
2020-08-29 14:19:28 +02: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
Connor McLaughlin
9539ce032b AnalogController: Show controller number in OSD messages 2020-05-08 15:32:39 +10:00
Connor McLaughlin
e6bd6587fd Controller: Add emulation of Namco GunCon 2020-04-26 01:23:58 +10:00
Connor McLaughlin
d9ebb975b2 CommonHostInterface: Reimplement controller rumble support
Even better than before, supports separate motor control.
2020-04-14 16:34:42 +10:00
Connor McLaughlin
4b1541087a Controller: Add methods to query buttons/axises for a controller type 2020-01-02 16:10:42 +10:00
Connor McLaughlin
cbcb9b02b0 AnalogController: Rumble support 2019-12-15 23:22:53 +10:00
Connor McLaughlin
6e18e56089 Controller: Support general axis input events 2019-12-15 00:32:55 +10:00
Connor McLaughlin
32d8b4dc84 Frontend: Dynamic button mapping based on controller type 2019-12-15 00:17:43 +10:00
Connor McLaughlin
c65279f944 System: Create controllers dynamically based on config 2019-12-14 23:29:26 +10:00
Connor McLaughlin
ea0845d5ad Move controller creation to System class, switch shared_ptr to unique_ptr 2019-12-14 23:20:24 +10:00
Connor McLaughlin
56b87f33c0 Controller: Linux build fix 2019-12-10 23:05:19 +10:00
Connor McLaughlin
89e9373037 Controller: Add a set-button interface in base class 2019-12-09 01:06:58 +10:00
Connor McLaughlin
da14b10e72 Split MemoryCard and PadDevice (now Controller) 2019-12-09 00:52:00 +10:00