Skip to content
ceski edited this page Nov 16, 2024 · 11 revisions

Woof! provides modern gamepad support with deep customization options. Features include rumble, gyro, flick stick, custom weapon slots, and full control of sensitivities, response curves, and deadzones.

Contents:

Basic Options

Basic options are located under Options > General > Gamepad.

The deadzone sliders show the current stick offset to help with identifying stick drift.

Name Description
Turn Speed How quickly the view turns left or right in degrees per second.
Look Speed How quickly the view looks up or down in degrees per second.
Movement Deadzone Decrease this value for finer control of movement, or increase it to prevent stick drift.
Camera Deadzone Decrease this value for finer control of turning and looking, or increase it to prevent stick drift.
Rumble Adjusts the intensity of controller vibration.
Free Look Enables looking up or down. Note: To actually fire up or down, enable Direct Vertical Aiming.
Invert Look Inverts the direction for looking up or down.
Advanced Options See below.
Gyro Options See below.

Advanced Options

Advanced options are located under Options > General > Gamepad > Advanced.

Interactive Demo: Response Curves and Deadzones

Interactive Demo: Movement Types

Name Description
Stick Layout Configuration for left and right analog sticks.
  • Off: Disables analog sticks.
  • Default: Movement on left stick. Camera on right stick.
  • Legacy: Movement and camera are split between sticks.
  • Flick Stick: Movement on left stick. Point of view "flicks" to the direction the right stick is held.
The "southpaw" options swap the left and right sticks.
Flick Time (Flick Stick) How long it takes to face a direction, in milliseconds, when tilting the stick.
Movement Type Prefer movement similar to modern games or prefer Doom's behavior.
  • Normalized: Movement is mapped to a circle, limiting diagonal speed, similar to modern games.
  • Faster Diagonals: Movement is mapped to a square, emulating Doom's keyboard straferunning.
Note: For easier strafing, enable Auto Strafe 50.
Forward Sensitivity Increase this value for a more digital than analog forward/backward response.
Strafe Sensitivity Increase this value for a more digital than analog strafe response.
Extra Turn Speed How much extra turn speed to apply, in degrees per second, when the stick is fully tilted.
Extra Ramp Time How long it takes the extra turn speed to reach maximum, in milliseconds.
Response Curve Affects turn and look sensitivity across the stick's input range. Lower values are more responsive, whereas higher values are more steady.

Gyro Options

Gyro options are located under Options > General > Gamepad > Gyro. A DualShock 4 (PS4) or DualSense (PS5) controller is recommended for gyro aiming.

Interactive Demo: Gyro Acceleration

Name Description
Gyro Aiming Enables gyro aiming.
Gyro Space How motion input is converted into turn and look rotations.
  • Local: Turning and looking are from the controller's point of view. Best for handheld gaming.
  • Player: Turning is relative to the direction of gravity. Looking is from the controller's point of view. Best for playing with a gamepad in front of a fixed screen.
Gyro Button Action Controls the behavior of the Gyro Button.
  • None: The gyro button does nothing.
  • Disable Gyro: Gyro input is disabled while holding the gyro button.
  • Enable Gyro: Gyro input is enabled while holding the gyro button.
  • Invert: Gyro input is inverted while holding the gyro button.
Camera Stick Action Forces gyro aiming off or on while using the camera stick, regardless of the gyro button action.
  • None: Using the camera stick has no effect on gyro input.
  • Disable Gyro: Gyro input is disabled while using the camera stick.
  • Enable Gyro: Gyro input is enabled while using the camera stick.
Turn Sensitivity How quickly the view turns left or right. A value of 1.0 means one full rotation of the controller rotates the in-game view by 360 degrees.
Look Sensitivity How quickly the view looks up or down.
Acceleration Multiplier that increases turn and look sensitivity when rotating the controller quickly. Acceleration is applied linearly, ramping up from the lower to upper threshold.
Lower Threshold The lower input threshold, in degrees per second, from which acceleration starts ramping up towards the upper threshold.
Upper Threshold The upper input threshold, in degrees per second, at which full acceleration is applied.
Steadying How much filtering to apply when trying to keep the view still. Controls the strength of both the smoothing and tightening filters.
Calibrate Calibration steps:
  1. Place the controller on a flat, stable surface.
  2. Press calibrate. Calibration begins after a brief delay.
  3. Wait until the calibration is complete.
