The Developer's Tidbits

Helpful tips for random problems
The skyline of Sydney, Australia - used as a header image for aesthetics
The skyline of Sydney, Australia - used as a header image for aesthetics


DOSBox Graphic and machine emulation
CGA, VGA, Tandy, PCJr and Hercules

Reading time for 2782 words - 14 minutes

If you have ever attacked the DOSBox.conf configuration file you might have encountered a not so obvious setting machine=svga_s3. Now for PC games made around 1992 or later this setting is not all that important. But for many games that were created during the 1980’s this setting can be critical in maximising the best visual and even audio output the game has to offer.

By default DOSBox has the MACHINE setting set to svga_s3. For visuals this is not only the best setting available it is also the most compatible. But if you read the commented section in the settings file it states machine

The type of machine tries to emulate: hercules, cga, tandy, pcjr, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, svga_nolfb, svga_oldvbe.

That’s a lot of options that can dramatically change the way your games look and play. So in this tutorial I will chronologically list the different graphical display types for the IBM PC format in including those that are not directly supported by DOSBox. This should not only give you and overall understanding of what these machines mean but it might also help you in determining the best settings for your early DOS games and software.

DOSBox config
DosBox 0.73 Graphics Settings


IBM released the first PC back in 1981 and Monochrome Display Adapter was the default display for the system. MDA can not be called a graphics display as did not support any kind of software graphics, it only offered a monochrome text mode display with text character effects. Occasionally you will encounter an early PC game that only supports text mode and this was often for MDA compatibility. It was the lowest common denominator for PCs of the period. In fact the first commercial game for the PC was the text only adventure title Microsoft Adventure. DOSBox does not support or emulate MDA though there is really no need as all text mode software will work under any DOSBox machine mode.

Microsoft Adventure title
Microsoft Adventure, the first game for the IBM PC in MDA text mode (720×350 pixels)


The Colour Graphics Adapter was introduced by IBM as a more expensive add-on for the IBM PC at the time of its initial release back in 1981. Unlike the cheaper MDA offering CGA allowed limited colour and software graphics. The down side to CGA was its significantly lower resolution in text mode which didn’t appeal to business. In 1984 IBM reduced the price of the CGA adapter after it released its EGA successor. The cheaper and more affordable CGA standard then became the lowest common denominator for game developers for nearly a decade.

CGA offered a variety of graphic options but most games used the 320×200, 4 on-screen colours limited palette mode. CGA also offered a NTSC composite colour mode and TV output, features that were never offered by later graphic standards. With some hacks involving the CGA composite mode combined with colour blending and artefacts. Game developers managed to push many more on-screen colours than what was initially thought possible. This composite mode and its hacks are fully emulated by DOSBox. So if you ever encounter a CGA only game that supports composite in addition to the RGB or monitor mode then make sure you set the DOSBox.conf MACHINE=CGA so you can use this more colourful option.

As of DOSBox 0.74 you can use the F11 and Alt+F11 key combinations to adjust the tint in CGA NTSC composite colour mode. Old televisions used this tint adjustment to set the TV’s colour.

Microsoft Adventure title
Microsoft Adventure in CGA using a chunky 320×200 text mode
Microsoft Adventure title
Microsoft Adventure in VGA text mode
King's Quest title
King’s Quest (pre-AGI) title screen using CGA composite with DOSBox MACHINE=CGA mode
King's Quest castle scene
King’s Quest (pre-AGI) in game under CGA composite with DOSBox machine=CGA
King's Quest castle scene
King’s Quest (pre-AGI) in game under CGA RGB with DOSBox machine=CGA

This is what can happen when you incorrectly run a CGA game using DOSBox’s default machine=svga_s3.

King’s Quest castle scene King’s Quest castle scene

CGA composite mode is left, RGB mode is right. As you can see VGA newer graphic modes such as EGA and VGA do not always accurately emulate the CGA modes or colours.


This is probably the only third-party graphic standard that became popular on the IBM PC during the 1980’s. Introduced in 1982 by Hercules Computer Technology the Hercules Graphics or Herc mode became a popular and affordable alternative to the standard IBM offerings. Not only did it have a high resolution text mode like IBM’s MDA. It also offered a high resolution graphics mode which surpassed anything that CGA could offer. But the feature that was most attractive for many of Hercules’s customers was that the Hercules card was MDA compatible. So this meant they could use a much cheaper MDA text-only monitor to display high resolution monochrome graphics.

Microsoft Adventure title
Microsoft Adventure in Hercules text mode
King's Quest II title
King’s Quest II (AGI) title screen in Hercules mode
King's Quest II title
King’s Quest II (AGI) in game in Hercules mode, the menu system and it’s text is significantly clearer than any other graphic mode

As of DOSBox 0.74 you can cycle between green, brown and black monochrome base colours using the F11 key. This enhances the historical accuracy of the Hercules mode to emulate the range of monochrome monitors that were available.


