Oldskooler Ramblings

the unlikely child born of the home computer wars

Archive for the ‘Vintage Computing’ Category

It’s been fun

Posted by Trixter on December 26, 2018

My vote for the most subtle-yet-cruel entry in the category of brain mis-wirings is Imposter’s Syndrome. (It is also a first-world problem; apologies if this offends you.) I have it fairly bad, and it’s gotten worse as I age. It has prevented me from starting projects, finishing projects, and having normal levels of self-confidence. I am, thankfully, able to praise and mentor other people as necessary, but I cannot provide that for myself. Combine this with yearly instances of FOMO and you end up with someone who goes through waves of trying to join the party, only to feel sheepish once they get there.

This must end. Not in the manner in which my friends and fans might have hoped, but it simply has to end if I’m going to be available for the people who matter (including, most importantly, myself). So, it ends today. It ends with a list of things I’ve achieved in my life by my own skill, intelligence, and volition. I’m granting myself permission to be proud of everything on this list.

And, most importantly:

  • Met my wife, became a better person for her, and started a family

That is truly my greatest accomplishment. It has directly touched hundreds of lives, contributed something positive to the world, and will outlive me by many decades, if not centuries.

But this person is going away, and this is the third-last post I will be writing on this blog.

Posted in Demoscene, Digital Video, Gaming, MindCandy, MobyGames, Programming, Vintage Computing | 3 Comments »

Vintage DOS MIDI Game Music Explained

Posted by Trixter on October 5, 2018

For people who are just getting started into vintage DOS gaming, MIDI music device support in games can be confusing:¬† What’s MIDI?¬† Why don’t MIDI devices play digital sound?¬† If all you have is MIDI, how do you hear sound effects?¬† This¬†article will attempt to explain, as succinctly as possible, how MIDI devices became a part of DOS gaming music history, and how they were used for composing and playing back game music.¬† This article is not an extensive technical dive, but is meant to be an explanation for the novice DOS gamer who is new to the platform.

This information originally appeared as correspondence with Fabien Sanglard, who is working on the next book in his Game Engine Black Blook series.  His previous book, Game Engine Black Book: Wolfenstein 3D, is highly recommended.

What is MIDI?

MIDI is a synthesizer music control protocol, and stands for Musical Instrument Digital Interface. It was created in the 1980s as a way to connect keyboards, drum machines, other synthesizers, etc. together. Once connected, they could do things like have one instrument (like a keyboard) control another (like a drum machine), they could all refer to the same time sync signal, and also be connected to a computer using a computer MIDI interface. Once connected to a computer, the computer could record all of the notes passing along the MIDI protocol, effectively capturing the live performance.  Once captured, the computer allowed the user to edit the performance, make changes, and play it back out to all of the connected instruments.

MIDI instruments were connected to each other using cables employing a male 5-pin circular connector.

What was the Roland MT-32?
What was the Roland LAPC-I?

The Roland MT-32 was an external, standalone MIDI music synthesizer that you could connect with MIDI cables to a computer fitted with a MIDI adapter, such as the Roland MPU-401. This hardware allowed high-quality (for the time) music playback, better than the FM/OPL-based AdLib (and later Sound Blaster) cards. Sierra supported the MT-32 (and other sound and music devices) as early as 1987 and pushed for sound/music devices to be better-supported throughout the industry, leading with their own products first.¬† It is fair to credit Sierra with establishing higher-quality sound devices, and the MT-32 in particular, as a PC gaming “standard”.

The Roland LAPC-I combined the MPU-401 MIDI interface with an upgraded version of the MT-32 called the CM-32L into a single ISA card, so adding just that card would give you “MT-32” music playback, plus 33 additional sound effects.

The MT-32 was primarily a music synthesizer. Like any traditional musical keyboard synth, it had over 100 preset instruments, and some canned sound effects (gunshot, rain, explosion, wind, etc.). It also had the ability to change the parameters of those instruments and modify them to sound differently. Changing an instrument was done via SYSEX (SYStem EXclusive) MIDI commands. The MT-32 was not based on the Yamaha OPL series like the AdLib/Sound Blaster, but used a Roland-proprietary combination of prerecorded samples and subtractive synthesis.  You could not fundamentally create your own instrument or sound effect, but you could modify what already came with the MT-32.

The MT-32 only communicated via MIDI. MIDI does not have the ability to transmit PCM samples, so it had no ability to play custom digitized audio. The LAPC-I also lacked this capability:¬† While it was an add-in ISA card, it didn’t add digital sound playback to the existing CM-32L + MIDI interface combo it was designed to reproduce.¬† (A later card, the RAP-10, added this functionality.)