Calibrate the gyro at the start of a play session, when switching controllers, or whenever gyro drift is noticeable. Calibration data is saved to the configuration file and loaded when the game is launched.

Custom Weapon Slots

Custom weapon slots are located under Options > Weapons > Slots. Weapon switching behavior may vary slightly depending on the active Compatibility Level.

In the above example, the chaingun is selected by tapping d-pad right once. The BFG is selected by tapping d-pad left twice, skipping the plasma gun.

Name Description
Enable Slots Method for enabling weapon slots.
  • Off: Disables weapon slots.
  • Hold "Last": Weapon slots are selected by holding the Last Weapon Button and then pressing one of the weapon slot buttons. The last weapon button behaves normally when pressed quickly.
  • Always On: Weapon slots are selected by pressing the buttons directly.
Select Slots Button set used to select weapon slots.
  • D-Pad: Up/Down/Left/Right selects weapon slots. The Always On method is recommended with this option.
  • Face Buttons: North/South/West/East selects weapons slots. The Hold "Last" method is recommended with this option.
  • 1-4 Keys: The weapon slots feature is primarily for controllers, but can also be used with a keyboard by pressing the 1-4 keys.
Note: Some automap functions retain input priority over weapon slot selection.
Button Name 1st/2nd/3rd One of four weapon slots, with up to three weapons per slot.

Configuration File

Some options are located only in the configuration file. Below is a complete list of gamepad-related options in woof.cfg.

General Options

Name Default Min Max Description
joy_enable 1 0 1 Enable gamepad
joy_platform 0 0 6 Gamepad platform (0 = Auto; 1 = Xbox 360; 2 = Xbox One/Series; 3 = Playstation 3; 4 = Playstation 4; 5 = Playstation 5; 6 = Switch)
menu_help 1 0 3 Menu help (0 = Off; 1 = Auto; 2 = Always Keyboard; 3 = Always Gamepad)
joy_rumble 5 0 10 Rumble intensity (0 = Off; 10 = 100%)
joy_stick_layout 1 0 6 Analog stick layout (0 = Off; 1 = Default; 2 = Southpaw; 3 = Legacy; 4 = Legacy Southpaw; 5 = Flick Stick; 6 = Flick Stick Southpaw)
joy_invert_forward 0 0 1 Invert forward axis
joy_invert_strafe 0 0 1 Invert strafe axis
joy_invert_turn 0 0 1 Invert turn axis
joy_invert_look 0 0 1 Invert look axis
padlook 0 0 1 Padlook
direct_vertical_aiming 0 0 1 Direct vertical aiming
input_freelook NONE - - Toggle free look

Sensitivity and Response Curve Options

Name Default Min Max Description
joy_forward_sensitivity 10 0 40 Forward sensitivity (0 = 0.0x; 40 = 4.0x)
joy_strafe_sensitivity 10 0 40 Strafe sensitivity (0 = 0.0x; 40 = 4.0x)
joy_turn_speed 240 0 720 Turn speed [degrees/second]
joy_look_speed 135 0 720 Look speed [degrees/second]
joy_outer_turn_speed 0 0 720 Extra turn speed at outer deadzone [degrees/second]
joy_outer_look_speed 0 0 720 Extra look speed at outer deadzone [degrees/second]
joy_outer_ramp_time 20 0 100 Ramp time for extra speed (0 = Instant; 100 = 1000 ms)
joy_movement_type 1 0 1 Movement type (0 = Normalized; 1 = Faster Diagonals)
joy_movement_curve 10 10 30 Movement response curve (10 = Linear; 20 = Squared; 30 = Cubed)
joy_camera_curve 20 10 30 Camera response curve (10 = Linear; 20 = Squared; 30 = Cubed)
autostrafe50 0 0 1 Automatic strafe50 (SR50)

Deadzone Options

Name Default Min Max Description
joy_movement_deadzone_type 1 0 1 Movement deadzone type (0 = Axial; 1 = Radial)
joy_camera_deadzone_type 1 0 1 Camera deadzone type (0 = Axial; 1 = Radial)
joy_movement_inner_deadzone 15 0 50 Movement inner deadzone [percent]
joy_camera_inner_deadzone 15 0 50 Camera inner deadzone [percent]
joy_movement_outer_deadzone 2 0 30 Movement outer deadzone [percent]
joy_camera_outer_deadzone 2 0 30 Camera outer deadzone [percent]
joy_trigger_deadzone 15 0 50 Trigger deadzone [percent]

