Adventures In Old-School Gaming...
I've been an old-school Dos gamer since I had a 286 PC running actual store-bought MS-DOS. I even wrote my own Dos-based game launcher program (in the Pascal programming language) to make my life easier back in the day. Now, I'm running Windows, but, I still like to play the old DOS-based classics. So, first I needed to install DOSBox. The basic version of DosBox for Windows is 0.74. Then, there are patches for DosBox that need to be applied, I just download whatever the latest version of the patch files exists on the EMUCR site, unpack and copy the files to the DosBox installation folder. This will solve some common issues with some Dos games misbehaving.
With DosBox installed and patched, then I create a main folder for all of DOS games to live. Each game gets its own subfolder within the main folder -- I happened to use Dos as my main folder. Some games will require configuration or installation before their first use. I use DosBox to open a Dos window and manually configure or install each of the games that require that step. Later, once the game is installed and configured, I'll save a backup of the entire directory, so, that I don't have to manually reconfigure or install my games again.
In DosBox, if I need to work a game folder called EXAMPLE, I would mount a drive, point that drive to C:\DOS (this will become my C drive for this session of DosBox) and change the directory to EXAMPLE as in the following code snippet:
Typically, if I need to make changes to the config file for a particular game, it will usually be in the sblaster (Sound Blaster) section. My default config file has a higher end version of Sound Blaster selected as my default (sb16), some games will only support the lower end Sound Blaster, so, I might have to change that setting to sb1 instead of sb16. An example of this would be Brix, a puzzle game, and Corridor 7, a first-person shooter -- both required the sb1 setting.
Occasionally, I might need to change settings in the CPU section from auto to something else. When I was working with Pinball 2000, I had to change the cputype and the cycles to cputype=pentium_slow and cycles=fixed 14000 respectively. Very rarely, I might need to change the machine type in the DosBox section. In the case of D/Generaton, a puzzle game, I had to change the setting to machine=vgaonly.
When I'm finished this whole process, which only needs to happen once, each Dos game will live in its own folder. And, each folder will contain, in addition to the game itself, an app.conf file and a Windows shortcut to launch the game. And, because I need the bonus points, I will have created a custom icon for each game and the Windows shortcut will reflect that custom icon. With all that done, copies of all of my freshly minted Windows shortcuts will also live in a separate games folder on my desktop for easy access. After all of this tedious work, I make a backup of everything as it sits.
There's probably a DosBox launcher out there that can do all of this without all of the manual editing, but, I prefer this method. It speaks to the programmer in me and also allows me to express my artistic side by making custom icons. I have 36 Dos games and 3 Dos demos. There are a handful of games that still use manual protection for each launch like Dune and X-Com.
I have my preferred image editing software for making the artwork. Icons need to be square and I usually try for a resolution of 256x256. Icon files prefer resolutions that are multiples of 16 (i.e.: 32x32, 64x64, 128x128, 256x256, etc.). If I need a transparent background, I'll save the working image as PNG format file with alpha transparency enabled. Otherwise, a JPG format will suffice. Once, I'm happy with the artwork, I save the file in the BMP format making sure to preserve the transparency, if necessary, then I manually change the extension to ICO. As for the subject matter, I usually start with either a screenshot of the title screen or a scan of the box art. On rare occasions a game might even have its own icon.
As a fan of the DOS-era video game Doom, and after my previous experience getting the classic first-person shooter, Doom to run on a Windows PC, I decided to try my hand at installing GZDoom -- an enhanced port of the Doom engine for modern operating systems with new features not found in the games as originally published by id Software. After getting Doom up and running in its shiny new environment, I began tinkering with mods like Brutal Doom, Brutal Hellfest and Hunter's Moon. Of course, I'm hooked. Although, I still love classic Doom and Doom 2, I really appreciate them a lot more with a fresh coat of paint and modern conveniences. Recently, there was a whole kerfuffle at GZDoom and now the project has been spun off into UZDoom. So, lately, I've been busy revisiting some of favorite mods in the newly rebranded engine and making new Windows shortcuts.
That's all that I have for today. Enjoy.
With DosBox installed and patched, then I create a main folder for all of DOS games to live. Each game gets its own subfolder within the main folder -- I happened to use Dos as my main folder. Some games will require configuration or installation before their first use. I use DosBox to open a Dos window and manually configure or install each of the games that require that step. Later, once the game is installed and configured, I'll save a backup of the entire directory, so, that I don't have to manually reconfigure or install my games again.
In DosBox, if I need to work a game folder called EXAMPLE, I would mount a drive, point that drive to C:\DOS (this will become my C drive for this session of DosBox) and change the directory to EXAMPLE as in the following code snippet:
Once I'm done in that particular instance of DosBox, I can type EXIT from the command prompt or just close the window. Once all of the installation and setup is complete for all of the individual Dos games, then I need to apply a config file to each game folder with specific DosBox settings for each game. The following is a sample config file that I use for my Dos games:mount c C:\DOS c: cd EXAMPLE
I save this file as a text file and name the file app.conf. My config files are set to a resolution of 1280x1024. This is not what the game requires, but, rather the resolution of my monitor. With the app.conf file in place, I create a shortcut to launch the game. I navigate to the DosBox installation folder and right-click on the DosBox executable and select Create Shortcut. Windows might advise that the shortcut needs to be created on the desktop. I copy the shortcut to each game folder and edit each shortcut to match its game. I right-click on the shortcut and select Properties. I can then change the Target to point to the app.conf file in my respective game folder from the following:# This is the configurationfile for DOSBox 0.74. (Please use the latest version of DOSBox) # Lines starting with a # are commentlines and are ignored by DOSBox. # They are used to (briefly) document the effect of each option. [sdl] # fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back) # fulldouble: Use double buffering in fullscreen. It can reduce screen flickering, but it can also result in a slow DOSBox. # fullresolution: What resolution to use for fullscreen: original or fixed size (e.g. 1024x768). # Using your monitor's native resolution with aspect=true might give the best results. # If you end up with small window on a large screen, try an output different from surface. # windowresolution: Scale the window to this size IF the output device supports hardware scaling. # (output=surface does not!) # output: What video system to use for output. # Possible values: surface, overlay, opengl, openglnb, ddraw. # autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock) # sensitivity: Mouse sensitivity. # waitonerror: Wait before closing the console if dosbox has an error. # priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized. # pause is only valid for the second entry. # Possible values: lowest, lower, normal, higher, highest, pause. # mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the defaul value. # usescancodes: Avoid usage of symkeys, might not work on all operating systems. fullscreen=true fulldouble=false fullresolution=1280x1024 windowresolution=1280x1024 output=overlay autolock=true sensitivity=100 waitonerror=true priority=higher,normal mapperfile=mapper-0.74.map usescancodes=true [dosbox] # language: Select another language file. # machine: The type of machine tries to emulate. # Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe. # captures: Directory where things like wave, midi, screenshot get captured. # memsize: Amount of memory DOSBox has in megabytes. # This value is best left at its default to avoid problems with some games, # though few games might require a higher value. # There is generally no speed advantage when raising this value. language= machine=svga_s3 captures=capture memsize=16 [render] # frameskip: How many frames DOSBox skips before drawing one. # aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!. # scaler: Scaler used to enlarge/enhance low resolution modes. # If 'forced' is appended, then the scaler will be used even if the result might not be desired. # Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x. frameskip=0 aspect=false scaler=normal2x [cpu] # core: CPU Core used in emulation. auto will switch to dynamic if available and appropriate. # Possible values: auto, dynamic, normal, simple. # cputype: CPU Type used in emulation. auto is the fastest choice. # Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch. # cycles: Amount of instructions DOSBox tries to emulate each millisecond. # Setting this value too high results in sound dropouts and lags. # Cycles can be set in 3 ways: # 'auto' tries to guess what a game needs. # It usually works, but can fail for certain games. # 'fixed #number' will set a fixed amount of cycles. This is what you usually need if 'auto' fails. # (Example: fixed 4000). # 'max' will allocate as much cycles as your computer is able to handle. # # Possible values: auto, fixed, max. # cycleup: Amount of cycles to decrease/increase with keycombo.(CTRL-F11/CTRL-F12) # cycledown: Setting it lower than 100 will be a percentage. core=auto cputype=auto cycles=auto cycleup=10 cycledown=20 [mixer] # nosound: Enable silent mode, sound is still emulated though. # rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality. # Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716. # blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged. # Possible values: 1024, 2048, 4096, 8192, 512, 256. # prebuffer: How many milliseconds of data to keep on top of the blocksize. nosound=false rate=44100 blocksize=1024 prebuffer=20 [midi] # mpu401: Type of MPU-401 to emulate. # Possible values: intelligent, uart, none. # mididevice: Device that will receive the MIDI data from MPU-401. # Possible values: default, win32, alsa, oss, coreaudio, coremidi, none. # midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use. # See the README/Manual for more details. mpu401=intelligent mididevice=default midiconfig= [sblaster] # sbtype: Type of Soundblaster to emulate. gb is Gameblaster. # Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none. # sbbase: The IO address of the soundblaster. # Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300. # irq: The IRQ number of the soundblaster. # Possible values: 7, 5, 3, 9, 10, 11, 12. # dma: The DMA number of the soundblaster. # Possible values: 1, 5, 0, 3, 6, 7. # hdma: The High DMA number of the soundblaster. # Possible values: 1, 5, 0, 3, 6, 7. # sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer. # oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'. # Possible values: auto, cms, opl2, dualopl2, opl3, none. # oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well). # Possible values: default, compat, fast. # oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly). # Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000. sbtype=sb16 sbbase=220 irq=7 dma=1 hdma=5 sbmixer=true oplmode=auto oplemu=default oplrate=44100 [gus] # gus: Enable the Gravis Ultrasound emulation. # gusrate: Sample rate of Ultrasound emulation. # Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716. # gusbase: The IO base address of the Gravis Ultrasound. # Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300. # gusirq: The IRQ number of the Gravis Ultrasound. # Possible values: 5, 3, 7, 9, 10, 11, 12. # gusdma: The DMA channel of the Gravis Ultrasound. # Possible values: 3, 0, 1, 5, 6, 7. # ultradir: Path to Ultrasound directory. In this directory # there should be a MIDI directory that contains # the patch files for GUS playback. Patch sets used # with Timidity should work fine. gus=false gusrate=44100 gusbase=240 gusirq=5 gusdma=3 ultradir=C:\ULTRASND [speaker] # pcspeaker: Enable PC-Speaker emulation. # pcrate: Sample rate of the PC-Speaker sound generation. # Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716. # tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'. # Possible values: auto, on, off. # tandyrate: Sample rate of the Tandy 3-Voice generation. # Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716. # disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible). pcspeaker=true pcrate=44100 tandy=auto tandyrate=44100 disney=true [joystick] # joysticktype: Type of joystick to emulate: auto (default), none, # 2axis (supports two joysticks), # 4axis (supports one joystick, first joystick used), # 4axis_2 (supports one joystick, second joystick used), # fcs (Thrustmaster), ch (CH Flightstick). # none disables joystick emulation. # auto chooses emulation depending on real joystick(s). # (Remember to reset dosbox's mapperfile if you saved it earlier) # Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none. # timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away). # autofire: continuously fires as long as you keep the button pressed. # swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks. # buttonwrap: enable button wrapping at the number of emulated buttons. joysticktype=none timed=true autofire=false swap34=false buttonwrap=false [serial] # serial1: set type of device connected to com port. # Can be disabled, dummy, modem, nullmodem, directserial. # Additional parameters must be in the same line in the form of # parameter:value. Parameter for all types is irq (optional). # for directserial: realport (required), rxdelay (optional). # (realport:COM1 realport:ttyS0). # for modem: listenport (optional). # for nullmodem: server, rxdelay, txdelay, telnet, usedtr, # transparent, port, inhsocket (all optional). # Example: serial1=modem listenport:5000 # Possible values: dummy, disabled, modem, nullmodem, directserial. # serial2: see serial1 # Possible values: dummy, disabled, modem, nullmodem, directserial. # serial3: see serial1 # Possible values: dummy, disabled, modem, nullmodem, directserial. # serial4: see serial1 # Possible values: dummy, disabled, modem, nullmodem, directserial. serial1=dummy serial2=dummy serial3=disabled serial4=disabled [dos] # xms: Enable XMS support. # ems: Enable EMS support. # umb: Enable UMB support. # keyboardlayout: Language code of the keyboard layout (or none). xms=true ems=true umb=true keyboardlayout=auto [ipx] # ipx: Enable ipx over UDP/IP emulation. ipx=false [autoexec] # Lines in this section will be run at startup. # You can put your MOUNT lines here. mount c C:\DOS c: cd example strart.exe exit
To the following:"C:\Program Files (x86)\DOSBox\DOSBox.exe"
At this point, if I wanted to change the icon, I would select the Change Icon button. Otherwise, I would select OK. Once the shortcut is saved in the game folder, I rename the shortcut and copy the newly renamed shortcut to my games folder on my desktop. Sometimes a game will need its full config file in place before setup can run properly. In these cases, I edit the app.conf file and comment out the last few lines like the following snippet:"C:\Program Files (x86)\DOSBox\DOSBox.exe" -conf "C:\Dos\EXAMPLE\app.conf"
Then, I launch the game with my newly created game shortcut. This allows DosBox to apply the game-specific configuration but doesn't launch the game. I can run the setup and diagnose issues, for instance, if the game only supports Adlib, but, my app.conf file is set to Sound Blaster. Once that is complete, I can edit the app.conf file to restore the commented lines and launch the game normally. For a game like Creature Shock which lives on two CDs, I needed to copy each CD to two separate folders (CRSHOCK1 and CRSHOCK2) and install the game in a third folder (CRSHOCK) and the business end of the app.conf file looks like the following:[autoexec] # Lines in this section will be run at startup. # You can put your MOUNT lines here. mount c C:\DOS c: cd example #strart.exe #exit
In this case, the game believes that it was installed on the C drive (CRSHOCK) and both virtual CDs occupy D and E respectively. Note, each virtual CD requires a specific label to be recognized by the game. Also, the CDs should be unmounted before exiting the game. I don't think anything horrible would actually happen if a virtual CD wasn't unmounted, but, it's considered good practice to clean up after oneself. In addition, I had to edit the app.conf file to change the CPU section and specify cycles=fixed 40000 and change the sblaster (Sound Blaster) section and specify sbtype=sbpro2.[autoexec] # Lines in this section will be run at startup. # You can put your MOUNT lines here. mount c C:\DOS mount d C:\DOS\CRSHOCK1 -t cdrom -label CRSHOCK_1 mount e C:\DOS\CRSHOCK2 -t cdrom -label CRSHOCK_2 c: cd crshock shock.exe unmount d unmount e exit
Typically, if I need to make changes to the config file for a particular game, it will usually be in the sblaster (Sound Blaster) section. My default config file has a higher end version of Sound Blaster selected as my default (sb16), some games will only support the lower end Sound Blaster, so, I might have to change that setting to sb1 instead of sb16. An example of this would be Brix, a puzzle game, and Corridor 7, a first-person shooter -- both required the sb1 setting.
Occasionally, I might need to change settings in the CPU section from auto to something else. When I was working with Pinball 2000, I had to change the cputype and the cycles to cputype=pentium_slow and cycles=fixed 14000 respectively. Very rarely, I might need to change the machine type in the DosBox section. In the case of D/Generaton, a puzzle game, I had to change the setting to machine=vgaonly.
When I'm finished this whole process, which only needs to happen once, each Dos game will live in its own folder. And, each folder will contain, in addition to the game itself, an app.conf file and a Windows shortcut to launch the game. And, because I need the bonus points, I will have created a custom icon for each game and the Windows shortcut will reflect that custom icon. With all that done, copies of all of my freshly minted Windows shortcuts will also live in a separate games folder on my desktop for easy access. After all of this tedious work, I make a backup of everything as it sits.
There's probably a DosBox launcher out there that can do all of this without all of the manual editing, but, I prefer this method. It speaks to the programmer in me and also allows me to express my artistic side by making custom icons. I have 36 Dos games and 3 Dos demos. There are a handful of games that still use manual protection for each launch like Dune and X-Com.
I have my preferred image editing software for making the artwork. Icons need to be square and I usually try for a resolution of 256x256. Icon files prefer resolutions that are multiples of 16 (i.e.: 32x32, 64x64, 128x128, 256x256, etc.). If I need a transparent background, I'll save the working image as PNG format file with alpha transparency enabled. Otherwise, a JPG format will suffice. Once, I'm happy with the artwork, I save the file in the BMP format making sure to preserve the transparency, if necessary, then I manually change the extension to ICO. As for the subject matter, I usually start with either a screenshot of the title screen or a scan of the box art. On rare occasions a game might even have its own icon.
As a fan of the DOS-era video game Doom, and after my previous experience getting the classic first-person shooter, Doom to run on a Windows PC, I decided to try my hand at installing GZDoom -- an enhanced port of the Doom engine for modern operating systems with new features not found in the games as originally published by id Software. After getting Doom up and running in its shiny new environment, I began tinkering with mods like Brutal Doom, Brutal Hellfest and Hunter's Moon. Of course, I'm hooked. Although, I still love classic Doom and Doom 2, I really appreciate them a lot more with a fresh coat of paint and modern conveniences. Recently, there was a whole kerfuffle at GZDoom and now the project has been spun off into UZDoom. So, lately, I've been busy revisiting some of favorite mods in the newly rebranded engine and making new Windows shortcuts.
That's all that I have for today. Enjoy.







Comments
Post a Comment
Note: Anonymous posts are allowed, but, all comments are subject to moderation by the content manager. Comments may be rejected, edited or deleted at the sole discretion of the content manager.