dreamer / boxtron

Steam Play compatibility tool to run DOS games using native Linux DOSBox
https://luxtorpeda.gitlab.io/
GNU General Public License v2.0
406 stars 5 forks source link

installing the tool #1

Closed omicron-b closed 5 years ago

omicron-b commented 5 years ago

Hello! Thanks for putting this together! On Ubuntu 19.04 (unfortunately I do not remember how I installed Steam) I do not have ~/.local/share/Steam/compatibilitytools.d/ Creating it and installing steam-dos there, then running Steam did nothing. Installing to ~/.steam/root/compatibilitytools.d/ as recommended in Proton readme also did nothing. So I ended up installing it to my library folder where all Proton versions are: /mnt/Data/SteamUbuntu/steamapps/common/steam-dos-0.1 and now I can select DOSBox (native) in drop down menu. However, it does not appear to be working. How can I troubleshoot? I even tried to add

    '2300': {
        'args': ['base/DOOM2.EXE', '-conf base/doom2.conf', '-fullscreen', '-exit'],
    },

to TWEAKS_DB so it would look a bit like doom2.bat:

.\base\dosbox -conf .\base\doom2.conf -fullscreen -exit
exit
dreamer commented 5 years ago

On Ubuntu 19.04 (unfortunately I do not remember how I installed Steam) I do not have ~/.local/share/Steam/compatibilitytools.d/

Ugh, that's surprising. I presumed Steam uses ~/.local/share/Steam/* on all distributions, but keeps ~/.steam/ around for people who installed Steam long time ago, but it might be more complicated than that. Let's find how did you install Steam - what's the output of following commands:

$ which steam
$ apt-cache show steam_latest
$ snap list
$ flatpak list  # might fail due to unrecognized command, no worries

now I can select DOSBox (native) in drop down menu. However, it does not appear to be working.

'args': ['base/DOOM2.EXE', '-conf base/doom2.conf', '-fullscreen', '-exit'],

Try: 'args': ['-conf base/doom2.conf', '-fullscreen', '-exit'], - there's a slight chance it will work, but it might not.

If it won't work, then I bet it's because somewhere in .conf file there is a path that worked for windows version of DOSBox and does not for linux version (because windows paths are case-insensitive). Let's find out:

Open Doom 2 installation dir (right click on game in Steam library -> Properties -> Browse local files). Navigate to that directory using terminal, type command tree and paste the output here. Also, attach file base/doom2.conf so we can compare.

dreamer commented 5 years ago

Another question: do you by any chance use Steam Beta client? Does this directory exist: ~/.local/share/SteamBeta/compatibilitytools.d?

