Monday, October 1, 2012

All You Ever Wanted to Know about the Creative Music System , a.k.a. the Game Blaster




I.  Market History

In 1988, DOS games were finally beginning to support cards and devices that would allow games to expand their musical abilities beyond the PC Speaker and PCjr./Tandy 3-Voice sound.  King's Quest IV, released in September, 1988, was the first DOS game to support sound cards and midi interfaces.  It supported the Adlib Music Synthesizer Card, the Roland MT-32 Multi-timbral MIDI Sound Module (with a Roland MPU-401 midi interface) and the IBM Music Feature, all of which had been released the previous year.

While the Adlib would soon become supported by all developers, and the MT-32 would dominate the high end of PC gaming for several years, IBM's card was seen as overpriced and lacking in features.  It was supported in games only by Sierra, and then as something of an afterthought.  Could a third card succeed?  Creative Technologies of Singapore thought it could.

In late 1987 or early 1988, Creative Labs, Inc. released the Creative Music System (CMS or C/MS as it was abbreviated) in the United States (it had previously been released in Malaysia and Singapore).    It consisted of a half-length 8-bit ISA card (called the "Creative Music Card") and software to compose music on the card.   The software came on five 5.25" Double Density 360KB disks (Master Disk, Intelligent Organ, Sound Disk 1, Sound Disk 2, Utilities Disk).  It included the Intelligent Organ, which used text mode ASCII graphics to show piano keys, demos, lots and lots of songs, many of which composed by the company's founder, W.H. Sim.  It also includes a TSR called CMSDRV.COM, which some of the programs use to communicate with the card.


The Creative Music System had no game support in the beginning, and without it, any consumer based audio PC device would be considered little more than a toy.  Creative had a card it could not sell, which is the reason why the Creative Music System box and package is incredibly rare today.  Creative teamed up with Radio Shack to sell a repacked version of the card in its stores under the name Game Blaster.  The official name of the actual card in this package is the Game Blaster Music Board.  Note that whether the card is in a box with the label "Creative Music System" or "Game Blaster", the card is functionally identical.  The software came on one 5.25" or 3.5" Double Density disk (both included), with only the Intelligent Organ, a demo, a test card utility, CMSDRV.COM and drivers for Sierra's games.  The disks that came with the Creative Music System were available separately along with other Creative Labs programs for the card.

Like Ad Lib, Creative reached out to game developers, and in the Game Blaster box it included a full copy of Sierra's Silpheed and drivers for Sierra's SCI games released at the time.  Hereafter, I use the label "CMS" to refer to the boards and software support for them.  I believe the card was also referred to as the Avenger Music Card in some countries.

While the Game Blaster was more successful than the Creative Music System, it was still unable to challenge the Adlib's increasing dominance over PC audio.  Creative's card had one feature the Adlib lacked however, and that was stereo output.  In the beginning, it was the poor man's stereo music card, because only high end solutions like the Roland MT-32 supported stereo until the days of the SB Pro.  Unfortunately, its musical capabilities were not inspiring to game programmers despite its marketing as a music card.  Programmers and consumers viewed square wave synthesis was seen as technically inferior to the FM synthesis of the Adlib.  The Adlib was a simple card and easy to clone or implement.  Creative decided to combine the CMS functionality with the Adlib functionality and add a MIDI interface, a joystick adapter and digital audio input and output functions to create a "Killer Card."  This card was marketed as the Sound Blaster at the end of 1989.

It soon became apparent that the CMS functionality (which enabled Creative to advertise the card as a "stereo" solution) was unimportant to buyers, so Creative left out the chips in the 1.5 and 2.0 versions of the Sound Blaster.  The chips could be added in as an upgrade from Creative, or in the 1.5's case, by buying the right chips from anyone who had two of them.  Relatively few people bothered when the Adlib provided all the functionality that PC games needed.  In mid-1991, Creative released the Sound Blaster Pro and eliminated support for CMS on the board and in their products.


II.  Technical Qualities

The card has six jumpers to set the I/O address to 210, 220 (default), 230, 240, 250 or 260.  It takes up the consecutive sixteen ($00-$0F) addresses from and including the I/O starting address set by the jumper.  It uses no IRQs and no DMAs.  It uses standard TTL Logic and a custom Creative Technology CT-1302 Programmable Logic Array for interfacing.  The music is exclusively made by two Phillips SAA-1099 chips, one for the left channel, one for the right channel. SAA-1099s from Creative have CMS-301 stickers on these chips.

The left SAA-1099 is at I/O 2x0 & 2x1 and the right SAA-1099 is at I/O 2x2 & 2x3.  The subsequent twelve I/O addresses are used by the CT-1302.  For a long time, the function of this chip was a mystery, but now we know what it can do.  One problem which Creative used this chip to solve was that of detection.  While the game publisher could require a user to tell a program the hardware he had in his system, it would be difficult for a less savvy user to know or remember what he had or where in the I/O space it was.  Creative decided to make it easy for the consumer and the game programmers by allowing the card to be detected by software.

In order for a card to be detectable in software in a PC, it has to give a reliable, non-random response to a read from the processor, the more distinctive the better.  The SAA-1099s cannot be read, only written, so there was no reliable way to detect these chips in software.  Here is where the CT-1302 comes in.  For the remaining addresses, the card will store or latch an 8-bit value written to it at addresses 2x6 or 2x7, which is then read back by a program from address 2xA or 2xB.  Port 2x4 always contains value 7F, giving this card an even more unique detection scheme.  If the value read at 2xA or 2xB is the same as the value written at 2x6 or 2x7 and the unique value at 2x4 is 7F, then the card is detected.  There must be two different I/O addresses involved in the reading/writing scheme, otherwise this scheme does not work reliably.

There is a volume wheel to control the amplified output to the RCA jacks and headphone minijack.  They can drive speakers up to 8ohms.  There are cards marked with CT-1300A and CT-1300B part numbers.

Each Phillips SAA-1099 chip supported six channels of sound using square waves with 12-bit frequency control and 4-bit amplitude control.  Up to two of the six channels could be used for white noise generation or envelope generation with 8 preset envelopes.  The chip can output in stereo through dual amplitude controls.  Compare the TI SN76496 and its derivatives found in the IBM PCjr. and Tandy 1000 computers with three channels of square waves with 11-bit frequency control, 4-bit amplitude control, a separate noise generator and mono output.  The SAA-1099 is almost a stereo clone of two AY-3-8910s, where each chip supports three square wave channels with a 12-bit frequency control, 4-bit amplitude control, a noise generator and a envelope generator.

In Creative's products, the SAA-1099s are clocked at 7.159MHz, which is exactly half of the OSC 14.318MHz signal.  It its 1990 C/MS Programming Information manual, Creative Labs copies much of the SAA-1099 datasheet but fails to make any mention of the envelope generator functions or registers and also leaves out the most important noise selection (in which it uses the programmable frequency of a tone generators), giving the impression that the noise generator is only capable of three pre-selected frequencies. The manual gives the impression that the Game Blaster is less capable than it actually is, and doubtless may have contributed to the relative lack of use of the noise capabilities in DOS games.  I am not aware of any game that used the envelope function.  The chips Creative Labs used appear to be generic SAA-1099s (after you peel the CMS-301 sticker off them), so all the functions described in the SAA-1099 datasheet should be available.


When Creative released the Sound Blaster, it kept the SAA-1099 chips at I/O 2x0-2x3, but the other I/O ports in the sixteen-port address space the Sound Blaster allots to itself were used by its Digital Sound Processor (DSP) (2x6, 2xA, 2xC, 2xE) and Adlib YM-3812 chip (2x8 & 2x9).  Thus the CT-1302 latch functionality described above will not work on a Sound Blaster, and this affects compatibility with games.  Simply put, if a game cannot detect a CMS card, it may refuse to play CMS music and/or sound effects.


The Sound Blaster 1.5 is the same card as the Sound Blaster 1.0 but it has two empty sockets for SAA-1099 chips.  Once these are installed, and they can be obtained from IC suppliers, then CMS becomes available.  No jumpers or other fiddling is required.  With the 2.0, not only do the ICs need to be inserted, but a programmed PAL (write once) or GAL (rewritable) will need to be inserted into the third socket.  Chuck(G) of the Vintage Computer Forums develpoed a method to deduce logic tables for PALs and used his method to determine the logic table for the PAL Creative used and programmed.  The upgrade GALs programmed with the derived logic will work on all 2.0s except those with the CT1336A chip.  On those boards, a newer upgrade chip or reversed engineered chip will be required.  Once the three chips are installed, the CMSOFF jumper needs to be removed.

III.  CMS Games & Software

Through various sources, including MobyGames and VOGONS forums, I have identified 83 unique DOS games that support CMS.  In the chart below, I give the release year as reported by MobyGames, but I highly doubt, for example, that the DOS ports of Airball and Times of Lore were released in 1987 or 1988 respectively, or that patches were available for Sierra's 1988 games until 1989.  (I have been corrected as to Times of Lore).  Games that supported CMS were really available from late 1988 to 1992.

