-
Notifications
You must be signed in to change notification settings - Fork 383
Guide:Video card support in DOSBox‐X
Back to the DOSBox-X Wiki Welcome page.
- Selecting a video adapter in DOSBox-X
- Overview
- Backwards compatibility
- Supported PC video modes
- Dual monitor
-
[video] config section
- vmemdelay
- vmemsize
- vmemsizekb
- vbe window granularity
- vbe window size
- enable 8-bit dac
- high intensity blinking
- svga lfb base
- pci vga
- vga attribute controller mapping
- vga bios use rom image
- vga bios rom image
- vga bios size override
- video bios dont duplicate cga first half rom font
- video bios always offer 14-pixel high rom font
- video bios always offer 16-pixel high rom font
- video bios enable cga second half rom font
- forcerate
- sierra ramdac
- sierra ramdac lock 565
- vga fill active memory
- page flip debug line
- vertical retrace poll debug line
- cgasnow
- vga 3da undefined bits
- rom bios 8x8 CGA font
- rom bios video parameter table
- int 10h points at vga bios
- unmask timer on int 10 setmode
- vesa bank switching window mirroring
- vesa bank switching window range check
- vesa zero buffer on get information
- vesa set display vsync
- vesa lfb base scanline adjust
- vesa map non-lfb modes to 128kb region
- ega per scanline hpel
- allow hpel effects
- allow hretrace effects
- hretrace effect weight
- vesa modelist cap
- vesa modelist width limit
- vesa modelist height limit
- vesa vbe put modelist in vesa information
- vesa vbe 1.2 modes are 32bpp
- allow low resolution vesa modes
- allow explicit 24bpp vesa modes
- allow high definition vesa modes
- allow unusual vesa modes
- allow 32bpp vesa modes
- allow 24bpp vesa modes
- allow 16bpp vesa modes
- allow 15bpp vesa modes
- allow 8bpp vesa modes
- allow 4bpp vesa modes
- allow 4bpp packed vesa modes
- allow tty vesa modes
- double-buffered line compare
- ignore vblank wraparound
- ignore extended memory bit
- enable vga resize delay
- resize only on vga active display width increase
- vga palette update on full load
- ignore odd-even mode in non-cga modes
- [vsync] config section
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 an 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 you’re looking for the best experience, the following shows the generally recommended order from the lowest quality to the 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. |
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). |
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, you’re 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.
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 LCDs.
Warning
|
The allow more than 640kb base memory configuration option allows more conventional memory, for instance, in combination with CGA graphics you can have up to 736KB of base memory. But not all software is compatible with this option. Even the included mem command will crash if it is set.
|
-
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.
-
40×25 with 8×8 pixel font (effective resolution of 320×200)
-
80×25 with 8×8 pixel font (effective resolution of 640×200)
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 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.
When using machine = cga
, 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
When using machine=cga_mono
, these keyboard shortcuts are instead available:
-
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. |
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.
There is also optional emulation of CGA "snow" distortion, which is disabled by default.
See the cgasnow
setting in the [video]
section below.
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.
|
Note
|
To get the above 4-colour screenshot of KQ1 with an 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.
|
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 an 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. |
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, with the addition of a few 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 LCDs.
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.
|
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
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 a 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 made 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 LCDs.
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. |
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 pallet of 64 colours and at a higher resolution.
The original IBM adapters came with just 64KiB video RAM, but could be upgraded to 128 or 256KiB.
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 LCDs.
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 modes, typically known as SuperEGA cards. The emulation of such cards is not supported by DOSBox-X. |
DOSBox-X emulates the EGA card with an EGA monitor. But with a real IBM EGA card it is also possible to use an MDA or CGA monitor.
Although rare, some software such as the IBM Fantasy Land Demo, which expects a CGA monitor with 200-line text mode and 8x8 font, and will not work properly with a regular EGA monitor with 350-line text mode and 8x14 font.
Starting with DOSBox-X 0.84.1 an EGA adapter attached to a 200-line CGA monitor can be emulated by setting machine=ega200
.
When using this reduced mode, the regular 350-line EGA modes will not be available.
Note
|
There is no support for emulating an EGA adapter with monochrome MDA monitor at this time. |
Regular EGA mode can be set using machine=ega
, or the reduced 200-line mode with machine=ega200
in your DOSBox-X config file.
Amstrad in 1986 introduced the PC1512 which is an IBM PC clone with CGA (RGBI only) graphics, but also adds a 640x200 16-colour mode.
Very little software exists that can use this mode. Here are some known examples:
-
Applications:
-
CompuSHOW (CSHOW) Graphics Viewer
-
GEM desktop environment
-
-
Games:
In addition, there is a PC1512.DRV driver for Sierra SCI0 and SCI1 games.
Note
|
There were more (mainly European) games that claimed PC1512 support, but most will only use the CGA mode. For instance Mobygames at the time of writing claims 27 Amstrad titles, but again most of them will only use the CGA mode. |
Note
|
The PC1512 also had a Hercules graphics mode, this is not emulated as part of the Amstrad emulation. |
The vertical refresh of the Amstrad like CGA is 60Hz, which matches up well with the majority of modern 60Hz LCDs.
This mode can be set using machine=amstrad
in your DOSBox-X config file.
Video memory is fixed to 64KiB and cannot be changed.
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 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 LCDs.
This mode can be set using machine=jega
in your DOSBox-X config file.
Video memory defaults to 256KiB.
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 enabled by typing DCGA
at the DOSBox-X prompt when you’re 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 the VGA
command you can go to the Japanese DOS/V mode, and then typing DCGA
command will return you to the J-3100 emulation mode.
MCGA stands for Multi-Color Graphics Array and was introduced by on April 2, 1987 as integrated in the IBM PS/2 Model 30 and a bit later that year on the Model 25. It features 64 KiB video RAM, and cannot be changed. 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 "MCGA/VGA" video option, and selecting MCGA with a VGA adapter normally also works.
One rare example of a game that offers an MCGA option, but does not work on 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 an 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 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 features 256 KiB of video RAM (fixed), and is backward compatible with CGA (RGBI only), EGA and MCGA.
VGA 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 LCDs, 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.
DOSBox-X does not have a true VGA emulation mode.
For normal use it is recommended to use the default machine = svga_s3
which is backward compatible with VGA.
Note
|
The provided machine = vgaonly option has some changes to improve VGA compatibility, but which makes it slower for the common use-case.
|
This mode can be set using machine=vgaonly
in your DOSBox-X config file
-
Disables non-VGA modes
-
Default 80x25 text mode of 720x400 with a 9x16 font, instead of the 640x400 with 8x16 font for the svga_* options.
-
Colour depth is reduced
-
Support for changing display parameters by scanline, needed by some games. e.g.,
-
Lemmings
-
Oh No More Lemmings
-
Pinball Fantasies
-
Support for video blanking tricks, needed by some games. e.g.,
-
Alien Carnage
-
Halloween Harry
Resources
Many clones were produced of the VGA adapter, often with more memory allowing higher colour depths, resolutions and refresh rates, in addition to various types of acceleration which were typically referred to as SuperVGA, or SVGA.
Note
|
The default machine=svga_s3 option refers to the S3 Trio64.
|
Note
|
All the emulated S3 cards have VESA VBE 2.0 support. |
Introduced in early 1994.
Available in 1, 2 and 4MB video memory configurations.
This mode can be set using machine=svga_s3vision864
in your DOSBox-X config file.
Links:
Introduced in early 1994. Apart from faster dual-ported video memory and larger memory sizes, identical to the Vision864.
Available in 2, 4 and 8MB video memory configurations.
This mode can be set using machine=svga_s3vision964
in your DOSBox-X config file.
Links:
Introduced in 1995.
Available in 1, 2 and 4MB video memory configurations. Based on the Vision864, with added motion video acceleration.
This mode can be set using machine=svga_s3vision868
in your DOSBox-X config file.
Links:
Introduced in April 1995. Apart from faster dual-ported video memory and larger memory sizes, identical to the Vision868.
Available in 2, 4 and 8MB video memory configurations.
This mode can be set using machine=svga_s3vision968
in your DOSBox-X config file.
Links:
Introduced in 1994. Low-cost 32bit version of the Trio64. Available in 1 or 2MB video memory configurations.
This mode can be set using machine=svga_s3trio32
in your DOSBox-X config file.
Links:
Introduced in 1994. Successor to the S3 Vision864, and has support for VESA Video BIOS Extensions (VBE).
Note
|
The original S3 Trio64 cards would have had VESA VBE 1.2, but the card emulated by DOSBox-X defaults to 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)
Links:
Introduced in June 1995.
Similar to the Trio64, but adds partial MPEG-1 decode acceleration. Available in 1, 2 or 4MB video memory configurations.
This mode can be set using machine=svga_s3trio64v+
in your DOSBox-X config file.
Links:
The emulation of the following S3 SVGA models should be considered experimental for the time being.
Warning
|
The emulation of this card is considered experimental. It is not recommended for normal use at this time. The only known issue remaining is a display issue with Win95 and highcolor (16-bit) affecting the start menu and window decorations. |
Introduced in July 1992. Early Windows and CAD accelerator card. Available in 1, 2, 3 or 4MB video RAM configurations.
The emulated PCI card has 2048KiB video RAM.
This mode can be set using machine=svga_s386c928
in your DOSBox-X config file.
Links:
Warning
|
The emulation of this card is considered experimental. It is not recommended for normal use at this time. It seems to work well enough for regular use, but the S3D functionality still needs to be implemented. |
The S3 Video and Rendering Graphics Engine (ViRGE) was introduced in November 1995. Available in 2 or 4MB video RAM configurations.
These cards introduced S3’s own S3D 3D acceleration technology for games. This card also introduced DirectX support.
Very few games exist that made use of the proprietary S3D technology.
This mode can be set using machine=svga_s3virge
in your DOSBox-X config file.
Links:
Warning
|
Like the regular S3 ViRGE, the emulation of this card is considered experimental. It is not recommended for normal use at this time. |
Introduced in November 1995. Similar to the regular S3 ViRGE but available with 2, 4 or 8MB VRAM, allowing higher resolution and higher colour depth’s graphics modes.
This mode can be set using machine=svga_s3virgevx
in your DOSBox-X config file
Links:
Links:
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.
Links:
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 reduced to 256 or 512KiB as such:
[dosbox] machine=svga_et4000 [video] vmemsize=0 vmemsizekb=512
Links:
The Paradise Systems PVGA1A is a SuperVGA (SVGA) card introduced in 1988. It is backward compatible with CGA (RGBI only), EGA, MCGA and VGA.
This mode can be set using machine=svga_paradise
in your DOSBox-X config file.
Video memory defaults to 512 KiB, but can be adjusted to 256 or 1024 KiB.
For 256 KiB, set your config as follows:
[dosbox]
machine=svga_paradise
[video]
vmemsize=0
vmemsizekb=256
For 1024 KiB, set your config as follows:
[dosbox]
machine=svga_paradise
[video]
vmemsize=1
vmemsizekb=0
Links:
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 its own thing in regard to setting their cards SVGA modes. Even different video chips from the same manufacturer were not necessarily compatible with each other.
This made it very difficult for software developers as they needed to support a plethora of different cards if they wanted to offer more than 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 emulated cards supported by DOSBox-X to provide VBE support are the S3 models, which all default to VBE 2.0.
There are many VESA settings available in the [video]
section of the DOSBox-x config file, which are documented below.
links:
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 also be used as a more capable substitute for MDA.
This is possible because MDA (and Hercules), when properly setup 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:
-
AutoCAD
-
Borland Turbo Debugger
-
CodeView debugger
-
Desqview
-
GEM (debugging only)
-
Lotus 123
-
Mechwarrior 2: Mercenaries v1.06 (debugging only)
-
PowerBASIC DOS
-
Softice debugger
-
Windows 3.x (debugging only)
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.
Be sure to keep the focus on the primary DOSBox-X window, even if you’re interacting with the secondary display in the terminal. If the application focus is on the secondary display in the terminal, keyboard input will not work correctly, and pressing CTRL-C will kill DOSBox-X.
The second display will default to white text, but you can get it to use green with -display2 green
or 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 (SDL) 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 to minimize character placement issues (most terminals default to 80x24, which is not ideal). |
Note
|
The 2nd display output to the terminal window will be in the DOS codepage that is set in DOSBox-X. However, most terminal programs expect Unicode these days, which will result in unicode question marks for a lot of characters. This can be minimized by using a terminal program that allows setting an encoding other than unicode, which a lot of Linux terminal programs allow. |
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:
Various video configuration settings can be set in the DOSBox-X configuration file in the [video]
section.
-
default value: 0
-
recommended values: -1, 0 to 2000
VGA Memory I/O delay in nanoseconds. Set to -1 to use default, 0 to disable.
Enable this option (-1 or nonzero) if you are running a game or demo that needs slower VGA memory (like that of older ISA hardware) to work properly. If your game is not sensitive to VGA RAM I/O speed, then turning on this option will do nothing but cause a significant drop in frame rate which is probably not what you want.
-
default value: -1
-
possible values: -1, 0, 1, 2, 4, 8, 16
Amount of video memory in megabytes for the emulated SVGA adapter.
The maximum resolution and color depth the emulated SVGA adapter will be able to display is determined by this value.
-
vmemsize=-1
: auto (vmemsizekb
is ignored), and default value is dependent on the emulated SVGA adapter. -
vmemsize=0
: 512kB for 800x600 at 256 colors (if vmemsizekb=0) -
vmemsize=1
: 1MB for 1024x768 at 256 colors or 800x600 at 64k colors -
vmemsize=2
: 2MB for 1600x1200 at 256 colors or 1024x768 at 64k colors or 640x480 at 16M colors -
vmemsize=4
: 4MB for 1600x1200 at 64k colors or 1024x768 at 16M colors -
vmemsize=8
: 8MB for up to 1600x1200 at 16M colors -
vmemsize=16
: 16MB only supported for VESA modes (regular S3 will be limited to 8MB)
For build engine games, use more memory than in the list above, so it can use triple buffering and thus won’t flicker.
Note
|
The minimum and maximum amount of video memory depends on the emulated video adapter. |
-
default value: 0
-
Possible values: 64, 128, 256, 512
Amount of video memory in kilobytes, in addition to that specified with vmemsize
.
This setting is only supported by the emulated EGA and SVGA video adapters.
-
default value: 0
Controls VESA BIOS non-linear framebuffer window granularity in KB. This affects ONLY the VESA BIOS extensions.
Set 0 to functional normally.
-
default value: 0
Controls VESA BIOS non-linear framebuffer window size in KB. This affects ONLY the VESA BIOS extensions.
Set 0 to functional normally.
-
default value: true
-
valid values: true, false
If set, allow VESA BIOS calls in IBM PC mode to set DAC width. Has no effect in PC-98 mode.
-
default value: true
-
valid values: true, false
Set to false if you want to see high-intensity background colors instead of blinking foreground text. This option has no effect in PC-98 and some other video modes.
-
default value: 0
If non-zero, define the physical memory address in hexadecimal of the linear framebuffer.
-
default value: true
-
valid values: true, false
Determines if the emulated SVGA adapter is PCI based.
-
If true, SVGA is emulated as if a PCI device (when
enable pci bus=true
). -
If false, it will be emulated as an ISA device.
-
default value: auto
-
valid values: auto, 4x4, 4low, first16
This affects how the attribute controller maps colors, especially in 256-color mode.
Some SVGA cards handle the attribute controller palette differently than most SVGA cards.
-
auto
: Automatically pick the mapping based on the SVGA chipset. -
4x4
: Split into two 4-bit nibbles, map through attribute controller and recombine. This is standard VGA behavior including clone SVGA cards. -
4low
: Split into two 4-bit nibbles, remap only the low 4 bits, recombine. This is standard ET4000 behavior.
Note
|
Demoscene executable 'COPPER.EXE' requires the '4low' behavior in order to display line-fading effects (including scrolling credits) correctly, else those parts of the demo show up as a blank screen. |
-
default value: false
-
valid values: true, false
If true, load a VGA BIOS from a ROM image file. If false, provide our own INT 10h emulation as normal.
-
default value: <none>
If set, load the VGA BIOS from the specified file (must be between 1KB to 64KB in size).
If left unset, and DOSBox-X is asked to load a VGA BIOS from a file, a file name is chosen automatically based on the machine type.
For example, Tseng ET4000 emulation (machine=svga_et4000
) will look for et4000.bin
.
VGA BIOS ROM images can be dumped from real hardware or downloaded from the PCem or 86Box ROMs collection.
Default ROM filenames:
-
machine=svga_s3
default ROM filename:TRIO64 (Ver. 1.5-07) [VGA] (S3 Incorporated).bin
-
machine=svga_et4000
default ROM filename:et4000.bin
-
default value: 0
VGA BIOS size override. Override the size of the VGA BIOS (normally 32KB in compatible or 12KB in non-compatible).
-
default value: false
-
valid values: true, false
If true, save 4KB of EGA/VGA ROM space by pointing to the copy in the ROM BIOS of the first 128 chars.
-
default value: false
-
valid values: true, false
Determines if a 14-pixel high font is available in the video BIOS ROM.
-
If true, the video BIOS will always have the 14-pixel ROM font.
-
If false, the 14-pixel ROM font will not be offered except for EGA/VGA emulation.
-
default value: false
-
valid values: true, false
Determines if a 16-pixel high font is available in the video BIOS ROM.
-
If true, video BIOS will always have the 16-pixel ROM font.
-
If false, the 16-pixel ROM font will not be offered except for VGA emulation.
-
default value: true
-
valid values: true, false
If true, and emulating CGA/PCjr/Tandy, automatically provide the second half of the 8x8 ROM font.
This setting is ignored for EGA/VGA emulation. If false, you will need a utility like GRAFTABL.COM to load the second half of the ROM font for graphics.
Note
|
If you disable the 14 & 16 pixel high font AND the second half when machine=cga , you will disable the video BIOS completely.
|
-
default value: <none>
-
valid values: ntsc, pal, <rate in Hz>
Force the VGA framerate (refresh rate) to a specific value (ntsc, pal, or specific hz), no matter what.
* ntsc
= As used in North America is 60Hz
* pal
= As used in Europe and many other places is 50Hz
VGA specific resolutions normally default to 70Hz, although many clone VGA and SVGA cards supported higher values.
Note
|
Almost all modern LCDs only support 60Hz, which is not ideal for games meant to run at 70Hz. |
-
default value: true
-
valid values: true, false
Whether to emulate a Sierra or compatible RAMDAC at IO port 3C6h-3C9h.
Some DOS games expect to access IO port 3C6h to enable highcolor/truecolor SVGA modes on older chipsets. Disable if you wish to emulate SVGA hardware that lacks a RAMDAC or (depending on the chipset) does not emulate a RAMDAC that is accessible through IO port 3C6h.
This option has no effect for non-VGA video hardware.
-
default value: false
-
valid values: true, false
When emulating High Sierra highcolor RAMDAC, assume 5:6:5 at all times if set. Else, bit 6 of the DAC command selects between 5:5:5 and 5:6:5.
Set this option for demos or games that got the command byte wrong (MFX Transgrassion 2) or any other demo that is not rendering highcolor 16bpp correctly.
-
default value: false
-
valid values: true, false
If true, DOSBox-X will fill inactive video memory regions with RAM rather than mapping them as empty.
This allows the ETen Chinese DOS system (e.g. ET16V and ET24VA) to run.
-
default value: false
-
valid values: true, false
VGA debugging switch.
If true, an inverse line will be drawn on the exact scanline that the CRTC display offset registers were written.
This can be used to help diagnose whether the DOS game is page flipping properly according to vertical retrace if the display on-screen is flickering.
-
default value: false
-
valid values: true, false
VGA debugging switch.
If true, an inverse green dotted line will be drawn on the exact scanline that the CRTC status port (0x3DA) was read.
This can be used to help diagnose whether the DOS game is properly waiting for vertical retrace.
-
default value: true
-
valid values: true, false
IBM CGA in 80x25 text mode, when directly accessing the video memory during screen drawing, suffered from a distortion referred to as CGA "snow". This effect is not visible when the software uses the BIOS to write to the screen.
-
If true, this emulates the "snow" distortion
-
If false, the "snow" distortion is disabled
This only applies when machine=cga
.
Later video cards were not effected by this, nor were some clone CGA cards.
Note
|
This parameter can also be changed with the built-in CGASNOW command when in CGA mode.
|
-
default value: 4
VGA status IO port 3BA/3DAh only defines bits 0 and 3. This setting allows you to assign a bit pattern in hexadecimal to the undefined bits.
The purpose of this hack is to deal with demos that read and handle IO port 3DAh in ways that might crash if all are zero.
-
default value: true
-
valid values: true, false
If true, similar to the mainline DOSBox compatible BIOS mapping, a legacy 8x8 CGA font (first 128 characters) is stored at 0xF000:0xFA6E.
DOS programs that do not use INT 10h to locate fonts might require that the font is located there.
-
default value: true
-
valid values: true, false
If true, similar to the mainline DOSBox compatible BIOS mapping, DOSBox-X will emulate the video parameter table and assign that to INT 1Dh. If false, the table will not be provided.
-
default value: true
-
valid values: true, false
This option only affects EGA, VGA and SVGA emulation.
-
If true, INT 10h points at the VGA BIOS.
-
If false, INT 10h points into the system BIOS.
This option is needed for some older DOS applications that do some additional checks before detecting EGA/VGA hardware (SuperCalc).
-
default value: false
-
valid values: true, false
If true, INT 10h will unmask IRQ 0 (timer) when setting video modes.
-
default value: false
-
valid values: true, 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 behaviour.
-
default value: true
-
valid values: true, false
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)
-
default value: true
-
valid values: true, false
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.
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
-
default value: -1
-
valid values: -1, 0, 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.
-
default value: 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.
-
default value: false
-
valid values: true, 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.
-
default value: true
-
valid values: true, false
If true, EGA emulation allows changing horizontal pel (panning) register per scanline.
This is reportedly the behavior of IBM EGA hardware according to DOSBox SVN and enabled by default.
If false, EGA emulation latches hpel on vertical retrace end (like VGA does), which may have been EGA clone behavior that some games were written against.
Commander Keen episodes 4-6 need this option set to false when machine=ega
.
This option affects only EGA emulation. To change VGA hpel behavior, use the allow hpel effects
setting instead.
-
default value: false
-
valid values: true, false
If true, allow the DOS demo or program to change the horizontal pel (panning) register per scanline. Some early DOS demos use this to create waving or sinus effects on the picture.
Not very many VGA chipsets allow this, so far, only ATI chipsets are known to support this effect.
-
default value: false
-
valid values: true, false
If true, allow the DOS demo or program to make the picture wavy by playing with the 'start horizontal retrace' register of the CRTC during the active picture.
Some early DOS demos (Copper by Surprise!productions) need this option set for some demo effects to work.
-
default value: 4.00
If emulating hretrace effects, this parameter adds 'weight' to the offset to smooth it out.
The larger the number, the more averaging is applied. This is intended to emulate the inertia of the electron beam in a CRT monitor
-
default value: 0
If non-zero, the VESA modelist is capped so that it contains no more than the specified number of video modes.
-
default value: 1200
If non-zero, 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.
-
default value: 1024
If non-zero, 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.
-
default value: false
-
valid values: true, false
If true, 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.
-
default value: auto
-
valid values: true, false, auto
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.
-
If true, truecolor (16M color) VESA BIOS modes in the 0x100-0x11F range are 32bpp.
-
If false, they are 24bpp.
-
If set to auto, this is determined by the type of SVGA chipset emulated.
-
default value: true
-
valid values: true, false
If true, allow low resolution VESA modes (320x200x16/24/32bpp and so on).
You could set this too false to simulate SVGA hardware with a BIOS that does not support the low resolution modes for testing purposes, or to limit the amount of modes available.
-
default value: false
-
valid values: true, 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 true, 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.
-
default value: false
-
valid values: true, false
If set, offer HD video (16:9 aspect ratio) 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 therefore disabled by default.
-
default value: false
-
valid values: true, false
If true, unusual (uncommon) modes are added to the VESA modelist.
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.
-
default value: true
-
valid values: true, false
If the DOS game or demo has problems with 32bpp VESA modes, set to 'false'.
These modes have the same 16-color planar memory layout as standard VGA, but at SVGA resolution.
-
default value: true
-
valid values: true, false
If the DOS game or demo has problems with 24bpp (aka True Color) VESA modes, set to 'false'.
These modes have the same 16-color planar memory layout as standard VGA, but at SVGA resolution.
-
default value: true
-
valid values: true, false
If the DOS game or demo has problems with 16bpp (aka High Color) VESA modes, set to 'false'.
These modes have the same 16-color planar memory layout as standard VGA, but at SVGA resolution.
-
default value: true
-
valid values: true, false
If the DOS game or demo has problems with 15bpp VESA modes, set to 'false'.
These modes have the same 16-color planar memory layout as standard VGA, but at SVGA resolution.
-
default value: true
-
valid values: true, false
If the DOS game or demo has problems with 8bpp (256 color) VESA modes, set to 'false'.
These modes have the same 16-color planar memory layout as standard VGA, but at SVGA resolution.
-
default value: true
-
valid values: true, false
If the DOS game or demo has problems with 4bpp (16 color) VESA modes, set to 'false'.
These modes have the same 16-color planar memory layout as standard VGA, but at SVGA resolution.
-
default value: false
-
valid values: true, false
If the DOS game or demo has problems with 4bpp (16 color) 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.
-
default value: true
-
valid values: true, false
If the DOS game or demo has problems with VESA text modes, set to 'false'
-
default value: false
-
valid values: true, false
This setting affects the VGA Line Compare register.
-
Set too false to emulate most VGA behavior
-
Set to true for the value to latch once at the start of the frame.
-
default value: false
-
valid values: true, false
DOSBox-X can handle active display properly if games or demos reprogram vertical blanking to end in the active picture area. If the wraparound handling prevents the game from displaying properly, set this to false.
Out of bounds vblank values will be ignored.
-
default value: false
-
valid values: true, false
Some DOS applications use VGA 256-color mode but accidentally clear the extended memory bit originally defined to indicate whether EGA hardware has more than 64KB of RAM.
Setting this option can correct for that. Needed for Mr. Blobby.
-
default value: false
-
valid values: true, false
If the DOS game you are running relies on certain VGA raster tricks that affect active display area, enable this option.
This adds a delay between VGA mode changes and window updates. It also means that if you are capturing a demo or game, that your capture will also show a few garbled frames at any point mode changes occur, which is why this option is disabled by default.
If you intend to run certain DOS games and demos like DoWhackaDo, enable this option.
-
default value: false
-
valid values: true, false
If true, changes to the Display End register of the CRTC do not trigger DOSBox-X to resize its window IF the value written is less than the current value.
Some demos like DoWhackaDo need this option set because of the way its raster effects work. If the DOSBox-X window rapidly changes size during a demo try setting this option. Else, leave it turned off.
Changes to other VGA CRTC registers will trigger a DOSBox-X mode change as normal regardless of this setting.
-
default value: true
-
valid values: true, false
Update the VGA palette only on setting all 3 bytes.
-
If true, all three bytes of the palette entry must be loaded before taking the color, which is fairly typical SVGA behavior.
-
If false, partial changes are allowed.
-
default value: false
-
valid values: true, false
Some demoscene productions use VGA Mode X but accidentally enable odd/even mode.
Setting this option can correct for that and render the demo properly.
This option forces VGA emulation to ignore odd/even mode except in text and CGA modes.
Various vsync configuration settings can be set in the DOSBox-X configuration file in the [vsync]
section.
-
default value: off
-
valid values: off, on, force, host
Synchronize vsync timing to the host display. Requires calibration within DOSBox-X.
Warning
|
Synchronizing to the host may cause issues with some games. For instance Sierra AGI games use VSYNC as part of their Hercules detection and will fail to find the adapter. |