Mouse acceleration must be disabled in each source port.
woof = vanilla = chocolate = crispy = eternity
woof_turn = (mouse_sensitivity_horiz + dsda_fine_sensitivity / 100) * 5 / 4 - 5
woof_look = mouse_sensitivity_mlook * 5 / 4 - 5
woof_strafe = (mouse_sensitivity_horiz + dsda_fine_sensitivity / 100) * 5 / movement_mousestrafedivisor - 5
woof_move = mouse_sensitivity_vert * 5 / 4 - 5
// GZDoom mouse strafing and vertical movement have unknown behavior.
woof_turn = m_sensitivity_x * m_yaw * 20 - 5
woof_look = m_sensitivity_y * m_pitch * 20 - 5
// Odamex mouse strafing and vertical movement vary by framerate due to rounding error.
woof_turn = mouse_sensitivity * m_yaw * 40 - 5
woof_look = mouse_sensitivity * m_pitch * 20 - 5
The config values listed below produce equivalent sensitivities across each source port. The results are similar to Chocolate Doom's default settings.
# woof.cfg
mouse_sensitivity 15
mouse_sensitivity_y 15
mouse_sensitivity_strafe 15
mouse_sensitivity_y_look 15
mouse_acceleration 0
# default.cfg
mouse_sensitivity 15
# dosbox-staging.conf
[mouse]
mouse_sensitivity = 100
mouse_raw_input = true
dos_mouse_driver = true
dos_mouse_immediate = true
# default.cfg
mouse_sensitivity 15
# chocolate-doom.cfg
mouse_acceleration 1.000000
# Free look is non-linear due to simplified pitch calculations.
# default.cfg
mouse_sensitivity 15
mouse_sensitivity_x2 15
mouse_sensitivity_y 15
# crispy-doom.cfg
mouse_acceleration 1.000000
# eternity.cfg
mouse_sensitivity_horiz 15.0000
mouse_sensitivity_vert 15.0000 (or 5.00000 for proper free look)
mouse_accel 0
vanilla_sensitivity 1
# dsda-doom.cfg
mouse_sensitivity_horiz 16
dsda_fine_sensitivity 0
mouse_sensitivity_vert 16
dsda_mouse_acceleration 0
mouse_sensitivity_mlook 16
movement_mousestrafedivisor 4
# Mouse strafing and vertical movement have unknown behavior.
# gzdoom.ini
[GlobalSettings]
m_sensitivity_x=1
m_sensitivity_y=1
m_yaw=1
m_pitch=1
m_side=0
m_forward=0
# Mouse strafing and vertical movement vary by framerate due to rounding error.
# odamex.cfg
set "mouse_sensitivity" "0.5"
set "m_yaw" "1"
set "m_pitch" "2"
set "m_side" "2"
set "m_forward" "4"
set "mouse_type" "1"
Simplified scaling factors with mouse acceleration disabled.
turn = (mouse_sensitivity + 5) * 8 / 10
look = (mouse_sensitivity_y_look + 5) * 8 / 10
strafe = (mouse_sensitivity_strafe + 5) * 2 / 10
move = (mouse_sensitivity_y + 5) / 10
turn = (mouse_sensitivity + 5) * 8 / 10
look = N/A
strafe = (mouse_sensitivity + 5) * 2 / 10
move = (mouse_sensitivity + 5) / 10
// Free look is non-linear due to simplified pitch calculations.
turn = (mouse_sensitivity + 5) * 8 / 10
look = (mouse_sensitivity_y + 5) / 10
strafe = (mouse_sensitivity_x2 + 5) * 2 / 10
move = (mouse_sensitivity_y + 5) / 10
turn = (mouse_sensitivity_horiz + 5) * 8 / 10
look = (mouse_sensitivity_vert + 5) * 16 / 10
strafe = (mouse_sensitivity_horiz + 5) * 2 / 10
move = (mouse_sensitivity_vert + 5) / 10
turn = mouse_sensitivity_horiz + dsda_fine_sensitivity / 100
look = mouse_sensitivity_mlook
strafe = (mouse_sensitivity_horiz + dsda_fine_sensitivity / 100) / movement_mousestrafedivisor
move = mouse_sensitivity_vert / 8
// Mouse strafing and vertical movement have unknown behavior.
turn = m_sensitivity_x * m_yaw * 16
look = m_sensitivity_y * m_pitch * 16
strafe = m_sensitivity_x * m_side * ???
move = m_sensitivity_y * m_forward * ???
// Mouse strafing and vertical movement vary by framerate due to rounding error.
turn = mouse_sensitivity * m_yaw * 32
look = mouse_sensitivity * m_pitch * 16
strafe = mouse_sensitivity * m_side * 4
move = mouse_sensitivity * m_forward