1
0
Fork 0
mirror of https://github.com/dosbox-staging/dosbox-staging synced 2025-12-04 16:27:29 -05:00
5 Video tests — Video modes
John Novak edited this page 2025-11-08 11:30:29 +10:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Video tests — Video modes

This page lists games and applications for testing all video modes on all emulated graphics adapters.

A good selection of programs doing non-standard things to VGA hardware is also included. These exercise specific areas of the VGA code; testing them periodically can help avoid video emulation regressions. The goal of these tests is to confirm all video modes are rendered correctly using the correct aspect ratio.

To test things thoroughly, all three allow/force double scanning and pixel doubling permutations need to be tested. Moreover, CGA and EGA modes need to be tested both on machine = vga and the machine type they originally appeared on (machine = cga or `ega), so that's six tests per video mode in total.

Test cases for all three double scanning and pixel doubling permutations:

  • shader = none or crt-auto — allow pixel doubling, allow single scanning (WARNING! With crt-auto you must test on 1440p or higher resolution in fullscreen! At 1080p, single scanning is forced by the vga-1080p-fake-double-scan shader.)

  • shader = crt-auto-arcade-sharp — allow pixel doubling, force single scanning

  • shader = sharp or crt-auto-arcade — force no pixel doubling, force single scanning

Table of contents

Whenever you change anything related to VGA emulation or the BIOS video stuff, make sure to run at least these tests. It's super easy to introduce regressions without realising because there are lots of subtle edge cases that only affect a handful of games!

  • Adventures in Serenia — 320x200 16-colour mode on PCjr
  • Blockout — Hercules, Tandy, CGA, EGA low-res modes; EGA 640x350; 40-column text modes
  • Bruce Lee — all CGA, PCjr and Tandy composite modes
  • Deluxe Paint II Enhanced — Hercules, CGA, EGA, VGA, Tandy, and SVGA modes
  • Drakkhen — 320x200 16-colour EGA mode; crt-auto should pick an EGA shader
  • Exobius — 320x200 256-colour VGA mode; does some weird trickery can result in the wrong VGA palette
  • Gods — 320x200 16-colour EGA mode with VGA colours; shader = crt-auto should pick a VGA shader
  • Indenture — 640x200 custom double-scanned 16-colour 80x25 text mode on VGA
  • Jumpman — 160x200 16-colour mode on PCjr
  • King's Bounty — Hercules, CGA with custom palette support, EGA, Tandy, 320x200 256-colour VGA mode
  • Life and Death — unofficial cyan-red-white CGA palette; 640x200 monochrome mode
  • Maniac Mansion v1 — 160x200 16-colour mode on Tandy
  • Quake — 320x200 256-colour VGA, plus a good selection of custom VGA and VESA modes
  • Scorched Earth — a good selection of custom VGA modes
  • Space Quest I — Hercules, CGA, CGA composite, Tandy low-res modes; CGA composite auto-detection; 40-column text modes
  • Spell it Plus! — 320x200 VGA; must use machine = svga_paradise otherwise the graphics is tinted pink
  • Total Eclipse — Hercules, CGA with custom palettes, EGA & Tandy low-res modes

Refer to the VGA, SVGA, and VESA sections for further tests. Start from the top and perform as many as you can.


Hercules

  • Blockout
  • King's Bounty (start with KB.EXE H)
  • SimCity
  • Space Quest I
  • Starblade
  • Total Eclipse

CGA

320x200 16-colour 40-column text mode (mode 01h, M_TANDY_TEXT)

  • Blockout (menu screen)
  • Space Quest I ("Welcome Aboard" start screen and inventory screen)

320x200 4-colour (mode 04h, CGA M_TANDY4, EGA/VGA M_CGA4)

  • Ancient Art of War, The
  • Below the Root
  • Blockout (title screen, in-game)
  • Bruce Lee (RGB mode)
  • King's Bounty (start with KB.EXE C, press C then 6 repeatedly in-game to cycle between different CGA palettes)
  • Life and Death (in-game, uses the custom cyan-red-white palette)
  • Total Eclipse (the game uses different palettes in different rooms)
  • Wizardry I: Proving Grounds of the Mad Overlord (uses the custom cyan-red-white palette with machine = cga)

640x200 monochrome (mode 06h, CGA M_TANDY2, EGA/VGA M_CGA2)

  • Life and Death (title screen, doctor's profiles in the staff room)

PCjr

320x200 16-colour 40-column text mode (mode 01h, M_TANDY_TEXT)

  • Blockout (menu screen)

160x200 16-colour graphics mode (mode 08h, M_TANDY16)

  • Jumpman

320x200 16-colour (mode 09h, M_TANDY16)

  • Adventures in Serenia (PCjr, 1984 version)

Tandy

320x200 16-colour 40-column text mode (mode 01h, M_TANDY_TEXT)

  • Blockout (menu screen)
  • Space Quest I ("Welcome Aboard" start screen, inventory screen)

320x200 4-colour graphics mode (mode 04h, M_TANDY4)

  • Life and Death (in-game, uses the "unofficial" tweaked cyan-red-white palette)

640x200 monochrome (mode 06h, M_TANDY2)

  • Life and Death (title screen, doctor's profiles in the staff room)

160x200 16-colour graphics mode (mode 08h, M_TANDY16)

  • Maniac Mansion (v1, download from here)
  • Starflight (RGB mode)
  • Zak McKracken and the Alien Mindbenders (v1.1, download from here)

320x200 16-colour graphics mode (mode 09h, M_TANDY16)

  • Blockout (title screen, in-game)
  • King's Bounty
  • Space Quest I (intro, in-game)

CGA/PCjr/Tandy composite

Testing the various composite modes can be confusing, so here are a few games that exercise all existing composite modes (tested with the eXoDOS versions).

Composite emulation is only available for the cga, pcjr, and tandy machine types (e.g., machine = pcjr).

Note

With composite = on, composite emulation will be auto-enabled for graphics modes only. To enable it in text modes too, use the CGA Comp hotkey action to manually enable composite mode (F12 by default).

320x200 4-colour (mode 04h, M_CGA4_COMPOSITE)

  • Ancient Art of War, The (CGA, Tandy)
  • Below the Root (CGA, Tandy)
  • Bruce Lee (Tandy, BRUCELEE.EXE, composite or RGB mode, title screen)
  • California Games (CGA, "CGA 4-color mode", "CGA MORE-color mode")
  • Maniac Mansion Enhanced (CGA)

320x200 4-colour (mode 04h, M_CGA16)

  • Adventures in Serenia (PCjr, 1982 version)
  • Ancient Art of War, The (PCjr)
  • Below the Root (PCjr)
  • Bruce Lee (PCjr, BRUCEJR.EXE, title screen)
  • California Games (PCjr, "CGA 4-color mode", "CGA MORE-color mode")
  • Maniac Mansion Enhanced (PCjr)
  • Zak McKracken Enhanced (PCjr)

640x200 monochrome (mode 06h, M_CGA2_COMPOSITE)

  • Bruce Lee (Tandy, BRUCELEE.EXE, composite mode, in-game)
  • California Games (CGA, "CGA 16-color mode")
  • Space Quest I (CGA, composite mode is auto-enabled with composite = auto)

640x200 4-colour (mode 0Eh, M_CGA4_COMPOSITE)

  • Bruce Lee (Tandy, BRUCELEE.EXE, RGB mode, title screen)
  • Maniac Mansion Enhanced (Tandy)
  • Zak McKracken Enhanced (Tandy)

EGA

320x350 16-colour 40-column text mode (mode 01h, M_TEXT)

  • Blockout (menu screen)
  • Space Quest I ("Welcome Aboard" start screen, inventory screen)

320x200 16-colour graphics (mode 0Dh, M_EGA)

  • Blockout
  • Catacomb 3D
  • King's Bounty

640x350 16-colour graphics (mode 10h, M_EGA)

  • Blockout (title screen, in-game)

Custom modes

  • Gauntlet (256x200)

VGA

320x200 256-colour graphics (mode 13h, M_VGA)

  • King's Bounty

Deluxe Paint II Enhanced

Test all video modes. Use machine = cga, ega, tandy, etc.

Hercules works too, but the program will display a warning that can be ignored & bypassed.

Quake timedemo

Use vesa_modes = all and change the video mode in the options menu. This is a quick way to test a good selection of unusual 256-colour VESA modes and some custom tweaked modes.

Examples of custom tweaked VGA modes: 320x350, 360x240, 360x400. Examples of VESA modes: 320x400, 320x480, 400x300, 640x400, 512x384, 848x480.

The logs will tell you which is which.

Second Reality by Future Crew

Watch the whole demo without using pause or fast-forward (this is important; fast-forwarding can "fix" some bugs in some circumstances) and make sure everything looks correct (no corrupted graphics, no doubling, etc).

The palette flash bug in the intro when the spaceship appears is "normal" and happens on real hardware too.

Catacomb 3D

Press enter a few times to start the game and make sure both the 3D viewport and the bottom HUD are visible and not stretched.

Test both with machine = vga and machine = ega. With' vga', there should be zero flickering, but with ega, the horizontal line between the 3D area and the bottom HUD flickers in all DOSBox variants.

The Legend of Kyrandia: Book One

Watch the intro and wait until the screen scrolls down vertically from the sky. There should be no flickering visual glitches.

Wing Commander 3

Watch the intro and make sure nothing appears stretched vertically.

Pinball Fantasies, Pinball Illusions

Both games go through a variety of super bizarre custom VGA modes during the intro. Make sure they appear "correct".

Ravenloft - Stone Prophet, Ravenloft - Strahd's Possession

320x400 tweaked mode

Exobius

320x200 256-colour custom VGA mode. The game uses some weird trickery which can result in the wrong VGA palette.

Spong

320x200 256-colour custom VGA mode. The game uses some weird trickery which can result in the wrong VGA palette.

Spell it Plus!

Must use machine = svga_paradise to revert to the legacy "non-vgaonly" palette behaviour. The background of the "Please enter your name" dialog should be white (correct). With any other VGA machine type, it will appear pink (incorrect).

Incredible Machines 1, The

640x441 with 1:1 PAR 640x448 with 1:1 PAR

Incredible Machines 2, The

640x441 with 1:1 PAR

Mario and Luigi

320x191 with 1:1.2 PAR

Custom modes (Mode X and variants)

  • Bananoid (360x240)
  • Blood & Magic (320x400)
  • Cyril Cyberpunk (288x223)
  • Earthworm Jim (320x224, 320x240)
  • Flashback (256x240)
  • Incredible Machine 1, The (640x471)
  • Incredible Machine 2, The (640x441)
  • Jazz Jackrabbit Holiday Hare (320x199)
  • Jump 'n' Bump (400x256)
  • Jurassic Park (320x184)
  • Lost Vikings, The (320x240)
  • Mario and Luigi (320x191)
  • Moraff's Monster Memory (360x480)
  • Pinball Fantasies (320x350, 320x480, 640x240)
  • Pinball Illusions (304x448, 320x290, 320x400, 336x350)
  • Prehistorik 2 (312x200)
  • Quake (320x350, 360x200, 360x240, 360x350, 360x400, 360x480)
  • Ravenloft - Stone Prophet (320x400)
  • Ravenloft - Strahd's Posession (320x400)
  • Scorched Earth (320x240, 320x400, 320x480, 360x480)
  • System Shock (320x400)
  • Threat (320x400)

Text modes

Test with vga_8dot_font enabled as well.

360x400 16-colour 40x25 text mode (mode 01h, M_TEXT)

  • Blockout (menu screen)
  • Caves of Thor (1990)
  • Chase (1990)
  • Dr. Mario (1992) (uses custom font)
  • Quiltrex (1992)
  • Space Quest I ("Welcome Aboard" start screen, inventory screen)

640x200 custom double-scanned 16-colour 80x25 text mode (M_TEXT)

  • Indenture (uses 8x8 CGA font)

720x400 16-colour 80x25 text mode (mode 03h, M_TEXT)

  • Dungeons of Drakklor (uses custom font)
  • Gravedigger (2002) (uses custom font)
  • International Soccer Management Game, The (1994) (uses custom font)
  • Majik (1990) (uses 8x8 CGA font)
  • Voyage to the Planet Earth (uses custom font)
  • Wizard's Lair (uses custom font)

640x350 16-colour 80x25 text mode (tweaked mode 03h, M_TEXT)

  • Labyrinth of Zeux (uses 8x14 EGA font)
  • MegaZeux (uses 8x14 EGA font)

640x400 16-colour custom 80x25 text mode (M_TEXT)

  • Excelsior — Phase One: Lysandia (uses custom font)

SVGA

Deluxe Paint II Enhanced

This is an easy way to test some of the svga_paradise and svga_et3000 and svga_et4000 modes too. Press Space at the startup screen to select the SVGA driver.

VESA

Text modes

VESA text modes can be easily tested in DOS Navigator v1.51.

  1. Open Options / Configuration / System Setup.
  2. Enter the decimal VESA mode number in the Video Mode 1 or 2 field.
  3. Press Alt+F10 to toggle Video Mode 1 or Ctrl+F10 to toggle Video Mode 2.

These modes are not supposed to fill a 4:3 CRT like most non-VESA text modes. The 132-column text modes should appear pillarboxed to various degrees (in other words, they are widescreen-ish).

  • 132x43 text mode (mode 10Ah, M_TEXT) — Use the decimal value 266
  • 132x50 text mode (mode 10Bh, M_TEXT) — Use the decimal value 267
  • 132x60 text mode (mode 10Ch, M_TEXT) — Use the decimal value 268

Quake timedemo

Use vesa_modes = all and change the video mode in the options menu. This is a quick way to test a good selection of unusual 256-colour VESA modes and some custom tweaked modes.

Examples of custom tweaked VGA modes: 320x350, 360x240, 360x400. Examples of VESA modes: 320x400, 320x480, 400x300, 640x400, 512x384, 848x480.

The logs will tell you which is which.

QPV

Use vesa_modes = all and test all 15/16-bit high colour and 24/32-bit true colour VESA modes in QPV with at least svga_s3.

TODO custom configs

References

Summary of DOS video modes

This table lists all BIOS video modes supported by DOSBox Staging and a good selection of custom modes, along with the upscale target dimensions used by the upscaled image capture mode (scaled width and scaled height columns).

dos-video-modes