Unfortunately, due to the self-detection mechanisms described above, not all games work with a Sound Blaster with CMS.  However, I have been able to make 75 of those 83 games work with a Sound Blaster with CMS.  Many games, including all games from Sierra, Activision and LucasArts games, do not try to detect CMS and require the user to select CMS in an install program or with a command line argument to make the game work with CMS.  Some games will play Adlib or Roland MT-32 music and sound if they detect one in the system even if they detect a CMS.  In those cases, you need to manually select CMS by a command line argument.

This would not be a huge problem except that CMS cards are extremely rare.  One to two come up on eBay in a year.  Thus if someone wants to hear CMS on real hardware and not worry about compatibility or finding the right command line switches to get CMS working, they need a real CMS.  Sound Blasters, the 1.5 and 2.0 are not as rare, and can be upgraded with Phillips SAA-1099 chips obtained from an IC supplier and a programmed GAL (with the caveat given above).

In many, many cases, CMS music in games will sound pretty awful next to the Adlib or the Roland MT-32, and sometimes even the Tandy 3-voice chip sounds better.  Elvira and Conan are especially awful, and Sierra's support for games like Laura Bow 2 is pretty pathetic.  However, Times of Lore uses it well, and Airball is unique in that it supports CMS and Innovation SSI-2001 (better than CMS) but not Adlib, Tandy or Roland.

Some games and most of Creative's CMS software use CMSDRV.COM to access the Game Blaster and require it to be run as a TSR prior to the game or software being run.  The driver provides basic interface services to the game through a software interrupt.  CMSDRV.COM v3.10, used before the Sound Blaster, will refuse to load unless it successfully detects a true CMS or Game Blaster card.  So will the Intelligent Organ executables found with true CMS boards.  However, Creative included versions of these programs that will run with a Sound Blaster in its original 1.0 driver disks.  The version of CMSDRV.COM that comes on the Sound Blaster 1.0 disks is v3.20B.  If a game requires you to use CMSDRV.COM and its CMSDRV.COM fails to load because you have a Sound Blaster, just copy over the later version.

Some games will automatically detect a Sound Blaster, and if so, will allow CMS music to work.  Sound Blaster detection is usually done by sending a report DSP version command to the card and reading back a value that would seem to make sense (1.5, 2.0 or 2.01).  Thus some Accolade games will default to CMS music because it detects a Sound Blaster and the user did not load the SOUND.COM TSR from an Adlib disk or SBFMDRV.COM from a Sound Blaster 1.5 or above disk.  These TSRs act exactly like the CMS TSR, and if a game advertises Adlib support but you cannot hear the sound in the game, try running one of these beforehand.

Silpheed (v1.0) had already been released without support for CMS, so the version (v2.3) in the Game Blaster box included the full game (on 5.25" and 3.5" disks) with support added for the CMS, volume control (which does not work with CMS) and text for Xacalite's speech (apparently his speech did not function correctly, so it was impossible to understand everything he said).  Sierra did not leave out any of the other sound card drivers in this version and even added a driver for a Yamaha FB-01 MIDI module (connected to a Roland MPU-401 MIDI interface).  Sierra would later release v2.4 in the Silpheed box and v3.0 with the PS/1 Audio/Game Card.

Drivers were included on the Game Blaster disk for King's Quest IV, Leisure Suit Larry II, Police Quest II and Space Quest III.  For the later versions of King's Quest IV and Leisure Suit Larry II and all versions of Police Quest II and Space Quest III, there are two files.  The first, CMS.DRV, is common to all games.  The second, PATCH.101, is unique to each game.  For the older versions of King's Quest IV and Leisure Suit Larry II (SCI interpreter versions 1.000.111 and 1.000.011 or earlier, respectively), there was a unique CMS.DRV for each game combining the two files identified in the previous sentence.  There was a program called SG-INST.EXE which allowed you to change the I/O address of the driver.  This should work with all Sierra SCI0 engine CMS drivers.

Finally, there are several instances where claimed support for CMS does not seem to really exist.  In the list, I have identified games where I could not find any indication that CMS support was actually included in the game or that the support was broken and not fixable.  Even the box will sometimes give false advertising.  However, if anyone is actually able to get CMS working in these games, let me know.

In the table, Y = Yes, N = No, P = Patch Required.  Many games will not recognize CMS at an I/O port other than 220-22F.

Game Release Publisher CMS/Game Blaster Only I/O Port Select Notes
Airball 1987 MicroDeal N N
Altered Destiny 1990 Accolade, Inc. Y N
Arkanoid II: Revenge of Doh 1989 Taito Corporation Y N "Special Version", not present on other versions
Bad Blood 1990 ORIGIN Systems, Inc. N Y
Battle Chess II: Chinese Chess 1990 Interplay Productions, Inc. N Y
BattleTech: The Crescent Hawks' Revenge 1990 Infocom, Inc. N N
Breach 2 1990 Impressions Games, Mindcraft Software, Inc. N N
Bubble Bobble 1989 Taito Software Inc. Y N
Budokan: The Martial Spirit 1989 Electronic Arts, Inc. N N
Castle of Dr. Brain 1991 Sierra On-Line, Inc. N Y
Champions of Krynn 1990 Strategic Simulations, Inc. N N
Chuck Yeager's Air Combat 1991 Electronic Arts, Inc. N N
Codename: Iceman 1989 Sierra On-Line, Inc. N P
Colonel's Bequest, The 1989 Sierra On-Line, Inc. N P
Conan: The Cimmerian 1991 Virgin Games, Inc. N N
Conquests of Camelot: The Search for the Grail 1990 Sierra On-Line, Inc. N P
Conquests of the Longbow: The Legend of Robin Hood 1991 Sierra On-Line, Inc. N Y
Day of the Viper 1989 Accolade, Inc. N N
Death Knights of Krynn 1991 Strategic Simulations, Inc. Y N
Don't Go Alone 1989 Accolade, Inc. N N
EcoQuest: The Search for Cetus 1991 Sierra On-Line, Inc. N Y
Elvira 1990 Accolade, Inc. N N
F-14 Tomcat 1990 Activision, Inc. N Y
Fire Hawk : Thexder – The Second Contact 1990 Sierra On-Line, Inc. N N
Gunboat 1990 Accolade, Inc. N N
Harpoon 1989 Three-Sixty Pacific, Inc. N N
Hero's Quest: So You Want to Be a Hero / Quest for Glory I 1989 Sierra On-Line, Inc. N P
Hoyle's Official Book of Games: Volume 1 1989 Sierra On-Line, Inc. N P
Hoyle's Official Book of Games: Volume 2 1990 Sierra On-Line, Inc. N P
Hoyle's Official Book of Games: Volume 3 1991 Sierra On-Line, Inc. N Y
Indiana Jones and The Last Crusade: The Graphic Adventure 1989 Lucasfilm Games LLC N N EGA Version 1.4 for Support, All VGA Versions have Support
J.R.R. Tolkien's The Lord of the Rings, Vol. I 1990 Interplay Productions, Inc. N Y
Jack Nicklaus' Unlimited Golf & Course Design 1990 Accolade, Inc. N N
Joe Montana Football 1990 SEGA of America, Inc. N N
Jones in the Fast Lane 1991 Sierra On-Line, Inc. N P
Keef the Thief: A Boy and His Lockpick 1989 Electronic Arts, Inc. N N
King's Quest I: Quest for the Crown 1990 Sierra On-Line, Inc. N P
King's Quest IV: The Perils of Rosella 1988 Sierra On-Line, Inc. N P Patches Required, Different for Old or New Version
King's Quest V: Absence Makes the Heart Go Yonder! 1990 Sierra On-Line, Inc. N N
Lakers versus Celtics and the NBA Playoffs 1989 Electronic Arts, Inc. N N
Leisure Suit Larry 1 : In the Land of the Lounge Lizards 1991 Sierra On-Line, Inc. N P
Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals 1989 Sierra On-Line, Inc. N P
Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work 1991 Sierra On-Line, Inc. N Y
Leisure Suit Larry Goes Looking for Love (in Several Wrong Places) 1988 Sierra On-Line, Inc. N P Patches Required, Different for Old or New Version
Les Manley in: Search for the King 1990 Accolade, Inc. N N
Loom 1990 Lucasfilm Games LLC N N
Miami Vice 1989 Capstone Software N Y Replace included CMSDRV.COM with CMSDRV.COM from Sound Blaster 1.0 Install Disk
Mixed-Up Fairy Tales 1990 Sierra On-Line, Inc. N P
Mixed-Up Mother Goose (16-Color High Res) 1990 Sierra On-Line, Inc. N P
Mixed-Up Mother Goose (256-Color Floppy) 1991 Sierra On-Line, Inc. N Y
Night Shift 1990 Lucasfilm Games LLC N N
Oil's Well 1990 Sierra On-Line, Inc. N N
Operation Wolf 1989 Taito America Corporation N N Fails to Detect but Works Anyway
Paku Paku 2011 Paladin Systems North N Y
PGA Tour Golf 1990 Electronic Arts, Inc. N N Run SOUND.COM for Adlib Music
Police Quest II: The Vengeance 1988 Sierra On-Line, Inc. N P Patch Required
Police Quest III: The Kindred 1991 Sierra On-Line, Inc. N Y
Police Quest: In Pursuit of the Death Angel 1992 Sierra On-Line, Inc. N Y
Power Drift 1990 Activision Publishing, Inc. N N
Prince of Persia 1990 Brøderbund Software, Inc. N N v1.0 Only, Must remove Adlib chip from Sound Blaster to get C/MS Music, buggy unless patch, see comments below
Puzznic 1990 Taito Corporation Y N
QIX 1989 Taito Corporation Y N
Quest for Glory I: So You Want To Be A Hero (256-Color) 1992 Sierra On-Line, Inc. N Y
Quest for Glory II: Trial by Fire 1990 Sierra On-Line, Inc. N N
Rambo III 1989 Taito America Corporation Y N
Rastan 1990 Taito Corporation Y N
Shanghai II: Dragon's Eye 1990 Activision, Inc. N Y
Silpheed 1988 Sierra On-Line, Inc. N Y v2.2 and above
Sorcerian: Master Scenario 1990 Sierra On-Line, Inc. N N
Space Quest I: The Sarien Encounter 1991 Sierra On-Line, Inc. N N
Space Quest III: The Pirates of Pestulon 1989 Sierra On-Line, Inc. N P Patch Required
Space Quest IV: Roger Wilco and the Time Rippers 1991 Sierra On-Line, Inc. N N
Spirit of Excalibur 1990 Virgin Games, Inc. N N
Spot 1990 Virgin Mastertronic Ltd. N N
Star Control 1990 Accolade, Inc. N Y Game will try all six I/O ports to detect Game Blaster, Must Remove Adlib chip to get Game Blaster music to work, Game will automatically enforce MT-32, Adlib, Game Blaster, Tandy and PC Speaker in that order
Strike Aces 1990 Accolade, Inc. N N
SU-25 Stormovik 1990 Electronic Arts, Inc. N N
Test Drive III: The Passion 1990 Accolade, Inc. N N
The Dagger of Amon Ra 1992 Sierra On-Line, Inc. N Y
The Game of Harmony 1990 Accolade, Inc. N N
The Secret of Monkey Island 1990 Lucasfilm Games LLC N N
Times of Lore 1988 ORIGIN Systems, Inc. N Y
Ultima VI: The False Prophet 1990 ORIGIN Systems, Inc. N Y
Windwalker 1989 ORIGIN Systems, Inc. N N
WolfPack 1990 Brøderbund Software, Inc. N N Fails to Detect but Works Anyway






