Skip to content

Releases: madewokherd/xalia

xalia-0.5.0

Choose a tag to compare

@madewokherd madewokherd released this 11 Sep 23:32

Changes since 0.4.9:

  • Added support for win32 scrollbar controls.
  • Include controls supporting UIAutomation in the heuristic for Winforms container controls.
  • Added app-specific logic for Call of Duty: Modern Warfare 2 (2009), Final Fantasy XI gamepad config tool, PlayOnline gamepad config tool, WiX installers, RefRain config tool, Memories Off #5, Kega Fusion, FreestyleFootball R, and HITMAN World of Assassination.
  • Disabled for Deus Ex: Mankind Divided.
  • Windows developers can now set a __xalia_ignore or __xalia_supports_gamepad property to mark windows that should be ignored by Xalia.
  • Fixed the main loop polling and consuming CPU for no reason. (Oddly, SDL does this when an application doesn't create an SDL window, even though it's not clear why it needs a window.)
  • Static win32 controls used as containers are now properly handled.
  • For win32 combo boxes, the A button now simulates an enter keypress instead of asking the control to collapse the combo box. This fixes inability to make selections in HITMAN World of Assassination, which apparently has custom behavior that looks for an enter keypress specifically.
  • Static win32 controls that have the WS_TABSTOP style are no longer targetable by default, since they have no builtin handling of keyboard focus.
  • An ARM64 build has been added.

xalia-0.4.9

Choose a tag to compare

@madewokherd madewokherd released this 21 Apr 19:31

Changes since 0.4.8:

  • Fixed crash on unimplemented UIAutomation method in Wine.
  • The following launchers that have builtin gamepad support are ignored: Final Fantasy VII, Final Fantasy VIII, LIGHTNING RETURNS: FINAL FANTASY XIII, various Nixxes game launchers, Deadly Premonition: The Director's Cut
  • Opened drop-down menus from combo boxes are now properly ignored for launchers with builtin gamepad support.
  • Added partial support for the Final Fantasy VII (2013) launcher, Final Fanasy VIII (2013) launcher, and Chocobo World.
  • Added support for the TTntPanel control from TntWare Delphi Unicode Controls.
  • Added support for Gumboy: Crazy Adventures launcher.
  • Simulated keyboard inputs are now mapped to scancodes, rather than characters or keycodes, when possible.
  • When SDL fails to initialize, an error message from SDL will be logged, instead of "Video driver not supported".
  • Added XALIA_DEBUG_MAINLOOP debugging environment variable.
  • Added support for the various Nixxes game launchers, including: Hitman: Absolution, Tomb Raider (2013), Thief, and Lara Croft and the Temple of Osiris
  • Fixed a crash when encountering an IAccessible2 interface while running in Wine Mono.
  • Fixed a crash when an HWND is reparented to the top level, or when some but not all of an HWND's children are reparented.

xalia-0.4.8

Choose a tag to compare

@madewokherd madewokherd released this 22 Feb 03:06

