MonoMod Versions Save

C# modding swiss army knife, powered by cecil.

v22.07.31.01

1 year ago

Long overdue maintenance release of the old branch for those who need it. Check the commit log for changes.

Please follow @nike4613's progress with the reorganize branch.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v22.05.01.01

2 years ago

RuntimeDetour

  • Fix a regression introduced by the previous release's change to no longer use ILGeneratorShim for .NET Core 3+ internally.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v22.04.23.01

2 years ago

RuntimeDetour

  • Faster initialization for .NET Core 3+ by avoiding ILGeneratorShim.

Utils

  • Improve platform detection for .NET 5.0+

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v22.03.23.04

2 years ago

Utils

  • Add ReflectionHelper.IsMono and IsCore, check for Mono.RuntimeStructs (modern mono).
  • Make DynDll act as a shim for NativeLibrary on .NET Core.
  • Fix reflection cache fixer on .NET Framework 3.5.

RuntimeDetour

  • Implement initial precode walking for arm64 (Thanks, @kevzhao2!).
  • Fix compatibility with Windows x86 .NET 6.0 (x64 worked fine).
    • ICorJitCompiler compileMethod switched from StdCall to ThisCall for this specific version of the .NET runtime despite no changes to the function definition, presumably due to minor compile-time differences.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v22.02.10.01

2 years ago

RuntimeDetour

  • Check for and use the new RuntimeHelpers.CompileMethod(RuntimeMethodHandleInternal) signature found in .NET 5 and newer.
    • This works around the first chance exception handler deadlock triggered by tModLoader. Here's a general reminder to not call methods which could be in process of being detoured.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v22.01.29.01

2 years ago

Utils

  • Fix Android support by bypassing SELinux for platform check (Thanks, @MeWnoJinsei!).
  • Fix busybox on Windows messing with platform check.
  • Fix ILPatternMatchingExt.Match<T>(Instruction, OpCode, out T) (always returned false).
  • Add callvirt get_Assembly (Mono vs .NET) fix for DMDEmit as well (Thanks, @ghorsington!).

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v22.01.04.03

2 years ago

RuntimeDetour

  • Check if dynamic IL is available in TryMemAllocScratchCloseTo, fixing problems in some Unity environments.

Patcher

  • Fix generic parameters not being cloned / relinked properly (Thanks, @Popax21!).
  • Fix Mono weirdness regarding custom attribute constructor references (must be method ref + type ref, or method def, not method ref + type def) (Thanks, @Popax21!).

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v21.12.13.01

2 years ago

RuntimeDetour

  • Even more struct-related fixes.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v21.12.11.01

2 years ago

RuntimeDetour

  • On .NET Framework 4.8 x86, trunks can be chained just as with Core x64. This should fix a very occasional ExecutionEngineException edge case in a limited amount of projects.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v21.11.09.02

2 years ago

RuntimeDetour

  • Add the .NET 6.0 JIT GUID: there don't seem to be any breaking changes between .NET 5.0 and 6.0 so far.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release