Games without CMS Support




Xenocide 1990 Micro Revelations, Inc.

Box claims support, but not fully implemented in software
Secret of the Silver Blades 1990 Strategic Simulations, Inc.

Box claims support, card will make some horrible noises in game, but there is no entry at the music selection screen. Adlib overrides everything for music
Jordan vs Bird: One on One 1988 Electronic Arts, Inc.

Some Boxes have the System Requirements Label from Lakers v. Celtics, Game does not support Adlib, C/MS or Roland MT-32
Sargon 5: World Class Chess 1991 Activision, Inc.

No switches for Game Blaster in Executable
Trump Castle II 1991 Capstone Software

Possibly Broken
Monte Carlo Baccarat 1991 Capstone Software

Possibly Broken
Hoverforce 1990 Accolade, Inc.

Seems to Support Adlib/MT-32 Only
Stratego 1990 Accolade, Inc.

Seems to Support Adlib/MT-32 Only
Blue Max: Aces of the Great War 1990 Three-Sixty Pacific, Inc.

Box claims support, but seems to support Adlib only
Das Boot: German U-Boat Simulation 1990 Three-Sixty Pacific, Inc.

Box claims support, but seems to support Adlib only

Tuesday, September 18, 2012

486 DOS Gaming Machine

I put together a DOS gaming machine relatively recently, and while I have posted about it at the VOGONS Forums and The Vintage Computer Forums, I wanted to make sure that all the information was available here on my blog :

I.  CPU



I needed a system that would play most DOS games from 1988-1994.  Games prior to that can be played on my Tandy 1000, and games after that would be better on a Pentium machine.  So I had to pick a CPU that could be flexible, speed-wise.  I chose an Intel 486DX2/66, a very common option for 1993-1994 machines.  This is a standard 486DX2 that runs at 5V and has 8KB of write-through cache.  (There is an sSpec number, SX955, which supports write-back cache.)  It has 168 pins and uses a pin grid array.  Most retail motherboards for the 486 line use socket 3, so this CPU is perfect.  The CPU runs hot enough that a heatsink with a fan mounted on it or blowing at it is recommended.

I did not want to go too high end and use an AMD or Cyrix processor, because it would be easier to put together a Pentium system.  A Pentium, while having superior integer performance compared to a 486, completely outclasses the 486 when it comes to floating point performance.  True 3D space games like Quake use floating point math extensively, and barely run acceptably on the fastest 486-based CPUs.

II.  Motherboard



A proper motherboard is the next part that I needed to obtain to build a working system.  My requirements were for a middle-of-the-road motherboard.  I wanted to steer clear of PCI slots for several reasons.  First, PCI was just being released during the late 486/early Pentium era (1995) and the implementations had not worked all the bugs out.  Second, PCI makes for more complicated system setup.  Third, PCI video cards are much more likely to have VGA compatibility bugs than VLB cards.  Fourth, in no other system would I be able to run a VLB card.  So I had to find a board with two VLB slots, one for the video card, another for the hard drive controller.

Most motherboards I found that were sold as a part, as opposed to a system pull, were bare bones boards.  This means that there were no ports beyond the keyboard port, no headers for ports or drive interfaces, and no integrated hardware like a sound chip.  There would be ISA and VLB slots, the CPU socket, the RAM slots and the cache sockets.  The rest of the board would solely be dedicated to the system chipset.

When shopping for a vintage motherboard, it is critical to make sure you can find a manual for the board.  Even if the motherboard jumper's settings are silk screened on the board, the cryptic information may be difficult to decipher.  I chose a motherboard whose manual, or at least the board settings, was available online.  The motherboard is the ASUS VL/I-486SV2G.  This is the board's layout, from Total Hardware 99 :


This board uses the SiS 85C471 + 85C407 chipset.  One great feature of this board is that it uses standard 72-pin SIMM slots, instead of the older 30-pin SIMM slots still found on many 486 boards.  Only one SIMM is required in a 486 board to have working RAM because SIMM memory is 32-bit.  This board supports Fast Page Mode (FPM) DRAM, but not Extended Data Out (EDO) DRAM.  EDO support may be found on the last 486 boards.

The cache sockets support up to 1MB of cache, but finding nine cache chips of the appropriate speed and pin out is not easy.  Besides, external cache is nice, but more than 256KB really becomes subject to the law of diminishing returns.  However, external cache up to that amount really helps push this board beyond those that did not support external cache, so it was a must have requirement.

The final issue, and one that will not be shown on the diagram, is the board's battery support for the real time clock and saving the BIOS settings.  In 486 boards you will generally find three types of batteries.  First, there are batteries integrated into the clock chip.  This is the Dallas 1287 RTC, and once the battery has been depleted you must replace the chip.  Replacement chips are expensive these days, and I did not want to have to cut into the chip to solder on battery holder.  Second, there are batteries soldered onto the motherboard.  Usually these are three cells held together in a plastic package and are usually referred to as the "barrel type."  The problem with these, apart from needing to remove them from the motherboard, is that when the batteries get old they leak battery acid onto the board, damaging traces and components.  Third are the coin-slot holders, which usually hold a CR2032 3v cell.  These are the best because old batteries can be discarded and replaced without difficulty.  My board came with a CR2032 coin slot holder and keeps the date/time and settings perfectly.  There is a header to connect an external battery, and 4xAA battery packs are easy enough to find with a 4-pin header attached.

When shopping for motherboards, you may have a difficult time finding out what kind of BIOS it has.  Mine has an AMI BIOS, text-based.  The settings are a tad spartan and needed some tracking down to figure out what they do, but most are self-explanatory.  The neat feature about my board is that it supports the Large addressing and LBA modes for hard drives, so I need not be concerned with the 504MB BIOS barrier so frequently seen in 386 and 486 boards.  However, as my BIOS is dated prior to December, 1993, I must use the LBA mode, as the Large mode is buggy.  The LBA mode works fine with my 2GB Compact Flash card.

Other important settings for me is the ability to disable internal and (especially) external cache.  This is without a doubt the best way to implement slowdown.  Disabling internal cache can be done with software programs like cacheon and cacheoff.  Disabling the cache will result in remarkable slowdown, turning that 486DX2/66 into something like a 386DX40.  One performance feature I have noticed is that disabling the external cache will result in a measurable but not remarkable speed decrease and is best for fine tuning slowdown.  But if you disable the internal cache, it seems that the external cache has little effect on performance whether enabled or disabled.

Finally, there is the Turbo function.  My case has a Power button and a Turbo button, and both require a switch that will remember its position.  If your case does not have a turbo button, any switch with a catch and release mechanism can be used.  If using the Turbo function does not appeal, then you can put a jumper over the leads and your system will always be in Turbo mode.  If there is no switch connected or jumpers over the leads, then your system will not function as fast as it should.  The slowdown resulting from turning the Turbo off is equivalent in the benchmarks to disabling internal cache, but in my opinion it is not as smooth.  While Turbo in a 386 machine may actually reduce the clock speed to 8MHz, Turbo in a 486 machine generally inserts wait states from CPU to memory accesses.  However, the CPU is still processing data at 66MHz, so the effect is not uniform and jerkiness in games can result.

