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

[Solved] Can't run Linux games without compatibility layer #162

Closed
friday opened this issue Jan 7, 2019 · 5 comments
Closed

[Solved] Can't run Linux games without compatibility layer #162

friday opened this issue Jan 7, 2019 · 5 comments
Labels
bug Something isn't working duplicate This issue or pull request already exists probably unfixable

Comments

@friday
Copy link
Contributor

friday commented Jan 7, 2019

GOG has some Linux games, and additionally some of these games are actually Windows or Dos games prebundled with Wine or Dosbox.

I think it's a bit confusing that it always says "Run with compatibility layer". If I disable "Use compatibility layers..." it still says "Run with compatibility layer", but greyed out and deactivated. I think it should say just "Run".

Also, "Properties" for Linux games show an option for "Compatibility layer". There's no "None" in the list.

"Run with compatibility layer" still seems to work for most games for some reason, but not all. You can test this with Bio Menace (free). It's bundled with dosbox and the Linux version doesn't run through GameHub (but running the executable Bio_Menace/start.sh directly works, and the desktop entry runs fine too).

[DEBUG 21:04:03.423598] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
[DEBUG 21:04:03.528859] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
[DEBUG 21:04:03.683778] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 21:04:03.684367] Utils.vala:103: [Utils.run] {'/home/albin/.steam/steam/steamapps/common/Proton 3.16 Beta/proton' 'run' '/home/albin/Games/GOG/Bio_Menace/_gamehub/compat/proton_996510/pfx/drive_c/windows/system32/cmd.exe'}; dir: '/home/albin/Games/GOG/Bio_Menace'
[DEBUG 21:04:03.684488] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
Proton: Missing or invalid openvrpaths.vrpath file! [Errno 2] No such file or directory: '/home/albin/.config/openvr/openvrpaths.vrpath'
Microsoft Windows 6.1.7601 (3.16)

D:\>
[DEBUG 21:04:04.922914] Utils.vala:44: [Worker] Utils.run_thread finished
[DEBUG 21:04:04.923117] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 21:04:04.923160] Utils.vala:103: [Utils.run] {'/home/albin/.steam/steam/steamapps/common/Proton 3.16 Beta/dist/bin/wine' 'wineboot'}; dir: '/home/albin/Games/GOG/Bio_Menace'
[DEBUG 21:04:04.923184] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
[DEBUG 21:04:06.612765] Utils.vala:44: [Worker] Utils.run_thread finished
[DEBUG 21:04:06.613028] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 21:04:06.613078] Utils.vala:103: [Utils.run] {'/home/albin/.steam/steam/steamapps/common/Proton 3.16 Beta/proton' 'run' '/home/albin/Games/GOG/Bio_Menace/start.sh'}; dir: '/home/albin/Games/GOG/Bio_Menace'
[DEBUG 21:04:06.613108] [GLib] posix_spawn avoided (workdir specified) (fd close requested) 
Proton: Missing or invalid openvrpaths.vrpath file! [Errno 2] No such file or directory: '/home/albin/.config/openvr/openvrpaths.vrpath'
[DEBUG 21:04:07.685923] Utils.vala:44: [Worker] Utils.run_thread finished
/home/albin/Games/GOG/Bio_Menace/_gamehub/compat/proton_996510/pfx/dosdevices/d:/dosbox/dosbox_x86_64: error while loading shared libraries: libSDL_sound-1.0.so.1: cannot open shared object file: No such file or directory

GameHub version: 0.12.1
DE: Gnome
Distro: Antergos Linux
Kernel version: 4.20.0-1-ck-skylake

@tkashkin
Copy link
Owner

tkashkin commented Jan 8, 2019

Linux version of Bio Menace works fine with compatibility mode disabled and enabled:

Linux version
[DEBUG 09:33:16.462611] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 09:33:16.462643] Utils.vala:103: [Utils.run] {'/mnt/LinuxStorage/Games/GOG/Bio_Menace/start.sh'}; dir: '/mnt/LinuxStorage/Games/GOG/Bio_Menace'
Running Bio Menace
Starting DOSBox
DOSBox version 0.74
Copyright 2002-2010 DOSBox Team, published under GNU GPL.
---
CONFIG:Loading primary settings from config file dosbox_biomenace.conf
CONFIG:Loading additional settings from config file dosbox_biomenace_single.conf
MIXER:Got different values from SDL: freq 44100, blocksize 512
ALSA:Can't subscribe to MIDI port (65:0) nor (17:0)
MIDI:Opened device:oss
One joystick reported, initializing with 4axis
Using joystick Thrustmaster Thrustmaster TMX Racing Wheel with 4 axes, 13 buttons and 1 hat(s)
Done.
[DEBUG 09:33:20.933240] Utils.vala:44: [Worker] Utils.run_thread finished

