[GH-ISSUE #3752] [Feature Request] Add 2 Custom Button Slots and Xinput Trigger Deadzones #1548

Open
opened 2026-03-18 00:39:29 +03:00 by kerem · 12 comments
Owner

Originally created by @shinra358 on GitHub (Sep 13, 2013).
Original GitHub issue: https://github.com/hrydgard/ppsspp/issues/3752

But not as L2 and R2 of course because PSP doesn't have them. Instead, have them as Extra 1 and Extra 2. This way multiple buttons can be set to each of those buttons without having them be the exact same as L and R. Hopefully a maximum of 3 each.

The goal here is to bring back the L2 and R2 buttons that most capcom fighters are missing that were ported to the psp. For example, with this, I will be able to have the PPP and KKK (for darkstalkers or sf for example) buttons as two of my shoulders while still having different functionality with the 'original' L and R shoulders.

As for Xinput trigger deadzones, what those are is the ability to tell the program at which pressure should the triggers be indicated as pressed.
For example: Trigger.Deadzone = 128 would mean that both triggers won't activate until it is pressed half way down. Trigger.Deadzone = 254 would mean that they button is considered pressed when it is fully pulled down. What this would do is help with precision for fighting games since triggers are not very good for them. With this, I will be able to slide a piece of cardboard down the back of the trigger, to adjust the maximum travel distance of the trigger (aka, basically turning the triggers back into shoulder buttons like PS2 and below).

To not use those cardboard pieces on the controller, I would like to request this extra bit (I don't know if it's possible or not but you let me know about this part):

Trigger.Deadzone.Press = 10
Trigger.Deadzone.Release = 240

If you know how to detect if the trigger is being pressed separately from if the trigger is being released, I would like for this to be added as extra. Trigger.Deadzone.Press = 10 would mean that the trigger is considered pressed when slightly pulling the trigger but is considered not pressed (released) when you slightly release it (numbers after the = sign would be user defined values of 0-255). When in gaming situations where you have to press a button rapidly, this will prevent the trigger not activating when pressing it again if you didn't fully release it. This is the main problem with Triggers and Fighting games.

These trigger options would be found under 'Game Settings > Controls > Trigger Options'.

Originally created by @shinra358 on GitHub (Sep 13, 2013). Original GitHub issue: https://github.com/hrydgard/ppsspp/issues/3752 But not as L2 and R2 of course because PSP doesn't have them. Instead, have them as Extra 1 and Extra 2. This way multiple buttons can be set to each of those buttons without having them be the exact same as L and R. Hopefully a maximum of 3 each. The goal here is to bring back the L2 and R2 buttons that most capcom fighters are missing that were ported to the psp. For example, with this, I will be able to have the PPP and KKK (for darkstalkers or sf for example) buttons as two of my shoulders while still having different functionality with the 'original' L and R shoulders. As for Xinput trigger deadzones, what those are is the ability to tell the program at which pressure should the triggers be indicated as pressed. For example: Trigger.Deadzone = 128 would mean that both triggers won't activate until it is pressed half way down. Trigger.Deadzone = 254 would mean that they button is considered pressed when it is fully pulled down. What this would do is help with precision for fighting games since triggers are not very good for them. With this, I will be able to slide a piece of cardboard down the back of the trigger, to adjust the maximum travel distance of the trigger (aka, basically turning the triggers back into shoulder buttons like PS2 and below). To not use those cardboard pieces on the controller, I would like to request this extra bit (I don't know if it's possible or not but you let me know about this part): Trigger.Deadzone.Press = 10 Trigger.Deadzone.Release = 240 If you know how to detect if the trigger is being pressed separately from if the trigger is being released, I would like for this to be added as extra. Trigger.Deadzone.Press = 10 would mean that the trigger is considered pressed when slightly pulling the trigger but is considered not pressed (released) when you slightly release it (numbers after the = sign would be user defined values of 0-255). When in gaming situations where you have to press a button rapidly, this will prevent the trigger not activating when pressing it again if you didn't fully release it. This is the main problem with Triggers and Fighting games. These trigger options would be found under 'Game Settings > Controls > Trigger Options'.
Author
Owner

@hrydgard commented on GitHub (Sep 13, 2013):

I don't understand how these Extra 1 / Extra 2 should work - what PSP control should they be mapped to?
If you just want to map a button to multiple PSP buttons, this can already be done.

Yes, the triggers definitely could use some improvement like that.

<!-- gh-comment-id:24376740 --> @hrydgard commented on GitHub (Sep 13, 2013): I don't understand how these Extra 1 / Extra 2 should work - what PSP control should they be mapped to? If you just want to map a button to multiple PSP buttons, this can already be done. Yes, the triggers definitely could use some improvement like that.
Author
Owner

@shinra358 commented on GitHub (Sep 13, 2013):

Maybe like an alternate L and R? Or better yet, like hotkeys. Like for fighting games, I already have it mapped so that R1 is my Medium Punch and R2 is my Medium Kick. To do this, I mapped the shoulder buttons so that I could get those buttons on the right. But the buttons on the left are the same buttons but just with switched positions. And adding more maps to those buttons would only result in the same amount being applied to the other shoulder buttons.

What I'm trying to do is get L1 to be my PPP and L2 to be my KKK while at the same time, have my R1 still be Medium Punch and R2 still be Medium Kick. To achieve PPP or KKK, I would be able to map 3 already existing PSP keys to the EXtra 1 and Extra 2 buttons. Square, Triangle, and R1 would be mapped to Extra 1 and the other 3 would be mapped to Extra 2.

So maybe adding these 'new buttons' that only function as pressing multiples at once (hotkeys) without affecting the other 2 shoulder buttons?

About the triggers: So it is possible to detect whether you are pressing on a trigger and separately detect when you are releasing it? That would be awesome.

<!-- gh-comment-id:24377544 --> @shinra358 commented on GitHub (Sep 13, 2013): Maybe like an alternate L and R? Or better yet, like hotkeys. Like for fighting games, I already have it mapped so that R1 is my Medium Punch and R2 is my Medium Kick. To do this, I mapped the shoulder buttons so that I could get those buttons on the right. But the buttons on the left are the same buttons but just with switched positions. And adding more maps to those buttons would only result in the same amount being applied to the other shoulder buttons. What I'm trying to do is get L1 to be my PPP and L2 to be my KKK while at the same time, have my R1 still be Medium Punch and R2 still be Medium Kick. To achieve PPP or KKK, I would be able to map 3 already existing PSP keys to the EXtra 1 and Extra 2 buttons. Square, Triangle, and R1 would be mapped to Extra 1 and the other 3 would be mapped to Extra 2. So maybe adding these 'new buttons' that only function as pressing multiples at once (hotkeys) without affecting the other 2 shoulder buttons? About the triggers: So it is possible to detect whether you are pressing on a trigger and separately detect when you are releasing it? That would be awesome.
Author
Owner

@ppmeis commented on GitHub (Dec 6, 2015):

@hrydgard @unknownbrackets I thinks this is already implemented right? (We can add extra buttons and hotkeys). I think it's could be closed instead.

<!-- gh-comment-id:162357609 --> @ppmeis commented on GitHub (Dec 6, 2015): @hrydgard @unknownbrackets I thinks this is already implemented right? (We can add extra buttons and hotkeys). I think it's could be closed instead.
Author
Owner

@SwinglesMan commented on GitHub (Dec 7, 2015):

How? I don't see an option to add L2+R2. I see where we can assign extra buttons to an already existing button but I don't see where we can add an empty L2 and R2 so we can put anything we want in it.

<!-- gh-comment-id:162688504 --> @SwinglesMan commented on GitHub (Dec 7, 2015): How? I don't see an option to add L2+R2. I see where we can assign extra buttons to an already existing button but I don't see where we can add an empty L2 and R2 so we can put anything we want in it.
Author
Owner

@ppmeis commented on GitHub (Dec 9, 2015):

You can add up to 5 new buttons on touch controls, and you can assing whatever buttons you want. Also, I played PSP games with my Xbox360 controller, and I can assing more than 1 button for L2 or R2:

Pressing L2 with R+L+X assigned to it:
image

<!-- gh-comment-id:163176832 --> @ppmeis commented on GitHub (Dec 9, 2015): You can add up to 5 new buttons on touch controls, and you can assing whatever buttons you want. Also, I played PSP games with my Xbox360 controller, and I can assing more than 1 button for L2 or R2: Pressing L2 with R+L+X assigned to it: ![image](https://cloud.githubusercontent.com/assets/4381277/11682561/0f67f6a6-9e66-11e5-9e53-1927d3754b23.png)
Author
Owner

@SwinglesMan commented on GitHub (Dec 9, 2015):

I'm not on mobile. This is not about mobile.
Edit: Oh, I thought they closed this one. It was the other one they closed. Whew.

<!-- gh-comment-id:163215550 --> @SwinglesMan commented on GitHub (Dec 9, 2015): I'm not on mobile. This is not about mobile. Edit: Oh, I thought they closed this one. It was the other one they closed. Whew.
Author
Owner

@ppmeis commented on GitHub (Dec 10, 2015):

@SwinglesMan this is not a mobile. It's the windows build, just showing screen controls to see what happens when L1 is assigned to L + R + X (all three buttons are pressed at same time).

<!-- gh-comment-id:163462196 --> @ppmeis commented on GitHub (Dec 10, 2015): @SwinglesMan this is not a mobile. It's the windows build, just showing screen controls to see what happens when L1 is assigned to L + R + X (all three buttons are pressed at same time).
Author
Owner

@unknownbrackets commented on GitHub (Nov 20, 2022):

I think the "custom button slots" already exist, but are represented in the opposite way to what was described here.

What this is saying is (same for R2):

  1. Create a fake L2 button (called Extra 1.)
  2. Allow me to specify what other PSP buttons are pressed when the fake L2 button is pressed. Example: L2 = L + R + Triangle.
  3. Allow me to specify which keyboard / gamepad button triggers the fake L2 button. Example: pressing "numpad *" on the keyboard will trigger L2.

From the perspective of wishing a specific PSP game directly supported L2/R2, this makes sense. How it works in PPSSPP is:

  1. Specify that pressing "numpad *" on the keyboard will press L.
  2. Specify that pressing "numpad *" on the keyboard will also press R.
  3. Specify that pressing "numpad *" on the keyboard will also press Triangle.

There's no fake "Extra 1" button used or needed here. Instead, you just directly make a single keyboard key press all the other buttons you want at once. You can think of it like you're controlling a robot octopus that is holding a PSP, and you can tell it which buttons to press from any key you press. You could make it so "numpad *" pressed ALL the buttons on the PSP at once.

--

Fine tuning of the triggers possibly makes sense, would require buffering of the previous values I suppose to see if it newly decreased below or increased above the high and low watermarks.

-[Unknown]

<!-- gh-comment-id:1321277823 --> @unknownbrackets commented on GitHub (Nov 20, 2022): I think the "custom button slots" already exist, but are represented in the opposite way to what was described here. What this is saying is (same for R2): 1. Create a fake L2 button (called Extra 1.) 2. Allow me to specify what other PSP buttons are pressed when the fake L2 button is pressed. Example: L2 = L + R + Triangle. 3. Allow me to specify which keyboard / gamepad button triggers the fake L2 button. Example: pressing "numpad *" on the keyboard will trigger L2. From the perspective of wishing a specific PSP game directly supported L2/R2, this makes sense. How it works in PPSSPP is: 1. Specify that pressing "numpad *" on the keyboard will press L. 2. Specify that pressing "numpad *" on the keyboard will also press R. 3. Specify that pressing "numpad *" on the keyboard will also press Triangle. There's no fake "Extra 1" button used or needed here. Instead, you just directly make a single keyboard key press all the other buttons you want at once. You can think of it like you're controlling a robot octopus that is holding a PSP, and you can tell it which buttons to press from any key you press. You could make it so "numpad *" pressed ALL the buttons on the PSP at once. -- Fine tuning of the triggers possibly makes sense, would require buffering of the previous values I suppose to see if it newly decreased below or increased above the high and low watermarks. -[Unknown]
Author
Owner

@shinra358 commented on GitHub (Nov 20, 2022):

all i was saying a billion years ago were to making the buttons be able to have multiple buttons able to be mapped to l2 and r2 lol. its not that complicated🤣. retroarch and other emus and programs did this just fine. if this hasnt been added yet i have ds4windows to do it

<!-- gh-comment-id:1321282136 --> @shinra358 commented on GitHub (Nov 20, 2022): all i was saying a billion years ago were to making the buttons be able to have multiple buttons able to be mapped to l2 and r2 lol. its not that complicated🤣. retroarch and other emus and programs did this just fine. if this hasnt been added yet i have ds4windows to do it
Author
Owner

@unknownbrackets commented on GitHub (Nov 21, 2022):

Is that different from what I said? It sounds like you're very locked into the very particular way of accomplishing your goal.

You have certain combinations (i.e. Square + Triangle + L) that are used to perform certain moves. You want to make it so that when you press a single button on your gamepad (such as L2), this happens. That's completely possible in PPSSPP without anything else.

As I explained above, all you would do is press [+] next to each of Square, Triangle, and L and map the L2 key. Then when you press L2, it would press all three of those keys at once - the robot octopus does it for you. There's no need to invent a fake "Extra Key" in the middle.

-[Unknown]

<!-- gh-comment-id:1321316003 --> @unknownbrackets commented on GitHub (Nov 21, 2022): Is that different from what I said? It sounds like you're very locked into the very particular way of accomplishing your goal. You have certain combinations (i.e. Square + Triangle + L) that are used to perform certain moves. You want to make it so that when you press a single button on your gamepad (such as L2), this happens. That's completely possible in PPSSPP without anything else. As I explained above, all you would do is press [+] next to each of Square, Triangle, and L and map the L2 key. Then when you press L2, it would press all three of those keys at once - the robot octopus does it for you. There's no need to invent a fake "Extra Key" in the middle. -[Unknown]
Author
Owner

@shinra358 commented on GitHub (Nov 21, 2022):

but it wasnt avail in 2016 when this post was made i think?

<!-- gh-comment-id:1321340073 --> @shinra358 commented on GitHub (Nov 21, 2022): but it wasnt avail in 2016 when this post was made i think?
Author
Owner

@LunaMoo commented on GitHub (Nov 21, 2022):

The later implementation of similar thing was for touchscreen, for physical controllers this was possible for as long as control mapping was existing, don't remember when exactly, however Hrydgard said in first reply of this issue it was already possible and was always functioning the same way.

<!-- gh-comment-id:1321379988 --> @LunaMoo commented on GitHub (Nov 21, 2022): The later implementation of similar thing was for touchscreen, for physical controllers this was possible for as long as control mapping was existing, don't remember when exactly, however Hrydgard said in first reply of this issue it was already possible and was always functioning the same way.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ppsspp#1548
No description provided.