omicron-b commented 5 years ago
$ which steam
/usr/games/steam
$ apt-cache show steam_latest
N: Unable to locate package steam_latest
E: No packages found
$ apt-cache show steam
Package: steam
Architecture: i386
Version: 1:1.0.0.54+repack-5ubuntu1
Multi-Arch: foreign
Priority: extra
Section: multiverse/games
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 4010
Pre-Depends: debconf
Depends: debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.15), libstdc++6 (>= 4.3), libx11-6, xz-utils, libudev1, libxinerama1, libgl1-mesa-dri (>= 17.3) | libtxc-dxtn0, libgl1-mesa-dri, libgl1-mesa-glx, libgpg-error0
Recommends: zenity, libxss1, fonts-liberation, nvidia-driver-libs-i386, xterm | x-terminal-emulator
Suggests: steam-devices
Filename: pool/multiverse/s/steam/steam_1.0.0.54+repack-5ubuntu1_i386.deb
Size: 1311332
MD5sum: 938a29fbdcaa2cd0ad3c60695567d325
SHA1: d6221528564114c0ec91c4699a8206663746d3e2
SHA256: a3436f5dced446fb98f14db559017e55de6c3da12dd60cf5a33d689ea6c39a34
Homepage: http://www.steampowered.com
Description-en: Valve's Steam digital software delivery system
 Steam (http://www.steampowered.com) is a software content delivery system
 developed by Valve software (http://www.valvesoftware.com).  There is
 some free software available, but for the most part the content delivered
 is non-free.
 .
 This package comes with a fairly substantial non-free license agreement
 that must be accepted before installing the software.  If you have any
 opposition to non-free work, please select "I DECLINE" during the package
 installation dialogs.   There are also additional agreements in various
 parts of the application that differ from the original agreement.  In
 other words, pay attention and read carefully if you're worried about your
 rights.
Description-md5: f3396999f5291850ccfadc7534377d19

$ snap list
Name               Version          Rev   Tracking  Publisher         Notes
core               16-2.38.1        6818  stable    canonical✓        core
core18             20190409         941   stable    canonical✓        base
gtk-common-themes  0.1-16-g2287c87  1198  stable    canonical✓        -
obs-studio         23.1.0           439   stable    snapcrafters      -
shotcut            19.04.30         45    stable    meltytech✓        classic
skype              8.34.0.78        66    stable    skype✓            classic
telegram-desktop   1.6.7            715   stable    telegram.desktop  -
xonotic            0.8.2            34    stable    snapcrafters      -
$ flatpak list
Command 'flatpak' not found, but can be installed with:

sudo apt install flatpak

New args did not do it. tree.txt I had to rename files to .txt so Github would accept them doom2.conf.txt - "Launch Doom 2 with classic controls" doom2m.conf.txt - "Play DOOM II: Hell on Earth" MOUSE.CFG.txt - just in case

And yes, I use Steam Beta, but there is no ~/.local/share/SteamBeta/compatibilitytools.d folder.

omicron-b commented 5 years ago

Some progress here. Turns out ~/.steam/root/compatibilitytools.d/steam-dos-0.1 was a success, Steam just did not catch it on first restart, so I was making changes in wrong place. 'args': ['-conf base/doom2.conf', '-fullscreen', '-exit'], - they kinda work, DOSBox starts and config is loaded, but it looks like [autoexec] part is just ignored. I fixed the paths and commands in both .conf files to:

mount C base
C:
DOOM2.EXE
exit

and DOSBox just leaves me at Z: Then I can type above commands just fine and play the game (but without any sound), also with DOOM2.EXE -config MOUSE.CFG

I am not experienced with DOSBox so I tried the first solution to sound issue found in the net - SDL_AUDIODRIVER=pulse, and I had sound in menu, but right after loading a save DOSBox freezed and I had to kill it. Output:

$ SDL_AUDIODRIVER=pulse steam
Running Steam on ubuntu 19.04 64-bit
STEAM_RUNTIME is enabled automatically
Pins up-to-date!
[2019-05-08 07:40:22] Startup - updater built May  2 2019 00:33:17
[2019-05-08 07:40:22] Opted in to client beta 'publicbeta' via beta file
You are in the 'publicbeta' client beta.
[2019-05-08 07:40:22] Verifying installation...
[2019-05-08 07:40:22] Verification complete
['dosbox', '-conf base/doom2.conf', '-fullscreen', '-exit']
DOSBox version 0.74-2
Copyright 2002-2018 DOSBox Team, published under GNU GPL.
---
CONFIG:Loading primary settings from config file /home/svobonas/.dosbox/dosbox-0.74-2.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:none
DOSBox switched to max cycles, because of the setting: cycles=auto. If the game runs too fast try a fixed cycles amount in DOSBox's options.
dreamer commented 5 years ago

OK, try the following ones:

'args': ['base/DOOM2.EXE'],

(type exit after game ends) or:

'args': ['-c', 'mount C base', '-c', 'C:', '-c', 'DOOM2.EXE -config MOUSE.CFG'],

or:

'args': ['base/DOOM2.EXE', '-fullscreen', '-exit'],

or:

'args': ['-c', 'mount C base', '-c', 'C:', '-c', 'DOOM2.EXE -config MOUSE.CFG', '-fullscreen', '-exit'],

Also, can you attach content of file base/dosbox.conf?

dreamer commented 5 years ago

OK, I developed specific tweak for Doom 2, try it out: steam-dos-0.1.zip. I'll merge it to master branch once confirmed.

I can't help when it comes to sound - it might be due to your dosbox configuration in ~/dosbox/.

omicron-b commented 5 years ago

So, I tried testing steam-dos-0.1.zip on Debian stable now and
1) I can confirm Steam installed from Debian repos and updated to beta uses ~/.steam/root/compatibilitytools.d/ , but compatibilitytools.d must be created first 2) The tool does not work on Debian 9.9 because Python3 version is too low.

$ ~/.steam/root/compatibilitytools.d$ python3 --version
Python 3.5.3
$ ~/.steam/root/compatibilitytools.d$ python3 steam-dos-0.1/run_dosbox 
  File "steam-dos-0.1/run_dosbox", line 61
    PID_FILE = f'/tmp/steam_dos_{STEAM_APP_ID}'
                                              ^
SyntaxError: invalid syntax

I will test on Ubuntu 19.04 tomorrow, when I have access to my PC.

omicron-b commented 5 years ago

dosbox.conf.txt

OK, I developed specific tweak for Doom 2, try it out: steam-dos-0.1.zip. I'll merge it to master branch once confirmed.

I did not yet have time to fix my sound issue, but I confirm that the game starts and works fine both with mouse support and classic controls. However game started with mouse support is fullscreen and exits DOSBox automatically, while game started with classic controls is windowed and does not exit DOSBox on quit.

dreamer commented 5 years ago

Yeah, I noticed that as well - fixed version is already pushed to master branch, will be included in next release.

I bought Doom Classic Collection on Steam and am working on general fix, that should make more games work out of the box, without needing tweaks.

About python 3... Debian stable (and Ubuntu 16.04) use Python 3.5. I use (or plan to use) some features introduced in 3.6 and would prefer not to limit myself to 3.5, especially this early in the project. Wel'll see, I haven't decided yet in I should support 3.5.

How about closing this issue and continuing investigation into sound issue in a new one?

dreamer commented 5 years ago

Just released version 0.1.1 - Doom 2 now works out of the box. If the sound does not work for you then create a new issue, please - it might be distro-specific problem.

omicron-b commented 5 years ago

Thanks, now it`s perfect - with autogenerated conf file sound works and even desktop resolution is not changed.

dreamer commented 5 years ago

Great! Next stop: MIDI support :)