Having enjoyed Morrowind, I figured I’d give Daggerfall a try. Was a nice idea, except for the fact it’s a really old DOS based game from the days long before 64 bit protected operating systems existed. So, the challenge was to get it working on my computer which currently only boots to XP-x64.
The first problem was that unlike regular XP, XP-x64 has no support for 16 bit code so trying to run a DOS program just gives you an error that the program wasn’t build for this CPU. Ok, I can deal with that. Download dosbox and try that out. Well, dosbox is a great program that happily emulates an x86 processor running DOS in a nice window that you can resize and run full screen if you want to. Unfortunately the performance isn’t great at all because it emulates the CPU entirely in software and so turned out to be too slow to run Daggerfall. This was a real shame because the support for audio and MIDI are amazing – things just work happily!
Performance issues? Maybe if I rebuild dosbox as a 64 bit application? Grab the source code from Sourceforge and open it up in Visual Studio. Create an x64 target build and fire it off. Blam – hundreds of errors trying to compile 32 bit assembly code in a 64 bit program. Not going to happen.
Ok, so next idea was to use VMWare to boot to a simple DOS system and run Daggerfall. After some fun getting DOS set up (my memory of autoexec.bat and config.sys magic is a little rusty), I installed Daggerfall and tried to run the audio setup. BOOM – lockup.
Right, look at the VMWare guest OS installation guide and find that since v5 it supports an AudioPCI and not an SB16 by default. Ok – head over to Creative Labs and grab the DOS drivers for the AudioPCI. Drop them onto the DOS box, ttp://www.kamagraoraljelly247.com/, fix autoexec.bat and config.sys again then reboot. Splat – lockup loading the drivers which apparently are turning the CPU off!
Head over to the VMWare support area. Issue found – edit the VMWare .vmx file directly with notepad and change the sound support from the AudioPCI to an SB16. Seemed reasonable – I wanted an SB16 anyway. Boot up, run the audio config program in Daggerfall again and the digital audio is absolutely flawless. Move down to the MIDI setup and VMWare crashes with a “function not supported error” in emulating the MIDI. Arghh.
So… I decide maybe I can live without the music for the time being and fire up the game. It’s choppy – VMWare has problems writing to the hardware when there’s no guest tools installed. No guest tools are available for DOS so the game is basically unplayable.
That’s not too big of a problem – I head over to MSDN subscriber downloads and grab a copy of the latest Virtual PC. Ten minutes downloading later I have it and run the installer which politely informs me that it doesn’t run on XP-x64 and I’ll have to install a 32 bit operating system.
Sure thing – I make some room on my C: drive with Partition Magic and go hunting for some DOS drivers for my AC97 onboard sound. Oops – they don’t exist and apparently you need BIOS support to handle that sort of junk.
This problem I can deal with – installing Win98 should fix all that because it has nice drivers that will give the DOS program something to talk to. Run through the Win98 setup and it’s taking an awful long time to do anything (that scrolling bar at the bottom is sooo pretty), but that’s probably because it can’t detect any of my hardware until I get the drivers, right? Nope – splat back to text saying there’s insufficient memory to run windows. Kinda surprising given there’s 2G in my machine.
Off to MS tech support and there’s a perfect article there saying to edit my system.ini to tell Win98 that I really only have 780M of memory because apparently any more than that overloads the poor old 16 bit data structures in the 98 kernel. That’s pretty easy and I fire up the rest of the installation process. Still takes a long time so while I’m waiting I jump onto the web and search for the motherboard drivers I know I’ll need. Oh dear, nVidia doesn’t have anything for 98 (or ME) and Gigabyte tells me that the “chipset manufacturer has no Win98 compatibility”. Some Google-fu later and I see a few people asking for help finding 98 drivers for nForce4 boards and a lot more morons abusing them for trying to run 98 on an nForce4 system when there’s perfectly good reasons for wanting to do so (like running Daggerfall). Ultimately I find a few actually helpful people informing me that there will never be 98 drivers for the nForce4 platform and I’m shit outta luck. Crap, crap, crap.
So… back to VMWare and install Win98. Drop the guest tools onto it. That’s about where I’m at right now, I’ll continue this with further updates if anything happens.
(2 hours later)
Well, VMWare+Win98 was no better than VMWare+DOS. I shouldn’t be surprised by that because Win98 really is DOS anyway. It was identical right down to needing to use SB16 instead of the AudioPCI to get anything to work and then crashing VMWare with the exact same error – “function not supported” when I tried to use the MIDI.
About to give up I went over to the Elder Scrolls web site to see if there were any patches I’d missed and a quick look at the forum led me to this post, which was the absolute best advice I’d found. Using the special build of DosBox with the configuration recommended, Daggerfall runs amazingly well. I get a solid 25fps and almost no popping on the audio. I’m now happy and hopefully anyone else wanting to play Daggerfall will find that post and be happy as well!