Skip to content

Releases: BepInEx/HarmonyX

Release v2.16.1

30 Mar 17:04
02a98f5

Choose a tag to compare

What's Changed

  • Fix an invalid cast excpetion in CodeInstruction.LocalIndex() by @aldelaro5 in #139
  • Bump MonoMod.RuntimeDetour version to 25.3.4 by @aldelaro5 in #140

Full Changelog: v2.16.0...v2.16.1

Release v2.16.0

26 Nov 00:44
5939772

Choose a tag to compare

What's Changed

  • Backport a ReversePatch fix from upstream by @aldelaro5 in #134
  • Upgrade MonoMod.RuntimeDetour to 25.3.3 and Add .NET 10 support by @hazre in #136

New Contributors

Full Changelog: v2.15.0...v2.16.0

Release v2.15.0

03 Sep 21:07
dcb392b

Choose a tag to compare

This version is the first to feature ARM support (including Apple Silicon). Be aware that while it should work, it was not tested yet. Please let us know if it works or not on the BepInEx discord server or in discussions.

Warning: There may be some issues with IL manipulation on mono runtimes (see MonoMod/MonoMod#233). The v2.13 release is the last release without this problem.

What's Changed

Full Changelog: v2.14.0...v2.15.0

Release v2.14.0

11 Jan 20:12

Choose a tag to compare

Warning: There may be some issues with IL manipulation on mono runtimes (see MonoMod/MonoMod#233). The v2.13 release is the last release without this problem.

What's Changed

  • .NET 9 Support by @ds5678 in #121
  • Synchronizing dumper with monomod and fixing ILLabel dumping by @kohanis in #118
  • Support non-static signatures in NativeDetourMethodPatcher, fixes #122. by @CptMoore in #123

New Contributors

Full Changelog: v2.13.0...v2.14.0

Release v2.13.0

12 Jun 20:10
ef84f6e

Choose a tag to compare

This release includes all changes made to upstream since Harmony v2.2.1. See Harmony changelog here for details on the merged changes.

What's Changed

New Contributors

Full Changelog: v2.12.0...v2.13.0

Release v2.12.0

08 Feb 16:47

Choose a tag to compare

What's Changed

  • Fix for unintentional removal of some leave instructions by @kohanis in #96
  • Fix invalid file name when dumping compiler-generated methods by @Meivyn in #99
  • CreateAndPatchAll - use a counter + target name as default ID instead of a GUID by @ManlyMarco in #103
  • Add HarmonyOptional attribute by @ManlyMarco in #105

New Contributors

Full Changelog: v2.11.0...v2.12.0

Release v2.11.0

19 Jan 14:21
4148feb

Choose a tag to compare

Release v2.11.0 Pre-release
Pre-release

What's Changed

  • For log file open with full share access, if user sets "HARMONY_LOG_FILE" append obsolete to old FileLog by @mitchcapper in #83
  • Update MonoMod to 25.0.0, add Harmony 2.3 features by @Windows10CE in #79
  • Fix AccessTools.GetTypesFromAssembly sometimes returning an array with a null in it by @ManlyMarco in #80
  • Improve CodeMatcher exceptions on invalid positions by @ManlyMarco in #85
  • Update MonoMod.RuntimeDetour to 25.1 by @ManlyMarco in #100

New Contributors

Full Changelog: v2.10.2...v2.11.0

Release v2.10.2

29 Aug 22:13

Choose a tag to compare

Changelog

Full Changelog: v2.10.1...v2.10.2

Release v2.10.1

13 Nov 17:51

Choose a tag to compare

Changelog

  • Print out lastError in ThrowIfInvalid (#48)

Release v2.10.0

24 Mar 19:33

Choose a tag to compare

Changelog

  • Merged code from upstream up to 6006140 (see Harmony changelog)

    • Important: The merge brings binary incompatibilities to CodeMatch class. If you distribute HarmonyX in games or mod loaders, please test for any regressions and apply shims where appropriate

      Starting this version, CodeMatch now inherits CodeInstruction. Because of this, some fields (labels, blocks) have been removed from CodeMatch as they are now provided by CodeInstructon. Any CodeMatch uses where fields are accessed directly will be binary-incompatible. However, this should generally be fairly rare: analysing a few dozen CodeMatch class uses across different GitHub projects revealed that most developers only use the new CodeMatch constructor, which hasn't been altered. Most use cases of CodeMatch should still be binary-compatible with HarmonyX 2.10.

    • All nested classes in the Code class have also been annotated with the [EditorBrowsable(EditorBrowsableState.Never)] attribute to prevent custom classes from cluttering most IDEs' code completion.

  • Fix HARMONY_NO_LOG environment variable is not respected for file logger

  • Fix HarmonyEmitIL attribute not working on methods with certain branches

  • Fix handling methods that include throws OpCode on mono

  • Fix net35 builds not working on CoreCLR because of AccessTools.PrepForRemoting fix

  • Improve exception messages when applying patches (warn about missing target method or patch method not being static)

  • Bump MonoMod version to 22.3.23.4 (changelog)