The program HIRAM supports this chipset, so you can load it to obtain Upper Memory Blocks without needing to load EMM386 or another Extended Memory Manager.  See my Ultima VII on Real Hardware post for more details.

Here are the fastest speed settings in the BIOS :

BIOS FEATURES SETUP :

CPU Internal Cache - Enabled
External Cache - Ditto
Quick Power On Self Test - Ditto
Boot Up Floppy Seek - Disabled
Boot Up System Speed - High
IDE HDD Block Mode - Enabled
Video BIOS Shadow - Enabled
C8000-CFFFF - Enabled
D0000-D7FFF - Ditto
D8000-DFFFF - Ditto

CHIPSET FEATURES SETUP :

Auto Configuration - Disabled
AT Bus Clock - 1/4CLKIN (33MHz / 4)
DRAM Speed - Fastest
DRAM Write WS - 0 WS
DRAM Write CAS - 1T
DRAM Write Burst - Enabled
Slow Refresh - Ditto
Hidden Refresh - Ditto
L2 Cache Scheme - Write Back
L1 Cache Scheme - Write Back (My 486 only supports Write Thru)
Cache Burst Read - 1T
Cache Write Cycle - 2T
Video Shadow - Cacheable
Fast Reset Emulation - Enabled
Fast Reset Latency - 2 us
Latch Local Bus - T2
Local Bus Ready - Transparent


III.  Video Card



In a 386 or lower system, the user is generally stuck with ISA graphics cards.  486 systems introduced the VESA Local Bus to implement faster access to hardware.  This helps eliminate the ISA bottleneck when playing first person shooters like DOOM or flight simulators like Microsoft Flight Simulator 5.  A VLB card was a necessity, and I especially wanted to avoid compatibility issues with games that used tweaked VGA features.  I chose the Diamond Stealth 24 VLB S3-805.  This card has 1MB of RAM and that is it, but it is enough.  I have had no graphics trouble with games or demos other than the Copper demo, which only works correctly with certain Tseng ET4000AX chips.  There are faster cards and better featured cards, but for what I want to run this card suits me fine.  It can support 640x480x256, 800x600x16 and 15-bit color modes.  It uses an S3 chipset, which includes Windows acceleration and a very respectable DOS performer.

IV.  Sound Cards

In this system, there is no one sound card that can do it all, so I have three in it.

A.  Roland MPU-401 + MIF-IPC-A



If this system were built in 1993, this card and breakout box would not be a contemporary of it.  However, it is the only Roland MPU-401 interface I own.  Its sole purpose is to handle MIDI output to my midi modules, of which I have five :

Roland MT-32
Roland CM-32L
Roland SC-55
Roland SC-55ST
Yamaha FB-01

B.  Sound Blaster Pro 1.0



I went back and forth about whether to put a SB Pro or a SB16 in this system, and I finally decided to keep the Pro.  My decision is based on the following :

1.  It is hard enough to find games that actually support OPL3 features, and many games that support dual OPL2 and OPL3 sound better on the older chipset.  Then as many of the games I play use Roland LA or GS synthesis as their preferred output device, the FM synthesis will not get much use.

2.  Most games this system will run use 8-bit digital sound.  The early 16s have poor sound output quality and insert pops and clicks when used with the 8-bit digital sound methods used by the Pro and earlier cards.

3.  I have a separate MIDI interface card that has no compatibility issues with games or handing note bugs.  The SB Pro's interface is NOT MPU-401 compatible at all, and that what games support (unless they have specific support for Sound Blaster MIDI).  Most later SB16s and all AWE32s suffer from the hanging notes MIDI bug, some more than others.

C.  Gravis Ultrasound ACE



I have discussed the gaming benefits of the Ultrasounds in an earlier post, and everything I said there relevant to this card applies.  The ACE is designed to function alongside a real Sound Blaster card.  The only issue is my card is a 1.0 version and I need to reverse the stereo outputs.  I also need to use a special version of ULTRINIT program to properly disable the joystick interface, even though this card does not have a joystick port.  The Adlib ports are obviously disabled, because this thing does not sound anything like a real Adlib.  However, the Ultrasound SBOS emulator works in this motherboard, meaning it has a working Non-Maskable Interrupt (NMI).  In this system I needed to set the ATCLK to 7.159MHz (or lower) and set separate GUS and MIDI IRQs for the music to work properly in games like DOOM and Epic Pinball.

V.  I/O Interface & Drives

This motherboard has no parallel, serial or game ports and no floppy or IDE interfaces.  I chose the Kouwell  KW-560D, since I could buy it used and a manual with the jumper settings is a must.  This card has 32 jumpers.  It supports two serial ports, (headers required), one parallel port, one game port, one ISA/IDE hard drive interface and one VL/IDE drive interface.  It uses the second VLB slot in this motherboard.

The serial supports 16550 FIFO, the floppy disk controller up to 2.88M drives, the parallel port can be set to unidirectional, bidirectional, EPP and ECP modes.  The gameport should not be used because it only supports 2 axes/2 buttons and is not speed sensitive.  The VLB/IDE port need not have the high speed features enabled if stability is crucial.  All of the above options except the VLB/IDE speed are set strictly by jumpers.  The card has no BIOS socket which can be used to break the 504MB hard drive barrier.  All ports can be disabled.

The VL/IDE interface offers increased speed through the VLB bus.  The 16-bit ISA/IDE tops out at 3MB or so a second, but the VLB interface will allow much more bandwidth.  However, the faster the speeds, the more likely hard drive corruption will occur.  I use a SanDisk 2GB Compact Flash card rated for 15MB/sec with a CF-IDE adapter.  SanDisk makes reliable cards and this was the fastest card available at this speed.  I wanted to keep to 2GB because that is the maximum drive partition size in MS-DOS 6.22.  Drive D should always be the CD-ROM drive, and 2GB should be enough to play most DOS games without having to add and remove games too often.

For my floppy drive, I use an Epson SD-880 combo 5.25"/3.5" drive.  This drive occupies only one 5.25" bay and supports both types of HD disks.  For the IDE CD-ROM, I picked something generic.  It is an HP CD-Writer Plus 9300, which was probably released close to the turn of the century.  It is reliable, not too noisy and will have no trouble with CD-R discs.  Early drives tend to be in tough shape, rely on very complicated mechanisms, use proprietary interfaces, and are not fast.  A universal cable will be needed to output stereo CD audio from the drive to a Sound Blaster Pro, which uses a white connector.

VI.  Case, Monitor, Speakers, Mouse, Keyboard & Joysticks

I bought a generic AT case off ebay, but it was new.  A new case is hard to come by, but this case does everything I need with no fuss.  It supports 2 x 3.5" bays (sideways) and 3 x 5.25" bays.  It has well-sized Power, Reset and Turbo buttons and a keylock.  I did not have any experience with a keylock function until I got this case, and the key has to be in the unlocked position or the machine will not accept input from the keyboard.  This is a desktop case, not a tower, which would have been more typical for a home user of the time.  I put an Intel Inside sticker on it to lessen the generic feel.

My monitor is a generic 17" VGA shadow mask device from KDS.  It has a nicely curved tube and displays color well.

I am using my Cambridge Soundworks Gigaworks S750.  This will change because the left and right speakers are eight inches away from each other, so I have no practical stereo separation.  I will try to get a pair of bookshelf speakers, but they must be in an off-white color to match the ascetic of the system.

My keyboard is an IBM Model M 1391401, the virtues of which I have previously waxed enthusiastically and need not repeat here.

My mouse is a generic three button serial mouse with a switch for Microsoft and Mouse Systems modes.  Microsoft mode supports 2 buttons, but Mouse Systems supports 3.

My first joystick is a Gravis Gamepad for responsive digital controls.  Commander Keen does not play the same with an analog stick.

My second joystick is a CH Products Flightstick Pro with four buttons and a throttle wheel.  If I were a sim junkie I would get a Thrustmaster FCS or FLCS, the Rudder Control System and the Weapons Control System Mark II (Throttle).  I am not, but this offers more functionality over the standard 2 button stick.

I will finish this article with my speedsys results for this system :


Tuesday, September 11, 2012

Combining the Right Vintage Hardware

Would you really put a CGA card in a 486?  Or a Sound Blaster 16 in an IBM PC?  People have done it, but its just plain wrong.

A.  IBM PC & XT

As the familiar story goes, in the beginning IBM made the PC.  And the world received the PC and deemed it good.  IBM offered two choices of video adapter, the Monochrome Display and Printer Adapter (MDA) or the Color/Graphics Adapter (CGA).  If you wanted color output or graphics, you chose the latter.  If you wanted to run only text-based applications, you chose the former.

Few people saw this computer as a gaming machine, although with the right hardware it was as capable a gaming machine as the Apple II.  It used an 8088 processor running at 4.77MHz, supported a maximum of 640KB of RAM and a socket for an 8087 math coprocessor.  It had five 8-bit ISA expansion slots, and the XT had eight.  Even so, the machine was slow, really slow.  If you are going to use an IBM PC 5150 or XT as a gaming machine, keep these limitations in mind.

So for an IBM PC or XT or a clone, essential gaming hardware to have in the machine is :

1.  Memory Expansion

