Cloudef / ModEngine2

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

Not working with Seamless Co-op & Randomizer #1

Closed RamenFiend closed 2 years ago

RamenFiend commented 2 years ago

X-Post from https://github.com/soulsmods/ModEngine2/issues/58 Including previously posted info:

Hello @Cloudef , I've used your guide & build to attempt installing Randomizer + Seamless Co-Op under Arch w/ Proton Experimental. However, it results in a very similar issue to that described here. Seamless co-op launches fine, however Randomizer appears to not work (judging based on character creation screen) and the game will crash when attempting new character creation or loading a previous save. For the record, I've renamed elden_ring_seamless_coop.dll to seamless_coop.dll and I have the same content as the release notes in my modengine.toml. I have also tried Proton-GE and Proton 7 with the same results. Steam launch command is the same as described in release notes. Randomizer .exe was run with system wine and the application seemed to work fine. I also tried copying the randomizer directory from a Windows VM with no luck. I'll be attaching my logs (although everything seems to be working correctly by looking at them?) and my configs and directory structure. Thanks! mod_loader_log.txt modengine_2022-06-25.log find.txt config_eldenringrandomizer.toml.txt mod_loader_config.ini.txt modengine.toml.txt (.txt extensions added so GH will let me upload them) P.S. there is a slight typo in the release notes, modengine.toml is referenced as modengine2.toml under the "How to use with enemy / item randomizer?" heading.

Still not working with proton-v3 release. No longer crashes after character creation/load, but randomizer still isn't working. I would've x-posted this as an issue to your fork but I don't think issues are enabled on it.

md5sum modengine2.dll
15883ee3c55f1da1858f1677e7933508  modengine2.dll

md5sum eldenring.exe
36d03670099eb4037c5a9546db6cd7a7  eldenring.exe

It appears the US locale .exe is different from yours. For the record, the old (v2) modengine.2 dll:

md5sum modengine2.dll
2c65db279c481d62da31a329466a84ed  modengine2.dll
Cloudef commented 2 years ago

Your file layout looks correct. Can I have latest modengine_<date>.log file with the -v3?

RamenFiend commented 2 years ago

Attaching a new modengine.log for v3: modengine_2022-06-26.log It appears all 3 dlls are getting hooked correctly.

Screenshots of file layout: Screenshot_20220626_083019 Screenshot_20220626_083028 Screenshot_20220626_083037 Screenshot_20220626_083043

Cloudef commented 2 years ago

[2022-06-26 08:12:46.182] [modengine] [warning] Unable to resolve mod path

This is most likely the problem

Though it seems your earlier launches were okay:

[2022-06-26 08:10:44.135] [modengine] [info] Resolved mod path to Z:\home\quinn.local\share\Steam\steamapps\common\ELDEN RING\Game\randomizer

The randomizer should be loaded in this case.

RamenFiend commented 2 years ago

modengine_2022-06-26.log Sorry, last unable to resolve was a result of me attempting some debugging. Check last run in this log.

Cloudef commented 2 years ago

Okay, that looks like everything is fine. What randomizer settings did you use? Can you post the randomizer window.

RamenFiend commented 2 years ago

Basically default settings. Randomizer exe run with system wine. Starting classes, etc unrandomized in-game. Screenshot_20220626_083647 Screenshot_20220626_083955 Screenshot_20220626_084000

Cloudef commented 2 years ago

Ok everything seems fine, not sure why it does not work. The logic should be same to the vanilla modengine regarding to memory scanning. Does other mods work?

Cloudef commented 2 years ago

Also can you check if it's only items that don't get randomized. If enemies get randomized, it might be related to the hardcoded address used for all souls games. (Item randomization works with that)

RamenFiend commented 2 years ago

Okay, yeah. Enemy randomization is working. Grafted Scion was replaced with a troll. The text strings associated with prompts and boss health appear to be broken too, reading ?MapText? and ?NpcName?. Just downloaded Reforged to see if it works fine.

RamenFiend commented 2 years ago

Reforged works I think? I'm not sure what it changes, although the starting classes and Grafted Scion appear the same. It did break the HUD UI though, with nothing appearing.

Cloudef commented 2 years ago

Okay, it might be related to this https://github.com/Cloudef/ModEngine2/blob/feat/overlay-scripting/src/modengine/ext/mod_loader/mod_loader_extension.cpp#L56 which is funny because normal modloader2 has this too. I can check if I can scan this address too later.

RamenFiend commented 2 years ago

Yeah, checked the reforged change notes and the starting talismans aren't present, along with the mod's UI issues. Seems to be the same issue as is affecting randomizer.

Cloudef commented 2 years ago

@Lejaxak what proton are you use btw?

RamenFiend commented 2 years ago

Proton Experimental, although I've tried 7 and latest GE.

Cloudef commented 2 years ago

Ok, I'm using GE. Not sure what's the problem. Is your proton prefix clean? Anything else custom in your setup? Maybe try playing with the load_delay in mod_loader_config.ini. Perhaps elden ring loads some of the stuff before the hooks kick in.

RamenFiend commented 2 years ago

Last install I did was deleting the ER install directory and prefix, then doing a clean install following the provided instructions with no other mods included. I ended up doing an unarchived install of randomizer with UXM and launching through the seamless co-op launcher, which works just fine. I'll play around with the load delay later, and see if that changes anything. Thank you so much for the help with this.

RamenFiend commented 2 years ago

Okay, had some time to experiment with it and this issue is resolved. Decreasing EML load delay to 2500 (down from 5000 default) resolves all the issues. Seems ER was loading before EML could hook the game correctly, like you guessed. For reference I use 2 NVMe drives in RAID for my system, so it may be dependent on I/O throughput. Thank you again for all your help and this excellent modengine fork.