The IBM PC Jr was an alternative line of the PC created by IBM to target the home computer user. Some might argue it was specifically created to cut into the sales of Apple’s successful series II. The PC Jr was a complete flop having been introduced to market in 1984 and pulled within its first year due to poor sales. While IBM created the Jr to be reasonably compatible with its full price PC line, it wasn’t compatible enough for many disappointed owners. Price was also an issue for IBM with the system significantly more expensive than the competing home computer systems of the time. Many would argue that it was the system’s cheap n’ nasty keyboard and the cost cutting of parts that ultimately lead to the PC Jr’s quick demise.

While the PC Jr as a line was dead by the end of 1985 it did manage introduce a number of innovations to the range of IBM PCs. The PC Jr included two built in joystick ports as well as two cartridge ports for the fast loading software. Sound was improved with a three channel tone generated chip as oppose to the standard IBM single channel beeper. The Jr’s most significant innovation through was the graphics upgrade from CGA to CGA Plus also called PC Jr graphics. This mode enabled a much improved range of 16 colours on-screen.

Due to the uniqueness of these innovations the games that were designed exclusively for the IBM PC Jr will not work on any other IBM systems or clones.

A failed attempt at trying to run the CGA only version of King’s Quest (non-AGI) on a IBM PC Jr.

King’s Quest title King’s Quest castle scene

The first published version of King’s Quest by Sierra On-Line released in 1984 by IBM. It only works on the IBM PC Jr or under DOSBox using MACHINE=PCJR.

King’s Quest publishers King’s Quest credits

King’s Quest castle scene

TGA or Tandy

TGA or Tandy Graphics Array is the name given to the graphics mode used by the Tandy 1000 series of computers. Tandy originally created this line as a clone of the IBM PC Jr. However just weeks before Tandy went retail with their new product, IBM pulled the plug on their product which left Tandy on their own. Tandy did manage to turn the situation to their advantage and successfully marketed the standard as their own upgraded clone-PC. Within the games industry the Tandy series eventually became a supported PC standard. And for a period during the mid to late 1980s these Tandy PCs became the most capable computers to play MS-DOS games.

Unlike the defunct IBM PC Jr, the Tandy series of computers were fully IBM PC compatible. This meant that users could run the majority of software and games that supported CGA mode when no Tandy support was provided. The Tandy 1000 series also offered two joystick ports, a 3 channel tone audio chip, volume control and had the operating system saved to fast ROM (read only memory) allowing for very short system boot-up times. Long start-ups were an issue for the majority of DOS compatible PC’s during the period.

The Tandy standard while supported by many software companies was eventually superseded at the end of the 1980’s by the wide spread adoption of VGA graphics and 3rd party audio sound cards.

Tandy 1000 version of King’s Quest (non-AGI) from 1984. The game also supports CGA so for full colour DOSBox must be set to MACHINE=Tandy.

King’s Quest publishers King’s Quest credits King’s Quest castle scene


Enhanced Graphics Adapter was introduced by IBM in 1984 was very expensive luxury for many which meant it took a while to catch on. In the first few years of its life many software companies did not offer EGA support for their titles.

EGA generally offered 16 colours on-screen at 320×200 resolution. It is backward compatible with CGA but support is not 100% accurate. In addition EGA has a high resolution mode of 640 x 350 in 64 colours . This special mode required additional expensive video memory which was not common. Only a few titles such as Maxis’s SimCity allowed for the use of this high resolution mode. In DOSBox the MACHINE=VGA setting offers complete EGA compatibility. In DOSBox you can force the use of EGA by using the MACHINE=EGA setting. The VGAONLY and SVGA * modes also allow backward compatibility with EGA.

Often if a game supported EGA it would be modified by the game developer to support the Tandy 1000 graphic mode.

SimCity gameplay
SimCity EGA 16 colour high-resolution mode 640 x 350
King's Quest castle scene
The common 1987 AGI re-release of King’s Quest I which supports EGA graphics
King's Quest remake castle scene
King’s Quest 1990 SCI remake, it uses full 320 x 200 16 colour graphics that offered more graphic detail and animation than the earlier 1987 AGI re-release


The Multicolor Graphics Adapter was introduced by IBM in 1987 on their propriety PS/2 range of computers. It is backward compatible with CGA but not with the more capable EGA. As an unfortunate consequence many unsupported EGA 16 colour games default to the limited 4 colour CGA when operating in MCGA mode. MCGA has the capability of displaying 256 colours on-screen and a few games do support MCGA 256 colour mode but the majority of these also support the VGA standard that superseded it.


Video Graphics Array was introduced by IBM in 1988. It is backward compatible with EGA and is fairly compatible with CGA. Two modes of VGA were popular with software developers, a low resolution 320 x 200 with 256 colours from a palette of 262,144 colours or the a high resolution 16 colour mode at 640 x 480 pixels.

The game industry took a while to latch on to VGA. Initially it was only used it when porting 32 colour Commodore Amiga titles such as the popular Lemmings by DMA Design or Space Ace. It wasn’t until 1990 that software publishers hit the retail selves with their first full VGA titles in glorious 256 colour. Lucasfilm’s The Secret of Monkey Island, Sierra’s King’s Quest V and Access’s Links: The Challenge of Golf all helped to encourage the VGA take up on the home computer and later it led to the multimedia PC.

