Announcement

Collapse
No announcement yet.

Long Press + Single Press - Not Working as Intended

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Long Press + Single Press - Not Working as Intended

    I have a button on my PS5 controller mapped for 2 actions, one in Single Press mode, and another in Long Press. But when I try to perform the Single Press action, it is not being consistent. Its like they are affecting one another. When using just Single Press, it works fine. When using only Long Press, I'm getting a strange behavior when single pressing the button.

    I'm using it for controlling my car in Rocket League SideSwipe, which is running on BlueStacks (Android emulator).
    First, I remapped the L1 button to the L2 in Single Press mode (my car should turn once very fast):
    Click image for larger version  Name:	01.png Views:	5 Size:	495.2 KB ID:	231939

    This works as intended, and the action is called without any delay:


    I then added a Long Press mapping (my car should turn continually for as long as I'm pressing the button):
    Click image for larger version  Name:	02.png Views:	4 Size:	505.6 KB ID:	231940
    And now, when I single press the action is not called consistently. Not only that, but now there's a small delay:

    The long press of the button works fine.

    To try and isolate this problem I completely removed the Single Press mapping I made before:
    Click image for larger version  Name:	03.png Views:	4 Size:	492.0 KB ID:	231941
    To my surprise, when I tap the L1 button, it's like the default action for this button (turn the car) is being called very fast, not long enough to complete the rotation of the car. It's jittering, an unwanted ghost action. I think that this might be affecting the single press action when I have the two mappings at the same time:

    I even performed a long press of the button, and it works fine.

    Is there an explanation for this behavior? It looks like the Long Press action is not working correctly exactly when I push the button, just after the intended press time.
    Last edited by Thomas Marcelo; 09.05.2022, 00:24.

  • #2
    Hello!
    Activators are arranged in such a way that they do not conflict when interacting with each other. The mapping that is assigned to Single Press fires 1 time and is interrupted because then holding this button waits for another action associated with Long Press. reWASD doesn't know how long you hold down a key, so activators work that way.
    In case you don't have enough time that L1 stays pressed to turn the car, you can try to map a combo on Single Press, in which L1 will be held for the amount of time you need (this amount of time is expressed in the pause between pressing and releasing the button. 1000ms = 1 sec).

    Comment


    • #3
      Thanks for the response. My current plan does not support the mapping of combos.

      Whats weird for me is that even when I don't have anything mapped as Single Press, just a Long Press mapping, when I push the button, it's like a ghost action is being activated. That, coupled with the fact that any Single Press action gets severely compromised when I have a Long Press mapping as well, is what I'm not getting. If feels like a bug.
      Last edited by Thomas Marcelo; 09.05.2022, 00:33.

      Comment


      • #4
        The bottom line is that even if you don't assign any mapping to Single Press, this button will still play the virtual itself (as if you assigned it), in case another virtual controller mapping was assigned to Long Press.
        So that you understand the essence: yellow mappings are virtual mappings that you assigned in the config yourself, and white mappings are virtual controller mappings that are assigned automatically so that the virtual gamepad works fully.

        Comment


        • #5
          I guess I understood. But:
          • Ony Single Press mapping: works correctly;
          • Single Press + Long Press: single pressing stops working, like the long press mapping is affecting it.
          Is that the normal expected behavior?

          I got combos on 3 day trial and this combination worked:
          Click image for larger version

Name:	04.png
Views:	745
Size:	138.1 KB
ID:	231946
          When I tap the button, only de L2 gets called. When I hold past 500 ms, the L1 kicks in (and overtakes the action in the game) until I release the button.

          Comment


          • #6
            I think I'm starting to lose the idea of ​​what final result you want to get.
            If you have Single Press and Long Press mapped to the same button, then Single Press mapping will not stop working. It will work 1 time and quickly.
            And this is normal behavior.

            As for your combo: if you assign a combo in Hold until release mode to a Single Press, while having a Long Press mapping on the same button, then the combo will not reproduce. Long Press mapping will always be in priority.
            This is mentioned in the article about activators.

            That's why I suggested you earlier map a combo to Single Press in the Execute at once mode, in which L1 will be held for a fixed amount of time specified by you (which is indicated in the pause between pressing the button in the combo and its release) to turn the car, and You will leave L2 on the Long Press activator.
            But to set the time after which the mapping on Long Press will work, you need to go to Preferences → Press Time and adjust the Long Press Time.

            Comment


            • #7
              Maybe I'm the one not being clear. Let my try to sum up:
              First scenario [worked]:
              • L1 - Single Press: mapped as L2 [working];
              Second scenario [not worked]:
              • L1 - Single Press: mapped as L2 [not working anymore]
              • L1 - Long Press: mapped as L1 [working]
              Third scenario (test) [not worked]:
              • L1 - Single Press: default / none [not working - half starting]
              • L1 - Long Press: mapped as L1 [working]
              Fourth scenario [worked]:
              • L1 - Single Press: mapped with a combo [working]
              What I need is the second scenario to work.
              PS.: L1 is LB, and L2 is LT on reWASD.

              Comment


              • #8
                Please send me the config you are using. Your configs are stored here: C:\Users\Public\Documents\reWASD\Profiles
                ​​​​​​​I need the correspondent *.rewasd file.

                Comment


                • #9
                  This is the configuration that I wanted to work: https://1drv.ms/u/s!AjY81BtwQoK6jasv...g65Ww?e=OEV78N
                  But the Single Press is failing.

                  This one is the behavior I want to achieve, but done entirely with a combo: https://1drv.ms/u/s!AjY81BtwQoK6jasw...PuttA?e=vJyY4l

                  Comment


                  • #10
                    Hello!

                    reWASD needs to distinguish Single and Long Press. If you use them together, then Single Press mapping will work when you release a button faster then Long Press Time duration (300 ms by default). Normally, the mapping work as long as you hold the button, but in this case, there is nothing held, and so we emulate a fast button press (LT in your case). It seems that the game can't recognize this fast mapping, and that's why your first configuration doesn't work consistently in a game while it is working normally if you check it in the tester (for example, in this one).

                    To help the game recognize the first Single Press mapping, you need to map this activator to the combo of LT only which also includes a slightly bigger pause between press and release (40-50 ms should do the trick).

                    I have attached your modified Config 1. Please check if this configuration works as expected.
                    Attached Files

                    Comment


                    • #11
                      I just tested the configuration you provided, and the results as kind of interesting:
                      • Single Press: the action is performed consistently. Every time I press the button, the action is executed (my car turns one time), which was not happening. But a lag was introduced. It's a very small delay of maybe 100 ms, but it is perceptible (and for all purposes, not acceptable). Without remapping there's no delay;
                      • Long Press: this provokes an interesting behavior, because when long pressing the button, the Single Press action is not being called, only the action of the long press happens after a while. So, when I press the button, my car stays still, and after a while it starts turning.
                      In summation: the Single Press action is consistent, but with a delay; the Long Press action is consistent, but it is overriding the Single Press action, and nothing happens initially.

                      I'm convinced that the solution I found using the combo of the second file I provided is the one for me, but it kind of sucks, because I already spent R$ 30,00 on the software, and the basic solution which is supposed to work for me, doesn't. Is there a way to solve this without me having to pay R$ 30,00 more? It's unfortunate, but I'm more inclined for asking a refund than doing that.

                      Comment


                      • #12
                        We have added features for you, as for this case is pretty controversial. We will think about other possible solutions here to implement in the new releases.

                        Comment


                        • #13
                          Hi there,
                          I know this thread is 2 years old now, but I have been dealing with the same exact issue as the OP since I started using a long press activator on one of my controller buttons. The single press just doesn't work consistently in the game once I setup a long press activator for the button. In my game I have to repeatedly press the button to get it to actually trigger the action I intend in the game for the single press. For a while I thought it was the game, but I know that it's this long press issue.
                          I read the detailed description of how the long press activator works on this help page and I have a suggestion for how to resolve this.
                          Fundamentally, this is an issue because the program is waiting for the 300ms (or whatever the long press threshold is) to pass before it decides whether it will "reproduce" a single press or execute whatever action is associated with the long press activator. Perhaps in some cases this way of handling the single press is desirable, but I think in most cases this is not how REWASD should work. Instead, I suggest that there should at least be an option to have the button simulate it's native behavior of being pressed for however long it is pressed UNTIL it has been held down for the 300ms, at which point it will activate the desired action for the long press. In other words, if I press the button for 100ms, the game should recognize that I pressed the button for 100ms immediately instead of REWASD waiting for 300ms then sending a button press after that.
                          I imagine there should be a way to do this by just having an event listener for the 300ms instead of interfering with the otherwise normal function of the button.
                          Thank you for your attention to this. I really love REWASD as it has enabled me to play a complex PC game with a gamepad which would have otherwise been impossible.

                          Comment


                          • #14
                            Thanks for the suggestion, but it's unlikely that the activator logic will be rewritten anytime soon.

                            In your case, setting the mapping to Start Press instead of Single Press will help.​

                            Comment

                            Working...
                            X