Commit Graph
100 Commits
Author SHA1 Message Date
ghorsington f7857c7994 Restructure project names and folder layout 2022-08-14 17:19:09 +03:00
ghorsington ae18f16803 Il2Cpp: Redirect stderr on Windows to log CoreCLR crash messages
On Windows, emit BepInEx/ErrorLog.log that will contain the latest stderr
This allows to catch any errors CoreCLR writes before closing on a fatal crash

On Unix, same is already possible via normal piping
2022-08-14 17:19:09 +03:00
ghorsington c5ca4a8ee5 Il2Cpp: Add missing Console redirect fix 2022-08-14 17:19:09 +03:00
ghorsington ad5ca9d9d3 Bump Doorstop 2022-08-14 17:19:09 +03:00
ghorsington 531bda7673 Use Doorstop 4.0.0-rc.6 2022-08-14 17:19:09 +03:00
ghorsington 8d743ff808 run_bepinex_mono: Fix target name 2022-08-14 17:19:09 +03:00
ghorsington c7704558a1 Port #443 from upstream 2022-08-14 17:19:09 +03:00
ghorsington cb344fbe99 Disable linux x86 build for Il2Cpp 2022-08-14 17:19:09 +03:00
ghorsington 6bb83b5728 Bump Il2CppInterop version 2022-08-14 17:19:09 +03:00
ghorsington ad85dbbf67 Fix style 2022-08-14 17:19:09 +03:00
ghorsington 39b84a2b4e Remove remaining "unhollow" wording 2022-08-14 17:19:09 +03:00
ghorsington 4b240fc90b Select better entrypoint for Unity 4; restore ThreadingHelper
ThreadingHelper seemed to cause crashes on Unity 4 because of too early default entrypoint. Using the new version resolver, this changes now selects MonoBehaviour as the new default entrypoint for older Unity versions
2022-08-14 17:19:09 +03:00
ghorsington 9e87075129 Use new version handler for Il2CppInteropManager 2022-08-14 17:19:09 +03:00
ghorsington 579ee8511b Add extended Unity version resolver; reorganise projects
The new resolver resides in BepInEx.Unity.Core
The resolver is based on multiple heuristics and integrates all workarounds we currently use so this shouldn't be a breaking change
2022-08-14 17:19:09 +03:00
ghorsington f27cfd7215 Fix MonoAssemblyHelper not working on Unity 5 and older
In older Unity (ones that embed UnityPlayer into the EXE), __Internal will map to the EXE which causes wrong DllImport resolving. Instead, use Doorstop's env var to resolve correct functions
2022-08-14 17:19:08 +03:00
ghorsington 5ef040f96d Add Doorstop folders as solution items 2022-08-14 17:19:08 +03:00
ghorsington ea6af5f94a Bump Doorstop version 2022-08-14 17:19:08 +03:00
ghorsington 24d2395833 Bump CakeBuild version 2022-08-14 17:19:08 +03:00
ghorsington 275105619e Remove extra logging 2022-08-14 17:19:08 +03:00
ghorsington 828ef20996 UnityMono: Resolve assemblies into memory using mono API
This fixes several issues with loading assemblies. In turn, this commit also removes old Location/CodeBase fixes since now assemblies are resolved automatically correctly.

Additionally, integrate the mono loader into preloading which fixes assembly location resolving
2022-08-14 17:19:08 +03:00
ghorsington f400445ba1 Refactor Unity -> UnityMono
Use runtime names for BepInEx modules instead of just the game engine
2022-08-14 17:19:08 +03:00
ghorsington 46d9dd4f62 Fix Wine check not working on UnityMono version
DynDll relies on PlatformHelper in net35 version which can cause early loading
2022-08-14 17:19:08 +03:00
ghorsington f658a4fbdf Adjust hash info message 2022-08-14 17:19:08 +03:00
ghorsington d232386aea Use release .NET 6.0.6 builds 2022-08-14 17:19:08 +03:00
ghorsington d190b069a1 Restructure versioning and project configuration
To simplify versioning and configuration:

