Here we go again. The last time I had to wipe and rebuild my main desktop system was when I wrote about the motherboard hokey pokey, which was less than a year ago in August, 2003. Compared to earlier versions of Windows, my system lasted for a relatively long time without needing a reinstall. But as is inevitable, given the garbage Microsoft creates, my good luck recently ran out. A small problem snowballed into bizarre and inexplicable behavior until eventually Windows XP screwed itself thoroughly, as it is (sadly) wont to do.
It all started when I tried to play an audio CD. The volume was somewhat low so I pressed Win+V, the key combination on my system that opens the Creative Labs surround sound mixer panel. I was surprised when the applet didn't open. I pressed Win+V a few more times but it made no difference. I figured maybe something had gone temporarily funky with my system, but rebooting didn't solve the problem.
"Isn't that odd?", I thought to myself. Further investigation showed that none of the other utilities for my sound card worked either. I couldn't adjust volumes, configure EAX settings or effects, configure speakers, etc. Given that my computer's audio is used for playing MP3s, watching DVDs in full surround sound, playing EAX-enabled games, and even composing orchestral music, it's kind of important to be able to do those things.
After spending roughly an hour trying every imaginable tweak, I decided it was time to cut my losses and uninstall/reinstall the sound card drivers. After all, that would have to fix the problem, right? Unfortunately, it was not to be. The uninstallation routine froze near the end of the process, pegging the CPU at 100%, until it came back with some kind of weird error about a failed remote procedure call. Am I missing something here, folks? When uninstalling non-networked software from my local machine, why should the installer be making remote procedure calls at all?! Anyone?
Whatever the case , the installer was no longer listed in the control panel's "Add or Remove Programs" applet, and it couldn't be run directly either, so I had to delete things manually. I uninstalled the card from device manager, powered down, removed the card, and rebooted to make sure none of the drivers were loaded. I then had to delete the folders in which the various files and utilities were stored. I had to search painstakingly through the registry for every reference to those folders and my card. I had to wander through the Windows\Inf folder to delete the files that would reinstall the drivers automatically when next I inserted the card. And, of course, I had to delete the drivers themselves from the various Windows XP system folders. Gosh was that all a load of fun.
As a brief aside, does anyone else remember the so-called "bad old days" of DOS and Windows 3.x? With the introduction of Windows 95, Microsoft moved from using *.ini files to the registry model because this was supposed to make things safer and easier for users. Remember that? Honestly, I sometimes think Microsoft refers all the important design questions to The Official Committee for Making Stupid Decisions, because they make the dumbest imaginable choices. Seriously, folks, what makes more sense: a text file that is easily edited or a proprietary file that can render the system irrevocably unbootable if a single byte is corrupted?
The current mess illustrates my point nicely. In the "bad old days", I might have had to delete a whole directory and maybe, just maybe, edit a text file (queue groans and fearful shrieking) to uninstall things manually. Now that Microsoft has made things "better", I have to search from hell to breakfast to uninstall anything manually. Even the simplest programs spew crap all over the hard drive and registry, making them difficult if not impossible to remove manually. I realize that I'm not supposed to have to do that, mind you, but uninstallation routines break all the time—especially routines for drivers, which are the most critical of all (and most difficult to fix).
At any rate, after tromping through Windows XP's innards for thirty minutes or so I was pretty confident I had erased the offending drivers from my system. So I reinstalled from my original CD, applied the main driver patch, and applied the secondary driver patch. After a ton of reboots and a whole lot of misery—I should note that the driver installation routine failed the first time at roughly 95% complete, which meant that I got to do a second, manual uninstall—I finally had my sound drivers reinstalled and working.
And this time all seemed good. Sure enough, I could mess with the speakers, change the EAX stuff, twiddle the mixer, and do everything else I need to be able to do with my audio hardware/software. I congratulated myself, all too prematurely as one will soon see, and started packing up all the CDs and other crap that I had unpacked to make things work again. It wasn't until the next time I rebooted the PC a few minutes later that I realized something was still wrong.
The next time I rebooted, my PC took far longer than normal to finish starting. My machine typically takes between twenty and thirty seconds to get from the Windows XP boot menu to my desktop. It was now taking closer to three minutes! The first thing I did, once it finally finished, was to check the event log. As I suspected it was filled with all kinds of screwy system errors. There were weird errors about bad data on the system bus, the DCOM system wasn't starting up, and one of the performance monitoring libraries was timing out and failing to load.
Those seemed indicative of a hardware problem to me, so I checked device manager. Sure enough, I discovered a yellow exclamation point next to the "Creative Game Port" device. My Audigy 2 Platinum card has a joystick port, much like every other sound card in existence, and I use it with my Saitek Cyborg 3D Digital joystick to play various games (e.g., Battlefield 1942). That port had worked just fine since the day I first installed the sound card, but it wasn't working anymore. Device manager showed a "Code 12" error, which means that the device couldn't get any of the system resources it requires to operate.
I checked to make sure there was no conflict with the game port on the motherboard and there wasn't. I checked to make sure that the default I/O ports were all available and they were. I went through all of the troubleshooting steps I could find, but none of them made any difference. I don't know why, but for some reason the game port had simply stopped working. I found a few similar complaints posted on various hardware-oriented web sites, but I didn't find any clear answers.
Apparently, though, there is some kind of compatibility problem between Creative Labs sound cards and the nForce2 line of motherboard chipsets. I'm clearly not the only one who has this problem. Still, I didn't figure it was a big deal. After all, my motherboard has a game port too. I disabled the sound card's game port in device manager, rebooted, enabled the motherboard's game port in the system BIOS, and headed into Windows XP. This time the boot process was nice and speedy, and I soon found myself staring at a new "Standard Game Port" entry in device manager.
Unfortunately, nothing I did would make it work. Every time I tried to add my joystick, using the control panel's "Game Controllers" applet, I was told that there was some kind of configuration error with the port. I tried uninstalling and reinstalling the ports, updating drivers, and everything else I could think to do. But nothing fixed the error. This was unacceptable; I'm a gamer; I need that joystick.
After reading a bit more about the problem on the web, I arrived at a possible solution. The more informative posts seemed to agree that the problem had something to do with Windows XP's inability to allocate IRQ lines and I/O ports properly. But of course, in another paean to being user friendly, Windows XP doesn't allow users to tweak such resources manually.
To be clear, Windows XP does allow tweaking to a limited degree for devices that already have resources! But there's nothing one can do about a device that's trying to use the wrong stuff in the first place. Again, in the "bad old days" I might actually have had to open my SYSTEM.INI file in a text editor and change a line or two! Boy, I sure am glad Microsoft is committed to making my life "easier". I can't imagine how awful it would be to have to edit a text file!
Still, I did think of a way to force Windows XP to reallocate everything: I could use my original setup CD to repair the existing installation. Part of the repair process, after all, is to clear the hardware list completely and re-detect it all. That's how I would finally exorcise this demon. Surely the game port on my sound card would work again after the repair process was complete; it had previously functioned just fine for years.
Unfortunately, there was one simple fact that I had neglected to consider: as operating systems go, Windows XP is a still-steaming pile of dung! Don't get me wrong, I've praised Windows XP myself on several occasions as being the best operating system Microsoft has crafted to date. But that's a bit like congratulating someone for being the greatest classical ballerina in all of Toledo. Windows XP is light years ahead of its predecessors, but this is largely because its predecessors weren't even operating systems: they were jokes that sometimes managed to run programs—at least for a while until the whole Windows house of cards came crashing down.
You see, the repair process managed to come up with an error when it was about 70% finished. It said something particularly unilluminating about how it couldn't find a procedure entry point in MSART.DLL. The only option I was given was to click OK. Clicking OK merely dismissed the error for a fraction of a second before it appeared again. Hundreds of OK-button clicks later I was still stuck at the same place. So I did the only thing I could do: I rebooted, trusting in the recovery facility of the setup process to roll back its changes.
No doubt my reader already sees it coming. I was still neglecting that one simple fact, wasn't I? Sure enough, the repair process managed to screw the existing Windows XP installation completely, rendering it a non-functional, still-steaming pile of dung. The system would boot, mind you, and it would even provide a comforting message about how setup would now continue, but then the screen would go black and the computer would reboot itself a few seconds later. Safe mode didn't help. The last known good configuration didn't help. The repair procedure was no longer available from within Windows XP setup. I was out of options.
re•pair v. tr. (rê•pâr´) |
To foul up beyond all recognition; to render completely broken and useless. The Windows XP repair function made the user curse Bill Gates and fantasize about killing him. |
I offer the above definition in the hope of clarifying Microsoft's use of language. I find that it makes a lot more sense of what I have observed when using the "repair" function of the Windows XP Professional setup. One should remember it before stupidly thinking that the "repair" function might actually fix something. That word just doesn't mean to Microsoft what it means to the rest of us.
And so the time had come to reinstall Windows XP completely, which of course includes reinstalling all of the dozens of software applications I own, hunting up CD keys, going through countless re-authorization procedures, and so forth. I'm honestly not sure what's more irritating: the fact that Windows XP regularly screws itself and needs to be reinstalled, or the fact that I get to spend hours upon end reinstalling things, when it does break, thanks to the stupidity that is the registry.
For those who think this is a trivial thing let me explain why it's so onerous. Just installing Windows XP takes about an hour. That's nothing. Getting all my drivers installed takes hours, largely because I have to reboot after virtually every installation routine finishes. Downloading and applying the bazillion patches and updates available from Microsoft's Windows Update site takes several more hours, particularly because so many of them have to be installed individually.
For example, the first thing I had to do upon getting Windows XP installed was get it connected to the network where all my other driver files were located. Yes, I could have burned them all on a CD, but it's easier simply to keep the network driver on a floppy. So, I installed the network driver and had to reboot. After rebooting I could configure my network connection which, contrary to how it's supposed to work, required another reboot. I could then browse my server's drives and start installing the other drivers.
The chipset drivers for my motherboard required a reboot. The RAID drivers required two reboots. The USB 2.0 drivers required a reboot. The video drivers required a reboot. The sound card drivers required three reboots. The drivers for my RME Multiface required a reboot. The drivers for my PodXT Pro required a reboot. And so it went for another dozen reboots until I had all my device drivers installed. It's bloody ridiculous that almost ten years after Windows 95 was released, the operating system for which Microsoft touted "dynamically loaded VxDs" as the solution to constant rebooting, I'm still forced to restart if I so much as sneeze near my system.
And then it got worse. I went to the Windows Update site and found almost fifty updates available for my machine, but naturally they couldn't all be installed at once. Instead I had to install Service Pack 1 by itself. A few reboots later and I could install DirectX by itself. A reboot later and I could install the latest Windows Media Player. A reboot later and I could install a large bunch of fixes. A few reboots later I could install more, and so forth. It took me roughly five hours from the time I was finished installing Windows XP until all my drivers were in place and the operating system was updated completely. That is so far beyond ridiculous I don't even have the words to describe it properly.
And those are just the basics! Once I've got those in place I'm then stuck reinstalling everything else. Microsoft Office, Adobe's Creative Suite, Macromedia's suite of web development tools, Microsoft Visual Studio and all the associated development tools, tons of utilities, and that's to say nothing of my music production software, games, and so forth. After a good fifteen or sixteen hours of work I'm back to having a system that's ready to go. I can't even count the number of hours that Windows has cost me over the years, but it's a really big number that only continues to grow.
More than a week later I'm finally back up and running. Predictably, Windows XP has grown noticeably slower to start and run with each application I've installed. I suppose I could go disable some of the services that run, prune the list of applications that launch on startup, and make use of a number of other performance tweaks as well. But after watching Windows XP screw itself completely, during a repair operation of all things, I'm not interested in doing much tweaking right now. I'll put up with the substandard performance because it's safer.
Incidentally, I should note that I never was able to get my sound card's (or any other) game port working. Unlike every other installation of Windows XP I've performed on this exact same hardware, this one refuses to configure the Creative Game Port device properly. For whatever moronic reason, it refuses to use the proper I/O ports. Nothing I've done has made one whit of difference, and I cannot for the life of me understand why the same device and driver that previously worked for years now refuses to work at all on a completely clean installation of Windows XP. But I've given up. It's easier to go buy a new, USB joystick than to wrestle with the joke that is Windows XP. If anyone knows how to fix this ridiculous problem, please let me know.
An obvious question that continues to ring in my mind above all others is this: why does Windows remain a still-steaming pile of dung after all these years? Why doesn't Microsoft spend some of their billions to make Windows XP more reliable, or at least simpler to fix and/or reinstall in light of how easily it breaks? They're the idiots who invented the black hole that is the registry in the first place; why can't they provide some way to reinstall Windows while preserving application settings, so that users don't have to spend a week reinstalling everything?
I know I'm not the only user who gets screwed so often by Microsoft's crappy coding; we just don't have any alternatives. Sure, I could buy a Mac, but I'd spend roughly twice as much for the machine in the first place and would then have to re-purchase much of my software, which is to say nothing of the many titles that just aren't available. I could also run Linux instead but that would be even worse; there simply isn't any way to run the majority of the applications I want to run on Linux.
We're all stuck in this same ridiculous boat. Next year will mark the twentieth anniversary of the initial Windows 1.x. It sure would be nice if Windows might someday become a product that isn't so broken in so many fundamental respects. What I wouldn't give for an operating system that doesn't destroy itself. Sheesh. Beg, borrow, or steal a clue, Microsoft, and ship an operating system that isn't a still-steaming pile of dung.
07/06/2004