DOS Game System Project

Originally published 2/26/2017

Update: (10/28/2019) For complex reasons I ended up cancelling the entire laptop project, bought a Dell Dimension XPS T450, and have been extremely pleased with it. All the supposed advantages of a laptop are valid, but I could never get it to quite fit my needs. I'm using a Radeon 8500 and capturing VGA directly into my XCapture-1 which has, for the most part, done fine. It's not perfect, but perfect is the enemy of everything, so consider this approach if you're planning on doing this yourself.

Hi. In 2017 I decided to finally begin a project I'd been thinking about since the mid-2000s, to set up a dedicated PC to play DOS games on. At the time of me writing this prologue I have not fully completed the project, so I can't say for sure that this will end in success, but as this turned out to be tougher than I anticipated I wanted to document it for others who would want to do the same.

Update to the above: At this point I would call this project successful, pending finding the best hardware. I have overcome all the major challenges and could proceed with my basic project goals immediately. To jump to the most pertinent info, skip to Update 7.

It's worth noting that I had a much easier time with the initial few steps than expected, even given my outdated info about the state of the market for used hardware and such, so my initial update to this document has much more "meat" to it than one might expect. At this point I've definitely entered the 'slog' stage, so things will go slower.

Overview

My History

Growing up, I was not a console gamer. My parents, for whatever reason, were intensely opposed to the idea of buying me anything in the way of toys. I can name maybe ten items they bought me for entertainments sake, despite having the money. I'm not one to complain; I am what I turned out to be, and I like who I am, so everything worked out okay.

All the same, it put me in an odd position compared to my peers. I was born in 1988, so by the time I was 10 years old my peers had Playstations, N64s, Dreamcasts. I had an NES, and that was it. Nothing newer or older, just an NES. My parents had bought it for my brother - four years older than me, so it was much more reasonable - and it was passed down to me, as with everything I owned. I had a decent library, but I was aware of the SNES so... it was not entirely satisfying.

What I did have was a PC. I started on a 286, possibly an 8086, the sort with a brown, purple and green BIOS with a low-level format option. The first machine I clearly recall was Headstart brand (yeah) with a cartridge-loading CD-ROM. My early childhood was described by Lucasarts and Sierra adventure games, shareware downloaded from BBSes and, of course, CDs with titles like 1000 Great Games.

Much of this was garbage. PC games in that era were... not great. Even the "good ones" weren't that good. Apogee and Epic definitely put out some of the highest quality work, but at the time I was playing them I was unaware that the graphics, game mechanics and atmosphere of console titles, even ten years earlier, usually put those games to shame.

There was no reason for PC games to be weaker than their console counterparts; it's almost like PC developers didn't actually have access to the games they were very clearly and shamelessly copying, but had just seen them at a distance and then recreated them from memory.

Obviously we had FPSes, the PCs strong suit for just under a decade (from the release of Doom to the release of Halo) and I was certainly up to date - I got everything, the moment it came out, but for several years after Doom there wasn't much else of interest, so I spent a lot of time digging through bargain-bin platform and puzzle games hoping to find something tolerable.

I was rarely successful in my quest, but hey - that was twenty years ago. A childhood is a childhood; this is what I grew up with, and I have an innate desire to talk about it.

The Project

So, I wanted to do two things:

To do this, I needed to buy an old DOS PC.

Why not use DOSBox?

Yeah, the overwhelming forum-grade response here is, "just use DOSBox," and as with most uses of the word 'just,' this is a gross oversimplification of things.

DOSBox can run a lot of titles fine - for instance, almost everything from Apogee or Epic will run perfectly. However, the further you get from "AAA titles," the less likely DOSBox will run them correctly.

One of the most basic issues is speed. I've been using DOSBox for about a decade, on everything from Pentium IV to Core i7s, and here are the three speeds DOSBox can run at:

DOSBox can't deliberately slow down to the speed of a 386 or 486 to run old cycle-timed games, and it can't perform Pentium-grade performance consistently, which leaves a narrow slice of games that were designed for 486 or older systems but also used the RTC to time themselves, and even within those there are outliers that just won't run right.

A good example of a failure in this regard is Crusader: No Remorse (and the second game, No Regret) which was designed for a 486 and runs at a consistent speed on DOSBox - but that speed is painfully slow. It's always the exact same amount of slowdown, so I never realized this was happening until I ran the game on real hardware and discovered how much more fast-paced and dynamic it was supposed to be.

Another problem is that not everything I want to run is actually for DOS. Many older games were Windows-based, and while I've been able to run some of these in a VM, I had Problems that I can only guess were due to CPU speed or imperfect emulation of obscure features (audio / video hardware).

Finally, I did in fact test with DOSBox at length, and was left wanting. It has a built in capture feature, but has no options or indication that it's operating, cuts clips every time the videomode changes, and captures to a bizarre format I fully expect to have trouble transcoding for video production.