What was the Roland SC-55?
What was the Roland SCC-1?
Why were they a significant milestone of DOS gaming music?

The Roland SC-55 was the very first General MIDI standard device. The General MIDI standard was significant in that it defined 128 instruments that every device following the standard could adopt. Before General MIDI, there was no standardization: Instrument #4 could be “organ” or “flute” or “snare drum”, etc…¬† but in General MIDI, instrument #4 is always “Honky-Tonk Piano”. This standard was the real breakthrough for DOS gaming music, because it meant all MIDI music devices following the standard could reproduce the music nearly the same, as they would all be using the same instruments.¬† (That said, the SC-55 also had outstanding sound quality, which was also a breakthrough.)¬† Of the 128 instruments, 16 were sound effects.¬† An additional 46 percussive sounds (snare drum, hi-hat, etc.) were also available on a specific playback channel.

Like the MT-32, the SC-55 connected to the computer using MIDI cables and a MIDI interface installed in the computer. The Roland SCC-1 was like the LAPC-I: It combined an SC-55 and an MPU-401 onto a single ISA add-in card.

How was MIDI music for DOS games composed?

Standalone synthesizer modules like the MT-32 and the SC-55 can only be controlled via the MIDI protocol, sent over MIDI cables to the module. If you want to compose music to be played back on those modules, it is best practice to compose the music using the module itself. Because the module has no musical keyboard attached, it was common to use a synthesizer keyboard connected via MIDI to control the module. This was typically done by capturing a live performance on the keyboard into a MIDI note recording program called a MIDI sequencer, usually on a computer. Once captured on the computer, it could be edited like any media.

Why do I still need a Sound Blaster to hear sound in DOS games?

MIDI devices like the MT-32 and SC-55 were primarily designed as music synthesizer modules, and only contained a small number of sound effects.¬† The sound effects were so limited that most games didn’t bother trying to support them, so if one of those devices were all that you had, then you only heard music in a DOS game and no sound effects or speech. So, most DOS gamers also installed a card to play PCM sound, such as a Sound Blaster.¬† To hear both sound devices at the same time, users could run both to a mixer which output to a single set of speakers, but a cheaper option was to run the audio output of the MIDI module into the “line in” jack on a Sound Blaster, then connect the “line out” jack of the Sound Blaster to speakers.¬† Then the Sound Blaster internal mixer could be adjusted via software such that Line In was mixed into the output even while not recording.

While most games didn’t use MT-32 or SCC-1 canned sound effects, there were a few exceptions.¬† Sierra games using the SCI interpreter would occasionally use them (see Space Quest III for an example of MIDI sound effect use on the very first gameplay screen), and Another World (USA title “Out Of This World”) used the additional effects in the LAPC-I/CM-32L.

What music device should I pick when running a DOS game that has multiple options?

If you have an emulator configured for all possible DOS game sound standards — or, if you’re lucky and rich, a choice of sound hardware to put into a vintage DOS gaming system — then you should usually pick General MIDI with any sound extensions first, then General MIDI, then FM-based.¬† Here is a general list of sound options listed from best MIDI music quality to worst MIDI music quality; pick the highest option you have available:

  1. General MIDI (Yamaha XG or XG extensions)
  2. General MIDI (Roland SCC-1, Roland SC-55, Roland GS extensions)
  3. General MIDI
  4. Turtle Beach Multisound
  5. Roland LAPC-1 or CM-32L
  6. Roland MT-32
  7. Sound Blaster 16, Sound Blaster Pro 2 (Yamaha OPL-4 or OPL-3 FM compatible)
  8. Sound Blaster Pro (Yamaha OPL-2 stereo FM)
  9. AdLib or Sound Blaster (Yamaha OPL-2 FM)
  10. Creative Music System or Game Blaster
  11. Tandy/PCjr 3-voice audio
  12. PC speaker

Posted in Vintage Computing | Leave a Comment »

Vintage DOS Memory Conventions Explained

Posted by Trixter on August 20, 2018

Confusing expanded (EMS) memory with extended (XMS) memory happens all the time in the vintage PC/DOS computing hobby for those new to those terms.¬† Which is which?¬† What does my hardware support?¬† Do I need them?¬† This article will attempt to explain, as succinctly as possible, what each “type” of PC memory is and how it is used.¬† This article is not an extensive technical dive, but is meant to be an explanation of DOS memory conventions for the novice DOS user who is new to using DOS.

