1
0
Fork 0
mirror of https://github.com/dosbox-staging/dosbox-staging synced 2025-12-04 16:27:29 -05:00
1 Input tests
John Novak edited this page 2025-07-29 17:29:51 +10:00

Input tests

This page lists games and programs that have been affected by the input emulation; be it at the DOS or SDL level.

They're handy to regression test input-related PRs and release candidates.

Table of contents

Keyboard

  • Ford Fiesta Werbespiel: At the name: prompt, the game expects to read CRLF after pressing Enter to processed. FIESTA.ZIP

  • MegaZeux: After letting the intro play, P should start game play and Enter should bring up the menu during game play.

  • Gods (by Bitmap Brothers): Input sould not jam or excessively queue up keystrokes.

  • Tyrian: Input in the menus is typically quite sensitive so use short and light taps. If problems occur, the menu selection jumps multiple positions making it nearly impossible to control.

  • Pinball Fantasies: Play the game for a while using the shift keys, and notice that the left pinball paddle has a tendency to get stuck in the "up" position. There's confirmation here that this is an SDL related bug. This hasn't been fixed yet.

Mouse

General note regarding mouse wheel: not many DOS software support it, but it can be tested (for example, in the Mpxplay media player for DOS the mouse wheel can be used in the file browser).

Emulated DOS mouse driver

Just set builtin_dos_mouse_driver = on in the configuration file. Depending on the builtin_dos_mouse_driver_model setting, the driver can also provides a mouse wheel API. To check that the driver is loaded into memory:

  • either use a FreeDOS MEM.EXE and type command mem /fu /p
  • or use the MS-DOS 6.22 MEM.EXE and type command mem /c /p

The builtin MEM command is too simplified and does not have the equivalent options yet.

Even if builtin_dos_mouse_driver = off, the builtin DOS mouse driver can be started by running Z:\MOUSE.COM.

One can also select older emulation method with builtin_dos_mouse_driver = no-tsr - this does not create the TSR detectable by the MEM command and does not work correctly with the MS-DOS Prompt available with Windows.

Serial mouse

You can use CtMouse driver version 2.1b4 to test serial mouse:

  • Set serial1 = mouse in the configuration file and make sure com_mouse_model is set to the model you want to test.
  • Note the driver (like every DOS mouse driver developed with real PCs in mind) is not compatible with mouse_capture = seamless setting.
  • Start the driver with CTMOUSE.EXE /V to force using the serial port interface.
  • For testing the mouse, wheel use the CTMOUSE.EXE /P /O command, for testing a Mouse Systems mouse, use CTMOUSE.EXE /V /M.
  • Wheel movement is far less smooth than with the PS/2 driver or our internal emulated DOS driver; this is normal.

PS/2 mouse — BIOS-level access

You can use CtMouse driver version 2.1b4 to test PS/2 mouse emulation at the BIOS level:

  • Make sure ps2_mouse_model is set to something other than none.
  • Note the driver (like every DOS mouse driver developed with real PCs in mind) is not compatible with mouse_capture = seamless setting.
  • Start the driver with CTMOUSE.EXE /P to force using the PS/2 interface.
  • For testing mouse wheel, use the CTMOUSE.EXE /P /O command.

PS/2 mouse — register-level access

You can use CtMouse driver version 2.0a4 to test PS/2 mouse emulation at register level:

  • Make sure ps2_mouse_model is set to something other than none.
  • Note the driver (like every DOS mouse driver developed with real PCs in mind) is not compatible with mouse_capture = seamless setting.
  • It is recommended to set builtin_dos_mouse_driver = off as this version has problems running correctly when our internal mouse driver is enabled.
  • Start the driver with CTMOUSE.EXE /P to force the PS/2 interface

VirtualBox mouse interface

