Skip to content

0.20.24 - "Follow Freeman!" (Hotfix #1)

Compare
Choose a tag to compare
@derrod derrod released this 09 Jan 23:55
· 137 commits to master since this release

0.20.24 Hotfix Notes

  • Fixed aliases for old command names not actually working (whoops)

Original 0.20.23 Release

This is the biggest release in quite a while, intended to make using Legendary on Macs easier than ever before, and bringing some previously missing overlay features to Windows. Of course, there are improvements and bug fixes for Linux users as well.

CrossOver integration (macOS)

legendary_0 20 23_mac_demo

This release adds integration with CrossOver to make running Windows games on your Mac as easy and seamless as possible.
After a brief one-time setup, games can be run immediately after installing with zero additional configuration required.
Thanks to CodeWeaver's work on CrossOver and DXVK-on-Metal many titles will "just work".

If you wish to purchase a copy of CrossOver you can support Legendary development (♥) and save a bit by purchasing it through my affiliate link and using the promo code LEGENDARY15 on https://www.codeweavers.com/store.

Of course it is still possible to configure which bottles to use, which CrossOver version to run, etc. Either via new config and command line parameters or the new crossover command or --crossover launch option which will provide an interactive setup allowing you to select a version and bottle to use on a per-game basis or as the default.

In addition to the semi-automatic setup Legendary also offers an experimental fully automatic setup (just requires CrossOver to be installed). The new crossover --download option makes it possible to download and set-up preconfigured Bottles and get started in no time. Currently this offers a clean default bottle as well as one set-up for Rocket League, but this may be expanded upon in the future.
This feature is experimental and not supported by CodeWeavers, please only report issues on the Legendary Discord or this repo.

As part of this effort a few workarounds for games have already been added to the Wiki, and this will be expanded upon more in the future as people try games and discover compatibility issues and work out how to fix them.

Also see full setup guide on the Wiki: https://github.com/derrod/legendary/wiki/CrossOver-Setup-(macOS)

Currently I have no plans on expanding this to Linux, as the community-driven support for Wine and sorrunding toolset is very good there compared to macOS, but if there's demand for supporting CrossOver on Linux I may look into expanding it to that in the future.

Finally, I'd like to thank the folks over at CodeWeavers for answering a whole bunch of my questions that helped make this possible, and also for providing me with the promo code mentioned above!

EOS Overlay Management (mainly Windows)

With this release it becomes possible to install and manage the Epic In-Game Overlay on your machine to use social features and view achievments without having to install the Epic Games Launcher. It's also possible to disable or enable the overlay at will without having to uninstall it.

Currently the overlay only works on Windows, but installation into Wine prefixes or Bottles is possible in case it starts working with a new overlay and/or Wine version. Or if there's a game that for some reason requires it to be running, even if it's not functional on Linux/Mac.

Default Installation Directory Changes

The default installation directory has been changed to ~/Games for Windows titles, and ~/Applications for Mac-native applications. This does not affect existing installations and can be changed with the install_dir and mac_install_dir config variables.

Additionally, this release provides the new move command to make it easier to move currently installed games to a new location (see commands section below for details).

Pre-Launch Commands

Commands can now be run before the game is launched via the pre_launch_command configuration option. This can be set globally or per-game and allows running any application or script before or as the game is being launched (depending on the pre_launch_wait setting).

The use cases for this include things like changing power-saving mode when launching a game, automatically starting a recording, etc. I'm sure people will find good uses for it.

CLI Changes

As part of this release several things were cleaned up and changed in the Command Line Interface, this includes re-ordering commands to be in alphabetical order, renaming a few of them to remove unnecessary parts, and also not showing the wall of text that is the full help unless -H/--full-help is specified. Also some whitespace was added around important messages that would otherwise be somewhat drowned out by the rest of the output.

One of the changes in this update is a new message shown when finalsing a game install that notifies the user about known workarounds or fixes for the selected title on their current operating system.
This largely draws upon the work of @CommandMC and his EpicLinux Wiki, with some additional entries pulled from the Legendary Wiki itself (mainly for macOS).
This feature is something I do want to build upon in the future to provide more info about game compatibility directly within Legendary.

General

  • Added -A/--api-timeout parameter to change the HTTP request timeout for the Epic API (default: 10 seconds)
  • Added -H/--full-help flag to show full help (all commands) rather than just the list of commands
  • Deprecated and hid -c/--config-file option, which will be removed in the future as it has caused more issues than it solves

Commands

  • crossover [new]
    • Usage: legendary crossover [App Name]
      • This will run an interactive setup to select the CrossOver version (if more than one) and Bottle to use for an app or as the default (if no app name specified)
    • --crossover-bottle and --crossover-app can be used to skip the respective interactive selection
    • --reset can be used to remove the current selection from the config
    • --download (experimental)
      • With this option a selection of preconfigured bottles that are available for download will be shown instead, including recommendations depending on the specified app name
      • If a bottle is selected it will be downloaded and set up automatically, it can be reconfigured using CrossOver later, but is generally intended to work out of the box
      • When --ignore-version is specified all Bottles will be shown, regardless of the versions they're marked as compatible with
  • eos-overlay [new]
    • Usage: legendary eos-overlay <subcommand>
    • Subcommands:
      • install/update/remove - download and install or uninstall the overlay (default: ~/Games/.overlay)
      • enable/disable - add/remove the registry entries used by the EOS SDK to find the overlay installation to load
      • info - prints some information about the current registry configuration and overlay install (if any)
    • --path can be used to override the installation location or overlay install to "enable"
    • --prefix/--bottle to specify wine prefix/bottle to enable overlay in, if set in the config --app <app name> can be used instead
  • install
    • Will now fall back to "Windows" by default if the specified platform is not available (this can be disabled in the config)
    • Will now show a notice on game workarounds after finishing the installation
  • launch
    • --crossover flag to go through interactive setup (like crossover command), but immediately launch the game after
    • --crossover-app and --crossover-bottle parameters to specify or override the used version and bottle
  • move [new]
    • Usage: legendary move <app name> <new location>
      • For example: legendary move sugar ~/Games will move the RocketLeague game folder from its previous location into ~/Games
    • --skip-move flag to only update the Legendary database, without actually moving the game files
      • Moving currently only works on the same drive, so this allows to easily and safely update the installed games database after a manual move
  • verify
    • Now shows average read speed during the verification process
    • Also shows verification process on a per-file basis for "large" files (>= 512 MiB)

Renamed commands:

  • import-game => import
  • list-games => list
  • verify-game => verify

The old command names will still work as aliases, but those may be removed in the future.

Config Changes

Per-app settings:

[App Name]
; A command to run before launching the gmae
pre_launch_command = /path/to/script.sh
; Whether or not to wait for command to exit before starting the game
pre_launch_wait = false

macOS specific

Legendary settings:

[Legendary]
; Fallback to "Windows" platform if native version unavailable
install_platform_fallback = true
; Disable automatic CrossOver use
disable_auto_crossover = false
; Default directory for native Mac applications (.app packages)
mac_install_dir = /User/legendary/Applications

Per-app settings:

[App Name]
crossover_app = /Applications/CrossOver.app
crossover_bottle = Legendary

Miscellaneous changes and improvements

  • Add support for legacy Wine appdata paths in save game path resolver
  • Fixed importing games with EGL sync enabled (#391)
  • Fixed reading EGL metadata on non-English Windows installs (#383)
  • Fix case-insensitive path resolver on Linux
  • Fix required disk size calculation during install, again, but once and for all
  • Fix installing prerequisites that require admin priviledges on Windows
  • Fixed user-agent not being set correctly (#388)
  • Fixed deprecation warnings on Python 3.10+
  • Laid some groundwork for supporting future Epic APIs that are currently unused

Note about Windows exe: Now built using Python 3.9, which will no longer run on Windows 7 or older (which wasn't supported anyway)
Note about macOS binary: Built as universal binary using pre-release version of PyInstaller 4.8, please let me know if there are any issues on Intel Macs