Selecting a video adapter in DOSBox-X

Overview

DOSBox-X supports the emulation of a wide range of video adapters that were common in the DOS days. This document attempts to help the novice user, especially those that never experienced DOS PC’s during the 80’s and 90’s with selecting an appropriate video adapter for games and programs.

You can set the video adapter to emulate in your DOSBox-X config file. In the [dosbox] section, by setting machine= to the appropriate value.

By default DOSBox-X, just like regular DOSBox on which is it based, emulates a S3 Trio64 which is a SVGA adapter that is backwards compatible with VGA, EGA and CGA. In addition, it supports VESA VBE 2.0 modes. As such it will work with most DOS games and applications.

As a general rule of thumb, if a game asks you about what video option you want to use, and your looking for the best experience, go in the following order from lowest quality to highest quality: MDA > Hercules > CGA > PCjr > Tandy > EGA > VGA > SVGA

Note
Hercules may in some cases be preferable to CGA as it has a higher resolution, but lacks colour.
Note
In some cases PCjr or Tandy may be preferable to EGA, as they often look identical, and PCjr/Tandy may give you better sound.

Backwards compatibility

Many, but not all, PC video adapters were backward compatible with previous generations.

Compatibility

video adapter

MDA

Hercules

CGA

PCjr

Tandy

EGA

MCGA

VGA

SVGA

MDA mode

Yes

Yes

-

-

-

-

-

-

-

Hercules mode

-

Yes

-

-

-

-

-

-

-

CGA mode

-

-

Yes

Yes

Yes

Yes (RGBI)

Yes (RGBI)

Yes (RGBI)

Yes (RGBI)

PCjr mode

-

-

-

Yes

Yes (mostly)

-

-

-

-

Tandy mode

-

-

-

-

Yes

-

-

-

-

EGA mode

-

-

-

-

-

Yes

-

Yes

Yes

MCGA mode

-

-

-

-

-

-

Yes

Yes

Yes

VGA mode

-

-

-

-

-

-

-

Yes

Yes

SVGA mode

-

-

-

-

-

-

-

-

Yes (vendor specific)

VESA mode

-

-

-

-

-

-

-

-

Yes (some)

Note
Some clone video cards had more extensive compatibility, for instance being able to display both Hercules and CGA with a DOS utility to switch between them, such as early ATI cards. These type of video cards are not emulated by DOSBox-X.
Note
SVGA mode is not an actual standard, as each video card vendor had its own implementation. An attempt to standardise was made by VESA with the VESA BIOS Extensions (VBE).

Supported PC video modes

MDA

MDA stands for Monochrome Display Adapter, and it was introduced by IBM alongside the original IBM PC in 1981.

As the name implies it is monochrome. It was normally used in combination with a green or amber display. Moreover, it can only display text and characters from the built-in font in 80 columns and 25 lines with a font size of 7x11 (in a 9x14 'box'). The only extras that it has are underlined text, bright text and reverse video. The vertical refresh of MDA is only 50Hz, but with the phosphor glow of green and amber monochrome monitors this was not noticeable.

The main selling feature of this adapter, compared to CGA, was its clarity as it uses effectively a 720x350 resolution, which made it very popular for business software. For games your going to be limited to text mode games, like text adventures.

This mode can be set using machine=mda in your DOSBox-X config file. Video memory is fixed to 4KiB and cannot be changed.

You can optionally change the display colour by setting in the [render] section of your config monochrome_pal= to "green", "amber", "white" or "gray". Or you cycle between them with CTRL-F7.

Game:Microsoft Adventure MDA Green
Microsoft Adventure - MDA Green screen
Game:Microsoft Adventure MDA Amber
Microsoft Adventure - MDA Amber screen
Game:Microsoft Adventure MDA White
Microsoft Adventure - MDA White screen

CGA

CGA stands for Color Graphics Adapter, and like MDA was introduced by IBM alongside the original IBM PC in 1981.

As the name implies, it supports colour, and unlike MDA, it supports drawing to the screen which made it popular for games. Due to the higher price of the adapter and monitor, and the lower resolution, it was less popular for business use than MDA and later Hercules. Also note that CGA is not backward compatible with MDA. The vertical refresh of CGA is 60Hz, which matches up well with the majority of modern 60Hz LCD displays.

