elishacloud / dxwrapper

Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
zlib License
1.15k stars 82 forks source link

Allow for dxwrapper and its stub to hook through xlive.dll #248

Closed cammy8580 closed 5 months ago

cammy8580 commented 5 months ago

Allowing the project to hook through xlive.dll would greatly be appreciated for games that use GFWL. Ultimate ASI Loader allows for something similar in order to hook into and load ASIs when used.

elishacloud commented 5 months ago

I don't have the ability to test this right now, but here is a stub for XLive.dll that can be used to load the dxwrapper.dll files: XLive.zip

Let me how this works for you.

cammy8580 commented 5 months ago

Thanks for making it! unfortunately, games such like GTAIV launch with this error. image

I remember that games using GFWL doesn't tend to do too well with xlive.dll replacements unless it has stuff to partially replace the Xlive calls. I think if proper xlive support were to be enacted, it would have to potentially implement XLiveLess in some fashion. It's a big ask, but it would help a lot for implementation under GFWL. You could probably take a look at the code for UAL, since that has the feature implemented.

elishacloud commented 5 months ago

Ok, try this one. I added support for the missing ordinals: XLive.zip

I am hoping I can just pass the functions back to xlive.dll. I don't really have time to do all the things that UAL does with XLive.

elishacloud commented 5 months ago

I found out that some versions of xlive.dll have no named exports and games only ordinals. The last dll may not work in that case. Here is a new dll that should work for this: XLive.zip

Please let me know how this works for you.

mirh commented 5 months ago

I don't really see any point here. There are whole projects dedicated to this (and with good reasons considering it should also be supposed to handle drm IIRC), and in turn I hate the always-present low key implication that it's a useless broken dll, as if you didn't just have to update GFWL to still be able to play with it.

elishacloud commented 5 months ago

I am just using xlive.dll as a stub to load dxwrapper. I am not trying to add or take away any xlive functionality. That is completely different from what XLiveLessNess is trying to do.

elishacloud commented 5 months ago

@cammy8580, did you ever try with the latest xlive.dll stub to see if that works for you?

cammy8580 commented 5 months ago

@cammy8580, did you ever try with the latest xlive.dll stub to see if that works for you?

Hey! Sorry for the late response, got caught up in some stuff, it seems to load judging by the log, but because there isn't any real place for GFWL saves to be rerouted and no real emulation for it (In the same way XLiveLess/XLiveLessAddon does, NOT XLiveLessNess,) TBOGT/TLAD are unplayable, and the game does not save seemingly. I think it would probably just be best to stick with an ASI method for games like this or including the projects mentioned above. (Preferably the first option, ASI loading seems to work)

elishacloud commented 5 months ago

Are you saying that the dxwrapper xlive stub breaks parts of the game, or is the game already broken?

I am just wondering if there is an issue with the xlive stub or if it is working fine just not fixing an existing issue.

cammy8580 commented 5 months ago

Are you saying that the dxwrapper xlive stub breaks parts of the game, or is the game already broken?

I am just wondering if there is an issue with the xlive stub or if it is working fine just not fixing an existing issue.

It breaks part of the game because it doesnt have proper GFWL emulation. Potentially adding XLiveLess/XLiveLessAddon wouldn't be a bad idea for the stub, or potentially coding your own way to emulate it to an extent.

elishacloud commented 5 months ago

Potentially adding XLiveLess/XLiveLessAddon wouldn't be a bad idea for the stub, or potentially coding your own way to emulate it to an extent.

I have no plans for this. I removed the xlive stub because it seems like without the functionality of XLiveLess/XLiveLessAddon it won't function correctly.

Closing this as not planned.