Changelog¶
All notable changes to this project will be documented in this file.
me3 - v0.11.0 - 2026-02-28¶
π Features¶
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
-
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¶
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
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.
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.
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
Closes #416
Tested with no me3 config in any of the searched paths, and with win bins installed to:
Before:```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"/usr/lib64/me3/x86_64-windows/me3_mod_host.dll /usr/lib64/me3/x86_64-windows/me3-launcher.exeAfter:```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"
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
Fixes #621
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¶
me3 - v0.9.0 - 2025-09-24¶
π Features¶
π Bug Fixes¶
-
b5a6e51 (cli) Uniformly handle profile names and file paths in #524
-
3c20cb0 (cli) Correctly handle profile names with extra dot separators
-
2154320 (cli) Create package directories inside the installer
me3 - v0.8.1 - 2025-09-15¶
π 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
Address SteamStubDRM calling
NtSetInformationThreadwithThreadHideFromDebuggeron the main thread (and blockThreadHideFromDebuggerperiod)
- dde3047 Dark Souls 3 support with
dearxanand online play protection
π 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
-
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.
Fixes #425, #426
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
Partially resolves #416
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
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
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.
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
See https://mikefarah.gitbook.io/yq/operators/slice-array
- 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¶
Introduces 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¶
Edited CLI help for typos, errors, length, language. There is now extended
--helpvs short-hfor some options. Option descriptions wrap nicely based on terminal width.
Also put the games in chronological order.
-
ee1bc36 Update configuration reference
me3 - v0.7.0 - 2025-07-28¶
π Features¶
- 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
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
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.
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
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-databaseandupdate-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.
π 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
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.
Redundant after #336
Fixes #307
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 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.
Fixes #277
Fixes #294
Fixes #306
Fixes #298
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
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
WaitForMultipleObjectson 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.
Closes #280
π Refactor¶
Fixes #347
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_SUSPENDEDinstead ofDEBUG_PROCESSon (game) process creation and initialize the suspended process by creating a stub remote thread before injecting the dll-syringe payload.
π Documentation¶
-
ed6b486 (zh) Partial revision of computer terminology in #329
-
b2ef03a (zh) Localize user feedback prompt and cookie consent in #323
-
5e66b88 Chinese (language) not Chinese (nationality) in #319
δΈε½δΊΊ = Chinese (nationality) δΈζ = Chinese (language)
Adds the recent translations contributed by the community to the documentation site. A new language selector is available to switch between different languages.
Change "FROMSOTWARE" -> "FROMSOFTWARE"
me3 - v0.6.1 - 2025-06-30¶
π Bug Fixes¶
me3 - v0.6.0 - 2025-06-29¶
π Features¶
Add first-class support for Sekiro mods, and
sekiro(aliassdt) as a CLI flag.Remove unnecessary asset override hook (that did not work in Sekiro and did nothing in other games).
-
de5a57c (sekiro) Add Sekiro as a supported game
-
6cb093b Authenticode signatures for Windows binaries in #238
Until now the binaries we've been distributing have been unsigned and as a result lack authenticity. This means we're often being flagged by AV vendors and our reputation effectively resets anytime we produce a "different" binary.
Now we've been issued a code signing certificate by Certum that will be used to sign release binaries.
Adds a packaging process for portable distributions on both Windows and Linux
When we load a native mod there's potential for it to raise a Windows exception and crash the mod host. Now we catch that exception and display a warning to the user that the mod may not be working as expected.
π Bug Fixes¶
-
3f56843 (cli) Correctly handle
--exeflag on Windows and Linux -
c85342c (cli) Enable ANSI escape codes in Windows terminals
Fixes files found exclusively in DLC.bdt (SOTE) not being overriden by me3.
-
cddf133 (host) Use a more suitable memory location for storing thunk data pointers in #201
-
d08f2e7 (host) Use NtTib.ArbitraryUserPointer to store thunk data
-
15052cb (linux) Prevent prompt spam when no tty is available in #184
Make sure we have an interactive terminal before prompting for input.
Fixes #183.
Fixes #188.
Fixes #223.
-
f0083b2 Don't treat filesystem scanning errors as fatal in #224
-
729dbba Add profileVersion='v1' to example profiles
-
68880cf Include 'launch' verb in example portable launchers
-
7c76bb2 Update Linux installer to use portable distribution in #214
The Linux distribution previously downloaded individual binaries from the GitHub release that are no longer available. This update downloads the tarball instead and extracts the needed components from there.
π Documentation¶
-
1e4a31d Add downloads and recent changes badge to README
me3 - v0.5.0 - 2025-06-14¶
π Features¶
me3_launcher now attaches and executes the
me_attachme3_mod_host entrypoint in a suspended process without polling for kernel32.dll. Added ame3 launch --suspendflag to only execute the entrypoint after a debugger is attached to the process.
-
bf7f4c7 Support for
--suspendlaunch flag -
ef5084d Defer applying asset override hooks
-
e6483e9 Suspend main thread on attach
Adds start menu entries and a 'mods' folder for each profile where mods can be placed for an out-of-the box launch experience.
-
124b11d Make any prompts shown by CLI DPI aware
-
59b4954 Create start menu entry to documentation
-
a280a92 Create start-menu shortcuts for default profiles
-
cc6b231 Create drop-in mod folders for default profiles
-
1a8bde1 Support loading mods that rely on modengine_ext_init
Complete overhaul of the me3 telemetry approach. Now we support distributed spans, capturing backtraces, and associating telemetry with a release version.
π Bug Fixes¶
-
0c68dae (linux) Fallback to global steam compat tool in #134
-
98b7998 (linux) Ensure config home exists before creating default config in #126
Fixes #125
Normalize all paths with
normpathand better handle OS-encoded strings.This addresses an issue where me3 could not provide overrides for a game patched with UXM, where a relative path like
".//////sound/soundbanksinfo.mobnkinfo"would not be overidden.Tested on ERR and UXM-patched NR.
-
b6ade25 (overrides) Normalize paths and clean up unnecessary branching
-
c166053 Creation of release PR
-
c8a98d5 Logging for applied hooks
-
757f998 Support native debuggers on WINE
-
f36fb05 Reduce console log pollution
-
1e7583c Ensure me3-telemetry can be compiled without sentry in #143
i.e. when "Run as Administrator" compatability setting is used
-
06fa12f Missing instrument
-
b5fbac7 Error reporting when elevation would be needed
-
ca87788 Require Steam to be running before launching the game
Replaces export polling with scanning for another injection point to avoid the infinite loop bug encountered in fs code. This allows for proper soundbank and wem overrides in NR, and removes the need for the workaround in ER/AC6 that reported any new bnds as having failed to mount.
-
4b2d18e Skip(n).next() -> nth(n)
-
ce55a3f Update test expectations for renamed fields
-
efa5091 Include start menu entries during uninstall
-
3767555 Handle attach errors before waiting on game shutdown
-
3834a44 Remove skip_serializing_if due to bincode bug
-
a00d126 Path to me3 host DLL during uninstall
-
dfae8ab Switch non-canonical names to aliases
- Resolve the Proton prefix from the library the game is actually installed in.
- Install eyre panic/error hook earlier so auto-install doesn't get triggered by a missing system profile dir.
- Support Seamless Coop
-
39a873f Resolve proton prefix from steam library game is installed in
-
35ed61a Install error handler during startup
-
e3ed588 Prevent eyre error handles from being auto-installed
The 'auto-install' feature of eyre is responsible for this, so get rid of default features and use what we need.
Extend Nightreign support to all non-wwise files by hooking all overloads of the same function instead of the only one used in earlier games.
Get ready to fix missing sound issues when using overrides for Nightreign only by passing down the
me3_mod_protocol::Gameenum. It still needs more work because the ER/AC6 fix does not work, but the infinite loop is still there.Closes #98
-
14c4df0 Hardcoded app id in steam compat path for proton in #108
-
96e96e3 Update mod profile schema
-
bfa30cc Update bug report template in release pr
-
e1604a4
CrashHandlerbeing uninstalled via itsDropimpl in #91
The program-wide crash handler for me3_mod_host.dll was dropped as soon as it was assigned. This fix
mem::forgets its RAII guard.
Other¶
- 3c1a4b0 [StepSecurity] Apply security best practices
Signed-off-by: StepSecurity Bot bot@stepsecurity.io
Add
require_steamfn to the launcher which loadssteam_api64.dllfrom the game folder and callsSteamAPI_Initto determine if Steam is running and the Steam account has a valid game license.
-
b71e9fd Replace export polling with scanning for another injection point
-
9dc14b5 Merge remote-tracking branch 'origin/pr-noise' into docs-release-notes-upgrade
Temporary hotfix to prevent infinite loops with FIXME comment, I will address the actual issue soon.
-
846d446 Warning when loading NR soundbanks and wems
-
ee143c4 Update mod profile schema
-
0a0081f Add PR link to CHANGELOG.md
-
38a49a9 Invert condition
-
0c82fd0 Add clarifying doc to
Gameenum -
59e9af8 Only apply sound workaround in games other than Nightreign
-
104d5c4 Pass down attached game enum
-
596c6d3
CSEblFileManageris never initialized by this point, so it was a pointless check -
36da090 CHANGELOG.md pre-PR update
-
8de3eba Hook all 3
set_pathoverloads -
a0007b7 Add
set_pathoverloads -
46ca634 Order games chronologically for
Ord -
cbe6c41 Merge branch 'main' into bugfix/installer-assets
-
4bd8b27 Cargo fmt
-
72670b7 Create assets folder in installer
π Documentation¶
-
1317689 Update README
-
22c909a Surround PGP signature in codeblocks
-
80e15f4 Update acknowledgements for icon artwork
-
6d3c6c4 Add RELEASE_CHECKLIST
βοΈ Miscellaneous Tasks¶
-
cab259a (ci) Include full checkout for changelog
-
b0f8a08 (ci) Publish pre-releases with version number prefix
-
3177c9b (ci) Make sure PDBs are published
-
9b64a8b (ci) Always upload coverage to codecov
me3 - v0.4.0 - 2025-06-07¶
π Features¶
-
31e48cd Add icon and diagnostics verb to windows shell in #85
-
2abdbf1 Use icon for me3 profiles on windows
-
6366a58 Log rotation for profile logs
Log files are now created in a per-profile directory and rotated automatically after 5 log files are created. Additionally, only one profile may be speciied to
me3 launch.
π Bug Fixes¶
-
3e45e35 Allow blank issues on GH
-
592d3be Remove tracing setup log line
-
1aeed8b Sentry propagation
-
0bfc838 Don't create log folders with profile extensions
-
2f15fae Relax formatting of log files
-
8918f3e Console writing for cli
-
49c6374 Don't rotate files that aren't log files
-
62768ab Properly associate telemetry with sentry releases
-
bc83a08 Disable link checking in release notes template
-
179de3a Typo in README
-
378cd00 Copy-pasted error message
-
0d886bf Enum values and
ReadEbl
Other¶
-
62ae57b Support telemetry linking
This also restricts the
launchcommand to a single profile and uses the profile name as the filename.
-
6c2efa3 ANSI for console, pretty+plain formatting for log files
- Installers/release summary in release notes
- Linux installer published from CI
-
3a889bb Publish Linux installer from CI
-
90cb126 Support --exe in addition to --steam-id
-
4bdcb34 Improve release notes and releng scripts
-
8b222c6 Capture user feedback and analytics on documentation in #76
-
e04b432 Add aliases for game names to mod-protocol
-
699814e Re-add NIGHTREIGN support to README
Foundation for generically overriding assets including wwise audio files across FromSoftware games.
Relies on FD4Singleton scanning, RTTI data (if available), program exports (for wwise, if available), PE image scanning.
Does not contain game specific code (as of right now) or use RVAs. Future DS3 support needs using
cxx_stl::msvc2012types.
-
8e77b7b Rustfmt
-
5632e00 Use structured logging from the
tracingcrate -
2a91333 Return function type instead of pointer
-
8c8375c Use
timeBeginPeriodto increase sleep resolution -
c24cfc8 Don't use submilisecond polling duration
-
de562ad Refactor
whileloop intoloop -
896b1f8 Explicit
encode_wide_with_nul -
de1584a Apply hooks synchronously
-
79aaf63 Update EblUtility for Nightreign
-
5a4cc7f Remove debug print
-
105ce74 Update override mapping to allow for disk-to-disk file overrides (like regulation.bin)
-
4b63e09 Apply rustfmt
-
888ed3f Better
Debugimpl -
9fc4125 Don't panic when DlDeviceManager isn't found
-
dfe3edf Remove
instrumentattribute -
c1e150f Remove unused modules
-
4dd64eb New game agnostic asset override approach (normal + wwise)
-
e24c9e8 Hooked function providers
-
ee3dd24 PE32 section parsing
-
e4e16fa Apply clippy suggestions
-
f70da89 Poll singletons fn
-
3839cd8 Update asset lookup dependencies
-
fead392 Update crates
-
51413a8 Add DlUtf16HashString
-
5432cfc Fast linear RTTI scanner
-
33b8b17 Allow for creating game-compatible allocators
-
02cafe3 Remove remaining cxx files
π Documentation¶
- e6cb47f Add AC6 to README
βοΈ Miscellaneous Tasks¶
me3 - v0.3.0 - 2025-06-02¶
π Bug Fixes¶
Other¶
Pretty basic, and mostly butchered from rustup Places the
me3binary in ~/.local/bin and and the windows binaries in~/.local/share/me3/windows-bin. If a configuration file doesn't exist it'll create one withwindows_binaries_dirset and prompt the user to enable crash reporting.Will optionally verify the binaries if the GitHub CLI is available.
-
48fa8dc Merge branch 'main' into feat/linux-installer
-
e21297b Check if profile_dir is unset after parsing all configuration
-
9a29989 Cut off blog post synopsis earlier
-
55bf2b0 Shell script installer for Linux
-
56f5269 Add permissions to spellcheck job
-
f1e56cf Separate CHANGELOG check so it runs on relabeling
me3 - v0.2.0 - 2025-06-01¶
π Features¶
Introduces a new command-line interface for me3 that can be used to manage profiles, check the status of the me3 install, and run the launcher. See help output of
me3 --helpfor more information.Commands supported:
me3 launch me3 info me3 profile show me3 profile create me3 profile listThis also runs as a native binary on Linux hosts and will run the correct commandds uner the hood to set Proton up.
π Bug Fixes¶
-
a995c81 More dead links
-
d9b5bf1 Dead-links in configuration-reference
-
2f1e7a1 Dead links
-
1e2f8d6 Lints
-
40f6f65 Me3 profile show command
-
d8efb8c Zombie me3-launcher processes
-
3592721 Windows installation registry key name
-
d70925a Path to me3 installer in publish action
-
527b336 Args to SBOM upload
-
4e40e27 Generation of Rust SBOMs
-
c70c1ca Prerelease asset upload
-
7262414 Prerelease creation
-
afbf683 Triggers on publishing workflow
-
faea8b2 Dependency review skip condition
-
7898125 Path to mod-host SBOM
-
c562023 Args to GH release upload
-
8dcb5f8 Paths to Windows artifacts
-
ea3e2a7 Makensis invocation for ubuntu runner
-
c62d330 Makensis invocation
-
18e6b86 Sentry feature flags for sub-crates
-
715b7c6 MSVC caching action
-
e1af53a Clang binary names in CI
-
ec1d02a Markdownlint errors
-
fdd29de Anchors and rustup installer link
-
db60705 Camel case capitalization
-
45e7068 Markdown extensions
-
1ef22f0 Admonitions
-
558955d Job cancellation of publishing on main
-
f5aac3d Pointer arithmetic for asset hook RVAs
-
b4e0dfd Recursion in curried trampolines
-
80daf9c Lints, ensure detours are disabled on Drop
-
6d29167 CXXFLAGS for Linux builds
-
625215c Sorting of natives/packages with no dependencies
-
df6af9f Crash handler being dropped early
-
4f0f21d Auto-generation of Prepend impls
-
9643489 Naked attribute in latest nightly
-
5f5759f Build
-
cbd6213 Vscode launch task
Other¶
-
108614a Add an extra line to installer explaining what telemetry is captured
-
fd67acd Respect crash_reporting configuration option
-
c5c9842 Merge remote-tracking branch 'origin/main' into docs-fixes
-
1d23660 Allow CLI to self-update on Windows
-
16ba119 Update lock file
-
a989a09 Mention NIGHTREIGN is not supported right now
-
b45b617 Grammar fixes in me3 installation instructions
-
41f8d8c Installer wizard -> installation wizard
-
2150743 Move installer verification into expandable tip
-
df958c2 Shorten quickstart section
-
2c08a7b Mod profile -> Mod Profile
-
1021259 Use latest version for quickstart link
-
d2f920f Add quickstart and fix dead links
-
d1b79a3 Split up getting started into user guide
-
926192d Update .gitignore
-
9b5e207 Add a new workflow check for dead lnks
-
981afea Add nightreign launcher mapping
-
613a1a0 Add some more commands to CI e2e-tests
-
9e07f23 Update PATH and create profiles as part of installer
-
6360fcd Don't rely on absolute paths for CI
-
965c0f9 Add complete path to me3 in e2e test
-
464f780 Add self to path on windows, me3-toml -> me3
-
ff9ffe5 Update PATH with current user permissions
-
ac7ab8f Use refreshenv to update PATH in CI
-
b7d1046 Check localappdata for me3 installation in tests
-
7ddc5ad Don't rely on Steam app launcher_path
-
5fd0133 Modify PATH in onInstSuccess
-
10d4a7b Show installation and PATH in e2e tests
-
f82a570 Re-add --overwrite check
-
d5a2a84 Create profile folder when it doesn't already exist
-
c330048 Update mod-profile schema
-
8507ec8 Add end-to-end tests to publishing
-
242d04c Nightrein -> neightrein
-
d5ef858 Create eldenring and nightrein profile, add me3-cli to PATH
-
bc2dddf Allow creating a profile with a supported game
-
0768dc1 Don't raise errors when trying to resolve profile name
-
a7601d1 Add support for auto-detecting game from mod profile
-
2b3bf45 Use me3-toml to support file associations on Windows
-
a06eae6 Use consistent path to me3 appdata
-
bde5f76 Consistent installer naming, fix dependency review
-
48049e4 Run dependency check on Ubuntu
-
7560913 Install musl toolchain for Linux binaries
-
aa1f924 Always run publishing workflow
-
0f8d51a Don't create prereleases from publishing jobs not on main
-
388ddb1 Trigger publishing on more release events
-
d681490 Use published event for release uploads
-
cba3bf5 Generate release notes from CHANGELOG
-
76cb6b1 Update mod profile schema
-
b3b443d Build mod-protocol with serde derive feature
-
fc64ad4 Pass GHA token to GH CLI
-
840bab3 Run Clippy and rustfmt on Ubuntu
-
93a70bd Remove binary-analysis from workspace list
-
a4627d9 Generate separate attestations for each binary
-
51c2fc0 Dependency check should have write access to contents
-
6ecb8b6 Add dependabot configuration file
-
5f5918f Use manual dependency submission
-
7a49449 Add tests for CLI output formatting
-
b46d36e Generate attestations for all binaries
-
4b2e0af Cleanup caches on PR closure
-
848d87f Linter fixes
-
7d48af0 Install NSIS with apt
-
220acbd Create prereleases on every push to main
-
564433d Add permissions to workflows missing them
-
fcaa318 Pin GitHub action versions
-
99c36eb Cache VS SDK
-
c489b9e Ensure CL_FLAGS is set in setup-windows-toolchain
-
d0bf54a Build Linux + Windows binaries in publishing job
-
a68a9bb Install LLVM for Ubuntu builds
-
965d791 Use llvm-lib as AR on Ubuntu
-
65ccfea Use lld in linker configuration
-
1304963 Move C++ exception flag to CXXFLAGS
-
f45c331 Re-enable Linux CI
-
68cd550 Update documentation link
-
e2440f5 Clearer quickstart link
-
71f6686 Remove stray line in README
-
97802a1 Update README
-
35d6add Nightrein app ID
-
4c687f7 Regenerate Cargo.lock
-
d26364e Add a check to make sure CHANGELOG is updated in #47
-
08f89ee Split PR checks and pull_request_target workflows
-
7daf284 Allow dependency review to work on forked PRs
-
0745ca7 Re-run changelog check when labels change
-
d5e6d58 Add permissions and checkout full git history
-
e970895 Make PR workflow label shorter
-
0ecd9e4 Use base SHA instead of refname
-
f5b72f7 Model DLString with cxx-stl and remove cxx dependency in #42
Use cxx-stl to model utf8, 16, 32, sjis and eucjp strings with encoding validation and DLStdAllocator support for resource overrides.
-
cf01601 Merge branch 'main' into feat/better-dlstring
-
bf9ad1d Implement Display instead of ToString as per clippy
-
d77b5e7 Capitalization and implementation fixes
-
98d05da Rewrite asset mapping hook
-
8b040fe Rustfmt
-
2083d9b Make encoding constants private and inlined in the module
-
ad37db6 Use DLString instead of cxx
-
3ac6112 Remove cxx build.rs
-
6f0a5f5 Replace cxx with cxx-stl
-
214d281 Add DLString and encoding API
-
1eaa88c Add DLAllocator API
-
5dee34f Normalize profile paths instead of canonicalizing in #41
-
f78959d Add schema links to getting-started
-
79000af Disable comments on homepage
-
2df3607 Include download links in docs
-
bd34f5f Enable theme previews
-
ffe560f Disable RTD search
-
7c738fd Disable readthedocs version selector
-
c115a3f Correctly set site_url
-
b71da82 Copy mkdocs theme configuration
-
1e0ea88 Add icons to getting started guide
-
33d8a68 Enable emoji for fontawesome
-
d0766f9 Copy mkdocs-material theme palette configuration
-
51784d5 Enable recommended extensions
-
355f0ad Enable code highlighting
-
07098bb Enable markdown admonitions
-
b927485 Add configuration reference to navigation
-
ae3910e Add basic getting started documentation for Windows
-
66c6e3a Add blog post description and authors
-
a997453 Make header less contrasting
-
6e9329f Remove integrated TOC
-
cba24be Enable navigation/toc features
-
21f2b96 Enable search
-
565f3a6 Disable doc discussion reactions before comments
-
01f7df4 Enable GitHub plugins in docs
-
dd4ac0a Begin setting up documentation
-
ca16a32 Make it easier to merge release PRs
-
64ef577 Include instructions to create tag/release in release PR
-
e87e66f Pass GH token to GH cli during release upload
-
190012b Only upload PDBs to sentry on release
-
5ff23a0 Cargo fmt
-
93b6d35 Don't produce compile errors when SENTRY_DSN is missing
-
99820dd Capture crash reports with Sentry
-
23f0cdd Replace Clap with env-var based config
-
ffad718 Publish installer to GH release on tag
-
d6e37cd Remove unnused releng script
-
89d4f89 Create a new branch when creating a release
-
6f9e1b5 Support for releng
-
e6a7cb7 Prune dependency tree
-
2d43c4a Add missing metadata to all crates
-
9b2ed0d Add cargo-release configuration
-
3878ed2 Add labels for GHA workflows
-
91ff355 Remove --workspace option from llvm-cov report in #30
-
47033ae Install cargo-nextest for CI
-
b17be90 Only run CI on windows, publish codecov/test results
-
d824698 Get clang-cl via clang-tools package for Ubuntu
-
0600a2c Include dependency change summary in PR comments
-
aa30e5a Use GH dependency graph for dependency review
-
5f9f653 Don't enforce newline style in rustfmt
-
7683890 Regenerate configuration schema
-
a158c23 Cancel concurrent CI builds
-
d78fac8 Include better CI checks
-
5001ce8 Install LLVM with sudo
-
e5cad13 Include debug symbols with installer
-
460c8f2 Canonicalize profile base paths before searching packages/natives
-
4483a56 Merge all mod profiles during launch, return meaningful errors on failure to sort
-
7789724 Install LLVM for Linux builds in CI
-
2ba44e5 Update config snapshot tests
-
bc219e4 Use version of mod host for installer version
-
cc64090 Upload installer exe
-
8171e36 Don't require administrator privileges for installation
-
25b546c Absolute path to makensis
-
3b97f98 Expose supports via ModProfile public API
-
f16496b Allow a mod profile to state the games it supports
It's unlikely that a standard asset bundle mod will make use of this, however it's possible that native mod profiles might. Additionally, it gives us a way to figure out the game we want to tell the launcher to use when invoking a profile via ShellExecute.
-
ea47045 Build installer in CI
-
34068b3 Generate me3 installers using NSIS
-
e9a7e3f Use lld-link for linkage on Linux
-
0c564e8 Setup C++ build environment during CI
-
b09afa2 Run CI on main branch
-
c188c1e Merge remote-tracking branch 'origin/main' into feat/vfs-hook
asm!is no longer allowed in naked fns, so I've swapped it fornaked_asm!. they have also pulledMaybeUninit::uninit_arraywhich dll-syringe uses, so I've added a temporary patch entry to a repo that has a fix included.
-
1cefac6 Allow conversion of any error type to AttachError
-
f355707 Code cleanup
-
812d440 Merge branch 'feat/crash-handling' into feat/vfs-hook in #24
-
f40fd7c Crash handling and support for tracing messages from mod-host
Allows the mod-host to signal to the launcher that it wants to perform a crash dump, and also send its own log messages to the same log collection mechanism used by the launcher.
-
04e9f82 Pass trampolines into hook closures via currying in #22
-
5bdfe77 Make paths absolute, probably properly
-
399ab53 Reimplement the override logic for the wwise hook, swap fixed pointers for RVA and dynamic bases using GetModuleHandleA
-
b8e0624 Added tests for wwise rewrites, setup wwise hook
-
b02c77b Implement vfs hook
-
df31a88 Remove unused import of asm
-
286e05f Merge pull request #17 from garyttierney/build-workflow in #17
Add a build workflow
-
ccac057 Install Wine for test running
-
2d35119 Install LLD for Ubuntu builds
-
d52759a Merge pull request #19 from vswarte/build-workflow in #19
Update time dep to fix build
-
5c90f3e Update time dep
-
902d6c6 Add a build workflow
-
af4d14b Merge pull request #16 from garyttierney/fix-runner in #16
Remove runner configuration from Windows target
-
6d0315b Remove runner configuration from Windows target
-
a364eb6 Merge pull request #15 from vswarte/chore/toml-config-support in #15
Add TOML support for the mod profiles
-
6a0de25 Run cargo fmt
-
50b9d2c Remove unused test_case macro
-
c7902b8 Add unit tests for TOML and YAML parsing
-
237460a Register schema association for TOML
-
9bc743d Merge branch 'main' into chore/toml-config-support
-
6817ced Support for native initializer conditions
-
ad56f59 Clean up Cargo manifests
-
b21c5e2 Toplogical sort natives/packages and return result from attach
-
6ee6391 Introduce HookInstaller for ModHost API
-
c3666db Bounds checks on ThunkPool
-
7bb25e5 ThunkAllocator -> ThunkPool
-
dc4e2ac Update xwin instructions in README
-
b75f493 Add TOML support for the mod profiles
-
52898d4 Generate function pointers to closures by JITing thunks
-
fccf0a9 Add a file-based logger in addition to stdout
-
4e7821f Remove issue filter
-
9951447 Add vscode task to launch me3 launcher
-
0895853 Send mod profiles with attech requests
-
c2e2356 Include vscode settings for schemas
-
bb187f6 Add README and CONTRIBUTING
-
c4e6ef5 Initial commit