tkashkin / GameHub

All your games in one place
https://tkashkin.github.io/projects/gamehub
GNU General Public License v3.0
2.2k stars 131 forks source link

Allow Proton to run GOG/HumbleBundle non-native games #54

Closed neuromancer closed 5 years ago

neuromancer commented 5 years ago

If SteamPlay is avalable, could be a good idea to use it to run install and run non-native GOG/HumbleBundle games. To manually call Proton using the command line, just use this:

https://www.reddit.com/r/linux_gaming/comments/9au2qp/how_do_i_use_proton_via_command_line/

tkashkin commented 5 years ago

@neuromancer It works for some games. Check fd5a0e5 in dev branch.

HadetTheUndying commented 5 years ago

Where do we navigate after telling the app we want to install using Proton? I get met with a filebrowser and i have a folder for Proton but have no idea where to go? Or am I missing something do i still need to run the extractor first then direct it to the exe file for the game? This is for a GOG game

neuromancer commented 5 years ago

GameHub will ask you to select the game executable. If you don't see the files from the game, disable the flags for automatic installation (uncheck \SILENT, \VERYSILENT, etc..) before trying again with Proton

tkashkin commented 5 years ago

@HadetTheUndying what compat tools do you have in install dialog?

compat

Your installer probably did not run successfully. Check #59.

Some installers are failing in silent mode so try to uncheck silent options or use innoextract.

neuromancer commented 5 years ago

Feature request: if GameHub detects that an installer failed (produced no files in the correspondent folder), then it should automatically launch it without any command line. :smile:

tkashkin commented 5 years ago

@neuromancer Fair enough, I'll think how can it be implemented.

HadetTheUndying commented 5 years ago

I got it working it was just acting strange about some games it was already detecting as installed. ALso it wants to run Duke Nukem non-native now which is kinda odd. I ended up manually pointing to the exe files and it started working fine for Proton on the games it was having issues with. I'm using proton for the screen scaling which is super nice to have with my GOG games now too. But yeah the client seems to kinda get confused sometimes i'll try to debug it a bit better than post the output.

tkashkin commented 5 years ago

@HadetTheUndying it will use compat tools if game is not supported on Linux or if game's executable ends with ".exe". You can change game's executable in game properties dialog.

HadetTheUndying commented 5 years ago

Oh I see. It was still launching Dosbox, was just i guess using an extra layer. I just found it a bit odd. Regardless Installers are working now it just wasn't playing nice with some stuff i had already installed I'll get you some debug if i can recreate the bug.

hhirsch commented 5 years ago

On Monkey Island Special Edition when I get the select executable dialog and I look into the directory there is only the setup file. I was expecting it to be extracted so I can select the executable of the game.

tkashkin commented 5 years ago

@hhirsch

hhirsch commented 5 years ago

It is a GOG game. I've just seen that the setup files are also placed in my home directory. I can't find a directory containing the extracted files though.

tkashkin commented 5 years ago

@hhirsch do you have spaces in game install directory? If so, it's #111 and #66.

hhirsch commented 5 years ago

I don't think there are spaces in the install directory. I can not even see extracted files. I've tried several settings for example all off and all on or silent/non-silent, warnings/no warnings. It just silently does stuff and then asks me to select an executable. When the file selector comes up it is pointing at a directory in /tmp/ maybe that is the AppImage directory?

tkashkin commented 5 years ago

@hhirsch post screenshots of:

You can open these directories through game context menu.

neuromancer commented 5 years ago

I have the game to test. @hhirsch You used innoextract, right?

neuromancer commented 5 years ago

I installed "The Secret of Monkey Island™: Special Edition" using innoextract. It works fine. If you have issues, check that you are using a recent version of innoextract, like 1.7.

hhirsch commented 5 years ago

Thank you guys. I appreciate you help!

gamehub gamehub-1

Here I tried several settings but it did not seem to make a difference gamehub-2

hhirsch commented 5 years ago

Just a sec. I will add the directories in a bit.

