Showing posts with label PC Hardware. Show all posts
Showing posts with label PC Hardware. Show all posts

Monday, June 17, 2013

Ultima VII on Real Hardware

Ultima VII - The Black Gate is, in my opinion and in many others, the greatest Computer Role Playing Game of the first half of the 1990s.  But like many Origin games (Wing Commander I & II) of this time period, it is extremely sensitive to hardware speed.  It runs faster than the ideal on my 486DX2/66 (the characters move like they are on speed).

While on my 486DX/2 66 Wing Commander I & II can be tamed by disabling the internal cache, it doesn't work with Ultima VII.  The game re-enables the internal cache in my machine if I disable it beforehand either with a software utility like ICD.EXE or through the BIOS option.  Slowing the RAM speed in the BIOS does nothing substantial to slow down the game.  The turbo button will show real slowdown, but the slowdown is a little too great and the game runs at a suboptimal speed.  Its close to a 386DX40.  Its like Goldilocks and the Three Bears, too hot and too cold are easy, but getting the speed "just right" is not easy.  Pentium computers will begin to run Ultima VII insanely fast.  The game's sequel, Serpent Isle, runs on an updated version of the Ultima VII engine.  Serpent Isle has a frame limiter to prevent the action from becoming sickeningly fast, however a powerful machine can still make it play faster than it should.

The ideal system to play Ultima VII on is a 486DX33 with 4MB of RAM, so I have been told.  Scorpia made the claim in Computer Gaming World.  Apparently this is indicated somewhere on or in the game's packaging, but I have reviewed all the items included in the box and I see no such assertion.  It may be on the system requirements label on the underside of the box cover.  Like most games, the more things that are happening on the screen, the slower the resulting gameplay.

The best advice I have for people with a 486DX2/66 is to use the jumpers to lower the FSB speed from 33 to 20MHz.  This will turn your CPU into a 486DX2/40, a CPU that never existed in the wild.  However, it will produce a correct balance of speed, very close to the ideal.

The next issue is the Voodoo Memory Manager.  Ultima VII and Serpent Isle use a custom memory manager that is wholly incompatible with all expanded memory managers, including EMM386, QEMM, CEMM, you name it.  All these drivers put the CPU into Virtual 8086 mode, whereas Ultima VII requires true Real Mode for its voodoo memory manager (which the game puts into the so-called "Unreal Mode") to work.  Origin specifically informs the user that it used this memory manager to avoid the problems with EMS, but it does not indicate what those problems were.  My guess is that the performance hit from using EMS was too much for the game to handle.  Ultima VII is also incompatible with Windows for the same reason; it must be run in DOS unless you use the unofficial U7WIN9X patch (for Windows 95-ME).

The problem with these games' EMM386 compatibility is that EMM386 provides Upper Memory Blocks.  Device drivers, such as those for the mouse, CD-ROM and disk cache, can load in UMB to save precious conventional memory.  Ultima VII and especially Serpent Isle require lots of conventional memory free, up to approximately 585K free for Serpent Isle with all sound options.  No EMM386, no guarantee of UMB.  While CTMOUSE is small enough (3K) that it can be loaded without a substantial impact on the conventional RAM, SMARTDRV and MSCDEX require about 25K a piece.  Without UMBs its virtually impossible to load a normal DOS configuration.  The official solution was to create a barebones boot disk.

It may be possible to create UMBs in systems without loading EMM386.  In Pentium and later systems, UMBPCI works with proper PCI implementations.  In 386 and 486 systems, you can try HIRAM, URAM (1988), RDOSUMB or LastByte Memory Manager may also work, depending on whether the software supports the chipset and its use of shadowing memory.  You will probably not get as many UMBs as you would with EMM386 (forget B000-B7FF), but if it works for you, it will avoid having to specially boot your system for these games.

The final issue is that this game will thrash a hard drive like Simon Legree.  To avoid those annoying short (or not so short) pauses as the game scrolls the screen, the standard 16-bit IDE controller is not going to cut it.  Fortunately there are many options to speed up disk access.  On the extreme end of the scale, if you have 32MB of RAM, consider creating a RAM drive with the DOS utility RAMDRIVE.  A full install of Ultima VII + Forge of Virtue is 19.5MB without savegames.  Serpent Isle and The Silver Seed runs to 22.5MB.  Thus your RAMDISK needs to be about 1.5MB larger than the install size.  Just remember to copy the game back to your system.

Other improvements include SCSI, whether IDE, VLB or PCI; VLB or PCI IDE, and the use of fast hard drives and compact flash cards (with IDE or rare SCSI adapter).  SMARTDRV, a disk caching program, will also assist with slower hard drives (i.e. hard drives you would actually have used at the time).

Ultima VII does not really care too much about the VGA card used, but I would recommend a Tseng ET4000AX if you are forced to use an ISA card, otherwise use a PCI or VLB card.  It only supports Adlib & Sound Blaster & Roland MT-32 (and compatibles) for music and sound effects.  Roland is obviously the best choice, the game uses stereo panning for sound effects and loads custom patches.  Adlib and Sound Blaster rely entirely on FM synthesis for music and sound effects.  Voice samples (for the Guardian in the intro and occasionally in-game) require a Sound Blaster or Sound Blaster Pro or compatibles.

Monday, April 8, 2013

Meet a Video Card - The Diamond Stealth 24 VLB

In this entry I will discuss one of my favorite video cards, discuss its features and why I recommend it to anyone building a vintage computer system.  The card in question, as mentioned in the title to this post, is the Diamond Stealth 24 VLB.  It looks like this :


Thanks to http://www.vgamuseum.info for the photograph.

As you probably know, the edge connector on the back of the card is for the VESA Local Bus (VLB) slot.  This bus is almost totally exclusive to 486 processors, as it is essentially an extension of the 486 bus.  If you are building a 486 system, VLB cards are an excellent fit for video if your motherboard supports them.  (Whether they are as good a fit for hard drive interfaces is a debate that must be put off for another day.)  The ISA bus is just too slow for a 486 and games needing fast video like DOOM, especially as so many boards have VLB slots.

Later 486 motherboards tend to support PCI slots, but the conventional wisdom of the time was that 486 PCI implementations were generally immature.  PCI slots came into their own on Pentium Socket 7 motherboards.  Small wonder that the number of Pentium mainboard chipset makers and motherboard builders seemed to shrink dramatically.  In my opinion a VLB slot is to a 486 as a PCI slot is to a Pentium as an AGP slot is to a Pentium II and above

Back to this board, you can see that it has eight pieces of V53C104 DRAMs.  Each chip supports 256kx4 bits.. Eight chips gives you 8 megabits or 1 megabyte of video memory.  This is four times the basic VGA memory requirement.  The PLCC chip near the VGA connector is a Diamond SS2410 High/True-Color DAC.  This is an optional feature for the S3 805 chip.  Without this kind of DAC or an equivalent DAC, the card would only be able to support 8-bit color resolutions.  With the DAC, it can support 15-bit, 16-bit or 24-bit color resolutions as the maximum memory allows.

The S3 805 can support up to 2 megabytes of video memory, but this was a cheap accelerator card and cannot be upgraded to 2 megabytes.  1 Megabyte of video memory was standard for VLB video cards, 2MB was a premium card, and 4MB was almost unheard of.

This card boasts some VESA compliance.  The Modes 101h-104h are VESA modes.  The only mode of any real importance for DOS is the 640x480x256 and 15/16-bit and 800x600x16 and 256 modes.  It does support 640x400x256, even though it does not list VESA Mode 100h in its supported display modes.  Rise of the Robots uses that resolution and works fine with the card at that resolution.  System Shock CD does not allow that mode to be selected, so UniVBE may be necessary to play the game in that mode.  It can support refresh rates up to 72Hz at 1024x768 or below and refresh rate of 60Hz at 1280x1024.  These graphics modes were tested with WHATVGA.EXE and work :

