fi, en, (sv, ja, hu, yi) | avatar by https://twitter.com/udonkimuchikaki


libera.chat, irc.sortix.org
nortti
microblog (that is, a blog with small entries)
microblog.ahti.space/nortti

the-doomed-posts-of-muteKi
@the-doomed-posts-of-muteKi

One of the more surprising aspects of old PC software from the DOS era is that if you ask people who specialize in it what kind of PC you should build to play it the answer you'd be most likely to get is simply this:

Don't.

The conventional wisdom, if you want to run old software, is "Use DOSBox". While this isn't 100% compatible with everything, it's a very good emulation tool for DOS games. Generally for more intense usage requirements, the conventional wisdom is otherwise a DOSBox fork like DOSBox-X (which can even run Windows 95 or 98!) or PCem (which is meant to more closely replicate specific period-correct hardware configurations from motherboard to graphics accelerators and sound cards, but uses some of the same backends that the DOSBox variants do).

This might be surprising to people who weren't around at the time, especially given that the sort of people who talk about retro computers obviously have their bread-and-butter be the result of experimenting with, explaining, and showing off old hardware. But I think some of you might have a good idea of why; I suspect this site's usership is fairly high on people who understand what "commodity fetishism" is, and a lot of the ways people talk about old computers is like that. I am all in favor of people continuing to find ways to make use of old hardware, and treat history as more than a large pile of silicon waste, but ultimately there is a reason that technology progressed on. Seeking an "authentic" experience with old hardware has to come with the fact that different developers had very different ideas of how to use hardware, many of which were in contention with the hardware of the era and how it eventually developed. There is value in reference hardware for helping us to understand how best to experience old software (so we don't produce buggy software to replicate these experiences) but in general the future has brought us the experiences of the past with more flexibility, more convenience, and, often, just better quality in general.

I want to go in detail to these issues, and in this post I'm going to lay out a lot of what my retro gaming PC frustrations are. In future posts, I'll go into more depth about them and what sort of options, if any, we have to ameliorate the conflicts of past computers.


I'm going to speak specifically to the current setup I have with the computer I'm typing this on -- it's a Z440 workstation that's my main TV gaming PC, set up in my living room. While it's quite easy to interface this with my TV, which is a Samsung from Costco that has a shockingly paltry two HDMI ports and no other connecctions, this is not something that would be feasible for older hardware, for reasons that are partly very obvious and not-so obvious.

What are our goals with this machine? Let's list our primary goals here, based on how the question is posed:

  • We want hardware compatibility with as little emulation as possible
  • We want to run most notable software, at least games, from the DOS era. Let's say this is from 1985-1997 (launch of 386 CPU to last DOS software), or we start at 1987 (launch of adlib sound card)
  • We want to run at least one then-contemporary version of Windows. 3.1 is the bare minimum, 98 is ideal. As far as I'm concerned, when I say "DOS machine" I really mean "this is a PC that runs a version of Windows that doesn't use the NT kernel", for the sake of things like usability, interface consistency, compatibility, stability, driver support, etc.

And here are some additional plans we have, or at least that would be my goal for this hardware:

  • We don't just want "compatible" hardware, we want good hardware that will let us play as much as possible, and not choke on the newer games
  • We want to be able to integer-scale graphics because we're using an LCD TV, and LCDs and graphics scaling gets ugly if we don't have this.
  • OK, we don't necessarily want 100% compatible hardware -- we want to be able to use modern peripherals as much as possible. USB support, HDMI (with digital audio) so we can connect to our TV, etc.
  • We actually do want to play some Windows games, not just DOS.

There are a bunch of issues that we face in actually handling this, and my blog is going to get into why they're issues and what, if we really want to go this route, need to accomplish to deal with them.

The first is one that a lot of people know. PC compatibility is a sliding window. The joke about PC culture in the era that is at the upper end of what we're targeting is that hardware standards were changing so rapidly that your computer was obsolete the minute that you signed the purchase agreement. One of the reasons internet adoption went up in the mid-90s was probably because a lot of manufacturers sold the hardware as a loss leader for subscription internet services a la AOL and CompuServe, which sometimes included free upgrades, similar to how phone manufacturers give you free phones every few years. This obsolence issue cuts compatibility both ways, especially for DOS.

More specifically, our issue is that DOS does not provide a consistent driver interface for hardware. Sure, almost any Pentium system with graphics and sound will provide a consistent experience with Windows 98, but that's not as much of a guarantee with DOS. Choices of hardware can and will affect our compatibility options, both with software and, potentially, with other hardware. A consistent interface provided by a modern operating system to do basic things like "graphics" and "sound" is not what DOS can do; if you're running an Intel or AMD CPU right now, you can run DOS (FreeDOS is a native DOS clone that can boot off a USB drive, if you want to try this yourself) effectively natively using your CPU's compatibility modes, but you won't be able to use your sound or graphics hardware the way you'd certainly want to -- no change of Windows 3.1 running, for example.

Of course, if you were to do that, the games that would play without any issue would likely be from before the era of adlib sound, VGA graphics, and possibly even the 386 processor. These aren't necessarily games that you'd find compelling in relation to what's available in the modern era, with sub-par graphics and sound. But even then there's a potentially huge issue, and one that even some 90s PC motherboards were designed around: Many DOS games are sensitive to CPU speed. This is what "turbo" switches on some PC cases were for; they could set the computer to run in a low-speed state to make some older software compatible, generally meant to replicate the speed of an 8086 or 8088 CPU, but sometimes this speed reduction was configurable. Many later CPU cases with these switches had a little 2-character 8 segment display to show what the speed of the CPU was (the fact that the original design of the turbo switch was to slow the CPU when enabled, a counterintuitive choice for many people, made this useful just to verify that your CPU was as fast as it could be), and could be configured in the BIOS to reduce the CPU to specific speeds rather than just matching what was by that point a very out-of-date CPU.

And there's another issue that I can't segue into directly but is just as relevant: a lot of period-correct hardware may not even work. That said, newer hardware may use compatibility modes, or some hardware may support the use of an adapter. That said, diagnosing hardware failures is a hell and a half, and I'm not going to talk about anything involving moving parts (mainly certain kinds of storage drives) without going into detail about these issues when they pop up, and what kind of options we have to work around them.


You must log in to comment.