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).