Graphics modes:

  • 160x100 in 16 colours, chosen from a 16-colour palette, utilizing a specific configuration of the 80x25 text mode.

  • 320×200 in 4 colours, chosen from 3 fixed palettes, with high- and low-intensity variants, with colour 1 chosen from a 16-colour palette.

  • 640×200 in 2 colours, one black, one chosen from a 16-colour palette.

Text modes:

  • 40×25 with 8×8 pixel font (effective resolution of 320×200)

  • 80×25 with 8×8 pixel font (effective resolution of 640×200)

Composite graphics mode:

One of the features, at least of the IBM CGA adapters, is that they support two types of monitors. Either a digital RGBI monitor, or an analogue composite monitor (or NTSC TV) connected via RCA.

The composite connection suffers from a lower quality picture with colour bleeding. But it also allows for something called artefact colours, which was a way to have to have more colours. So where CGA with a RGBI monitor would be limited to just 4 colours in 320x200, with composite you can have 16. This composite mode was specifically supported by some games, such as those from Sierra.

When the DOSBox-X CGA emulation detects that a game is trying to use artefact colours, it will auto-enable the composite mode emulation. As such you cannot experience non-artefact 4-colour CGA mode with such games with machine=cga. The workaround is to use a later model video card like EGA or VGA which is backwards compatible with CGA, as these later cards do not support the composite mode, you will get RGBI output instead. But you may have to find a way to force the game to use CGA, if it also supports EGA or VGA.

Keyboard shortcuts:

By default the following keyboard shortcuts, specific to CGA and PCjr are available:

  • CTRL-F7 switch between early and late model IBM CGA adapter emulation

  • CTRL-F8 switch between Auto, RGBI and Composite monitor output

  • CTRL-Shift-F7 Decrease Hue

  • CTRL-Shift-F8 Increase Hue

If your using machine=cga_mono, you instead have these shortcuts:

  • CTRL-F7 Cycles between CGA monochrome palettes (green, amber, white, grey)

  • CTRL-F8 Cycles between high and low brightness

Note
There is no real indicator in DOSBox-X that you changed settings with keyboard shortcuts, or to check the current status. The only indications are a possible change of picture output, and if you have the logging enabled, to check the log output.

CGA machine options

This standard CGA mode can be set using machine=cga in your DOSBox-X config file. Video memory is fixed to 16KiB and cannot be changed.

In addition, DOSBox-X also has a few CGA variants.

  • cga_mono by default gives a green screen CGA output.

  • cga_rgb emulates a CGA adapter connected to a RGBI monitor.

  • cga_composite emulates an early model IBM CGA adapter connected to a composite monitor.

  • cga_composite2 emulates a late model IBM CGA adapter connected to a composite monitor.

Note
The difference between machine=cga, machine=cga_composite and machine=cga_composite2 options, is that the former will only use composite mode if it detects that a game is trying to use artefact colours. While the later two will start in composite mode, so you will always get artefact colours even if the game was not designed for it. You can however use the CTRL-F7 and CTRL-F8 key combinations with any of them to switch to different output options.
Game:Microsoft Adventure CGA
Microsoft Adventure - CGA 80x25 text
Game:KQ1 CGA
King’s Quest 1 with CGA 4-colour on a EGA or VGA adapter
Game:KQ1 CGA Artefact
King’s Quest 1 with CGA Artefact colour
Game:KQ1 CGA RGB
King’s Quest 1 with CGA 4-colour on RGB screen
Game:KQ1 CGA Mono Green
King’s Quest 1 with CGA Mono Green screen
Game:KQ1 CGA Mono Amber
King’s Quest 1 with CGA Mono Amber screen
Game:KQ1 CGA Mono White
King’s Quest 1 with CGA Mono White screen
Game:Monkey Island CGA
Monkey Island with CGA 4-colour
Game:Monkey Island CGA composite
Monkey Island with CGA composite
Note
To get the above 4-colour screenshot of KQ1 with a EGA or VGA adapter, the game was started with sierra -c to force it into CGA mode.
Note
To get the above CGA RGB screenshot of KQ1 with machine=cga_rgb, it was necessary to start the game with sierra -r, otherwise you only get black-and-white from the game.

Hercules