101h - 640x480x256 packed
102h - 800x600x16 planar (also 6Ah)
103h - 800x600x256 packed
104h - 1024x768x16 planar
105h - 1024x768x256 packed
106h - 1280x1024x16 planar
110h - 640x480x32K
111h - 640x480x64K
112h - 640x480x16M 
113h - 800x600x32K
114h - 800x600x64K
124h - 1152x864x256 packed (did not work in WHATVGA)
206h - 1280x960x16 packed (not a VESA mode)
208h - 1280x1024x16 planar (not a VESA mode)

WHATVGA.EXE had some issues with displaying planar 1024x768 and 1280x1024 modes, and did not display the extended text modes 54h 132x43 and 55h 132x25.  

Not much is known about the BIOS revisions.  I have read that there exist 1.11, 1.24 and 2.01, the last being required to use the latest windows drivers.  My card has 2.02.  

One slightly annoying issue this card has is that its I/O addresses conflict with the default COM4 addresses, 2E8-2EF.  This is due to its 8514/A derived design and is not unique to this card.  It has a jumper to enable or disable IRQ2, but few games required that functionality on a VGA card.  I have not found any problems with it and an MPU-401, which also uses IRQ2 by default.  Games rarely use the IRQ functionality of the MPU-401 anyway.  

Diamond still provides drivers for the Stealth 24 VLB and other cards on its website for Windows 3.1.  This will allow you to use better resolutions than Windows 3.1 default VGA 640x480x16 resolution.  Get them here : http://www.dmmdownload.com/legacy.php.  These cards tend to be among the most plentiful VLB cards you can find today.  Windows 95 comes with drivers for the card.

Game compatibility with EGA and VGA games is excellent.  I have tested the card with almost every piece of software on this chart : http://gona.mactar.hu/DOS_TESTS/.  I did not try Quake, Duke Nukem 3D above 640x480 or Tomb Raider.  Software works perfectly (Commander Keen 4-6 needs the SVGA Compatibility option turned on, as does Dangerous Dave and Keen Dreams with the /comp switch).   Silpheed has some minor extraneous flickering lines during its intro, but they do not appear during the actual gameplay.  UNIVBE works with the chipset, and there is a utility to set the refresh rates, look for S3REFRSH.ZIP.  It reports that you can set 640x480, 800x600, 1024x768 and 1280x1024 to 60Hz or 70Hz/72Hz, 800x600 at 56Hz and 1024x768 and 1280x1024 to 43Hz/45Hz interlaced.

According to this article, it should have good Windows 3.1 acceleration features and speed : http://books.google.cz/books?id=PTwEAAAAMBAJ&pg=PA39&dq=Diamond+Stealth+24&hl=cs&ei=q6ROTOe0EIWL4QafmuyUCA&sa=X&oi=book_result&ct=result&resnum=3&ved=0CDMQ6AEwAg#v=onepage&q=Diamond%20Stealth%2024&f=false

Saturday, March 23, 2013

1999 PC Gaming Dream Machine

Computing hardware just before the turn of the century was surprisingly versatile.  In the year 1999, on the graphics front the nVidia Geforce 256 SDR/DDR, the S3 Savage 4/2000, the ATi Rage 128, 128 Pro & Rage Fury MAXX, the Matrox G400 and the 3dfx Voodoo 3 were all introduced.  In CPUs, the Pentium III was released in speeds up to 800MHz* and Athlons up to 750MHz.  Hard drives were approaching sizes of 30 to 40GB on the high end.  The Intel i820 & i840 chipsets with RDRAM was introduced to a lot of controversy, the Via Apollo Pro 133/133A brought official PC133 SDRAM support to the Pentium platform.  The AMD 750 chipset was introduced to support the Athlons.  Modern optical LED mice like the Microsoft Intellimouse allowed optical mice to be used on surfaces other than special mouse pads for the first time.

Other staples from prior year or two included the Windows 98 operating system.  The most advanced sound cards of the time were the Sound Blaster Live! series and the cards using Aureal's Vortex 2 chipset.  CD-ROM speeds had more or less peaked by this time, and DVD-ROM drives were becoming more common in systems.  Hardware mpeg2 decoder boards like the RealMagic Hollywood Plus and Creative DXR2/DXR3 boards were still recommended for smooth DVD playback.  The Voodoo 2, especially in a 24MB SLI configuration was still a popular choice, as were the nVidia TNT2 Ultra cards.  The BX chipset from 1998 was still going strong, and Pentium IIs and Celerons were also selling well, being cheaper than the flagship Pentium IIIs.  1999 was probably the last year where you could be guaranteed to find an ISA slot on a motherboard.  ATX based motherboards ruled and tower cases rather than desktop cases were the norm.

In 1999, some things had not changed much.  Cases were still often beige or off-white.  Monitors were big CRTs, and multimedia speakers topped at a four speaker setup (Klipsch ProMedia v2.400s being highly recommended).  Keyboards had pretty much gone to the cheap rubber dome technology (stick with an IBM Model M or Northgate Omnikey), but mice were still using PS/2 ports.  Ball mice with scroll wheels were still popular, and USB optical mice would just being introduced.  A 3.5" floppy drive was still standard for a machine, even if only to load drivers off floppy disks and boot disks.

In this article, I describe the options that could put together what I believe to be a dream machine from 1999 without breaking the bank or waiting too late in the year to enjoy the use of the component parts.  I will discuss the pros and cons of the available choices.   I will also point out upgrade paths.

1.  Motherboard

The motherboard is the backbone of any system, and many choices of components will revolve around the motherboard.  I chose a motherboard based on the Intel i440BX.  This system chipset had rock solid speed, reliability and compatibility.  The AMD 750 chipset was probably the only available chipset for the Atlhons at the time, but the hardware was immature and prone to problems with AGP cards.

The VIA chipsets did not offer quite the performance as a BX chipset.  The Pro Plus did not support PC133 SDRAM officially, either.  It also had serious AGP performance issues.  The 133 offered Ultra ATA/66 support and supports a 1/2 AGP clock divider, so it can run at 133FSB without problems.  The performance of the IDE left something to be desired.  The VIA chipsets had infamous issues operating correctly with the Sound Blaster Live! cards, resulting in crackling, hard drive errors or crashes.  The problem seems to be focused on boards with the 686B Southbridge chip, but it may be fixed in the latest drivers and BIOS updates.

Nobody recommended buying an i820 motherboard at the time of its release.  Rambus RDRAM was simply too expensive and the chipset earned a black mark.  The performance of the high end i820 boards barely reached the BX, and the BX was able to compete with the workstation i840 chipset.  Boards using SDRAM, via an adapter, had poor performance.  Performance users avoided the i810 due to the integrated graphics and lack of PC133 SDRAM support.

The ASUS P3B-F is an example of an excellent Slot 1 motherboard.  Slot 1 CPUs range from a Pentium II 233MHz, a Celeron 266MHz and a Pentium III 450MHz all the way up to a Pentium III 1GHz.  While later Pentium IIIs and Celerons used Socket 370, they can be used in this motherboard with a Slotket adapter, which converts a PGA Pentium III/Celeron into a Slot 1 Pentium III/Celeron.  Slot 1 CPUs which this board can support without any additional hardware are as follows :

Pentium II "Klamath" - 233, 266, 300
Pentium II "Deutsches" - 266, 300, 333, 350^, 400^, 450^
Celeron "Covington" - 266, 300
Celeron "Mendocino" - 300A, 333, 366, 400, 433
Pentium III "Katmai" - 450, 500, 533B, 550, 600, 600B
Pentium III "Coppermine"* - 500E, 533EB, 550E, 600E, 600EB, 650, 667, 700, 733, 750, 800, 800EB, 850, 866, 933, 1000, 1000EB

^ - Pentium IIs using a 100MHz FSB

* - Revisions of the board below 1.03 do not support the CPU voltages required by the Coppermine Slot 1 CPUs.  However, Coppermine CPUs of this period run from 1.6v-1.75v, which is within acceptable safety margins when used with 1.8v motherboard.  Speeds faster than 800MHz were not released until 2000.