Protected Mode memory (DPMI, VCPI, DOS extenders, etc.) are not mentioned in this article because they typically don’t require any user intervention to work (ie. DOOM comes with DOS4GW.EXE and it just loads and works automatically).

Terminology used in this article

PC: Any IBM PC  or compatible system from the 1980s and 1990s running DOS.
8088: Shorthand for the entire 8086 CPU class, which includes the 8086, the 8088, the NEC V20, and the NEC V30.
640KB: The typical limit of memory DOS can access.  (Exceptions for DOS to access higher than 640KB exist, but are not mentioned to keep this article understandable for the layman.)

Quick history of memory on the PC

The 8088 CPU in the first IBM PC could access up to 1MB of memory.
Later, PCs built with the 80286 CPU could access up to 16MB of memory.
Later still, PCs built with the 80386 CPU could access up to 4GB of memory.

All PCs can directly access the first 1MB of memory.  Accessing memory beyond the first 1MB requires functionality only 80286 and later CPUs have.  Memory that extends past the first 1MB is called Extended Memory.

Because 8088 CPUs can’t access Extended Memory, special memory boards were created for them that fit into their system expansion slots.¬† These boards contain extra memory visible somewhere in the first 1MB, where the 8088 can see it.¬† The memory provided by these special expansion boards is called Expanded Memory.

Memory types in detail

EMS, XMS, conventional memory, UMBs… what does it all mean?¬† Here are some definitions:

Conventional Memory

What is it?  The first 1MB of memory visible to all 8088 and higher CPUs.  DOS is loaded into the area from 0-640KB and manages it.  The area above that, from 640KB to 1024KB (1MB), is typically used by the system hardware and not generally available to DOS programs.
How do DOS programs use it?  DOS provides function calls for allocating, resizing, and deallocating memory blocks for program use.  (Alternately, programs can directly access any portion of the first 1MB of memory they want to, although doing so can be risky if the programmer is inexperienced.)

Extended Memory

What is it?  Memory visible beyond the first 1MB, usually physically located directly on the motherboard, but sometimes provided by adding memory cards.
How do DOS programs use it?  Via an API called the eXtended Memory Specification, also called XMS.
What provides XMS?  XMS is provided by a driver called HIMEM.SYS, loaded by CONFIG.SYS at boot time.
How does XMS work?  XMS provides function calls that DOS programs can use to copy data between conventional memory locations and extended memory locations.

Expanded Memory

What is it?  Memory provided by special expansion cards.
How do DOS programs use it?  Via an API called the Expanded Memory Specification, also called EMS.
How is EMS provided?  Via a driver provided by the expansion card manufacturer.  Each card has a different driver and you must use the correct one for your card.  The driver configures the card for use, and provides EMS function calls that DOS or programs can use to access the memory on the card.
How does EMS work?¬† EMS boards provide a small “window” into the memory they contain, and this window is located somewhere in the first 1MB of RAM where 8088 CPUs can access it.¬† To access more memory, programs issue EMS function calls that “move” the window to a different area on the card, changing what portion of the larger memory shows up in the small window.

A quick note about EMS:¬† If you want to run a program that uses EMS, but you don’t have an EMS board in your computer, don’t fret: You can emulate EMS on any 80386 or higher.¬† This is done by loading a memory manager such as EMM386 or QEMM.¬† One of the services provided by a memory manager is to section off a portion of Extended Memory and present it in response to EMS function calls, like a real EMS board would.

Upper Memory

What is it?  The upper portion of Conventional Memory located between 640KB and 1024KB (1MB).  There is typically no user-accessible memory in this area, but 80286 and higher systems can relocate portions of Extended Memory into this area for use by DOS programs.
What is it used for?  The total amount of upper memory available is typically very small, between 64KB to 128KB, but this amount can still be useful for loading small memory-resident programs or drivers outside of Conventional Memory.
How do DOS programs use it?
¬† XMS provides functions for allocating and deallocating memory in this area in units of “blocks”, called Upper Memory Blocks, or UMBs.
How are UMBs provided?¬† For 80386s and higher, DOS comes with HIMEM.SYS and EMM386 which, loaded together, provide UMB functionality.¬† For 80286s and lower, there are programs (such as QRAM or USEUMBS) that use “shadow ram” functionality provided by the 80286 system’s chipset to perform the mapping.
How does upper memory access work?  Once a program is provided an upper memory block via a UMB functional call, it can be accessed the same way conventional memory is accessed, ie. directly.