The Hercules Graphics Card was released in 1982 by Hercules Computer Technology. It is a monochrome card that is backward compatible with MDA, with the addition of a single 720x350 graphics mode. This made it a very popular card for businesses, and due to its graphics support it is supported by many games. The vertical refresh of Hercules like MDA is only 50Hz, but with the phosphor glow of green and amber monochrome monitors this was not noticeable.

This mode can be set using machine=hercules in your DOSBox-X config file. Video memory is fixed to 64KiB and cannot be changed. You can optionally change the display colour by setting in the [render] section monochrome_pal= to green, amber, grey or white, or cycle between the modes with CTRL-F7.

You can also cycle between low and high brightness of the monochrome display by pressing CTRL-F8.

Note
Some software like CheckIt and QBasic may detect a Hercules adapter as MDA, unless a TSR like MSHERC.COM is loaded into memory.
Note
Some 3rd party Hercules compatible cards, like early ATI cards, also had support for displaying CGA mode on a MDA/Hercules compatible monitor. And there are also TSRs (Terminate and Stay Resident) programs that can emulate CGA on Hercules with varying degrees of success.
Game:KQ1 Hercules Green
King’s Quest 1 with Hercules Green screen
Game:KQ1 Hercules Amber
King’s Quest 1 with Hercules Amber screen
Game:KQ1 Hercules White
King’s Quest 1 with Hercules White screen
Game:Monkey Island Hercules White
Monkey Island with Hercules White screen

IBM PCjr

The PCjr was introduced by IBM in March 1984, and discontinued due to poor sales just over a year later. It’s integrated video card is backwards compatible with CGA, but adds a few new modes:

  • 160x200 at 16 colours

  • 320x200 at 16 colours

  • 640x200 at 4 colours

The vertical refresh of the PCjr like CGA is 60Hz, which matches up well with the majority of modern 60Hz LCD displays.

This mode can be set using machine=pcjr in your DOSBox-X config file. Video memory is fixed to 128KiB and cannot be changed.

Note
Enabling PCjr mode, also enables PCjr sound emulation

In addition, DOSBox-X also has a few PCjr variants.

  • pcjr_composite emulates an early model IBM CGA connected to a composite monitor.

  • pcjr_composite2 emulates a late model IBM CGA connected to a composite monitor.

Note
The difference between machine=pcjr, machine=pcjr_composite and machine=pcjr_composite2 options, is that the former will only use composite mode if it detects that a game is trying to use artefact colours. While the later two will start in composite mode, so you will always get artefact colours even if the game was not designed for it. You can however use the CTRL-F7 and CTRL-F8 key combinations with any of them to switch to different output options.

Keyboard shortcuts:

By default the following keyboard shortcuts, specific to CGA and PCjr are available:

  • CTRL-F7 switch between early and late model IBM CGA adapter emulation

  • CTRL-F8 switch between Auto, RGBI and Composite monitor output

  • CTRL-Shift-F7 Decrease Hue

  • CTRL-Shift-F8 Increase Hue

Game:KQ1 PCjr
King’s Quest 1 on IBM PCjr

Tandy

Tandy graphics, sometimes abbreviated to TGA, was introduced with the Tandy 1000 in 1984, which began as a clone of the IBM PCjr.

It has all the CGA and PCjr video modes, but some differences exist, such as how the video memory is mapped, which can cause incompatibilities. Later Tandy 1000 models added an additional video mode, called "Tandy Video II" or ETGA for 640x200 at 16 colours.

Tandy computers with Tandy Graphics were available on the market for much longer than the IBM PCjr, resulting in many games that supported it. Tandy computers were also available with faster processors, up to a 286 running at 10MHz while the original IBM PCjr was only ever available with a 4.77MHz 8088.

The vertical refresh of the Tandy 1000 like CGA is 60Hz, which matches up well with the majority of modern 60Hz LCD displays.

This mode can be set using machine=tandy in your DOSBox-X config file. Video memory is fixed to 128KiB and cannot be changed.

Note
Enabling Tandy mode, also enables Tandy sound emulation (which is likewise derived from the IBM PCjr)
Note
While early Tandy 1000 models had composite out similar to CGA and the PCjr, this is not currently emulated in DOSBox-X.
Note
Many games that support both Tandy and EGA, look near identical in both. It would appear that game developers took a lowest-common-denominator approach and simply used the same resolution and graphic assets for both.
Game:Monkey Island Tandy
Monkey Island with Tandy