* Removed BepInEx.Shared
* Removed BuildInfoAttribute
* Moved shared configuration to Directory.Build.props
* Refactored to use VersionSuffix and SourceRevisionId for embedding BE and commit hash info
* Enabled debug info embedding
2022-08-14 17:19:06 +03:00
ghorsington 28487d237a Disable Il2CppInterop parallel writing on Wine
At the moment high parallel I/O causes issues on Wine, so it's better to disable it for the time being
2022-08-14 17:18:59 +03:00
ghorsington 60147c73dc Add platform check for Wine, report Wine version 2022-08-14 17:18:59 +03:00
ghorsington d42f342d15 Bump Il2CppInterop 2022-08-14 17:18:59 +03:00
ghorsington dcab274a77 Bump Il2CppInterop version 2022-08-14 17:18:59 +03:00
ghorsington cad26ff6e0 Update Doorstop 2022-08-14 17:18:59 +03:00
ghorsington 8122165dbd Update README 2022-08-14 17:18:59 +03:00
ghorsington 9224a2a820 Update Il2CppInterop 2022-08-14 17:18:59 +03:00
ghorsington c184450015 Fix BepInExLogger not logging exceptions 2022-08-14 17:18:58 +03:00
ghorsington 0bc9578e75 Update Cakebuild script 2022-08-14 17:18:58 +03:00
ghorsington 97998e7387 Use latest dotnet; fix *nix scripts 2022-08-14 17:18:58 +03:00
ghorsington 266a2c87db Use new Il2CppInterop detour provider, add Il2CppInterop.HarmonySupport 2022-08-14 17:18:58 +03:00
ghorsington 59097dbb73 Update Il2CppInterop; use new runner API 2022-08-14 17:18:58 +03:00
ghorsington abb10739db Target latest Il2CppInterop code 2022-08-14 17:18:58 +03:00
ghorsington 68cadbf697 Fix hook logs not showing 2022-08-14 17:18:58 +03:00
ghorsington 6ca26f4b59 Clean up after merge 2022-08-14 17:18:58 +03:00
ghorsington 3a47049c01 Add dobby to distribution 2022-08-14 17:18:58 +03:00
ghorsington 0da14c507c BepInEx.IL2CPP: Move runtime info logging to preloader 2022-08-14 17:18:58 +03:00
ghorsington 5afef9a1db FastNativeDetour: temporary fix for net6.0 support 2022-08-14 17:18:58 +03:00
ghorsington 7a54a77946 BepInEx.IL2CPP: Remove old MonoExtensions 2022-08-14 17:18:58 +03:00
ghorsington b80f29784c BepInEx.IL2CPP: Fix mutex checks 2022-08-14 17:18:58 +03:00
ghorsington 8dc326c652 ConsoleManager: enable console by default 2022-08-14 17:18:58 +03:00
ghorsington a8dbe2c481 BepInEx.IL2CPP: fix ReferenceLibs copying to output 2022-08-14 17:18:58 +03:00
ghorsington a1c7f5c4b1 ConsoleManager: refactor useWinApiEncoder -> useManagedEncoder 2022-08-14 17:18:58 +03:00
ghorsington 57658bdbb7 BepInEx.IL2CPP: retarget to net6.0, switch to Il2CppInterop 2022-08-14 17:18:58 +03:00
ghorsington 514d273371 Use RC builds for Doorstop 4 2022-08-14 17:18:58 +03:00
ghorsington c2dfd63f45 CakeBuild: Revert "task" -> "target"
CakeBuild always expects main task to be defined in "target" argument, see
https://cakebuild.net/docs/writing-builds/running-targets
2022-08-14 17:18:58 +03:00
ghorsington b927279bfa Il2Cpp: bundle dotnet runtime, add linux/macos
Currently Il2Cpp builds don't actually run as changes need to be done to BepInEx.IL2CPP.
2022-08-14 17:18:58 +03:00
ghorsington a431814a19 Add note about platform name 2022-08-14 17:18:57 +03:00
ghorsington ae9232abc4 Add nightly.link comment bot for PRs 2022-08-14 17:18:57 +03:00
ghorsington f4334f56c0 Update CI to work with Doorstop 4 2022-08-14 17:18:57 +03:00
ghorsington ec79ad057b Allow giving special versions to build script 2022-08-14 17:18:08 +03:00
ghorsington e473f08e0a ConfigFile: Fix visibility of Values
GetConfigEntries was obsoleted, but Values was never set to public (only explicitly implemented)
2022-08-09 21:23:17 +03:00
Geoffrey Horsington 9c2b17f3e4 Merge pull request #443 from TheLounger/master
Add unhollower RegEx rename config option
2022-07-13 18:34:20 +03:00
ghorsington 3a54f7eef8 Fix missing Microsoft.NETFramework.ReferenceAssemblies reference 2022-07-09 11:03:34 +03:00
ghorsington 3febd6a3ba WindowsPageAllocator: Fix allocation issues on macOS
On macOS (if using e.g. Crossover), VirtualQuery can report a memory address as free but still fail to reserve the memory with VirtualAlloc (fails with error code 0x170C240 for some reason).