The P3B-F comes in two common varieties, a 1/6/1 and a 1/5/2 AGP/PCI/ISA configuration.  The 1 ISA slot seems to be the more common board.  Unusually for a board of this era, it comes with 4 DIMM slots.  Most boards of the time only came with 3 DIMM slots.   Each DIMM slot can accept a 8MB-256MB SDRAM.  RAM can but need not support ECC, registered RAM can be used, single or double-sided RAM, but only unbuffered RAM.  With 4 DIMM slots you can run the board with the maximum 1GB of RAM.  Unlike earlier boards from ASUS and other manufacturers, all settings can be set in the BIOS, so no fiddling with jumpers or dipswitches is necessary.  This is extremely helpful for over/underclocking.  Also, like most motherboards of this era, this is a no frills board.  There is no onboard sound hardware, no extra SCSI or IDE ports, no LAN port and only two USB 1.1 ports.

The BX supports front side bus speeds (FSB) of 66MHz and 100MHz.  The chief weakness, if any, of the BX series is its lack of official support for the 133MHz FSB.  BX motherboards can use PC133 SDRAM, but setting the FSB to 133MHz will cause an issue with the AGP port.  The AGP and PCI slots derive their operating speed from the FSB speed.  FSB speeds this board supports via the ICS-9250 PLL are 66, 75, 83, 100, 103, 105, 110, 112, 115, 120, 124, 133, 140, 150.  PCI dividers include 1/2, 1/3 & 1/4, but AGP dividers only include 1/1 and 2/3.  This is a limitation of the BX chipset.  So if you ran a 133FSB CPU, you would be running the AGP slot at 89MHz, well above the spec of 66MHz.  Graphics cards may or may not be able to handle that speed.  I/O voltage setting can be changed from 3.50v to 3.65v.  CPU voltages can range from 3.5v to 1.8v (rev. 1.02 and below) or 1.3v (rev. 1.03 and above).

Out of the box, the motherboard supports BIOS multipliers from 2.0x to 8.0x.  A BIOS upgrade will be required to support CPUs requiring multipliers over 8.0x.  It may or may not be possible to select 8.5x, 9.0x, 9.5x, or 10.0x using the dipswitches.  CPUs that use multiplier settings above 8.0x will force their own multiplier settings, regardless of the motherboard's settings.  Pentium II Deutsches CPUs and more recent CPUs are multiplier locked, so they will ignore any multiplier settings and force their own.  (Some Deutsches CPUs below the 450MHz models can accept a lower clock multiplier than that for which they were designed, but will not work with a higher multiplier).

The Winbond Multi I/O chip used by this board will support two floppy drives.  Certain other boards, like Intel's BX boards, only support one floppy drive.  The last BIOS is 1014 beta 3, and the flash utility can upgrade it in real mode DOS.

Relatively few other BX boards have a four DIMM slot configuration.  The official Intel Spec did not guarantee stability with more than three.  The ASUS P2B-F is one of them, but does not have a Multiplier or FSB configuration option in its menu.  It always comes with two ISA slots.  The MSI BX Master is a good board with six bus mastering PCI slots, but not as stable as ASUS's boards.

The ABIT BX6 and BX6 2.0 are good choices and were very popular, but do not have the build quality of ASUS and often have problems with bad capacitors.  The original BX6 came with 3 ISA slots and 4 PCI slots, which in my opinion do not strike the right balance for a machine for 1999.  The BX6 2.0 had a better balance with two ISA slots.  ABIT pioneered the jumperless configuration approach, and this board allows you to set everything in the BIOS.  It comes in a 1/5/2 AGP/PCI/ISA configuration and also supports 4 DIMM slots.  It supports CPU voltages as low as 1.40, so it can readily support Tualatin CPUs.  It supports FSB speeds of 66, 75, 83, 100, 103, 105, 110, 112, 115, 117, 124, 129, 133, 138, 143, 148, 153.


2.  CPU

Since the choice of a BX motherboard eliminates the Althons, we should focus on the CPUs that would have been available in late 1999.  The Coppermine CPUs were released in late October up to 733MHz and in late December speeds of 750 & 800MHz were also made available.  The prices ranged from $240 to $850.  However, Tom's Hardware complained in February of 2000 that the Pentium III 800 was very hard to get, so I would suggest its lack of availability and high price puts it outside the reach of anyone working within a reasonable budget.

I would not recommend the Katmai processors for a 1999 dream machine.  The half-speed L2 cache, the comparatively ridiculous power draws compared to the Coppermines make them a poor choice.  The Slot-A Athlons are much better CPUs than the Katmai CPUs.  Intel's introduction of the Coppermine CPUs allowed it to seriously compete with the Althon.

I would select the Pentium III 600EB.  This is a 133FSB CPU using a 4.5x multiplier.  This means it can use 300, 450 and 600MHz speeds without running anything out of spec, except for the AGP slot.  It was the fastest Intel CPU under $500 at the time of its release.  A reasonable overclocker's option is the 100MHz version, which uses a 6.0x multiplier.  I overclocked one back in the day to 800MHz by setting the FSB to 133MHz and I could not remember any obvious stability problems attributable to it in years of use.

Historically, in late 1999 there were well-documented shortages of the Pentium III Coppermines.  No one I know of has boasted of building or buying a system in 1999 with a CuMine inside it.  These shortages lasted well into the year 2000.  Intel's transition from the Slot 1 to the socket 370 CPUs was not incredibly smooth.  I would suggest that it would have been a rare system builder who could have actually been running a CuMine in 1999, especially in speeds above 600MHz.

3.  RAM

SDRAM is the only choice available for a BX motherboard, and PC133 SDRAM was available in 1999.  SDRAM really did not differ too much from manufacturer to manufacturer.  CL2 offered lower latency than CL3 SDRAM, but did come at a price increase.  128MB was considered sufficient for 1999, but 256MB was not considered an insane amount of RAM.  While this board will support up to 1GB of RAM, Windows 98 will likely not boot unless a few adjustments are made if you have more than 512MB of RAM.

One of the best features of the P3B-F is that it includes four DIMM slots.  This means that a maximum of 1GB of PC-133 SDRAM can be installed.  This is the maximum amount of RAM supported by the BX chipset.  SDRAMs in the BX should be unbuffered/not-registered, and can have latency settings of CL3 or CL2.  CL2 is the best.  256MB is the maximum for any SDRAM that will fit in a BX DIMM slot.  Windows 98SE will have problems if the system has more than 512MB of RAM, but they can be solved.  Some games, usually DOS games, begin to complain if more than 128MB is installed, so I have kept my system to that amount.  Take care not to mix and match SDRAM latencies. Also, try to use the same size, speed and latency of DIMMs and the same chip configuration (single sided/double sided).  This will decrease boot times.

4.  Case & Power Supply

In the twentieth century, cases always came with a power supply.  Our motherboard uses the ATX form factor.  By 1999 the AT form factor was no longer a major competitor in the marketplace except for Super Socket 7 boards.  Typically a 300W ATX power supply is sufficient for anything from 1999 or earlier you will put in a consumer system.  Cases these days use ATX 2.x power supplies, and these lack the -5v of the ATX 1.2 and earlier standards.  They also tend to have hard drive cages running all the way down the system, blocking full length expansion cards.

Since a 1999 motherboard will almost certainly contain ISA slots, which have a -5v pin, it may be necessary to look for an old ATX power supply.  If you can find an ATX power supply with a -5v line (pin 20, white wire), use it.  Since BX motherboards typically have ISA slots, the -5v line could conceivably be used. Without that -5v power, the Roland LAPC-I and the Sound Blaster 2.0 will not work.  Some older ISA VGA cards also use the -5v pin.  Some power supplies may come with a 4-pin Pentium 4 power connector, but they may still support a -5v line.

A truly contemporary 1999 computer case is very hard to find.  It is much easier to find an OEM case from Dell, HP, Gateway or Compaq and try and fit a motherboard inside it than it is to find a true ATX case from 1999.  Cases released in 1999 tend to be white or beige, and generally use quality sheet metal.  They will have room for only 2-3 3.5" internal drives.  Some may not have an intake case fan.