hhirsch commented 5 years ago

Here the directories. I was expecting one of them containing the extracted files.

gamehub-3 gamehub-4 gamehub-5

tkashkin commented 5 years ago

@hhirsch Any errors in log?

It seems proton prefix is not created. Do you have Proton installed? Try to run any Windows Steam game to update Proton.

hhirsch commented 5 years ago

@tkashkin I don't see a log file. Where it is supposed to be created?

Proton is installed in steam and working great.

neuromancer commented 5 years ago

@hhirsch Can you try disabling the all the options for the installer (silent, no GUI, etc). Some installers will fail if you use them.

tkashkin commented 5 years ago

@hhirsch Run com.github.tkashkin.gamehub --debug in terminal.

hhirsch commented 5 years ago

With --debug still no log. Where is it written to? Does debug work with the AppImage?

tkashkin commented 5 years ago

@hhirsch it's written to stdout. Copy output from terminal or pipe it to file with >.

hhirsch commented 5 years ago

At least one fatal error in there [FATAL 20:38:40.206492] string_strip: assertion 'self != NULL' failed

[DEBUG 20:38:36.018723] Utils.vala:42: [Worker] Download-0c133c17bdd09784a576247441c0b0f9 started
[DEBUG 20:38:36.023789] SoupDownloader.vala:77: [SoupDownloader] Downloading CENSORED
[DEBUG 20:38:36.024156] Utils.vala:44: [Worker] Download-0c133c17bdd09784a576247441c0b0f9 finished
[DEBUG 20:38:36.296839] SoupDownloader.vala:160: [SoupDownloader] Content-Length: 728600
[DEBUG 20:38:36.296927] SoupDownloader.vala:191: [SoupDownloader] '/run/media/henry/da477a4b-f66e-4ad7-a031-8cc89d6276f5/games/gamehub/GOG/Secret of Monkey Island™ - Special Edition, The/setup_monkey_island_1_se_1.0_(18587).exe' exists
[DEBUG 20:38:36.297178] SoupDownloader.vala:110: [SoupDownloader] Downloaded CENSORED
[DEBUG 20:38:36.297674] Utils.vala:42: [Worker] Checksum-828dbe70687951bc5242a1e611f8ff51 started
[DEBUG 20:38:36.299836] Utils.vala:44: [Worker] Checksum-828dbe70687951bc5242a1e611f8ff51 finished
[DEBUG 20:38:36.299987] Utils.vala:42: [Worker] Download-8ebe6c55d92c9611409b0eeee4f96924 started
[DEBUG 20:38:36.301423] SoupDownloader.vala:77: [SoupDownloader] Downloading CENSORED
[DEBUG 20:38:36.301533] Utils.vala:44: [Worker] Download-8ebe6c55d92c9611409b0eeee4f96924 finished
[DEBUG 20:38:36.576127] SoupDownloader.vala:160: [SoupDownloader] Content-Length: 1411479223
[DEBUG 20:38:36.576314] SoupDownloader.vala:191: [SoupDownloader] '/run/media/henry/da477a4b-f66e-4ad7-a031-8cc89d6276f5/games/gamehub/GOG/Secret of Monkey Island™ - Special Edition, The/setup_monkey_island_1_se_1.0_(18587)-1.bin' exists
[DEBUG 20:38:36.576898] SoupDownloader.vala:110: [SoupDownloader] Downloaded CENSORED
[DEBUG 20:38:36.578037] Utils.vala:42: [Worker] Checksum-f2d36521aabc3e1b6e4d0f14adf10e22 started
[DEBUG 20:38:40.031716] Utils.vala:44: [Worker] Checksum-f2d36521aabc3e1b6e4d0f14adf10e22 finished
[DEBUG 20:38:40.032193] Utils.vala:85: [Utils.run] {'chmod' '+x' '/run/media/henry/da477a4b-f66e-4ad7-a031-8cc89d6276f5/games/gamehub/GOG/Secret of Monkey Island™ - Special Edition, The/setup_monkey_island_1_se_1.0_(18587).exe'}; dir: '/home/henry'
[DEBUG 20:38:40.032228] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
[DEBUG 20:38:40.056869] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 20:38:40.056961] Utils.vala:85: [Utils.run] {'/home/henry/.steam/steam/steamapps/common/Proton 3.16/proton' 'run'}; dir: '/home/henry/Games/GOG/Secret_of_Monkey_Island_Special_Edition,_The'
[DEBUG 20:38:40.056997] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
Proton: No compat data path?
[DEBUG 20:38:40.173145] Utils.vala:44: [Worker] Utils.run_thread finished
[DEBUG 20:38:40.173602] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 20:38:40.173689] Utils.vala:85: [Utils.run] {'/home/henry/.steam/steam/steamapps/common/Proton 3.16/dist/bin/wine' 'wineboot'}; dir: '/home/henry/Games/GOG/Secret_of_Monkey_Island_Special_Edition,_The'
[DEBUG 20:38:40.173741] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
[WARNING 20:38:40.189167] Utils.vala:92: [Utils.run] Kindprozess »/home/henry/.steam/steam/steamapps/common/Proton 3.16/dist/bin/wine« konnte nicht ausgeführt werden (Datei oder Verzeichnis nicht gefunden)
[DEBUG 20:38:40.189335] Utils.vala:44: [Worker] Utils.run_thread finished
[DEBUG 20:38:40.190035] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 20:38:40.190128] Utils.vala:85: [Utils.run] {'/home/henry/.steam/steam/steamapps/common/Proton 3.16/dist/bin/wine' 'winepath' '-w' '/home/henry/Games/GOG/Secret_of_Monkey_Island_Special_Edition,_The/_gamehub_game_root'}; dir: '/home/henry/Games/GOG/Secret_of_Monkey_Island_Special_Edition,_The'
[DEBUG 20:38:40.190188] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
[WARNING 20:38:40.206149] Utils.vala:92: [Utils.run] Kindprozess »/home/henry/.steam/steam/steamapps/common/Proton 3.16/dist/bin/wine« konnte nicht ausgeführt werden (Datei oder Verzeichnis nicht gefunden)
[DEBUG 20:38:40.206329] Utils.vala:44: [Worker] Utils.run_thread finished
[FATAL 20:38:40.206492] string_strip: assertion 'self != NULL' failed
[DEBUG 20:38:40.206563] Wine.vala:275: '/home/henry/Games/GOG/Secret_of_Monkey_Island_Special_Edition,_The/_gamehub_game_root' -> '(null)'
[DEBUG 20:38:40.207143] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 20:38:40.207239] Utils.vala:85: [Utils.run] {'/home/henry/.steam/steam/steamapps/common/Proton 3.16/proton' 'run' '/run/media/henry/da477a4b-f66e-4ad7-a031-8cc89d6276f5/games/gamehub/GOG/Secret of Monkey Island™ - Special Edition, The/setup_monkey_island_1_se_1.0_(18587).exe'}; dir: '/run/media/henry/da477a4b-f66e-4ad7-a031-8cc89d6276f5/games/gamehub/GOG/Secret of Monkey Island™ - Special Edition, The'
[DEBUG 20:38:40.207300] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
Proton: No compat data path?
[DEBUG 20:38:40.336604] Utils.vala:44: [Worker] Utils.run_thread finished
[DEBUG 20:38:40.337177] Utils.vala:85: [Utils.run] {'chmod' '+x' '/run/media/henry/da477a4b-f66e-4ad7-a031-8cc89d6276f5/games/gamehub/GOG/Secret of Monkey Island™ - Special Edition, The/setup_monkey_island_1_se_1.0_(18587)-1.bin'}; dir: '/home/henry'
[DEBUG 20:38:40.337267] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
[DEBUG 20:38:40.362112] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 20:38:40.362326] Utils.vala:85: [Utils.run] {'file' '-bi' '/run/media/henry/da477a4b-f66e-4ad7-a031-8cc89d6276f5/games/gamehub/GOG/Secret of Monkey Island™ - Special Edition, The/setup_monkey_island_1_se_1.0_(18587)-1.bin'}; dir: '/home/henry'
[DEBUG 20:38:40.362450] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
application/octet-stream; charset=binary
[DEBUG 20:38:40.416548] Utils.vala:44: [Worker] Utils.run_thread finished
[FATAL 20:38:40.437039] [GLib-GIO] g_file_query_exists: assertion 'G_IS_FILE(file)' failed
[FATAL 20:38:40.546060] [Gtk] gtk_file_chooser_set_file: assertion 'G_IS_FILE (file)' failed
Entity: line 120: parser error : attributes construct error
    <chunk id="118" from="1237319680"
                                     ^
