Henrik Rydgård and Claude Opus 5.5
0da3129a69
Touch controls: Add a HOME button, and list HOME with the standard PSP controls
...
POPS (the PS1 emulator) uses HOME for its menu. The touch button is hidden by
default, and HOME still has no default key mapping. It's also appended to the
custom button and gesture key lists.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-24 14:14:17 +02:00
Henrik Rydgård and Claude Opus 5.5
fbf101de36
Touch controls: Rotate with the current orientation's display layout
...
The D-pad and sticks always used the landscape layout's rotation settings,
while the screen and physical pads use the current orientation's.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-22 10:55:30 +02:00
Henrik Rydgård
dcbfa7d3ee
Custom buttons: sanitize image/shape on the one screen that didn't
...
CustomButtonMappingScreen indexes customKeyImages[36] and customKeyShapes[11] with
values read straight from the ini, and it's reachable from the main menu - so
neither GamepadEmu nor TouchControlLayoutScreen, which both sanitize first, need
have run. Those two had the same fixup copy-pasted; hoisted it into a Sanitize()
next to the tables and called it from all three.
2026-09-02 18:06:47 +02:00
Henrik Rydgård
9315c0953a
GamepadEmu: bounds-check touch pointer IDs before use
...
TouchInput::id was used directly to index the global primaryButton[]
array (MultiTouchButton::Touch) and to shift pointer bitmasks
(PSPDpad/PSPStick/PSPCustomStick/GestureGamepad::Touch), guarded only
by a debug-only assert in one of the five call sites - a no-op in
release builds. input.id isn't always a small sequential slot in
[0, TOUCH_MAX_POINTERS): SDL assigns SDL_FingerID values directly,
Android pointer IDs can go up to 31, and UWP's TouchMapper allocates
one more slot (11) than TOUCH_MAX_POINTERS (10) and can also return -1
when it runs out of slots - all reachable through ordinary multi-touch
use, no malicious input required.
Also apply bounds check to the PER_GAME gesture config ints
(iDoubleTapGesture/iSwipeUp/Down/Left/Right) before indexing
GestureKey::keyList[] with them.
Additionally, minor cleanup on Android and moves the TouchMapper helper
out from UWP to InputState.h.
2026-08-12 09:47:13 +02:00
Henrik Rydgård
6f57a49f07
Default touch control layout improvement in portrait, fix insets on pause screen in portrait
2026-03-15 15:00:12 +01:00
Henrik Rydgård
15055ee360
Fixes to gesture mapping - don't gate double-tap and analog between the gesture enable control for each zone.
2026-03-06 00:44:31 +01:00
Henrik Rydgård
2c207aedf8
Fix problem where the touch screen controls got reactivated by gamepad input
2026-02-28 11:11:17 +01:00
ThePillowMan
422e983846
Fixed stylization issues + issues regarding games which shouldnt rotate controls
2026-02-17 21:26:27 -05:00
ThePillowMan
3a810ac38b
deleted accidentally left print statement
2026-02-17 19:12:35 -05:00
ThePillowMan
bbf72d0c82
Update GamepadEmu.cpp
...
Fixes touch controls for D-Pad and Analog Stick using same methodology behind regular DPad.
2026-02-17 18:26:51 -05:00
Henrik Rydgård
801d379f74
Gesture control: Prevent pressing touch buttons while performing a gesture.
2026-02-06 13:10:20 +01:00
Henrik Rydgård
d6d2c24e24
Fix the toggle touch controls input (properly this time)
2026-02-05 09:44:42 +01:00
Henrik Rydgård
44e30b14a3
Split the screen between the two gesture input zones.
2026-02-04 15:01:06 +01:00
Henrik Rydgård
03a7df74fa
Have two independent gesture control zones
2026-02-04 15:01:06 +01:00
Henrik Rydgård
03c901d0cc
Prepare for multiple gesture mapping zones
2026-02-04 15:01:06 +01:00
Henrik Rydgård
42137914e1
Fix the Toggle touch controls button, thanks Domiiniik
2026-02-04 14:33:54 +01:00
Henrik Rydgård
8350f67332
Fix typos, minor translation updates
2026-02-04 01:34:26 +01:00
Henrik Rydgård
7b1ba55e72
Prevent touch controls from fading away while being held.
...
Fixes #20531
2026-02-04 00:00:38 +01:00
Henrik Rydgård
c9494bd579
Rename GamepadView->GamepadComponent
2026-02-03 23:30:45 +01:00
Henrik Rydgård
e6a2a36bb8
Touch screen controls layout: In portrait mode, move everything up a bit by default. More comfortable.
2026-02-01 14:19:51 +01:00
Henrik Rydgård
18a67b82d2
Do the same with KeyInputFlags. Fix minor UI misalignments
2025-12-19 13:41:58 +01:00
Henrik Rydgård
481d0fd18c
Switch TouchInputFlags to enum class, fix some minor UI issues
...
Scroll views now only wheel-scroll if the mouse is hovering over them.
2025-12-19 11:38:56 +01:00
Henrik Rydgård
7a8a642aed
Convert the pause button to a normal customizable touch screen button
2025-11-25 15:47:05 +01:00
Henrik Rydgård
213436013f
Try to avoid having the back button cut off by the top edge of the screen
2025-11-25 15:46:33 +01:00
Henrik Rydgård
3116eba395
More UI work ( #21035 )
...
* Improve a couple of on-screen buttons (menu, fastforward)
* Fix the new continue button, oops
* Add some missing translations
* Split a translation string to make portrait look better
* More GameScreen redesign
* Don't accidentally go into game-specific mode
* Fix layout issue with popupscreens, fix context menu positioning
* One more icon
2025-11-24 20:33:13 +01:00
Henrik Rydgård
9de8e75709
AnchorLayout: Allow centering separately for horizontal and vertical
2025-11-10 12:10:08 +01:00
Henrik Rydgård
a183420a87
Orientation-specific defaults
2025-11-05 21:46:38 +01:00
Henrik Rydgård
063c7d4f7e
Get separate touch screen config for portrait working
2025-11-05 21:01:37 +01:00
Henrik Rydgård
58456ae950
Remove the UI::EventReturn return values. Makes editing the UI nicer.
2025-09-15 11:09:00 -06:00
Henrik Rydgård
e4a14330e0
Correct comment, rename array
2025-08-28 10:24:30 +02:00
Henrik Rydgård
76fb535bec
Allow binding "Pause (no menu)" to touch controls. Also makes controls stay visible when paused.
2025-08-27 08:54:13 +02:00
Henrik Rydgård
09e067c6e1
Revert "Get rid of remains of support for non-square screen DPIs"
...
This reverts commit f206ed95eb .
2025-05-21 21:41:50 +02:00
Henrik Rydgård
f206ed95eb
Get rid of remains of support for non-square screen DPIs
2025-02-20 11:14:26 -06:00
Henrik Rydgård
928854ffd3
Hold only the first button, allow other buttons to toggle with dragging as normal.
2025-02-14 12:40:44 -06:00
Henrik Rydgård
5ef2f06019
Implement "Touch gliding" (keep all dragged/touched buttons pressed until touch release)
...
I think the feature might need a better name though?
Fixes #14490
2025-02-14 11:00:24 -06:00
Henrik Rydgård
96c4a10e8c
Add two new core states, rename RUNNING to RUNNING_CPU and similar for stepping.
2024-12-01 21:04:21 +01:00
Henrik Rydgård
107bd01536
Fix some issues with clicking touch buttons using the mouse after the hover change.
...
Increase a buffer size.
2024-11-22 10:31:10 +01:00
Henrik Rydgård
d3e9398cb3
Split Core_EnableStepping into Core_Break and Core_Resume
2024-11-03 17:53:42 +01:00
Henrik Rydgård
758776f216
Touch control layout: Make sure no buttons are initialized off screen.
...
Fixes #19486
2024-09-26 11:08:07 +02:00
Henrik Rydgård
047913ddd3
Make sure we don't try to use out-of-bounds icons/shapes for custom buttons
2024-09-15 12:11:39 +02:00
Katharine Chui
d7fd44280a
allow binding custom right stick to analog
2024-07-16 16:06:13 +02:00
Henrik Rydgård
f42f7ac9d1
Touch controls on iOS: Move the three center button up slightly by default to avoid the task switcher
2024-05-26 09:39:44 +02:00
Henrik Rydgård
c5791764d8
Make the i18n T function use std::string_view
...
Buildfixes, crashfixes
One more
Android buildfix
Buildfix Qt
2024-02-12 18:44:39 +01:00
Henrik Rydgård
5a7db8aa11
Fix issue with touch control editor with no game running. Fixes #18652
2023-12-31 01:04:14 +01:00
Henrik Rydgård
679b8330ff
Add bindings for toggling mouse control and touch screen controls. Not bound by default.
...
I think I'll find myself using both of these for testing, feel worthwhile.
Suggested in #18464
2023-12-29 17:40:57 +01:00
Henrik Rydgård
63181374c7
Finish previous commit
2023-12-29 17:24:15 +01:00
Henrik Rydgård
4609df40c9
Update gamepad opacity once per frame, not once per button
2023-12-29 17:09:38 +01:00
Herman Semenov
95f535dab0
[UI/Windows] Object out of scope optimization for better codegeneration (lower level scope)
2023-12-20 12:35:02 +03:00
Henrik Rydgård
72be2f5459
Restore the D-Pad behavior (see #18028 )
2023-09-11 11:41:29 +02:00
iota97
01083c87ea
Analog stick gesture
2023-09-01 09:32:21 +02:00