VOGONS


First post, by XulChris

User metadata
Rank Member
Rank
Member

I was thinking it would be a nice addition to allow config options on a per-game basis. Perhaps you could add a directory entry in the .conf file and then specific settings for any file run within that directory. For example:

[/home/chris/dos/C/HHMACK]
cycles=400

would set the cpu cycles to 400 when I run a program in the specified directory (in this case hard hat mack)

Reply 1 of 10, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The internal dos has no idea what the full name of games are and why am i even answering this, just make game specific config files 😀

Reply 2 of 10, by XulChris

User metadata
Rank Member
Rank
Member
Harekiet wrote:

The internal dos has no idea what the full name of games are and why am i even answering this, just make game specific config files 😀

BEcause you have to restart dosbox with each new game in that case and specify a different config file each time you want to play a certain game which means you have to remember which games require specific config files.

Wouldn't it be possible to modify the CD command to check per-directory configs speicified in a single config file?

Reply 3 of 10, by taiken7

User metadata
Rank Member
Rank
Member

An easier alternative is to add shell-specific commands
such as SET_EMS=NO, SET_EMS=YES,
SETMEM=MEMsize,SET_CYCLES=400 etc.

Then write a per game batch file.

----8<----------------- Proof of concept:

ie. Look for the declaration (in \src\SHELL\shell_cmds.cpp)

void DOS_Shell::CMD_SET(char * args) {
[then look for]
...
if (!p) {
if (!GetEnvStr(args,line)) WriteOut(MSG_Get("SHELL_CMD_...
WriteOut("%s\n",line.c_str());
} else {
*p++=0;
[add here:]
////////////////////////////////////////////////
if (strcasecmp(args,"CPUCYCLES")==0)
{
LOG_MSG("Changing cpu-cycles rate = %d",atoi(p));
GFX_SetTitle(atoi(p),-1); // Update window frame
CPU_CycleMax=atoi(p); // cycles = STRING_2_INTEGER(p)
CPU_CycleLeft=0;CPU_Cycles=0; //bad things happen if not
}
///////////////////////////////////////////////
if (!SetEnv(args,p)) {
WriteOut(MSG_Get("SHELL_CMD_SET_OUT_OF_SPACE
...

Now when you type "set cpucycles=12345" at the dosbox prompt and
it sets the cpu to that speed!.
(Now simply write a batch file to set the cycles and run the program).

Reply 5 of 10, by XulChris

User metadata
Rank Member
Rank
Member
Darkfalz wrote:

You can already do this, specifying various config files with the -conf paramater in your shortcuts.

This is silly, you mean to tell me you have 50 different config files and 50 different shortcuts for every dos game you have? The point is to make it simple so you dont have to have multiple config files and just 1 shortcut.

Reply 7 of 10, by War_Tourist

User metadata
Rank Newbie
Rank
Newbie

It's not a file, it's a field in the shortcut. I've got over hundred dos games in my dos folder, many with arcane and unalterable install paths. Using shortcuts I can have the game automatically launch at the click of a button from the start menu (along with almost 1000 Apple ][ and Amiga images). I don't know about you but I'm nostalgic about the games, but 8.3 command line navigation...

Reply 8 of 10, by DiabloDiab

User metadata
Rank Newbie
Rank
Newbie

Then what do you do when a new "must have" option is introduced in the DosBox config file? Or if you decide to move your games to another folder/drive? Correct hundreds of independent config files/shortcuts to make use of this new setting?

The advantage of being able to change settings live from within a running dosbox is that you can share global settings and only set the ones which the specific game depends on. Furthermore, the settings are kept relative to where you mount your games folder, so that you are free to move your game directory in the host os without having to update more than one config file.

Just my two cents.

Reply 9 of 10, by War_Tourist

User metadata
Rank Newbie
Rank
Newbie

As long as the folders remain the same, it's not be a problem. I just recently migrated all my retrogames from my desktop to laptop and was sync'd immediately after the files finished copying. To each their own I guess..