EGA

EGA stands for Enhanced Graphics Adapter and was introduced by IBM in 1984, as the official follow-on to CGA. It still only supports up to 16 colours on-screen, but out of a gamut of 64 colours and at higher resolution.

The original adapters came with 64KiB video RAM, but could be upgraded to 128 or 192KiB. Some EGA clones even provided 256KiB, and additional high-res video modes.

One feature it dropped however, was the composite output support. As such, it does not support the CGA artefact colours.

The vertical refresh of EGA like CGA is 60Hz, which matches up well with the majority of modern 60Hz LCD displays.

The EGA emulation provided by DOSBox-X by default provides 256KiB of video RAM, by setting vmemsizekb= in the [video]section of the DOSBox-X config file, it is possible to reduce it instead to 64 or 128KB. e.g.,

[dosbox]
machine=ega

[video]
vmemsize=0
vmemsizekb=128
Note
Emulating 64KiB of video memory with EGA is not recommended, as the code for it is experimental and does not properly emulate a 64KiB EGA card.
Note
Some clone EGA cards added extra video memory and video modes, typically known as SuperEGA cards. The emulation of such cards is not supported by DOSBox-X.

Graphics modes:

In addition to being backward compatible with CGA, EGA supports:

  • 640×350 w/16 colours (from a 6 bit palette of 64 colours), pixel aspect ratio of 1:1.37.

  • 640×350 w/2 colours, pixel aspect ratio of 1:1.37.

  • 640×200 w/16 colours, pixel aspect ratio of 1:2.4.

  • 320×200 w/16 colours, pixel aspect ratio of 1:1.2.

Text modes:

  • 40×25 with 8×8 pixel font (effective resolution of 320×200)

  • 80×25 with 8×8 pixel font (effective resolution of 640×200)

  • 80×25 with 8×14 pixel font (effective resolution of 640×350)

  • 80×43 with 8×8 pixel font (effective resolution of 640×344)

EGA machine options

This mode can be set using machine=ega in your DOSBox-X config file

Game:KQ1 EGA
King’s Quest 1 on EGA
Game:Monkey Island EGA
Monkey Island original Edition in EGA
Game:Monkey Island VGA in EGA
Monkey Island VGA Edition in EGA
Game:KQ1 SCI EGA
King’s Quest 1 SCI remake in EGA

Amstrad

Amstrad in 1986 introduced the PC1512 which has CGA (RGBI only) graphics but also adds an additional 640x200 16 colour mode.

Very little software exists that can use this mode. One example was the bundled GEM Paint program, and another is a pretty bad and obscure boxing game "Frank Bruno’s Boxing". Lastly there is a PC1512.DRV driver for old Sierra SCI0 and SCI1 games.

The vertical refresh of the Amstrad like CGA is 60Hz, which matches up well with the majority of modern 60Hz LCD displays.

This mode can be set using machine=amstrad in your DOSBox-X config file. Video memory is fixed to 64KiB and cannot be changed.

Game:KQ1 SCI Amstrad
King’s Quest 1 SCI remake on Amstrad using PC1512.DRV

PC-98

The NEC PC-9800, simply known as the PC-98, were a family of computers made by NEC and sold in Japan throughout 1982 to 2000, which used MS-DOS with modifications to support the PC-98 BIOS and Japanese DBCS (Double Byte Character Set) characters. It’s supported in DOSBox-X by setting machine=pc98 in your DOSBox-X config file. More information about PC-98 support can be found in the PC-98 guide page:

JEGA

JEGA is a variation of EGA for the Japanese market, conceived by Microsoft Japan and released in 1987 as part of AX (Architecture eXtended).

Its intended purpose was the display of the Japanese characters which required a higher resolution, as such this added a 640x480 video mode.

It was not very successful, as IBM introduced VGA shortly after which has a similar video mode.

The vertical refresh of JEGA like EGA and CGA is 60Hz, which matches up well with the majority of modern 60Hz LCD displays.

This mode can be set using machine=jega in your DOSBox-X config file. Video memory defaults to 256KiB.

DCGA

DCGA is the video mode used by the Olivetti M24, AT&T 6300 and Toshiba T3100. DOSBox-X emulates the DCGA mode via the VGA mode.

