dreamer / boxtron Goto Github PK
View Code? Open in Web Editor NEWSteam Play compatibility tool to run DOS games using native Linux DOSBox
Home Page: https://luxtorpeda.gitlab.io/
License: GNU General Public License v2.0
Steam Play compatibility tool to run DOS games using native Linux DOSBox
Home Page: https://luxtorpeda.gitlab.io/
License: GNU General Public License v2.0
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
This is a follow-up issue to for feature request from Discord; @microsofttakeover
Not for all games as it could result in confusion for people accustomed to old, default controls - but specifically for FPS games this would be a very welcome addition.
Some FPS titles already come preconfigured with modern control schemes (e.g. Doom), but many don't (e.g. HeXen, Heretic).
For some titles I will refuse to implement this, even when it's technically easy and possible (I suspect Descent might be one of such games).
When possible, this should be achieved through editing user configuration (on first run only) - using similar mechanism as midi_on/midi_off. For some games, we might need to provide custom dosbox keyboard mappers (I think e.g. for Wolfenstein 3D - which requires 2 keys pressed to strafe).
I suggest following scheme:
This depends on Steam adding support for compatibility tool lookup in system-wide locations. I created a feature request here: ValveSoftware/steam-for-linux#6310.
The game itself starts just fine but the controller is unusable. It seems that buttons are mixed up and joystick axes are wrong, and the joystick keeps pulling in one direction. There's a similar report on another game here: #50. I tried both stock dosbox and dosbox-staging. The controller works correctly when I launch the game via Proton (but then I have no music, hence I'm trying to use boxtron).
I've now extensively tested this with boxtron / dosbox / dosbox-x. Within dosbox-x and dosbox, I can run the DFORCEDH.EXE program, and set the mouse control, save and exit, and then launch DARK.EXE and have a crosshair and can look up / down.
On the other hand, if I then try to launch (from the same Game directory as the Steam install) with Boxtron, it stomps over whatever change there is, and breaks mouse look. Though somehow the crosshair hack remains.
With copying out boxtron's configuration and tweaking it so it first launches DFORCEDH.EXE in case I broke it by playing through Steam, then it will launch DARK.EXE with the patch.
So included is the script, config file, the dehacker utility, and the config file used (mostly the same as the one generated by boxtron, but copied the mount and run commands over).
SWDF.zip
I can't seem to be able to disable aspect correction or change the sound sample rate. Setting the corresponding options to desired values in both the "original" windows config file for the game and the boxtron_gameid_hash.conf has no effect, boxtron_auto.conf always ends up containing aspect=true.
Not sure if this requires a change in boxtron to resolve, or if this issue just needs a documentation update to warn/notify users.
But I have found on several systems over the last 6-8 months that new versions of Steamplay/Proton do no appear in Steam compatibility section while Boxtron is installed.
I use Boxtron installed for a single user on Ubuntu (various versions, recently 19.10).
As a workaround I have found that simply removing Boxtron from the compatability folder while steam is closed, then opening steam is enough to allow Steamplay/Proton to update. Example:
'mv ~/.steam/root/compatibilitytools.d/boxtron ~/'
Then once updated I can re-add Boxtron and it continues to work fine. Example (after above):
'mv ~/boxtron ~/.steam/root/compatibilitytools.d/'
When I start the game, boxtron says that the game is not recognized as dosbox compatible.
Same problem for "prisoner of ice" (the sequel)
I can't manage to get Boxtron to open DOSBox-X and run games.
Here is my ~/.config/boxtron.conf
(deck@tylerj-steamdeck .config)$ cat boxtron.conf
[confgen]
# Set this value to 'true' if you want Boxtron to re-create DOSBox
# configuration on every run.
force = false
[midi]
# You can disable MIDI support here.
enable = true
# Select preferred software synthesiser here.
# Can be either 'timidity' or 'fluidsynth'
synthesiser = timidity
# You can name your preferred MIDI synthesiser here to override the one
# picked by default. If not found then software synthesiser will be
# started as a fallback.
#
# Value is treated as a regular expression using Python syntax, matched
# against the name of a MIDI client (case-insensitive); to list MIDI clients
# connected, use: $ aconnect -l
#
# For example, to match client named 'CASIO USB-MIDI', you can use
# value 'casio'.
#
# You can override this per-game with BOXTRON_USE_MIDI_SEQ environment variable.
#
# use_sequencer =
# Boxtron will look for a soundfont in following directories:
# /usr/share/soundfonts/
# /usr/share/sounds/sf2/
# /usr/local/share/soundfonts/
# /usr/local/share/sounds/sf2/
# ~/.local/share/sounds/sf2/ (or wherever XDG_DATA_HOME points)
# ~/.local/share/soundfonts/ (or wherever XDG_DATA_HOME points)
soundfont = FluidR3_GM.sf2
[dosbox]
# Available modes:
# - screen 0, screen 1, etc:
# The game will use fullscreen on selected screen, without changing
# the native resolution of your display. Mouse will be locked to the screen.
# Default is 'screen 0', which is your primary display.
# You can override this selection per-game with BOXTRON_SCREEN environment
# variable, e.g: 'BOXTRON_SCREEN=2 %command%'
# - desktop:
# The whole desktop area will be used (all displays) with the game centred,
# the native resolution of your displays will be preserved.
# - disabled:
# Start DOSBox in windowed modeby default.
fullscreenmode = screen 0
# Pick the default scaler, that you want to use for all games.
# You can override selection per-game by changing option render.scaler in file
# boxtron_<appid>_<id>.conf in game's installation dir.
# Here's comparison of different scalers: https://www.dosbox.com/wiki/Scaler
scaler = normal3x
# Uncomment following line to specify a different DOSBox build:
# cmd = ~/projects/dosbox/src/dosbox
cmd = flatpak run --filesystem=%install_dir% com.dosbox_x.DOSBox-X
Some games come as Linux native + dosbox "Classic" version, e.g. https://steamdb.info/app/225140/info/ We would like to maintain original Linux version running besides native dosbox.
There's no good way to address it directly in steam-dos (as static "from_os" field points to Windows), but there might be a workarounds; out of the top of my head I can think of two:
This is not a bug in steam-dos, this issue exists to track down which software is responsible and track the fix.
This is annoying issue, that I experience in practically any DOSBox game (when using steam-dos or just native dosbox through Steam) and also in some other games (OpenTTD - only when started through Steam).
To reproduce this bug:
Start a game using dosbox with following options:
[sdl]
fullscreen=true
fullresolution=desktop
output=opengl
(these are defaults for steam-dos)
After the game starts, keep moving mouse towards top-left corner of the screen. At some point cursor will "bounce back" and top side of the screen won't be reachable any more. In FPS games (e.g. Doom) the mouse will simply stop working until you move the mouse significantly towards lower edge of the screen.
This makes DOS games rather unplayable (in action games your controls occasionally don't work, in strategy games parts of UI are unreachable).
Initially I thought it was a DOSBox bug or perhaps SDL bug (because I could reproduce it in OpenTTD), but it doesn't seem to be the case.
I can reproduce this bug in:
I tried and cannot reproduce it in:
Enabling/disabling Steam Overlay does not affect the outcome.
Boxtron
Note: use development version of steam-dos from master branch
The game does not load for a stupid reason: paths in .CUE file included with the game are supposed to be relative to the DOS directory (and that's why you are "supposed to" mount C drive and change directory to e.g. C:\
before invoking imgmount
inside DOSBox), which would imply that those paths are case-insensitive.
In reality in DOSBox those paths are relative to DOS directory, but paths are case sensitive, as on Linux host.
There are 4 ways to fix/workaround this:
Not sure which path to pursue at this point.
Hello,
Great tool.
I just had a bit of stumble trying to make this work for the first time as a new user. The instructions say:
Download and unpack tarball to compatibilitytools.d directory (create one if it does not exist):
$ cd ~/.local/share/Steam/compatibilitytools.d/ || cd ~/.steam/root/compatibilitytools.d/
$ curl -L https://github.com/dreamer/boxtron/releases/download/v0.5.4/boxtron.tar.xz | tar xJf -
I am using Ubuntu 20.04 and neither of these directories existed for me. I therefore created ~/.local/share/Steam/compatibilitytools.d/, put the tool in there and was surprised nothing happened. It was actually only when I searched around and read issue #1 that I thought to try the other install directory -- I had mistakenly understood that either should work and that using the first of the two would be fine.
Maybe it was just me being silly, but in case others make the same mistake perhaps you could rephrase "(create one if it does not exist)" to "(create one if it does not exist -- you may have to try both to see which works for you)" or something?
Thanks again.
This is a bit of a complex issue that I will do my best to describe clearly.
I'm using a laptop with an external gpu, running a dosbox game in steam with boxtron. I'm casting the game to my TV with the steam remote play feature and a steam link.
The game runs fine if I were only to play it on my monitor attached to the gpu.
With egpus it's sometimes recommended to use only the external display and not also render the game on the laptop screen as well, for better performance.
I am finding however, that if I switch off the laptop display in my desktop settings this results in continuous flickering in the cast display of the game on my TV - but not on the monitor attached to the computer/gpu itself. It seems to be caused by my moving the mouse cursor - perhaps related to the steam overlay. If I switch on my laptop screen again, the flickering on the TV stops.
In this way there is instead a few sound/lag glitches, but it is better.
I notice that when the screen is open like this, and I look at the computer, the 'window' of the dosbox game is in fullscreen on the external monitor, but there is an overlap with the edge of the game window extending onto the laptop display as well.
I'm posting this here because I get the flickering problems only when running dosbox games in Steam and casting them, not with other Steam games and casting them. Even though I would expect modern games to be more demanding to play and cast from my computer.
Perhaps someone here knows what this means and if there's anything I can change to correct this? Changing dosbox/boxtron configuration file somehow?
Thank you.
Various games using the SierraLauncher are not compatible with steam-dos.
Games that are currently known to be affected include:
King's Quest Collection
https://store.steampowered.com/app/10100/
https://steamdb.info/app/10100/
Phantasmagoria
https://store.steampowered.com/app/501990/
https://steamdb.info/app/501990/
Phantasmagoria 2: A Puzzle of Flesh
https://store.steampowered.com/app/501970/
https://steamdb.info/app/501970/
Police Quest™ Collection
https://store.steampowered.com/app/494740/
https://steamdb.info/app/494740/
Quest For Glory Collection
https://store.steampowered.com/app/502750/
https://steamdb.info/app/502750/
Space Quest Collection
https://store.steampowered.com/app/10110/
https://steamdb.info/app/10110/
There are probably others.
Did not see any whitelist, are reports needed?
I tested:
HeXen: Beyond Heretic (2360)
HeXen: Deathkings of the Dark Citadel (2370)
Heretic: Shadow of the Serpent Riders (2390)
they all work with no issues with steam-dos 0.2.1 with overlay disabled
with overlay enabled on wide screen (16:9) there are blinking steam pop ups in right bottom corner
get an error that says it is not recognized as dosbox compatible
Attempting to build using aur/boxtron and aur/boxtron-git.
FAIL: test_verify_preconfig (test_preconfig.TestPreconfig.test_verify_preconfig)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/main-builder/pkgwork/src/boxtron/tests/test_preconfig.py", line 44, in test_verify_preconfig
self.assertEqual(preconfig.CHECKSUM, preconfig.__checksum__())
AssertionError: 'c0452d6addcde172b71cac7b339e074f5f13a7ad83f2ee4736d47025dcbc760e' != '17bf9cedc6e694983eb2a49c2add264b0e84c4efd3b1fba307cfcab5e21843e5'
- c0452d6addcde172b71cac7b339e074f5f13a7ad83f2ee4736d47025dcbc760e
+ 17bf9cedc6e694983eb2a49c2add264b0e84c4efd3b1fba307cfcab5e21843e5
I spent a bit of time trying to track down why Duke Nukem 2 won't launch, and I think it's breaking in DosboxConfiguration.__init__()
as self.file_tree.get_posix_path(win_path)
returns None.
The directory structure of the game is a bit odd. It seems to be executed like this:
$ cat Duke\ Nukem\ 2.bat
@echo off
cd "dosbox"
start dosbox -conf "..\NUKEM2.conf" -noconsole -c
exit
The directory is actually Dosbox
and the config is actually ../Nukem2.conf
so there will be case issues to deal with. However, the dosbox configuration file also has relative paths. eg. in the [autoexec]
section:
@echo off
Mount C ".."
C:
cls
Nukem2.exe
exit
The stderr output is:
run_dosbox: generating steam_dos_240180_3eabc2.conf based on ['-conf', '..\\NUKEM2.conf', '-noconsole', '-c']
It seems to just die at that point due to the path issue.
i noticed boxtron is identified by steam as being Proton 4.2
if we look at the file
/home/$USER/.steam/steam/SteamApps/compatdata/2300/version
its identified as
4.2-2
but if we look at
/home/$USER/.steam/steam/logs/compat_log.txt
it is properly identified as
Mapping AppID 2300 to tool boxtron with priority 250
by comparison, proton-GE is recognized correctly
for example:
5.9-GE-5
is this just a limitation of steam or is boxtron compatibilitytools.d somehow marking this information?
is it possible to set this information to be unique for boxtron?
i dont fully understand how steam stores which proton version is selected, so i might just be looking at useless information as a whole.
https://store.steampowered.com/app/371180
https://www.protondb.com/app/371180
n/a
This game is a special case. It has a native Linux version, but also includes the original DOS version as well. This file is called 'noah3dos.exe' in the game's directory which can easily be run with DOSBox directly, but steam-dos doesn't seem to know how to handle it.
When playing MIDI audio through my USB Casio Keyboard, sound continues to play after the DOSBox window is closed.
None.
This pack of games has a launcher like the Sierra games do. It doesn't work with Proton or steam-dos.
https://steamdb.info/depot/238051/
Here's the contents of 'GamePaths.txt, the file that the launcher uses to detect games.
// This file stores the execution paths to the four games included in the throwback pack.
// Please backup this file before attempting to make alterations! Alterations is at your own risk.
// HOW TO USE:
// The four game names in front of the equals sign indicates the game.
// The path after it indicates the path to the games executable RELATIVE to the ThrowBackLauncher's location.
// If for example you had WinROTT and would like to use that instead of the Rise of the Triad included in the pack you would do the following:
// -Put the WinROTT folder in the same directory as the other game's folders.
// If we assume WinROTT's folder is named "WinROTT" and it's executable file is "WinROTT.exe", you would change the RiseOfTheTriad line in this file to be:
// RiseOfTheTriad=WinROTT\WinROTT.exe
// That's it. From then on, selecting Rise of the Triad in the launcher and clicking the "launch this game" button will now launch WinROTT.
// The original paths:
// RiseOfTheTriad=Rise of the Triad.bat
// RiseOfTheTriadExtreme=Extreme ROTT.bat
// BlakeStoneAliensOfGold=Aliens of gold.bat
// BlakeStonePlanetStrike=Planet Strike.bat
// The game executable paths
RiseOfTheTriad=Rise of the Triad.bat
RiseOfTheTriadExtreme=Extreme ROTT.bat
BlakeStoneAliensOfGold=Aliens of gold.bat
BlakeStonePlanetStrike=Planet Strike.bat
Here's the contents of 'Rise of the Triad.bat'
@echo off
cd dosbox
dosbox.exe -conf "ROTT.conf" -noconsole -c
exit
If you need any more information from game files let me know.
Hi, this tool is fantastic (on the one game I've tried with it so far), but I cannot seem to get the Steam Virtual Keyboard ('Open Keyboard' option from the overlay in BPM) to interact with my DOS game properly.
i.e, I am playing Master of Orion II. All controller options seem to work wonderfully, but when I wish to choose a new emporer name, or change the name of a star system upon initial colonization, when the text input window in game is open, if I try and type anything with the steam virtual keyboard, it does not seem to get passed through to dosbox?
I am using Ubuntu, but not the standard dosbox 0.74 package, but an SVN/patched dosbox package from the PPA at https://code.launchpad.net/~i30817/+archive/ubuntu/dosbox-patched
Thanks for this wonderful compatibility tool. The ability to properly utilize the controller and overlay has been wonderful so far!
By default the game runs too fast, making it hard to navigate Geoscape or scroll on tactical map. After changing music to MIDI game works slower for me - just fine. To fix Geoscape when MIDI was off, I changed cpu.cycles
(value fixed 90000
seems to be sweet spot for me). To fix tactical map in-game: when on tactical map press '?' button and set "Scroll speed" to "1".
When in fullscreen, the mouse cursor occasionally stops working when reaching top edge of the screen. [edit] This happens only when starting game through Steam on Gnome, tracked in #7. Problem disappeared in Gnome 3.32
To reproduce:
sudo snap install dosbox-x
Set dosbox.bin
to snap run dosbox-x
in ~/.config/steam-dos.conf
.
… aaand it does not work, but it should.
Posting an issue in relation to our discussion in Discord,
$ timidity -iA
Requested buffer size 32768, fragment size 8192
ALSA pcm 'default' set buffer size 32768, period size 8192 bytes
TiMidity starting in ALSA server mode
ALSA lib seq_hw.c:466:(snd_seq_hw_open) open /dev/snd/seq failed: Permission denied
error in snd_seq_open
Boxtron
I tried to run Tomb Raider I with Boxtron using the dosbox-staging available as a Snap (I'm using Ubuntu 20.10) but doesn't work. Even if I change dosbox.cmd the dosbox-stagin is executed, but not the game.
Hi,
just wanted to let you know that I added boxtron support in v1.0.2 of my linux wrapper script steamtinkerlaunch (or short stl)
https://github.com/frostworx/steamtinkerlaunch
Either enabled inside the gameconfig or simply add a game to the steam category DOSBox to automatically start it with boxtron.
Also planning to add luxtorpeda and roberta support.
Sorry if it is inappropriate to open a issue for this!
The latest release note says:
To accompany this Boxtron release, I prepared an experimental DOSBox build from the dosbox-staging repo. To test it, download the package, unpack it somewhere and configure Boxtron to use it by changing/adding following line in your ~/.config/boxtron.conf:
cmd = ~/<your-path>/dosbox-staging/dosbox
However, if you create your boxtron.conf file with only that line, boxtron will fail to parse it. You need to use:
[dosbox]
cmd = ~/<your-path>/dosbox-staging/dosbox
I already have my own collection of Dos Games. Of course to try it with boxtron-steam setup I would have to add a game as a non-steam game. What syntax do I use for the .desktop file so a game can be used with boxtron? my desktop files when attempting to load with boxtron just complain that a dosbox compatible game is not detected.
Thank-you!
I want to use my own render settings for all games but I don't see a way to do that aside from editing each game's config manually.
This is not a bug in steam-dos, this issue exists to track bug status in DOSBox upstream. I will close this issue as soon as fixed DOSBox version will be released.
Black bars surrounding the game screen do not refresh - causing Steam's FPS counter and Overlay to leave annoying glitches. You can see them here in top-right and bottom-right corner:
This issue is a bug in DOSBox 0.74-2 (current version), and is fixed in DOSBox 0.74-3 (SVN, r4229).
To test it, you can use the latest version of steam-dos (>= 0.3.0), compile the latest DOSBox from SVN (link) and override version used by steam-dos in the settings file (~/.config/steam-dos.conf
):
[dosbox]
bin = ~/path-to-dosbox-svn-source-code/dosbox-code-0/src/dosbox
use_sequencer ='um'
use_sequencer ='um-one'
use_sequencer ='um-one midi 1'
use_sequencer ='UM'
use_sequencer ='UM-ONE'
use_sequencer ='UM-ONE MIDI !'
use_sequencer ="um"
use_sequencer ="um-one"
use_sequencer ="um-one midi 1"
use_sequencer ="UM"
use_sequencer ="UM-ONE"
use_sequencer ="UM-ONE MIDI !"
That's because SteamOS has steam installed natively (not via flatpak), and Boxtron flatpak package works only with Steam installed via flatpak.
I think two fixes are needed:
(1) is fairly trivial, (2) is not. I will start with (1).
Boxtron
None
Cosmo is a bit of an odd game, in that the Steam "game" is three games or three parts. There is then a Dosbox .conf file that, among other things, creates a menu where you choose between the parts. Prior to using your great tool, I would go into the game folder and just type dosbox COSMO1.EXE
for the first part, dosbox COSMO2.EXE
etc, then pressing Alt+Enter to make it fullscreen. I use it with a Logitech Cordless Rumblepad 2. To do that in Cosmo, there is a menu where you press "G" to reconfigure the game, then "J" to set up the joystick and have to do the "top-left, button, bottom-right, button" routine, then play and it all works brilliantly. The one joystick annoyance I normally have is that there are pop-up windows when you hit a "hint globe" that you have to push any key on the keyboard to get rid of, but nothing on the controller will get rid of them. I give all that detail because the controller is not working the same way with your tool. I also have had no issues with the controller and other Steam games.
I played the first level through with the keyboard with absolutely no issues, so aside from the joystick thing, all seems perfect.
The dosbox conf file used (Cosmo.conf) is:
Cosmo_conf.txt
It's called with:
start dosbox -conf "..\COSMO.conf" -noconsole -c
It is only £0.79 at the moment, so if any of the devs, particularly one with a controller with joysticks, would like to have a go, I would happily buy and gift a copy (with no obligations that you make it work any better than it does now).
For downloading official patches or mods that bring back vanilla DOS support to the game user already owns.
First game that needs it is Fallout 1, as DOS support is included in official DOS patch, but not in Steam version out of the box.
None
Game runs well, but no background music plays. Can get background music using proton to run the Windows version of dosbox, but this results in frame rate issues that make it unplayable - these issues are completely solved running through boxtron.
Is there enough crossover between Windows and Linux versions of dosbox that I could find whatever configuration is made on packaged Windows version and copy it over to the dosbox being used through this? If so, where should I look for the relevant config info?
https://store.steampowered.com/app/2280
https://store.steampowered.com/app/2300
anyone tried boxtron with the new forced update?
i refuse to update....sorry
just making this note incase anyone wants to confirm compatibility issues
Boxtron
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.