100 Commits
Author SHA1 Message Date
ghorsington 5796f53564 Bump Il2CppInterop, HarmonyX 2022-11-13 20:02:15 +02:00
Geoffrey Horsington 3ad398a160 Merge pull request #503 from js6pak/bump-Il2CppInterop
Bump Il2CppInterop
2022-10-22 15:20:41 +03:00
Geoffrey Horsington d6861e8e77 Merge pull request #502 from js6pak/disable-x32-xref
Add a config option to disable xref and disable it by default on x32
2022-10-22 15:20:19 +03:00
ghorsington 40bf261c91 Bump Il2CppInterop 2022-10-04 19:21:10 +03:00
ghorsington 0106719399 Bump Cpp2IL version 2022-10-01 22:59:05 +03:00
ghorsington 7b8c6779f0 Temporarily downgrade to Cpp2IL 2022.0.5
It seems loading LibCpp2IL.dll fails with a FileLoadException without any extra logs. Downgrade used Cpp2IL for the time being until 2022.1 can be integrated instead.
2022-10-01 10:08:29 +03:00
ghorsington 684959d840 Bump Cpp2IL and Il2CppInterop 2022-09-30 20:33:50 +03:00
ghorsington b3485f4739 Bump Dobby version 2022-09-11 20:58:06 +03:00
ghorsington b9fe507672 Use Assembly.LoadFrom for loading assemblies
Assembly.LoadFile is meant for a special case that is not relevant to BepInEx
2022-09-11 18:41:22 +03:00
ghorsington c0b9eae558 Bump Dobby version 2022-09-10 22:09:30 +03:00
ghorsington 44cb650e63 Bump Il2CppInterop version 2022-09-10 22:09:19 +03:00
ghorsington 736138b59d Bump Il2CppInterop version 2022-09-08 20:29:39 +03:00
ghorsington 8621f8449c Bump Il2CppInterop 2022-08-29 22:16:30 +03:00
Geoffrey Horsington e8713f11e0 Merge pull request #477 from js6pak/wine-warning
Warn about outdated wine
2022-08-29 20:57:26 +03:00
Geoffrey Horsington 8b32f63d76 Merge pull request #475 from js6pak/chainloader-events
Add chainloader events
2022-08-29 20:54:41 +03:00
ghorsington 78b5b58884 Build: Fix NuGet packages not being pushed 2022-08-15 22:22:14 +03:00
ghorsington b41697c34a CI: Fix BE file lookup; fix last build commit check 2022-08-14 17:57:40 +03:00
Geoffrey Horsington dbe19b7f94 Merge pull request #391 from BepInEx/feature-doorstop-4
Restructure project, add Doorstop 4 support, use CoreCLR for Il2Cpp
2022-08-14 17:43:53 +03:00
ghorsington e8ba62bc73 Specify correct .NET version in README 2022-08-14 17:19:09 +03:00
ghorsington b91734508e Bump Doorstop version 2022-08-14 17:19:09 +03:00
ghorsington 0e8ff5c213 Use dotnet 6.0.7 2022-08-14 17:19:09 +03:00
ghorsington 9e8c0bdcef Move extra docs to docs/ 2022-08-14 17:19:09 +03:00
ghorsington add17f1fe8 Add build types to build script; enable CI for all branches 2022-08-14 17:19:09 +03:00
ghorsington 27016a3680 Update build guide 2022-08-14 17:19:09 +03:00
ghorsington 67736092ff Add package descriptions 2022-08-14 17:19:09 +03:00
ghorsington 4695db14a7 CI: Update workflow scripts to work with new args 2022-08-14 17:19:09 +03:00
ghorsington 62329252e8 Remove old tests project 2022-08-14 17:19:09 +03:00
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
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