Thursday, October 23, 2014

4.77MHz 8088, You're Needed!

The floor for all PCs, in terms of speed, is the Intel 8088 CPU running at 4.77MHz, the speed it ran in the IBM PC Model 5150 released in 1981.  However, there are various nuances when it comes to PC speed :

The IBM PCjr. also ran at 4.77MHz, but its access to 128KB of RAM was substantially slower than the PC because the video chip also accessed memory to refresh the memory.  It could decrease performance by 15-20%.  However, if software is ran in memory above 128KB, the performance is slightly better than the IBM PC.  Because the PCjr. was not designed to use more than 128KB, at least in the beginning, most early software did not account for the speed increase.  On the other hand, most PCjr.-specific software was contained on cartridges or self-booting disks and did not need RAM about 128KB.

A DOS rip of a PCjr. booter may run too fast.  Lode Runner is a good example of a game with this problem.  Fortunately it does have a speed adjustment that can reduce the speed to sane levels.  This is, however, a rare feature.

Most 8088s in the PCs and compatibles, including all the IBM PCs, XTs most of the PCjrs, were socketed.  The NEC V20 was a very popular upgrade and was a simple replacement for the 8088.  It could increase performance by 15-20%, depending on the application.  Later, ISA accelerator cards like the Orchid Tiny Turbo and the Intel Inboard 386PC plugged into an ISA slot and the CPU socket and could speed up the system to be the equivalent of a low end AT or 386 machine.  Some brave users would try to overclock their machines by using crystal-switching devices like PC Sprint, which allowed the processor to use a faster clock crystal while the rest of the system used the standard clock crystal, vital for system timing.  

Later PC compatibles bumped the clock speed (Tandy 1000 SX, EX and HX), used a V20 (Tandy 1400) or the 8086 with a true 16-bit data path to RAM (some Compaq machines, Tandy SL, SL/2 and RL, IBM PS/2 Models 25 and 30) to improve speed without seriously sacrificing compatibility with software that relied on the basic speed.  Usually one speed "bump" would not be sufficiently serious to break software, but gameplay, sound effects and graphical effects could be affected when compared to the base machine.

However, when IBM released the IBM PC AT in 1984, it included a 6MHz 80286, which could run applications three times faster than the original PC or XT.  All the software that had been written before the AT's release had only to cope with one speed, so code that was dependent on processor speed could run far faster than intended.  Even when the AT was released, programmers did not necessarily put speed checks in their code overnight, the AT was an enormously expensive machine and games would be the last kind of software expected to run on it.  Thus for a five year period, 1981-1986, game software was generally designed to run on a 4.77MHz 8088.

In addition to the CPU speed, the speed of the video card sometimes needs to be taken into account.  The IBM Color/Graphics Display Adapter was the first graphics card for the IBM PC and compatibles, and it was widely cloned.  (By contrast, the IBM Monochrome Display and Printer Adapter could only show 80-column text and was not suitable for most games).  The PCjr. was only semi-compatible and the Tandy 1000 was (almost) fully compatible with IBM CGA, but it accessed memory far faster than the IBM card.  Some games rely on the performance of the IBM CGA card to produce special graphical effects.

Eventually, most early games will break sooner or later as the processor speed and generations increase, or the CGA hardware found less and less support with more advanced graphic cards.  Some games, however, like Shamus and Alley Cat, were famously far-sighted and could be run on virtually any system that can run DOS, regardless of processor speed.

IBM PC 4.77MHz

Defender
Defender simply runs too fast when the speed becomes any greater than one bump.  Forget about it running at a playable speed on a 286, even one that has been slowed down to 4MHz as with a Tandy 1000 TX or TL.  A 4MHz 286 is about as an 8MHz V20 or 8086.

Ultima I-IV
All of the first four Ultima ports to the PC vary the length of their sound effects, the speed of attacks and the spawning rate based on the system speed.

Dunzhin: Warrior of RAS
Dunzhin features synthesized speech, and the pitch of the speech is speed sensitive.  "Welcome to Dunzhin!"

IBM PCjr. 4.77MHz

Lode Runner & Championship Lode Runner
These games detect the presence of the PCjr. and adjust their speed.  Running games like these as a DOS conversion will result in the action running very fast.  The speed settings contained in the game may not fully compensate.

IBM PCjr. 4.77MHz and Tandy 1000 4.77MHz

Touchdown Football
This game was released by Imagic first for the PCjr. and somewhat later for the Tandy 1000.  At this point, the Tandy 1000 only ran at 4.77MHz and came with 128KB of RAM onboard.  The PCjr. version could run in a 128KB Tandy 1000, but the digitized speech would play back too quickly because the Tandy does not have same the speed penalty for memory accesses in its 128KB of RAM.  If you were able to accelerate your PCjr., the speech would playback too quickly.  The digitized speech in the Tandy version is affected by any speed bump, such as the 7.16MHz Tandy 1000 SX.  Fortunately, Tandy allowed you to change the speed of the CPU to 4.77MHz either at boot-up or in DOS.

IBM PC 4.77MHz and Tandy 1000 4.77MHz

Super Boulder Dash
As discussed here : http://nerdlypleasures.blogspot.com/2016/08/boulder-dash-pc-speed-and-joysticks.html, the joystick will respond correctly only at this speed.  Fortunately it will still work with a V20 CPU at this speed.

IBM CGA Graphical Effects

Frogger & Jungle Hunt
Frogger and Jungle Hunt rely not so much on processor speed as they do on CGA speed to achieve the effect of making a change in the background color (Frogger) or palette (Jungle Hunt), in mid-frame.  Thus, the default graphics in Frogger will show blue water on the top and black pavement on the bottom, and show a white score text (using the intense cyan, magenta and white palette) on the top and green, red and brown in the playfield for Jungle Hunt.  Even at 4.77MHz, I discovered that at least Jungle Hunt will have an issue with initiating the palette switch on the right scanline when I was using an ADP-50L hard drive controller.  Using a different hard drive controller fixed the issue.

Digger
Digger uses a color-cycling effect on its High Score screen that looks properly when run on a 4.77MHz machine with a CGA card.

8088MPH & Area 5150
8088MPH is a 2015 demo will only run correctly with a 4.77MHz 8088 CPU and an IBM CGA card. It relies both on the speed of the CPU and the video memory speed access of the CGA card, as well as the composite colors generated by the IBM CGA card.   It has different settings for Old and New IBM CGA cards.  Area 5150 is a 2022 demo by the same team which brought us 8088MPH which absolutely requires the same hardware configuration.

2 comments:

  1. Although Alley Cat was indeed far-sighted, I still had to set Dosbox on low cycles (200 to be exact) to hear some of the sound effects exactly like I heard them on an original PC. Not doing this makes those sounds annoying crackles.

    ReplyDelete
  2. There's one absolute classic you forgot: the original Wolfenstein. High speeds cause you and the enemies to move so fast it's unplayable. Same is true for the original version of it's sequel, Beyond Castle Wolfenstein, however a source port was made that fixed that issue.

    ReplyDelete