PC - 256KB or 384KB memory expansion; XT - 640KB mod.

The PC, most commonly seen with 256KB on the motherboard, required memory expansion boards to reach a full 640KB.  IBM's Memory Expansion Adapters maxed out at 256KB per board.  The IBM XT originally came with a 64/256KB board, but a trivial modification would allow it to support 640KB by swapping chips.  Competitors like AST's Six Pak Plus allowed for 384KB and added a serial port, a real time clock, a parallel port and could be upgraded to support a game port, which leads me to :

2. Gameport

If you want to play games on the PC, you need a gameport card.  IBM's official name for its card is the Game Control Adapter, but any card should work fine.  Sound card gameports work as well so long as the sound card is not Plug-n-Play.

3.  Floppy Drives and Controller

While this should be a no-brainer, you will be using lots of floppies on these machines.  Ideally, since floppy controllers only support two internal drives, you will be needing two drives.  Virtually all IBM PC 5150s come with two 5.25" floppy drives, and XT's usually come with two Full Height 5.25" drive, but later models come with two Half Height 5.25" floppy drives and usually a hard drive.  IBM PCs will work with a 3.5" floppy drive, but will treat it as a 720KB drive without a rare HD floppy controller.  You will need to use DOS 3.2 or better to recognize 80-tracks.  IBM PC and XTs are designed to accept only full-height drives, you will need to find some mounting hardware for half height drives or faceplates.

If you are running DOS off a floppy disk, then drive B will the drive you use to run DOS game software.

4.  Graphics

The CGA card is really the only choice here, although you can run an MDA card for text if you cannot stand CGA snow.  Many early games take advantage of CGA's composite output to display more colorful graphics on a TV or color composite monitor than an RGB monitor.  In some weird reality I could see someone running a triple-display with an IBM 5151 Monochrome Display, an IBM 5153 Color Display and a Color Composite Monitor like the AppleColor Composite Monitor IIe.

5.  Operating System : IBM PC-DOS 3.3

While 3.2 is perhaps the more historically accurate OS, 3.3 is more useful due to the support for multiple hard drive partitions.

Not essential, yet useful hardware include :

1.  Hard Drive and Controller

The IBM PC has a 63.5W power supply, so running a huge Seagate ST-412 is out of the question, but its successor, the Seagate ST-225, should be doable.  Later drives almost invariably take far less power, so you should be fine.  Since the PC has only 8-bit slots, you will be stuck with whatever controller you can find, unless you build an XT-IDE controller of find an ADP-50L.  Both cards will allow you to use standard 16-bit parallel ATA devices in an 8-bit slot.  They can be used with a compact flash card, which is ATA compatible with a passive pin adapter.

2.  NEC V20 CPU

Replacing your Intel 8088 with an NEC V20 CPU will increase performance by 10-15%.  It does break the occasional game like Championship Lode Runner.  Plus, if you are looking for the exact PC speed, it does not slow down.

3.  Mice

Most applications that run well on an IBM PC were made before the days where the mouse was an ubiquitous input device.  Nonetheless, when an application or game, like Tass Times in Tonetown supports it, it is always appreciated.  Use serial mice, since they are the closest thing to a standard and the CuteMouse driver.

Not recommended :

1.  EGA/VGA Graphics Cards

Most EGA cards offer decent CGA compatibility, but do not expect them to work with games that tweak the CGA registers.  VGA cards usually are less compatible.  Running EGA or VGA games on a 5150 is often too frustrating because the hardware is so slow.

2.  Expanded Memory Boards

By the time games were taking advantage of EMS, it was 1990.  The PC and XT were way too slow.

3.  Math Coprocessor

While it will not hurt to insert an 8087, I would not go out of my way to do it.  Games really did not support the coprocessor until the mid 90s.  Early games that do include SimCity and Falcon 3.0.  SimCity is no fun on an XT.

4.  Sound Cards & MIDI

The first games supporting sound cards like the Adlib, C/MS Game Blaster and midi devices like a Roland MT-32 were not released until 1988, almost seven years after the release of the PC.  You might as well try making a 486 play Quake II.  King's Quest IV, even with CGA, on a PC is no fun.  The number of games that are playable on an PC or XT and support sound cards is a very small number.

5.  Modems

Games supporting modem play began in the late 80s, and if you can find someone who is willing to play with you over a telephone line, Battle Chess or Modem Wars will take an eternity to carry out commands.

B.  IBM PCjr.

Normally, I say you should not play 16-color games on an 8088 machine.  I have two exceptions to this rule.  First, if the game is using a tweaked CGA mode like Round 42, Styx or ICON: Quest for the Ring.  Second, if the game has specific support for the PCjr.  The PCjr. is mostly self-contained, yet there are a few things to make life easier :

1.  PCjr. Joysticks

Gaming is easier with a joystick, and the PCjr. has custom joystick ports.  Regular PC-compatible joysticks are fully compatible with a pin-adapter.

2.  Memory Expansion

The PCjr. was only supposed to have 128KB RAM, but even IBM realized that this artificial limitation was absurd.  And as memory expansions did not have to share access between the CPU and the video controller and had dedicated DRAM refresh circuitry, the machine ran faster than a PC or XT when the expansion was used.  Many self-booting games of course, did not know about the expansion RAM.  Most memory expansions came in 128KB sidecars, but could be modified to support 512KB.

3.  Keyboard Replacement

If you are using the original PCjr. keyboard with the unlabeled rectangular keys (the chicklet keyboard), you should replace it with the official replacement PCjr. keyboard, or make a cable to connect an XT keyboard.  Typing on the chicklet can lead otherwise sane, well-adjusted people to commit depraved acts against computer hardware.

4.  Cartridges

Imagic and Activision ported some of their best games to cartridges, and this is the only way you are going to run them.

5.  Monitor

If you can find it, get the IBM PCjr. Display, Model 4863.  It supports 16 colors, utilizes the PCjr.'s unique cable output and has a built-in speaker.  The 3-voice sound only comes out of the monitor port or audio jack.  The internal beeper is not a speaker cone but a tinny tweeter that fails to produce digitized sound with any sort of volume.

6.  Operating System : IBM PC-DOS 2.1

The stock DOS for this system is just fine to run DOS programs.  If you get a hard drive you will need something more advanced.

Recommended and Non-essential Hardware is the same for the IBM PC.

Virtually all PCjr. enhanced games are self-booters.  Most DOS 16-color games support EGA or Tandy 1000 and many explicitly exclude PCjr. support.

C.  IBM AT, XT/286 & Clones

1.  Memory Expansion

The IBM AT comes with 512KB built into the motherboard, but can use 128KB on an expansion card.  Most 16-bit extended memory cards can fill the remaining hole.  The XT/286 has 640KB on the board.  However, at 6 or 8MHz, many of the programs that benefit from Expanded or Extended Memory are still beyond these systems.  Cards tend not to work well past 10MHz.

2.  EGA Graphics

With a 286 machine, you should really be using an EGA graphics adapter.  IBM's adapter requires a memory expansion board to increase the memory from 64KB to 256KB, but many third party adapters have the maximum built in.  128KB is needed for 640x350x16 graphics.  Also needed is an EGA monitor like the IBM 5154 Enhanced Color Display.  IBM's adapter is only an 8-bit device, 16-bit cards will provide speedier video, but at this stage CPU power is more important that graphics speed.  VGA is easy to add and allow for use of modern monitors, but VGA games tend to be more demanding than what these machines can handle.

3.  Sound Cards

At this point, games which use Sound Cards will run playably on these systems, so put them in.  An Adlib, a Game Blaster, an 8-bit Sound Blaster, a Roland MPU-401, anything you can find will likely run due to the 16-bit ISA slots.  Avoid ISA PnP cards, their software tends to require a 386.

4.  Multi-I/O

A hard drive is essential at this stage, but due to the 16-bit ISA slot you have a multitude of options.  There are plenty of cheap multi-I/O boards that integrate HD floppy controllers, IDE, serial, parallel and gameports.  Unfortunately, without a BIOS ROM, your hard drive support will be extremely limited in an IBM system.

5.  Network Card

A 16-bit ISA network card is easy to find, and they have several advantages.  First, you can use a network to transfer files.  Just set up an FTP on your main machine and use a small FTP client found in IRCjr.  Also, the ROM socket can be used to expand your hard drive choices using the Universal XT-IDE BIOS.  By burning the ROM and plugging it into the card, you have a BIOS extension capable of recognizing all that storage on your modern machine.

6.  Mice

Mice are really starting to become supported in late 80s games, no gamer should be without one.  If you have a machine with a PS/2 connector, the universe of mice has become greater.

One very useful addition is any kind of CPU accelerator.  Intel Inboard 386/AT is an example of one product designed to work in an IBM AT.  101 Keyboards are also useful, but not yet indispensible (the 84-AT keyboard has a very impressive feel)

Unnecessary investments : 16-bit Sound Cards, High Density drives, 80287 coprocessor.

7.  Operating System : IBM PC-DOS 3.3 or 5.0

Depends on the size of your hard drive, >32MB is best used with 5.0.

D.  Tandy 1000

1.  286 Machines

The upgrade path for Tandys that use 8088s or 8086s often do not satisfy for the games that really use 320x200x16 graphics.  286 machines are really recommended if you wish to run the whole breadth of software which can use Tandy graphics and especially Tandy sound.