Guidelines to running DOS programs

  1. First off, simply try to run a DOS program.  Most run without needing any special memory configuration.
  2. If you have an 80286 or higher, always load HIMEM.SYS in your CONFIG.SYS file.¬† There’s no harm in installing it even if programs don’t use it.
  3. If you want to load a single program on a 386 or higher to manage all of this for you, install QEMM.  QEMM will manage all of your memory and provide your programs with either XMS or emulated EMS based on what each program asks for.
  4. Finally, if a program claims to support both EMS and XMS, choose EMS.  EMS is faster than XMS.

Posted in Vintage Computing | 4 Comments »

Using a Sound Blaster in a PC/XT-class system

Posted by Trixter on August 3, 2018

I’m asked this a few times every year: Can you put a Sound Blaster in an IBM PC, PC/XT, or otherwise 8088/8086-class system?¬† If you can, is there anything that can use it on that class of hardware?

The quick answer is yes and yes:  As long as there are no hardware conflicts, you can put any of these:

  • Sound Blaster 1.0
  • Sound Blaster 1.5
  • Sound Blaster 2.0
  • Sound Blaster Pro
  • Sound Blaster Pro 2.0
  • Pro Audio Spectrum 8
  • Pro Audio Spectrum 8+
  • Pro Audio Spectrum 16
  • Thunderboard

…into any system and it should work fine.¬† You’ll be able to use the onboard joystick port, and have Adlib/FM sound effects and music.

The longer answer has a caveat: There are less than a hundred sound-enhanced games that will run, and less than 20 of those will use the digital sound channel.  The Sound Blaster was commercially available to consumers in 1989, which was right as the 8088 era was coming to a close.  Only a handful of games were produced around that time period that supported the Sound Blaster and could still run on 8088-class hardware and supported the CGA graphics typical of 8088-class systems.

But, if you have a souped-up NEC V20/NEC V30 XT, you’re feeling adventurous, and you really want to hear some sampled¬†(“digitized”) sound come out of your system, you can try running these:

Commercial games:

1) Used the Activision OmniMusic driver. There might be more games compatible with 8088+CGA that use this driver.
2)¬†Need the rare “16-color” version of this game which supports CGA 640×200 2-color mode

Shareware games:



There might be more than the above, but this is all I can remember personally testing.

For possibly much more comprehensive information on this subject, you can do no better than to check out Great Hierophant’s Nerdly Pleasures blog, which performs deep technical dives into these and other subjects.

Posted in Demoscene, Gaming, Vintage Computing | 17 Comments »

Public Service Announcement: Do Not Use The eBay Global Shipping Program

Posted by Trixter on July 31, 2018

If you sell rare, unique, or otherwise irreplaceable items on ebay, do not use eBay’s Global Shipping Program.¬† Doing so grants eBay’s partners the right to effectively take your item and resell it without your knowledge.¬† What follows is an explanation of what the Global Shipping Program is, why it exists, and why you shouldn’t use it for items that are difficult or impossible to replace.

Shipping internationally is a hassle in the USA: It requires multiple forms, a declaration of value, and for anything over a certain size, interaction with a shipping service employee.¬† However, if you’re selling rare items with global interest, such as vintage computers or software, dealing with international shipping is a necessary evil.¬† You could always not ship internationally, but that cuts out a large section of your audience and potential profits.

To try to ease the pain of international shipping for USA sellers, ebay introduced the Global Shipping Program (“GSP”).¬† The GSP allows a USA seller to market to international buyers, but then ship to a central USA domestic address.¬† Once received, ebay then handles delivery of the item to the international buyer.¬† The benefit to both parties is straightforward: The buyer gets access to more sellers that will ship to their country, and the seller only has to pay for a domestic delivery and avoid international shipping hassle.

The central USA address facility is subcontracted out to Pitney Bowes¬† (“PB”).¬† PB is a business, and they need to make money too, so they collect many packages to a single destination country and then ship them all off at once in a single freight shipment.¬† (This is usually facilitated by repacking items into smaller boxes so that PB can fit more items per shipping container.)¬† Large freight shipments are much cheaper than shipping packages individually, so the difference between what the international buyer paid, and what the eventual shipping cost is, becomes PB’s profit.

What most people don’t realize is that eBay’s agreement with PB allows PB to steal your items and resell them.¬† Worse, they get caught doing it all the time.

The Global Shipping FAQ contains this language:

What happens to lost, damaged, or undeliverable items?

