Releases: garyttierney/me3
Release list
v0.13.0
me3 v0.13.0
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.13.0/installer.sh | shme3 - v0.13.0 - 2026-08-11
π Features
-
da9abcf (host) Allocate memory at the highest possible address, add dev env vars in #857
-
6d381d7 (host) Allow for overriding system properties in #845
π Bug Fixes
-
15a19de (host) Fallback to the global mimalloc heap when an allocation fails (for any reason)
-
2cd22c0 Quote full path to me3 (it may contain spaces) in #860
π Documentation
v0.12.1
me3 v0.12.1
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.12.1/installer.sh | shme3 - v0.12.1 - 2026-07-19
π Bug Fixes
v0.12.0
me3 v0.12.0
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.12.0/installer.sh | shme3 - v0.12.0 - 2026-07-18
π Features
-
6593712 (host) Allow for user provided heap sizes in MB in #828
-
1c8d699 (host) Allow deferring after game props init
-
294e7ce (host-types) Add DLRF types and analysis
-
4facce8 (linux) Add Proton launch verb override via env variable in #810
Allows overriding the Proton launch verb to allow the game
to start alongside any existing tools that are already running
in the games own Proton prefix. -
dc25769 (linux) Add support for Proton 11 in #764
Fixes #763
-
5bc7c66 Forward extra arguments to game process in #836
Any arguments specified in me3 launch after the trailing
--will be
passed to the game during launch.Fixes #769
-
cfb4e35 Allow disabling console output in #837
Fixes #648
-
50dd1f2 Cli/profile prop overrides in #822
Allows specifying debug game property overrides from the cli/profiles.
-
73d83a4 Allow overriding properties via cli/profiles
π Bug Fixes
-
e4be580 (cli) Use normalize_virtually for pipe path on windows in #761
Fixes reaching an unimplemented function in Wine when running the
Windows binary of me3-cli under WINE. -
4365f37 (deps) Don't eliminate debug tracing events
-
2e39640 (host) Improve mem_patch stability
-
f95d8c6 (host) Use correct signature for Fd4StepFunction in #817
The incorrect signature led to the second parameter potentially being
cloberred by an arbitrary value from a hook routine, leading to crashes
or other undefined behavior. -
04765d0 (host) Don't expose fully qualified UTF-8 paths to the game in #806
Fixes #804
Uses a fake UNC path prefix
\\me3to indicate disk file paths
internally managed by me3. This is a significant change to how file
paths are handled and seen by the game and I would like this to be
tested thoroughly before merging.Elden Ring (and likely the other games) forward file paths converted
from UTF-16 to Shift JIS to the Scaleform UI middleware (which expects
UTF-8). This conversion can only be valid for the ASCII subset of UTF
and SJIS, and user paths that contain other characters are silently
truncated at the first character that failed to be converted. What's
worse is that the failed conversion does not nul-terminate the string.The conversion happens at
eldenring.exe+d7106d(1.16.2) and the
subsequent call consumes the string.The implementation in this PR leaves room for a future file reloading
feature (with generation based indexing).
-
266adf1 (linux) Create BHD stub in tmpdir, not cache dir in #831
Fixes the "File not found" errors that occur when we try to create a
temporary file under the host cache directory. Likely caused by the
TEMPORARY attribute used in the tempfile Windows implementation:
https://github.com/Stebalien/tempfile/blob/master/src/file/imp/windows.rs#L38 -
7ff662d (linux) Search compat tool roots for manifests in #827
Fixes #802
-
c998b06 (linux) Restore LD_PRELOAD injection for Steam overlay in compat tool launcher in #735
In
compat_tool.rs,setup_steam_linux_runtime_envbuildsLD_PRELOAD
withgameoverlayrenderer.sobut never sets it on the command, restore it
to fix Steam Input compatibility and the Steam overlay. -
e153f4f Include me3 profiles in taplo config
π Refactor
-
e57a48a (host) Don't use hook to set game properties in #816
Reworks the game property override logic to fetch
CSControlAPI::SetGamePropertyfrom DLRF data and use that instead of a
getter hook. This allows supporting overrides for all property types, so
that this functionality can be eventually exposed to users.As part of this, adds DLRF type definitions and a simple analysis for
finding theDLRuntimeClassregistry.Unfortunately, the game property map is not initialized during our
AfterMaindeferred execution step, so I had to add a third
AfterPropsInitstep that runs right after the map is constructed. This
is done without AOBs or RTTI by:- Searching for LEA xrefs to
Game.Debug.NearOnlyDraw. This is the
first property queried after constructing the map by all supported
games. - Inline hooking the LEA instruction using a
RawDetourand a
handrolled register context save/restore.
The total analysis time for this new approach (finding runtime classes
and hook point) for ER is just under 5ms on my machine.Tested successfully on all supported games.
- Searching for LEA xrefs to
-
895f4ba Don't pin AwaitedRequest in #825
π Documentation
-
670e0e8 Add code-signing policy in #835
Satisfies the terms of our SignPath sponsorship:
https://signpath.org/terms.html -
dcc3bb9 Disable Google Analytics in #821
The only valuable information we get from here is the regions our users
come from (for localization and internationalization) and the operating
system versions for support, the rest is being siphoned to Google for no
good reason.For the former we can rely on network metrics instead, and for the
latter we can use the Steam survey.
v0.11.0
me3 v0.11.0
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.11.0/installer.sh | shme3 - v0.11.0 - 2026-02-28
π Features
-
0b5092f (installer) Improve upgrade logic and clean uninstallation in #645
fix #644
-
8790a68 Offload file logging to the launcher
-
1d43d39 Use a named pipe for logging on Linux
-
053780d Implement shared memory IPC
π Bug Fixes
-
ede89b5 (cli) Avoid me3 update crash by using explicit native TLS agent in #643
fix #642
Upstream:https://github.com/algesten/ureq/blob/main/src/tls/mod.rs#L29-L42
https://github.com/algesten/ureq/blob/main/src/lib.rs#L599-L616
-
096bfc7 (linux) Resolve Steam metadata when custom exe is used in #719
Recently we split up the launch code and introduced a check for Linux
launches to verify that the game was being run under Steam, while before
it would unconditionally run under Steam even with a custom exe.This check is unfortunately a breaking change for users who were already
passing--exeon Linux, so we need to accomodate that situation. -
58fbf37 (linux) Append null terminator to wine DOS path conversion in #720
Custom sounds and filesystem overrides were not loading on Linux when
running the release build, even though they worked in the debug build.In the code that converts Linux paths to Wine DOS paths
(normalize_dos_path), the string being passed to Wine (os_path) was
missing a null-terminator (0).- In a debug build, the memory allocator accidentally had a zero byte at
the end, so it worked. - In a release build, the memory was not zeroed out, causing the
function to read garbage data and fail to resolve the path.
Appended a null byte (
0) to the end of theos_patharray to
guarantee it is properly null-terminated before sending it to the Wine
function. - In a debug build, the memory allocator accidentally had a zero byte at
-
b1153ac (linux) Convert Unix paths to DOS for WINE in #700
Some APIs used by the game expect to work with Windows paths, and
currently we passthrough the Unix path directly which can cause path
parsing errors and missing game functionality. wwise is known to have
problems with those paths, and this workaround should deal with that
until we can investigate hooking closer to the fs/io code in wwise.Fixes #683
-
51206fc (linux) Mount any needed filesystems under SLR in #661
-
f51911a (linux) Ignore empty Steam directories
-
302663d Disable Steam input configuration check in #728
This isn't working quite correctly. Certain users no longer see double
inputs, but a larger number of users see no controller input at all.
Needs more investigation to determine how this is supposed to be applied
properly. -
a9a0c47 Configure SDL to use Steam Input unless it's disabled
π Documentation
v0.10.1
me3 v0.10.1
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.10.1/installer.sh | shme3 - v0.10.1 - 2025-12-24
π Bug Fixes
v0.10.0
me3 v0.10.0
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.10.0/installer.sh | shme3 - v0.10.0 - 2025-12-24
π Features
-
67c8859 (cli) Set terminal title during launch in #553
Closes #402
Set it relatively late to avoid flicker if the launch fails early e.g.
invalid options or anything not found. -
092cb26 (host) Add mimalloc as a replacement memory allocator for ds3, sdt and er
π Bug Fixes
-
103199a (linux) Fix path remapping for SLR in #552
Closes #416
Tested with no me3 config in any of the searched paths, and with win
bins installed to:/usr/lib64/me3/x86_64-windows/me3_mod_host.dll /usr/lib64/me3/x86_64-windows/me3-launcher.exeBefore:```console
$ /usr/bin/me3 launch -g er # fails to launch
... ME3_LAUNCHER_HOST_DLL=""/usr/lib64/me3/x86_64-windows/me3_mod_host.dll""
... proton" "waitforexitandrun" "/usr/lib64/me3/x86_64-windows/me3-launcher.exe"After:```console $ cargo run --release --target x86_64-unknown-linux-gnu --bin me3 launch -g er # ok ... ME3_LAUNCHER_HOST_DLL="\"/run/host/usr/lib64/me3/x86_64-windows/me3_mod_host.dll\"" ... proton" "waitforexitandrun" "/run/host/usr/lib64/me3/x86_64-windows/me3-launcher.exe" -
e682d0c Make it possible to load natives premain in #624
Fixes #621
-
61129ad Fallback to 'Verified on Deck' Proton runtimes in #611
Steam Deck uses its own verification system to decide which Proton
runtime a game should be ran with. This doesn't override the usual
compat tool configuration, but is used if none exists.
π Documentation
v0.9.0
me3 v0.9.0
Hotfix for compatibility with the new NIGHTREIGN patch (1.02.3) and add the default Sekiro profile.
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.9.0/installer.sh | shme3 - v0.9.0 - 2025-09-24
π Features
π Bug Fixes
v0.8.1
me3 v0.8.1
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.8.1/installer.sh | shme3 - v0.8.1 - 2025-09-15
π Bug Fixes
-
5b216e7 (docs) Work around blog plugin incompatibility with mkdocs-static-18n
-
004f1e2 (host) Missing music and dialogue audio in Dark Souls 3 in #516
-
26dde17 Load natives with initializers in a new thread in #501
π Documentation
v0.8.0
me3 v0.8.0
v0.8.0 comes with support for Dark Souls 3 and the ability to use a different savefile per me3 profile.
As Dark Souls 3 does not come with any anti-cheat software to prevent you from loading into an online session with mods a new start_online option is available in profiles and will be disabled by default.
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.8.0/installer.sh | shme3 - v0.8.0 - 2025-09-05
π Features
-
1f2f438 (cli) Make
--auto-detectoptional when launching a profile in #454 -
4c0db4e Parallel recursive override discovery
-
3516037 Allow for changing default savefile name and location for supported games
-
a4466e4 More anti-anti-debug features in #452
Address SteamStubDRM calling
NtSetInformationThreadwith
ThreadHideFromDebuggeron the main thread (and block
ThreadHideFromDebuggerperiod) -
dde3047 Dark Souls 3 support with
dearxanand online play protection
π Bug Fixes
-
94b375f (host) Add missing ANSI filesystem functions in #400
-
a423c73 (linux) Support proper compatibility tool lookup in #473
All valid directories that can contain a compatibilitytool.vdf file are
now queried for a manifest matching the tool we're interested in.
Additionally, we also check the actual name contained in the manifest
instead of relying on the name of the directory.
-
8e16791 (linux) Check all Steam libraries for Proton prefix in #474
This resolves an issue on Steam Deck where Steam keeps Proton prefixes
in the main Steam root when the game is located on an SD card.Fixes #269
-
7c7c75b (linux) Remap launcher/DLL paths under /usr in #472
Partially resolves #416
-
44a6859 (linux) Allow existing values in LD_PRELOAD in #471
Merges any existing paths put in LD_PRELOAD into the value set by me3 to
allow other external tools like MangoHud and gamemode to run.Fixes #456
-
0812fd4 Consistent native and package load order in #484
Fixes a bug where profiles with multiple packages and natives did not
have a deterministic load order without using the
load_before/load_afterkeys.
-
05ad74e Crash in DllMain, to be flushed in the crash handler
-
41f6b13 Prepend to Windows PATH instead of append in #396
A new path entry added by Windows seems to be interfering with PATH
resolution. Prepend our path to the front of the list until Microsot
deal with this. -
76eabf9 Missing nightreign-mods folder in Windows dist in #392
Other
-
In the unlikely event that NEXT_VERSION contains spaces
-
8d3454e Truncate old versions
Resulting list will have: prerelease, NEXT_VERSION, and last 4 versions
-
481c774 Insert NEXT_VERSION after prerelease
.[0:1] means from index 0, length 1
.[1:] means from index 1 until end -
7ff9d7a Safer yq
Target by id, not index
-
57cb74e Cleanup versions in bug report template
Keep it simple so we don't need to overengineer the yq command in release.yml.
Right now it just adds the next version on top.Maybe remove old versions at some point (>1 minor version ago)?
π Refactor
-
adf7f41 Move
disable_arxanto the mod profile in #457Introduces a special behavior for
disable_arxan, making it required if
either the mod profile or the command line requires it. -
4170e30 Override savefile name instead of the full path
-
e756aae Target latest stable version with
RUSTC_BOOTSTRAP=1 -
d7889d1 Find FD4 step function tables in the binary analysis crate in #408
-
009bf6e Split out C++ types in mod-host-types and replace cxx-stl in #424
Drop cxx-stl and its C dependencies in favor of
rdvec. Use it to provide a
generic interface over C++std::vectorandstd::stringfor future
game support (Dark Souls 3 and earlier games).Also split out basic STL types into a separate mod-host-types workspace
crate.
π Documentation
v0.7.0
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 | shme3 - 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-logosswitch forme3 launchor theskip_logoskey 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-boosttome3 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.
me3should be in PATH. me3-launch.desktopshould be installed to
~/.local/share/applications/(user) or/usr/share/applications/
(system).me3.xmlshould be installed to~/.local/share/mime/packages/or
/usr/share/mime/packages/distribution/assets/me3.pngshould 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
andupdate-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.
- Mainly for non-portable installs.
-
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,
DeleteFileWThis 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
-
1fc441e Launch path normalization in #365
If you just point directly to a file in the command line with the
profile like some3.exe launch -p mods.me3 --auto-detect, the parent
ofmod.me3will just be an empty path, whichnormalizerefuses 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
-
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 th...