2.  XT-compatible Keyboards

The Tandy 1000 TL/SL/RLs come with a Tandy Enhanced Keyboard, which in my opinion does not have great keystroke action.  I prefer an IBM Model M, and the keyboards made from 1985-1992 work very well with these machines.

3.  Memory Expansion

It is extremely important to upgrade these machines to their maximum supported motherboard limit.  This is  768KB for the 286 machines, 640KB on the lower machines.  Extended memory above 1MB is not supported, but Expanded memory is, if you can find a board that will fit inside these machines.  They are extremely rare, and the games to run them just are not quite there yet.

4.  Hard Drive Controller

8-bit Hard Drive Controllers like the ADP-50L and Acculogic S-IDE used to be impossible to find, but now with XT-IDE, the use of hard drives can now be realized in these systems.

5.  Sound Cards

See the AT entry above, just avoid the Sound Blaster, Thunderboard or any other card that camps out only at DMA1, which is also used.

6.  CPU Accelerator

Products like Make-it-486 are every useful here, as the speed boost will be much appreciated even in 16-color titles.  They can give you 386SX performance, although not the memory mapping features.

Useful cards : Network cards (useful more for the file transfer capabilities, use one like an NE1000 or Intel EtherExpress 8/16), parallel cards (to avoid the card edge parallel ports). EGA card (to run games like Commander Keen which do not work with Tandy graphics)

7.  Operating System : Tandy DOS 3.3 or MS-DOS 5.0

See above

Unnecessary : See AT entry above.

E.  386 Machines

1.  Memory Expansion

Usually 386 boards will require two or four 30-pin SIMM modules to expand the memory.  4-8MB is a good amount for a 386 machine.

2.  386DX

These are often socketed while 386SX CPUs are almost always soldered in and not upgradeable.

3.  Fast 16-bit VGA

At this point, VGA is the only choice.  Avoid slow cards from Trident or OAK Technology.  The Tseng ET4000AX is an excellent choice for fast, compatible VGA.  While SVGA is not yet a requirement, a having  a 512KB card is usually sufficient for the standard SVGA modes.

4.  Sound Cards

A Sound Blaster Pro, Pro Audio Spectrum 16, Gravis Ultrasound are all great choices.  Roland MPU-401 is also highly recommended.  MT-32/LAPC-I/CM-32L is still the better option, but select games are starting to use General MIDI.  A Roland SCC-1 is very useful.

5.  HD Floppy Drives

Should have two, one for each size of disk.

6.  Multi-I/O, Network Card, Mouse & 101 Keyboard

7.  External Cache

Good boards can support up to 128-256KB external cache.  Adding external cache will really boost performance.

See above

8.  Operating System : MS-DOS 5.0-6.22

Absolutely necessary to gain access to the High Memory Area and Expanded Memory Emulation.  Windows 3.1 is not yet recommended, the performance needed when playing games just is not there yet.

Useful items include a CD-ROM drive, 80387DX coprocessor, SCSI controller (faster than 16-bit IDE)

F.  486 Machines

All the above, with the following notes :

1.  Memory Expansion

72-pin SIMMs, FPM RAM are beginning to be seen here.

2.  486DX

486SX processors have the coprocessor disabled, use a DX processor to get it back.

3.  CD-ROM drive

At least 4x, but any generic IDE or SCSI CD-ROM will work fine.

4.  VLB or PCI SVGA

A fast card will use either one of the 32-bit buses.  Early PCI implementations tend to be buggy, but VESA gets unstable the more cards that are added to the bus.

5.  SCSI or VLB IDE

VLB IDE can be very fast, but stability is an issue.  ISA SCSI may not be quite as fast, but it is rock solid stable and faster than ISA IDE.

6.  Sound Cards

A Sound Blaster 16 or AWE32/64 is a good choice for a main card.  If you are not playing older games, a Roland MPU-401 is no longer essential.  General MIDI, in the form of waveblaster daughterboards or external MIDI modules, is preferred for music.

7.  External Cache

While not quite as impressive as on the 386, due to the internal cache of the 486, it can really help you get playable framerates in DOOM.  256KB should be the minimum

8.  Operating System : MS-DOS 5.0-6.22 & Windows 3.11

See above, now you can enjoy Windows 3.1 games.

G.  Pentium

1.  Solid PCI Video

A S3 Trio64V+ is a good, compatible choice, but there are many others.  Some like the quality of the Matrox Millenium.  AGP is yet to make its appearance.  A great VGA compatibility list of PCI and AGP cards can be found here : http://gona.mactar.hu/DOS_TESTS/

2.  3dfx Voodoo

At this point a 3D accelerator is very useful, and the compatible card of choice is the 3dfx Voodoo 1 chip.

3.  Socket 7

Socket 7 boards support just about any Intel Pentium, and can range from 75 to 233MHz, MMX.

4.  External Cache

512KB is the usual amount, 1MB is also available

5.  Network Card

Should be PCI, and the Boot ROM feature should no longer be required as most boards should support 28-bit LBA.

Useful items include a DVD-ROM drive and mpeg2 decoder board (Creative DXR series or Sigma Realmagic Hollywood+)

6.  Operating System : Windows 95 OSR 2.0

OSR 2.0 is necessary for FAT32 support and support for AGP cards, avoid 2.5 as it integrates Active Desktop.

H.  Pentium II

1.  3dfx Voodoo 2 + AGP or Voodoo 3

3D acceleration is now required, so the above boards offer the best compatibility and good performance for the late 90s.  Other good options include a nVidia Riva TNT2 board.  Combining two Voodoo 2 cards in SLI with another 3D accelerator in the AGP slot is highly recommended.

2.  DVD-ROM and mpeg2 Decoder

See above

3.  3D PCI Sound Card

Good options include the Sound Blaster Live! with its EAX support and Aureal SQ2500 with support for A3D 2.0.  If you want solid backwards compatibility without using an ISA sound card, a Yamaha YMF-724 board shines in a BX motherboard.

4.  Intel i440BX Motherboard

Stable, rock solid boards, fast as they come.  Can support CPUs from 233MHz to 1GHz

Operating System : Windows 98SE

Saturday, September 8, 2012

Why CD Collections or Compilations Are Not Ideal for Vintage Computing

When I bought a copy of the King's Quest 15th Anniversary Collector's Edition almost 20 years ago, I thought I had everything I would ever need to enjoy the King's Quest Series.  I had the AGI versions of KQ1-3, KQ4, KQ1SCI, KQ5 CD and KQ6 CD.  (KQ7 would have to wait for a later collection).  Isn't that everything?

Well, as it turns out, that is far from everything of King's Quest.  For KQ1 & 2, I only had the DOS-installable AGI2 versions.  No disk images were included to use the previous booter versions of KQ1 and KQ2.  The AGI version of KQ4 was not included, nor was the English disk versions of KQ5 and KQ6, but the French disk version of KQ5 and the German version of KQ6 were.  More details available as to the extras can be found here : http://www.sierraplanet.com/curiosities/kingsquest/collections.html

So what, I still had the ideal, didn't I?  Well, for vintage gamers, the ideal is not always enough.  Lets see what I can come up with for issues :

KQ1 - No PC Booter versions for the IBM PC, IBM PCjr. or Tandy 1000.

KQ2 - No PC Booter version.  Version 2.1 included where there is a version 2.2 (fixes issues with using EGA or VGA on a Tandy 1000).

KQ3 - No issues

KQ4 - No AGI version, later version of KQ4 included; earlier version has many graphical differences, as demonstrated here : http://queststudios.com/smf/index.php/topic,2802.0.html.  I assume they included the patch to fix the waterfall bug.  Original monochrome install program is replaced by the color install program that was introduced years after the game, and most of the graphics and sound drivers in the floppy releases are not included.

KQ1SCI - Original monochrome install program is replaced by the color install program that was introduced years after the game, and most of the graphics and sound drivers in the floppy releases are not included.

KQ5 - No English Disk Version included, either 16-color or 256-color, the CD version features pretty poor voice acting, all from people working for Sierra and it cannot be turned off.

KQ6 - No English Disk Version included, however the very good voice acting can be turned off.  Minor differences in the interface, better opening video.

Obviously, if you are releasing CD-ROMs, the user must have a CD-ROM drive.  But to run KQ5 or KQ6 CD, you have to keep the CD in the drive or use a custom install program and lots of hard drive space.  In 1994 hard drives tended to average around 500MB.  It would not be unreasonable to allow people to install the disk versions and avoid having to keep the CD in the drive.  Having to put up with pauses or spinning when the game looks for the next audio file or video segment is also annoying.

One great benefit to having CDs is that they will not deteriorate like floppy disks.  Of course, if the game is already corrupted by the time of transfer, then the CD really does not serve its archiving purpose.  Ultima II is a good example of this, because by the time it hit the CD compilations, it had suffered from data corruption.  A dungeon entrance was removed as a result.  Also, because the game could only be run from floppy disks, the files were originally given the same names on the Player and Galactic Disks.  Instead of changing the file names and modifying the executable, they simply copied over the files and destroyed the ability to travel to several planets in the original game.   The fix to both issues is available here : http://shrines.rpgclassics.com/pc/ultima2/utilities.shtml