GSP items purchased by your buyer may be covered by an eBay Money Back Guarantee or PayPal Purchase Protection program. eBay and Pitney Bowes shall have no liability and shall have, in their discretion and in any manner that they prefer, the right to dispose of or liquidate parcels (and their contents) that eBay or Pitney Bowes conclude are undeliverable.

At first glance, this seems like protection for PB such that they won’t get in trouble for shipping things that are dangerous or prohibited by a certain country.¬† In those cases, the parcels are likely disposed of.¬† But this wording gives PB the right to “conclude” that any item is “undeliverable”.¬† Remember, PB is a business, and they need to make money, so what happens when they have only a few huge boxes (for example, vintage computers) to ship to an international destination, and/or the contents of those boxes are fragile and cannot be repacked and made smaller to fit into a shipping container?¬† PB would lose money passing them on to the buyer, and they’d also lose money returning them back to the seller.¬† So, rather than lose money in either case, they classify the item as “undeliverable” and it goes nowhere.¬† Their agreement with eBay (wording above) grants them the right to do this.

The reason this doesn’t turn into instant outrage on an hourly basis is that eBay compensates both the seller and buyer when this happens.¬† The seller gets to keep the money they received for the item, and since the item can’t be delivered, the buyer gets a refund for what they paid.¬† If the item is something common, then the buyer can just start their shopping again from a different seller or store.

But what happens to the original item if PB doesn’t want to deliver it?¬† The wording in the agreement grants PB the right to¬†“liquidate” parcels.¬† While most people think liquidated means destroyed, it doesn’t:¬† In this context, it means apportioned, which is another way of saying reallocated and¬†redistributed:

What happens to items that can’t be delivered to my buyer?

If eBay and/or Pitney Bowes determines that a GSP item is undeliverable eBay and/or Pitney Bowes may elect to dispose of, destroy or liquidate the undeliverable parcel, at which time title to the GSP item shall transfer automatically from you to eBay and/or any third party designated by either eBay or Pitney Bowes

In other words, the original item is given to a third party who can do whatever they want with it.¬† And what the third party does is resell it… back on eBay… using your original listing!

Need proof?¬† Here’s a listing from someone who sold an IBM PC to an international buyer:


They then were informed by eBay that their package was undeliverable, and both parties were compensated.  Then, a few weeks later, this listing showed up on ebay:


Not only is the original item for sale (with “No international shipping” predictably part of the shipping conditions), but the pictures were lifted wholesale from the original listing.

This is surely cause for outrage.¬† However, by merely using the GSP, you transfer all of your rights and have no recourse.¬† eBay’s official wording makes it clear that once the item is received by PB, not only do you lose all title to the item, you also lose any intellectual property rights your listing may have had:

Will content from my original listing be used if the item is liquidated?

Yes.In the event eBay or Pitney Bowes elects to dispose of or liquidate a GSP item, you grant to eBay, Pitney Bowes and/or any third party designated by either eBay or Pitney Bowes (as eBay and Pitney Bowes may elect) a royalty-free, perpetual, irrevocable, non-exclusive, transferable license to any intellectual property rights in the text or images presented in the original listing related to the GSP item, which exists or ever existed, including, but not limited to, the right to reproduce, prepare derivative works base on or display, any copyrightable elements, for the limited purpose of disposal or liquidation of the GSP item. You acknowledge that eBay or Pitney Bowes’s election to dispose of or liquidate the GSP item and allow you to retain your buyer’s payment for the GSP item is sufficient consideration for the transfer of title to eBay and/or any third party designated by either eBay or Pitney Bowes (as eBay or Pitney Bowes may elect in their sole discretion) and the grant of the license.

Always read the fine print.

Bottom Line

If you are selling something irreplaceable, such as a vintage computer or highly rare vintage software, do not, under any circumstances, use the GSP to sell internationally.  Doing so grants eBay the right to effectively destroy your item on a whim instead of delivering it.

Losing a vintage item is much more painful than simply being out the money you paid (or received) for it — the true cost is the loss of something that cannot be replaced.¬† Any seller of such items cannot, in good conscience, allow rare items to be put in this position.

I’d like to thank my colleagues at the VCF Forum for investigating and bringing this to light.

Posted in Vintage Computing | Leave a Comment »

The first 256-color game on the IBM PC

Posted by Trixter on October 1, 2017

