I've been playing Heroes of Might and Magic 2 recently. It's one of the games I grew up with, and it holds many fond memories for me. It is also, as anyone following me on the Fediverse will know, how I discovered my lifelong fascination with griffins.
After a bit of that, today I decided to try and get Heroes of Might and Magic 3 running. While I strongly prefer Heroes 2's aesthetic in most ways, Heroes 3 is mechanically the better game. If I could make Heroes 3 look like Heroes 2, I would be very happy indeed.
Now, getting Heroes 2 running was pretty easy, since it's from 1996. Stick it into DOSBox and go. Heroes 3 was an entirely different matter. It came out in 1999, so it was Windows 9x native, and games of that era are often troublesome to get running on a modern system.
(As an aside, all these things are available on GOG and those folks already did all this work, but I'm not paying for these games again for the sake of a weekend's nostalgia when I have my original CDs right here.)
First hurdle, the installer. It just didn't work. Try running it and... nothing. Nothing at all. No window, no error message, not so much as a stray griffin feather. So out comes my first troubleshooting tool, Process Explorer, to see how far it gets.
Well. That's not good. It's just sitting there, not doing anything.
It turns out it's an InstallShield installer, and those had a few quirks. For reasons I may go into another time, they use a 16-bit starter executable to bootstrap the main installer, and 16-bit support was dropped from 64-bit versions of Windows, which is all of them nowadays. The 32-bit launcher you can see there is trying to run the 16-bit one that'll run the main 32-bit installer. But it failed, because my system can't run 16-bit executables and it's apparently just... sitting there, scratching its head.
After fruitlessly trying to unwrap and run the 32-bit installer I knew was buried in there, I eventually stumbled across a program called i5comp that some kind soul (thank you, fOSSiL, whoever you are!) wrote to access the InstallShield cab data format.
So, armed with this, I decompressed the game files and tried running it. To my great surprise, it actually started up first time, ran through the infuriatingly unskippable intro cinematic...
...and dropped me to the main menu. Well, that was easier than I expected. That said, I like to play my games windowed these days, so I hit F4 (which was the standard key for this back then for some reason, except when it was alt-enter, ctrl-shift-f, or F11) and...
Oh. Well, that's a problem. Does my current setup even support 16-bit colour mode on the desktop? It's doing fine in full screen exclusive mode, but the other stuff I'm running might not take kindly to having the majority of its colour space taken away.
That was my immediate thought, anyway. Then I remembered that DxWnd exists. I haven't had a lot of luck with it in the past, but it turns out that Heroes 3 is just undemanding enough that it wraps it up in a nice little window, no problem.
Then I scale the window up to 1200x900, disable the Windows cursor and off it goes!
That should have been it, but there was one more wrinkle. I load up a scenario, play my first turn, all goes well, but then it complains that it "can't create save AUTOSAVE.CGM". That's not good. These games can run kind of long and I'm going to have problems if I can't save.
This turned out to be because I hadn't run the installer. Who could ever have thought that'd come back to bite me? Normally an installer does all sorts of nice things like creating the directory the save files will live in, and it's unhappy because the place it wants to put its saves doesn't exist.
So I go digging around to find out where saves are supposed to live. Fifteen minutes with DDG later, I find my way to a thread on the GOG forums in which someone else asked the same thing for a different reason. Seems it's just a subdirectory inside the game's main install directory (pretty common in 1999) called... "games"? I can sort of see it, but why games rather than saves?
Doesn't matter. I create that and off we go, saves work just fine! Everything now works and I can get a game of Heroes 3 going!
...well, that was exhausting. I think I'm going to unwind with Minecraft a bit and come back to this later.