Tagged: Gamepad improvements
- This topic has 15 replies, 5 voices, and was last updated 1 year, 8 months ago by
ispolin.
-
AuthorPosts
-
15. January 2018 at 10:56 #5607
flamming_python
ParticipantHiya, I recently attempted to run and map X-Wing to my Bluetooth controller in Magic DosBox – and though I’ve been largely successful; I’m still missing some commands.
However, I believe that with a few improvements, it will become plenty possible to map all required commands to a standard bluetooth controller; opening Magic DosBox up for the emulation of all sorts of DOS-era flight and mech sims.
Here are my suggestions:
1). When assigning keys to physical buttons, it’s possible to pick a key and then also select a modifier (ctrl, shift or alt).
However, when creating loopers, it’s possible to add keys – but not the modifiers for them. To take an example – for X-Wing this is important; as the wingman commands all use the shift modifier + a letter (shift + C, shift + I, etc…).
If it becomes possible to assign modifiers to keys added to loopers, you can then have a single button cycle through all the wingman commands.2). I remember we worked on the functionality for 8-way analogue sticks; before coming across problems that simply weren’t trivially solvable; so eventually it was decided to leave that functionality out and just use 2 joysticks to move 8-ways instead.
Now the game we were focussing on then was Eye of the Beholder; and indeed for that game it just didn’t work well as a movement of the analogue stick was mapped to a movement action; i.e. something that affects the game world – you didn’t want to end up moving left (analogue stick registered as left) when you wanted to only turn left (analogue stick registered as top-left).However, if an 8-way joystick is used in the way of a hatswitch for flight-simulators – in the way of looking top-left, up, bottom-right, etc.. then the problem of having the wrong action fire fades away.. as its simply not a big deal. When you want to look in a certain direction (say bottom-right) you will bring the joystick all the way to that direction; if along the way it registers as a bottom or right movement then you will momentarily look to the right or backwards, but then you will look bottom-right (the correct direction) as soon as the joystick is pressed to the perimiter (as there it is easy to see the current x & y co-ordinates of the joystick and decide which of the 8 sectors it falls under).
So I think it would be a good idea to reintroduce 8-way joystick functionality, even if its uses aren’t as wide as once hoped – it’s definately still good for some things.
3. Maybe consider being able to designate a button – that changes the functionality of other buttons. So each physical button can e.g. have 2 actions mapped, a primary one which is what happens when you press that button normally, and a secondary action that is activated only when you press that button while holding down the functionality-modifying button.
In comparison to the other suggestions this is a bigger feature, and I don’t think it’s as neccessery – but if it is implemented it will definately open up the possibility of playing some of the more complicated sims out there.
15. January 2018 at 16:34 #5608Al ex
KeymasterThese are actually pretty cool suggestions. I’d second #1 and #3 in particular. ?
15. January 2018 at 16:44 #5609admin
KeymasterHi thank you for suggestions.
Yes I remember problems with Eye of Beholder and I did not forget. Sorry for delay, I want work on that when I finish new console mode. This is currently my biggest focus. For that purpose I bought shield tv from donations. Having perfectly working mDosbox on shield tv will hold my interest on this device for a long time.
First point is easy and I can add it to next version.
Second point is hard. If I remember well, I added possibility for increasing dead zone. Having dead zone at maximum reduced this problem, however problem was not removed. I want fix that. Is something like this implemented in other emulators? Maybe I can contact author and ask. I need example.
Third point is very good idea and will be implemented after I finish new console mode. In next version you can bind key widget and profit from dbl tap.
In addition, after finishing new console mode will be added special menu like weapons picker. You will be able modify each menu item and uts functionality.
15. January 2018 at 17:52 #5610admin
KeymasterOk, I was thinking about point 3. It can be done in two ways. First way is harder and I will not work on that now, however second way is easy and can be done quickly. You can bind to gamebutton button special action called “modifier”. Then if is this modifier pressed, we can check other buttons for that modifier and execute another actions. But gamepad button with bounded “modifier” cannot be used for something else.
Other way allows bind to f.e A to L1. And you can do another action with L1+R1 for example. But this needs various delays for checking. This is harder for implementation and I wont work on that now. Anf these delays may be not welcome by shooters or other quick actions.
15. January 2018 at 21:16 #5611flamming_python
ParticipantSecond point is hard. If I remember well, I added possibility for increasing dead zone. Having dead zone at maximum reduced this problem, however problem was not removed. I want fix that.
Yes solving the problem is hard; but that’s not what I’m asking.
The problem is that the wrong actions would be fired in the process of moving the analogue stick.
For Eye of the Beholder it was a problem, as it meant that your character would move in the wrong direction and could fall into a pit or whatever.
However when it comes to emulating something like a joystick’s hat-switch; switching views in a flight-sim – then it’s not a problem at all; momentarily looking in the wrong direction is fine as long as the correct direction is looked to afterwards; once the joystick reaches the end of its movement.And once the joystick approaches the end of its movement figuring out which of the 8 sectors its location falls under is easy.
x: 0 y: 0 is top-left (and several dozen pixels around those co-ordinates too)
x: width/2 y: 0 is top
x: width y: 0 is top-right
etc…So just reactivate the 8-way mode in the condition that it was when we gave up testing it; and add a note warning the user not to assign any of the directions to any critical actions as they can and do fire by accident.
Is something like this implemented in other emulators? Maybe I can contact author and ask. I need example.
I’ll keep my eyes peeled.
Any emulator of a console that has a directional pad, and that allows that directional pad to be mapped to an analogue stick on a bluetooth controller; is a potential candidate. So RetroArch and probably some of the Genesis/SNES/NES emulators.
What we’re really looking for, to abstract the problem a bit, is code that can convert continuous analogue motion into a small range of discrete digital inputs.
And it has to do so taking into account how people use their thumbs to move the analogue stick.Maybe look at some open source fighting games with analogue stick support? Dunno
Ok, I was thinking about point 3. It can be done in two ways. First way is harder and I will not work on that now, however second way is easy and can be done quickly. You can bind to gamebutton button special action called “modifier”. Then if is this modifier pressed, we can check other buttons for that modifier and execute another actions. But gamepad button with bounded “modifier” cannot be used for something else.
Yes this is what I was requesting exactly.
Other way allows bind to f.e A to L1. And you can do another action with L1+R1 for example. But this needs various delays for checking. This is harder for implementation and I wont work on that now. Anf these delays may be not welcome by shooters or other quick actions.
So like mapping actions to combos; also a great idea – but as you mention it sounds like a considerable amount of work. The modifier button ought to suffice for the time being.
15. January 2018 at 22:18 #5612admin
KeymasterI must read your suggestions about poibt two tomorrow. I think i am bit lost. However, for Eye of Beholders I can implement 6-way dpad, exactly like this one:
https://i.stack.imgur.com/WLpfx.png
Directions could be easily catched (i hope), because angles are not so small. And maybe, up/down angles can be smaller.
19. January 2018 at 14:58 #5613flamming_python
ParticipantWhat I’m trying to say is – just put the 8-way joystick mode back in as it was (in the beta release you gave me), without trying to fix it.
It’s no good for Eye of the Beholder but its still useful in some other games.That 6-way joystick mode looks very promising too.
19. January 2018 at 23:03 #5614admin
KeymasterI completely forgot that 8 way joystick was removed…
24. January 2018 at 13:50 #5615flamming_python
ParticipantOne more quick suggestion – maybe add a mapping for joystick for the ‘neutral’ position too; that’s to say the neutral position of a joystick that it automatically returns to when you take your hand/thumb off of it. If this mapping is set to a key or action, then it is fired when the neutral position is switched back to from a non-neutral position (such as top, left, etc…).
This is useful when you want a gamepad analogue stick to emulate the functionality of a joystick’s hatswitch; as their behaviour in games are typically such that you only look in a certain direction while your thumb is pushing the hatswitch in that direction. As soon as you take your thumb off the hatswitch, the view snaps back to forward/normal.
24. January 2018 at 22:12 #5616admin
KeymasterIf it can improve things than why not. I can look at this when new console mode will be out.
29. September 2018 at 12:04 #6306flamming_python
ParticipantAny news on these improvements? It’s been 9 months now.
10. April 2019 at 9:41 #7088flamming_python
ParticipantAny news?
How’s console mode?
29. December 2019 at 10:47 #7494Banjo
ParticipantIs #1 (modifier keys) possible now? I couldn’t figure out how to do it…
26. May 2020 at 11:20 #7970flamming_python
ParticipantBumppppp
admin where are you?
22. March 2022 at 20:04 #9598ispolin
ParticipantI would also like to vote for suggestion #3 (designating controller buttons as modifiers). Ideally, I would like to be able to set at least 2 buttons as modifiers, and to be able to combine them (e.g. L1 and R1 (left and right triggers on the controller) are set as modifier keys, X button on controller maps to one key, X+L1 maps to another key, X+R1 maps to a third key and X+L1+R1 maps to a fourth key).
-
AuthorPosts
- You must be logged in to reply to this topic.