Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Application wasn't able to open game list, now cannot reinstall #155

Closed
madduffy opened this issue Dec 9, 2022 · 8 comments · Fixed by #157
Closed

Application wasn't able to open game list, now cannot reinstall #155

madduffy opened this issue Dec 9, 2022 · 8 comments · Fixed by #157
Labels
bug Something isn't working

Comments

@madduffy
Copy link

madduffy commented Dec 9, 2022

Describe the bug
May be two bugs...

I was running protonupqt successfully for 2 months but when I went to check for new proton updates today the app would not open the game list when the button was pressed. I rebooted and it was the same. I'm using the dec 8 preview build on my steamdeck.

Next I attempted to remove and reinstall. The discover app aborts the install, complaining about the flatpak having a bad commit signature key with a bad date associated. Removing local data from previous install did not resolve.

To Reproduce
Steps to reproduce the behavior:

  1. Open app

  2. Click 'show games list

  3. Nothing happens

  4. Search app in Discovery, install

  5. See error

Expected behavior
Loads games list for proton selection.

Installs via discovery without error.

Screenshots
N/a

Desktop (please complete the following information):

  • Platform: Steam Deck
  • System: SteamOS 3.4 preview Dec 8
  • Version: ProtonUp-Qt 2.7.6
  • How did you install ProtonUp-Qt?: Discover app store

Additional context
Add any other context about the problem here.

Terminal output

Open the Terminal app and type one of the following commands and press Enter (The app is called "Konsole" on Steam Deck):

If you installed ProtonUp-Qt via Flatpak (Discover on Steam Deck), type:
flatpak run net.davidotek.pupgui2

If you have downloaded the AppImage, navigate to the folder containing the AppImage file and type:
./ProtonUp-Qt*.AppImage

Try to replicate the bug and paste the text output of the command here afterwards.
@madduffy madduffy added the bug Something isn't working label Dec 9, 2022
@madduffy
Copy link
Author

madduffy commented Dec 9, 2022

Installed a bunch of desktop updates via discovery and now installing works. Either that or having steam open during install was the issue.

Still cannot access the game list

@PunkyBust
Copy link

PunkyBust commented Dec 10, 2022

Hello,

Have same problem with show game list, and game detection generally.
It is no more apprear since 1 or 2 weeks, also the tools always appear as unused wthat is false because many of my gameS pointed on GE7-42.
I'm on SteamOS 3.4, install via discover.

20221210_141041
20221210_140211

Seems protonqt has problem with parsing or detection games
The folders location is still the same for compatdata or compatibilitytools.d. it is so strange, I have try many reinstall and clear all steam cache without any improvement.
Also game reinstall give nothing, try all I can to find an solutions on my side.

Thanks lots, for this very usefull tool. Hope this features will come back :)
Have a good day.

@DavidoTek
Copy link
Owner

Thanks for the report.

  • What is shown in the dialog when you press Show game list?
  • Are there any games in the game list and what does it show for compatibility tool, is it empty?
  • Also, what happens if you set a game to GE-Proton7-42 in the game list dialog and close and re-open ProtonUp-Qt? (Do this while Steam is not open.) Will it then display the correct compatibility tool or is it still broken?

Also, for advanced debugging, can you run a command on the Steam Deck and post the text output here?
You can do this by opening the terminal app (called Konsole on Steam Deck), typing following text and pressing Enter on the keyboard afterwards:
cat ~/.local/share/Steam/config/config.vdf | grep -A16 CompatToolMap
This should show a list of games (ids) and compatibility tools.

@sonic2kk
Copy link
Contributor

Sorry, just want to throw my hat into the ring here and say I'm seeing this on Flatpak and from source on my Steam Deck and PC. I even rolled back to a commit from source that I know was working, 8eb0432, and it still shows the same.

I'm on the Steam Client Beta, I wonder if something changed here, but just wanted to say that from source I rolled back to a version that I can say for sure was working but is now apparently not.

@sonic2kk
Copy link
Contributor

sonic2kk commented Dec 11, 2022

I know you weren't asking me so I hope this isn't disruptive, but I did some testing of my own following the guidance you gave. I'll put it in spoilers as to not spam the issue and hide it if it's not useful.

Testing Efforts

