DOSBox

DOSBox Graphic and Machine Emulation, CGA, VGA, Tandy, PCJr, Hercules


This article has been revised for DOSBox 0.74

If you have ever attacked the DOSBox.conf configuration file you might have encountered a not so obvious setting MACHINE=VGA 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 VGA 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, vga, 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 0.73 Graphics Settings
DosBox 0.73 Graphics Settings.

MDA
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 in MDA
Microsoft Adventure, the first game for the IBM PC in MDA text mode (720×350 pixels).

CGA
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= to 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 in CGA
Microsoft Adventure in CGA using a chunky 320×200 text mode.
Microsoft Adventure in CGA Hi-res
Microsoft Adventure in CGA hi-res 640×200VGA text mode.
Kings Quest 1 CGA Composite
King’s Quest (pre-AGI) title screen using CGA composite with DOSBox MACHINE=CGA mode.
Kings Quest 1 CGA Composite
King’s Quest (pre-AGI) in game under CGA composite with DOSBox machine=CGA.
Kings Quest 1 CGA RGB
King’s Quest (pre-AGI) under CGA RGB with DOSBox machine=CGA.

This is what can happen when you incorrectly run a CGA game using DOSBox’s default machine=VGA machine=svga_s3. 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.

Kings Quest 1 CGA CompositeKings Quest 1 CGA RGB

Hercules
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 in Herc
Microsoft Adventure in Hercules text mode.
Kings Quest 2 Herc
King’s Quest II (AGI) title screen in Hercules mode.
Kings Quest 2 Herc
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.

IBM PC Jr
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.

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.

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

EGA
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 1664 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 EGA 16 colour high-resolution mode 640 x 350.

The common 1987 AGI re-release of King’s Quest I which supports EGA graphics.

King’s Quest 1990 SCI remake. Uses full 320 x 200 16 colour graphics that offered more graphic detail and animation than the earlier 1987 AGI re-release.

MCGA
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.

VGA
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 from 1990 with low resolution VGA supporting 256 colour graphics.

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.

Super VGA,  SVGA, VBE and VESA

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 displaying supported graphic cards
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 1600*1200.
  • 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.
Links386Pro one of the first games to support SuperVGA at 640x480
Links 386 Pro one of the first games to support SuperVGA at 640×480.
Duke 3D with high resolution 800x600 graphics
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.

Advertisements

