1
0
Fork 0
mirror of https://github.com/dosbox-staging/dosbox-staging synced 2025-12-04 16:27:29 -05:00
Video tests — Presentation
John Novak edited this page 2025-08-01 17:37:31 +10:00

Video tests — Presentation

These games and demos are ideal for frame presentation testing as they use a variety of standard and custom VGA refresh rates, 3D rendering at the refresh rate of the video mode (without frame skipping), or 100% smooth 2D scrolling (done via VGA tricks, not by moving pixels with the CPU).

If you've never seen how these games look on a real CRT or a good VRR monitor, you'll have problems determining if the results look "smooth enough". It's highly recommended to get a good VRR monitor that isn't afflicted by the infamous VRR flicker to perform these tests. If you only have a fixed 60 Hz monitor, forcing the DOS rate to match the host rate is also a good way to at least get a feel for how perfect smooth scrolling looks like. If you can create a custom 70 Hz mode on your monitor, that's even better.

We know for certain that on Windows we can achieve stellar, virtually perfect results on Nvidia cards connected to VRR monitors (but only in fullscreen mode; there's a slight judder in windowed mode). The macOS fullscreen results are good too, but there's a bit more judder in windowed mode compared to Windows (this was tested on the same monitor).

Table of contents

Non-trivial changes must be tested on Windows, macOS, and common Linux desktops in both VRR mode on a VRR monitor and in fixed 60 Hz refresh mode.

  • Pinball Dreams — Smooth 2D scrolling @ 70.086 Hz
  • Star Wars — Dark Forces — Smooth 3D frame pacing @ 70.086 Hz
  • Show by Majic 12 — Non-standard VGA refresh rates, smooth 2D scrolling

Test cases

  • VRR monitor, default settings

    • should result in no tearing and perfect frame-pacing and smooth 2D scrolling
    • smooth-scrolling might be a bit juddery in windowed mode, but should be perfect in fullscreen
    • fullscreen_mode = forced-borderless might result in the same slightly juddery scrolling as windowed mode—use real (exlcusive) fullscreen for testing in fullscreen
  • Fixed 60 Hz refresh rate, default settings

    • should result in no tearing in windowed mode on Windows and macOS, and on Linux too if the desktop compositor uses triple-buffering/vsync
    • should result in tearing in fullscreen mode
    • 3D games and 2D scrolling will appear juddery in 70 Hz VGA games—that's normal on a 60 Hz display
  • Fixed 60 Hz refresh rate, vsync = on

    • should result in no tearing in either windowed or fullscreen mode
    • 3D games and 2D scrolling will appear juddery in 70 Hz VGA games—that's normal on a 60 Hz display
    • no excessive frame skipping should occur (the output should not look like a slideshow compared to the non-vsync'ed output, just the frame pacing should be a bit uneven)
    • there should be no audio artifacts (glitches, drop-outs, etc.)
    • the music and the gameplay should not be slower than in the no vsync case
  • Fixes 60 Hz refresh rate, dos_rate = host

    • should result in no tearing and perfectly smooth 3D and 2D scrolling (as we're forcing the DOS rate to exactly match our host refresh rate)
    • some games might misbehave when forcing a different rate than what the game was coded for (e.g., Pinball Dreams is a 70 Hz VGA game, so when forced to run at 60 Hz, scrolling will appear 100% smooth but the gameplay will be about 20% slower)
    • there should be no audio artifacts (glitches, drop-outs, etc.)
  • Custom 70 Hz refresh rate, dos_rate = host

    • should result in no tearing and perfectly smooth 3D and 2D scrolling (as we're forcing the DOS rate to exactly match our host refresh rate)
    • the music and the gameplay should not be slower than in the no vsync case (technically, it will be a tiny bit slower, but that's not noticeable)
  • Optional: Repeat the above tests with fixed 50 Hz refresh rate, fixed 120 Hz rate, a custom fixed 80 Hz mode, etc.

2D games

Epic Pinball

Recommended config: 25k cycles, SB Pro

Uses a custom 320x240 @ 59.713 Hz mode in-game. Good vertical smooth scrolling test.

Jazz Jackrabbit

Recommended config: 25k cycles, GUS

Uses a custom 320x199 @ 59.713 Hz mode in-game. The game has both smooth scrolling 2D and 3D parts.

Start a new game or just wait for a few seconds in the main menu for demo mode to start.

Mario and Luigi

Recommended config: 10k cycles

Uses a custom 320x191 @ 70.086 Hz VGA mode. Very good horizontal smooth scrolling test because the scrolling speed is low.

Pinball Dreams

Recommended config: 10k cycles, SB Pro, SB 16, maximum sound quality

Uses the standard 320x200 @ 70.086 Hz VGA mode. The intro credits scroller and the actual game are good vertical smooth tests. These should appear perfectly smooth on VRR displays or when forcing a custom dos_rate.

Pinball Illusions

Recommended config: 25k cycles, GUS

Uses a custom 320x240 @ 59.713 Hz mode in-game. Good vertical smooth scrolling test.

Start with ILLUSIONS O then select the 320x240 mode.

Prehistorik 2

Recommended config: 10k cycles, GUS

Uses the standard 320x200 @ 70.086 Hz VGA mode. There is a big image scrolling in horizontally when starting a new game; that should be perfectly smooth. It might flicker a little on lower cycles settings, so make sure to use 10k cycles.

The actual game is designed to run at a low FPS, probably ~17.5 Hz, so in-game scrolling isn't supposed to be smooth at all.

Return to Zork (RealMagic)

Recommended config: 25k cycles, SB 16

Uses the standard 320x200 @ 70.086 Hz VGA mode. Just make sure the game starts up and the RealMagic videos are playing.

Superfrog

Recommended config: 10k cycles, SB Pro

Uses a custom 320x199 @ 59.713 Hz mode in-game. Very good smooth scrolling test.

3D games

Azrael's Tear

Recommended config: 100k cycles, Sound Canvas + SB 16

Uses the 640x480 @ 70.007 Hz VESA mode.

  • A demanding late 90s game that needs 100k cycles or higher to run without slowdowns.
  • Good general test with Sound Canvas emulation enabled to make sure there is no audio buffer starvation going on (e.g., by missing frames with vsync enabled on fixed 60 Hz displays).

Star Wars — Dark Forces

Recommended config: 60k cycles, Sound Canvas + SB 16

Uses the standard 320x200 @ 70.086 Hz VGA mode.

  • Start a new game and keep pressing the left or right cursor key to keep turning around; this will tear a lot without vsync.
  • Make sure the music is not slowing down when there are screen updates with vsync enabled.

Tomb Raider Gold

Recommended config: 200k cycles, SB 16

Uses the 640x480 @ 70.007 Hz VESA mode.

  • A very demanding late 90s game that needs 200k cycles or higher to run without slowdowns with software rendering.
  • Set cpu_cycles_protected = 200000 (300k is even better). Do not set cpu_throttle = on and do not change the cycles at runtime as that will cause the controls to be stuck.
  • Start a new game then press F1 to switch to 640x480 mode, then F3 a few times to maximise the viewport area.

Tomb Raider Gold (3dfx Voodoo)

Recommended config: 90k cycles, SB 16

Uses the 640x480 @ 60 Hz Voodoo mode.

  • Do not set cpu_throttle = on and do not change the cycles at runtime as that will cause the controls to be stuck.

Demos

moralhardcandy by blasphemy

Recommended config: 400k cycles, GUS
Download link

Good performance-intensive late 90s 3D demo that uses a 640x480 @ 70.007 Hz VESA mode.

[dosbox]
memsize = 64

[cpu]
cpu_cycles_protected = 400000
cpu_throttle = on

[gus]
gus = on

[autoexec]
c:
candyd

te-2rb by TPOLM

Recommended config: 400k cycles, GUS
Download link

Good performance-intensive 3D demo that uses a 640x480 @ 70.007 Hz VESA mode.

[cpu]
cpu_cycles_protected = 400000
cpu_throttle = on

[gus]
gus = on

[autoexec]
c:
demo

Show by Majic 12

Recommended config: 10k cycles, GUS Download link

The demo does a lot of smooth 2D scrolling and uses some custom video modes:

  • 320x240 @ 63.317 Hz
  • 320x236 @ 63.317 Hz
  • 320x240 @ 59.713 Hz

The scrolling parts should all look perfectly smooth on VRR displays; the demo must have zero unevenness or tearing.