On my side the "Show Games List" button results in an error:

Traceback (most recent call last):
  File "/home/emma/Programming/ProtonUp-Qt/pupgui2/pupgui2.py", line 288, in btn_show_game_list_clicked
    gl_dialog = PupguiGameListDialog(install_directory(), self.ui)
  File "/home/emma/Programming/ProtonUp-Qt/pupgui2/pupgui2gamelistdialog.py", line 34, in __init__
    self.setup_ui()
  File "/home/emma/Programming/ProtonUp-Qt/pupgui2/pupgui2gamelistdialog.py", line 47, in setup_ui
    self.update_game_list_steam()
  File "/home/emma/Programming/ProtonUp-Qt/pupgui2/pupgui2gamelistdialog.py", line 68, in update_game_list_steam
    for t in get_steam_ctool_list(steam_config_folder=self.install_loc.get('vdf_dir')):
  File "/home/emma/Programming/ProtonUp-Qt/pupgui2/steamutil.py", line 88, in get_steam_ctool_list
    ctool_map = _get_steam_ctool_info(steam_config_folder)
  File "/home/emma/Programming/ProtonUp-Qt/pupgui2/steamutil.py", line 144, in _get_steam_ctool_info
    for t in compat_tools:
TypeError: 'NoneType' object is not iterable

This happens with both the latest commit and from 8eb0432, which was a known working commit.


That command only showed a little bit of the output from that file (I guess 16 lines given -A16?).

"CompatToolMapping"
{
        "0"
        {
                "name"          "proton_7"
                "config"                ""
                "priority"              "75"
        }
        "524220"
        {
                "name"          "Proton-stl"
                "config"                ""
                "priority"              "250"
        }
        "976730"
        {
                "name"          "proton_experimental"

It looks right to me, the code is also looking for CompatToolMapping with the vdf library. My guess here is that something on the Steam side changed, and the problem here as well is that this change may only affect the Steam Beta? I'm on the Steam Client Beta on my PC, laptop and Steam Deck, and I believe at least one user here was on the SteamOS Preview channel as well. But it's possibly too early to conclude that, I'm just taking this from the fact that even previously working commits exhibit this issue.


Looking into the code now, in steamutil.py, it seems like an exception is being raised in _get_steam_ctool_info. The for loop here never gets triggered, and the except block does:

with open(appinfo_file, 'rb') as f:
    header, apps = parse_appinfo(f)
    for steam_app in apps:
        if steam_app.get('appid') == 891390:
            compat_tools = steam_app.get('data').get('appinfo').get('extended').get('compat_tools')
            break

From digging deeper, more specifically it seems like parse_appinfo is failing. It seems like the steam library was updated, someone noted an issue with a changed format for parse_appinfo and it was fixed with a very new release yesterday: ValvePython/steam#418

@sonic2kk
Copy link
Contributor

After testing I can confirm the issue is with the steam library's version being out of date, possibly related to ValvePython/steam#418.

Updating to v1.4.4 fixes the issue.

@DavidoTek
Copy link
Owner

I know you weren't asking me so I hope this isn't disruptive, but I did some testing of my own

Thanks! That was helpful as I wasn't able to replicate the issue (I haven't updated the Steam client for a few days).

@madduffy
Copy link
Author

madduffy commented Dec 11, 2022

Thanks for the report.

  • What is shown in the dialog when you press Show game list?
  • Are there any games in the game list and what does it show for compatibility tool, is it empty?
  • Also, what happens if you set a game to GE-Proton7-42 in the game list dialog and close and re-open ProtonUp-Qt? (Do this while Steam is not open.) Will it then display the correct compatibility tool or is it still broken?

Also, for advanced debugging, can you run a command on the Steam Deck and post the text output here? You can do this by opening the terminal app (called Konsole on Steam Deck), typing following text and pressing Enter on the keyboard afterwards: cat ~/.local/share/Steam/config/config.vdf | grep -A16 CompatToolMap This should show a list of games (ids) and compatibility tools.

Looks like we are already onto the fix, but for the record the behavior is that nothing happens when you try to open the game list, where normally it would bring up the window with each game and the compatibility options.

Another clue is that I have configured games to use proton-ge-42 but the main window indicates it is unused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants