Building DOS gaming PCs

Building DOS gaming PCs

The ultimate DOS gaming PC is a topic that I’ve seen come up in forums frequently, and that I’ve been asked directly a number of times. I guess since I published advice on running DOS games on Windows PCs on two continents, people figured I knew something about that. I guess I fooled them!

The trouble is that no single PC can really be the “ultimate” DOS game machine. Well, not if your goal is to be able to optimally run everything from early 1980s titles designed for the original IBM PC up to the last DOS version of Quake. I learned that the hard way in 1995 or 1996, even before Quake existed. Read more

The Post-Dispatch may be giving the wrong idea about the dollar value of vintage computers

Articles like Top 10 collectibles for value, from the Post-Dispatch this week, frequently make me nervous, mostly because of statements like this one:

[D]id you know that computer parts can bring home cash, too?

Statements like that tend to get people’s hopes up way too high. I find the timing interesting though, seeing as a TRS-80 Model 1 sold at a St. Louis estate sale this past weekend. The estate seller’s reaction? “Normally you can’t give that stuff away.”

Read more

Games would be just what Linux needed

Valve is intending to develop for Linux, as an insurance policy against Windows 8. I think that will lead to a self-fulfilling prophecy. If more games are available for Linux, demand for Linux will increase, along with market share.

There’s historical precedence for this. Read more

How to improve your laptop\’s speed

Yes, it’s possible to improve the performance of an aging laptop. What’s better is that there are at least three things you can do that won’t cost any money. And while there’s a lot less under the hood of a laptop that you can replace when compared to a desktop, there are two (sometimes three) hardware upgrades you can make that can make a big difference.Disable the modem if you don’t use it. Many, if not most modems have Winmodems inside rather than hardware modems to cut costs and save battery power. But when you’re not using that modem, its device drivers are hogging memory and they could even be stealing precious CPU cycles. Right-click My Computer, hit Properties, click Hardware, then click Device Manager. Expand the part that says Modems, then right-click on your modem and select Disable.

Disable any other hardware you don’t use. If you don’t use your laptop’s serial and parallel ports, disable them in your BIOS. The speed difference may or may not make a difference depending on the age of your laptop, but if you’re trying to squeeze every last bit of speed from it, this can help.

Disabling your sound card if you don’t use it usually makes a noticeable difference, regardless of your laptop’s age. The sound hardware on most laptops is CPU-intensive.

Experiment with your display’s color depth. Usually you don’t want to change the resolution on a laptop, but you can change color depth to a lower setting and see if it helps. Paradoxically, picking the lowest setting doesn’t always yield the highest speed. And sometimes, depending on the video chipset, the fastest setting is the highest one. Still, it’s usually worth spending 30 minutes experimenting.

Max out your memory. With any laptop, you want to be hitting the swap file (virtual memory) as little as possible. Laptop hard drives are slower than their desktop equivalents–5400 RPM drives are pretty much impossible to buy on the desktop anymore, but a 5400 RPM disk is a high-end drive in laptop land–so the performance hit with virtual memory is more painful.

So the easiest upgrade you can make for an aging laptop is to yank out whatever replaceable memory is inside and install the largest modules that will work in their place. Be sure to check compatibility, as many laptops are picky about memory size and/or speed. Buying from a place like Crucial that guarantees compatibility is a good bet.

If the laptop is so old that Crucial doesn’t stock memory for it, or if the memory is just prohibitively expensive due to obsolesence, there’s always the secondhand market (Ebay and the like), but check the seller’s return policy, and always buy brand-name memory such as Crucial or Kingston. Generic memory very frequently causes problems. In 10 years of repairing, installing, and building computers, I’ve seen maybe 10 bad name-brand memory modules, total. When one of my clients or employers has used generic memory, at least 25% of it ended up failing on my watch. Some was dead on arrival, while some worked for a while but quickly developed problems.

I’m all for generics most of the time–I have generic oatmeal and off-brand coffee for breakfast, wash my hair with generic shampoo, I brushed my teeth with generic toothpaste this morning, I’m wearing private-label pants as I write, I put generic mustard on my sandwiches, and when I have a headache I take generic ibuprofen–but generic computer memory is a waste of money.

Upgrade the hard drive. Boot times and the time it takes to launch applications software greatly affects how we perceive a computer’s speed. Each generation of hard drive generally is much faster than the last, so replacing a hard drive in an aging laptop can give a huge boost.

