Thursday, October 30, 2008

Getting DirectX to work properly on WinFLP without installing Windows Media Player

If you're like me, you're part of a minority that feels stuck with using Microsoft Windows as an operating system - yet goes to great lengths to avoid using Microsoft software whenever possible.

I've tried countless times to abandon Windows for the world of Linux, but each time I do I find there are things from the world of Windows that I am not quite willing to give up - and all of my attempts to use alternatives have left me with a solution that never quite worked out. (Trust me, as soon as Wine is versatile enough to let me use all of my Windows software without question - I will abandon Windows for good.)

Anyway, this isn't about getting Windows software to work with Linux - this is about getting Windows software to work with WinFLP (Windows Fundamentals for Legacy PCs.) The reason for WinFLP is simple enough: there's a lot of old-ass hardware out there, none of it has up-to-date operating system software on it and not many big shops can afford to replace thousands of 'legacy' PCs with brand new Core 2-whatevers. WinFLP is, for all intents and purposes, a stripped down version of Windows XP (Well, Windows for Embedded Devices, but who cares.) with only the bare minimum of what you need to set up that dragging old office machine with an up-to-date version of Windows complete with what you need to perform basic office tasks.

So, say you're attempting to avoid everything Microsoft but the operating system. You can tell the WinFLP setup not to install things like Internet Explorer and Windows Media Player. Without IE, Windows Update will break - but you can get your updates by turning on Automatic Updates and downloading everything else with another browser like Mozilla Firefox. You can avoid installing Windows Media Player and use an alternative such as VLC Media Player, BSPlayer, The KMPlayer or countless others.

An unintended side effect of not letting the WinFLP setup install Windows Media Player is that it won't install DirectX as well. This can be a pain in the ass, especially if you have an older presentation laptop that needs to run some graphical demonstration that requires DirectX. You can download and install DirectX 9 (The redistributable DirectX 9, because the net installer will fail on WinFLP), but you will still be missing vital DirectX 8 components that are needed for many DirectX applications.

Worse yet, you won't be able to install DirectX 8 from the redistributable or the SDK (if you can find it!) because they will all insist that Windows XP was supposed to come with DirectX 8 anyway and they won't allow you to sucessfully install it.

Here's a solution that worked for me.

You'll need a Windows XP install disc, any one should do (I used a copy of Retail with slipstreamed SP3, but for some reason your WinFLP disc will not work for this.) You'll also need a copy of DirectX 9 Uninstaller.

Put the Windows XP install disc in the drive (you may need to close the installer that autoruns when you insert the disc), extract directx-dx9unstaller to somewhere meaningful (I just put it on the desktop). Then run the UnDx9.bat script from location you unzipped it to.

It'll ask you for the location of your CD/DVD drive (for me, D:), and then it'll ask you for the location of the Windows XP files on the install disc (for me, D:\i386). The script will run with a few error messages at first, you'll be asked to press Enter to continue a couple of times and then it will go 'bing' with a message that the installation failed. Don't trip, it worked fine.

Take the disc out of the drive and reboot your computer if that sort of thing makes you feel good. Either way, your DirectX application should work now. If not you can download the DirectX 9 redistributable from Microsoft and install that. Either way, the dx9uninstaller script will have replaced the necessary dx8 files from your XP install cd.