Monday, September 1, 2014

How many FPS? - DOS Games and Framerates

The refresh rate is the number of times the display redraws the screen per second.  In the DOS world, three refresh rates were typically used by monitors.  Displays compatible with the MDA and Hercules Graphics Card used a 50Hz refresh rate.  To reduce flicker, they also used slow-decaying phosphors, giving a ghosting effect.  A high pixel resolution of 720x350 was available, but these displays used a TTL signal composed of a video and an intensity line, instead of an analog composite signal.

The CGA was designed for TV screens and color RGB monitors, so its displays used a 60Hz refresh rate.  As a tradeoff, the resolution of this adapter could not exceed 240 lines.  The adapter did not support interlaced video modes, which generally use 480 or more lines and which ran at ~30Hz.  The flicker caused by an interlaced signal on a CRT is very noticeable when the user is close to the screen.  The monitor used a 4-bit digital input for RGBI monitors, but was otherwise similar to analog RGB monitors like the Amiga 1084.  The PCjr. and Tandy Graphics Adapters used the same displays.  The EGA could use either an Monochrome Display, a Color Display or an Enhanced Color Display that supported 350-lines and 6-bit digital RrGgBb input.  The refresh rate for the Enhanced Color Display was still 60Hz.

Later, the VGA and MCGA supported high resolution analog RGB monitors.  To reduce flicker, these monitors refresh all resolutions at 70Hz, except for 640x480, which uses 60Hz.  SVGA and later standards would typically allow the user to set the refresh rate for the resolution he wished to use, and some CRT monitors of the late 1990s could handle refresh rates up to 120Hz at 640x480 and 85Hz at 1024x786 or better.  Refresh rate also tended to depend on bit depth, and the monitor may not be able to handle a 32-bit graphics mode at a high refresh rate.

The increase in refresh rate was mainly done to combat flicker.  When someone sits five feet from a TV screen, interlacing and flicker are generally not so great a problem as to distract a person.  However, when someone sits five inches from a computer monitor, 60Hz can become a problem, especially as screen sizes grew from 13" to 15" and beyond.

Just because the display adapter is drawing the screen 60 times per second, that does not necessarily mean that there is some movement occurring on the screen at that framerate.  Many DOS games, like adventures, are fairly static games where often little is occurring on the screen.  In this sense, the game's framerate is only the rate needed to update the animation.  Games with cursors can redraw the cursor as fast as the refresh rate allows.  Therefore, despite the potential of the displays, actual high frame rate games are comparatively uncommon.  Many CGA and EGA games will limit themselves to 30 (Test Drive), 20, 15 (Lemmings), 10 or 5 frames per second.  By keeping the frame rate to an even divisor of 60, the game can avoid screen tearing.

Similarly, in many action games of the 1990s that used VGA, the frame rate would not intentionally exceed 35 frames per second during the action.  Some of ID Software's games from this period follow this rule, including Commander Keen 4-6 and Keen Dreams and the DOOM games.  The use of 35 frames, even in a 16-color game like Keen, demonstrates that ID was using VGA, not EGA, to develop the game.

Commander Keen 1-3 use a "cinematic" 24 frames per second approach, and Commander Keen 4-6 and Keen Dreams for CGA allow up to 60 frames per second.  This may be to compensate for the lack of scrolling hardware with CGA.  Dangerous Dave, Monster Bash and Catacomb 3-D use 60 frames per second with EGA and 70 frames per second with VGA.  Wolfenstein 3D is a 70 frames per second game using an updated Catacomb 3-D engine.  Jazz Jackrabbit is a very fast and fluid game, and it uses 60 frames per second in its action sequences.  To avoid screen tearing, the game uses a custom 320x199 resolution to allow it to specify a custom 60Hz refresh rate.

The best DOS pinball games are also high frame rate games.  Epic Pinball, Pinball Fantasies and Pinball Illusions all use 60 frames per second for the tables.  This makes sense because they are trying to simulate the fast action of a pinball table and ensure smooth screen scrolling as the table has to frequently shift from the upper and lower portions of the table.  Pinball Dreams and Pinball Dreams 2 actually use 70 frames per second for their tables.

High framerates assumes your hardware can push those frames out to the adapter.  Lower-end hardware will not be able to keep up, and the responsiveness of the screen will not be as fluid.  However, on the other end of the spectrum, older games may be run too fast on newer hardware, and thus may approach 60 or 70 frames per second when they were intended only to produce a fraction of that rate.  In Sierra's AGI games, for example, while the frame rate is usually in the teens, if you use the fastest setting on a 486, for instance, you may go to at least 60 or 70 frames per second.


idspispopd said...

Regarding "Refresh rate also tended to depend on bit depth, and the monitor may not be able to handle a 32-bit graphics mode at a high refresh rate.":
The monitor does not care about bit depth since it only receives an analog signal (you are talking about VGA/SVGA here). Any limitations of refresh rate vs. bit depth are originating from the display adapter since that needs a higher video memory bandwidth when using a higher bit depth. The video adapter's DAC is probably not the issue, although that might be possible if it's performance depends on the current bit depth.

Dinis said...

Lower quality DACs don't produce a good quality image at high refresh rates because they can't handle high pixel rates because their OPAMPs have a high transition time.