Commit graph

47 commits

Author SHA1 Message Date
Albert Liu 2938c946f9 AnalogController: Improve accuracy of rumble configuration 2021-01-30 00:53:43 -08:00
Albert Liu c9c2f1bd21 AnalogController: Handle more config mode 0x46 and 0x47 cases 2021-01-29 23:50:45 -08:00
Connor McLaughlin e01d66d18e System: Implement runahead 2021-01-25 01:15:46 +10:00
Albert Liu 5ff3299384 Controller: Add method for reading analog input bytes 2021-01-07 15:04:23 -08:00
Albert Liu 04884257d6 AnalogController: Refactor data transfer implementation 2021-01-03 09:09:49 -08:00
Albert Liu b7bccac71d AnalogController: Fix config mode 0x4C response 2020-12-16 15:11:53 -08: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 def9a98cb9 GameSettings: Disable analog mode forcing instead of forcing digital controller 2020-12-11 19:50:43 -08:00
Albert Liu 8716c33f41 AnalogController: Clarify option for forcing analog mode 2020-12-11 19:50:43 -08:00
Albert Liu 18a4ff76e2 AnalogController: Disallow analog-to-dpad in config mode 2020-12-08 02:36:19 -08:00
Connor McLaughlin ea9829946d Cheats: Implement D4/D5/D6 code types 2020-12-06 15:47:00 +10:00
Albert Liu 9ac09d35be AnalogController: Only clear motor state on rumble config if not used 2020-11-26 06:01:08 -08:00
Albert Liu a4eb4b9280 AnalogController: Set transfer state to idle on reset 2020-11-26 06:01:08 -08:00
Albert Liu 566993c6df AnalogController: Improve DualShock rumble handling
Fixes low vibration in Final Fantasy VIII, missing vibration in Armored
Core Project Phantasma, etc.
2020-11-25 07:33:30 -08:00
Albert Liu 31b41b9ec0 AnalogController: Output zeros for 0x43 when already in config mode 2020-11-25 07:33:30 -08:00
Albert Liu 3f709d97b6 AnalogController: Send full analog response for reads in config mode 2020-11-25 07:33:30 -08:00
Albert Liu e4820bcbc1 AnalogController: Delay manual mode toggle to transfer state reset 2020-11-25 07:33:30 -08:00
Albert Liu 7ed0477a29 AnalogController: Save buttons and legacy rumble to state 2020-11-14 07:46:26 -08:00
Albert Liu d87ab23fec ControllerInterface: Move axis scaling into AnalogController class 2020-11-11 23:55:23 -08:00
Albert Liu 6d4b812b7c AnalogController: Implement legacy rumble method
Fixes missing vibration in Tobal 2, Bushido Blade, etc.
2020-11-04 22:45:58 -08:00
Connor McLaughlin 7078f73ecf AnalogController: Fix analog-as-digital applying in analog mode 2020-10-30 02:10:49 +10:00
Connor McLaughlin 2fb67ee7db AnalogController: Add option to use analog stick as dpad in digital mode 2020-10-30 00:44:40 +10:00
Connor McLaughlin d924130308
AnalogController: Fix Linux build 2020-09-18 00:40:54 +10:00
Connor McLaughlin 7c55940fa8 AnalogController: Fix default value of vibration bias 2020-09-18 00:17:35 +10:00
Connor McLaughlin e6bff275a6 AnalogController: Set vibration strength to 0 on Reset 2020-09-18 00:13:59 +10:00
Connor McLaughlin 915b7d3726 AnalogController: Use nonlinear mapping of vibration strength
Curve from Pokopom: https://github.com/KrossX/Pokopom/blob/master/Pokopom/Input_XInput.cpp#L210
2020-09-17 19:57:10 +10:00
Connor McLaughlin debfd53618 AnalogController: Use range for large motor, add bias
Seems the bias is needed for FF8.
2020-09-17 19:56:27 +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 8f54711c72 Make additional strings in controller settings translatable 2020-08-24 00:22:49 +10:00
Connor McLaughlin ab002e78e1 Support translating strings in emulator core 2020-08-22 13:06:20 +10:00
Connor McLaughlin f5fb8186c7 Switch some messages to the OSD and increase durations 2020-08-16 00:20:10 +10: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
Albert Liu 79576ca956 AnalogController: Expose axis scale setting to frontend 2020-07-24 19:18:41 -07:00
Connor McLaughlin 68d98af497 Qt: Remove usage of QString where possible for settings 2020-07-21 20:10:06 +10:00
Connor McLaughlin dd9a4191e6 AnalogController: Fix swapped rumble test
Fixes weak rumble test in MGS.

I should write some hardware tests for this at some point, particularly
for the large motor, which should have a variable intensity.
2020-07-15 02:38:16 +10:00
Connor McLaughlin 604ff20b0d AnalogController: Treat rumble as binary on/off
Fixes vibration in Final Fantasy 8.
2020-07-10 20:15:46 +10:00
Connor McLaughlin 4dc9e10777 HostInterface: Support per-controller-type settings 2020-07-01 00:56:46 +10:00
Connor McLaughlin 009e474c51 AnalogController: Fix inverted motor binding 2020-06-05 22:32:51 +10:00
Albert Liu 1f74d46d39 AnalogController: Use proper upper bound when validating axis_code 2020-05-26 23:23:44 -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 d04b252962 AnalogController: Reduce the number of commands which enable analog mode
Hopefully will fix those games where it's expecting digital outputs but
getting analog.
2020-04-28 00:34:34 +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 71c1e243fe Remove YBaseLib dependency 2020-01-10 13:40:53 +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 a347b3606e Implement support for analog controllers 2019-12-15 21:58:27 +10:00