Skip to content

v0.7.0

Choose a tag to compare

@garyttierney garyttierney released this 28 Jul 13:05

me3 v0.7.0

The highlights of v0.7.0 are BootBoost, a startup time improvement technique by TKGP originally for Dark Souls 3, the ability to launch .me3 files on Linux desktop environments, and localization of our documentation to Chinese and Polish.

As usual, v0.7.0 comes with a bunch of important bug fixes:

  • Support Windows filesystem overrides (e.g. custom Lua scripts, custom mod data, DLL ini files) with packages
  • Ensure packages/natives exist before passing them to the mod host
  • Don't halt shutdown of the game when reading logs
  • Find location of Windows binaries on Linux automatically

Thanks to the new contributors who upstreamed translations or features to this release:

  • jn64 - Launching .me3 files on Linux
  • Lexcellent - Chinese localization of me3.help
  • kalarp - Polish localization of me3.help

Windows Installation

Download the me3_installer.exe setup wizard.

Already have me3 installed? Update to the latest version by opening the run prompt (Ctrl + R) and running me3 update.

Linux Installation

curl --proto '=https' --tlsv1.2 -sSfL https://github.com/garyttierney/me3/releases/download/v0.7.0/installer.sh | sh

me3 - v0.7.0 - 2025-07-28

🚀 Features

  • a14c35d (host) Skip logos in #372

    • Removed white screen when launching FromSoftware games.
    • Added an option (on by default) to skip the logos shown on startup and
      when returning to the main menu. Use the --show-logos switch for me3 launch or the skip_logos key in "me3.toml" to override:
    [game.eldenring]
    skip_logos = false
  • 866ddc3 (host) BootBoost for supported games in #354

    File archives in all games me3 supports are split into headers (.bhd)
    and data (.bdt). The headers have a layer of RSA encryption applied to
    them to prevent tampering, and are decrypted every time a game is ran.
    This takes a signifant amount of time (1-10 seconds) and CPU resources.

    Inspired by BootBoost, me3
    can now cache the decrypted archives and serve them to the game without
    having to undo any encryption, speeding up the time it takes to get to
    the start screen.

    To disable this feature, pass --no-boot-boost to me3 launch.

    Closes #144

  • 40ace32 (host) Speed up game boot by caching decrypted BHDs

  • a6d3b77 Publish Fedora RPMs via OBS in #374

    Repositories are available for F42/rawhide at https://build.opensuse.org/package/show/home:gtierney/me3. These are experimental packages that are subject to breaking changes.

  • c211b54 Support configuring launch options in me3.toml in #364

    Previously launching a me3 profile with modified launch options required
    using the command-line or making changes to the system-wide me3 profile
    association. Now we support launch options in me3.toml under the
    [game] table, for example, to turn off boot boost and configure the
    executable for ELDEN RING:

    [game.eldenring]
    exe = "test.exe"
    boot_boost = false
    

  • 3e5fbe6 Launch .me3 profiles on Linux in #304

    This allows .me3 profiles to be run by double-clicking on Linux desktop.

    • Mainly for non-portable installs. me3 should be in PATH.
    • me3-launch.desktop should be installed to
      ~/.local/share/applications/ (user) or /usr/share/applications/
      (system).
    • me3.xml should be installed to ~/.local/share/mime/packages/ or
      /usr/share/mime/packages/
    • distribution/assets/me3.png should be installed to
      ~/.local/share/icons/hicolor/128x128/apps/ or
      /usr/share/icons/hicolor/128x128/apps/
    • After installing files, may require running update-desktop-database
      and update-mime-database, or restarting your file manager (depends on
      DE/FM)
    • The desktop file does not show in application launchers / menus; it's
      only for associating with the mime file.
  • c8f1c55 Setup translations for docs site with Crowdin in #289