This mode can be enter via DCGA command when you are in a VGA video mode.

If you enable Toshiba J-3100 emulation (by setting dosv=jp and j3100=on in your DOSBox-X config file), then the J-3100 mode will be enabled when DOSBox-X starts. Typing VGA command to go to the Japanese DOS/V mode, and then typing DCGA command will return to the J-3100 emulation mode.

MCGA

MCGA stands for Multi-Color Graphics Array and was introduced by IBM in 1987 as integrated in the IBM PS/2 Model 30 and a bit later the Model 25. No stand-alone MCGA cards were ever produced.

MCGA supports all CGA display modes (RGBI only) plus 640×480 monochrome at a refresh rate of 60 Hz, and 320×200 with 256 colours (out of a palette of 262,144) at 70 Hz. It does not however provide backwards compatibility with EGA. In effect, MCGA can be thought of as either an enhanced CGA card, or a cost-reduced VGA card.

As the high-colour mode is near identical to the one offered by VGA, many games have a combined "VGA/MCGA" video option, and selecting MCGA with a VGA adapter normally also works.

One rare example of a game that offers a MCGA option, but does not support VGA is Thexder. This is not because the game could not have worked on VGA, but rather because it looks for specific machine settings that are only true on the above PS/2 Models. As such as part of the MCGA emulation, DOSBox-X also emulates some PS/2 specific machine settings, just enough to make games like Thexder work in MCGA mode.

This mode can be set using machine=mcga in your DOSBox-X config file. Video memory is fixed to 64KiB and cannot be changed.

Note
Many games that offer both a MCGA and VGA option, used the same resolution and assets for both, making them look identical. However, due to other MCGA limitations the VGA option may provide a better experience.

VGA

VGA stands for Video Graphics Array and was introduced by IBM in 1987. One of the stand-out features was that it could display up to 256 colours from a palette of 262,144.

It originally featured 256KiB of video RAM.

VGA is backward compatible with both EGA and CGA (RGBI mode only), and adds the following new graphics modes:

  • 640×480 in 16 colours or monochrome

  • 320×200 in 256 colours (Mode 13h)

One new feature is the ability to run at 70Hz vertical refresh, where CGA and EGA had only supported 60Hz. This is important for modern LCD displays, as many will only run at 60Hz, which causes issues with many games that were designed to run at 70Hz, resulting in dropped frames. This can cause both video and audio distortion, as in many games the audio is linked to the frame rate.

This mode can be set using machine=vgaonly in your DOSBox-X config file

Game:Monkey Island VGA
Monkey Island VGA Edition

SVGA

Many clones were produced of the VGA adapter, often with enhanced capabilities like more video memory, additional high-res video modes and various types of acceleration which were typically referred to as SuperVGA, or SVGA.

S3 Graphics

Note
The default machine=svga_s3 option refers to the S3 Trio64.

S3 Trio64

Note
This is the default video card emulated by DOSBox-X. It currently supports the widest range of video modes of all fully supported cards.

Introduced in 1994. Successor to the Vision864, and has support for VESA VBE. The original S3 Trio64 cards would have had VESA VBE 1.2, but the card emulated by DOSBox-X has VESA VBE 2.0.

This mode can be set using either machine=svga_s3 or machine=svga_s3trio64 in your DOSBox-X config file. Defaults to 2MiB video memory, but can be changed to 512KiB, 1MiB, 4MiB, 8MiB and 16MiB.

Note
Original S3 Trio64 cards were only produced with 1MiB or 2MiB and expandable up to 4MiB. This is reflected by the official S3 drivers which do not support more than 4MiB with the S3 Video drivers for Windows. More video memory can however be used in VESA mode.

There are a few variations of the Trio64 that are available:

  • machine=vesa_nolfb - The same as svga_s3 with VESA VBE 2.0, but with a no-linear frame buffer hack. Sometimes runs faster than plain svga_s3. Only needed in a few games due to either a bug in DOSBox or the linear-frame buffer mode of the game.

  • machine=vesa_oldvbe - The same as svga_s3, but with VESA VBE 1.2. This is necessary for some older VESA VBE programs.

  • machine=vesa_oldvbe10 - The same as svga_s3, but with VESA VBE 1.0, which does not provide some optional mode information (mainly for testing)

