mai2/mu3/cm: Integrate UnityDoorstop with segatools (#11)

[UnityDoorstop](https://github.com/NeighTools/UnityDoorstop) is a tool to execute managed code (.NET DLLs) before Unity does, useful for modding frameworks such as BepInEx.

This PR integrates parts of its code into segatools, so loading BepInEx is as simple as adding 2 lines to `segatools.ini`:
```ini
[unity]
targetAssembly=BepInEx\core\BepInEx.Preloader.dll
```

This PR also factors out the Unity path redirection hooks to its own module.

Reviewed-on: Dniel97/segatools#11
Co-authored-by: beerpsi <beerpsi@duck.com>
Co-committed-by: beerpsi <beerpsi@duck.com>
This commit is contained in:
2024-04-15 19:30:28 +00:00
committed by Dniel97
parent 47a65e5e51
commit 4041844ea9
30 changed files with 436 additions and 232 deletions

View File

@ -11,6 +11,8 @@
#include "platform/config.h"
#include "unityhook/config.h"
struct cm_hook_config {
struct platform_config platform;
struct aime_config aime;
@ -19,6 +21,7 @@ struct cm_hook_config {
struct vfd_config vfd;
struct cm_dll_config dll;
struct touch_screen_config touch;
struct unity_config unity;
};
void cm_dll_config_load(