dosbox tips & tricks
dosbox is a very popular tool (not only) in the demoscene. it's emulating a pc with dos as operating system and the speed of the emulation can reach the typical pc's from the early and mid 90s (dependent from the machine which is running dosbox). some demos are much easier to run with dosbox than on a real dos pc ('optic nerve' by silents pc or 'elements' by xography for example). the sound emulation works pretty well in the most cases and covers the commonly used soundcards, namely soundblaster (up to sb16) and gravis ultrasound. also pc speaker and disney sound source can be emulated. dosbox emulates standard vga and also svga cards with vesa 2 bios (plus the rarely needed emulation for hercules, cga or tandy). this page will give you some tips how you can run your favorite demo (or game) in a better speed or at all. you can grab the official version (actually v0.71) or you can get one of the
developer versions with new features and patches (read the text to find out which version covers your needs best). newbies should start with the official version anyway and visit the forum for general questions. there are also frontends for dosbox available, just google a bit. d-fend is quite popular amongst windows users.
one of the most important files in the dosbox package is the textfile dosbox.conf which contains all necessary settings for a proper emulation. since i know only the windows version, i can't cover the configuration files for other platforms (linux, beos, mac, ..). I'm also not discussing every single line in the file but only the most important settings. some developer versions are coming without this file, in this case you can create it the following way: start dosbox.exe and then type "config -writeconf dosbox.conf" at the command prompt. after execution of the command close dosbox.
possible options are surface (default), overlay, opengl or ddraw. 'surface' gives the the most crisp picture but needs also pretty much cpu power. 'overlay' is much more cpu friendly (when using core=dynamic), so use it if possible. 'opengl' and 'ddraw' are slower than 'overlay' and the picture is clearly less sharp. in the developer versions there are some more options like 'openglhq' or 'direct3d' but they are only useful with fast and modern hardware (ps2.0 capable gfx adapter recommended) and with up to date opengl drivers and directx installation.
how many frames to skip before drawing one. the value '0' is the best (no frame skipped) but needs very much cpu. on slower machines like my pIII-450 a value of '2' is pretty useful. setting it to high results in a jerky running demo. this setting can be changed within dosbox with ctrl-f7 and ctrl-f8
default is 'false'. changing it to 'true' enables aspect correction. this needs a bit cpu, but not that much. some demos are only running when aspect correction is enabled (example: 'elements' by xography), so try enabling it when a demo isn't running or crashes after some time.
possible options are simple, normal, dynamic and auto (default). 'normal' will let you run the most demos but needs clearly more cpu. 'dynamic' is a very good option on slower machines because it allows a much higher cycles value (see next setting). 'auto' is the new default since version 0.70 and tries to switch from normal to dynamic when appropriate.
this value should be as high as possible since it affects directly how smooth a demo or game is running. with the setting core=normal i'm using a value of 3300 which isn't that much. together with a sound rate of 20000 (see below) i can enjoy for example the renaissance demo 'amnesia' with some glitches. but with core=dynamic i can raise this value to 8000 or even more (depending on the demo). this way i can even enjoy the kickass capacala trackmo 'the unreal thing' which is pretty difficult to run on a real dos pc. with the new default setting 'auto' you can let dosbox guess the maximum possible value which will be used if appropriate. stuttering sound is a very good indicator that the value is set to high. this setting can be changed within dosbox with ctrl-f11 and ctrl-f12.
there are several (sound) 'rate' settings in dosbox.conf. the main setting is done in the mixer section. the other settings are in the sections for the sound devices. a higher value means better sound quality (and more cpu usage). 20000 is a good compromise on slower systems (sounds nearly like a sb pro). on a fast machine cd quality (44100) should be possible. setting the rate of a sound device higher than the mixer rate makes no sense. be sure that all sound devices which you want to be emulated are enabled (gus=true, pcspeaker=true etc.).
note for demos/intros with midi sound: the mt32 emulation works pretty well now. the used port for midi output is 330.
this setting defines the type of the emulated soundblaster. default is 'sb16', but for some demos with sb pro sound you have to change it to 'sbpro2' for stereo sound.
xms=, ems=, umb=
the memory settings. the default is 'true'. many demos are only running when the cpu is in realmode. so it's a good advise to change the ems setting to 'false' except a demo or game needs it. the default memsize setting (16) should be enough for nearly every demo from the early and mid 90s.
this is a new option since version 0.70. leaving it untouched gives you the default US keyboard layout, changing it to 'gr' activates for example the support for german keyboards. several european languages are supported internal, watch the readme file for all supported languages. for other languages you can use the .kl files from the freedos project (details in the readme).
one tip for lazy users: you can place a dosbox shortcut in the explorer 'send to' context menu simply by copying the shortcut (dosbox.lnk) from the startmenu folder to the 'sendto' folder. the 'sendto' folder is a hidden folder so you may make it visible first (not needed when you are copying from the command line). now just open the context menu for the desired dos application, click 'send to' and then dosbox.
dosbox version 0.71 is mainly a bugfix release but brings also improved cdrom, svga and vesa support. according to the project page you should notice an increased performance when using cpu core 'dynamic'. the readme file for the video capture function (as an example get my video from the demo 'contrast' by oxygene) states now that you can set the cycles rate higher than your pc can handle for the recording. the video *should* still look ok. atleast i can say that there is no stuttering sound in the video even when the sound was bad during the capture process.
last update: 01.08.2007