The default MACHINE=svga_s3 setting in DosBox 0.73 is fully compatible with all VGA modes. is NOT always fully compatible with standard VGA modes and may require the use of MACHINE=vga_only setting to avoid graphical glitches.

King's Quest V house scene
King’s Quest V from 1990 with low resolution VGA supporting 256 colour graphics
Darkseed titlescreen
Darkseed from 1992 requires VGA and uses a 16 colour high resolution mode

By 1992 once 256 colour VGA graphic hardware, hard disks and audio sound cards had become common place in consumer PCs. It was clear that despite its many shortcomings the PC platform would dominate the home computing and gaming landscape. This realisation was further cemented a year later by the release of the technically advanced and extremely popular Id Software game Doom.


Unfortunately after the earlier orderly history of PC graphic standards, post-VGA became very muddled. Around the same time IBM started promoting VGA they released a new piece of hardware known as the IBM 8514/A. This was a very expensive graphics system that could pump out a display of 1024×786 interlaced pixels with 256 colours. IBM decided to keep the specifications propriety and from then on other manufactures designed VGA extensions to their own, in-house specifications.

As each manufacture went their own way, their technical specifications became incompatible with each other. This led to the unenviable situation for software developers where individual drivers were needed to support each graphic chip-set on the market. Consumers who bought the latest and greatest graphics card often discovered that older titles could not run on their cards in a high resolution mode. Collectively these varying VGA extensions became known as Super VGA or SVGA. But in reality there is no hard rule as to what constituted SVGA with the graphic cards produced from 1987 through to 1989.

In 1989 manufactures saw the obvious problems and banded together to form the Video Electronics Standards Association. One of their first accomplishments was the formalisation of the universal SVGA standard. This saw limited hardware implementation but was common in games. It offers 640×480 resolution with a 256 colour range and 800×600 with a 16 colour range.

SimCity 2000 setup
SimCity 2000 setup displaying supported graphic cards

SVGA was later incorporated into what became the VESA 1.0 standard. VESA required a special BIOS extension to be added to the graphics card that enabled it to be compatible. This VESA BIOS extension is alternatively known as VBE.

  • VESA VBE 1.0 introduced in 1989 allowed for modes up to 1280×1024 with 256 colours.
  • VESA VBE 1.1 added some new high resolution text modes though this standard remained virtually unused.
  • VESA VBE 1.2 from October 1991 became a well supported standard within DOS software as it introduced 15/16-bit high colour support with all resolutions up to 1280X1024.
  • VESA VBE 2.0 from November 1994 upped the standard by adding 24-bit true colour support and a bunch of new and then unusual modes including increasing the maximum resolution to 1600x1200.
  • VESA VBE 3.0 was introduced in September of 1998. It mainly focused on Windows 2D acceleration as by this time gaming on the MS-DOS operating system was for the most part dead.
Links 386 Pro gameplay
Links 386 Pro one of the first games to support SuperVGA at 640×480
Duke Nukem 3D Million Dollar scene
Duke Nukem 3D with high resolution 800×600 graphics

So now that I have explained the history of SVGA we can go on to how this all relates to DOSBox. Since version 0.71 DOSBox has used the once popular S3 Trio 64 chipset as its emulated graphics hardware. The Trio 64 from 1995 is a good choice that supports VESA VBE 2.0.

Unfortunately the DOSBox emulation of the S3 chipset is not complete. There are a number of early software titles from the hazy, pre-VESA high resolution days that do not know or understand either the VESA standard or the S3 chipset. This is why a number of additional SVGA emulation modes were introduced into DOSBox 0.73 but they have the unfortunate side effect of making things more complicated.

Essentially the svga_et3000, svga_et4000 and the svga_paradise modes allow you to emulate a number of once popular, pre-VESA, high resolution chipsets. When troubleshooting an older SVGA game you should find at least one of these cards supported.

vga_only disables all VGA extensions so you will be restricted to 320×200 with 256 colours or 640×480 with 16 colours modes as well as the legacy CGA, EGA modes.

svga_paradise I think emulates the Paradise PVGA1A which is only capable of a SVGA resolution of 640×480 with 256 colours or 800×600 with 16 colours.

svga_et3000 emulates the Tseng Labs ET3000 which manages 800×600 with 256 colours and 1024×768 with 16 colours.

svga_et4000 emulates the Tseng Labs ET4000 is the same as the ET3000 but offers 1024×768 with 256 colours.

svga_oldvbe implements a VESA VBE 1.2 BIOS under the S3 Trio 64 card.

svga_nolfb implements VESA VBE 2.0 but introduces a no-line frame buffer hack. Don’t ask me where you will need that, because I am not sure. According to DosFreak .. “svga_nolfb fixes speed or graphics issues with some SVGA games. The old UniVBE utility had the ability to disable the LFB which performs the same function as svga_nolfb.“

svga_s3 is the default DOSBox mode that has reasonable VESA VBE 2.0 support. It is the most capable out of all the modes supported and should be left as the default unless troubleshooting.

Written by Ben Garrett