Cloudef / ModEngine2

Runtime injection library for modding Souls games. WIP
MIT License
34 stars 1 forks source link

Instructions are needlessly destructive & EML is not needed #23

Open ividyon opened 1 month ago

ividyon commented 1 month ago

Hi, I finally got around to actually using this with my Deck to install our ERR mod. I made a few findings:

As a side note: Proton issues have plagued ME2 for a while, leading to incomplete support for asset loading and other bugs. The latest Proton Experimental seems to have resolved this entirely. Modded ELDEN RING is now flawless in Deck, excluding vanilla's lack of 16:10 support.

Cloudef commented 1 month ago

You can use the -p command line option to provide a relative path to the eldenring.exe. This lets you keep ME2 somewhere nice and tidy, separate from your game files, instead of messing with them. It should still be within the Proton prefix for the game, so within the ELDEN RING folder, but it doesn't even have to be in the Game folder.

This only works if you use ME2 binary.

Elden Mod Loader is completely unnecessary as well. ME2 has always had native DLL-loading capabilities, so people don't strictly need it to run DLL mods. For Reforged, setting up the TOML for DLL support is completely sufficient.

At the time this fork was made, the ME2 loader's hooking method did not work under wine, maybe that's different now. So Elden Mod Loader (which worked under wine, due to using different hooking strategy) was used as a workaround for loading ME2 as a dll.

Kyriella commented 3 weeks ago

Would you be able to provide a new set of instructions to enact these changes? I would be interested in implementing them myself, as I want to keep my Game folder clean.

Edit: After hours of trying, I figured it out a few minutes after posting this. Go figure. I'll post a new comment with the steps that I used in a moment.

Kyriella commented 3 weeks ago

Here's my implementation. Download and extract this into your ELDEN RING folder. You can easily find this with Steam by right-click Elden Ring > Manage > Browse local files. After extracting, add launchmod_eldenring.bat inside the extracted folder as a non-Steam game inside Steam (there's a button to do so on the bottom-left of the window when viewing your Library). Then right click on the new game and click Properties. Under Launch Options, enter WINEDLLOVERRIDES="dinput8=n,b" %command% and close the window.

Next, open launchmod_eldenring.bat in a text editor and change the line starting with .\modengine2_launcher.exe to .\modengine2_launcher.exe -t er -c .\config_eldenring.toml --game-path "/path/to/ELDEN RING/Game/eldenring.exe" substituting the part inside the quotations with the full path to your eldenring.exe (including the surrounding quotations) using Linux file path syntax (as opposed to Windows file path syntax). Then save the file.

At this point, run the custom Steam game we made at the start. Elden Ring should open, but you won't have any saves. However, it's still important to do this so Steam will create a new prefix for our custom game. Close the game. To fix this, there's an issue on the main repository explaining how to fix this problem. They go into depth about how to fix it, but the short version is to use a symlink from the save folder in your newly-created prefix to your actual save folder (or symlink the whole prefix, which is what I did, but it may have knock-on effects, I have no idea). I recommend backing up your main game saves before doing any of this, just in case you switch around arguments or something.

Now everything should be working correctly. Follow your mods' instructions on how to load them with ModEngine2 and you should be good to go!