In April of 1987, IBM announced the PS/2 line of systems. This was their advancement of the PC standard, but also an attempt come up with a new architecture that could not be cloned without paying a license fee. Of the new features announced, one of the most significant was the addition of MCGA, which created the 256-color mode 13h that we are so familiar with today. VGA was announced at the same time, which emulated all previous color standards including MCGA’s mode 13h.

This background is necessary to answer the following question: What was the first 256-color game on the PC? This was posed recently on a vintage gaming group on Facebook, but it’s a loaded question because it isn’t specific enough. It could mean any of the following:

  • What was the first PC game to use MCGA’s 256-color video mode (ie. mode 13h)?
  • What was the first PC game to use mode 13h to display more than 16 colors onscreen simultaneously? (Many early MCGA games physically used mode 13h only to reproduce the existing EGA/Tandy 16-color graphics the game shipped with, instead of taking full advantage of the extra colors mode 13h provided.)
  • What was the first PC game to fully take advantage of mode 13h to show (nearly) 256 colors onscreen simultaneously?

The aforementioned facebook group conversation devolved into relying on memories and friendly arguments. This is always dangerous, because our minds are not static records. To get an answer out of memories, you need a very large group of people coming to a consensus; even then, that’s not guaranteed to be the correct answer, just an agreed-upon answer. (Some historians would argue that collective memory is the only record that matters, but a discussion of archiving history is out of scope for this article.) In that facebook conversation, and previously reported in various places like Wikipedia, the answer was 688 Attack Sub. The latest executable file date in that game is 1989-03-04. (For reference, all dates in this article are of the format YYYY-MM-DD). That seemed a little late to me; tech adoption moved a little more slowly back then, but even still, it seemed odd that it would take two years for the first game to come out to take advantage of a new graphics standard. Was 688 Attack Sub really the first to support the 256-color mode provided by MCGA and VGA?


Thanks to MobyGames and various archives floating around the internet, we can perform actual research to answer these questions, instead of relying on memory and friendly arguments (which is what the facebook conversation eventually devolved into). I co-founded MobyGames for many reasons, but the biggest reason was to answer questions like this, so I immediately took up the task. Here was my methodology:

  1. I started at MobyGames by looking up all games that support VGA and MCGA in the years 1987, 1988, and 1989. Because MobyGames contributors are awesome, all of the search results provided screenshots, so it was easy to weed out any game that claimed VGA/MCGA support but was just displaying the same EGA 16-color graphics the game already had. In other words, for a game to be considered truly taking advantage of mode 13h, it had to display something other than the stock 16-color EGA/Tandy palette.
  2. I then analyzed screenshots to determine the number of unique colors in the screenshot. This was mostly used to determine if a game was actually displaying more than 16 colors, or just showing 16 and changing the palette via VGA color registers.
  3. Once I had a list of candidates, I then grabbed all revisions of the games in question and compared file dates of the executables, and used the latest file date as a “supported here first” date. (This is not the same as the game’s release date, ie. the date that the game was distributed by the publisher — those are much harder to verify due to lack of archived software publishing trade information, and besides that’s not the question I’m answering. I’m answering “who was first to support the tech”, not “who got their game into customer’s hands the quickest”.)
  4. Finally, I discarded everything after 1989-03-04, the executable file date of 688 Attack Sub, our known control point.

Here’s what I found, in chronological file date order:

1987-06-08: Thexder‘s earliest shipped revision shows a date of 1987-06-08 on a file named MAINPS, which is the executable overlay that provides “PS/2 graphics support” (ie. MCGA, ie mode 13h). This was surprising to learn, as I assumed Sierra’s AGI games would have supported it first, but the first AGI games to support mode 13h to display graphics of any sort have VG_GRAF.OVL file dates of 1987-11-16 or later. Thexder uses mode 13h to display graphics using 16 custom colors chosen to approximate how the game looks when running in its “best” mode, EGA 640×200.


1987-12-16: Rockford: The Arcade Game displays 32 colors onscreen at once. (32 is significant; see Conclusions at the end of this article for an explanation.)


1988-02-04: DeluxePaint added support for MCGA 256-color graphics in a version with an executable file date of 1988-02-04. While this isn’t a game, it played a large part in mode 13h support in games afterwards.


1988-10-05: Dream Zone uses digitized 16-gray-shade graphics as part of gameplay, then managed to eek out using one additional color when drawing the interface, for a total of 17 colors onscreen. This game is included here not because it is a serious contender in our research, but rather because it was the earliest PC game I could find that used digitized graphics that also used the MCGA palette registers to create a custom color palette — or, at the very least, used any of the default 256 colors that are created when mode 13h is initialized. (This beats out Moebius on the PC which has a later executable date.) Dream Zone is also notable in that it was created by the founders of Naughty Dog when they were 20 years old.


