Skip to content

Releases: offalynne/Input

5.0.1 beta 3

26 May 19:20
Compare
Choose a tag to compare
5.0.1 beta 3 Pre-release
Pre-release

Change log against v4.2 here.

Documentation here.

 

Changes from Beta 2:

  • Fixes some typos in documentation
  • input_binding_get() can now check the default player (use "default" as the player index)
  • Fixes mouse wheel down bindings (oops!)
  • Adds input_player_swap()
  • Fixes input_binding_is_valid()
  • input_player_get_gamepad() and input_player_get_gamepad_type() can now take a specific binding in multidevice mode
  • Fixes a crash in the binding scanner for gamepads
  • Fixes mouse buttons not being detected by the binding scanner in keyboard+mouse pairing mode
  • input_source_using() can now be given INPUT_GAMEPAD directly (as an array) to check against the assignment of any gamepad

5.0.1 Beta 2

22 May 10:11
Compare
Choose a tag to compare
5.0.1 Beta 2 Pre-release
Pre-release

Change log against v4.2 here.

Documentation here.

 

Changes from Beta 1:

  • Adds mostRecent optional argument to 2D checkers
  • Adds input_check_repeat_opposing() and input_check_opposing()
  • 2D check functions can now have a bias set so that the output gently locks to 4-dir or 8-dir output (via INPUT_2D_XY_AXIS_BIAS and INPUT_2D_XY_AXIS_BIAS_DIAGONALS)
  • Updated SDL2 database
  • Mouse capture and sensitivity and now exported/imported by input_system_export() and input_system_import()
  • All export/import functions now perform greater error checking to detect corrupted or incompatible data
  • Reduced exported data size on Android
  • Fixes old function name being used in some deprecation error messages
  • Input's realtime millisecond clock now uses per-frame cached values to remove the possibility of inconsistent timing behaviours
  • All config macros are now validated on boot

4.2.0.2 LTS

22 May 09:16
Compare
Choose a tag to compare

Version 4.2 of Input is now in "Long Term Support" mode

We're proud that so many of you have put Input at the very heart of your games. To ensure that you can build your games with confidence, we are promising support for version 4.2 in the long term. We'll be releasing critical updates and patches to repair functionality in Input 4 until April 2023 to make sure that your games release with the most stable, most accessible, most powerful input library available for GameMaker.

You can find documentation for this version here.

As we gain more experience smoothing out the sharp corners of input handling, Alynne and I have been spotting multiple places that we can expand and improve the support that Input offers to GameMaker developers. Input's underlying systems have been slowly evolving since version 3.4 (August 2021), but most of the basic structure goes back to August of 2020. Our ambitions are now outstripping what Input's current architecture can support. To realise our goal of making a better tool for you we're going to be making breaking changes to Input for our next major version, version 5.

Once again, thank you to @offalynne, @nkrapivin, and @tabularelf for putting in so much time to improve this library.

 

  • Fixes Steam Input spontaneously breaking on MacOS and Linux due to an iffy update from Valve
  • Prevents gamepads from thrashing when hotswapping when the current gamepad is already in use
  • Fixes compatibility with Opera GX
  • input_verb_set() is now functioning correctly, and has been given an optional analogue argument
  • Updates SDL2 database
  • Verbs can no longer be named as an empty string (which was causing crashes)
  • The set of ignored IME keys have been expanded to include such hits as "Launch Mail" and "Zoom", amongst others
  • Added input_players_get_status() to help detect changes in player connectivity. input_gamepads_get_status() has also been added for those who need gamepad-specific information

5.0.1 Beta 1

18 May 14:36
Compare
Choose a tag to compare
5.0.1 Beta 1 Pre-release
Pre-release

Change log against v4.2 here.

Documentation here.

 

Changes from alpha 5:

  • Fixes up HTML5 real nice
  • Export/import/reset/copy functions have been rebuilt and renamed. Please read the documentation for more info
  • Disconnected players no longer update, leading to a nice performance boost in single player modes
  • Previously hidden binding properties (gamepad and thresholds) can now be adjusted per binding
  • Combo timeouts can now be adjusted per phase

5.0.0 Alpha 5

16 May 20:37
Compare
Choose a tag to compare
5.0.0 Alpha 5 Pre-release
Pre-release

Change log against v4.2 here.

Documentation here.

 

Changes from alpha 3:

  • Individual bindings can now have their own axis thresholds by using the .threshold_set() method on bindings
  • Adds accessibility toggle behaviour
  • Binding scanner is now state-based with input_binding_scan_start()
  • Adds cursor functions
  • Adds mouse capture behaviour
  • Adds mouse dx/dy functions
  • Adds mouse coordinate space switching functions
  • input_binding_system_write() can now return prettified JSON

5.0.0 Alpha 3