This is an area where I had to make a concession, I used an Antec Solution Series SLK 1600 that was from a later period.  However, it is still white/beige, not particularly stylish by modern standards, but has front-mounted USB ports.  Virtually no BX board has a header for front-mounted USB ports.  The Antec case is a mid-tower cases with three external 5.25" bays, two external 3.5" bays, and three internal 3.5" bays.  It comes with a 300W power supply but no fans.  It should be able to fit full-length ISA cards, unlike most modern cases which have internal bays going all the way down the system.  There are seven slots for cards and the included I/O bracket will fit the standard BX ports (2 x PS/2, 2 x Serial, 1 x Parallel, 2 x USB). Finally, it came with a reset button.

5.  Graphics Cards

In 1999, the concept of having more than one graphics card was not considered unreasonable for the performance demanding gamer.  Of course, only one AGP slot would ever be found on a motherboard.

A.  Voodoo 2 & 3

The 3dfx Voodoo accelerator card could not be used without a separate 2D card, and many of them were still in use in 1999.  The 3dfx Voodoo 2 was even more successful, two cards could be used in an SLI configuration but you still needed a 2D card!  However, this took up to three PCI slots or two PCI slots plus the AGP slot, so it was a considerable investment of available motherboard resources.  The Quantum 3D Obsidian X-16/24 sandwiched two Voodoo 2 chipsets on a single PCI board, but the card was very expensive at the time and hard to find today.  The Voodoo 2 was the last non-integrated 3D accelerator of any consequence, the chipsets of 1999 all tried to show they could equal or surpass its performance.

The greatest legacy of Voodoo and Voodoo 2 is the Glide A(pplication)P(rogramming)I(nterface).  3D accelerated games by this time were using one of three APIs.  Direct3D, OpenGL or Glide.  While Direct3D was a Microsoft product, it was still considered relatively immature compared to Glide.  Still, many, many games used it.  Developers like John Carmack of iD Software always used OpenGL in their games.  However, other games saw the best performance or features using Glide, like Unreal, Unreal Tournament and Ultima IX.  

One emerging feature during this year was support for 32-bit 3D accelerated graphics.  Voodoo 2s only supported 16-bit 3D accelerated graphics, as did the Glide API.  While the Voodoo3 processed 32bit 3D accelerated graphics internally, externally it displayed an output between 16 and 32-bit.  32-bit graphics came with a performance cost, and in some cases the hit was substantial.

A single Voodoo 2 supported z-buffered 3D accelerated graphics resolutions up to 800x600 with one card, and a second card in SLI mode was needed to unlock 1024x768.  Higher resolutions were not supported.  The Voodoo 3 could support either resolution and higher resolutions like 1280x1024 and 1600x1200.  Voodoo 2s come in 8MB and 12MB EDO RAM varieties, and in SLI mode both cards must have the identical amount of RAM and ideally be from the same manufacturer.  The SLI cable is a 34-pin ribbon cable (think floppy cable) with a twist for the middle four wires.  It is easy to make.  Clock speeds also vary, but the Voodoo 2 is designed to run at 90MHz.

Finally, the Voodoo 2 requires a separate 2D or 2D/3D card to function.  It uses a VGA pass-through cable to connect the VGA output from the 2D board with its own VGA output.  The resulting output may show a loss of quality.  Using a KVM switch can alleviate this problem.

Retail Voodoo 3 cards, the 2000, 3000 and 3500, all came with 16MB of SDRAM.  Some OEM models (1000, Velocity 100) only came with 8MB of RAM or ran at a clock speed of 125MHz.  A few OEM cards used faster SGRAM instead of SDRAM.  The 2000 and 3000 come as AGP (common) or PCI (rare) cards.  The chief distinguishing factor between the three models is the clock speed, 143MHz for the 2000, 166MHz for the 3000 and 183MHz for the 3500.  The 3000 AGP has a TV-out port and the 3500 has a TV & FM tuner and a dongle that attaches to the DVI-like port that provides for VGA, component, S-Video and composite output.  Though the port is the same as the DVI ports for digital display devices like LCD monitors, it actually does not generate the signals necessary for LCD displays.

The PCI versions of these 2000 & 3000 are not significantly slower than their AGP 2x versions because the Voodoo 3 chipset did not take great advantage of the AGP features.  This is demonstrated in one instance as the Voodoo 3, like its predecessor is officially limited to 256x256 textures.  Other cards identified here can support 2048x2048 textures due to their more complete AGP bus implementation.  For a BX machine being overclocked to 133MHz, the PCI versions of these cards will have no problem because they are being run at the proper PCI bus speed (33MHz).  However, the AGP versions of these cards will likely have serious issues being run at 89MHz, way above the AGP spec.  The Voodoo 3's built in 2D accelerator offers very fast and extremely compatible VGA and DOS speeds.

B.  nVidia Geforce 256

The Geforce 256 came in SDR and DDR varieties.  The first uses SDRAM, the second DDR-DRAM.  Memory sizes were 16MB and 32MB.  These cards were manufactured by third parties and analog output quality can vary from manufacturer to manufacturer.  The other chipsets in this overview were all contained in boards manufactured by a single manufacturer, at least for most of their market lives.  Unlike all the other players on this list, the Geforce series always had a solid full OpenGL implementation in their drivers, and were the cards to beat in Open GL games like Quake II and III.

Hardware Transform & Lighting was introduced in the Geforce 256 and DirectX 7.0, but it would not see use in many games other than Quake III Arena for some time.  No other 1999 consumer based 3D accelerator could support HT&L.  The Geforce 256 generally minimized the performance hit for 32-bit graphics.

Some cards come with true DVI-D as well as analog VGA outputs.  The AGP versions of the card support AGP 4x.  I had a Geforce card back in the day and it never seemed to exhibit a problem in my BX board which was using a 133FSB and a resulting 89MHz AGP clock.  DDR based Geforce cards were very expensive and hard to find in 1999, especially as the cards were released in the last quarter of 1999.   An SDR card will show nearly as good performance until the resolution goes above 1024x768 in most games.

Ideally, and this would have been very expensive at the time, a Geforce 256 DDR 32MB with a pair of Voodoo 2 cards in an SLI configuration would have been the ultimate configuration possible for 1999.  A Voodoo 2 card can be configured to act like a Voodoo card, which is useful in those Glide games designed to work only on a Voodoo card.  Otherwise, the Voodoo 2s will handle all Glide duties, while leaving the OpenGL and Direct3D games to the Geforce, unless the Voodoo shows better performance or compatibility.  Fast and compatible VGA and DOS speeds.

C.  Other Accelerators

The Matrox Millenium G400, especially the MAX, was a very serious competitor as well, in fact Maximum PC put it in its 1999 Dream Machine.  It has extremely reliable image quality, unlike the hit-and-miss image quality of the various manufactuer's Geforce cards.  However, the G400 took quite a while to get its OpenGL I(nstallable)C(lient)D(irect) up to standard.  Matrox cards have comparatively poor DOS VGA compatibility.

The G400 came in three varieties, the 16MB SGRAM G400, the 32MB SGRAM G400, regular and MAX versions.  The MAX versions has a faster core clock & RAMDAC.  All these cards have a "Dual-Head" display for two monitor support in Windows 98.  It compares very favorably against the Voodoo 3 3500 in performance benchmarks, but does not reach the Geforce's level most of the time.  The software DVD decoder that came with the board can bring CPU utilization to reasonable levels.  The other cards in this roundup with one exception have no special DVD/mpeg2 acceleration qualities.

The Savage 2000 had poor Direct3D performance at launch but decent OpenGL performance.  The first card to use the chipset was the Diamond Viper II Z200, and it came with 32MB of SDRAM.  Generally it was released just before the Geforce and actually was not that far behind that card on average.  No major issues with DOS or VGA compatibility.  It was supposed to have hardware T&L support, but the support is broken and disabled in the drivers.  It did support, however, S3T(exture)C(ompression), which would become more widely used in titles after 1999.  The Diamond card had serious compatibility issues with VIA chipsets of the time at launch.