1988-10-15: F-19 Stealth Fighter rasterizes the 3-D graphics using mostly the same 16 colors as as EGA during action gameplay, but when playing the game using MCGA, it uses the extra colors to draw the cockpit graphics using many color shades. This brings the number of colors up to 52 onscreen at once in typical gameplay.


1989-03-04: 688 Attack Sub starts off with a 210-color title screen and then uses many colors throughout gameplay: The Soviet control room (also pictured below) uses 73 colors; other screens produce a 16-color interface while an additional 16-element grayscale digitized picture is also shown; all elements of gameplay use a custom palette.



Based on the above, let’s answer the questions we originally posed:

  • What was the first PC game to use MCGA’s 256-color video mode (ie. mode 13h)? Answer: Thexder.
  • What was the first PC game to use mode 13h to display more than 16 colors onscreen simultaneously? Answer: Rockford: The Arcade Game.
  • What was the first PC game to fully take advantage of mode 13h to show (nearly) 256 colors onscreen simultaneously? Answer: 688 Attack Sub.

Historical Context

Based on the above research, and my personal experience during this time period (if my own memory can be trusted), I can expand on these results with a little historical context. Consider this the “trivia” section of the article.

The “VGA” support in Thexder is truly MCGA support; this is reflected in the name of the graphics overlay, MAINPS, the PS part referring to mode 13h support as “PS/2 graphics” before the rest of the industry just started calling mode 13h “VGA graphics”. But if VGA also supports mode 13h, why don’t you see MCGA graphics when running Thexder on VGA systems? This is because the game is programmed to prefer EGA graphics over other display standards. Thexder’s native graphics are 640×200 in 8 colors as ported over from the original NEC PC-8801 version, which the developer emulated by running the game in EGA 640x200x16 mode. The developer felt the game looked best in its original graphics, so it shows the game that way on any system that can support EGA — and early PS/2 systems didn’t support VGA, only MCGA. So, the only way you can see the MCGA code/colors kick in is if you run it on an IBM PS/2 Model 25 or Model 30-8086, the only systems with MCGA graphics. If you don’t have one of these systems, you can force MCGA graphics to kick in by making a copy of your disk and then copying MAINPS to MAINEG, which will replace the EGA graphics code with the MCGA graphics code.

Rockford: The Arcade Game uses exactly 32 colors. Why is this interesting? Because it shows that the graphics were composed on an Amiga (most Amiga games were 32 colors), and instead of downconverting them to 16 colors like most PC ports did in the 1980s (see Airball for a typical example), the developer decided to support mode 13h so that all 32 colors could be displayed exactly. (Interestingly, the Amiga version of Rockford was released after the PC version.)

F-19 only barely supported mode 13h. It was a nice touch to draw the instrument panel using 32 shades of gray, but this is the only place in the game where additional colors are used. It serves the letter of the law, but not the spirit of the law.

688 Attack Sub makes use of DeluxePaint fonts on all versions of its title screen, which means it used DeluxePaint during development. Also, an earlier demo of the game while it was still being developed (date is 1988) shows that it originally did not fully support 256-color graphics (in the linked screenshot, the background uses multiple colors, but the foreground elements were definitely drawn to the default 16-color palette). Was support of mode 13h in 688 Attack Sub considered only after a paint program existed they could use to create such graphics? Hopefully John Ratcliff, Michael Kosaka, or Wilfredo Aguilar can clarify the development timeline.


