-
Notifications
You must be signed in to change notification settings - Fork 388
Guide:DOS demoscene software in DOSBox‐X
Back to the DOSBox-X Wiki Welcome page.
This guide explains how to use DOSBox-X with DOS software from the demoscene.
For demos 1997 and later: you should use cputype=pentium and core=dynamic where possible. Set cycles count to at least 60000, demos of this era are CPU heavy with effects and rendering. Set memsize to at least 32MB (more if needed by the demo).
For demos 1995 to 1997: you should use cputype=pentium and core=dynamic where possible. Set cycles count to at least 35000 to simulate the average speed of a Pentium 100MHz system the demos are written against. Set memsize to at least 16MB.
For demos 1994 and earlier: some demos use extended memory, some don’t. Unless the demo mentions extended memory it’s safe to set memsize=1 (no extended memory). Else you should set xms=true and memsize=8 to be safe. Do not set memsize to any value larger than 8MB, some demos will crash with too much RAM. Remember machines of that time rarely had more than 8MB of RAM except for high-end servers. You may also want to turn off upper memory blocks (umb=false). Some demos require expanded memory for their music playback (most common is to require expanded memory for Sound Blaster MOD music playback), set ems=true and memsize to at least 2-4MB to provide extended memory. There are also demos of this time frame that use their own custom protected mode memory management to varying degrees of success. Remember that compatibility for this time period is hampered somewhat by demos of this time being sort of a "wild west" of experimentation with PC hardware programming tricks. There even exists a demo that abuses the Intel 486/Pentium CPU to enter "Huge unreal mode" to execute its code and data from a 4GB flat 16-bit code segment. CPU settings should generally aim to emulate a 386, 486, or Pentium, and to emulate a machine with a cycles count of 32000 or less. For many early demos (1991-1992) you should consider using a cycles count between 4000 and 8000. These demos will run too fast and depending on how the video routines were written will also flicker badly.
Most demos since 1995 will run perfectly fine with machine=svga_s3. Leave on the VESA BIOS extensions. Most demos expect the VBE 1.x modes to provide 16bpp and 32bpp modes, often at 320x200 or 320x240. Some demos assume VESA mode numbers and will not query the mode to make sure it matches expectations. Some demos need the older 24bpp VBE 1.x modes to function.
For demos prior to 1995, machine=svga_s3 is generally OK but there are demos that also make use of VGA-specific tricks that may require machine=vgaonly or machine=svga_et4000 especially if SVGA graphics are involved and the demo pre-dates adoption of the VESA BIOS extensions. Some demos rely on scrolling with VGA hardware in a way that generally works (64KB chained VGA wraparound) but will break with machine=svga_et4000. Still other demos may have special code for specific SVGA chipsets.
For demos 1996 and later: By that point most demos had adopted a common library to handle sound cards. If possible, try to use the Gravis Ultrasound support, but you can also use Sound Blaster 16 emulation if you want. If the demo doesn’t work with one, try the other.
For demos 1993 to 1996: Many in the demoscene held a strong preference for Gravis Ultrasound and there are plenty of demos that support only that card. Other demos support Sound Blaster Pro or Sound Blaster 16. Unless the demo explicitly mentions Sound Blaster 16, you should set sbtype=sbpro2 to avoid SB16 problems with SBPro stereo. It’s best to have both GUS and Sound Blaster enabled for these demos so one or the other works.
There exist some demos in this timeframe that still use PC speaker and LPT DAC output.
For demos 1993 and earlier: Gravis Ultrasound is generally not supported, except by a few demos that were developed when the card came out. Most demos will play music with a choice of Sound Blaster, LPT DAC, or PC speaker output. 1992 and later demos generally support stereo output for the Sound Blaster Pro hardware of the time, so you should set sbtype=sbpro2. Some demos allow you to choose at least IRQ 5 or 7, but some have problems with IRQ 5, and most will assume IRQ 7, the stock configuration of the original Sound Blaster.
If you want to hear LPT DAC output instead, set disney=true to enable Disney/Covox/LPT DAC emulation.
Quite a few demos of this period used a sound library called "Goldplay" that supported both Sound Blaster and LPT DAC. Setting goldplay=true is recommended, the goldplay library uses a strange hackish method to re-use it’s playback method for DMA-based Sound Blaster output that requires special attention from DOSBox to emulate properly.
There also exist a few demos that do not use Sound Blaster support but instead play MIDI music through the MPU-401 chip.