Pre-Radeon ATi 3D accelerator cards are an odd bunch.  The ATi cards never quite beat the nVidia cards of this generation.  The Rage Fury MAXX put the idea of SLI on a single card well before the Voodoo 5, but it only works in Windows 98 & ME.  Also like the Voodoo 5 5500, each Rage 128 chip had 32MB of SDRAM for its use.  The performance at launch was not quite up to the Geforce SDR level.  While these cards have better DOS and VGA compatibility than the Matrox, it is still not that great.  It does have hardware acceleration for DVD video.  It did not support Windows 95 at all or Windows NT systems at launch.  16-bit video quality was also an issue.

6.  Sound Cards

The main gaming feature in sound in 1999 was 3D positional or surround sound.  The two competing standards in this year were the Creative EAX extensions to DirectSound 3D and the Aureal A3D Sound API.  Most PCI cards from this time period supported the baseline DirectSound 3D.

A.  Creative Sound Blaster Live!

Creative introduced its Sound Blaster Live! in 1998 and was Creative Labs' flagship consumer product.  It firmly embraced the PCI bus whereas previous CL cards were OEM or budget designs.  The Live! 5.1 would be released in 2000 and the Audigy in 2001.

The original Live! was offered in a full and a value version.  The first generation full version has a model number CT4620.  This card came in the box with the Digital I/O Card, CT4660.  This card connected via a 40-pin straight through ribbon cable.  This card, which takes up another slot, adds a MIDI In and MIDI Out port, but uses those extremely hard to come by these mini-DIN adapters, also used by the Roland SCC-1 and MPU-401/AT.  The CT4660 also had two coaxial input jacks, one for S/PDIF in and one for S/PDIF out, and a 9-pin proprietary S/DPIF output port intended for Creative Labs' or Cambridge Soundworks' speakers.  The second generation full version Live! card is CT4760 and removed the I2S_IN header but added a stereo mini-jack S/PDIF connector.  It supports four channels of digital audio output.  The S/PDIF connector uses logic levels up to 5v, whereas most coaxial S/PDIF connectors only go up to 1v.  Damage to equipment can result, so running the S/PDIF through a coaxial to optical S/PDIF converter may be the best bet.

The original value version was the CT4670, which had color-coded but non-gold plated jacks.  It did not have the I2S_IN.  The revised value version was the CT4830, mainly produced for OEMs, which included the I/O expansion port and an external digital S/PDIF jack but left off the CD S/PDIF connector.

The third generation of the Live! cards are the 5.1 cards and use the SBxxxx model designations.  The SB0060 is the retail card.  The connector on these cards can carry the analog center and subwoofer channels or the digital S/PDIF, with or without Dolby Digital 5.1 decoding.  It can support 5.1 decoding with the old CT4660.

There is the CT4770 Optical Digital I/O card + CT4800 Digital Input/Output Module.  This combination of add-on card and external dongle adds Midi In, Out, Line in 2, Optical in, Optical Out, Coaxial In & Coaxial Out.  Line In 2 is not supported on the CT4620 and the CT4670 can use this card for the S/PDIF only.  None of the add-on cards use the actual PCI slot, just the mounting area for the slot.

Finally, the Live!Drive CT4860 and Live!Drive II CT4861 were released.  These were 5.25" bay devices that added similar functionality to the Digital I/O cards.  Chief additions were a mic in 2 and a headphone input and volume wheel.  Requires molex connector for power.  The Live!Drive lacks the Aux In 2 and Optical In and Outs of the Live!Drive II.  The Live!Drive IR uses an infrared controller and its model number is SB0010.  The CT4620 may not work with the mic and line in 2 inputs, and the CT4670 will only have limited functionality.

Earlier Creative Labs Sound Blaster PCI products only support EAX in software at best.  The Sound Blaster Live! has hardware support for EAX 1.0 and 2.0.  As these standards were developed for the Live! cards, they will have the best compatibility.  EAX Advanced HD 3.0 came with the Audigy, so any support for that would be in software only for the Live! cards.  There may be software support for A3D 1.0.

B.  Aureal Vortex 2

Aureal in 1999 was heavily promoting its Vortex 2 chip, supporting its A3D technology.  A3D comes in 1.0, 2.0 and 3.0 versions.  Most games only support 1.0, and often support DirectSound 3D as an alternative.  The advanced 2.0 effects were supported in games like Half-Life, Hexen II, Quake III Arena, SIN, & Unreal Tournament.  3.0 was released only a few months before Creative bought Aureal, Star Trek: Voyager - Elite Force is one of the very few games known to support it.  No cards other than the Vortex 2 ever supported A3D 2.0 or 3.0.  The Vortex 2 chip is known as the Aureal AU8830A2, and a later revision with better performance is simply the AU8830.  Vortex 1 cards use the AU8810, AU8820 or AU8808 chips, but only support a limited feature set of A3D 2.0 and have no EAX support.  Several companies used the AU8830A2 chip, the most well-known board being the Diamond Monster Sound MX300.  The most likely way to find an AU8830 chip is to find a retail Aureal Vortex 2 SQ2500 card.  The "SuperQuad Digital" is the OEM version.  The SQ3500, which was an SQ2500 + Turbo DSP daughterboard, was never released.  The DSP daughterboard was intended to provide hardware assistance for Dolby Digital decoding.

Virtually all the Vortex 2 cards have a waveblaster connector for MIDI daughterboards and either an optical or coaxial S/PDIF output.  Diamond Monster Sound 3D MX300 requires a daughterboard, the MX-25, for S/PDIF.  Only 2-speaker A3D is supported through the S/PDIF.  The final Vortex 2 reference drivers, 2.048 offered initial support for EAX 1.0.  The 2.048 drivers are a bit buggy, and the 2.041 drivers are a recommended alternative.  A3D 3.0 is not available in drivers below 2.048.

Both the Live! and Vortex 2 series have one major failing.  Their DOS game compatibility is less than ideal.  The Live! emulates a Sound Blaster 16 and the Vortex 2 a Sound Blaster Pro.  The Live!, however, requires the loading of EMM386.EXE in Real Mode DOS, and there are games that will not work when an expanded memory manager is loaded.  Ultima 7, Serpent Isle and Commanche are games that will not work either in Windows or with an expanded memory manager.  The Vortex 2 does not suffer from this problem, but DOS games requiring or taking advantage of the improved features of a Sound Blaster 16 over a Pro will not sound as good.  Both cards have pretty terrible Adlib FM Synthesis emulation.  The Vortex 2 also does not quite perfectly emulate the ADPCM compression modes of the Sound Blaster, which games like Duke Nukem II use.  Vortex 1 cards may only support games running in a DOS window in Windows 95 or 98, which obviously is not sufficient for many DOS games that cannot run in Windows.  The Vortex 2 Sound Blaster Pro TSR takes up a fair bit of conventional memory and should be loaded in upper memory.  Without that TSR the MPU-401 and gameport will not work in Real Mode DOS.

C.  Yamaha YMF Series

An excellent third alternative is a card using a Yamaha YMF-7x4 chip.  OEM boards from the mid-to-late 90s frequently used this chip.  The YMF-724 is the base chip, and there exists 724B, 724C, 724D, 724E, 724F, 734, 740, 740B, 740C, 744 & 754 chips.  Yamaha's chips contain a true YMF-262 OPL3 chip, so there are no quality issues with Adlib music for DOS games.  The driver does not require EMM386.EXE to be loaded, but some games will not work with the Sound Blaster emulation unless it is loaded.  Ultima 7 will work with the driver and no EMM386, but DOOM will require EMM386 loaded.

Some boards have S/PDIF output for pure digital audio streaming.  These cards provide only one of two known ways to obtain a true digital OPL3 capture from a PC.  (The Sound Blaster AWE32s without a CT-1978 chip is the only known other method).  These boards emulate a Sound Blaster Pro 2.0 and do it very well.  Unlike the ISA YMF cards, it will not emulate the Windows Sound System.  Only those few games that use 8-bit to 3-bit and 8-bit to 2-bit ADPCM will not work with these cards.  Duke Nukem II uses these modes for certain, but not all, sound effects.  I have yet to find a DOS game that requires a Sound Blaster 16 to work.  Fallout, which is barely a DOS game, ships with broken Sound Blaster/Sound Blaster Pro drivers.  However, copying over the drivers from another game that uses the same driver model, like Spycraft, will get the drivers working with this card.

