I'm using dosbox on linux, and I have written a bunch of scripts that do what you seem to have in mind with your dosbox-archive-format. Perhaps you like some ideas of my system, so let me explain:
Games are plain archives. I use 7-zip (http://www.7-zip.org
, free open source) since it has superior compression ratio and is free (as in speech and beer), and is lately getting multiplatform as well.
Inside such archives, there is just the game, plus some control files starting with a colon. (":" is a valid character for filenames on linux) That makes it easy to spot those control files, and since the colon is not valid in DOS, dosbox games can't possibly access them.
The control files are only a few:
":dosbox.conf" contains dosbox settings, but only those that must be changed from my self-chosen defaults. Sometimes it's a single line "core=normal", sometimes it's "cycles=3000" to slow down the game. The point is to have a default config that works well with most games, and store just the problematic settings inside the game archive. That way, I can run the same file on a slow or a fast machine, a windows or linux box, one with hardware MIDI or softsynth, and so on. That default dosbox.conf also mounts the current (also called "working") directory as drive C and the CD-ROM as drive D.
":tools" contains additional tools that can be run. A map editor, a cheat program, or the sound setup, for example. Each program one line, Name first, then a tab, then the DOS command line to start it.
Finally, there is "!start.bat", which must be accessible from DOS, that's why the name starts with "!" instead of ":". For most games, it's just one line: the name of the game's main executable. Sometimes, however, there is more to be done. One game needs a CD image, another one may have some config prompts at startup which I want to skip automatically (see my ADDKEY patch on sourceforge if you like that idea), one might need cwsdpmi loaded first, and so on.
The default dosbox.conf does mounting, as I already said, and then calls !start.bat - no deep magic, but works like a charm.
I plan adding a screen shot in there as well, for the GUI menu.
The menu extracts such a game when it is started, and when the game exits, it searches the game dir for modified files. It compares the time stamp to the time when the game was started, all files modified after that are considered savegames and are zipped up in an extra archive (so you don't have to recompress all 100MB of System Shock over and over again
). Of course, when such a savegame-archive exists, it will be extracted when that game is run next time.
I'd love to show what I've done, but it only works with KDE (on linux, freebsd and other unixens).