I referred to 256-color mode as “mode 13h” because that’s the exact MCGA video mode in use for all games listed above. Later games used VGA’s flexibility to create 256-color modes in higher resolutions, or with multiple video pages, or split-screen, etc. but these were truly limited to VGA, and didn’t show up until 1990 or later. So I chose the exact technical term because it defined a consistent scope to use for comparisons. (If you want to do your own research down the rabbit hole of “What was the first game to tweak VGA into new video modes?” then you can use MobyGames to start that journey.

All of these answers are to the letter of the law, but not necessarily to the spirit of the law. In my completely subjective and unscientific opinion, the first PC game to truly show off MCGA with 200+ colors on every single screen is Mean Streets (because most of the screens were digitized in some way). Coupled with crude video sequences, and the ability to run at a decent speed on an IBM PS/2 Model 25, it’s a great early game to show off what MCGA was capable of.

MobyGames information may not be complete for the time periods researched. Given the nature of recording history, it may never be complete. If you feel I missed something, please contribute the missing game(s) to MobyGames so that future research can be more accurate.

Posted in Gaming, MobyGames, Vintage Computing | 8 Comments »

How to explain programming to the total beginner

Posted by Trixter on June 6, 2017

Explaining what programming is in 2017 is likely best done by introducing the student to Scratch: ¬†All logic is graphical, visual, and onscreen, which matches the most common output medium they’ll develop for. ¬†But how do you explain programming like it’s 1979?

This topic came up recently in a vintage computer forum, where a long-time-listener-first-time-caller to the hobby decided they were going to do what they didn’t do in their youth: ¬†Learn to program on their early home computers (which is one of the things they were originally marketed for anyway). ¬†What struck me about this request is that the OP was truly coming from zero knowledge; they couldn’t comprehend how “ones and zeros” eventually turn into pac-man, or a drop-down menu, or a spreadsheet.

To help explain what programming itself is to the total layman, I came up with a metaphor that I thought was simple enough that I’d reproduce it here: ¬†Programming is like cooking.

How is programming like cooking?  Well, how do you cook food?  To cook food, you need raw ingredients, cooking utensils, and recipes.  You read the recipe, which tells you which utensils to use on which ingredients and in which order.  The end result is a meal.  How does this relate to programming?  Like this:

  • Cooking utensils = CPU instructions
  • Raw ingredients = data
  • Recipe = A computer program

A program is a list of steps (recipe) that use different CPU instructions (utensils) to process data (ingredients) into a new format (a meal). ¬†That’s all programming is.

Okay, but how do you make anything of any complexity, like a game or a drop-down menu? ¬†Let’s extend our cooking metaphor: ¬†Say you had to provide a ton of different, complex meals for a large catered event. ¬†To do this, you have several recipes, each producing a different result. ¬†For such a large event, it’s possible that some recipes exist only to create portions of food that themselves are used in larger recipes for a more complex meal. ¬†The process is no different than making a single meal — you’re just doing it a lot more, with more recipes, for a bigger and more complex result. ¬†How does this relate to programming? Like this:

  • Catered event = A complex thing the user sees on the screen
  • Many recipes = Many different programs
  • Smaller recipes that produce food to be fed into the larger recipes = Subroutines, library calls, API calls

I admit, I was eating lunch when I came up with this metaphor.  But maybe it can help you explain programming to your grandparents.

Posted in Programming, Vintage Computing | Leave a Comment »

Come to Vintage Computer Festival Midwest

Posted by Trixter on May 20, 2017

If you like vintage computers, and you like vintage people operating vintage computers, then come to the Vintage Computer Festival Midwest on September 9th and 10th this year.  I will be there, if you have always wanted the chance to laugh and point at me in Real Life(tm).

What makes VCFMW such a great show, in my totally biased opinion, is that it is 100% free to attend or have a table. ¬†You use your table(s) to exhibit your collection, hold a competition or workshop, or even sell stuff — all are welcome as long as it relates to vintage computing. ¬†There are things to see, things to operate,¬†presentations to watch, and there’s a heck of a lot of Commodore stuff too.

Posted in Vintage Computing | Leave a Comment »

BASIC Memories

Posted by Trixter on March 15, 2017

I contributed a few segments to The 8-Bit Guy‘s retrospective on BASIC that covered my thoughts and memories on growing up with BASIC during the home computer revolution.

Making quality video is difficult! ¬†I had to perform several different takes before I was comfortable, and I screwed up the focus, and I needed better lighting. ¬†And I’m fat. ¬†But overall it went ok. ¬†Except for being fat.

I envy those who can do YouTube videos full time, since it seems like a lot of fun. ¬†I’ve collected over a hundred topic ideas for videos I’d like to do someday, but if I’m being realistic with myself, I won’t have the time.

Posted in Digital Video, Entertainment, Programming, Vintage Computing | Leave a Comment »

I talked about old PC audio methods

Posted by Trixter on January 1, 2017

I was recently a guest on the Upper Memory Block Podcast hangout #6, where the topic was PC sound methods and sound cards.  I spoke the most when the topic hovered around the PC speaker, Gravis Ultrasound, Covox Speech Thing, and a few other pre-MIDI topics.

There’s no real structure, and the whole thing is more of a conversation than having structure :-) but if you’d like to jump right to the PC speaker, seek to the 5-minute mark.

Posted in Vintage Computing | Leave a Comment »