Controller issues - dosbox-staging/dosbox-staging GitHub Wiki

Table of contents (click to expand)

Game-specific controller issues and fixes


Mapping left trigger on Sony DualShock 4

Whenever you map the trigger buttons of DualShock 4 to SHIFT (for instance to look up/down while up/down is pressed simultaneously), the game might behave as if SHIFT is held down all the time. This could make pause menu and alike unusable or preventing other keys to work as expected. [Reference].

Workaround: edit your mapper file and change the trailing 0 in axis 4 0 to a 1 like so:

key_lshift "stick_0 axis 4 1" 

[Top]


Mouse

DOSBox strives to emulate the original hardware as closely as possible, which can result in replicating erratic mouse behaviour present in some programs. As these issues are caused by suboptimally coded mouse handlers in the programs' code, usually there's not much to do about them at the emulator level. However, in some cases there are workarounds that can make the mouse behaviour more tolerable, plus it's good to keep track of these programs so we won't waste time on investigating mouse issues that are unfixable without patching the original code.

Adjusting Mouse Sensitivity

  1. Open dosbox-staging.conf in a text editor, such as Notepad, Notepad++, TextEdit, Nano, Vim, or Vi.

  2. Locate the mouse_sensitivity setting. 100 is the default mouse sensitivity value for Dosbox-Staging.

  3. Increase or decrease the value accordingly.

  4. Save your changes and close dosbox-staging.conf.

Enabling Raw Mouse Input

  1. Open dosbox-staging.conf in a text editor, such as Notepad, Notepad++, TextEdit, Nano, Vim, or Vi.

  2. Locate the mouse_raw_input setting. false is the default value for this setting.

  3. Change the value from false to true.

  4. Save your changes and close dosbox-staging.conf.

[Top]


Azrael's Tear

The mouse pointer jumps two pixels at a time when moved vertically. There is no workaround for this, but luckily it doesn't affect the gameplay at all.

[Top]


Bedlam

