You are here: The Oldskool PC/The Guides/Getting Old Software Running on Newer PCs/Video |
Believe it or not, video can have the same problems as audio and CPU speed. Usually found on only the oldest and rarest of games, these problems can turn an otherwise perfect gaming experience into a nightmare of frustration. The game works perfectly, except the screen is all garbled!
What causes this?
As mentioned above in the introduction, programmers used every trick in the book to make their game perform as best it could on the hardware of the time. One popular speedup came from bypassing the BIOS when doing video updates. The Color Graphics Adapter (CGA) was capable of some cool graphics-mode tricks that the BIOS couldn't do (or did very slowly), including:
Cool stuff, huh? No wonder early PC game programmers used them. What possible drawback could there be?
The drawback is that every single video card out since CGA has changed the interface to these features (changing color and palettes, shifting the display, changing cell height), or omitted them completely (entering Compostite color mode). What's worse is that if you perform some of them in the wrong order on a VGA card, you'll get unpredictable results. Sometimes only the color is wrong, but most of the time the display is completely garbled. Unless you have a VGA card that is known to 100% perfectly emulate CGA, such as the Cirrus Logic Eagle II VGA, you're pretty much out of luck and have to start tweaking.
Let's examine the ways you can attempt to fix this.
Some video card manufacturers were aware of this problem and provided you with a way to reconfigure your EGA or VGA card to support the hardware tweaking the older software dished out. Some cards (usually EGA) did this with a dip switch or jumper; others (usually VGA) provided a program on the video card driver diskette that let you switch it into CGA mode until you powered off. ATI VGA cards used to provide this feature, but support for this has fallen by the wayside as of late. My old ATI VGA Wonder utility diskette had the following file on it:
File Name: README.GAM Date : September 15, 1993 ================================================================ Some CGA game programs use an emulated graphics mode for display. They need a special setup for the video card to run correctly. A batch file, called GRPTXT.BAT, has been prepared for you to set up the video card for emulated graphics mode. You must run it before running the game. Examples of these programs are: ROUND42 MOONBUGS BRICKS BANDIT For example, to run the BRICKS game, type: GRPTXTBRICKS
The GRPTXT.BAT file had the following contents:
vinstall ega c80 vinstall cga vinstall mask b8 fb 0 vinstall mask b4 ff 20
I'm not certain if it's possible to do these steps with the older utility software (which you can get from ATI's technical support site), but it might be worth a shot. If anyone has any idea what the mask command above did specifically, or knows of any other cards/utility programs that can do this, please let me know.
Paradise cards used to provide this utility as well; I've included it in the Resources section, if you're interested on testing it with your newer Paradise card. It's called PEGA.
Sometimes CGA isn't involved at all in color problems or screen corruption--early games that supported VGA are guilty as well. Just like the Adlib problem discussed earlier, some VGA cards (especially those built directly onto the motherboard) can "lose" palette-changing instructions if they're fed to the video card too fast for the card to handle them. A slowdown might fix that problem, but in case it doesn't, you might be able to disable a common BIOS setting that can help called Palette Snoop.
To do this: Go into your BIOS/CMOS setup, as mentioned earlier in this Guide. If you see an option called Palette Snoop, disable it. Palette Snoop allows an ISA card to share the same palette as the on-board VGA circuitry. This is useless and contributes to compatibility problems.
This section isn't so much useful help as simple trivia: Just because you've got VGA circuitry built into your motherboard doesn't mean you're limited to it. Most motherboards offer a dip switch or jumper that disables the on-board VGA circuitry, enabling you to add your own VGA card. If you've got a crappy VGA that's screwing up the palette with some older games, kill it and buy a new one to put in.
If worse comes to worse and you simply can't get an old CGA game to display properly, you can always patch the program to not do what it's doing. This involves some fairly extensive assembler and debugger knowledge, of course, so it's not for the faint of heart. The basic procedure is:
I've included a CGA technical reference sheet in the Resources section so you have something to look at while you monitor port writes. Essentially, if it's not setting graphics mode, get rid of it. The only exception to this is if it's a extra-color tweaked CGA mode (a quasi-text mode like that used in Round42, Moon Bugs, Bricks, etc.), in which case you'll probably want to patch what it's doing into its EGA and VGA equivalents. If you need more information on how the extra-color tweaked CGA mode works and how to emulate it on EGA and VGA, either consult the tweaked CGA section in Life Before Demos, or drop me a line.