Experimental S3 models

The emulation of the following S3 SVGA models should be considered experimental.

S3 86c928
Warning
The emulation of this card is considered experimental. It is not recommended for regular use.

Introduced in July 1992. Early Windows accelerator card.

The emulated PCI card has 2048KiB video RAM.

This mode can be set using machine=svga_s386c928 in your DOSBox-X config file.

S3 Vision864
Warning
The emulation of this card is considered experimental. It is not recommended for regular use.

Introduced in November 1993.

This mode can be set using machine=svga_s3vision864 in your DOSBox-X config file.

S3 Vision868
Warning
The emulation of this card is considered experimental. It is not recommended for regular use.

Introduced in 1994. Based on the Vision864, with added motion video acceleration.

This mode can be set using machine=svga_s3vision868 in your DOSBox-X config file.

S3 Trio32
Warning
The emulation of this card is considered experimental. It is not recommended for regular use.

Introduced in 1994. Low-cost 32bit version of the Trio64.

This mode can be set using machine=svga_s3trio32 in your DOSBox-X config file.

S3 Trio64V+
Warning
The emulation of this card is considered experimental. It is not recommended for regular use.

Introduced in June 1995. Successor to the Vision868. Similar to the Trio64, but adds partial MPEG-1 decode acceleration.

This mode can be set using machine=svga_s3trio64v+ in your DOSBox-X config file.

S3 ViRGE
Warning
The emulation of this card is considered experimental. It is not recommended for regular use.

Introduced in November 1995. These cards introduced S3’s own S3D 3D acceleration technology for games.

Very few games exist that made use of the S3D technology.

This mode can be set using machine=svga_s3virge in your DOSBox-X config file.

S3 ViRGE/VX
Warning
The emulation of this card is considered experimental. It is not recommended for regular use.

Introduced in November 1995. Similar to the S3 ViRGE but with up to 8MB VRAM and higher resolution graphics modes.

This mode can be set using machine=svga_s3virgevx in your DOSBox-X config file

Tseng Labs

Tseng Labs ET3000

Introduced in 1987. Early VGA clone card.

In addition to standard CGA (RGBI mode only), EGA and VGA this card supports the following display modes with the right drivers:

  • 640x480 with 2, 16 or 256 colours

  • 800x600 with 16 colours

  • 1024x768 with 16 colours

This mode can be set using machine=svga_et3000 in your DOSBox-X config file. Video memory defaults to 512KiB and cannot be adjusted.

Tseng Labs ET4000

Introduced in 1989. Became fairly popular, and supported in SVGA mode by various games.

In addition to standard CGA (RGBI mode only), EGA and VGA this card supports the following display modes with the right drivers:

  • 640x480 with 2, 16, 256, 32768, 65535 or 16.7M (*) colours

  • 800x600 with 16, 256, 32768 or 65535 colours

  • 1024x768 with 16 or 256 colours

  • 1280x1024 with 16 colours

Known issues with the above modes:

  • (*) Hangs on startup of Windows 3.0 in 16.7M colour mode

This mode can be set using machine=svga_et4000 in your DOSBox-X config file. Video memory defaults to 1024KiB, but can be adjusted to 256 or 512KiB as such:

[dosbox]
machine=svga_et4000

[video]
vmemsize=0
vmemsizekb=512

Paradise Systems PVGA1A

Introduced in 1988. Generic clone VGA card.

This mode can be set using machine=svga_paradise in your DOSBox-X config file. Video memory defaults to 512KiB, but can be adjusted to 256 or 1024KiB.

For 256KiB, set your config as follows:

[dosbox]
machine=svga_paradise

[video]
vmemsize=0
vmemsizekb=256

For 1024KiB, set your config as follows:

[dosbox]
machine=svga_paradise

[video]
vmemsize=1
vmemsizekb=0

VESA BIOS Extensions (VBE)

During the late 80’s and early 90’s many video card manufacturers existed, and as IBM was no longer leading the market, each manufacturer was doing it’s own thing with regards to setting the cards SVGA modes. This made it very difficult for software developers as they needed to support a plethora of different cards if they wanted to offer more then basic VGA.

