beeradmoore / dlss-swapper

GNU General Public License v3.0
1.73k stars 62 forks source link

[BUG] UBISOFT game not detected #138

Closed HarryKleins closed 1 year ago

HarryKleins commented 1 year ago

Describe the bug DLSS SWAPER does not detect any UBISOFT games

Expected behavior UBISOFT DLSS Compatible games appear in DLSS SWAPER

Thank you

beeradmoore commented 1 year ago

Can you provide any additional info? Ubisoft Connect was added in late 2022 (see #15).

Is Ubisoft enabled in the settings page?

HarryKleins commented 1 year ago

When I click on settings nothing happens.

https://youtube.com/shorts/finAdICxKbo

However, when I uncheck the "Hide games without DLSS" box, it shows me Ubisoft games.

However, there is a problem that does not display my games and especially those that are DLSS compatible like Watch dog Legion

HarryKleins commented 1 year ago

Good morning,

I'm lost. It does not work. I tested version 0.9.15.0 then 1.0.0.0 then version 1.0.1.0

On the other hand in version 9.0.15.0 I manage to go to the settings and UBISOFT is activated. It only offers me 15 games out of the 32 that I own, why?

Also, it does not offer me Watch Dog legion well DLSS compatible yet.

https://i.ibb.co/2sLZVYR/DLSS-Swapper-K5k77wz2tv.jpg

Thank you for your help.

beeradmoore commented 1 year ago

There is a known bug getting to settings (see #119).

I'd recommend not using 0.9.15. 1.0 and 1.0.1 are both ok, 1.0.1 just has an alert at the start because we were testing something else which is unrelated to your problem. When you untick the "Hide games without DLSS" does Ubisoft games show for you in 1.0 or only 0.9.15?

Do you have games installed across multiple drives, and if so are the games you see all on the one drive? It's possible DLSS Swapper isn't going through the library and looking at other drives correctly.

There is a log file that you can get to by opening file explorer and going to %TEMP% and sorting by date modified. It should be called dlss_swapper_{year month day}.log. Are you able to attach that below?

HarryKleins commented 1 year ago

Good morning,

With version 1.0 or 1.0.1.0 nothing is displayed anymore. Desktop and laptop version.

log link: https://www.cjoint.com/doc/23_06/MFfcdG7dEvM_dlss-swapper-20230605.log only UBISOFT errors....

when i uncheck "Hide games without DLSS" the games show up before ubisoft. But not all games.

Games installed on the same disk. After I have steam games, GOG and epic game on another disk I had no problem.

But now when I open version 1.0.0.0 or 1.0.1.0 it runs then 2 minutes after blank page.

Thanks for your help !

beeradmoore commented 1 year ago

Ubisoft does spit out a lot of nonsense, even here. I however don't have this one.

2023-06-05 03:34:32.370 +02:00 [ERR] UbisoftConnectLibrary.cs:204 ListGamesAsync - Error parsing Ubisoft Connect element. (Did not find expected <document end>.)

I also did a test and installed rayman origins on another drive and I was unable to find it in the scan so it looks like two things are broken (but only one for you).

When I can I'll have a look at what file that is parsing and if you are comfortable doing so I'll get you to send that to me so I can see why it is failing to parse it. I'll also see what I can do about reducing the number of Ubisoft errors in the log.

HarryKleins commented 1 year ago

Good morning,

OK, I await your feedback regarding the file. Thanks for your help.

HarryKleins commented 1 year ago

Good morning,

On the exe version of windows nothing is displayed. Versions 1.0.0.0 and 1.0.1.0

https://i.ibb.co/drcP9hR/DLSS-Swapper-pnza-Um-Nd-YT.png

Via the portable version I have access to all steam games, epic game store and GOG.

I can't get Ubisoft games through Uplay. I only have 15 out of 33 and for example Watch dog legion compatible DLSS does not appear.

Unable to access settings.

Thanks for your help !

HarryKleins commented 1 year ago

Good morning,

I come back to you. The installable version 1.0.0.0 or 1.0.1.0 no longer works at all nothing is displayed.

As it is not possible to enter the parameters I do not know if it is a problem of unchecked boxes.

Portable version 1.0.0.0 or 1.0.1.0 is no problem.

However, I still don't have access to my Uplay games...

Too bad because your application is beautiful.

I have a question that I don't know if it's possible or not:

Instead of listing all the games, you won't be able to ensure that when the software is launched, it scans the different hard drives and only searches for games containing a "nvngx_dlss.dll" file? It's a question, I don't know enough about it.

Because I tell myself that if it only searches for "nvngx_dlss.dll" files, it would automatically be compatible with all platforms?

Thanks for your help and explanation.

beeradmoore commented 1 year ago

The first half of this sounds like DLSS Swapper had major errors while loading games. As a precaution it then disables all stores from the settings page so that way on re-launch it won't have those loading issues again and the user can enable them 1 by 1.

For now I would recommend using the portable version as its settings are only contained in itself. If you delete its folder and extract from the zip again nothing is retained from the previous tests. Even its StoredData folder may do the trick (just be sure to close DLSS Swapper instead)

Regarding what you said about the dll. The way DLSS Swapper works is:

The reason not all libraries are supported is because we have not looked into say battle.net to see how its config works, or maybe we weren't able to figure out how it works. Maybe we have found how it works but we have no way to get a game title or cover. It isn't until all of that is discovered that we consider the library supported.

There is another issue reported (#8) for manually adding games. This will be added when we have the new game management page I mentioned in the DLSS3 thread. This feature should then make it compatible with all platforms.

The reason we can't just search the whole hard drive is we don't know a lot of things about the dll when we find it. eg. C:\Games\Stuff\Things\data\nvngx_dlss.dll From this we don't know what the game is, its name is, if it is even a game or maybe a place where the user stores their own dlss dlls, etc.

I hope that makes sense as to how it all works. Any other comments or questions please let me know :)

HarryKleins commented 1 year ago

Good morning,

I hope you're doing well.

I come to you to find out if there is anything new about my problem?

Also, I give an idea would it be possible to make a button that allows to modify all the DLSS at once?

Thanks in advance and have a good day.

beeradmoore commented 1 year ago

Hey @HarryKleins , I have not had time to investigate this unfortunately. I will update you when I know more. Sorry for the delay.

HarryKleins commented 1 year ago

Good morning,

Still the problem with Ubisoft.

Also, Cyberpunk 2077 must be DLSS 3 compatible since the beginning of the year. Why is it offered in DLSS Swapper?

Cyberpunk 2077 bought on GOG GALAXY.

Thank you for your help :)

beeradmoore commented 1 year ago

A little bit of background on DLSS versioning.

DLSS v1 was not compatible with DLSS v2. There is a task around somewhere to go if a game has DLSS v1 don't show any v2+ in the list.

Same goes for v2, you can't drop in DLSS v1, so it should also filter the list.

However games that have DLSS v2 are compatible with games that have DLSS v3 (not to be confused with DLSS 3 which is DLSS + frame generation techniques). So that particular case would not make sense to filter (if the filter existed 😅)

But I think what you are saying is that a CP2077 with DLSS v3 will give you some error or won't let you enable DLSS if you use DLSS v2 in it?

To resolve this the next thing we'd need to figure out is: is this true for all DLSS v3 games OR is it acceptable to say there is no need for DLSS v3 game to be downgraded to v2 (some people do have strong v2 preferences).

And additional complication is we don't track what DLSS came with what game very well. We backup the original file next to where we copy over our one. But if CP2077 goes from DLSS v2 to DLSS v3 then we just only see the in place DLSS file change and we have no knowledge on if that was us, if that was the user outside of DLSS Swapper, or if that was a game update.

If I update Tomb Raider from DLSS 2 to DLSS 3 and then restart the game we currently have no knowledge of the swap and to us it looks like Tomb Raider just had a v3 update. In which case we won't show the v2 options, but that could then be a bad experience for the user or they want to downgrade (although there is a reset option).

So it's easy to make the v1 vs v2 filter, but there is complications adding a v2 vs v3 filter.

HarryKleins commented 1 year ago

so if I understand correctly, it is completely normal that I can install DLSS 2 on a new compatible DLSS 3 (CG 4000)

beeradmoore commented 1 year ago

DLSS 3 and DLSS v3 are two different things. DLSS 3 is the tech involving multiple systems such as frame generation. You can not use frame generation with DLSS v2. DLSS v3 is simply an upgraded DLSS version of DLSS v2. It does not magically add frame generation, but it can improve games DLSS performance.

As far as I know games with DLSS v3 are completely compatible with DLSS v2 and vice versa.

However if a game has DLSS 3 (frame generation) features then I could see why it wouldn't work. CP2077 may be one of these games. If this is true then Spider Man should also break if I put in a DLSS v2 dll.

I haven't been looking but I am not aware of games that come with DLSS v3 but do not have additional features such as DLSS frame generation. May need to make a master list of known games and current DLSS versions.

beeradmoore commented 1 year ago

However if a game has DLSS 3 (frame generation) features then I could see why it wouldn't work. CP2077 may be one of these games. If this is true then Spider Man should also break if I put in a DLSS v2 dll.

Update: Spider-Man Remastered has DLSS 3 but uses DLSS v2.4.12. So DLSS v3 is not a requirement for DLSS 3 frame generation.

Update 2: I was able to use DLSS frame generation in CP2077 with DLSS v3.1.1 (stock), v3.1.13, but also down to v2.5.1 and v2.4.11.

I stopped at a v2.4.11 because if there was going to be a version incompatible with frame generation, I would assume it would be it. Reason being is file size jumps around then and I thought that was for compatibility but appears not.

version size (bytes)
2.4.11 14149736
2.4.12 14171176
2.4.12 (v2) 15076392
2.4.12 (v3) 24002088
2.4.13 25176120
2.5.0 25176104
2.5.1 25179192
3.1.1 36687416
3.1.1 (v2) 36687912
3.1.2 35399736
3.1.11 35385912
3.1.13 35386424
beeradmoore commented 1 year ago

@HarryKleins , thanks for your patience with this issue. I have released v1.0.2 which should now allow you to access settings.

This Ubisoft issue is the next thing I am focusing on but I don't have an ETA of when that will be.

HarryKleins commented 1 year ago

Good morning,

We agree that the French language is not available? If available how to choose it? I couldn't find any options.

The application in .exe works again I was able to choose the different launchers.

On the other hand I still have the problem with Ubisoft no game found and yet watch dogs legion is DLSS compatible.

https://i.ibb.co/5LbM4cF/DLSS-Swapper-6-Gz42m-Gs-Ws.png https://i.ibb.co/Sdf3j1d/explorer-Mbk-INZe-Ubk.png

Edit:

I just realized that when I first run Watch Dogs Legion Via Ubisoft, afterwards it does show up listed in DLSS Sawpper.

On the other hand I never had this problem with steam games, Gog Epic games

https://i.ibb.co/XYW328C/DLSS-Swapper-Wd-HVh-CTg-OG.png

Thanks for your help.

beeradmoore commented 1 year ago

We agree that the French language is not available? Correct. The app is only in English, however because of the framework we use the settings button text may be in French automatically. The problem you had of not being able to get to settings was because when you click a menu option on the left I look for the name of the button clicked. I was expecting "Settings" but computers in another language may have had the button text say "Paramètres".

As for the game not showing up I am looking into how another project detects ubisoft games. Their method is a lot more complicated but I can see how it is more reliable. I am not entirely sure why Watch Dogs suddenly appeared for you though after launching it. I'll keep looking and let you know when there is an update.

HarryKleins commented 1 year ago

Thank you. Do we agree that the application and translation only in English?

beeradmoore commented 1 year ago

That is correct.

One day it would be good to support multiple languages, but that is currently not planned.

beeradmoore commented 1 year ago

Hey @HarryKleins , I've published a pre-release build which has a new way of loading Ubisoft games. Can you let me know if this displays all your Ubisoft games now?

HarryKleins commented 1 year ago

Good morning,

I don't know what you fixed but after uninstalling and installing Watch Dogs Legion it finds it for me immediately without me first launching it.

It also finds me all my other non-DLSS compatible Ubisoft games when I remove the filter only DLSS.

EDIT :

On the other hand, in the logs I always have a lot of errors like: UbisoftConnectLibrary.cs:91 ListGamesAsync - Could not load Ubisoft Connect item.

Do you know what this corresponds to?

Here are the logs: https://www.cjoint.com/c/MGcjfjVuIMs

Thanks again for your help

beeradmoore commented 1 year ago

Yesterday I released v1.0.2 but I also released a v1.0.3 pre-release. The v1.0.3 should improve Ubisoft game detection (https://github.com/beeradmoore/dlss-swapper/releases/tag/v1.0.3.0)

Were you using v1.0.2 or v1.0.3 pre-release for the above information? If not can you please try v1.0.3 and see how that goes for you?

HarryKleins commented 1 year ago

Good morning,

I am using 1.0.3.

THANKS.

beeradmoore commented 1 year ago

Would you be able to share your Ubisoft configurations file? This file does not contain any information about your account or private information. It should just be a list of games+dlc that you own in Ubisoft Connect.

If you are ok sharing it the file should be located at C:\Program Files (x86)\Ubisoft\Ubisoft Game Launcher\cache\configuration\configurations (I wrote from memory so it may be slightly off if I made a typo). It should be possible to upload that file to where you were uploading the other ones.

HarryKleins commented 1 year ago

Here is https://www.cjoint.com/c/MGddgaEAxxs

beeradmoore commented 1 year ago

Thanks. With that file I'll be able to see where those errors are coming from now. I will let you know when I have an update.

HarryKleins commented 1 year ago

Good morning,

Thank you. So I'm waiting for your return :)

beeradmoore commented 1 year ago

Hey @HarryKleins , I had a look at the configuration file you sent through (thanks for providing that!). The initial scan of the games you have access to shows 42 games in your Ubisoft Connect library (not all of these may be installed). Would that be correct? I can post the list here for you to check if you are ok with your list of games being shown publicly.

From this there is a single place we check for installed games but it appears that how Ubisoft Connect works it could be from a number of places.

Are you comfortable with using regedit? (just to look at things, we won't be making changes) If so can you look at the following key HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ubisoft\Launcher\Installs. Under that key It should have various other keys which are just a number.

Eg. Mine just has this because I have 2 games installed. image

In each of these number numbered keys they should have a numbered key called InstallDir. If this is not found in each of those keys we may not be consdering the game to be installed.

Eg. image

What I am thinking is that not all games are listed in the HKEY_LOCAL_MACHINE area but also HKEY_CURRENT_USER. So some may be in HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ubisoft\Launcher\Installs.

Another thing is that the configurations file shows that the keys may be in even more places so I likely have to try parse it better. But there does not seem to be anything common between them.

If I were to take a guess I would say that of the 42 games you have only 23 will show up (if you have "Hide non-DLSS games" unticked in the game page filter options. (I can post what I think these games are as well if you wanted to confirm).

My guess is that also Watch Dogs Legion won't be listed there, but if you look in regedit again at the key HKEY_CURRENT_USER\Software\Ubisoft\WatchDogsLegion it will have subkey of InstallDir which will be where the game is installed. If this guess is correct the I think you have 36 installable games, so 13 are not showing in DLSS Swapper currently.

HarryKleins commented 1 year ago

Good morning,

I have 36 games that are installed here is the photo of the list (in the list there are Ubisoft games bought on steam):

https://i.ibb.co/MNzHVT5/Installer.jpg

List of all my Ubisoft games:

https://i.ibb.co/jD2k8k6/All-my-games.jpg

List of free Ubisoft games:

https://i.ibb.co/LSyspGW/Free.jpg

List of games found by DLSS Swapper (30 games found):

https://i.ibb.co/dczbjFy/DLSS-Swapper.jpg

List registers:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ubisoft\Launcher\Installs

https://i.ibb.co/d7Z5pFc/f-DVox1vb-Ht.png

HKEY_CURRENT_USER\Software\Ubisoft\WatchDogsLegion

https://i.ibb.co/zNzZVM0/regedit-hu-Js8v-Y36m.png

I remain available if needed

beeradmoore commented 1 year ago

Oh, thanks for the screenshots! I'll cross reference what I think I can see and why I can't see others and get back to you when I can.

Have you obtained any games since you sent the configurations file (around July 3rd)?

HarryKleins commented 1 year ago

No, I haven't purchased any other Ubisoft games.

But, I can send the files back to you as a precaution.

I bought steam games.

beeradmoore commented 1 year ago

If you can send that configurations file again. I'll double check it hasn't changed.

HarryKleins commented 1 year ago

voilà : https://www.cjoint.com/data/MGkn5IpIFis_configurations

beeradmoore commented 1 year ago

Hey @HarryKleins , I am back again with another build for you to try. It is not perfect yet. And just as I uploaded, I went and checked something else in it I may be able to improve 😅

https://github.com/beeradmoore/dlss-swapper/releases/tag/v1.0.3.1

There is something I learned from this experience; some Ubisoft games are installed via other platforms. My library has Far Cry Blood Dragon but Ubisoft Connect installs it via Steam. So for that game it should show up in Steam but if the user is expecting it to be in the Ubisoft Connect section then they may be confused where it is.

I should be able to see when there is a mismatch and I should be able to figure out what game it is, but I won't be able to see where it is installed. So in these cases I may put a banner in the games library when the filter is set to "group game libraries together" to say something like "Far Cry Blood Dragon also detected but it appears to be installed by a 3rd party client" or something. I'll also need to improve (/create) some documentation to explain what it means if a game is not found and why it may be in another section.

HarryKleins commented 1 year ago

Hi,

thanks for your return.

Unless I'm mistaken, Ubisoft Connect does not install games via other platforms, it's the other way around.

For example, if you buy Assassin's Creed on steam, you'll see it in Ubisoft Connect (as it's a game published by Ubisoft).

If you install via Ubisoft Connect it will be steam which will install the game (since you bought it from them) and vice versa if you install via steam, you will see in Ubisoft Connect the game installed. But if you launch it via Ubisoft Connect, steam will still launch it.

EDIT :

Far Cry Blood Dragon is well in the ubisoft list for me

https://i.ibb.co/0t9dyS3/DLSS-Swapper.jpg

beeradmoore commented 1 year ago

Oh I see what you mean. Yeah it could be that I see it in Ubisoft Connect because I purchased it on Steam. I wasn't sure how Ubisoft Connect knows, but now you mention it I don't thinking ever purchased a game in the Ubisoft (or UPlay) launcher

Edit: but my blood dragon does not show up in DLSS swapper under Ubisoft, only under Steam (if I have library filter set to group)

HarryKleins commented 1 year ago

Pour moi c'est logique qu'il n'apparaisse pas sous Ubisoft mais bien sous steam Puisque vous l'avez acheté sur steam.

En fait d'après ce que j'ai remarqué, Ubisoft parvient à récupérer ses jeux sur les différentes plateformes. De plus, vous avez besoin d'un compte Ubisoft pour activer les jeux sur Steam.

beeradmoore commented 1 year ago

I think your Blood Dragon is from uplay not steam. Your configurations file looks like this (removed a some info to clean it up a bit),

root:
  name: "Far Cry® 3 Blood Dragon"
  background_image: 019c77593ec41c6bdcf4b53377a04eb6.jpg
  thumb_image: 52fbec0acc65df17878df15abeff2f19.jpg
  start_game:
    offline:
      executables:
        - path:
            register: HKEY_CURRENT_USER\SOFTWARE\UBISOFT\Far Cry 3 Blood Dragon\ExecutableName
          working_directory:
            register: HKEY_LOCAL_MACHINE\SOFTWARE\UBISOFT\Far Cry 3 Blood Dragon\InstallDir
          arguments_register: HKEY_CURRENT_USER\SOFTWARE\UBISOFT\Far Cry 3 Blood Dragon\StartArguments
  uplay:
    game_code: FCBD
    achievements:   f99548307efd7f03266f4ebacf034ff9.zip 
    achievements_sync_id: FCBD

but mine looks like this with steam data riddled all through it.

root:
  name: "Far Cry® 3 Blood Dragon"
  background_image: 019c77593ec41c6bdcf4b53377a04eb6.jpg
  thumb_image: 52fbec0acc65df17878df15abeff2f19.jpg
  start_game:
    steam:
      steam_app_id: 233270
      steam_installation_status_register: HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam\InstallPath
      game_installation_status_register: HKEY_CURRENT_USER\SOFTWARE\Valve\Steam\Apps\233270\Installed
  third_party_platform:
    name: Steam
  uplay:
    game_code: FCBD
    achievements: e082a0b6f47fd1eead24058135ea58a1
    achievements_sync_id: FCBD

I don't know if I purchased it on Steam, or uplay or if I got a key elsewhere and where I put it one of those two, and then uplay became Ubisoft Connect. Likewise I don't know if you got it on Steam and then uplay imported it, or if it was a free game it applied to your account, etc.

I think looking at this data in your case in DLSS Swapper it should show Far Cry Blood Dragon in the Ubisoft Connect category and mine will be down in the Steam category.

Other than that do all your games appear to be loading now?

HarryKleins commented 1 year ago

Good morning,

Yes, I did buy the game from Ubisoft.

Yes, the games are loading correctly.

You can see if you purchased the game on Steam.

To view transaction history in the Steam Launcher:

• Launch Steam and select your Steam name in the upper right corner of the screen. • Choose Account Details from the drop-down menu. • In the Purchase and Store History section, select View Purchase History. You will now see your complete transaction history.

https://static.ubi.com/0071/First_Parties/000026586_engb_PurchaseHistory.png

beeradmoore commented 1 year ago

Oh thanks for that. I can see that I pre-ordered it on Steam in April 2013 (happy 10 years Blood Dragon!)

At some point my Steam account was linked to my Ubisoft account (https://account.ubisoft.com/en-GB/account-information) so I assume that's how it knows about the games.

Thanks a lot for your help in getting this resolved! it is very much appreciated.

I am closing this issue for now and am going to make some new issues about improving documentation and in app info to help people in future.