newman55 / unity-mod-manager

UnityModManager
MIT License
427 stars 100 forks source link

Add support for Linux (and Mac OS) #7

Open jarrard opened 5 years ago

jarrard commented 5 years ago

Just wanting to add this compatibility request here to hopefully one day get this to work under Linux.

Atm I do believe it runs via MONO but there is a small issue that is mentioned in the Nexus bug section page of this mod.

https://www.nexusmods.com/site/mods/21?tab=bugs

It looks like a bug in the zip library Ionic.Zip. When the app tries to unzip the archive, it literally create a directory named "/my/full/path/to/the/mod/folder" as the directory name

jarrard commented 5 years ago

Ok someone pointed out that the reason UMM can't find mods is because everyone names Info.json with a capital I, UMM under Linux will check for a info.json file, this is critical under Linux because things are case sensitive. Rename Info.json to info.json and everything appears to work under Linux now.

SO yes now it works under Linux and Mac, all because of changing a I to a i

newman55 commented 5 years ago

Which emulators are best used for Linux and Mac?

jarrard commented 5 years ago

I'm using KingmakerModLaucher which does it all for me. No need to run any installer gui.

spacehamster commented 5 years ago

I find VirtualBox works well for Linux. I haven't found found a good solution for emulating Mac. Also, KingmakerModLoader doesn't support Mac.

newman55 commented 5 years ago

I meant the emulation of Windows applications on Unix. What about wine? Wine Mac

jarrard commented 5 years ago

KingmakerModLoader doesn't support Mac.

Hmmm, does mac not use the same unity engine dll's or same game version or something?

I don't see why it wouldn't work.

spacehamster commented 5 years ago

@jarrard I didn't keep the exact error log, but it cause exceptions when the game tries to create new GUID's, likely due to the way KML inserts itself into the game by replacing/wrapping the built-in random number generator. @newman55 If your asking in the context of unity mod manager, I was able to get it running on Linux and Mac using mono. I don't really know much about wine. Specifically mono UnityModManger.exe for Linux mono32 UnityModManager.exe for Mac

Tyler-IN commented 5 years ago

Need to show the logs from attempting to run KML/UMM on a Mac... Anyone able to do that?

If it's faulting on the pass-through RNG... well, that'd be pretty damned weird.

Edit; As for emulating Mac OS X ... VMWare Player, EFI bios mode, Hackintosh... I think there's some VMX files floating around. I also see a guide on how to accomplish the same for VBox.

Edit 2; If it's related to Ionic.Zip, that's unrelated to the RNG. With KML, all of the assemblies were moved outside of the game directory, link against the unmodified game libs, and the assemblies provided by KML or packaged with the mods... so any Ionic.Zip type dependency in a different assembly doesn't interfere with the Ionic.Zip.Reduced assembly.... though I think I ended up redirecting to the game's Ionic.Zip.Reduced? Not sure.

Really wish I had more time to put back into this, I have only been managing to squeeze in some casual games here and there on weekends; when I'm feeling productive on the weekends I end up putting in work on job stuff as an investment in reducing stress during the week, there's just so much that needs to be done to get things oiled to the point that the day to day isn't stressful and irritating.

spacehamster commented 5 years ago

@Tyler-IN So installed it again, and i think the issue was that I had KingmakerModLoader.dll installed in the wrong folder. I had it installed in ~/Library/Application Support/Steam/steamapps/common/Pathfinder Kingmaker/Kingmaker.app/Contents/KingmakerModLoader/KingmakerModLoader.dll and was getting this error https://pastebin.com/xFgYmhJt

After moving it to ~/Library/Application Support/Steam/steamapps/common/Pathfinder Kingmaker/KingmakerModLoader/KingmakerModLoader.dll the error is now this https://pastebin.com/PewuvC9g

Tyler-IN commented 5 years ago

It's the version of the System.Drawing I used. 🤷‍♂️ Probably can replace it with a different, Mac friendly library. I don't think UMM even needs/uses such a library. Feel free to replace that library. You can try removing the other KMM mods and see if it loads w/o initializing the System.Drawing library, it can probably still load UMM mods.

Not related to the method of injection, though.

Unity Doorstop appears to be windows-only out of the box due to it's use of __ImageBase. Could have used a cross-platform method of getting the entry module's load address, sheesh. Oh, and it also relies on hooking windows libraries... ok so yeah it's really windows-only.

old-mibmo commented 3 years ago

Any updates on this?

jarrard commented 3 years ago

no, you'll have to keep using mono for now. Which works.

old-mibmo commented 3 years ago

Some of the time, yeah.

I did get it to work after a lot of tinkering and copying files, but it seems to be finiky on a per-game basis.

ghost commented 2 years ago

Are we there yet?

newman55 commented 2 years ago

@Auraculum2 Works over mono, but font is not displayed on some builds.