15 May 15:26
Compare
Choose a tag to compare
5.0.0 Alpha 3 Pre-release
Pre-release

Change log against v4.2 here.

Documentation here.

 

Changes from alpha 2:

  • Makes initialization more reliable, hopefully

5.0.0 Alpha 2

15 May 15:11
Compare
Choose a tag to compare
5.0.0 Alpha 2 Pre-release
Pre-release

Change log against v4.2 here.

Documentation here.

 

Changes from alpha 1:

  • Fixes various issues with setting source mode on boot
  • Binding scan now sets the gamepad index
  • Fixes how input_binding_set_safe() resolves collisions in multidevice mode

5.0.0 Alpha 1

15 May 13:42
Compare
Choose a tag to compare
5.0.0 Alpha 1 Pre-release
Pre-release

Change log against v4.2 here.

Documentation here.

4.1.0

05 Mar 11:59
Compare
Choose a tag to compare

A big thank you to @offalynne who continues to push this library forwards!

 

  • Updates SDL2 binding database, including improved support for many gamepads on ChromeOS
  • Adds input_clear_momentary() to clear all of Input's pressed/released input checkers. This covers verbs as well as keyboard/mouse/gamepad direct checkers. We're finding this useful for integrating with fixed timestep libraries (such as iota)
  • Adds input_binding_is_valid() to validate bindings for the given player on the current platform
  • Adds input_held_time() to return how long a verb has been active. The units that this function returns is given by INPUT_TIMER_MILLISECONDS
  • Adds input_gamepad_get_button_color() and input_gamepad_get_button_label() functions to help give you execute an extra level of detail and polish for your gamepad controls
  • Prevents Steam Input from aliasing PlayStation and Switch controllers as Xbox type when able
  • Fixes Xbox One Wireless Controller mapping for new firmware over Bluetooth on Windows
  • Removes platform-agnostic gamepad blocklist
  • Adds type identification for generic multi-gamepad adapters
  • Fixes trigger axis checks for hotswapping
  • Fixes dpad mappings for keymapped gamepads on Android
  • Allows binding of additional gamepad inputs that are becoming increasingly popular on new consoles: gp_touchpad, gp_paddle1 - gp_paddle4
  • Adds extended keycodes: vk_scrollock, vk_numlock, vk_semicolon, vk_comma, vk_fslash, vk_bslash, vk_lbracket, vk_rbracket, vk_apostrophe, vk_equals, vk_hyphen, vk_backtick
  • Fixes UTF-8 keycode handling on platforms with nonnormative keycode values
  • Adds Ouya gamepad support for MacOS
  • Adds MFi gamepad support
  • Adds PC Engine Mini, Astro City Mini, NEOGEO Mini, and NEOGEO X gamepad type detection
  • Changes default XInput controller type to "xbox one" on Windows. Welcome to The Future
  • Fixes a bug in input_source_assignment_tick() where the maximum player count was being handled incorrectly
  • Adds optional argument to input_source_assignment_tick() to set whether gamepads should drop to lower player slots if they have no input source (defaults to true)
  • Adds type identification for Switch Online Gensis/Mega Drive 3b and 6b gamepads on Linux
  • Removes input_player_gamepad_get_description() and input_player_gamepad_get_dpad_style(). Please use Input's direct gamepad functions instead

4.0.0

07 Dec 23:16
Compare
Choose a tag to compare
  • Removes input_history_*() and input_string_*() functions. @offalynne moved the input_string_*() functions to her own library which can be found here: https://github.com/offalynne/input-string
  • Renames input_assignment_tick() to input_source_assignment_tick(), and renames input_hotswap_tick() to input_source_hotswap_tick(). Please adjust your function names accordingly when updating to v4.0.0 from prior versions
  • Updates SDL2 gamepad binding database, including new entries to the blacklist
  • Adds support for hat-to-axis SDL mappings. This is most commonly encountered on Switch joycons connected to a desktop OS
  • Adds support for button-to-axis SDL mappings. This is encountered on N64 controllers, where C Buttons map to right thumbstick.
  • Adds N64 gamepad type detection, as returned by input_gamepad_get_type()
  • Improves UWP keyboard handling by filtering out keyboard events that are generated by XInput gamepads for this platform
  • Adds INPUT_GAMEPADS_TICK_PREDELAY to help filter out wonky Steam Input behaviour causing lots of connections/disconnections when the game boots
  • input_binding_get() can now return the default binding for a given verb (for a given source/alternate index) if "default" is used as the player index
  • input_platform_text_source() will now return "keyboard" if GameMaker reports the Android device as having a physical keyboard (e.g. Chromebooks)
  • Renames INPUT_BINDING_SCAN_EVENT.TIMEOUT to INPUT_BINDING_SCAN_EVENT.SCAN_TIMEOUT to - hopefully - avoid enum/macro collisions when importing Input into a larger project