Some companies left manual-based copy protection intact, others removed it, but at a cost.  In the Monkey Island Madness CD, Monkey Island 2; LeChuck's Revenge was included.  MI2 was only ever released as a disk version, (not counting the relatively recent Special Edition or patches to the DOS version based on it).  The original disk version used a code wheel copy protection at the beginning of the game, but the version included on this CD eliminated it.  However, the easy mode was also eliminated, and selecting EGA graphics gave an incorrect monochrome EGA display instead of 16 colors.  A fix for the EGA version can be found here : http://vogons.zetafleet.com/viewtopic.php?t=10452&sid=17c26cf2a1203f1d3c23f85c47001561.  On the other hand, the MPU-401 port is now selectable in the CD versions.

LucasArts also broke Tandy Graphics support in the version of Maniac Mansion included in Day of the Tentacle.  With DOTT, the text with Tandy Graphics selected is corrupted.  However, the Nuke-Em Alarms door is always open.  LucasArts always disabled manual based copy protection in their floppy collection releases as well, so there are no protection screens in the LucasArts Classic Adventures (except possibly for Zak McKracken) and Air Combat Classics .  Of course, you lose out on the experience of using a codewheel, a red filter, or a codebook and the screens supporting them.

Other compilation releases do not always put the latest version of the game in the CDs.  The Leisure Suit Larry Collections put an earlier version of LSL1 in it, so it suffers from the same issue as the KQ2 found in the King's Quest Collections.  The Police Quest Collection has some install weirdness going on.  For copyright reasons, the original version of Quest for Glory I, entitled Hero's Quest, is not included in the Quest for Glory releases.  The Space Quest and Leisure Suit Larry collections do not include the 16-color versions of SQ1 & SQ4, LSL1 remake & LSL5, and PQ3 16-color is not included in the Police Quest Collections.  The disk version of SQ4 is not to be found, being replaced by the buggy and Sierra-staff voice acted SQ4CD.  Nor will you find the disk version of PQ4.  However, the first LSL collection CD contains the disk version of LSL6, but the later collection CDs have the CD version.   On the Roberta Williams Anthology, the version of Lara Bow: Dagger of Amon Ra, is the CD version voiced by the Sierra staff.

In other releases, you do not have the option to install the expansions separately from main game.  So in Ultima VII, you will always have the Forge of Virtue and the Silver Seed installed.  Ditto for the Secret Missions and Special Operations of Wing Commander I & II.  You cannot install the "save space" options for Ultima Underworld or The Lost Files of Sherlock Holmes : Case of the Rose Tatoo.  Nor can you install the 16-color graphics for Wing Commander I & II.  Did you know that Wasteland and Dragon Wars had separate installs for Tandy, CGA and CGA color composite graphics?  The versions on the CDs only works with an EGA or VGA card.

Wizardry 7 had a CD version that was did not take advantage of the CD's storage capacities but did allow you to use separate devices for music and sound effects.  The floppy version and the version included in the Ultimate Wizardry Archives do not allow for that.

I could go on and on about these issues, but let me return to the focus of my article, why these are not all that great for vintage computing.  First of all, shocking as it may seem, but not all vintage computers have a CD-ROM drive.  Getting a CD-ROM drive in a computer with only 8-bit slots is no simple task.  Installation then becomes a game of installing it on one computer and moving it to another.  Finding VGA cards that work well in an 8-bit slot tends to be a bit of a challenge.  With these compilations, you may have some difficulty running King's Quest IV in a Tandy 1000 computer.  A Tandy 1000TX (8MHz 286) was almost certainly a prime target for Sierra's developers at the time.  Suppose that I wanted to run the EGA version of Wing Commander because that was the way I played it back in the day?  Good luck with a CD version.

The solution is floppy disk images.  If the disk is a DOS disk and does not have disk-based copy protection, they are very easy to make.  WinImage is a popular program, but write protect any floppies you insert into a system with a Windows OS, otherwise it will modify the disk's FAT table.  The modification is harmless, but the disk is no longer "pure".  DSK2IMG is a program I like to use, and it can be set to retry the read multiple times if you have an iffy disk.  DOSBox is getting better and better at being able to install games off floppies.

Friday, September 7, 2012

Sierra's AGI Evolution

Over the years when Sierra was producing games using their Adventure Game Interpreter (AGI) interface, the company would often update their games to fix bugs or add new features.

The first AGI game, King's Quest, was released for the IBM PCjr. and was only meant to be played on that system.  However, as the PCjr. was not the smash hit that IBM and Sierra were betting on, Sierra quickly released a version for the IBM PC, essentially by substituting CGA and PC Speaker support for PCjr. graphics and sound support.  This version could support 4-color CGA graphics using the red/green/brown palette or 16-color color composite graphics when the CGA card was connected to a color TV or composite monitor.

Although it would take time for people to realize it, this was a watershed moment for PC gaming, as finally a high-profile game was released for and designed for the PC.  Previous PC games had been ports from the arcades or other home computers or from small-time publishers.  Sierra would be the first high profile publisher to concentrate on the IBM PC platform.

When Tandy released its 1000 computer in 1985, which had almost exactly the same graphical capabilities (the main difference being a relocatable graphics buffer) and sound capabilities as the PCjr., Sierra released a third version of King's Quest for that computer.  [A Tandy 1000/A/HD with only 128KB of memory can run the PCjr. version properly because the graphics buffer is in the same place as it would be on a PCjr.]  These versions of King's Quest are known as AGI0.  All later AGI releases support the PC and Tandy architectures, and most also support the PCjr.  All AGI version 1 games also were self-booting disks that did not require DOS or support a hard drive.  They did not have the white status/score bar, drop down menus and could only save games to a blank formatted floppy disk.  They offered in-game commands to format a floppy disk.  They could autodetect whether they were running on an IBM PC, IBM PCjr. or Tandy 1000.  Release period is 1984-85.

The most significant and immediate hardware improvement in the second version of AGI was to offer support for EGA cards, so non-Tandy/PCjr. users could view the games graphics in the most colorful and sharpest mode available.  The first game for the newer version, Donald Duck's Playground, was still a booter and a port of a C64 game that did not use AGI.  There are a pair of hacked versions floating around that allow the game to be played in DOS, but they use Atari ST or Amiga resources and are not as reliable when compared to true PC releases.  The game was subject to a license from Disney, and was not in release long enough for Sierra to produce an officially-hard drive installable version.  AGI2 thereafter was able to install the game to a hard disk and save games on the hard disk.  The early AGI interpreters still did not provide drop down menus, and speed control was not always present.  Releases date from 1986.

All AGI10 and AGI1 games were eventually re-released in AGI2.  Sierra added Hercules graphics support by the 2.4xx interpreters because Hercules cards were very popular in the mid-80s, by its early 1987 releases.  Unlike other graphics adapter, the Hercules mode will show typed text in a box in the center of the screen and pause the action like the later SCI0 engine.  The PC was, after all, primarily thought of as a business computer at this time and lots of PCs used monochrome TTL monitors and supported Hercules graphics.  The drop down menu bar gets implemented, as are adjustable animation speeds for all games.

