MissionControl icon indicating copy to clipboard operation
MissionControl copied to clipboard

[Feature Request]: Use analog triggers instead of analog sticks

Open rajolm opened this issue 4 months ago • 13 comments

Feature Description

Hi, There are some games like Grid Autosport, that allows to do analog acceleration and braking using the right stick. Some users was able to remap the triggers to be up/down on the right stick as a workaround to use the triggers to do analog acceleration, this workaround requires using an adapter and the adapter will do the remapping.

Can MC have a feature to do the remapping instead of using the adapter?

Rationale

We need a way to remap the analog triggers inputs to do sticks inputs, so when you e.g. press the right analog trigger, MC will convert the input to be right stick input, then we will have analog acceleration in games like Grid Autosport

Additional Details

No response

rajolm avatar Aug 20 '25 14:08 rajolm

This is probably pretty straightforward in theory, but I would need to have a bit of a think about how to implement it. It needs to be added on a per-controller basis as analog trigger information is lost once the inital mapping takes place. I also don't have a mechanism for configuring or toggling custom remappings or applying to certain titles etc. I could try to knock up a proof of concept though. which controller do you use?

How does it work for Grid Autosport? Is it LT/L2 -> -Y, RT/R2 -> +Y on the right analog stick? Any idea if they're mapped linearly to the stick position or if some kind of easing function is used?

ndeadly avatar Aug 21 '25 12:08 ndeadly

Thanks for the quick response

I could try to knock up a proof of concept though. which controller do you use?

I'm interested in DualShock 4, I think this one of the most used controllers and one of the best supported controllers by MC

How does it work for Grid Autosport? Is it LT/L2 -> -Y, RT/R2 -> +Y on the right analog stick? Any idea if they're mapped linearly to the stick position or if some kind of easing function is used?

yeah, I think the adapter making it work like this: it maps the right stick y+ to RT/R2, and the y- to LT/L2 To be honest I'm not sure if it using an easing function or mapped linearly to the stick position, all I know is that this method work for racing games like WRC, GRID Autosport and few other games

There are some youtube videos about it, maybe you can see the videos and try to notice if it is using an easing function or not

Thanks again for your time and efforts

rajolm avatar Aug 21 '25 14:08 rajolm

@rajolm see what this does for you. It's possible the y axis is inverted, I never remember which direction is positive.

MissionControl-0.13.4-analog-trigger-mapping-53c71585.zip

ndeadly avatar Aug 21 '25 15:08 ndeadly

@ndeadly Wow so fast, I didn't expected this 😲 Thank you so much

I don't have access to games currently, I might be able to test it after a week or so Maybe another user can help to test this before I have the access

I have a question, is there is a way to turn this feature on/off globally or per game? Maybe using a configurations setting

rajolm avatar Aug 21 '25 20:08 rajolm

@ndeadly I tested the build you gave me but in FPS game

I have found these issues:

  • When you press R2, the camera start moving down, it seems like it is inverted, I think it should go up, right?

  • When you press L2, the camera start moving up, I think it should go down, right?

  • When you press R2, before the camera start moving, the controller register ZR then starts moving the camera and it will keep holding ZR as long as you are pressing R2 so R2 now work as two things at the same time, it work as the stick down + ZR button

  • When you press L2, before the camera start moving, the controller register ZL then starts moving the camera and it will keep holding ZL as long as you are pressing L2 so L2 now work as two things at the same time, it work as the stick up + ZL button

  • The right stick is not swapped with the triggers, the feature of the adapter I mentioned before is "Swap right stick and trigger", that means up and down on the right stick will be ZR and ZL respectively, so you can change these buttons to shift gears for example

And can you please answer my previous question "is there is a way to turn this feature on/off globally or per game? Maybe using a configurations setting"

Thanks again for your hard work and if you want, I can test any build tomorrow

rajolm avatar Aug 25 '25 22:08 rajolm

MissionControl-0.13.4-analog-trigger-mapping-758b4bf0.zip

is there is a way to turn this feature on/off globally or per game? Maybe using a configurations setting

No. It's possible to do, but I haven't implemented anything as this is only a proof of concept. I still don't know exactly how I would integrate it into the project.