Changes since 0.4.7:

  • Added support for Red Faction: Armageddon and FINAL FANTASY X/X-2 HD Remaster launchers via hard-coded layout.
  • Fixed a case where we were not properly accounting for DPI in a window's client space.
  • Fixed a crash when a winforms control returns 0 from WM_GETCONTROLNAME or WM_GETCONTROLTYPE.
  • Marked the custom Link control used by the VC 2010 redistributable installer as supported.
  • Updated Tmds.DBus.Protocol to 0.90.3.
  • Marked an internal window class from the BattlEye installer as supported.
  • Fixed gamepad binding in Graze Counter launcher.
  • Fixed detection heuristic for STAR WARS Starfighter launcher being too strict.
  • Marked all "Trails of Cold Steel" launchers as having their own gamepad support.
  • Worked around both tabs in Sonic 4 Episode II launcher being initially visible. (#49)
  • Marked the radio group control from TntWare Delphi Unicode Controls as supported.
  • Added handling of E_NOTIMPL when calling some UIA event-related functions in Proton.
  • Gamepad binding controls are now ignored entirely in Disney Bolt launcher, with Xalia disabled if they're focused (I could not find a way to interact with them sensibly).

xalia-0.4.7

Choose a tag to compare

@madewokherd madewokherd released this 28 Jan 21:39

Changes since 0.4.6:

  • Win32: Added support for ListBox controls.
  • A "valid_target" property has been added, to track controls that would be targetable if they are visible/enabled.
  • Elements outside the bounds of their toplevel window are no longer considered targetable, even if they are valid targets.
  • SysLink controls are considered supported now for the "supported only" mode.
  • Mark Rockstar Games Launcher Installer as supporting gamepads, which usually means Xalia will ignore it.
  • Updated from SDL2 to SDL3 (3.4.0).
  • X11: Overlay windows are now transparent to clicks.
  • Updated Superpower from 3.0.0 to 3.1.0.
  • Win32: Fixed infinite recursion on simple MSAA elements.
  • Win32: Fixed a case where SetParent prevents us from seeing the window in its new location in the tree.
  • Added a special case to allow interacting with the STAR WARS Starfighter menu.
  • GUDL: Added startswith and endswith methods to the string type.
  • Added a special case to allow interacting with buttons on the LocoCycle launcher.
  • Added support for Tk on Windows.
  • Fixed targeting windows with the WS_GROUP style.
  • Win32: Added "hwnd_element" property, which gets the containing HWND element.
  • Win32: Fixed handling of VT_EMPTY from IEnumVariant.
  • Win32: Fixed the IAccessible2 ID being incorrectly treated as a child id on the IA2 interface.
  • Win32: Beginnings of support for IAccessible2.
  • Win32: Added support for AutomationId property on UIA elements.
  • Added special handling of some controls on the Final Fantasy IX launcher.
  • Win32: Added work-around for a race condition in WPF which sometimes caused Xalia to not see the accessibility interfaces for newly-created elements.
  • Win32: Fixed a crash when UiaNavigate returns null.
  • Win32: Added support for FrameworkId property on UIA elements.
  • Win32: Added support for ClassName property on UIA elements.
  • Added support for WPF ComboBox, Image, and Window controls.
  • Win32: Fixed location tracking for child UIA elements.
  • Win32: Added support for UpDown controls.
  • Added work-arounds for key rebinding in Ys SEVEN launcher.
  • Win32 dialogs are no longer valid targets.
  • Added support for some VB6 control types.
  • Added work-around for clicking buttons in Embark Studios games (ARC Raiders and THE FINALS) failing to start the game when it should.
  • Win32: Tab items now support the name property.
  • Win32: Tab controls now have a selected_item property.
  • GUDL: Added a wait_until routine, which waits for a given expression to be true.
  • Added work-arounds for joystick binding in Samurai Aces III: Sengoku Cannon.
  • Added support for System.Windows.Forms.
    • The winforms_control_type property has been added, which returns the fully-qualified type name of winforms HWND elements.
    • The class_name property returns the type name of winforms HWND elements, including the namespace but not the assembly name.
    • The winforms_control_name property has been added, which returns the Name property of winforms HWND elements.
  • Added work-around for tab in Rayman: Raving Rabbids launcher being "visible" and thus interactable even though it's fully obscured by another tab.
  • GUDL: Added error checking to prevent empty enum values from being created.
  • Updated Tmds.DBus.Proton from 0.21.2 to 0.23.0.
  • Marked Giana Sisters: Twisted Dreams - Rise of the Owlverlord as supporting gamepad input.
  • Added special treatment for the Batman Arkham Asylum GOTY launcher.
  • GUDL: Added a new feature that allows elements to be created by GUDL code. Setting recurse_method to "virtual" and virtual_child_count to a positive integer will create that many child elements. These elements will have the virtual_child_index property.
  • Fixed scrollbars on Edit controls not being detected.

xalia-0.4.6

Choose a tag to compare

@madewokherd madewokherd released this 02 Apr 19:38

Changes since 0.4.5:

  • Added a new "supported only" mode. If the XALIA_SUPPORTED_ONLY environment variable is set to a value other than "0", Xalia will only activate for windows that are considered "supported". These are windows that use only controls and toolkits that are expected to work, or from applications that have been specifically tested.
  • GUDL: Added a "wait" action, meant for executing other actions with a delay. Usage: wait(number_of_seconds)
  • Updated SDL to 2.30.11.
  • GUDL: Added support for reading environment variables. Usage: environ.NAME_OF_VARIABLE
  • Interaction with the "Input" tab of Unity3D launchers on Windows has been disabled. For many games, the "Input" tab is simply broken, ineffective, or responds to gamepad input in a way that breaks Xalia (specifically, it listens for gamepad input at all times, and binds the most recent input when activated).
  • GUDL: Added the is_hwnd_dialog property for consistency with other provider properties.
  • Win32: Added support for SysLink controls.
  • Win32: Fixed a bug where controls with MSAA providers would be accessed via UIAutomation.
  • Win32: Fixed handling of VT_EMPTY returns from get_accChild.
  • Buttons with the "owner draw" flag are now only targetable if they have no child controls. Sometimes these "owner draw" buttons are used as frame controls (which for some reason on Win32 are buttons), and there's no reliable way to tell, but this should work in most cases.
  • Fixed RPG Maker games having a targetable control detected in the upper-left corner.
  • Marked "Trine" and "Trine 2" launchers as having built-in gamepad support.
  • Win32: When MSAA controls return the "client" role, this will now be reported only in the msaa_role property, while the role and control_type generic aliases will fall back to other sources.

xalia-0.4.5

Choose a tag to compare

@madewokherd madewokherd released this 17 Dec 20:08

Changes since 0.4.4:

  • Disabled the fallback mapping of right stick to scroll wheel.
  • Added a work-around for Delphi applications sometimes focusing an invisible "application" window.
  • Fixed use of ReadProcessMemory on Wine.
  • Updated SDL to 2.30.8.
  • Made scrolling with right stick continue when the targeted control is scrolled out of view.
  • Fixed a possible stack overflow on Linux.
  • Various improvements to Win32 listview support. In particular, individual cells and column headers can now be targeted in details view.
  • Fixed a crash when used on some non-English locales (#48).
  • Updated to .NET 9.
  • Added support for modifying input bindings in Unity3D launchers.

xalia-0.4.4

Choose a tag to compare

@madewokherd madewokherd released this 17 Sep 18:22

Changes since 0.4.3:

  • Added an accessibility tree viewer, which can be activated with the XALIA_DEBUG_TREEVIEW environment variable.
  • GUDL: Added the ability to create "enum" objects.
  • GUDL: Added a hex() function which formats integers as hex.
  • Added a special case to make navigation between scrollbars and content more logical. For example, moving "up" from a vertical scrollbar to content, or "down" from content to the scrollbar is no longer possible.
  • Win32: Fixed a regression where quantized updates of hwnd trackbars weren't happening.
  • Updated Tmds.DBus.Protocol to 0.20.0

xalia-0.4.3

Choose a tag to compare

@madewokherd madewokherd released this 13 Aug 21:06

Changes since 0.4.2:

  • The builds are now done by CI.
  • Lots of minor bug fixes, app-specific workarounds, and new features usable in GUDL.
  • The directional navigation algorithm has been completely rewritten. Horizontal movement is now "strict", meaning an element must be directly to the left or right to be considered. Vertical movement is "loose", meaning there is no requirement that an element be directly above or below to be considered.
  • Dependencies
    • Updated Tmds.DBus.Protocol to 0.19.0.
    • Updated SDL to 2.30.5.

xalia-0.4.2

Choose a tag to compare

@madewokherd madewokherd released this 13 Apr 19:55

Windows:

  • MSAA code now runs in a dedicated background thread for each remote Win32 thread. This fixes MSAA support in Proton.
  • Elements that have both an MSAA implementation and a known Win32 class will use both.
  • UI Automation support has been started.
  • Fixed send_click for various element types.
  • Added a work-around for the buttons in Atelier Ryza launcher.
  • The special cases for the original (non-special edition) Skyrim launcher have been generalized so that they work with similar Bethesda launchers, including Skyrim Special Edition and Fallout 3.
  • When a listview control has checkboxes, the "primary action" for listview items is to toggle the checkbox, while the "secondary action" is a single click.
  • Added a work-around for a bug in the Fallout launchers on Windows, where the active window after a dialog closes is the dialog that just closed (which is in reality only hidden). I don't understand how a hidden window can be the active window, but it's now possible to interact with controls on the main window when this happens.

Linux:

  • An spi_toggle_selected action has been added which toggles the selected state of an element. This is not used by default because it did not work as well as I'd hoped.
  • Fixed a crash in WatchProperty when spi_supported is first checked.

All platforms:

  • The targeting box will no longer display when no inputs are bound to it. In practice, this means it will only display when a gamepad is plugged in.
  • The debug output for GUDL expressions has been fixed for certain expressions, and there are fewer unnecessary parentheses (for example, a + b + c is no longer printed as ((a + b) + c).

xalia-0.4.1

Choose a tag to compare

@madewokherd madewokherd released this 15 Mar 16:29

Added support for win32 listview controls and various tweaks for the Skyrim launcher.