Hard drive speed is more complicated than just buying the drive with the fastest RPM. Even buying the drive with the fastest RPM, lowest seek time, and biggest cache doesn’t necessarily always yield the fastest drive, but it will get you close. Since anything close to the top of the performance curve is likely to saturate the IDE bus at its peak speed in an aging laptop, that’s good enough when you’re buying an upgrade.

One caveat is that a lot of BIOSes on older laptops won’t recognize a monster hard drive. A rough rule of thumb is that anything from 1999-2000 or older will max out at 32 GB, and laptops from 1997 or so will max out at around 8 GB. Do a Google search on your model of laptop and words like “hard drive” and “bios limitation” to see the largest drive your laptop will support. Be sure to search Google Groups in addition to the Web. Sometimes you can get a BIOS upgrade to support larger drives, but often you cannot.

What happens when you install a drive your system can’t handle can be unpredictable. Sometimes a 40-gig drive will just show up as a 32-gig drive. Other times the system won’t boot at all. So it pays to do some research first.

CPU upgrades. These can be dicey on a laptop–sometimes the CPU is soldered to the board, and sometimes it’s not very accessible. Even when you can get to the CPU, mobile CPUs cost more than their desktop equivalents and are harder to find. Still, sometimes it’s possible to replace a CPU in a laptop. If you have an adventurous spirit and lots of hardware know-how, it might be worth searching Google with the model of your laptop and the words “CPU upgrade.” Again, search Google Groups in addition to the Web.

Dvorak’s PC Magazine Linux column: Crazy or Clueless? Clueless.

Linux zealots are arguing over whether Dvorak‘s latest in PC Magazine is stupid or crazy.

I won’t call it stupid. But it’s ignorant.

Linux doesn’t need Windows’ plug and play layer. When it comes to low-level devices, like SCSI and IDE chipsets, network cards, and stuff like that, Linux actually puts Windows to shame. I can take a hard drive out of a Linux box, put it in a completely different machine–different NIC, different SCSI card, everything–and have it up and responding on the network in five minutes flat.

Now, sound cards can sometimes give Linux some troubles. But those devices have historically been problematic under every OS. I was pretty sure I had a five-year-old war story about my battles with an Avance Logic sound card under Windows here somewhere, but maybe that was on my first site. Some cards won’t work in Linux without divine intervention. Others won’t work in Windows without said intervention. It’s irritating when it happens, but it happens. It doesn’t mean the operating system is worthless, but it might mean the card is.

Video is sometimes a headache. But that’s not a problem with the Linux kernel. That’s the XFree86 or the X.org guys, depending on the distribution. And this is where Dvorak’s argument falls apart. You see, what Dvorak is calling a “video driver” looks a lot more like an application than a driver, on the system level.

You need more than a driver to get a GUI. You need an API. Plugging the Windows drivers into the Linux kernel doesn’t give you the X Window API. I suppose Microsoft could provide the Windows API, but what good would that do? None of the graphical Linux software would run on it. Microsoft would have to write its own X server. They could do it–others have–but what’s the point? Where’s the benefit? It’s a lot more work than just kludging the Windows Plug and Play layer to run with the Linux kernel.

So, basically, Dvorak’s editorial proves he doesn’t really know how Linux is put together, on the system level. It’s nice theory for CIOs to talk about while they wait for their turn at the tee on the golf course. But it won’t play out in the real world, because it’s just not that easy.

Leave your DIY PCs at home

This is a response to the eWeek editorial Bring DIY Systems to Work. Nice theory. Unfortunately, lab theory and the real world don’t always mesh.

I like building PCs. I built my first PC in early 1994, back when everything was on a separate card and you had to set interrupts and DMA channels using jumpers and DIP switches and in most cases you had to tell the BIOS exactly what size drive was in it–it wouldn’t detect anything for you. I built my main PC at home myself. I built my secondary and tertiary PCs at home myself too. And my girlfriend’s PC, and my mom’s PC, and my sister’s PC.

Get the idea?For the first couple of years of my career, I did DIY at work. It made sense then. IBM was selling us one-size-fits-all PCs with a lot more capability than most secretaries needed. As this was a state university, our budget was being cut, and it was 1998 and the PC on most people’s desk was still a 486–sometimes the crippled IBM 486SLC2 which was really just a 386SX with the 486 instruction set added, clock doubled to 66 MHz and given a supersized L1 cache, but with a 16 megabyte address space–so we were stuck.