These cards' DOS legacy abilities are dependent on the motherboard chipset.  I have found a chart that summaries them :

YMF724, YMF724B, YMF740, YMF740B, YMF740C

                430TX   440LX   440BX   ALADDIN4   ALADDIN5   else
ISA             O       O       O       O          O          X
INTA            O       O       O       O          O          *2
PC-PCI*1        O       O       O       X          X          X

YMF724C, YMF724D, YMF734

                430TX   440LX   440BX   ALADDIN4   ALADDIN5   else
ISA             O       O       O       O          O          O
INTA            O       O       O       O          O          *2
S-IRQ *1        O       O       O       O          O          X
PC-PCI*1        O       O       O       X          X          X
D-DMA           O       X       X       X          X          X

YMF724E, YMF724F

                430TX   440LX   440BX   ALADDIN4   ALADDIN5   else
ISA             O       O       O       O          O          X
INTA            O       O       O       O          O          *2
S-IRQ *1        O       O       O       O          O          X
PC-PCI*1        O       O       O       X          X          X
D-DMA           O       X       O       O          O          X

*1   If you wish to use S-IRQ or PC-PCI, the side band (SB link) must be connected.
*2   INTA# IRQ cannot be changed.

Creative Labs, early in their PCI days, designed the SB-Link connector to provide the ISA IRQ and DMA signals needed for full DOS Sound Card compatibility for PCI cards.  The curious thing is that beyond the OEM-only AWE64D, CT4600 & CT4650, Creative never used this connector again.  The motherboard and the card must each have a 6-pin SB-Link connector.  The connector provides the S-IRQ and PC-PCI signals.  Most YMF cards have the connector, early BX motherboards tend to have the connector.  Most of ASUS P2B motherboards do support the connector.  The ASUS P3B-F does not have a connector, but there are solder points for someone to solder in a connector to the board.  The ABIT BX6 2.0 does support it.

The motherboard given as an example for the 1999 Dream Machine, the ASUS P3B-F, does not have an SB-Link connector ready to use.  However, the BX chipset does provide a working D(istributed)-DMA signal, and the YMF chip can use the PCI IRQ INTA as if it were an ISA IRQ.  Thus the card will work with real mode DOS games using the Adlib or Sound Blaster if the proper drivers are loaded.  Some games, like DOOM, will require the driver that requires EMM386.  Other games, like Ultima 7, do not require the EMM386 driver.

The Yamaha Waveforce 192XG is a good example of a retail card that uses the chipset.  This card uses the YMF-724E chip, so it will support D-DMA on a BX board.  I have tested a YMF-744 chip and it also works with the D-DMA option on the BX.  I assume the YMF-754 also works.  The 744 & 754 support four-speaker output, the earlier devices only support two speakers.

As far as 3D support, the card supports the Sensaura 3D API, which does provide for A3D 1.0 emulation. Sensaura, like EAX, is an extension to DirectSound 3D, as opposed to A3D, which is an entirely separate API like Glide or OpenGL.  The drivers can also emulate EAX 1.0, but only with Windows drivers 1040 or below.  The last drivers for these cards are 1048.

D.  Legacy Sound Support

Almost every BX board released in the full ATX form factor will have at least one ISA slot, as will most VIA and AMD boards.   Thus the problem of DOS sound support is not a huge issue.  A Sound Blaster 16 will suffice for virtually any game, even if it is not ideal.  I would avoid using any card with an OPL2 (Yamaha YM3812) chip like the Adlib, Sound Blaster 1.0-2.0, Sound Blaster Pro 1.0 or Pro Audio Spectrum cards, as the OPL2 has trouble with data being sent to it at high speeds.  Also avoid the LAPC-I unless you know your power supply is capable of delivering -5v.  Finally, make sure your case will accomodate a full length 13" card before inserting an AWE32 or Ensoniq Soundscape.

I find difficulties with plug and play ISA sound cards when using real mode DOS under Windows 98SE. While these cards work well under Windows, their initialization programs will need to be run when they are being used in real mode DOS.  Try to find non-ISA PNP cards, even cards that require software IRQ/DMA initialization like the middle Sound Blaster 16s, early Sound Blaster AWE32s and non-PNP Gravis Ultrasounds are better.

7.  Hard Drives & Hard Drive Interfaces

The Intel BX chipset dual IDE ports support Ultra DMA/33 or ATA-4.  This means that transfers to and from hard disks are limited to 33MB/sec.  Ultra DMA/66, ATA-5 controllers were available in 1999 such as the Promise Ultra66 controller.  This controller does not support RAID, and  unless you use RAID 0 you are unlikely to see performance benefits from the hard disk drives available at the time.  The BX motherboard only supports 28-bit LBA, which limits the hard drives to 128GB.  Windows 98 will not correctly partition a hard disk greater than 64GB without a patched FDISK and SCANDISK will not work on hard disks more than 128GB in size.  ATA-6 controllers will support 48-bit LBA for large hard drives, but they were not readily available and the largest consumer hard drives were roughly 30GB (and very expensive) in late 1999.

The other option was SCSI.  The most advanced interface within a high-end gaming system was Ultra 2 SCSI.  The ASUS P2B-DS supports Ultra 2, Ultra Wide and SCSI-1 & 2.  The Tyan motherboards of this time also tend to support SCSI.  PCI boards also offered SCSI controllers.  The fastest hard drives for IDE used 7,200RPM speeds, but some SCSI drives could run at 10,000RPM.  SCSI drives tended to be smaller than IDE drives, and were generally used when reliability or performance was critical.

A good IDE drive from late 1999 would have 512KB to 2MB of cache, 18-22GB size, and would of course spin at 7,200RPM.  IDE drives were close to 30GB by the end of 1999 and the practical limits of Windows 9x FAT32 implementation.  IBM's hard drives reputation had yet to be hit by the 2001 Deskstar (nicknamed Deathstar) 75GXP.  Quantum, Fujitsu, Hitachi, Western Digital & Seagate were making decent drives at this time.

8.  DVD Decoder

In 1997, the first games were released on DVD-ROM and taking advantage of the improved DVD-Video/mpeg 2.  Games such as Tex Murphy : Overseer were released simultaneously on CD and DVD, with the DVD videos had higher resolution, no interlacing and more color.  Other games like Wing Commander IV : The Price of Freedom were first released on CD then later given an enhanced (double-sided) DVD release.  The DVD release of Wing Commander was only offered in a bundle.  Other games with enhanced DVD releases include Zork : Grand Inquisitor, Tender Loving Care, Journeyman Project 3 : Legacy of Time and Star Trek : Starfleet Academy.

Not all games subsequently released on DVD actually support DVD Video.  Amerzone does not, and games like Baldur's Gate only use the DVD format to avoid disc swapping.  Still others like Outcast supported Dolby Digital 5.1 on its DVD version and contained movies that could be played on a DVD player.  The former is also supported in the DVD version of Civilization : Call to Power and the latter is also available for the DVD version of Riven : The Sequel to Myst.

Decoding mpeg2 video in the late 90s was such a processor intensive task that hardware decoder boards were released alongside DVD drives.  The most important board for gaming was the Creative DXR2 board, CT7120.  This board is supported by virtually every DVD-ROM game.  It was usually released alongside Creative's Encore DVD drives in a kit.  It provides coaxial S/PDIF output and supports AC-3/Dolby Digital passthrough.  It supports composite and S-Video output and dual HD-15 ports for a passthrough for VGA output, just like the Voodoo 2.  Later Creative released the DXR-3 board, CT7230.  This card added an analog stereo output and used a proprietary cable for the VGA input.  The Sigma Designs Realmagic Hollywood Plus+ is virtually the same card and was well recommended for providing trouble-free DVD playback.  Wing Commander IV, without fanpatches, probably will only work with these boards.