You can use VBADOS driver (https://git.javispedro.com/cgit/vbados.git/) to test VirtualBox mouse interface emulation:

  • Make sure ps2_mouse_model is set to something other than none.
  • Set virtualbox_mouse = on; you can set vmware_mouse = off to make sure the driver will use the intended interface.
  • Start the driver with VBADOS.EXE command.
  • The driver provides the mouse wheel API (but you need to emulate a wheel-equipped PS/2 mouse for this).
  • Make sure to test both host and guest cursor (use VBADOS.EXE hostcur ON / VBADOS.EXE hostcur OFF commands when the driver is loaded).
  • Make sure to test both fullscreen mode and DOSBox running in the window.
  • The driver is probably less compatible with games than CtMouse or our internal mouse driver.

VMware mouse interface

You can use VBADOS driver (https://git.javispedro.com/cgit/vbados.git/) to test VMware mouse interface emulation:

  • Make sure ps2_mouse_model is set to something other than none.
  • Set vmware_mouse = on; you can set virtualbox_mouse = off to make sure the driver will use the intended interface.
  • Start the driver with VBADOS.EXE command.
  • The driver provides the mouse wheel API.
  • Make sure to test both fullscreen mode and DOSBox running in the window.
  • The driver is probably less compatible with games than CtMouse or our internal mouse driver.

Windows 3.1x support

The following mouse drivers bundled with Windows 3.1x should work with the emulated PS/2 mouse:

  • Microsoft, or IBM PS/2, driver support the mouse also for DOS programs run within the MS-DOS Prompt window

The following mouse drivers bundled with Windows 3.1x should work with the emulated serial mouse (serial1 = mouse or serial2 = mouse has to be set, depending on the concrete driver variant):

  • Genius serial mouse
  • Logitech, driver support the mouse also for DOS programs run within the MS-DOS Prompt window
  • Mouse Systems serial mouse

The following 3rd party Windows 3.1x should work with the emulated PS/2 mouse:

  • unofficial VMWare mouse driver, https://github.com/NattyNarwhal/vmwmouse (warning: driver has known stability problems, reproducible also with QEMU), requires vmware_mouse = on and enabled ps2_mouse_model
  • unofficial VirtualBox mouse driver, https://git.javispedro.com/cgit/vbmouse.git/about/, requires virtualbox_mouse = on and enabled ps2_mouse_model, driver support the mouse also for DOS programs run within the MS-DOS Prompt window
  • A4Tech 3D Scrolling Mouse Driver, requires ps2_mouse_model = intellimouse or ps2_mouse_model = explorer

The following 3rd party Windows 3.1x should work on top of the builtin DOS mouse driver:

Note

Multiple DOS windows under Windows 3.1x are not supported and are currently very unstable.

Note

A4Tech 4D mouse driver does not currently work; always use the A4Tech 3D mouse driver.

Windows 9x support

You need at least a 5-button mouse to fully test Windows 9x mouse support.

Windows 9x should be tested with the following mouse drivers:

  • its built-in serial mouse driver
  • its built-in PS/2 mouse driver
  • Microsoft IntelliPoint software version 3.0 or later, with ps2_mouse_model = intellimouse and ps2_mouse_model = explorer.

The IntelliPoint software should recognize the PS/2 mice mentioned above. To test the middle mouse button, use mouse_middle_release = off to prevent DOSBox Staging from taking it over. The easiest way to test the wheel and all the buttons is to use the IntelliPoint system tray utility.

Note

  • If ps2_mouse_model = intellimouse, mouse buttons 4 and 5 function as a middle mouse button, even if mouse_middle_release = on - this should be tested too.
  • Windows 95 does not support the mouse wheel out of the box.
  • The VMware mouse interface emulation is not yet compatible with the official VMware mouse driver for Windows 9x.

Problematic games

The following games are worth retesting when doing changes to the emulated DOS mouse driver:

Master of Orion II

The game used to skip mouse events when using the emulated DOS mouse driver.

Ultima Underworld I and II

For this test you need a gaming mouse with a high refresh rate as these are the mice that exhibit issues with the Ultima Underworld mouse handling code.

To test the games, use the following setting:

builtin_dos_mouse_driver         = on
builtin_dos_mouse_driver_options =

DOSBox Staging now limits the mouse refresh rates perceived by games, by default to 200 Hz, which is still great for DOOM, but for Ultima Underworld it might be too much, therefore also execute the command:

mousectl DOS -r 100

With these settings, both games should be playable even when using a modern gaming mice.