Commit Graph
1411 Commits
Author SHA1 Message Date
ghorsington 008f835e80 Port Cakebuild script to Cake.Frosting 2022-08-14 17:19:09 +03:00
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
Kasuromi cbb864dfde Pass in delegate instead of function pointer 2022-08-14 17:18:59 +03:00
Kasuromi e0023bb834 Wrap detour on create 2022-08-14 17:18:59 +03:00
js6pak ef89754d48 Add the using back 2022-08-14 17:18:59 +03:00
Kasuromi 0c0b8cfe10 it was still needed 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
js6pak 0e58099a83 Allow changing preloader log name with an env variable 2022-08-14 17:18:59 +03:00
js6pak 9743fb4c13 Preloader fail fast 2022-08-14 17:18:58 +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
js6pak 5ba319927f Add linux support 2022-08-14 17:18:58 +03:00
js6pak 8d26da3cda Centralize the delegate workaround 2022-08-14 17:18:58 +03:00
js6pak 5dce49007e ConsoleOut workaround isn't needed anymore 2022-08-14 17:18:58 +03:00
ghorsington 97998e7387 Use latest dotnet; fix *nix scripts 2022-08-14 17:18:58 +03:00
js6pak 3538abf277 Support macos 2022-08-14 17:18:58 +03:00
js6pak 12079aeb09 Improve ConsoleWindow exceptions 2022-08-14 17:18:58 +03:00
js6pak 1315427acd Fix console on wine 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