22 thoughts on “DOSBox Graphic and Machine Emulation, CGA, VGA, Tandy, PCJr, Hercules

  1. A very well-written and accurate article! I’m an old-time PC user who actually played games on all the displays you mentioned, except for PCjr – never had one of those.
    There were a few 1980’s CGA games that used certain tweaks to the graphics mode. Like Round 42 and Moonbees that used a 160×100 16 color mode on an ordinary CGA machine. These tweaks would not work on EGA or VGA cards, so these games could not be played on modern PC’s until DOSBOX came along. The guys who wrote DOSBOX did a real favor to all old gamers!
    I wrote a little shareware game in 1991 that had 4 color CGA and 16 color Tandy modes. It was called Darwin’s Arena.I never got around to porting the 16 color graphics to EGA, so the 16 color version was also unplayable on modern PC’s until DOSBOX. Seeing it again after 10+ years made me very grateful to the DOSBOX crew.

  2. 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.

  3. A small nitpick: Darkseed is a 640*350*16 EGA game. The 64 color palette was available in that mode too (and possibly in that mode only, if my GWBasic memories don’t fail me).

    If you need a high resolution VGA game, look for Knights of Xentar (X-rated, but you can find nice, child proof pictures too), or Flight Simulator 4.

    1. I can tell you by just looking at the screen shots that Darkseed has a need for VGA because of the palette requirements. EGA’s range of 64 colours was too limited, specially by the time Darkseed was released in 1992. The Atari ST from 1985 had a range of 512 colours, the Commodore Amiga 1000 also from 1985 had a range of 4,096 colours. Both of which made the EGA range of 64 colours look feeble in comparison.

      Here is the results of Darkseed in EGA mode.

    1. If you can give me an example or two of games that will not work under the svga_s3 but will work under vgaonly, that would be great.

  4. lemmings,kellogs and pinball fantasies benefit from it. Those games change the palette while the screen is updated.
    vgaonly support this.

    lemmings the titel screen I think.

  5. I have a problem with these settings. On my desktop it is running perfectly. On my netbook
    it worked in the past but now it doesn’t anymore.
    When I use svga_s3 it gives me an error with: “instruction 0x8613f3e3 refers to memory on 0x00000000.”
    Changing to vgaonly helps but why is a big question, because it worked before.

    It happens with 4th protocol, Alley Cat, Autoduel, (too many to mention, most actually)

    1. There is a new version of DOSBox, 0.74 which has some significant graphic emulation bug fixes. Maybe that well help?

  6. Thanks for the TOUR. Hopefully you can suggest a solution for non-Game use of DOSbox.

    This fall Assembly Language is being taught at Santa Barbara City College. In the past we have used either masm613 or 15 running on Windows XP. Neither version of masm runs on Windows 7.

    I have created a DOSbox emulator for masm611 [really old, but 13 and 15 do not work well].

    When I run CVIEW for student troubleshooting/debugging, I get only the original size of the DOSbox window ~ 60 x 25. I have gone through the options in the .74.conf file, read the manual and looked at the user group comments and find nothing about the Window, except that most games ‘automically’ set the size.

    Can you steer me to a site which explains the options. I need about 100 by 80 to see the standard four subwindows.

    TIA
    T. Lee D. Smith, PhD.

    1. Okay please bare with me as my knowledge of Microsoft Assembly is limited but I will try and help out. Now im guessing you are referring to version 6 of the application that according to my Googling was released for MS-DOS in 1992/3. Does this CVIEW application look something like the screen shot below?

      CVIEW for DOS

      I think you are going to be slightly disappointed by my answer. This edition of MASM uses fixed text-only mode so you can not adjust the size of the windows like you can in Windows or a Mac (this was one reason people moved away from DOS). The good news is DOS text-mode has a limited set of inbuilt sizes dependant on the graphic standard you use. For example the VGA mode only allows 80×25, 40×25, 80×43 or 80×50 text grids. SVGA allows more text characters on screen which you can read about here http://en.wikipedia.org/wiki/Text_mode.

      In MS-DOS, PC-DOS and FreeDOS you can change these modes using the command MODE. As far as I can tell there is no feature or setting for this in DOSBox. But you can download the open source MODE.COM command from FreeDOS and run that within DOSBox (I tested it and it seems to work fine).

      http://ftp.rz.tu-bs.de/pub/mirror/freedos/files/dos/mode/2005/

      MODE.com usage is rather cryptic but MODE /? does give you a help screen and status. If you wish to increase the number of characters on screen (thus increasing the text resolution) use the following command. MODE con:cols=80 lines=50. Having DOSBox machine=svga_s3 the highest mode I could set it to was MODE con:cols=80 lines=50 but it makes for an ugly font.

      The next step is to adjust the DOSBox.conf. Change output=surface to output=ddraw and windowresolution=original to windowresolution=1280x960. Hopefully that helps somewhat and if you need further help feel free to ask. Also if you want to use all the text modes avaliable to MODE and SVGA you will need a DISPLAY.SYS driver. FreeDOS has the driver but I have not tested it within DOSBox. If you can’t get it to work let me know and I will make an attempt and maybe write a tutorial on it 🙂

  7. Wonderful to see my DOS WordPerfect 6 running in VESA at 1024×768 for full Page Mode support at 59% again, which showed a full page of text, from page number to footnotes, in the font it would be printed in. I used to call it “WP for Windows for DOS.” It’s still my workhorse word processor – which I prefer because I know how to make it do tricks that even WPWin can’t do, like automatically substitute symbols from one font into another (I can’t stand my favorite font’s section symbol!).

    The last version of Windows to support VESA, which WP depended on for high-res rendering of fonts to the screen, was Win 98 Second Edition.

    Starting with XP, VESA support was dropped, and I’ve had to run WPDOS in vanilla VGA 640 by 480, which looks much coarser and is only tolerable at full magnification – showing about a third of a page at a time.

    My questions, however, are quite nitty-gritty:

    1) Can I print from WordPerfect running inside DOSbox? I’m willing to use a bucket-brigade pipeliner like PrintFile that looks for a file and sends it to a printer or to Ghostscript.

    2) WP lays things out in multiple directories, requiring me to mount my whole C: drive to make it work. How much danger does this really pose? Is DOSbox so unstable that it could make a mistake of its own wipe my drive, or is this really just a matter of my being careful? I’ve been working at a DOS prompt since 1982 or so, so I’m not to worried – unless DOSbox is flakey on its own.

    1. 1) There is a small paragraph on WP in DOSBox on the wiki, maybe it will help you? DOSBox printing has been a low priority as the focus has been with software compatibility. Hopefully that will change in the future.

      http://www.dosbox.com/wiki/Software:WordPerfect

      This post maybe of help to0, let me know how you go.
      http://www.wpuniverse.com/vb/showthread.php?postid=197156#post197156

      2) I personally would not recommend mounting from C: root where your existing operating system and data files are located. Maybe you could setup a partition especially for use with WordPerfect? That would also make it easier for you to backup. Otherwise DOSBox is relatively stable and will adhere to write/system only file permissions. I’d assume from DOSBox you would not be able to delete anything in within the root as the basic DOS remove commands do not support recursive attributes.

  8. Spotted a couple of errors in your article, hope you don’t mind 😉

    1) The screenshot labeled “Microsoft Adventure in CGA hi-res 640×200 text mode”:
    This text mode actually looks like VGA 40-column mode, not CGA – it’s 400 pixels tall rather than 200. If you look closely, the characters’ horizontal strokes are half as thick as in the “chunky” 320×200 screenshot above it.
    CGA’s 640×200 text mode uses the same font as its 320×200 mode, it’s just squished to half width, offering 80 columns of text.

    2) PCjr – “…CGA Plus / PC Jr graphics. This mode enabled 16 colours on-screen at once from a range of 64”:
    There was no 64-colour range on the PCjr; it was limited to the same 16 colours that CGA offered, although it could display them all simultaneously in graphics modes.

    3) EGA – “EGA generally offered 16 colours on-screen from a range of 64 at 320×200 resolution.”:
    Actually, the full 64-colour range was only available in 640×350 mode – EGA’s specific 320×200 mode was limited to the 16 colours supported by CGA. This was probably done for backward compatibility with CGA monitors; this mode sends out RGBI signals that those older monitors can receive, so it’s limited to the 16-colour RGBI/CGA range.

  9. Great article, very fascinating, thank you! My family owned a Tandy 1000 TL, and I had no idea it had such an interesting history. Tandy was kind of infamous for cloning things (my family also had a Tandyvision which was Intellivision with wood paneling, actually nicer looking IMO) and it was interesting but not surprising that they were able to take someone else’s failed line that they were cloning (PCJr) and make it a successful product of their own (and becoming their own supported DOS gaming platform). Thanks for the article!

    1. Thanks for your comment Ryan, I am delighted you enjoyed the article. I am never sure when writing if I should supplement historical flavour text, so I am happy you appreciated it.

      You know the first computer we had at home was a Tandy 1000 HX, a compact machine that had limited upgrade capability. So as a kid I was envious of the 1000 TL that I would read about in the Tandy [our RadioShack] catalogues.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s