terrymacdonald / DisplayMagician

DisplayMagician is an open source tool for automatically configuring your displays and sound for a game or application from a single Windows Shortcut.
https://displaymagician.littlebitbig.com
GNU General Public License v3.0
417 stars 17 forks source link

Steam Library no more recognized #317

Open thebaz opened 2 months ago

thebaz commented 2 months ago

Describe the bug I am using Steam beta and since a couple of days the steam Library and its games is no more recognized in Display Magician... It is missing, I cannot even select any game.

I am adding the log files

DisplayMagician-Support-20240630-1718.zip

Wob76 commented 2 months ago

I am having this issue too, Epic Games are showing but not steam, I am using "Steam Families Beta" and it was working fine a couple of weeks ago when I last used a game.

Steam Beta Branch: Steam Families Beta Steam Version: 1719618357 Steam Client Build Date: Sat, Jun 29 10:26 AM UTC -08:00 Steam Web Build Date: Sat, Jun 29 9:20 AM UTC -08:00 Steam API Version: SteamClient021

DisplayMagician 2.5.0.352

terrymacdonald commented 2 months ago

Gah. Sounds like they've updated the steam file formats :(. So annoying when they do that as the whole Steam ecosystem needs to reverse engineer the new changes and then build them into our libraries. Le sigh.

It will be a few weeks before we can get this fixed.

Thanks

Terry

Message ID: @.***

com>

Wob76 commented 2 months ago

Painful, thanks for all your efforts.

thebaz commented 2 months ago

Thanks Terry!

terrymacdonald commented 2 months ago

@thebaz Which Steam Beta are you on? Steam Beta Update, or the Steam Families Beta? I need to know if I have to test both or just one of the two options.

Thanks Terry

thebaz commented 2 months ago

Steam Beta Update... I also tried to revert to normal version without any luck or change

terrymacdonald commented 2 months ago

Thanks @thebaz, that helps.

So after some research Steam have indeed updated to a new Appinfo.vdf file format. This adds a new type of binary object (StringPool) that requires an update to the underlying ValveKeyValue library in order to support it. This is still under development by the amazing ValveKeyValue team here: https://github.com/ValveResourceFormat/ValveKeyValue/pull/99.

I've asked them for some more information on how long it will be before they can release a binary version to Nuget so that I can incorporate it into a new DisplayMagician release. I expect it will be a week or two before it's released, and then I will make a new hotfix version and release it as DisplayMagician 2.5.1.

This is the git branch you can follow along if you want to see where we're up to: https://github.com/terrymacdonald/DisplayMagician/tree/hotfix-steam-beta

TLDR - I can't really do anything more until the upstream library is updated, and some very smart people are working on it now, so hopefully we have a solution soon.

Thanks Terry

thebaz commented 2 months ago

Thank you Terry for the update

thebaz commented 2 months ago

I am trying to find a workaround to this problem but I cannot find a solution... So I did something like this:

image

where "Executable to start" is: D:\SteamLibrary\steamapps\common\Assetto Corsa Competizione\acc.exe

and "Wait until an alternative executable is closed before continuing" is: D:\SteamLibrary\steamapps\common\Assetto Corsa Competizione\AC2\Binaries\Win64\AC2-Win64-Shipping.exe

But the programs started in step 3 are closed after the game is started

What am I doing wrong?

terrymacdonald commented 2 months ago

That should be working. You'll have to create a support zip file for me to see what's going on.

Please go into Settings and change the logging level to TRACE, then try to run that game shortcut. Once it's failed to work, hi back into Settings, then click on the Create Support ZIP File' button, and save the zip file. Come back to this issue in your web browser, and then upload the zip file.

I'll have a look at it to see if I can see what's wrong.

Thanks Terry

On Mon, 1 Jul 2024, 10:16 pm Luca Bassini, @.***> wrote:

I am trying to find a workaround to this problem but I cannot find a solution... So I did something like this:

image.png (view on web) https://github.com/terrymacdonald/DisplayMagician/assets/7090323/44d71b4a-71af-4f94-98b2-c31835d2025c

where "Executable to start" is: D:\SteamLibrary\steamapps\common\Assetto Corsa Competizione\acc.exe

and "Wait until an alternative executable is closed before continuing" is: D:\SteamLibrary\steamapps\common\Assetto Corsa Competizione\AC2\Binaries\Win64\AC2-Win64-Shipping.exe