Later improvements added support for MCGA graphics for the users of the IBM PS/2 Models 25 & 30, MCGA and EGA not being compatible.  Most 2.4 interpreter versions should support MCGA.  If not, you would forced to use four color CGA.  Also, since these games had key disk copy protection (requiring Disk #1 to be in the A: drive, even for a hard drive install), further fixes allowed the copy protection to work on 1.2MB drives for games with 360KB disks.  The IBM PS/2 computers and the Tandy 1000HX and TX all had 3.5" disk drives built in, so around mid-1987 Sierra began shipping dual-format release games for DOS with both 5.25" disks and 3.5" disks of the game in the same box.  Disk 1 for each disk type would be copy protected.

In all AGI2 games, the first disk for the game had to be inserted into the A: drive for the copy protection checks in the game executables to pass.  The key disks used a track with a checksum error, overlaid data on the sectors and non-standard sector sizes.  A standard PC floppy disk controller and DOS could not replicate these protections.  Only a device like the Central Point Software Copy II PC Option Board could fully replicate the protection, SuperLok 3.2.  The game's .com loader would make check for a bad track, and if found would then read a decryption key from it and decrypt the real executable, which is AGI.  Even if the game was installed on the hard drive, the first disk had to be in the drive.  Most versions of Police Quest were released without copy protection in an experiment in honesty.  So-called "slash" budget releases of these games also have the protection removed.

AGI2 releases with interpreter 2.917 or later do not exhibit the issue of footprint tracks for animation on faster hardware with EGA and VGA cards.  Sometimes Sierra shipped earlier versions on its Collection CDs.  There is a fix available, see my January 22, 2015 post in this thread : http://www.vintage-computer.com/vcforum/showthread.php?40365-Tandy-1000SX-Game-Issues

Bypassing the copy protection can be done in two ways.  The first is to modify the loader program, typically called SIERRA.COM or something like KQ3.COM or SQ2.COM.  The 128-byte encryption key is copied from track 6 into the.COM, the protection checks are bypassed and the .COM file will always decrypt the AGI file without needing or asking for the key disk.  There are instructions to do this in debug, but Sierra used two versions of the 3.0 Loader, a 1985 and a 1987 version.  The memory offsets are different for each.  AGI interpreter versions up to and including 2.4x use the 1985 version of the loader, 2.9x versions use the 1987 version of the loader.  The second is to permanently decrypt the AGI file.  In this case, you do all the above but write the decrypted AGI file, which is in memory, to a file called AGI.EXE or SIERRA.EXE.  After that, you run the .EXE file and that will start the game.

AGI3 signaled the shift from disk-based copy protection to document-based copy protection.  Three games use the lookup the word in the manual method.  There is no disk-based copy protection loader and the disks are perfectly standard DOS disks.

All games (except for Donald Duck's Playground) by the end of AGI2 had support for every graphics and sound standard widely supported on the market up to 1988.  For graphics, this means CGA, PCjr., TGA, HGC, EGA, MCGA & VGA.   For sound, all that was widely available and supported was the PC Speaker and the PCjr./Tandy 1000 PSG (Adlib and Roland MT-32 not having found game support until the middle of 1988, which coincided with the introduction of Sierra's SCI games).  Release dates are 1988-1989.

All versions of these games check the computer's BIOS for the PCjr. or Tandy 1000 byte identifiers before initializing the three voice PSG sound data.  This was standard in the days before games would freely let you choose your graphics and sound hardware.  By default, if these games found those strings, they would load their PCjr. or Tandy 1000 graphics drivers.  It is possible to force CGA graphics on a Tandy 1000 computer by using the -p command line argument.  This will give you CGA Composite Color Graphics.  You can also use -p -r to force CGA RGB Color Graphics.  However, you will get annoying unintentional noises if you have previously run a game that uses Tandy sound prior to running an AGI game this way.  Command line arguments for the SIERRA.COM loader include :

-c = Force CGA Composite Color Mode
-e = Force EGA
-h = Force Hercules
-r = Force CGA RGB Color Mode
-p = Force "PC Mode"
-s = Unknown
-t = Force Tandy 1000 Graphics and/or Sound
-v = Force MCGA/VGA

By accident or design, all AGI3 games and AGI2 games with the latest interpreters (greater than or equal to 2.917), will work in most Tandy 1000s with an EGA or VGA card installed.  This combination will give you the sound of the Tandy PSG paired with an EGA or VGA card.  The only Tandy 1000s that this does not work with are the original 1000, 1000A and 1000HD, because their graphics cannot be disabled, and the RSX.  Tandy sound will not work on the RSX even though it has the chip because Tandy had to relocate it in the I/O map because the original location (C0-C7) conflicted with the I/O for the 2nd DMA controller added in the IBM PC AT (IBM is to blame here), so it is at 1E0-1E7.  The RSX was released well after the AGI games.  The Tandy 1000 RLX is a special case because it has built-in VGA on the motherboard and ports at the usual locations (no DMA 5-7).  You must use these latest versions for AGI games to work at without sprite footprints on the RLX and its built-in VGA.

All the games as shown below have a release with an AGI interpreter version greater than or equal to 2.917 except for Mixed Up Mother Goose.  In order to play that game on a hybrid Tandy system like the RLX, you need to use an interpreter from another game.  However, it is not as simple as copying over a few files. The decrypted AGI file has the name of the game embedded in it, like KQ2 or SQ2.  If the game does not match the name, it will refuse to interpret the game files.  What you need to do is to permanently decrypt the AGI file with a version equal or greater than 2.917, change the name in the AGI file and use the file to run Mixed Up Mother Goose.  There is a program called AGI Decryptor that can permanently decrypt the AGI file.

The specifications for the AGI engine are here : http://wiki.scummvm.org/index.php/AGI/Specifications and a description of the copy protection used is available and a utility to remove the protection is here : http://sierrahelp.com/GeneralHelp/FloppyDiskBackupProblems.html.  Here are a list of games and their known versions :

Game Name AGI Int. Ver. Game Ver. Floppies Protection File Date Loader 3.0 Yr Interaction Newsletter Notes
Black Cauldron, The 1.12 1.1J 2x360KB Booter 1985


Black Cauldron, The 1.12 1.1K 2x360KB Booter 1985


Black Cauldron, The 1.12 1.1K Tandy 2x360KB Booter 1985


Black Cauldron, The 1.12 1.1M 2x360KB Booter 1985


Black Cauldron, The 2.44 2.00 2x360KB Key Disk 06/14/87 1985 Fall 1987 MCGA fix
Black Cauldron, The 3.002.098 2.10 2x360KB None 11/10/88 NP

Christmas Card 2.272 1 1x360KB None 11/13/86 NP
Christmas Demo
Donald Duck's Playground 2.001 1.0Q 1x360KB Booter 06/09/86


Gold Rush 3.002.149 2.01 5x360KB/2x720KB Manual Word Lookup 12/22/88 NP

King's Quest 1 1.00 1x360KB Booter 1984

Licensed to IBM
King's Quest 1 none 1x360KB Booter 1984

Generic PC version
King's Quest 1 01.01.00 1x360KB Booter 1984

Licensed to Tandy
King's Quest 1 ? 1x360KB Booter 1984-1985

Came as second disk in later PC booter releases, functionally equivalent to Tandy 1000 version
King's Quest – Quest for the Crown 2.272 1.0U 2x360KB Key Disk 11/14/86 1985

King's Quest – Quest for the Crown 2.425 2.0F 2x360KB Key Disk 04/1987 1985

King's Quest – Quest for the Crown 2.917 2.0F 2x360KB/1x720KB Key Disk 05/05/87 1987 Fall 1987 1.2meg Fix, MCGA & Hercules Support
King's Quest II – Romancing the Throne 1 1.0W 2x360KB Booter 1985


King's Quest II – Romancing the Throne 1 1.1H 2x360KB Booter 1985


King's Quest II – Romancing the Throne 1 01.01.00 2x360KB Booter 1985

Licensed to Tandy
King's Quest II – Romancing the Throne 2.411 2.1 2x360KB/1x720KB Key Disk 04/10/87 1985

King's Quest II – Romancing the Throne 2.426 2.2 2x360KB/1x720KB Key Disk 05/07/87 NP? Fall 1987 MCGA fix
King's Quest II – Romancing the Throne 2.917 2.2 2x360KB/1x720KB Key Disk 12/01/87 1987

King's Quest III – To Heir is Human 2.272 1.01 3x360KB Key Disk 11/08/86 1985

King's Quest III – To Heir is Human 2.435 2.00 3x360KB Key Disk 05/25/87 1985 Fall 1987
King's Quest III – To Heir is Human 2.936 2.14 2x720KB Key Disk 03/15/88 1987 Spring 1988 MCGA fix
King's Quest IV – The Perils of Rosella 3.002.086 2.00 3x720KB Manual Word Lookup 07/27/88 NP
Hercules & PCjr. Support
King's Quest IV – The Perils of Rosella 3.002.086 2.3 6x360KB Manual Word Lookup 09/27/88 NP

Leisure Suit Larry in the Land of the Lounge Lizards 2.440 1.00 2x360KB/1x720KB Key Disk 06/01/87 1985 Spring 1988
Leisure Suit Larry in the Land of the Lounge Lizards 2.917 1.00 2x360KB/1x720KB Key Disk 12/01/87 1987

Manhunter – New York 3.002.102 1.22 5x360KB/2x720KB Manual Word Lookup 08/31/88 NP

Manhunter – New York 3.002.107 1.22 5x360KB/2x720KB Manual Word Lookup 09/01/88 NP

Manhunter 2 – San Franscisco 3.002.149 3.02 3x720KB None 07/26/89 NP

Manhunter 2 – San Franscisco 3.002.149 3.03 8x360KB None 08/17/89 NP
Disk swapping problems fix
Mixed-Up Mother Goose 2.915 1.0D 2x360KB Key Disk 11/10/87 NP? Spring 1988
Police Quest - In Pursuit of the Death Angel 2.903 2.0A 3x360KB Key Disk 10/23/87 NP

Police Quest - In Pursuit of the Death Angel 2.911 2.0A 3x360KB Key Disk 11/04/87 NP

Police Quest - In Pursuit of the Death Angel 2.915 2.0E 3x360KB Key Disk 11/17/87 NP

Police Quest - In Pursuit of the Death Angel 2.917 2.0G 3x360KB/2x720KB Key Disk/None 12/03/87 NP Spring 1988 PCjr. Support
Space Quest - The Sarien Encounter 2.089 1.0X 2x360KB Key Disk 09/24/86 1985

Space Quest - The Sarien Encounter 2.272 1.1A 2x360KB Key Disk 11/13/86 1985

Space Quest - The Sarien Encounter 2.426 2.2 2x360KB/1x720KB Key Disk 05/07/87 1985 Fall 1987 MCGA fix
Space Quest - The Sarien Encounter 2.917 2.2 2x360KB/1x720KB Key Disk 12/01/87 1987

Space Quest 2 - Vohaul's Revenge 2.912 2.0A 2x360KB/1x720KB Key Disk 11/06/87 1987 Spring 1988 MCGA fix
Space Quest 2 - Vohaul's Revenge 2.936 2.0D 1x720KB Key Disk 03/14/88 1987
Bug Fix
Space Quest 2 - Vohaul's Revenge 2.936 2.0F 1x720KB Key Disk 01/01/89 1987