VOGONS

Common searches


First post, by Akuma

User metadata
Rank Member
Rank
Member

Sometime I feel like playing a game in Tandy or CGA-mode 😁

This is easy when it comes to a couple of games, but I'm sure most of you at least have a small pile, like me. Configuration management becomes tiresome at times and I was wondering what kind of solutions are out there.

I've watched a couple of YouTube video's but those made me cry a little 🤣
So I thought it would be better to ask a group of DOSBox diehards.

Specifically: what do you use? why ? and would you recommend it to me ?

Reply 1 of 19, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

It depends on your needs. You can either get a frontend (I guess D-Fend Reloaded is still popular), or set up Windows shortcuts with the -conf switch, as documented in the readme.

Reply 2 of 19, by Wengier

User metadata
Rank Member
Rank
Member

If you do not use a frontend, "dosbox -conf <config.conf>" should help you to specify a separate config file (e.g. config.conf).

Moreover, for DOSBox-X you can also specify the -set option in the command line to force a setting, e.g. "dosbox-x -set machine=tandy -set memsize=32" to force tandy mode with 32MB memory.

Reply 3 of 19, by Akuma

User metadata
Rank Member
Rank
Member
Jorpho wrote on 2020-10-13, 17:13:

It depends on your needs. You can either get a frontend (I guess D-Fend Reloaded is still popular), or set up Windows shortcuts with the -conf switch, as documented in the readme.

Already using the -conf switch, I will dive into D-Fend hopefully I will find something useful 😁

Wengier wrote on 2020-10-14, 03:01:

If you do not use a frontend, "dosbox -conf <config.conf>" should help you to specify a separate config file (e.g. config.conf).

Moreover, for DOSBox-X you can also specify the -set option in the command line to force a setting, e.g. "dosbox-x -set machine=tandy -set memsize=32" to force tandy mode with 32MB memory.

That's a nice feature, unfortunately I do not use DOSBox-X, compiling takes too long for me for it be practical. Thanks though 😁

Reply 5 of 19, by zirkoni

User metadata
Rank Member
Rank
Member

What I like to do on Windows:
For most games I use the default config in %LOCALAPPDATA%\DOSBox

If some game needs different setting that can be changed at runtime in DOSBox, I create a batch script to start the game. The script runs in DOSBox and sets the DOSBox configuration (usually CPU cycles).

If the config needs DOSBox re-start, I create a new game specific DOSBox config-file that includes only the modified setting. Then I start DOSBox with a shortcut that sets multiple DOSBox configuration files (default config + game specific config):

dosbox.exe -userconf -conf "x:\gamedir\dosbox-game-name.conf"

https://youtube.com/@zirkoni42

Reply 6 of 19, by Wengier

User metadata
Rank Member
Rank
Member
Akuma wrote on 2020-10-14, 11:18:
Already using the -conf switch, I will dive into D-Fend hopefully I will find something useful :D […]
Show full quote
Jorpho wrote on 2020-10-13, 17:13:

It depends on your needs. You can either get a frontend (I guess D-Fend Reloaded is still popular), or set up Windows shortcuts with the -conf switch, as documented in the readme.

Already using the -conf switch, I will dive into D-Fend hopefully I will find something useful 😁

Wengier wrote on 2020-10-14, 03:01:

If you do not use a frontend, "dosbox -conf <config.conf>" should help you to specify a separate config file (e.g. config.conf).

Moreover, for DOSBox-X you can also specify the -set option in the command line to force a setting, e.g. "dosbox-x -set machine=tandy -set memsize=32" to force tandy mode with 32MB memory.

That's a nice feature, unfortunately I do not use DOSBox-X, compiling takes too long for me for it be practical. Thanks though 😁

Sure. But just want to let you know that manual compiling is not required. For example, if you use Linux there is Flatpak available. If you use Windows, then there is also the installer.

Reply 7 of 19, by Akuma

User metadata
Rank Member
Rank
Member
jmarsh wrote on 2020-10-14, 12:30:
Akuma wrote on 2020-10-13, 15:58:

I was wondering what kind of solutions are out there.

Batch files and the "config -r (....)" command.

I think this is the one, does this work with the machine parameter ?
Because I'm trying (reading this: https://www.dosbox.com/DOSBoxManual.html#InternalPrograms) and not getting anywhere 🤣

config -set dosbox machine=tandy
config -r

or

 config -r -set dosbox machine=tandy

or

 config -r dosbox machine=tandy

None of them work, what am I doing wrong ?

Reply 8 of 19, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

You either want to run "config -wc" after setting new parameters to save them to the default .conf, or use "config -r -conf <game>.conf" to load a .conf file specific for the game (which is what I prefer because you can make it autostart the game executable, using the autoexec section).

