After some frustration, I finally managed to wrangle Vista.
My previous post was a horrific tale of trying to take things cautiously and it winding up being a huge waste of time. However, I needed to have Windows Vista installed and running the new Aero glass theme. What I did not mention is that I had to take the occasional break to cool off, and I spent some of this time installing Vista in Virtual PC on my development system. I felt (correctly) that I had no real chance of getting Aero there, but there was a significant period of time during which the operating system got further in Virtual PC than on its own system and hard drive. This told me that Vista would work, but something was misconfigured.
Without going into too many details, suffice it to say that I figured out that the problem was with ACPI (Advanced Configuration and Power Interface) support. For those not familiar with ACPI, it is the way that Windows can turn off a computer without somebody pressing the power button, or that two expansion boards can fight over the same hardware resources and both fail to work properly, although the latter is not exactly the phrasing that Intel uses in the specification.
Anyway, it turns out that Windows Vista requires ACPI, which this test system fully supports. However, for the purposes of diagnosing a hardware problem, Windows 2000 had been installed with ACPI deliberately disabled. (This is something that cannot be changed in Windows without a new system kernel.) The XP upgrade helpfully installed its non-ACPI kernel, and then Vista apparently used this to determine (incorrectly) that the system did not support ACPI. Of course, the huge piece of bloatware that I had run to verify that the system was compatible with Vista did not bother to identify the lack of ACPI support (or, alternatively, worked correctly but failed to acknowledge this bug in Vista).
So, what have we learned? In order to use Vista, one must agree to give Microsoft complete control of ones system, both software and hardware. Cynical, perhaps, but reasonably accurate.
Problem solved, so we move on to the next one. I reformatted the drive and installed Microsoft Windows Vista Ultimate from scratch, and this time it actually worked (at least to the point of being installed). Only one monitor was working, and I had neither sound nor network functionality. Fortunately, I had the foresight to have already downloaded the (huge) driver files from a working system, but since the network card was a generic 10/100 one with a driver from Windows XP (i.e., supplied by Microsoft), it never occurred to me that I would need to get that, too.
I installed the latest drivers for the non-working graphics card, but it made no difference, so I then installed the latest drivers for the working video card, hoping that it would help. Nope, I only had one working screen. Oh, well, I only need one monitor to actually test, as long as it shows Aero. I moved on to installing the only Vista sound drivers for my card, which happened to still be in beta (even after RTM for the operating system). After some seemingly unnecessary reboots, I finally had sound, though I would later regret the driver “choice”.
A quick status review: Only one of two graphics cards was working, but I had audio. The network card was not working at all, and with no network card, it is really hard to search online for drivers.
On the video front, I did not see anything that appeared “glassy” to me, so I assumed that Aero was not turned on. I did the research and found out how to enable the Aero theme, running straight into one of the Vista interface failures. The screen on which one chooses the Aero settings simply does not appear if the theme is not selected and the Aero theme selection is simply absent if Vista determines that the system does not support it. It took a while to discover this combination of issues that violates one basic principle of good interface design: never hide user options, even when they are disabled.
Again, here I will edit out lots of diagnostics, research, and reboots. I learned that the Aero requirements demand 1G of RAM (in addition to fairly hefty video cards, which I have), and this test system only has 640M. Before I went out to purchase more memory, I tried a BIOS change, swapping the video card boot order between AGP and PCI and got a marginal improvement. The working card stopped functioning, but the non-functional card came to life. Better, I now had an Aero option (despite the “limited” memory) which, when enabled, actually worked.
On the networking front, I downloaded the latest drivers for my generic network card, which were (of course), not updated for Vista. Rather than just having older drivers, though, Vista just simply refused to install them at all. No Internet for you!
At the end of the day(s), at least I finally had Windows Vista on my test system, even if it was hampered somewhat. I was able to test our current products with Aero, verify and diagnose one particular graphics issue (caused by Aero), and identify a few program changes that would be necessary. The network testing would have to wait until another day, but we (thankfully) had no major problems. It was really helpful that we had already designed the games to support a limited user account on Windows XP.
It was finally time to make the minor updates for Vista compatibility.