How to switch Windows XP HAL _BACK_ from Standard PC to ACPI (the clean way)March 19, 2011
Awh man… a whole bunch of bad information on the internet about this. You don’t need to re-install the OS. Hell, you don’t even have to hack (and hence, un-sign) the hal.inf or machine.inf files. Using a little knowledge of the way Device Manager identifies devices (and hence, locks them into their supported hardware IDs), you can trick it into allowing you to “update” to the ACPI HAL and kernel.
Of course, on an unsupported system, this may just BSOD you forever, then you’ll be pretty much hosed since your ntoskrnl.exe, ntkrnlpa.exe, and hal.dll will have been replaced with ACPI versions – something “Last Known Good configuration” will not help you with. So BE ABSOLUTELY CERTAIN your system supports ACPI mode (e.g. “oh crap, I switched to Standard PC and now I can’t get out!”) before changing this.
Not even gonna give that “omg registry editing is dangerous” BS, because every geek should know their way around the registry. But this is another good place to mention: you could f’ing hose your system if you do this. I’m actually in the process of re-installing Windows on the PC I tried this on right now, because it’s a 266MHz Pentium II laptop with 64mb RAM, originally Win95, far from ACPI. The most recent BIOS update (in 2001) provided ACPI compatibility, so I figured I’d give it a try. Since it was installed with the Standard PC HAL (no ACPI), it installed all its hardware support under that key. So, it just BSOD-looped me (0x7b, curiously enough – couldn’t find the HDC driver?), and since 64mb isn’t enough to load MiniXP, and the HDD is too old to work with a USB-adapter, I’m screwed. Meh, I just installed it an hour ago anyway.
- Regedit. Browse to:
- Right click the 0000 key and choose “Permissions…”.
- Check the “Full Control” checkbox for “Everyone”. This allows you to edit this next value…
- Open the “HardwareID” value and change it from “e_isa_up” to “acpipic_up” (followed by one line break, the cursor should be on the line directly under “acpipic_up”).
- Open Device Manager, open the “Computer” key, right-click “Standard PC”, and select “Update Driver”.
- You’ll pick from a list, don’t search, answer accordingly.
- Select the ACPI entry, which will now be shown in the Compatible Hardware list (joy!), thanks to the reg-tweak.
- Once again, if you actually CONTINUE with this, and your system is NOT originally an ACPI system, it very well may make it unbootable.
- Select “Next” and let the new HAL install.
- Reboot, and you’re done! Enjoy your ability to select the multi-processor HAL once again if you were curiously poking around. Since hal.inf locks you into only “compatible” HALs, you can now update again and select Multi-Processor PC if your system supports it, then you’ll have multi-cores again.
Hope this helps more people than it harms… please be careful with this. I’ll update this if that reinstall works and ACPI mode works after all… there might just be more stuff I need to tweak to make it work right. Not entirely clear on how the device-driver handling works… seems very strange that I would get a 0x7b BSOD instead of an ACPI-based BSOD… that tells me it’s not finding the HDC that it just booted with 10 minutes ago. That is, perhaps something is screwy with the hardware IDs it’s now detecting. I’ll look into it… but this should work for anyone that switched from ACPI to Standard PC and now needs a way back 😉