As such the Video Electronics Standards Association (VESA) was born, and one of the first standardization efforts they led was the VESA BIOS Extensions (VBE).

  • VBE 1.0 was defined in 1989

  • VBE 1.1 was defined in 1990

  • VBE 1.2 was defined in 1991

  • VBE 2.0 was defined in 1994

The only card supported by DOSBox-X to provide VBE is the S3 Trio64, which defaults to VBE 2.0.

The following VESA tunables are available in the [video] section of the dosbox-x config file:

  • enable 8-bit dac (default: true)

    • If set, allow VESA BIOS calls in IBM PC mode to set DAC width. Has no effect in PC-98 mode.

  • vesa bank switching window mirroring (default: false)

    • If set, bank switch (windowed) VESA BIOS modes will ignore the window selection when asked to bank switch. Requests to control either Window A or Window B will succeed. This is needed for some demoscene productions with SVGA support that assume Window B is available, without which graphics do not render properly. If clear, Window B is presented as not available and attempts to use it will fail. Only Window A will be available, which is also DOSBox SVN behavior.

  • vesa bank switching window range check (default: true)

    • Controls whether calls to bank switch (set the window number) through the VESA BIOS apply range checking. If set, out of range window numbers will return with an error code. This is also DOSBox SVN behaviour. If clear, out of range window numbers are silently truncated to a number within range of available video memory and allowed to succeed. This is needed for some demoscene productions that rely on the silent truncation to render correctly without which drawing errors occur (e.g. end credits of Pill by Opiate)

  • vesa zero buffer on get information (default: true)

    • This setting affects VESA BIOS function INT 10h AX=4F00h. If set, the VESA BIOS will zero the 256-byte buffer defined by the standard at ES:DI, then fill in the structure. If clear, only the structure members will be filled in, and memory outside the initial 20-32 bytes will remain unmodified. This setting is ON by default. Some very early 1990s DOS games that support VESA BIOS standards may need this setting turned OFF if the programmer did not provide enough space for the entire 256 byte structure and the game crashes if it detects VESA BIOS extensions. Needed for: GETSADAM.EXE

  • vesa set display vsync (default: -1)

    • Whether to wait for vertical retrace if VESA Set Display Address is used to pan the display. The default value -1 will wait if vesa_oldvbe, or not otherwise. 0 means not to wait. 1 means always to wait. This affects only subfunction 0x00. Subfunction 0x80 will always wait as specified in the VESA BIOS standard. It is recommended to set this to 1 for VBETEST.EXE so that the panning test and information does not go by too fast.

  • vesa lfb base scanline adjust (default: 0)

    • If non-zero, the VESA BIOS will report the linear framebuffer offset by this many scanlines. This does not affect the linear framebuffer’s location. It only affects the linear framebuffer location reported by the VESA BIOS. Set to nonzero for DOS games with sloppy VESA graphics pointer management. MFX "Melvindale" (1996): Set this option to 2 to centre the picture properly.

  • vesa map non-lfb modes to 128kb region (default: false)

    • If set, VESA BIOS SVGA modes will be set to map 128KB of video memory to A0000-BFFFF instead of 64KB at A0000-AFFFF. This does not affect the SVGA window size or granularity. Some games or demoscene productions assume that they can render into the next SVGA window/bank by writing to video memory beyond the current SVGA window address and will not appear correctly without this option.

  • vesa modelist cap (default: 0)

    • If nonzero, the VESA modelist is capped so that it contains no more than the specified number of video modes.

  • vesa modelist width limit (default: 1280)

    • If nonzero, VESA modes with horizontal resolution higher than the specified pixel count will not be listed. This is another way the modelist can be capped for DOS applications that have trouble with long modelists.

  • vesa modelist height limit (default: 1024)

    • If nonzero, VESA modes with vertical resolution higher than the specified pixel count will not be listed. This is another way the modelist can be capped for DOS applications that have trouble with long modelists.

  • vesa vbe put modelist in vesa information (default: false)

    • If set, the VESA modelist is placed in the VESA information structure itself when the DOS application queries information on the VESA BIOS. Setting this option may help with some games, though it limits the mode list reported to the DOS application.

  • vesa vbe 1.2 modes are 32bpp (default: true)

    • If set, truecolor (16M color) VESA BIOS modes in the 0x100-0x11F range are 32bpp. If clear, they are 24bpp. Some DOS games and demos assume one bit depth or the other and do not enumerate VESA BIOS modes, which is why this option exists.

  • allow low resolution vesa modes (default: true)

    • If set, allow low resolution VESA modes (320x200x16/24/32bpp and so on). You could set this to false to simulate SVGA hardware with a BIOS that does not support the lowres modes for testing purposes.

  • allow explicit 24bpp vesa modes (default: false)

    • If set, additional 24bpp modes are listed in the modelist regardless whether modes 0x100-0x11F are configured to be 24bpp or 32bpp. Setting this option can provide the best testing and development environment for new retro DOS code. If clear, 24bpp will only be available in the 0x100-0x11F range if the "vesa vbe 1.2 modes are 32bpp" is false. Setting to false helps to emulate typical SVGA hardware in which either 24bpp is supported, or 32bpp is supported, but not both. Disabled by default.

  • allow high definition vesa modes (default: false)

    • If set, offer HD video modes in the VESA modelist (such as 1280x720 aka 720p or 1920x1080 aka 1080p). This option also offers 4:3 versions (960x720 and 1440x1080) for DOS games that cannot properly handle a 16:9 aspect ratio, and several other HD modes. The modes enabled by this option are still limited by the width and height limits and available video memory. This is unusual for VESA BIOSes to do and is disabled by default.

  • allow unusual vesa modes (default: false)

    • If set, unusual (uncommon) modes are added to the list. The modes reflect uncommon resolutions added by external drivers (UNIVBE), some VESA BIOSes, some laptop and netbook displays, and some added by DOSBox-X for additional fun. Disabled by default.

  • allow 32bpp vesa modes (default: true)

    • If the DOS game or demo has problems with 32bpp VESA modes, set to 'false'

  • allow 24bpp vesa modes (default: true)

    • If the DOS game or demo has problems with 24bpp VESA modes, set to 'false'

  • allow 16bpp vesa modes (default: true)

    • If the DOS game or demo has problems with 16bpp VESA modes, set to 'false'

  • allow 15bpp vesa modes (default: true)

    • If the DOS game or demo has problems with 15bpp VESA modes, set to 'false'

  • allow 8bpp vesa modes (default: true)

    • If the DOS game or demo has problems with 8bpp VESA modes, set to 'false'

  • allow 4bpp vesa modes (default: true)

    • If the DOS game or demo has problems with 4bpp VESA modes, set to 'false' These modes have the same 16-color planar memory layout as standard VGA, but at SVGA resolution.

  • allow 4bpp packed vesa modes (default: false)

    • If the DOS game or demo has problems with 4bpp packed VESA modes, set to 'false'. 4bpp (16-color) packed is an unusual novelty mode only seen on specific Chips & Tech 65550 VESA BIOSes such as the one in a Toshiba Libretto laptop. Disabled by default.

  • allow tty vesa modes (default: true)

    • If the DOS game or demo has problems with text VESA modes, set to 'false'