A closely related issue is non-DVD Dolby Digital support.  A hardware decoder will provide such support through an S/PDIF output, whether coaxial or optical.  While Dolby Digital can provide up to 5.1 speaker support, the available sound cards of the day only had support for four speakers through analog outputs.

The first generation Sound Blaster Live cards, which only provided S/PDIF output through the I/O cards, can pass AC-3/Dolby Digital through to an external decoder.  The second generation has the digital output on the main card and can do likewise.  The Aureal Vortex 2 cards with a S/PDIF output can also pass AC-3 through.  Released in the year 2000, the Sound Blaster Live 5.1! can decode Dolby Digital 5.1 in software and output it to three pairs of stereo analog outputs or pass it through to an external decoder via its S/PDIF jack.  Those Yamaha YMF cards with a S/PDIF output probably can also support AC-3 passthrough.

As far as DVD drives went, the Creative Encore PC-DVD 5x drive was about the fastest you could get in 1999.  DVD drives of 1997-1999 vintage do not incorporate region encoding on the drive (rpc1), but do so on the mpeg2 decoder.  Thus if the Realmagic Hollywood Plus board is not set to the region of the DVD you wish to play, you are out of luck unless there are you can find a way to reset the region code or there are still selections left on the card.  The Pentium III 600EB is sufficiently fast enough to decode DVD Video at full speed with a software only player like Mediamatics DVDExpress.

9.  Network Interface Cards

Just about any card released during this timeframe will support 10/100 Fast Ethernet.  PCI cards like the 3Com Fast Etherlink XL were very popular and reliable.  Windows 98SE has driver support for the 3Com card included, and there is a packet driver available for it to run DOS Internet applications.  Transfers from modern computers, either through the Microsoft Network/Network Neighborhood (Windows 2K/XP) or an FTP client/server (Windows Vista/7/8) will be made much more convenient through connecting the computer to a router.  Consumer-based Gigabit ethernet cards had to wait for the 21st Century, as would modern wireless cards.

Friday, October 5, 2012

Important System Resources in Vintage Computing

In the beginning, IBM created the PC/XT architecture.  All clone machines tried to adhere to this architecture.  This architecture was based around the Intel 8088 processor, which had an 8-bit data bus and 20-bit data bus.

Then IBM used a 286 in the PC AT and an extension to the architecture, the AT architecture, was born.  This had a 16-bit data bus architecture and a 24-bit address bus.

Around this time, IBM also released the PCjr. and Tandy released the 1000 series, which are very important for vintage PC gaming.  Other important computers include the Amstrad PC-1512 & 1640, the IBM PS/2 Model 25 & 30 (8086 & 80286 Models) and the IBM PS/1 Models 2011, 2121 & 2123.

Since resource conflicts seem inherent to the ISA bus, I do not discuss hardware intended for other bus architectures like EISA, MCA, VLB or PCI.

I.  The XT Architecture

IBM's designated assignments for its common peripherals :

I/O Ports

System Board :

000-01F - Direct Memory Access Controller
020-03F - Interrupt Controller
040-05F - Timer
060-06F - Parallel Peripheral Interface
080-09F - DMA Page Registers
0A0-0AF - Non-maskable Interrupt Mask Register

Expansion Bus :

200-20F - IBM Game Control Adapter

210-217 - IBM Expansion Unit

2B0-2DF - Enhanced Graphics Adapter (EGA Alternate Address)

278-27F - IBM Printer Adapter (Secondary, not officially supported)

2F8-2FF - IBM Asynchronous Communications Adapter (Secondary Serial)

320-32F - IBM Fixed Disk Adapter (Hard Drive, also XT IDE usually 320-323 only)

378-37F - IBM Printer Adapter

3B0-3BF - IBM Monochrome Display and Printer Adapter (MDA, Printer at 3BC-3BF)

3C0-3CF - IBM Enhanced Graphics Adapter (EGA) or IBM PS/2 Display Adapter (VGA)

3D0-3DF - IBM Color/Graphics Display Adapter

3F0-3F7 - IBM 5-1/4" Diskette Drive Adapter (Floppy)

3F8-3FF - IBM Asynchronous Communications Adapter (Primary Serial)

IRQ : 0-7

NMI - Memory Parity, 8087 Coprocessor & I/O Channel Errors

IRQ 0 - System Timer, not available on bus

IRQ1 - Keyboard Controller, not available on bus.

IRQ2 - IBM Enhanced Graphics Adapter (EGA) or IBM PS/2 Display Adapter (VGA)

IRQ3 - IBM Asynchronous Communications Adapter (Secondary Serial)

IRQ4 - IBM Asynchronous Communications Adapter (Primary Serial)

IRQ5 - IBM Fixed Disk Adapter (Hard Drive)

IRQ6 - IBM 5-1/4" Diskette Drive Adapter (Floppy)

IRQ7 - IBM Monochrome Display and Printer Adapter (MDA, Printer only) or IBM Printer Adapter

DMA : 0-3

DMA 0 - (DRAM Refresh) not available on bus.

DMA1 - no particular assignment

DMA2 - IBM 5-1/4" Diskette Drive Adapter (Floppy)

DMA3 - IBM Fixed Disk Adapter (Hard Drive)

Upper Memory :

A0000-AFFFF - IBM Enhanced Graphics Adapter (EGA) or IBM PS/2 Display Adapter (VGA)

B0000-B0FFF - IBM Monochrome Display and Printer Adapter (MDA)

B8000-BBFFF - IBM Color/Graphics Display Adapter (CGA)

C0000-C3FFF - IBM Enhanced Graphics Adapter (EGA)

C0000-C5FFF - IBM PS/2 Display Adapter (VGA) (non-IBM VGA cards typically use C0000-C7FFF)
C6800-C8000 - Ditto
CA000-CA800 - Ditto

C8000-CBFFF - IBM Fixed Disk Adapter (Hard Drive)

F0000-FFFFF - ROM BASIC & BIOS (XT 2nd & 3rd BIOS)

F4000-FFFFF - ROM BASIC & BIOS (PC, Portable, XT 1st BIOS)

II.  The AT Architecture

I/O Ports

Same as XT except :

070-07F - MC146818A Real Time Clock & NMI Mask Register
0A0-0BF - IRQ Controller 2
0C0-0DF - DMA Controller 2
0F0-0FF - 80287 Coprocessor Control

170-177 - IBM Fixed Disk and Diskette Drive Adapter (Hard Drive only, Secondary Controller, unsupported)

1F0-1F8 - IBM Fixed Disk and Diskette Drive Adapter (Hard Drive only, Primary Controller)

278-27F - IBM Serial/Parallel Adapter (Secondary Parallel)

2F8-2FF - IBM Serial/Parallel Adapter (Secondary Serial)

370-377 - IBM Fixed Disk and Diskette Drive Adapter (Floppy & Hard Drive, Secondary Controller, unsupported)

378-37F - IBM Serial/Parallel Adapter (Primary Parallel)

3F0-3F7 - IBM Fixed Disk and Diskette Drive Adapter (Floppy & Hard Drive, Primary Controller, also IDE)

3F8-3FF - IBM Serial/Parallel Adapter (Primary Serial)

IRQ : 0-15

NMI - Memory Parity or I/O Channel Error

IRQ 0 - System Timer, not available on bus

IRQ1 - Keyboard Controller, not available on bus.

IRQ2 - 2nd IRQ Controller Cascade, rerouted to IRQ9.

IRQ3 - IBM Serial/Parallel Adapter (Secondary Serial)

IRQ4 - IBM Serial/Parallel Adapter (Primary Serial)

IRQ5 - IBM Serial/Parallel Adapter (Secondary Parallel only)

IRQ6 -  IBM Fixed Disk & Diskette Drive Adapter (Floppy only)

IRQ7 - IBM Monochrome Display and Printer Adapter (MDA, Printer only) or IBM Serial/Parallel Adapter (Primary Parallel only)

IRQ8 - Real Time Clock, not available on bus.

IRQ9 - IBM Enhanced Graphics Adapter (EGA) or IBM PS/2 Display Adapter (VGA)

IRQ10-12 - no particular assignment

IRQ13 - 80287 Coprocessor

