dominikabra Posted October 25, 2021 Share Posted October 25, 2021 (edited) Disclaimer: This thread aims at providing some useful hints for those who aim at creating/curating their own MS-DOS game collection. It contains MY opinion and suggestions, but as everything in this universe, there's bound to be room for improvement. Regarding the "avoiding vendor lock-in": I own a lifetime license for LaunchBox and plan on using it for a VERY long time. However, only God knows what will happen, so better safe than sorry. Preface: I though I could make a little tutorial with some of the knowledge I've gathered about making your own collection of MS-DOS games to run with DOSBOX and Launchbox (at least, for now). Needless to say, eXoDOS is an unbelievable effort/project that will make your life easier than cutting hot butter if its contents suit you: basically, being an English speaker and accepting the so-called "best version" of a game as the one you would definitely play. If so, you've hit the greatest jackpot. (Almost) all MS-DOS games ready to play and integrated in Launchbox. OK, some of them have missing art, but that's something minor considering the effort eXo and the team have put into the collection and YOU will have to put into it (basically zero). Huge thanks to eXo and the team (absolute madmen)! Introduction: Now for the content itself. I used to use D-FEND Reloaded as my front-end for DOS games back in the day. While it made things easy and convenient, it was abandoned and I was stuck with some proprietary way of configuring and executing games and their corresponding configurations. Porting to Launchbox (or any other front-end) was not trivial and would require some (a lot of) tinkering. Another Launchbox user mentioned they were using a .BAT to launch every game and it turned out to be a great solution, triggering my current collection "architecture". Like in the certificate realm, "you have to trust somebody in the end". So I will be trusting DOSBOX and its multiple forks will be around for quite a long time. If somehow all of them get discontinued, you can always create a Virtual Machine with whichever O.S. you're using (I'm a Windows guy) and fit all your stuff in there. That being said, let's get to business. Best Practices and avoiding vendor lock-in: As I said, using D-FEND (or any other front-end) was convenient but not future proof at all. Using a simple .BAT will allow to launch any game using a simple menu. You will be wondering, "eXoDOS already does that so why bother?" Well, I'm a spaniard and I've grown with spanish versions of many games. Even though I'm quite able at english, I'd rather play the games the way I played them I-don't-want-to-remember-how-many-years ago. This is why I gather the english (usually the original version) and spanish version of the games (if available). Same would apply to any non native English speaker. It's a matter of preference. Also, I want to have both the floppy and CD versions of games (if existed), with and without expansions that changed gameplay, with and without speech packs, etc. to compare and enjoy both. On collections like eXoDOS (major Kudos again) that's not possible since there's usually only one "best" version of each game. 1 - Naming conventions: Launchbox will ignore anything in the game's folder name that's between parenthesis, so I chose to put the year, language, media and graphics version in there. Games such as Sierra and LucasFilm/LucasArts had AGI/SCI or EGA/VGA versions, so that would allow me to tell between them. An example: The Secret of Monkey Island (1991) (Spanish) (Floppy) (EGA) This allows telling at a glance the year (if multiple games with the same or very similar name were created), language (mainly english or spanish, although there may be some MULTI3 or MULTI5 games), media (floppy or CD version) and graphics (CGA, EGA, VGA, SVGA, AGI, SCI, etc.). This also allows to drag and drop your games inside LaunchBox so it can recognize and scrape them for automatic media download. Inside each game's folder there's a "C" folder (mounted as "C:") containing the installed game, a "Disk" folder (mounted as "D:") containing ISO images, floppy images, patches, etc. in their original form and an "Extras" folder containing manuals, guides, copy protection wheels, etc. This is the only part I will use LaunchBox's native feature to open the manual by providing the path. 2 - .BAT structure for avoiding "vendor lock-in": This is aimed at providing a solution that's agnostic to the front-end you will be using. I can simply navigate to the corresponding folder and double click on the game's .BAT to launch it from within Windows Explorer. But, like many, I like things pretty and my OCD FORCES me to use LaunchBox and its beautiful cover layout, so I tell it to use that .BAT instead of the game's own executable. Of course, you will have to disable the option that makes LaunchBox use DOSBOX for the game since you will be already launching it through the .BAT/.CONF files. Such .BAT is calling a .CONF file that will load the desired DOSBOX version (vanilla, ECE, Staging, Pure, etc.) depending on the best results along with a default .CONF file (that holds the main and common parameters for every DOSBOX game) and a secondary .CONF file that allows overriding some of those parameters. I like games with original aspect ratio and use "openglnb" renderer for (near) pixel perfect results. Also, ECE integrates Munt emulator and 3Dfx support so there's nothing else required (apart from an initial system wide Munt-32 installation pointing at the ROM files). In case you want to use Sound Canvas, a Fluidsynth soundfont will also have to be installed in your system. @ECHO OFF ..\..\..\DOSBOX\ECE\DOSBox.exe -conf ..\..\..\DOSBOX\ECE\common.conf -conf "Monkey Island.conf" As you can probably tell, I'm making this portable and path relative to the current location. You will only have to be consistent about the DOSBOX and GAMES folders locations. In my case, the folder structure looks like: The .BAT is located inside each game folder (in this case, inside "The Secret of Monkey Island (1991) (Spanish) (Floppy) (EGA)" ) so it goes up 3 folders and then enters the DOSBOX\ECE folder to use the "Enhanced Community Edition" executable using the "common.conf" file located in the same folder. The last .CONF file ("Monkey Island.conf") contains the overrides and specific mounts for the game (in case you need to mount a CD image, for example). In case you ever wanted to switch from ECE to any other fork, some "find and replace" using Notepad++ makes it easy to change the configuration in all .CONF files with a single click. The contents of the second .CONF are: [autoexec] # Lines in this section will be run at startup. # You can put your MOUNT lines here. @echo off mount c .\C imgmount d .\Disk\Secret.cue -t iso c: Launch.bat In this specific game, we need the C drive, the ISO image mounted and calling for the game launcher "Launch.bat". This is named the same in every game to avoid unnecesary overhead. The contents of the "Launch.bat" that allows to launch the game with some options and also launch the setup. This "Launch.bat" will vary and can become really time consuming if you want all the bells and whistles MS-DOS had but DOSBOX doesn't. For instance, "CHOICE" menus are limited and require some (a lot) extra steps to work like you would want them to. Now again, why bother doing that? Well, in my case I want to be able to configure the game in every possible way using any graphics configuration and sound card type. The reasoning behind that is making the procedure as modular and layered as possible, so having to change one of the "layers" (if ever required) is as hassle free as possible. That's why there's a "Monkey Island.bat" that launches the desired DOSBOX version, and loads two .CONF files (one overriding some parameters of the other) which launches another "Launch.bat" which will prompt with a launch menu and in the end, will launch the game (or setup). @echo off d: :menu cls echo. echo ************************************************** echo * The Secret of Monkey Island (CD) * echo ************************************************** echo * * echo * [1] Play game (Spanish) * echo * [2] Play game (English) * echo * [3] Play game (German) * echo * [4] Play game (Italian) * echo * [5] Play game (French) * echo * * echo * [9] Exit * echo * * echo ************************************************** echo. choice /c:123456789 /N if errorlevel 9 goto end if errorlevel 8 goto menu if errorlevel 7 goto menu if errorlevel 6 goto menu if errorlevel 5 goto italian if errorlevel 4 goto german if errorlevel 3 goto french if errorlevel 2 goto english if errorlevel 1 goto spanish :spanish cd SPANISH MONKEY.EXE goto end :english cd ENGLISH MONKEY.EXE goto end :german cd GERMAN MONKEY.EXE goto end :italian cd ITALIAN MONKEY.EXE goto end :french cd FRENCH MONKEY.EXE goto end :end exit This launcher allows selecting the language to be used for the game by changing into the corresponding folder inside the CD and launching the game for such language. Easy peasy. This could do (almost) anything you can think of it you used a little DOS scripting back in the day. It looks like: Thus, by pressing the corresponding number you can launch the desired game version. That would allow to launch the "setup" executable (if any) and configure graphics, controls, sound, etc. 3 - Combining multiple games: In case you have multiple versions of the same game, you definitely should use the "Combine" feature built into LaunchBox. That will allow you to select a default version to launch when double clicking and also the other versions with a simple right click. In my case, for instance, I have 5 different versions of "The Secret of Monkey Island": So I can choose from them by right clicking on the game: Such configuration can be also performed using the "additional apps" menu inside each game. Note the "make default" (self explanatory) button at the bottom right: That being said, it's everything I wanted to cover. Hope this helps somebody! Edited October 26, 2021 by dominikabra 1 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.