links:

Dual monitor

The original IBM PC could already support dual-monitor by using both MDA and CGA video cards at the same time. This also works with MDA+EGA, MDA+VGA and MDA+SVGA. Hercules can be used as a more capable substitute for MDA.

This is possible because MDA (and Hercules) don’t conflict with the resources needed for CGA/EGA/VGA and SVGA. As such it is not possible for instance to have two VGA cards, as they would conflict.

Programs known to support a dual monitor setup:

The use of a secondary monitor is partially supported by DOSBox-X. It works by starting DOSBox-X with the -display2 option as such:

dosbox-x -display2

The secondary (MDA only) display will output on a terminal window. If you started DOSBox-X from a terminal, it will output the second display to that same terminal.

The second display will default to white text, but you can switch to green with -display2 green or to amber with -display2 amber.

At the DOS prompt you can switch primary display by use of the mode command. To make the MDA display primary:

mode mono

To make the CGA/EGA/VGA or SVGA display primary:

mode co80
Note
The current dual monitor support is limited, in part because it uses the terminal window instead of a real window. As such it may not work properly with some programs, and it is limited to MDA only (no Hercules).
Note
It is advised that you set your terminal window to 80x25 as it may experience rendering issues otherwise.
Note
Because both the second display code and the integrated debugger uses the terminal, they are mutually exclusive. e.g., the "Start DOSBox-X Debugger" option will be greyed out when you start with the -display2 option.

links: