* Add OpenFIRE lightguns to guns whitelist
* Add preliminary OpenFIRE support
Guns are detected as light guns based on static VID and OpenFIRE name prefix, as the PID can be any number of different values depending on the user.
Because OpenFIRE guns can be polled through serial devices, a basic (read: hacky) heuristic is used to poll for serial port paths and send a signal to compatible guns to enable their MiSTer compatible mode.
* Tabbbbbs
* Directly open and write to file rather than rely on system echo
Gun sends a mix of keyboard presses, mouse button presses and EV_ABS position data.
Added a QUIRK_LIGHTGUN_MOUSE quirk which passes the mouse button presses through the input system like other EV_KEY events instead of using them for mouse updates. This allows the mouse buttons to be mapped like regular joystick or keyboard buttons.
Added the left mouse button as a keycode that is accepted by the lightgun calibration menu.
Assign player if mouse button is pressed.
* Modifications to input handling to prevent held inputs from being
overridden by an alternate input mapped to the same button.
i.e. R-Type holding fire to charge special shot will not be
disrupted if a secondary fire button is pressed, autofire
or not.
* Modifications to input handling to prevent held inputs from being overridden by an alternate input mapped to the same button.
i.e. R-Type holding fire to charge special shot will not be
disrupted if a secondary fire button is pressed, autofire
or not.
* Prevent held inputs from being disrupted by alternate inputs.
i.e. in R-Type, if holding the fire button to charge a special shot,
tapping an alternately assigned fire button will not cause the charge
to stop.
A small bug was introduced with the new dead zone code that made it ignore "quirks" regarding DS3/DS4. These devices should automatically be given a dead zone of 10, as it was before.
* RetroZord VID:PID
Added the VID;PID to make_unique, and to the two special input modes.
Removed the Arduino Leonardo specific PID, leaving only he main arduino VID. So any DIY adapter using an arduino will work.
* Use UNIQ field on RetroZord Adapter
* input.cpp: pass dev nr to joy_analog
This allows for per-controller behavior
* N64: add emulation for the analog joystick
This applies the reduced-range octagonal gate of the N64 analog stick to
regular analog sticks.
The code was mostly written by Patrick Pollock with small optimizations
by Martin Donlon and myself.
- add Thrustmaster Guillemot Force Feedback Racing Wheel (06f8:0004)
case to setup_wheel for axis 8 (wheel), 9 (accel) and 10 (brake) with
FF_AUTOCENTER support. This wheel uses the built-in `iforce` kernel
module
- prevent input_cb from skipping axis 7 and 8 (previously assumed to be
both paddle axis) if QUIRK_WHEEL is set on the device
- add wh_pedal_invert field to indicate that the pedal range needs to be
inverted after normalization as the device input goes from minimum (0)
offset to maximum (255) offset on pedal depression rather than maximum
to minimum (like the existing supported wheels)
- comment the existing wh_ fields in setup_wheel to indicate their
function
Fixes#799
Co-authored-by: Dominic Evans <oldmanuk@gmail.com>
Add ini option `unique_mapping` which makes controller mappings unique to the physical port the controller is connected to.
Calculates a uint32_t unique_hash for each device during enumeration.
Co-authored-by: Martin Donlon <github-martin@donlons.com>
* Add support for sdl style gamecontrollerdb to setup default mappings for controllers
* Do not cache game controller entries, find them dynamically in the file when needed
Co-authored-by: Zakk <zakk@rsdio.com>
When a CRT lightgun starts reporting out-of-screen coordinates,
the last good on-screen coordinates are retained and passed through
for 50 ms. This improves GunCon 2 performance on NES, and generally
makes CRT-based guns a bit more reliable in games with a lot of dark
areas.