Entity: line 120: parser error : Couldn't find end of Start Tag chunk line 120
    <chunk id="118" from="1237319680"
                                     ^
Entity: line 120: parser error : Premature end of data in tag file line 1
    <chunk id="118" from="1237319680"
                                     ^
[DEBUG 20:39:23.358635] Utils.vala:44: [Worker] Updating finished
tkashkin commented 5 years ago

@hhirsch

Kindprozess »/home/henry/.steam/steam/steamapps/common/Proton 3.16/dist/bin/wine« konnte nicht ausgeführt werden (Datei oder Verzeichnis nicht gefunden)

Proton is not installed. You need to run any Windows game with this Proton version in Steam client for it to download.

hhirsch commented 5 years ago

Oh. I think it depends on all kind fo 32 bit libraries in my system. I think I'll install proton locally on this machine and see if I can also install the 32 bit deps.

(com.github.tkashkin.gamehub:28268): Gtk-WARNING **: 21:19:01.921: gtk_window_set_titlebar() called on a realized window
Proton: No compat data path?
ERROR: ld.so: object '/tmp/.mount_GameHuB4DJZY/usr/optlib/exec.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/tmp/.mount_GameHuB4DJZY/usr/optlib/exec.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
001f:err:module:load_builtin_dll failed to load .so lib for builtin L"winebus.sys": libudev.so.0: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
001f:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\WineBus": c0000142
0012:err:service:process_send_command service protocol error - failed to write pipe!
000d:fixme:service:scmdatabase_autostart_services Auto-start service L"WineBus" failed to start: 1114
0023:err:winediag:gnutls_initialize failed to load libgnutls, no support for encryption
ERROR: ld.so: object '/tmp/.mount_GameHuB4DJZY/usr/optlib/exec.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
002d:err:module:load_builtin_dll failed to load .so lib for builtin L"l3codeca.acm": libmpg123.so.0: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
002d:err:winediag:gnutls_initialize failed to load libgnutls, no support for encryption
002d:err:module:load_builtin_dll failed to load .so lib for builtin L"mp3dmod.dll": libmpg123.so.0: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
ERROR: ld.so: object '/tmp/.mount_GameHuB4DJZY/usr/optlib/exec.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
wine: configuration in '/home/henry/.wine' has been updated.
Proton: No compat data path?

(com.github.tkashkin.gamehub:28268): Gtk-WARNING **: 21:19:19.394: gtk_window_set_titlebar() called on a realized window
Proton: No compat data path?
ERROR: ld.so: object '/tmp/.mount_GameHuB4DJZY/usr/optlib/exec.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/tmp/.mount_GameHuB4DJZY/usr/optlib/exec.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
0020:err:module:load_builtin_dll failed to load .so lib for builtin L"winebus.sys": libudev.so.0: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
0020:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\WineBus": c0000142
0012:err:service:process_send_command service protocol error - failed to write pipe!
000d:fixme:service:scmdatabase_autostart_services Auto-start service L"WineBus" failed to start: 1114
Proton: No compat data path?
hhirsch commented 5 years ago

What does No compat data path mean?

tkashkin commented 5 years ago

@hhirsch it means that Proton prefix is not created correctly. Try to remove _gamehub directory from game installation directory and try again.