To fix this, memory is now reserved directly in the loop to ensure it can be reserved. If reservation fails, the next address is tried.
2022-06-19 21:50:49 +03:00
ghorsington fbb856702f PageAllocator: fix allocation unit to correct value 2022-06-19 21:38:30 +03:00
ghorsington f2fde2db12 Bump Il2CppAssemblyUnhollower 2022-06-18 21:52:17 +03:00
ghorsington 686c956fa4 Fix VirtualQuery signature on x64
In WinAPI MEMORY_BASIC_INFORMATION is not a real struct but rather a macro that resolves either to _MEMORY_BASIC_INFORMATION32 or _MEMORY_BASIC_INFORMATION64, see

https://github.com/Leandros/WindowsHModular/blob/master/include/win32/io.h#L120-L147

Because of this, hooking might fail because some valid memory pages will get skipped or some invalid pages might be used.
2022-06-18 20:40:23 +03:00
ghorsington e4c9ae4115 Expose LoadPlugins(string[]) for 3rd party tools
This is a temporary solution until metaplugins are available
2022-06-05 19:03:08 +03:00
ghorsington 9cc85135dd Add temporary instance property to Unity and .NET chainloaders 2022-06-05 19:02:25 +03:00
ghorsington 5f13a91292 Bump Doorstop version 2022-06-05 17:28:39 +03:00
ghorsington 6b7405e46b WindowsConsoleDriver: Don't quit if console cannot be allocated 2022-06-05 17:16:51 +03:00
ghorsington 4f2226f1db Add UnhollowedAssembliesPath config option and similar --unhollowed-path CLI arg 2022-06-05 17:16:18 +03:00
ghorsington 5d77398a5c Bump Unhollower version 2022-05-24 20:42:10 +03:00
ghorsington bf37162544 Bump Unhollower version 2022-05-22 10:57:01 +03:00
Geoffrey Horsington 265107c6c5 Update build_pr.yml 2022-05-21 01:12:36 +03:00
Geoffrey Horsington 7747d531aa Update build_pr.yml 2022-05-21 01:07:46 +03:00
Geoffrey Horsington 9050742dc4 Merge pull request #415 from xKiraiChan/master
Update bleeding edge builds link to newer domain
2022-05-17 07:29:24 +03:00
Geoffrey Horsington 7a97bddc2b Merge pull request #412 from js6pak/fix-attributes-on-cpp2il
Run basic AttributeRestoration for cpp2il
2022-05-07 16:10:36 +03:00
ghorsington 5ff56c2ca5 WindowsPageAllocator: don't throw on invalid address resolving 2022-05-05 22:48:42 +03:00
ghorsington eaf38ef536 Bump package versions 2022-05-02 18:58:36 +03:00
ghorsington fba4461f0e Bump Il2CppUnhollower 2022-04-30 14:19:27 +03:00
ghorsington 5538981709 ProxyAssemblyGenerator: default to Cpp2Il, add DisposeAndCleanupAll 2022-04-28 22:32:06 +03:00
ghorsington 8b98fab59e Bump package versions 2022-04-28 22:30:00 +03:00
ghorsington da48b7710d Bump Unhollower version 2022-04-21 22:25:03 +03:00
Geoffrey Horsington 9ea3ee8e62 Merge pull request #403 from xKiraiChan/patch-1
Change visibility of ConfigEntryBase constructor to `internal protected` to allow for external implementations
2022-04-21 09:33:13 +03:00
Geoffrey Horsington d4d2abd3b0 Merge pull request #401 from Kasuromi/master
[Il2Cpp] Use UnityVersionHandler's Size Providers in Harmony Backend
2022-04-20 19:31:46 +03:00
ghorsington 4a290db876 ProxyAssemblyGenerator: fix to work with new Unhollower version 2022-04-17 18:38:18 +03:00
ghorsington 16a75479bb Bump package versions 2022-04-17 18:37:36 +03:00
ghorsington fa9b1ab9d1 CI: Only build for PRs and BEs for master 2022-03-25 00:06:49 +02:00
Geoffrey Horsington b50a18a3d9 Merge pull request #376 from Kasuromi/master
[Il2Cpp] Convert managed bool to byte in Native to Managed trampoline
2022-03-15 17:43:51 +02:00
ghorsington b7a05a61e1 Fix C# 10 CS8983 regression 2022-02-24 22:32:17 +02:00
ghorsington 4cc7ab0619 Bump Il2CppUnhollower and Cpp2IL versions 2022-02-24 22:13:30 +02:00
Geoffrey Horsington f2c0e0fa45 Update feature_request.yaml 2022-02-13 10:01:20 +02:00
Geoffrey Horsington f10a1f61d7 Update error_report.yaml 2022-02-13 10:00:46 +02:00
Geoffrey Horsington 0894d3552e Merge pull request #360 from BepInEx/feature-runparallel
Add ThreadingExtensions.ForEachParallel
2022-02-13 09:50:21 +02:00
ghorsington 1504d80c06 Bump HarmonyX and MonoMod 2022-02-03 19:06:36 +02:00
Geoffrey Horsington f590259156 Update build_be.yml 2022-02-02 18:46:45 +02:00
Geoffrey Horsington 86ead2cf4d Update build_be.yml 2022-02-02 18:43:25 +02:00
ghorsington 6daaa543f1 Update CI build URL 2022-01-31 19:41:04 +02:00
ghorsington 7669b6dbec Il2Cpp: Fix OnInstallUnityTlsInterface not being static
This causes crashes in some games (likely because of mono generating thisptr arg which could break the stack order on x86)
2022-01-22 19:44:57 +02:00
Geoffrey Horsington e21677f440 Merge pull request #352 from js6pak/bitness
Fix process bitness detection
2022-01-13 18:07:44 +02:00
ghorsington ce04a24fb2 ProxyAssemblyGenerator: Handle exceptions better 2022-01-12 20:56:12 +02:00
ghorsington 59c5adc982 Bump libraries
* Updated HarmonyX
* Updated MonoMod
* Updated Cpp2IL
2022-01-11 17:27:04 +02:00
Geoffrey Horsington 692fb86cfd Merge pull request #351 from miniduikboot/fix/artifact-description-wording
CI: Emphasize architecture of game instead of OS
2022-01-08 21:00:07 +02:00