My proposal was that since we couldn’t afford $1,500 PCs for everyone, we build $500 PCs. I’d build $500 PCs by cutting corners where appropriate. In my estimation, there was no reason for a secretary to have a sound card. Or a fancy video card. So I’d skip the sound card, buy the cheapest PCI video card I could find that still had some GUI acceleration, drop in an AMD or Cyrix CPU instead of a Pentium–these computers were for running Word, not Quake–and, since this was business use and we wanted the computers to last as long as possible, I’d splurge on the hard drive, buying the fastest model I could find and stay within budget.

At the time, this made all kinds of sense. Emachines didn’t exist yet, so there was a whole lot of nothin’ in the sub-$500 space. The computers made fantastic productivity boxes but lousy game systems. We wouldn’t have to worry about people loading games illegally on the systems–chances were the games wouldn’t install anyway, and if they would they’d run so poorly no one would bother.

Then we learned the downside the hard way. Support was all us. If a component failed, we had to find a spare to get the system back up and running, ship it off, convince the vendor it was bad, who might replace it, or they might refer us to the manufacturer, who would want to know why we thought it was bad and might want us to run some tests. In a home environment where you have two PCs, this is a minor hassle. In a business environment where you have a few hundred PCs, you’re going to have some failures–even the big boys have them–and it might take half an FTE just to take care of this stuff.

Unfortunately, we didn’t really have the budget to keep much in the way of spare parts. An awful lot of components from the old 486s ended up getting recycled, even though they had no business being recycled. But when you have a dead hard drive and nothing but a 500-meg drive to replace it, what do you do?

I put it in and listened to a lot of complaints.

Overall I don’t regret it. At the time it was the only way to accomplish what we needed to accomplish.

Times changed quickly, however. The $1,000 PC existed in 1998. Late in 1998, eMachines came along and rocked everyone’s world. Those early eMachines were underpowered, but they launched a price war. Today, you can get a business PC for what would cost to build it. If you buy in any kind of quantity, you can usually get it cheaper. You get to deal with one vendor instead of five (assuming the best-case scenario of a system consisting of an integrated motherboard, memory, hard drive, case, and monitor). And when a computer built by someone else breaks, some of the blame goes to you and some of it goes to the company who built it. Having had it both ways, I like to be able to share the blame.

Additionally, the corners I cut in 1998 can’t really be cut anymore. Integrated motherboards with video, sound, networking, and basically everything you need exist today, and they cost 50 bucks. AMD and Intel sell cheap CPUs and VIA sells really slow and cool-running CPUs. In 1998, AMD, Cyrix, and IDT (WinChip) were all willing to sell cheap CPUs, and a fourth company, Rise, was going to release one as well. (If Rise ever did release its cheap CPU, I never saw one. But the threat was there.)

By building your own, you might be able to save 50 bucks. But you’ll spend more than 50 bucks in labor to put the thing together and burn it in.

As far as the suggestion of using DIY servers, forget it. There is no benefit to upgrading a server the way you would a desktop PC. In anything bigger than a small business, people howl when you take the server down to patch Internet Exploiter. Do you think they’ll let you take it down to replace a motherboard? No way.

Would you do it anyway? No. We still have a couple of servers from 1996 running. They’re slow, but they’re still getting the job done.

I agree with the author that for the price of a service contract you can keep a lot of spare parts. But that means you have to have a place to store them. You also really need to verify that they work before you store them, because when a server is down, the replacement part needs to work. I’ve had three hardware failures on servers within the past week. (It sounds like a lot, but when you have 125 of them and can’t really remember when the last one was, that’s not nearly as bad.) It’s worth the money on that service contract for it to have been someone else’s problem.

Besides, only really cheap servers use desktop components. When you can find server-grade motherboards, they aren’t cheap. You might save 50 bucks by building your own server. But again, you’ll spend 50 bucks in labor.

Even when we were building our own PCs, we still bought our servers from IBM. I remember one horrible weekend when one of the servers failed. Between IBM’s mighty resources and ours, we were able to get it back up and going over the course of a weekend. Without IBM behind us, it might have taken us a week. A very long week.

If we’d ever had any thoughts of building our own servers, they evaporated during that grueling 72-hour time frame.

If building PCs is something you enjoy, great. Make it your hobby. Unless your business only has a dozen or two PCs in it, you don’t have time to be doing it at work too.

Advice for setting up a computer lab

Two weekends ago, I headed back up to Bethlehem Lutheran Church to rebuild the computer lab I had set up for them a few years ago. Built on P3-based Compaq Deskpros and Windows 98, it had held up, but was desperately in need of repair.