🐛 Bug Fixes

  • 8ca16b4 (cli) Handling of optional args on the command line in #371

  • 57a401b (cli) Print all incoming logs to console after launcher terminates in #363

  • 4aca1c7 (host) Use filesystem hooks in #330

    During the mod host initialization routine (before loading natives) hook
    the following functions:

    CreateFileW, CreateFile2, CreateDirectoryW, CreateDirectoryExW,
    DeleteFileW

    This allows for files looked up inside the game directory like mod
    configs and other files to be loaded from the corresponding mod
    packages.

  • 3066483 (linux) Don't create default config in #379

    Redundant after #336

  • 89880a0 (linux) Correctly set mtime of tarball contents in #308

    Fixes #307

  • b461934 Pre-launch package/native existence checks in #366

  • 1fc441e Launch path normalization in #365

    If you just point directly to a file in the command line with the
    profile like so me3.exe launch -p mods.me3 --auto-detect, the parent
    of mod.me3 will just be an empty path, which normalize refuses to
    handle.

    My quick solution for this is to just normalize first, then take the
    parent of the normalized path.

  • ce9cc92 Change game console output to UTF-8 on attach in #361

  • e0557b2 Respect NO_COLOR in #362

    Fixes #277

  • 3652f42 Respect Native.optional in #358

    Fixes #294

  • e84e0b3 Don't list non-profile files in #359

    Fixes #306

  • 0aa020d Don't crash on failure to read non-UTF8 logs in #356

  • e9c5a61 Borrow the pointer dereference in #350

  • 050a41d Respect native.enabled/package.enabled in #299

    Fixes #298

  • 5896daf Validate mod profile filepaths in #287

    Skip invalid and nonexistent paths in mod profiles before passing them
    to the mod host, preventing hard errors.

    Closes #240

  • a5e3db4 Don't stop path discovery on every filesystem error

  • c5fb8cc Exclude nonexistent paths and warn the user

  • c12976d Don't block shutdown with monitor thread in #285

    This exists purely to signal minidump crash events, which are currently
    not enabled in the latest release. Get rid of the infrastructure for
    handling it via pipes, and we'll use WaitForMultipleObjects on the
    process/crash event.

    Additionally switch the mod host to logging to stdout, so we capture
    logs from any other DLL mods in use.

    Fixes #270.

  • aa10096 Add singular profile aliases for packages/natives in #283

  • c38f7e6 Add .sh extension to example Linux scripts in #282

    Closes #280

  • bed1c98 Version list in GitHub issue template in #278

🚜 Refactor

  • 9e5b759 Move profile lookups to new ProfileDb in #368

  • 126e316 Make Package.id optional in #357

    Fixes #347

  • 71b2ac0 Simplify layout of distributions in #355

  • 353f59f Clean up handling of well known paths in #336

    Collates the various path lookups for
    config/profiles/data/logs/binaries/steam to a single location and adds
    additional search directories to cover a wider range of installations.

  • 39f5ed3 Centralized RTTI scanning in binary analysis workspace crate in #349

  • 8862431 Add MSRV

  • bb9aa8f Suspend game process instead of debugging it in #338

    Use CREATE_SUSPENDED instead of DEBUG_PROCESS on (game) process
    creation and initialize the suspended process by creating a stub remote
    thread before injecting the dll-syringe payload.

📚 Documentation

  • b2d3d76 (pl) Localization of cookie consent in #333

  • f3409f4 (pl) L10n refinements and MT corrections in #326

  • ed6b486 (zh) Partial revision of computer terminology in #329

  • b2ef03a (zh) Localize user feedback prompt and cookie consent in #323

  • e6a63cf (zh) Refine Simplified Chinese translations in #324

  • 3108c51 Fix typo in example profile in #348

  • b32b655 Add translated doc links to README in #327

  • 7ef38bd Fix typos and syntax shifted by l10n in #320

  • 91a06aa Localize navigation to Simplified Chinese in #322

  • f3cd704 Translate Mod Profile schema docs in #321

  • 5e66b88 Chinese (language) not Chinese (nationality) in #319

    中国人 = Chinese (nationality)
    中文 = Chinese (language)

  • 0187c55 Add Chinese and Polish translations in #318

    Adds the recent translations contributed by the community to the
    documentation site.
    A new language selector is available to switch between different
    languages.

  • 1a46c82 Add SECURITY.md in #314

  • 2abb7bb Fix 'value' typo in natives doc comment in #297

  • 6ad57b1 Fix typo in FROMSOFTWARE in #295

    Change "FROMSOTWARE" -> "FROMSOFTWARE"

  • b19b629 Complete initial release documentation tasks in #284