The mouse pointer movement becomes very laggy and "sticky" when using a cycles setting higher than about 10000. Using a low cycles value slows down the game considerably, but at least the mouse becomes usable (the game behaves exactly like this on real hardware; it's just not coded very well).

[cpu]
cycles = fixed 10000

[Top]


Chip's Challenge

In order to reach the prompt to quit to DOS, you must press the CTRL and X keys simultaneously twice.

[Top]


Eric the Unready

The mouse movement is about twice as sensitive horizontally than vertically. The workaround is to reduce the horizontal sensitivity:

[sdl]
sensitivity = 50, 100

[Top]


FastTracker II

The mouse needs to be moved with a certain minimum speed for the movement to be registered rightwards or downwards. You need to stay above this threshold to maintain a smooth continuous movement, otherwise you'll get a "stuck" mouse pointer or a weird "start/stop" behaviour once the speed falls below the threshold.

The issue is not present when moving the pointer leftwards or upwards.

[Top]


Knights of Xentar

The mouse movement is about twice as sensitive horizontally than vertically. The workaround is to reduce the horizontal sensitivity:

[sdl]
sensitivity = 50, 100

[Top]


Lemmings 2: The Tribes

To quit to DOS from in-game:

  1. While playing any level, double-click on the Nuke icon (the icon that looks like an explosion) to kill all the Lemmings.

  2. On the next screen, single-click on the Menu icon.

  3. You will then return to the Main Menu where you can single-click the Exit button to quit to DOS.

[Top]


Mega Man 1 (DOS Game)

Note: These are the controls for the DOS game called Mega Man 1, not the NES / Famicom game.

F1  = Speed Game Up
F2  = Slow Game Down
F9  = Toggle to pause and resume gameplay.
F10 = Exit to DOS
Esc = Display Weapons Select Menu
P, D, S, or V = selects one of your weapons in the Weapons Select Menu.
Left = Move Left
Right = Move Right
Up = Move Up (on Ladders)
Down = Move Down (on Ladders)
Space = Start Game (at the Title Screen) / Fire Your Weapon (In-Game)
J   =  Jump

[Top]


Mega Man 3 (DOS Game)

Note: These are the controls for the DOS game called Mega Man 3, not the NES / Famicom game.

F1  = Speed Game Up
F2  = Slow Game Down
F9  = Toggle to pause and resume gameplay.
F10 = Exit to DOS
Esc = Display Weapons Select Menu
P, D, S, or V = selects one of your weapons in the Weapons Select Menu.
Left = Move Left
Right = Move Right
Up = Move Up (on Ladders)
Down = Move Down (on Ladders)
Space = Start Game (at the Title Screen) / Fire Your Weapon (In-Game)
J   =  Jump

[Top]


Might & Magic 4-5, World of Xeen

The mouse pointer has a tendency to disappear in some menu screens in the upper half of the screen on fast machines. The solution is to use a low fixed cycles setting. Try 20000 and keep lowering it until the cursor is visible most of the time.

[cpu]
cycles = fixed 20000

[Top]


Settlers & Settlers II

The Settlers and The Settlers II: Gold can now be played by two human players on a single computer, each controlling the game with their own mouse. See here for details.

[Top]


Shannara

The mouse movement is about twice as sensitive horizontally than vertically. The workaround is to reduce the horizontal sensitivity:

[sdl]
sensitivity = 50, 100

[Top]


The Elder Scrolls: Arena

Playing with much better controls than the default key binds

arena.zip contains an arena.map mapper file specifically modified for Dosbox-Staging that is based on TES Arena Re-Remapped 3.0.

To use this mapper file, open dosbox-staging.conf in a text editor, go to the [sdl] section, locate the mapperfile setting, and specify the path to arena.map accordingly. For example: mapperfile = c:\dosgames\arena\arena.map

If you need to type something in the game with this mod, you need to hold down Left-Ctrl, so keys that were changed will change back to the original.

QWEASD for movement
R for rest
F to draw your weapon
Z for pilfering
X to drop an item in inventory menu
C for cast
Shift + C for quick cast of last spell that were casted
V for item use menu 
TAB for character panel 
T for status check
SPACE for jump
Left-Shift + SPACE for jumping forward
M for local map
O for world map

The other buttons from TES Arena Re-Remapped 3.0 have not been changed.

[Top]


Ultima Underworld I & II

The mouse pointer has a weird jerky behaviour with the default settings. You cannot move it just a little, you need go over a certain "minimum movement speed threshold" to move it at all. This makes it very hard to make fine movements. The behaviour is present on real hardware too, so the game's mouse handling is simply badly coded.

It's possible to achieve better-than-hardware mouse behaviour with the below settings (tested on Windows 10). mouse_sensitivity needs to be at least 150 (you can go higher as well). mouse_raw_input = off is not strictly necessary but it improves precision when moving the pointer slowly. If the resulting mouse sensitivity is too high, you can try lowering the OS-level mouse sensitivity to compensate (remember, you need mouse_sensitivity to be at 150 or higher for the fix to work).

[mouse]
mouse_raw_input = off
mouse_sensitivity = 150

[Top]


Ultimate Doom

Note: This also applies to Doom 2 and the other Doom engine games, such as Chex Quest, Heretic, Hexen 1, and Strife: Quest for the Sigil, etc.

NOVERT.COM is not needed for Dosbox-Staging because Dosbox-Staging already has its own tools to handle this situation.

Setting NOVERT using mouse_sensitivity or mousectl

  1. Set mouse_sensitivity = 100,0 in your dosbox-staging.conf's [mouse] section or .bat file such as the one below (the zero disables the Y axis):

(Default X mouse sensitivity value is already 100)

mouse_sensitivity = 100,0
c:
cd doom
doom.exe

OR

  1. You can use Dosbox-Staging's built-in MOUSECTL program to accomplish the same thing in a .bat file such as the one below:

(Default X mouse sensitivity value is already 100)

mousectl dos -sx 100
mousectl dos -sy 0
c:
cd doom
doom.exe

Mouse Inversion

Another tip: Using either mouse_sensitivity or mousectl, you can invert the mouse axis by setting the Y axis to a negative value, like 100,-100:

mouse_sensitivity = 100,-100

mousectl dos -sx 100

mousectl dos -sy -100

Or dampen it by 50% but still invert it with 100,-50:

mouse_sensitivity = 100,-50

mousectl dos -sx 100

mousectl dos -sy -50

[Top]


X-Men: Madness in Murderworld

Number pad keys 1 ,3, 7, and 9 are used for attacks.

The number pad keys are located on your keyboard to the right of the Page Up and Page Down keys.

[Top]


⚠️ **GitHub.com Fallback** ⚠️