I even tried running it on a laptop fed into an HDMI capture card on another PC, and that mostly worked except that DOSBox offers NO METHOD to reset the virtual machine. I have no idea why. It's obviously a desirable feature, but nope - the official advice is to close and reopen the program. This is terrible for streaming purposes and even for non-live recording I hate the idea of having to edit dozens of flashes of the Windows desktop out, so I wrote this off as an option.

The only option left to get the experience I wanted was to get real hardware. So, off to the local computer store...

Hardware Availability

...or not, as it turns out. I used to work at RePC in Tukwila, WA, where I threw away hundreds of vintage laptops a week, so I called up my old boss there and said "hey, can you put a couple 386/486 laptops on hold for me?" He laughed into the phone.

"Man," he says, "I wish. Those machines skyrocketed in price right after we threw away a bunch and we haven't seen any in months."

I thought he had to be full of shit, but no - I went to eBay and found out he was serious:

I'm not exactly on the pulse of the vintage computing world. Maybe I'm just late enough to the party, maybe a thousand other people beat me to that sweet DOS Game Youtube money (unlikely, for reasons you'll see later) but either way this is ludicrous. These used to be literally worthless.

This put a damper on things, so my plan "get on eBay and buy three or four different machines from the era" had to be flushed; I needed to decide what I needed and aim for it, so let's get some specifications.

Why a laptop?

You might notice that in my eBay screenshots and phone conversation, all the systems are laptops. Why am I focusing on laptops?

I had to think a lot before making a decision on this topic. Much of it comes down to minimizing impact on my life: Vintage PCs are huge, lumbering hulks. They're heavier than modern PCs and covered in sharp edges. They suck to open up, and they require cable management and the sprawl of an external keyboard, mouse, monitor and speakers. These aren't showstoppers, but they're irritants that would decrease the likelihood I would actually finish this project.

Second, and really more significantly, is that vintage laptops seem more durable to me. As stated I used to handle a lot of these, and I found that they always worked. Desktop systems typically didn't; they'd power on to POST beeps or not at all. Maybe this is because the laptop manufacturers focused more on traveling businessmen so their machines had to be built to tolerate jostling and abuse, whereas desktop PCs are designed to sit still and thus don't tolerate the vibration of being shuffled around from closet to closet for years before they reached the used market.

In summary, buying a vintage laptop just seemed like a way to save a ton of time and pain on my part. However, if you're considering this kind of project yourself, I want to briefly list some drawbacks:

Laptop issues:

You can use a desktop if you want, but I chose a laptop, so let's figure out what I need.

Hardware Requirements

First, what CPU do I really need?

The answer is complex. If I'm going to cover really old games, I need a 486. There aren't many games (that I know of) that require a 386, because the 486 could slow down to 386 speeds, whereas obviously the 386 couldn't run 486-targeted games. No subsequent CPU is capable of this, that I know of. So a 486 would cover a lot of pre-1994 games.

However, 486s are stunningly expensive as seen above. Moving up to a Pentium drops the market price by half on average. Not much comfort, but $120 instead of $260 is a definite improvement. A Pentium can run anything that was RTC-timed, which undeniably covers a huge range of games and software. As an example, I have a 1992 demo (Unreal by Future Crew, if you're curious) that targeted the 486 and it runs fine. If the demoscene was hitting this target with their notoriously unusual code, the majority of games probably hit it too. My experience is that this is true.

At some point maybe I'll shell out for a 486 or luck into one, and then I can record games that won't run on a Pentium. Until then there's still an enormous number of games available, so I'm going to settle for a Pentium.

Next, what kind of peripheral hardware?

Audio: We need something Sound Blaster compatible for sure. The Sound Blaster was supported by absolutely everything, everything, full stop. Everything. Some games supported the GUS or Ensoniq Soundscape, but everything, everywhere forever supported the Sound Blaster, to the extent that Sound Blaster clones were rampant.

Video: This is easy. Anything with VGA will work, since VGA graphics cards can run CGA and EGA seamlessly. All Pentium machines are VGA-compatible, with no special drivers. Video acceleration was essentially unheard of in this era, so we don't need to worry about that.

So we don't need anything specific. This is very good news for this project, because laptop and desktop hardware diverged significantly at the time. Desktops tended to have very consistent hardware in my experience - most Sound Blasters I ever saw were actual Sound Blasters, and video cards were from completely expected manufacturers like ATi or S3. Laptops always seemed to have hardware from odd manufacturers, but almost universally the sound chips are Sound Blaster compatible and the video is obviously consistently VGA-capable.

And what kind of I/O?

Given that we're getting a laptop, the built-in video should be reasonable. Passive-matrix LCDs were common on lower end and older machines, but are nearly intolerable for almost any purpose let alone videogames. This is a huge point of variation between machines and difficult to tell from eBay listings.

We need an external VGA port in order to get video out to a capture card. Pentium-era machines almost all have this.

External audio is needed for accurate audio capture. Pentium-era machines almost all have this.

An external keyboard isn't mandatory, but external mouse is for any mouse-based games - if something does need a mouse, a trackpad / nub will not be tolerable. Mouse can be either PS/2 or serial, though PS/2 is considerably less irritating to locate and use. Pentium-era machines almost all have external PS/2.

A floppy drive is a must. Even if an optical drive is present, booting from it is probably not going to be possible. Fortunately, floppies were the universal language of data trade at the time, and no vintage laptop I've ever seen lacked one.

So things look pretty easy in this regard.

Finally, what condition is tolerable?

Obviously we want it to work. However, there are values of "work" to consider.

The most basic concern is that I don't want to have to crack the case to fix anything. I can replace a display or keyboard if I can find the parts by just pulling a few screws and trim on nearly any laptop, but I don't want to actually open the machine up fully because there's so much that can go wrong and turn a project into a capital-P Project.

The case should be reasonably intact. Older laptops were sometimes made of plastic that breaks down over time; I'm not just talking about yellowing, which is usually harmless albeit ugly. Some machines were made of plastic that simply turns to dust, and if any of it is structural then the machine will go from "cosmetic issues" to "broken" in short order. I intend to use the built-in keyboard, so I don't want the palmrest disintegrating from use.

The LCD needs to be intact, even if I'm using an external display, so that if I'm having issues with getting video I'll know whether it's the external display's fault.

Ideally it comes with a hard drive. Hard drives are usually ordinary IDE/ATA, but often the case needs to be cracked to replace the HDD, so having already installed saves a ton of work in most cases.

Tested is preferable but eBay sellers, rent-seeking vultures that they largely are, often don't know how to test a machine reasonably. The best you can hope for in a lot of cases is "powers on but gives error" which probably means it just has no OS installed. A lot of sellers seem to not even bother powering on the machines however, and in those cases I give it decent odds that if the machine looks to be in reasonable shape it'll work. These are typically pretty tanklike systems.

Overall, these are not unreasonable requirements: basically I want a machine that was working when it was stuck in a closet thirteen years ago. This, fortunately, probably describes a lot of the machines on the market, so if you agree with all my criteria, you can probably manage to get a working system if you're willing to watch eBay for a while and take a chance.

Step 1: Acquiring A Machine

A couple weeks ago I started watching eBay for Deals. It took a few days of idle searching before I came across a winner.

The machine is a Hitachi Visionbook Pro 7000. I hadn't ever heard of this product line, and googling it seems to suggest that nobody has and they're totally unheard-of. I basically couldn't find anything other than machine-generated websites selling me batteries.

It was listed as a parts machine, not fully tested, but the seller mentioned it boots to Windows Me. This was enough to prove to me that it worked - even if it had some minor problems, if it can make it all the way into Windows it's fixable no matter what. I have worked as a professional laptop repairperson so YMMV.

I snapped it up immediately, since it was $35 plus $10 shipping - a killer deal compared to the next cheapest, $75+$20 shipping.

Later that night the seller contacted me to inform me that they powered it up to test it again and found the touchpad didn't work, so did I still want it? I said yes; I'll connect an external mouse if I have to, that's nbd. But, I said, if you have a spare mouse could you throw it in? They replied and said they did, and would, and they shipped me the machine.

A couple days later I got the unit:

It's in great condition! There are a couple missing bits of plastic - one over the left screen hinge, one next to the FDD. The rest seems solid and the plastic doesn't seem to be crumbling. Out of the box, it feels robust; I feel good about the purchase based on my experiences.

The port layout is good, though not perfect. It has serial, VGA, parallel, PS/2, and USB (!!), a solid array. I wish it had a gameport, but I don't think ANY laptop ever had a gameport. It does have a docking port connector, though I can't find a docking station for it and I'm sure I never will.

While I haven't used it yet, the laptop also has Ethernet built in. For '97 this isn't that surprising, but still most Pentium systems wouldn't have this. If the USB weren't so convenient I would probably be leaning on Ethernet for moving files onto the HDD.

It came with a floppy drive and CD-ROM, both removable which is good in case they break, although I've tested them both and they work. The spare battery slide into the CD-ROM bay, although if I pop the floppy drive out I can see battery contacts in there as well. This machine either supported dual batteries or just let you pick one or the other depending on which peripheral you needed more.

It also has external audio (excellent) and a PCMCIA bay which may prove to be useful - maybe I can get a composite video output card for it (more on that later).

The screen is 800x600 active-matrix; in other words, a perfectly adequate display. If you run it at anything less than 800x600 it crops instead of scaling, leaving a black border, which is irritating but unsurprising. A hardware scaler would have cost a fortune in 1997. I've noticed that when running old EGA games this border sometimes turns to a color that seems to have little to do with any color in the game field. I can only assume this is a bug in the LCD driver.

It came with a battery (aftermarket, and dead, and fried) and the aforementioned mouse, and nothing else. No power supply. The machine takes a 19V/2.75A power supply. As it happens I used to sell power supplies for laptops and I knew that any 19V of at least that current rating would work, so I searched the house for one. After searching the house, I couldn't find any of the spare PSUs I used to have, but on a whim I checked the adapter for my girlfriend's fiance's machine. Surprise, the right specs - and the right connector.

The graphics chip is a Chips & Technologies 65545, but who cares; VGA is VGA. I also found out that the sound chip is an ESS ES1878, also known as the ESS AudioDrive, which was actually explicitly supported by a few DOS games. It's fully Sound Blaster compatible though, so you can just set it up as an SB with no trouble. It's also a 100% accurate implementation of an OPL3 - in other words, fully Adlib compatible, so you can run Adtracker on this for those good good FM vibes.

I hooked it up, and the machine POSTED to a BIOS checksum error, then a "no operating system found" message. A spin through the BIOS to configure the hard drive, and it booted right up into Windows Me!

Cute note before we continue: The touchpad really didn't work, and looking in Device Manager revealed a PS/2 Compatible Mouse Port in alarm status with a generic error. After a couple reboots however the problem went away and it's worked ever since.

Windows Me

If you ask me what version of Windows to put on such a vintage machine, I have to recommend Me. I installed Me when it was new, and it was absolute hot garbage, but I have specific reasons to recommend it in this case.

  1. It is, essentially, Windows 98SE, which is the ideal version of Windows to install for playing old Windows games being that it's not NT-based and it's not 95 (which was wonderful, but lacks support for games)
  2. USB support. I was able to pop my USB3 drive into the USB 1.x port on this machine and mount it with zero difficulty. 98SE may also have this capability, but you'd have to install drivers.
  3. You don't need to put the CD in to install drivers. Win98 came out during an era when hard drives were still microscopic. Me post-dates the gigabyte era and Microsoft chose to put the entire driver repository on the hard drive. This makes things like installing USB drives much less insufferable.
  4. Windows Me was crashy back in the day, but that was largely (IMO) because we were pushing it too far: running web browsers and other modern, non-deterministic-y software. As an OS to just get basic GUI / networking support on an older machine, I have not yet had any issues with instability. I haven't run any games on it yet but to be frank I doubt it's going to crash until I start throwing 3D at it, and 3D on a Pentium with no acceleration seems like a losing bet anyway.

Why even bother with Windows? Besides the fact that I want to run Windows games sooner or later, I honestly despise doing file management in DOS. Linux is bad enough; DOS file management is an absolute nightmare. Being able to pick arbitrary sets of files or directories to move between locations saves enormous amounts of time in rearranging the FS.

More significantly, it supports USB natively, and since this machine has USB (wow!) it's the only reasonable way to move data onto the HDD.

The biggest reason not to use Me is that it makes it impossible to get into real DOS. This can be solved, however.

Re-adding DOS Mode

Obviously the #1 issue with Me is that Microsoft tried to hide DOS. This makes it un-ideal as a vintage gaming system, but you can restore it as follows.

First, download the patch to restore DOS access (mfddme13.zip) and extract it to the destination machine.

Copy C:\WINDOWS\COMMAND\EBD to C:\EBD

Copy the patch to that folder and follow the instructions it gives, including copying files to C:\

When you restart the machine will still go into Windows. You need to edit AUTOEXEC.BAT to remove (or REM out) the call to WIN.COM. Now when you start you'll get a raw DOS prompt.

At this point you have a bare DOS system. No HIMEM.SYS, no MSCDEX, etc. If you want any of that you need to build a proper AUTOEXEC.BAT and CONFIG.SYS, and frankly I don't have my chops together on this anymore. If I get a good set of startup files I'll edit this page and add them.

At this point, however, you can use the system as-is for basic DOS service; boot it up straight to get DOS and run whatever you want, and just type WIN to get into Windows whenever.

Here's a snap of the instructions from the patch to give you an idea what it wants:

Step 2: Getting Software

The machine worked out-of-box for me. This is why I said things moved much faster than expected - I had predicted a long prologue of getting a floppy drive, getting DOS loaded from my normal desktop PC, going through getting the CDROM working, et cetera. Instead I got a prefabricated system ready to use, so I have no details on that part of the process.

Next I needed to get files onto the system. This turned out to be much easier than expected, since this machine had native USB! This is really surprising to me. The USB standard was released in 1996, and this machine - per the POST copyright - is from 1997. USB was at most a year old, so this is very early adoption for a technology like this.

I get my games from... the internet. Honestly, at this point you can take your pick as far as sources. Abandonware was easy to find in 2007, hard by 2010, and is now easy again. Google whatever you want. It's all out there, you don't even need torrents, go nuts. I have no specific websites to recommend since whatever I rec will be gone by tomorrow and replaced by another website put up by who knows who for a momentary ad profit.

I can tell you that Internet Archive has a tremendous collection of DOS software. Not only do they have lots of full-version commercial games to directly download, you can also get ISOs of those glorious 1000 Great Games! CDs packed with everything that someone got from mirroring ftp.cdrom.com.

There's nothing complex about getting DOS software onto a vintage machine. Unzip it and put it on a flash drive or CD or floppy and move it onto the PC. No biggie.

I loaded a bunch of games onto the machine and tried them out. Everything worked as expected, no hitches, since it's real hardware.

The one beef I had was with the audio. I had several games that would autodetect the ESS chip as a Sound Blaster and work with no problem, but others wouldn't work even if I manually selected Sound Blaster and entered the address/IRQ/DMA. Finally, after much hand-wringing, I checked in the BIOS and found out the ESS was on IRQ 9. I have no idea why they would do this; changing it back to IRQ 7 made everything start working.

Step 3: Video Capture

At this point I had the machine up and running and playing games. Now I just needed to get the video into a capture card. Here's where things went sideways.

I was gung-ho to plug it right in to my GF's computer, then she drops a bombshell: her capture card only does component, not RGB. I was positive it could take RGB, but apparently I had remembered an alternate universe. This capture card will only take HDMI, component or composite.

Suddenly things were much more complicated. I had the following options:

I started with option 1, a VGA>HDMI converter. I went to Fry's and picked one up for $40, came home and plugged it in. In short, it didn't work.

The signal picked up by the AverMedia capture card was a card-generated "Out Of Range" error. I dicked with the settings for a bit and eventually discovered that manually setting Windows to 640x480 and forcing the output to the VGA port would produce a jittery, distorted image on the capture card. This doesn't even help me if I can get it working though, because DOS games mostly run at 320x200.

I tried many options and tricks, and nothing worked. I can't get Windows, let alone DOS, to output anything this converter will eat. My guess is that the ASIC in this unit was created by a chip designer that didn't even test it with anything under 1024x768. They probably targeted 1280x720, 1680x1050 and 1920x1080 and didn't bother with anything else, really, because what I'm trying to do is a hardcore edge case.

I got on Google and, unsurprisingly, findings were bleak. Everyone who encountered this problem ended up tapping out. The most common two responses I found were "Why are you trying to do this, use DOSBox" and "use a VGA to S-Video converter and capture that", and I can't decide which one is more heartbreaking.

So that's where I sit on the project. My next action will either be to get another VGA->HDMI converter and see if that works, and repeat until I get one that does, or get a VGA->S-Video adapter and see how that works. I'll update this page when I proceed on the project. Thanks for reading!

Update 1: The State Of Video Capture

Date: 2/27/2017

I did some research yesterday, but I did considerably more research today, and here is where things stand: if I get video capture working, I will be the first to do so.

The core issue is that what I'm trying to do is virtually unheard-of. Video capture from game consoles is a massively popular topic with tens of thousands of people participating and even that is a grossly underserved market. I'm talking people with a half-million video subscribers, who live off their streams and game reviews, still have to struggle to make this work.

Console Video Conversion

Not to get into the whole huge topic, but in a nutshell, in order to capture quality video it needs to be HDMI. Capture cards basically capture composite, component and HDMI. The first is analog NTSC, and while most classic consoles can output to that, if they have native RGB output it's much cleaner. The second isn't native to most classic consoles, and most consoles that do have it are new and have HDMI, so you might as well use that. Converting from RGB to component is an analog-to-analog conversion so there's going to be loss if you convert to that. So the ideal conversion in order to get into a capture card-compatible format is RGB-to-HDMI, since it has the fewest lossy conversion steps.

The problem is that this is extremely difficult. It basically requires a custom-made IC to do the conversion, but it's also just kind of an unsolveable problem. Analog-to-digital conversion is something we've been trying to perfect for half a century. This being a niche use case, it's shocking anyone makes a product at all, and much less surprising that most of what's on the market sucks.

If you want further details, just check out the grand unifying article on this topic here. It's a deep hole to sink into.

The point is, this is hard. Real hard, even if you're dealing with signal formats that were incredibly popular and used for decades. DOS VGA hits neither of those targets.

VGA is strongly associated with the 640x480 resolution, but I'd call this misleading at best even though VGA was technically capable of it. That res was common in Windows of course, and a number of later DOS games supported it on mid-90s SVGA chips that could get 256 colors at that resolution, but the vast majority of DOS games did not run at 640x480, partially because the original spec was only for 16 colors.

Instead the vast majority of games ran at 320x200 with 256 colors. I'm told this is a 70Hz refresh rate, which I think is at the core of the issue. My experience in the 90s was that all video was 60Hz, always. I have the suspicion that if 320x200 was a 60Hz standard that commonly available HDMI converters might accept it, but it being 70 makes it virtually impossible, I think, that anything will accept it. So far I've looked at the specs on about two dozen converters; most of them say "all resolutions up to 1080p!" but I think that's bogus, and whenever the explicit resolutions are listed they say 640x480 is the minimum. I've also checked a few Youtube videos from people who tried and they report that their various converters won't take anything under 640x480. There's even one that displays an image but only 50% of the video area is visible.

I don't want to convert to S-Video if I can avoid it. Technically it's an increase in resolution, and I've run DOS games on TVs before and they looked fantastic, but that was with a video card having native S-Video output. The likelihood that an external VGA->S-Video converter will do a good job seems, to me, very low.

I've been searching for VGA upscalers with no luck. Nobody seems to make anything like this, and I think that's because there was never a time when it was needed. Nobody would have been doing VGA video capture in the 90s, everyone just pointed a video camera directly at the screen for instructional videos and the like. As far as I know every VGA monitor in existence will upscale from 320x240, so that wouldn't have created a need for a scaler either.

An interesting and encouraging footnote to being stuck in this rut is something I discovered at the bottom of the pond, buried with the flotsam as it were:

Several people I've come across on Youtube doing direct video capture note that they're using VGA->HDMI converters, but note that their converters don't support resolutions below 640x480 - but they also state that they're on laptops which internally scale the video up to 640x480, even for output.

I'm not sure why this would have been done! Again, every VGA display device I've encountered in my life that I tried on a DOS machine seemed to support 320x200 video, so what would have motivated this?

One possible explanation lies with the LCD technology. I doubt that color active-matrix LCDs below 640x480 were ever manufactured since the native resolution of textmode is in fact 720x400, and they would have wanted crisp display for the business machines that got those panels. So other resolutions would have needed to be scaled to the LCD, and they may have designed the scaler hardware to sit behind the VGA output rather than in front. In other words, the LCD driver takes only one resolution, so they sent the same signal to the VGA port that they sent to the panel.

This introduces the thought that this upconversion is being performed anyway even on my machine. Maybe the video output from my laptop is 640x480, and I just got the worst HDMI converter on the market - indeed, when I started Windows and started playing with the settings I found that it wouldn't even output 800x600 (which I explained away as "maybe that's a 'weird' res for this application") and it output 640x480 intermittently and heavily distorted. I wrote that off as "640 is too low to reasonably expect," but now that I"ve done all this research I know there are adapters that will convert 640 per their spec sheets, so mine is just cheap and bad.

After writing out all the above I'm now reenergized. Maybe buying a laptop was the ideal choice for this project for even more reasons than I realized, because it may provide an upscaling capability that can't be purchased on the market at any price. Tonight I'll test this by connecting the laptop to an LCD monitor, starting a DOS game, and asking the monitor's OSD to report on the detected resolution.

Even if this laptop doesn't do what I need, maybe another one does - I'm receiving a Thinkpad 560X tonight from a friend which could prove to have this capability. If not, maybe I can track down one of the models that these Youtubers have on eBay, though at that point I might be afraid to use the machine since it'll be worth its weight in gold.

If I end this project with at least one solid solution I can provide for people trying to do this in the future however, I will feel satisfied.

Update 2: Project Proceeding

Date: 2/27/2017

Twitter user @aperturegrillz chimed in with advice since they have a number of video capture cards that can take low-res RGB, though none of them have been tested with the exact signal type in question. We're going to meet up soon and test out capturing the signal from the Hitachi and I'll report on results.

Devices are as follows:

As far as I can tell these are not "capture cards" but are "framegrabbers", which I think means "capture card designed by real engineers." The vast majority of capture cards that I've encountered in my life were clearly built around bargain-basement consumer-grade chips from one of a small number of vendors that target the PVR and TV tuning markets and little else, so they aren't very versatile, whereas it sounds to me like these framegrabbers are basically software-defined ADCs. There's nothing about the 320x200@70 signal that should make it impossible to grab with a general-purpose converter, so chances are at least one of these will work.

Whether I can afford to shell out for any of them remains to be seen, but this should at least establish what the realm of possibility is.

Update 3: 320x200 & Video Timing

Date: 2/27/2017

Further research reveals further knowledge. From Wikipedia:

"320x200 @ 70 Hz is the most common mode for VGA-era PC games, using exactly the same timings as the 640x400 mode, but halving the pixel rate (and, in 256-color mode, doubling the bit-depth of each pixel) and displaying each line of pixels twice."

I dug further and everything I'm finding seems to confirm that this means exactly what it says: there is no 320x200 video signal. In 320x200 mode, the graphics card just draws every pixel and line twice, and the actual electrical output from the VGA port is a true 640x400 at 70 hertz. This is an important factor that I missed.

As I'd stated earlier, I thought that all video was 60Hz in those days because that's the only thing I had available in Windows. However, Wikipedia tells me that the native VGA 640x400 is in fact a 70Hz mode. I think the reason I had this misconception is that I always had my Windows resolution pushed to the max, where my graphics card (never the best on the market) or my monitor (cheap as hell) couldn't do any better than 60. Had I ever run at a lower res I might have had access to the higher frequency.

It's still difficult to find hardware that explicitly works with this resolution. Most of the HDMI converters I've found call out 480p, but not 400p. However, this gives me better criteria for my search, so I'm no longer hunting for an impossible nonexistent product.

Update 4: Supported Devices

Date: 2/27/2017

And things are looking up. I found a gadget on Amazon, and although it explicitly lists every resolution except 640x480:

The comments suggest strongly that it really does work just fine for this purpose:

I will still try to test VGA with the high-end capture cards so I have a benchmark on what to expect, but I suspect that realizing what the true resolution of DOS games is was the key to cracking this nut.

Update 5: 320x200, Redux

Date: 2/27/2017

I've continued to research and read and digest all this information and realized something concerning. I have been thinking about the problem incorrectly.

So far I've been thinking only in terms of what the VGA->HDMI converter is capable of handling, and looking for converters that will accept low resolutions. Thinking back on my experiments yesterday however, I remembered the sequence of events and realized I was wrong about what was going on.

When I started the capture utility, I saw an AverMedia splash screen stating "No Signal." I then connected the laptop to the converter, and when I switched the display to the VGA port, I saw "Out Of Range." I've been thinking that the converter couldn't handle 640x480, but that's probably wrong - the converter is very likely converting and passing the signal through just fine, but the capture card won't accept a 640x400@70Hz HDMI signal.

In DOS, I got no signal even with the video directed fully to the VGA port. In Windows when I picked 640x480 and set the display to the VGA port I got a signal, but it was heavily distorted. I chalked that up to the adapter not handling the resolution, but in reality it was probably the capture card failing to accept 640x480 (because it was never really tested at that resolution.) Given the style of distortion however it's also possible that the adapter is hard-set to 60Hz and is just barely locking to the 70Hz signal, hence the distorted output.

I would have liked to set the video frequency in Windows to 60Hz, but Windows Me only offers me two options: Adapter Default and Optimal. Yeah, really. So I'm back where I was: I need to plug this machine into an LCD monitor and query the real, actual output res and freq and see what it's truly producing.

Once I have the second laptop in hand I'll see if I can adjust the refresh rate properly. That might alleviate some of this.

Update 6: Resolution, Tested

Date: 2/28/2017

Last night I connected the laptop, in textmode, to an LCD TV. I tried it via the VGA > HDMI converter first, and got an image the TV reported as 720x400@60Hz. I then tested via straight VGA and got 720x400@70Hz.

So it seems the HDMI converter is scanning at 60 fixed - wonder how it performs the conversion, or if maybe it really is running at 70 but the TV just won't report that on HDMI input.

I then tested with Blake Stone, a typical 320x200 DOS game, and got 720x400x70 again. This is odd. Why am I getting 720x400 and not the expected 640x400? Is an internal scaler in the laptop doing something?

I thought that maybe the laptop coerces all output to the same res, so I tested with Shadow Warrior, explicitly selecting 800x600 SVGA from the config utility, and the TV reported 800x600x60. I then retested with the explicit 320x200 mode and confirmed that I still saw 720x400x70.

I'll be performing more tests as soon as I have access to an LCD monitor instead of a TV so I can confirm these numbers are real, and I'll test with the two other laptops I now have as soon as I can. So far internet research has turned up this thread which seems to conflate some ideas but does communicate the basic fact that other people are seeing this behavior too.

The two other laptops are a Thinkpad 560X and a Dell Inspiron 3800, which both present their own challenges.

I need a drive tray for the Inspiron but it's also a Pentium 3 so I'm not sure how much good it'll do for DOS gaming anyway. There are P3 Windows games I'd like to run which it should help with. Ironically, this machine has native TV out, but since I'd be running Windows games on it I'd just use the VGA since it could output at resolutions I can actually capture.

The IBM has no builtin optical or floppy drive so I can't install an OS until I have that resolved. I may crack the case, pull the HDD and in vitro a copy of Windows Me onto it via a USB adapter just to save time. Fortunately this machine also has USB so once I have Windows up and running I'll be able to get data onto it easily enough.

Update 7: Capture Card & Converter Tests

Date: 3/3/2017

Last night I visited @aperturegrillz, who was more than happy to help me test out video capture. I wasn't able to apply the level of rigor that I wanted to testing, but I did end up with a significant amount of data.

The first thing I'll say is that this is definitely doable for the purposes of basic streaming and recording. Pixel-perfect captures are still out of my reach, but if you just want a decent looking picture, you can do it, and I'll give you some info on how below.

Direct VGA on VisionRGB

The very first thing we did was plug the VGA directly into the VisionRGB E1s, and it immediately locked to the signal and captured it.


High crop & scale

This is a PNG straight out of Amarec. To save you time I have a zoomed & cropped version linked underneath, but I recommend downloading the image and looking at it in mspaint to get an accurate idea, it looks a little bit better that way.

I was running this through a splitter, so there could have been some signal degradation, but I was running the split signal into a 27" CRT alongside and the image was tack-sharp with zero visible distortion. I believe we can trust that the signal was clean. The quality of the resulting framegrab is somewhat inferior, but not enough to complain about; it is different, but it is still crisp. I doubt it can get much better than this.*

This is an expensive capture card, so we tested some other options. I have comparison photos on this page, but here's a summary.

HDMI Converter

I connected the HDMI converter, the first unit I bought, which performs 1:1 conversion from VGA to HDMI. I promptly found that it would not convert the raw signal out of the laptop; in "CRT" mode, where the pure video signal is sent to the VGA port, it provides no signal.

If I set the laptop to CRT+LCD mode, where it scales the output video to 800x600, I get output on the converter. I started testing various output modes, but rapidly discovered a critical flaw: the converter has some kind of color cast issue.

Click the thumbnail to see the issue clearly. The black areas of the screen have a clearly blue haze. When I pressed enter to push the bright blue background up the screen, the blue haze diminished as the black took over the screen. I didn't test any other cases because this is a useless product. I would not purchase it for any reason; this kind of flaw is absolutely unforgiveable because you can never tell when it's happening, so even if this is the "only" case I could prove, it means I would always question, in any situation, if I was getting a real signal or a damaged one.

Here is a picture of the device. It's a KanexPro MPN-VGARLDH and I bought it at Fry's.

HDMI Scaler

I next tested the HDMI scaler. This is an Orei XD-600 ordered from Amazon for $25.25. Here's a photo, and another.

I had tested it at home on my LCD television before I left, so I have some pictures of that. The output was actually quite good.


The top two images are running at the 1080p upscale setting. The lower two are at the 720p upscale. Not much of a difference that I can see.

I did find that it stretches the image to 16:9. This is irreversible damage, in a literal sense, though it's debatable whether it matters. Remember that this image, at this point, has been upscaled from 320x200 to 640x400, again to 720x400 for reasons I can't identify*, potentially a third time by the laptop to 800x600, and then to either 1280x720 or 1920x1080. This is an obscene number of scaling operations to perform, and I'd still say the resulting image looks pretty good, so I think crushing it back to 4:3 in software is probably harmless - although I'll report once I've had a chance to test with actual video and a video editor.

I tested the HDMI converter with the VisionRGB and the XCapture-1 and in a nutshell the results were "blurrier than straight VGA, but acceptable." See here for more details. Here are a couple shots:

You'd think the output from the two capture cards would be completely identical. It's not, but it's damn near. The only difference is a slight variance in brightness, which frankly I just chalk up to the entire Windows video capture API being piped through the lens of analog capture, with brightness and contrast adjustments that make no sense for digital capturing. If you flip back and forth between the images it's pretty clear that there are no differences in sharpness or geometry, only the luminance of the picture.

The limiting factor here is clearly the HDMI converter, since the image out of the pure VGA input is much sharper and cleaner (and, of course, 4:3). There are probably better HDMI converters, but I didn't have one handy to test with. If I get access to a superior converter I will try to repeat these tests, and I will also repeat them when I can with my girlfriends Avermedia card and will put the results on the test results page.

This is more or less a close to this chapter. I now know that at least one cheap scaler can process video at this low resolution and high refresh rate, and I strongly suspect most scalers can since they're probably widely used to connect primary displays to machines with VGA-only output, and users would naturally desire to see boot-time messages with them.

At this point I have two options: get a better HDMI capture card and capture the 1080p image from the HDMI scaler, or get an expensive capture device that supports direct VGA. I will probably pick up a $60 HDMI capture box at Fry's and go ahead and do some test captures, and unless they're completely horrible I'll likely proceed with that approach.

Is a better image possible?

Maybe. The core issue is that the signal is analog. Capturing an analog signal is intrinsically imperfect. If you used an obscenely high quality, general-purpose DSP/ADC recording at well above the video Nyquist rate, you could capture the individual color & sync signals and put them back together into a "perfect" capture using custom software and lots of math.

Short of that approach, you're looking at compromises of one type or another due to hardware and software and processor limitations. There might be a capture card for extremely high end commercial purposes that can do better, but I don't know if there is, or if you could get one.

One possibility would be to get a Pentium or late 486 desktop machine and install a PCI card with DVI output. I doubt HDMI was ever available, but DVI probably was, and you could convert that to HDMI and capture it, which removes an analog conversion step and thus would impose less degradation. However, given our experiences above, I think you're going to find diminishing returns anyway, especially if you don't have the aforementioned industrial capture card.

I am not an expert; my sum experience of this is what I've written in this doc; YMMV.

The 720x400 Mystery

I'm at a loss to explain the 720x400 I'm getting out of this laptop. Everything I've done including VGA straight to a TV, VGA through an HDMI converter into a TV and VGA into two analog capture cards has reported 720x400@70Hz when in a DOS videogame. All my research online says these games are 320x200 line doubled to 640x480. I don't know what's causing this or why it would happen. I'm going to retest on other equipment as soon as I have an opportunity, but in the meantime if you have any input on a natural reason for this I'd love to hear it.

Gallery

For the time being, here's a picture of Terminal Velocity running on this machine a couple hours after I got it.

I also have a raw file listing of my DOS software folder for a sample of some of the stuff I'm trying to run. Some of this is bulk, dumped from software collections, and much of it has inscrutable naming, but I thought someone might find it interesting.

You might notice there's some porn in there. Did you know Internet Archive has ISOs of commercial, pressed porn CDs from the nineties? I didn't, and I was immediately fascinated when I found out. I'd like to run a project to explore and catalogue some of it to preserve this little-remembered field of erotic material, but I'm honestly not sure who would host explicit videos or whether I'm even OK with posting stills on a website I operate given the conservative hellhole the US is rapidly becoming.