Default properties:
image

Forced compatibility and systemwide DOSBox
[DEBUG 09:36:24.420728] Utils.vala:42: [Worker] Utils.run_thread started
[DEBUG 09:36:24.420807] Utils.vala:103: [Utils.run] {'/usr/bin/dosbox' '-conf' '/mnt/LinuxStorage/Games/GOG/Bio_Menace/dosbox_biomenace.conf' '-conf' '/mnt/LinuxStorage/Games/GOG/Bio_Menace/dosbox_biomenace_single.conf' '-conf' '/usr/share/com.github.tkashkin.gamehub/compat/dosbox/windowed.conf'}; dir: '/mnt/LinuxStorage/Games/GOG/Bio_Menace'
DOSBox version 0.74
Copyright 2002-2010 DOSBox Team, published under GNU GPL.
---
CONFIG:Loading primary settings from config file /mnt/LinuxStorage/Games/GOG/Bio_Menace/dosbox_biomenace.conf
CONFIG:Loading additional settings from config file /mnt/LinuxStorage/Games/GOG/Bio_Menace/dosbox_biomenace_single.conf
CONFIG:Loading additional settings from config file /usr/share/com.github.tkashkin.gamehub/compat/dosbox/windowed.conf
MIXER:Got different values from SDL: freq 44100, blocksize 512
ALSA:Can't subscribe to MIDI port (65:0) nor (17:0)
MIDI:Opened device:oss
One joystick reported, initializing with 4axis
Using joystick Thrustmaster Thrustmaster TMX Racing Wheel with 4 axes, 13 buttons and 1 hat(s)
[DEBUG 09:36:27.891030] Utils.vala:44: [Worker] Utils.run_thread finished

image


It seems like it's the same bug as #99, #103 and #112.
It's explained a bit more detailed at #103 (comment).

I don't think that I can do something with it, so I suggest to build GameHub without compiler optimizations.

@friday
Copy link
Contributor Author

friday commented Jan 8, 2019

That fixed it!

I've been building with the Arch gamehub-git package, modified to use the dev branch.
It already has --buildtype=debug, but this worked: #112 (comment)

Now I have an option "Force compatibility mode", which is disabled by default for Linux games and ports. The button also just says "Run" (and does). 👍

Forced compatibility with DOSBox works too, but it probably did before as well (didn't have any global dosbox).

I'll leave it up to you to decide if this should be closed (I suspect it will be). I think this could be better documented to prevent people from falling into the same trap. Perhaps also better packages (#156)

I added "[Solved]" to the title, so others with the same issue can find it more easily until then.

@friday friday changed the title Can't run Linux games without compatibility layer [Solved] Can't run Linux games without compatibility layer Jan 11, 2019
@tkashkin tkashkin added bug Something isn't working duplicate This issue or pull request already exists probably unfixable labels Jan 11, 2019
@tkashkin
Copy link
Owner

I'll leave it up to you to decide if this should be closed (I suspect it will be). I think this could be better documented to prevent people from falling into the same trap.

I'll pin this issue for now.

It can be somehow mentioned in README and/or documented in wiki. I don't know if wiki is discoverable enough though.
Feel free to suggest documentation and edit wiki pages. (I'm bad at documenting and explaining things ¯\_(ツ)_/¯)

@friday
Copy link
Contributor Author

friday commented Jan 12, 2019

It can be somehow mentioned in README and/or documented in wiki. I don't know if wiki is discoverable enough though.

Feel free to suggest documentation and edit wiki pages. (I'm bad at documenting and explaining things ¯_(ツ)_/¯)

In my experience, the wiki is mostly discoverable if you link to it from the readme.

I've been digging a bit, and it seems it's easy to disable debug for C, but not in Vala:
https://stackoverflow.com/a/9044490/633921
https://stackoverflow.com/a/10924514/633921

Will look into contributing documentation changes.

@hogarthj
Copy link

Just for reference the Fedora build in the package repositories has this issue as the Fedora build macros default to -O2

I've opened a bug downstream to request that the maintainer override this: https://bugzilla.redhat.com/show_bug.cgi?id=1733820

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working duplicate This issue or pull request already exists probably unfixable
Projects
None yet
Development

No branches or pull requests

3 participants