IRQ14 - IBM Fixed Disk & Diskette Drive Adapter (Hard drive only)

IRQ15 - no particular assignment (later secondary Hard Drive controller)

DMA : 0-7

DMA 0 - no particular assignment

DMA1 - no particular assignment

DMA2 - IBM Fixed Disk & Diskette Drive Adapter (Floppy only)

DMA3 - no particular assignment

DMA4 - (2nd DMA Controller Cascade) is not available on bus. 

DMA5-7 - no particular assignment

Upper Memory :

Same as above, except no Fixed Disk at C8000-CBFFF :

E0000-EFFFF : Optional ROM Sockets (AT only)

F0000-FFFFF : BASIC & BIOS ROM

PS/2 Difference :

IRQ12 - PS/2 Mouse

III.  Other System Differences 

PCjr./Tandy 1000 Differences :

I/O Same as XT architecture except :

000-01F - Direct Memory Access Controller (Tandy only, optional on 1000/A/EX/HX)
020-027 - Interrupt Controller
040-047 - Timer
060-067 - Parallel Peripheral Interface
080-083 - DMA Page Registers (Tandy only, optional on 1000/A/HD/EX/HX)
0A0-0A7 - Non-maskable Interrupt Register, Memory Configuration Register (Tandy), Configuration Register (PCjr.)
0C0-0C7 - TI SN76496 Programmable Sound Generator
0C0-0C7 - Tandy PSSJ Sound Chip (except for RSX)
0F0-0F7 - Floppy Interface (PCjr.)
1E0-1E7 - Tandy PSSJ (RSX, also 2500XL, Sensation!)
200-207 - Joystick Interface
2F8-2FF - Serial Interface (PCjr.)
320-323 - XT IDE 8-bit Interface (TL/2, TL/3, RL, RLX)
378-37F - Printer Interface / IBM PCjr. Parallel Printer Attachment
3D0-3DF - Graphics Interface
3F0-3F7 - Floppy Interface (Tandy)
3F8-3FF - IBM PCjr. Internal Modem, Serial Interface (Tandy TX, TL, TL/2, TL/3, RL, RL, RLX, RSX, SL, SL/2)
FFEB-FFEF - Tandy System Programming Options (TL, TL/2, TL/3, RL, RLX, SL, SL/2, RSX)

IRQ Same as XT architecture except :

NMI - Keyboard Controller (PCjr.) or Coprocessor & I/O Channel Error (Note parity memory is not supported on these machines)

IRQ1 - no particular assignment (PCjr.)

IRQ2 - no particular assignment, Alternate Video (Tandy SX, TX, TL, TL/2, TL/3, RL, SL, SL/2)

IRQ3 - Serial (PCjr.), PS/2 Mouse (RL, RLX, TL/3)

IRQ4 - Modem (PCjr.), Serial (Tandy)

IRQ5 - Video (Optional on Tandy SX, TX, TL, TL/2, TL/3, RL, SL, SL/2), otherwise no particular assignment

IRQ6 - Floppy

IRQ7 - Printer

DMA Same as XT architecture except :

DMA1 - Tandy PSSJ Sound Chip

DMA not supported on PCjr.

Upper Memory Same as XT except :

B8000-BBFFF - PCjr. Video Memory Window (CGA compatibility)
B8000-BFFFF - Tandy Video Memory Window
D0000-DFFFF - IBM PCjr. Cartridge
E0000-EFFFF -  IBM PCjr. Cartridge
E0000-EFFFF - DOS-in-ROM Paging (Tandy HX, TL, TL/2, TL/3, SL, SL/2, RL, RLX, RSX)
F0000-FFFFF - BASIC & BIOS (PCjr.) BIOS (Tandy)

Amstrad PC-1512 Differences :

I/O 70-77 - Real Time Clock (functions like AT)
I/O 78-7F - Amstrad Mouse Movement

IRQ2 - Real Time Clock (can be used with EGA)

PS/2 & PS/1 Differences :

I/O 3B0-3DF - IBM Video Graphics Array (Model PS/2 25 & 30 286, PS/1)

I/O 3C0-3DF - IBM Multicolor Graphics Array (MCGA) (Model 25 & 30 8086 only)

IRQ2 - MCGA, VGA

I/O 320-327 XT IDE 8-bit Interface (Model 25 & 30, PS/1 Model 2011)

IV.  ISA Expansion Cards


Hercules Graphics Differences (from MDA) :

Upper Memory - B0000-B7FFF - Half-Graphics Mode
Upper Memory - B0000-BFFFF - Full Graphics Mode (CGA Emulation)

Adlib Music Feature Card :
I/O - 388-389

Game Blaster
I/O - 210-21F, 220-22F, 230-23F, 240-24F, 250-25F, 260-26F

Sound Blaster 1.0-1.5, Mediavision Thunderboard :
I/O - 210-21F, 220-22F, 230-23F, 240-24F, 250-25F, 260-26F; 200-207 (Joystick); 388-389 (Adlib)
IRQ - 2, 3, 5, 7
DMA1

Sound Blaster 2.0 :
Same as Sound Blaster above except :
I/O - 220-23F, 240-24F; 200-207 (Joystick)

Sound Blaster Pro 1.0-2.0
I/O - 220-23F, 240-24F; 200-207 (Joystick)
IRQ - 2, 5, 7, 10
DMA - 0, 1, 3

Sound Blaster 16, AWE32, AWE64
I/O - 220-23F, 240-24F, 260-27F. 280-29F (DSP); 330-331, 300-301 (MIDI); 200-207 (Joystick); 388-38B (Adlib); 620-623 & A20-A23 & E20-E23 (Advanced WavEffects Synthesizer, AWE32, SB32 & AWE64 only); 100 (3D Stereo Enhancement device, AWE64 only)
IRQ - 2, 5, 7, 10
DMA - 0, 1, 3 (Low); 5, 6, 7 (High)
SCSI Port - 140, 340 (certain models only)
IDE Port - 1E8-1EF, 170-177, 168-16F (certain models only)

Roland MPU-401 w/MIF-IPC & MIF-IPC-A:
I/O - 330-337
IRQ2

Roland MPU-IPC & IPC-T
I/O - 330-331 (MPU-IPC), 330-331, 300-301, 320-321 (MPU-IPC-T)
IRQ - 2 (MPU-IPC), 2, 3, 4, 5, 6, 7 (MPU-IPC-T)

Roland LAPC-I, SCC-1, MPU-401AT
I/O - 330-331, 332-333, 334-335, 336-337; 300-301, 320-321 (MPU-401AT only)
IRQ -  2, 3, 4, 5, 6, 7

Innovation SSI-2001
I/O - 280-29F, 2A0-2BF, 2C0-2DF, 2E0-2FF; 200-20F (Joystick)

IBM Music Feature Card
I/O - 2A20-2A2F, 2A30-2A3F (alias of 220-22F, 230-23F)

Gravis Ultrasound
I/O - 210-21F & 310-31F, 220-22F & 320-32F, 230-23F &  & 330-33F, 240-24F & 340-34F, 250-25F &  & 350-35F, 260-26F & 360-36F (Ultrasound); 388-389 (Adlib); 30C. 31C, 32C, 33C, 34C, 35C, 36C (16-bit Base Port Address, CS4231 cards only, GUS MAX, GUS w/daughterboard)
IRQ - 2, 3, 5, 7, 11, 12, 15 (GUS IRQ & MIDI IRQ can use two different IRQs)
DMA - 1, 3, 5, 6, 7 (Playback & Record DMA can use two different DMAs)

Novell NE1000 & NE2000
I/O & ROM : 300-31F & C8000-CBFFF, 320-33F & CC000-CFFFF, 340-35F, D0000-D3FFF, 360-37F & Disabled or D4000-D7FFF.(some cards will go all the way up to the F segment.)
IRQ : 2, 3, 4, 5
DMA (Some Cards Only) : 1, 3 (NE1000), 3, 5, 6, 7 (NE2000)

AST Six Pak Plus Real Time Clock
I/O - 2C0-2DF
IRQ - 2, 4, 5, 7 (optional)

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