But the programs start in step 3 are closed after the game is started

What am I doing wrong?

— Reply to this email directly, view it on GitHub https://github.com/terrymacdonald/DisplayMagician/issues/317#issuecomment-2199763222, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLU5LAMKVWTZD7SJ4EBFGTZKET6RAVCNFSM6AAAAABKEGDCGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJZG43DGMRSGI . You are receiving this because you were assigned.Message ID: @.***>

thebaz commented 2 months ago

Here is the zip file DisplayMagician-Support-20240701-2327.zip

terrymacdonald commented 2 months ago

@thebaz Was that a brand new gameshortcut that you did for ACC? Or was it your old ACC shortcut that you changed to run as an Executable?

If it was a changed shortcut, I'm wondering if there was some old settings that are still in there that are causing issues. Can you try a brand new shortcut and try just running ACC without any start programs to see if that works?

Thanks Terry

terrymacdonald commented 2 months ago

BTW - The team at ValveKeyValue are working on the issue: https://github.com/ValveResourceFormat/ValveKeyValue/pull/100

Steam have added a dynamic stringtable as a new data type, so the team are trying to figure out how best to handle that. Could be a couple of weeks until they have a solution that works, and until they have pushed a new version of the library we need.

thebaz commented 2 months ago

It was the old shortcut, but with a new one the problem persists DisplayMagician-Support-20240703-1150.zip

terrymacdonald commented 2 months ago

@thebaz I have no idea why this isn't working, as my version of ACC works fine when I run it in my local copy of DIsplayMagician.

I have just committed a Steam fix that uses the latest ValveKeyValue library that the team have pushed out recently, but it ONLY will work with .Net Standard....meaning that I cannot fix the DisplayMagician 2.5.x branch (main), and instead can only fix the DisplayMagician 2.6.0 branch (develop).

This means adds a massive complication, as I was planning on updating the main NVIDIALibrary code to completely change over to some code taken from Soroush Falahati's NvAPIWrapper.net project, but that code is nowhere near ready for primetime release. This contrasts with the need for a fast release to support the latest Steam beta....

The only solution that I can see is to release an interim DM v2.6.0 shortly with all the fixes so far (new windows installer, .net 8.0, latest libraries, numerous fixes), and then to hold the NVIDIALibrary changes to a later DM v2.7.0. This means I will need to create a release branch where I tweak the code for a v2.6.0 release. This will take a few days.

If I do the v2.6.0 interim release, I will need people to beta test the version until we iron out all of the bugs. I'm hoping to get a beta test version out of v2.6.0 within the next week.

Are you able to test v2.6.0-bet when I release it?

Thanks Terry

Wob76 commented 2 months ago

@terrymacdonald I can put my hand up for testing if you need.

thebaz commented 2 months ago

@terrymacdonald Yes, I'll be able to test the beta version when you eventually release it

terrymacdonald commented 1 month ago

Hi All,

Time for an update.

The fix is in the code and works (also we now support 3rd apps and games added to Steam library too!) but my current hold up is actually in the packaging of the application into a windows installer. I've been testing different ways to do this as the move from .net framework 4.8.1 to .net core 8.0.0 has been a massive change. It has resulted in a completely different set of binaries and dlls and other files being created, as well as a different build process too. This is all taking some time to figure out.

I've gone from a WIXv3 based installer to a windows default installer to an NSIS installer then back to a WIXv4 installer all within the last month. It's necessitated me building a brand new way of handling the desktop background context menu, and even down to which libraries are used within the application. It's been a ton of work.

I'm now down to the last few bugs to iron out, and to finish the new packaging process. I think I should have something ready for everyone to test within the next month (assuming there aren't anymore show stoppers.

My goal is to then send out messages through this issues list to get you all to test some DM v2.6.0 test builds, and then once the major bugs are ironed out I will push out the DM v2.6.0 beta to those users who opted in the beta builds. And then I'll finally push the DM v2.6.0 update to the main user group.

Lastly, I've decided to hold back the NVIDIALibrary update for now until DM v2.7.0 as it requires a LOT more work testing and troubleshooting many errors. The Steam beta client changing file structures has forced my hand here a little bit, so a better NVIDIALibrary will just have to wait for now.

Thanks Terry

thebaz commented 5 days ago

Is there any news on this topic?