The vision of this project was to set up a lab in a declining neighborhood, where kids could come to do their homework and adults could come to learn computer skills. The lab is run under adult supervision, and outsiders with teaching and/or training experience come in occasionally to teach computer literacy classes.

Ultimately, I want this project to produce some sysadmins in North St. Louis. Years ago, when this was in the planning stage, I told Pastor John Schmidtke that I wanted to see some Mercedeses and BMWs in that neighborhood, purchased with salaries earned from skills picked up in that lab.

Well, that hasn’t happened yet. But there’s still time. In the meantime, how about if I talk about what I’ve learned from three years of operation?Fancy computers not necessary

These were midrange machines when they were new. The lab cost some $10,000 to build, including materials to renovate the room. A contractor who attends my church renovated the room to my specifications. For what it’s worth, I told him there would be about 10 computers there, and the keyboards needed to sit so that a five-foot person’s elbows would make a right angle while seated. He built an around-the-room desk to hold the computers and bored out a couple of holes at each station for the keyboards.

Back to the computers. Today those computers would be worth about $100 apiece. That’s OK–they’re fine for word processing and e-mail, casual web browsing, and educational games, which was the goal. They were fine then and they’re fine now.

Any business with a philanthropic mindset could duplicate what we did here with a dozen outmoded office computers. A Pentium II with 64 MB of RAM can run Windows 95 or 98 adequately. There’s no point in messing with anything lower than that, since P2s sell for 50 bucks a pop these days. One thing I will say: The quality of the keyboards, mice, and monitors is much more important than the computers themselves. If people are going to be typing, they need decent monitors, a good mouse, and a keyboard that doesn’t feel like oatmeal. So if you’re working with a budget, plan on spending the most on monitors and optical mice.

Adequate power outlets completely necessary

There was only one hardware failure in this lab’s three years. One computer wouldn’t run, no matter what I did. It wouldn’t even power up.

Well, speaking as someone with a decade of professional experience in sales and service of computers, I’m embarrassed to say the computer that failed wasn’t plugged in. It looked like it was plugged in. But with the electrical outlets in a mismash and the cables all over the place, it wasn’t. Why didn’t I try another power cable and discover the problem? I have no excuse.

I suspect someone needed an outlet for something–be it speakers or a hair dryer, you never know–unplugged something at random, then didn’t plug it back in when finished. Worse yet, the business end of the cable ended up in a box under the desk, so everything looked fine. The result was a computer that didn’t run for about two years. I didn’t even find the stray end of the cable until I traced several other cables.

So provide as many outlets as your breaker box can handle. Provide extras. People will bring in other things they want to plug in. Three outlets per seat (computer, monitor, and speakers) is inadequate. To be safe, plan on four.

Create system images

You’ll have to reload the system no matter what you do. Lockdown software can be counted on to break things for the innocent and at best only slow down the people who are going to circumvent it. When the goal is for people to learn how things work, they need to be at least somewhat free to experiment. So make images of a working system with all software installed. Train someone to re-image the system. Then don’t be shy about re-imaging. Do it once a week or any time something goes wrong with a computer. If you can’t afford Norton Ghost or PowerQuest DriveImage, a freeware alternative called Savepart exists. Use it. Come to think of it, use that, and spend the money you’d spend on Ghost or DriveImage on better keyboards or mice.

Use identical hardware

System images don’t save you much trouble if your hardware is all different. Your image probably won’t work. Use systems that are as similar as possible: same motherboard, same video card, same sound card (if not on the motherboard), same network card. Put the cards in the same slots on each machine.

Frequently you can get away with not being that careful, but trust me, you don’t want the one time in a thousand that it matters to come and bite you.

Match your hardware and operating system

Sometimes it’s not possible to use completely identical hardware. In those instances, make sure any dissimilar hardware is recognized by the OS without loading any drivers. For example, this lab has a mix of Netgear and Intel network cards. The Netgear isn’t recognized by Windows but the Intel is. So I made the image for a Netgear, and when the system comes up with an Intel, it handles the situation gracefully.

Do the same thing for the sound cards and video cards.

Don’t ask too much of your systems

Yes, Windows XP will install and boot on a Pentium II with 64 MB of RAM. But there is absolutely no benefit to it. XP wants lots of memory and CPU power, and when it doesn’t get it, it’s a slow pig. Realistically, a P2 with 64 megs ought to be running Windows 98. Don’t even try 2000 or XP unless you have P3s faster than 500 MHz with 256 MB of RAM.