Reply 9 of 19, by Akuma

User metadata
Rank Member
Rank
Member
jmarsh wrote on 2020-10-15, 08:07:

You either want to run "config -wc" after setting new parameters to save them to the default .conf, or use "config -r -conf <game>.conf" to load a .conf file specific for the game (which is what I prefer because you can make it autostart the game executable, using the autoexec section).

I think I found a bug: It does not seem to handle spaces in an absolute path eg:

"/home/user/.dosbox/gamedata/My Game/tandy.conf"  <-- fails 
"/home/user/.dosbox/gamedata/MyGame/tandy.conf "  <-- works

Could you verify ?

Reply 10 of 19, by dr_st

User metadata
Rank l33t
Rank
l33t

Many things (not everything) can be changed inside DOSBox on the fly with built-in interpreter commands. So you can even use it in the batch files that run the games.

I use it to change number of cycles or midiconfig, for example.

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 11 of 19, by Akuma

User metadata
Rank Member
Rank
Member
dr_st wrote on 2020-10-15, 10:35:

Many things (not everything) can be changed inside DOSBox on the fly with built-in interpreter commands. So you can even use it in the batch files that run the games.

I use it to change number of cycles or midiconfig, for example.

Haven't needed it much except for sbtype and cycles, but that midiconfig is nice to switch between fsynth and the MT32emu.

Thanks!

Reply 12 of 19, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
Akuma wrote on 2020-10-15, 09:52:
I think I found a bug: It does not seem to handle spaces in an absolute path eg: […]
Show full quote

I think I found a bug: It does not seem to handle spaces in an absolute path eg:

"/home/user/.dosbox/gamedata/My Game/tandy.conf"  <-- fails 
"/home/user/.dosbox/gamedata/MyGame/tandy.conf "  <-- works

Could you verify ?

This looks like a bug affecting non-windows platforms; DOSBox is adding quotes to arguments that contain spaces but windows is the only platform that requires that nonsense (due to its DOS origins, arguments get passed to new programs as a single string), on other platforms it just makes the arguments invalid.

Reply 13 of 19, by dr_st

User metadata
Rank l33t
Rank
l33t
jmarsh wrote on 2020-10-16, 03:18:

This looks like a bug affecting non-windows platforms; DOSBox is adding quotes to arguments that contain spaces but windows is the only platform that requires that nonsense (due to its DOS origins, arguments get passed to new programs as a single string), on other platforms it just makes the arguments invalid.

It's not that Windows requires anything. In any shell, Windows or Linux (I haven't quite used other OSes), if an argument contains spaces, it must be quoted somehow (or the spaces must be 'escaped'), otherwise how would the interpreter know the difference between an argument with spaces versus the next argument?

It's actually that Windows is more forgiving. In Windows both of the following work:

cd "My Directory\My Subdirectory"

and:

cd "My Directory"\"My Subdirectory"

In Linux, only the first is valid.

Interestingly, too many quotes confuse Windows as well. This:

cd ""My Directory"\"My Subdirectory""


does not work (probably because the consecutive pairs of quotes are parsed as empty strings.

So I think the problem may be that DOSBox adds strings around every individual element in the path, rather than the full path? That would be compatible with Windows but not Linux.

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 14 of 19, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
dr_st wrote on 2020-10-16, 05:46:

In any shell

These arguments aren't being passed to a shell, they're used in a call to execvp().
In the Visual C CRT, execv* is a wrapper around CreateProcess() which takes the entire command line as a single string so arguments must be quoted to delimit them. If quotes are used on other platforms they will be passed unstripped to the target application.

Reply 15 of 19, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
Akuma wrote on 2020-10-15, 09:52:
I think I found a bug: It does not seem to handle spaces in an absolute path eg: […]
Show full quote

I think I found a bug: It does not seem to handle spaces in an absolute path eg:

"/home/user/.dosbox/gamedata/My Game/tandy.conf"  <-- fails 
"/home/user/.dosbox/gamedata/MyGame/tandy.conf "  <-- works

Could you verify ?

Looks fixed by commit r4376.

Reply 18 of 19, by pantercat

User metadata
Rank Newbie
Rank
Newbie
dr_st wrote on 2020-10-16, 05:46:
It's actually that Windows is more forgiving. In Windows both of the following work: […]
Show full quote

It's actually that Windows is more forgiving. In Windows both of the following work:

cd "My Directory\My Subdirectory"

and:

cd "My Directory"\"My Subdirectory"

In Linux, only the first is valid.

Actually in Linux both are valid, as long as you use the Linux dir separator /

cd "My Directory/My Subdirectory"
cd "My Directory"/"My Subdirectory"
cd My\ Directory/My\ Subdirectory

In Linux all three of them are valid.