Flick Stick Options

Name Default Min Max Description
joy_flick_mode 0 0 2 Flick mode (0 = Default; 1 = Flick Only; 2 = Rotate Only)
joy_flick_time 10 10 50 Flick time (10 = 100 ms; 50 = 500 ms)
joy_flick_rotation_smooth 8 0 50 Flick rotation smoothing threshold (0 = Off; 50 = 5.0 rotations/second)
joy_flick_rotation_speed 10 0 50 Flick rotation speed (0 = 0.0x; 50 = 5.0x)
joy_flick_deadzone 90 0 100 Flick deadzone relative to camera deadzone [percent]
joy_flick_forward_deadzone 7 0 45 Forward angle range where flicks are disabled [degrees]
joy_flick_snap 0 0 2 Snap to cardinal directions (0 = Off; 1 = 4-way; 2 = 8-way)

Gyro Options

Name Default Min Max Description
input_gyro tptouch, lt - - Gyro button
gyro_enable 0 0 1 Enable gamepad gyro aiming
gyro_space 1 0 1 Gyro space (0 = Local; 1 = Player)
gyro_local_roll 1 0 2 Local gyro space uses roll (0 = Off; 1 = On; 2 = Invert)
gyro_button_action 2 0 3 Gyro button action (0 = None; 1 = Disable Gyro; 2 = Enable Gyro; 3 = Invert)
gyro_stick_action 0 0 2 Camera stick action (0 = None; 1 = Disable Gyro; 2 = Enable Gyro)
gyro_turn_sensitivity 25 0 200 Gyro turn sensitivity (0 = 0.0x; 200 = 20.0x)
gyro_look_sensitivity 25 0 200 Gyro look sensitivity (0 = 0.0x; 200 = 20.0x)
gyro_acceleration 10 10 200 Gyro acceleration multiplier (10 = 1.0x; 200 = 20.0x)
gyro_accel_min_threshold 0 0 300 Lower threshold for applying gyro acceleration [degrees/second]
gyro_accel_max_threshold 75 0 300 Upper threshold for applying gyro acceleration [degrees/second]
gyro_smooth_threshold 30 0 500 Gyro steadying: smoothing threshold (0 = Off; 500 = 50.0 degrees/second)
gyro_smooth_time 125 0 500 Gyro steadying: smoothing time [milliseconds]
gyro_tightening 30 0 500 Gyro steadying: tightening threshold (0 = Off; 500 = 50.0 degrees/second)
gyro_calibration_a 0 - - Accelerometer calibration
gyro_calibration_x 0 - - Gyro calibration (x-axis)
gyro_calibration_y 0 - - Gyro calibration (y-axis)
gyro_calibration_z 0 - - Gyro calibration (z-axis)

Custom Weapon Slots

Name Default Min Max Description
input_lastweapon NONE - - Switch to last used weapon
weapon_slots_activation 0 0 2 Weapon slots activation (0 = Off; 1 = Hold "Last"; 2 = Always On)
weapon_slots_selection 0 0 2 Weapon slots selection (0 = D-Pad; 1 = Face Buttons; 2 = 1-4 Keys)
weapon_slots_1_1 9 0 9 Slot 1, weapon 1
weapon_slots_1_2 3 0 9 Slot 1, weapon 2
weapon_slots_1_3 0 0 9 Slot 1, weapon 3
weapon_slots_2_1 5 0 9 Slot 2, weapon 1
weapon_slots_2_2 8 0 9 Slot 2, weapon 2
weapon_slots_2_3 1 0 9 Slot 2, weapon 3
weapon_slots_3_1 6 0 9 Slot 3, weapon 1
weapon_slots_3_2 7 0 9 Slot 3, weapon 2
weapon_slots_3_3 0 0 9 Slot 3, weapon 3
weapon_slots_4_1 4 0 9 Slot 4, weapon 1
weapon_slots_4_2 2 0 9 Slot 4, weapon 2
weapon_slots_4_3 0 0 9 Slot 4, weapon 3