-
Notifications
You must be signed in to change notification settings - Fork 1
Move mod loader to MonoMod reorg/new HarmonyX #2
Copy link
Copy link
Open
Description
Background
The newest version of MonoMod and HarmonyX support ARM processors; this is critical long-term for supporting Macs because Apple is not intending to keep Rosetta around forever. We had initially planned to help with the update to BepInEx 7 to make this happen, but then we got scope creeped and stonewalled, so we need another solution. This could be a fork of BepInEx or potentially a completely custom solution
Requirements
- ARM compatibility. This is solved by the newer versions of MonoMod/HarmonyX but worth stating explicitly
- No replacement of game files at any point; it should be trivial to launch the game vanilla by changing config only (for Mac and Linux, this looks like running the original executable rather than the wrapper script).
- Binary compatibility with the BepInEx 5 API. This means that plugins and preloader plugins should work, config API should work, Harmony should work, etc. We know that even people in the discord do not follow our guidance accurately so we should be accommodating for the majority of mods just to work even if they didn't pay close attention to what they're supposed to do. Even for HK, we are now starting to see the usage of BepInEx crop up and cause problems, so we cannot ignore it and pretend things will be fine because Big Mod X uses our approach.
- Nice to have - plugins using monomod directly are not broken; ie there is a compatibility layer to bring people to reorg with no effort
- Nice to have - preloader plugins can be written in modern-er .net
Implementation Idea
Just fork BepInEx v5-lts branch and do the monomod/harmony update. It does mean maintaining a fork but it's a super easy approach in theory.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Todo