Neccessary control improvements for flight/space/mech-sims

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #5607
    flamming_python
    Participant

    Hiya, 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.

    #5608
    Al ex
    Keymaster

    These are actually pretty cool suggestions. I’d second #1 and #3 in particular. ?

    #5609
    admin
    Keymaster

    Hi 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.

    #5610
    admin
    Keymaster

    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.

    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.

    #5611
    flamming_python
    Participant

    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.

    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.

    #5612
    admin
    Keymaster

    I 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.

    #5613
    flamming_python
    Participant

    What 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.

    #5614
    admin
    Keymaster

    I completely forgot that 8 way joystick was removed…

    #5615
    flamming_python
    Participant

    One 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.

    #5616
    admin
    Keymaster

    If it can improve things than why not. I can look at this when new console mode will be out.

    #6306
    flamming_python
    Participant

    Any news on these improvements? It’s been 9 months now.

    #7088
    flamming_python
    Participant

    Any news?

    How’s console mode?

    #7494
    Banjo
    Participant

    Is #1 (modifier keys) possible now? I couldn’t figure out how to do it…

    #7970
    flamming_python
    Participant

    Bumppppp

    admin where are you?

    #9598
    ispolin
    Participant

    I 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).

Viewing 15 posts - 1 through 15 (of 16 total)
  • You must be logged in to reply to this topic.