While there are subtle differences between versions, for the most part Windows is Windows. If someone can use Windows 98 and Office 97, it’s easy to adjust to the current versions. Don’t be afraid of running back-level versions.

Get discounted charity/educational software

You don’t have to pay $200 for Windows and $500 for Office to build a computer lab for a charity. I don’t know what charity or educational prices are right now, but it’s a fraction of that. The rule of thumb is this: If you don’t pay sales tax, you don’t have to pay full price for software either.

Most computer stores can get you information on charity pricing. Support your local computer store. You might need it someday. Who knows–the owner may be able to get you a line on some things you need.

And if worse comes to worse, run Linux. That was my original plan, but Pastor Schmidtke wanted to use what local businesses were using. That’s a better plan, but if you can’t afford software, Linux works nicely and is more than adequate for things like word processing and web browsing.

Just do it. That’s about all else I can say. The lab in your head isn’t doing anyone a bit of good. If it’s worth doing, it’s worth doing badly. If you’ve got a vision for this, get what you can to get the lab up and running. You can always come back and add newer or more computers later.

A coupla MP3 jukebox solutions

I’ve been playing with MP3 jukebox solutions. Grind! looks perfect, except for the life of me I can’t get it to work, which puts a bit of a damper on things. It acts like it’s playing, but the sound never comes out of the sound card. The sound card works fine. The www-data account (Apache’s user) has access to the sound card. The MP3 player software runs as www-data. It works fine when I log in and su into the www-data account. But when I hit the web page to control it, the music never plays.
So I’m about to give up for a while and give Gina a look. Gina’s got lots of cool features. But I’d rather have a computer that plays the music rather than streaming it–I want to hook up a headless computer to my stereo. I suppose I could put an MP3 server in my basement and put a headless computer on my stereo and control it remotely using remote X or VNC or something. It doesn’t do scoring of music the way Grind! does, but I think I can hack that in. You know, create another database of songs, assign a score to each, then when it picks a track, discard it if its score is zero, and when it picks one track, pick two instead, play the higher-scored track and put the other one back in the queue (unless it’s a zero, in which case you discard it). I think I can code that. And that way I’ll hear U2’s “I Will Follow” a lot more frequently than U2’s “Mysterious Ways” (which, don’t get me wrong, was a good song… THE FIRST 3 BILLION TIMES I HEARD IT).

And hey, maybe I can figure out how to hack Gina to play the song instead of streaming it. Because it does lots of other cool stuff. Click the link, check it out.

I wrote up a bunch of stuff today but technical difficulties prevent me from posting it. I’ll post tomorrow.

Who wants to build an MP3 jukebox when you can go shopping?

I was going to cannibalize a computer to turn into a Linux-based MP3 jukebox–I figure get the OS up and going on it and figure out later what software to run on it. It’ll take me a while to get the sound card and wireless NIC working in it, I’m sure. Especially in Debian. If it turns out to be too much of a struggle, I can cave and run Red Hat or SuSE on it since they’re likely to just autodetect the stuff. And then I’ll be a Linux wimp, yeah, but hey, I’ll be a Linux wimp with a really cool sound system.
I ended up going to the store. A couple of stores. I needed vitamins and shampoo and fabric softener. It was really weird hearing “A Letter to Elise” by The Cure as background muzak in Kmart. Not that I was complaining.

I also wanted that Plumb CD I asked about yesterday. I could have saved some money by ordering it online, but I was impatient. It had a once-in-a-lifetime song on it and I wanted it. It was a longshot but I looked. Nope, no Plumb at Kmart. Just Newsboys and DC Talk–the kind of stuff my post-college girlfriend Rachel tried to get me into in 1997. I know a lot of people like them but I just couldn’t get into them.

I guess for me it was a good sign. As far as secular music goes, if it’s sold at Kmart I probably don’t like it. So I should probably expect the same for contemporary Christian music too.

Best Bait-n-Switch had it. So I got it, hopped in the car, put it in the CD player, and turned the volume up a bit. Maybe it’s just how my brain is wired, or what’s been on my mind lately, but “Real” just resonates. To me, it’s an instant classic, like “Day After Day” by Badfinger or “If You Leave” by OMD or “Love Will Tear Us Apart” by Joy Division.

I’d tell you about the rest of the album but I’ve had that one song on repeat play for most of the night. I think the last time I did that was six years ago with “Want” by The Cure–which turned out to be a smart move, since there wasn’t much else listenable on that particular record.