ndeadly avatar Aug 26 '25 09:08 ndeadly

@ndeadly The last solved most of the problems, but there is one problem:

The right stick is not swapped with the triggers, instead the left stick is swapped with the trigger and it is inverted too So with the new build, when you press up and down on the right stick nothing happens But when you press up on the left stick, the controller registers ZL and when you press down on the left stick, the controller registers ZR

The correct behavior is: When you press up on the right stick, the controller registers ZR and when you press down on the left stick, the controller registers ZL

No. It's possible to do, but I haven't implemented anything as this is only a proof of concept. I still don't know exactly how I would integrate it into the project.

Can I some how use two builds of MC and switch between them somehow? I mean when I play Grid, then I use this custom build, and when I play other games, then I use the normal build, is that possible

Thanks again

rajolm avatar Aug 26 '25 10:08 rajolm

Ah, you're right. I copied the wrong thing. This should fix both issues.

MissionControl-0.13.4-analog-trigger-mapping-cf362190.zip

Can I some how use two builds of MC and switch between them somehow?

You could maybe rename the sysmodule directory (/atmosphere/contents/010000000000bd00) of one of them to have them both reside on the SD card at the same time. I'm not sure whether atmosphere relies on the title id bring correct here. You would still have to manually toggle them on/off by adding/removing the boot2.flag file in the flags directory. Would be pretty janky but it might work.

ndeadly avatar Aug 26 '25 11:08 ndeadly

Ah, you're right. I copied the wrong thing. This should fix both issues.

MissionControl-0.13.4-analog-trigger-mapping-cf362190.zip

I will try it shortly and report back 👍 There is another issue I found in the previous build

When you try to move the stick left or right, if you didn't did it in a straight line, it would register ZR and ZL, which makes it hard to use the left and right on the stick without triggering ZR and ZL I'm not sure if I can explain it, please let me know if you want to explain it more

I don't know how the adapter handles this, but maybe it will be better to register ZR and ZL only if the stick is in a certain degree, like the following screenshot:

Image

What you think about this? maybe you will have a better idea ☺️

rajolm avatar Aug 26 '25 11:08 rajolm

MissionControl-0.13.4-analog-trigger-mapping-bc630cda.zip

This one just increases the y-axis thresholds to 50% before ZL or ZR will be triggered. See how that goes. The "proper" way to do it is probably combine this with a radial threshold of something like ±30° to effectively shave the corners off the red boxes in your diagram, but I won't bother wasting the extra instructions if this is good enough.

ndeadly avatar Aug 26 '25 13:08 ndeadly

@ndeadly I tried the previous build and it worked very well other than the triggering ZR and ZL issue, I will try the last build later today

I will be very thankful if you could somehow allow us to switch the analog triggers swap on or off. It is tedious to reinstall MC each time when we want to play another game and with time, the custom build will lag behind the normal version when new releases come out

maybe using AI you can add a quick toggle for it in a menu? Thanks so much for your time and fast responses

rajolm avatar Aug 26 '25 14:08 rajolm

@ndeadly I tried the last build, it worked very well! Now you can move the right stick left and right easliy without triggering ZL or ZR Thanks to your efforts 👍

I tried to use the normal release build, and copied it over to SD, then chosen "Merge", I restarted NS and checked in games, it seems like it didn't reverted back to the normal release build! It still uses the custom build with analog triggers! Maybe I miss something?

The suggestion above to add a toggle or any other way for swapping triggers with sticks would make it a lot easier to use, do you have any plans for this?

rajolm avatar Aug 29 '25 08:08 rajolm

I tried to use the normal release build, and copied it over to SD, then chosen "Merge", I restarted NS and checked in games, it seems like it didn't reverted back to the normal release build! It still uses the custom build with analog triggers!

This is not possible. If you have truly overwritten with the release build and rebooted then the changes will be gone.

The suggestion above to add a toggle or any other way for swapping triggers with sticks would make it a lot easier to use, do you have any plans for this?

This remains a proof of concept. I will think about how to make it user friendly when the time comes to incorporate it into the master branch.

ndeadly avatar Aug 29 '25 10:08 ndeadly