summaryrefslogtreecommitdiff
path: root/src/setup/joystick.c
AgeCommit message (Collapse)Author
2015-04-15setup: Remove "enable gamepad" checkbox.Simon Howard
This control seemed redundant, as we have the control below it that selects the gamepad to use. So remove it and set the usejoystick variable automatically based on whether joystick_index has been configured to point to a valid device.
2015-04-15setup: Add joyb_jump to empty defaults.Simon Howard
When applying defaults for a particular gamepad, we must clear all the current buttons, and the jump binding wasn't on this list for some reason.
2015-04-15setup: Undo axis reversal for Gameport adapter.Simon Howard
This reverts my last change. I was testing with the Gravis Gamepad and had the switch for left-handed mode turned on and didn't realise (embarrassing!)
2015-04-13setup: Invert both axes for Gameport adapter.Simon Howard
Directions were backwards for both X and Y axes when testing with an original Gravis Gamepad.
2015-04-11Merge branch 'master' of github.com:chocolate-doom/chocolate-doomSimon Howard
2015-04-11Merge pull request #521 from chungy/xbone-padSimon Howard
setup: add support for the Xbox One controller on Linux
2015-04-11setup: Add OS X config for Gameport adapter.Simon Howard
The identified name/signature for this adapter is different under OS X. Also fix a mistake in the last commit.
2015-04-12Merge branch 'master' of https://github.com/chocolate-doom/chocolate-doomSimon Howard
2015-04-12setup: Add config for USB Gameport adapter.Simon Howard
This configuration supports the "Super Joy Box 7" USB gameport adapter, for people using old PC gameport joysticks / gamepads. The button configuration matches the original Vanilla configuration, for authenticity.
2015-04-10Add missing #includes.Simon Howard
2015-04-04setup: Add help URLs for configuration windows.Simon Howard
The wiki now has documentation pages for most of the windows in the setup tool. Add help URLs that link to these. One other minor change here is that the warp button on the main menu had to change to F2 instead of F1, which is now the help key.
2015-03-25setup: add support for the Xbox One controller on LinuxMike Swanson
Effectively it's a slightly re-arranged Xbox 360 controller, no major changes, so we can just use the same config as that one.
2015-02-20Refactor config file API.Simon Howard
The config file API previously relied on binding config variables using M_BindVariable() which took a void pointer. It occurred to me that if used on a boolean variable, this would be erroneous, but the void pointer would make it impossible to tell. Split this into separate M_Bind{Foo}Variable() functions based on type, which allows for proper type checking on the pointers that are passed. Vaguely related to #509.
2014-10-26Add gamepad config for PS4 DualShock 4.Simon Howard
Thanks to Matt Davis (3nT) for providing a detailed report for this gamepad.
2014-08-24setup: Add gamepad config for Buffalo Classic Gamepad.Simon Howard
The Buffalo Classic USB Gamepad is a USB gamepad that resembles the classic SNES controller. Thansk to Fabian Greffrath for sending in the report.
2014-08-18setup: Add config for Multilaser JS030 gamepad.Simon Howard
Thanks to "Absolute Zero" for the report with the gamepad settings.
2014-08-17setup: Add gamepad config for XBOX One controller.Simon Howard
The XBOX One controller apparently appears identical to the Xbox 360 controller. Thanks Brad Harding.
2014-05-26setup: Add default config for Xbox360 on Linux.Simon Howard
The Xbox360 controller is handled differently by different operating systems, and the layout is different on Linux to Windows. Detect the Linux layout and set some appropriate defaults.
2014-05-16setup: Don't leave joystick subsystem running.Simon Howard
Only init the joystick subsystem when we need to call the joystick API functions, and quit the subsystem when we are finished. This avoids conflicts with the joystick widgets that quit the subsystem while the main code relies on it running. This fixes a bug where trying to calibrate the joystick twice would fail on the second attempt.
2014-05-16setup: Factor out axis configuration to widget.Simon Howard
Move code for configuring joystick axes into a separate widget, and add axis widgets to the configuration window for all possible movement.
2014-05-05setup: Add Xbox360, Logitech joystick settings.Simon Howard
Recognise the Xbox360 controller and Logitech Dual Action controllers and set defaults as appropriate. Thanks to Brad Harding for the information about these controllers.
2014-05-05Clean up file headers.Simon Howard
This change rewrites and simplifies the copyright headers at the top of all source files: * Remove "Emacs style mode select" line; this line was included in the headers for the originally released source files and appears to be to set the file type for old versions of Emacs. I'm not sure entirely why it was required but I don't think it is any more. * Remove "You should have received a copy of..." text from copyright header. This refers to the old 59 Temple Place address where the FSF headquarters used to be located and is no longer correct. Rather than change to the new address, just remove the paragraph as it is superfluous anyway. This fixes #311. * Remove ---- separator lines so that the file headers are barer and more simplified.
2014-05-03setup: Add configuration for Wii remote.Simon Howard
The Wii remote is not a HID device, meaning it cannot be supported in a proper cross-platform way. However, it can be supported for individual platforms. Add a fingerprint and configuration for a Wii remote under OS X using the WJoy tool.
2014-05-03setup: Fix disabling of joystick button bindings.Simon Howard
When setting a joystick button binding to -1 to disable it, set it directly; do not go through to the physical button mapping layer. Also add a quick note to encourage users to send in details of their gamepads.
2014-05-03setup: Start a list of known gamepads.Simon Howard
Detect certain gamepads by name and automatically configure defaults for buttons and axes, to minimize setup time. Supported so far are the PS3 controller and AIRFLO gamepad.
2014-05-01setup: fix usejoystick/use_joystick typo in the previous commitMike Swanson
2014-05-01setup: Enable joystick after calibration.Simon Howard
If the user has just successfully calibrated the joystick, then turn on use_joystick as a convenience feature.
2014-05-01setup: Add control for joystick menu button.Simon Howard
The code is already in place for this but there was no control in the setup tool to configure it.
2014-05-01setup: Configure joystick buttons with virtual mapping.Simon Howard
Refactor how joystick buttons are reassigned. Define a fixed mapping from joyb* variables to virtual buttons, and change the button assignments at the virtual->physical mapping level.
2014-04-30joystick: Add virtual-physical button mapping.Simon Howard
The solution to solving #386 is to add a layer of indirection: the game code can only support up to ~20 joystick buttons, but this doesn't matter as long as we never want to bind more than 20 buttons to actions anyway. Redefine the game's notion of buttons to be based on "virtual" joystick buttons, and map these buttons to physical (SDL) buttons based on configuration file variables.
2014-04-29setup: Detect and ignore bad joystick axes.Simon Howard
In some cases a joystick axis can be "stuck" and have a large uncentered value. These must be detected and ignored, otherwise the axis can be chosen during calibration instead of the user's actual desired axis.
2014-04-28setup: Detect and configure hat-based D-pads.Simon Howard
As a second fallback, if all joysticks are centered and no buttons are pressed, look at the hats on the joystick to see if one of those is uncentered. Bizarre as it seems, some gamepads actually present the D-pad as a hat.
2014-04-28setup: Add support for button axis calibration.Simon Howard
Detect when we need to configure a "button axis" by falling back to buttons when none of the joystick axes are significantly outside of the centered range. Add extra calibration stages to get the D-pad buttons for right and down in these cases.
2014-04-19setup: Change labelling to clarify gamepad support.Simon Howard
Vanilla Doom's setup.exe only made reference to "joysticks" as back then gamepads were relatively uncommon for PCs and ports for game controllers canonically known as "joystick ports". Nowadays it's far more likely (and ergonomic) that the player will be using a gamepad than a joystick. Change the labelling to refer to "Gamepad/Joystick" or "controller" instead.
2014-04-19joystick: Add joystick button to toggle menu.Simon Howard
When using a joystick or gamepad it's nice to be able to bring up the menu without having to reach for the keyboard. This makes modern gamepads more useful/usable.
2014-04-19joystick: Add an axis to allow strafing.Simon Howard
Modern gamepads typically have 2-3 D-pads and joysticks. This means that it's desirable to be able to use one joystick for turning and another for strafing. Add another axis in addition to the current X and y axes that performs strafe movement.
2011-09-20Add TXT_MessageBox convenience function.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2388
2011-09-11Merge from raven-branch.Simon Howard
Subversion-branch: /branches/strife-branch Subversion-revision: 2367
2011-06-13Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 2347
2011-03-07Update config variable binding in setup tool so that the correctSimon Howard
variables are bound for Strife. Add option for show_talk to sound configuration screen. Subversion-branch: /branches/strife-branch Subversion-revision: 2296
2010-12-10Merge from trunk. This is slightly out of date as I did the mergeSimon Howard
several days ago. Subversion-branch: /branches/raven-branch Subversion-revision: 2212
2010-08-31Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1987
2009-11-21Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1737
2008-12-08Update lists of keyboard/mouse/joystick buttons.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1411
2008-11-28Add Heretic/Hexen controls to setup program.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1390
2008-11-24Make chocolate-setup use m_controls.c definitions for config fileSimon Howard
keyboard/mouse/joystick variables. Make other configuration file variables static and add bind functions. Subversion-branch: /branches/raven-branch Subversion-revision: 1387
2008-11-21Move setup/ into src/ and merge with main codebase. Remove duplicatedSimon Howard
code. Split out I_Endoom to separate i_endoom.c file. Subversion-branch: /branches/raven-branch Subversion-revision: 1384