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 ?
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.
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.
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 😁
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 😁
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):
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 😁
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.
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).
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:
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.
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.
1"/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.
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:
1cd "My Directory\My Subdirectory"
and:
1cd "My Directory"\"My Subdirectory"
In Linux, only the first is valid.
Interestingly, too many quotes confuse Windows as well. This:
1cd ""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.
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.