Monday, January 16, 2012

cRPG: Running Diablo 1 on Windows 7

There's a fair amount of scattered, occasionally-conflicting information about running Diablo 1 (the first Diablo game) under Windows 7. (If you found this post, you've probably already seen some of this info.) Here are my experiences.

Out of the Box:
Diablo 1 will install and run under Windows 7. However, the original unpatched version of the game stores multiplayer character files in the WINDOWS directory. This means you have to run the game as Administrator. (Running the game from the CD automatically prompts you to do this.) If you don't, you won't be able to create a new multiplayer character or see any of the multiplayer characters you created during previous sessions. (I haven't messed with single player.)

Connecting to results in a long pause with the message "Searching for the fastest server...", which eventually times out after about 1 minute with a "Could not connect" error message.

It is also not possible to play multiplayer across a LAN using IPX because Windows 7 no longer supports IPX. I installed Windows XP Mode with Virtual PC. While this allows for IPX, it is not a solution because DirectX will not work under XP Mode. This means the game won't even start under virtual XP.

Instead, I went back to Windows 7 and used IPXWrapper. You just need to copy the 3 provided .dll files into your Diablo directory to do this. (This code seems safe. I skimmed the source, which is well-formatted, and I didn't notice anything obviously strange. I haven't had any strange new processes or network connections made since running it, either.)

I was trying to play Diablo between a Windows 7 and a Windows XP machine. Note that IPXWrapper is tunneling IPX over UDP, so you can't play using IPXWrapper with a machine that is natively running IPX. All the machines involved need to be using IPXWrapper. But using IPXWrapper is actually easier than installing and configuring IPX on Windows XP anyway, so this is not a hardship once you know about it.

Having to run Diablo as Administrator annoyed me somewhat. I was also curious if I could get to work. (It is no longer listed even on the Classic site).

Installing the latest patch to 1.09 means Diablo will now save multiplayer characters in the diablo/ game directory. Thus, running as Administrator is no longer required. Also, I could now connect to a server. (I did not bother actually creating an account and logging on, though.)

Bad/Broken Colors:
Patching breaks the color palette, though. This is obvious in the opening Blizzard animation and in the game itself (though the pre-game menus look fine). Some have reported luck with the Compatibility settings, but none of the combos I tried worked for me. (For example, setting the mode to Win98 or earlier meant the game couldn't find the CD-ROM anymore.)

The weird trick some have reported of opening the Windows Screen Resolution settings window and leaving it open in the background also did not fix this for me.

(2014-06 Update: The explorer-based fix below no longer works on my system. However, see Mary's comment on this post about a simple registry fix from Blizzard that solves this problem.)

What did work was: start Diablo, Alt-Tab and open the system Task Manager, and kill explorer.exe. Then Alt-Tab back to a correctly-colored Diablo. (Weird, I know.) When you're done with the game, you can return to the task manager and File -> New Task (Run...) -> explorer.exe again to bring back your task bar, etc.

As reported elsewhere, you can automate all this with a simple batch file. Save the following into a file named diablo.bat in your Diablo game directory:

taskkill /f /im explorer.exe
start explorer.exe

You can now change your start menu shortcut to point to diablo.bat instead of diable.exe. You just have to hit any key in the console window after you quit Diablo bring back explorer. (Annoying side-effect: this closes any open Windows Explorer windows too.)

All told, unless you are running into some of the game bugs fixed by the patch or want access, it's probably easier to just set the original unpatched version to run with Administrator priviledges. Also, if you do patch, all games must be patched to the same level to play over IPX.

On a related sidenote, Diablo 2 runs fine for me out of the box under Windows 7.

cRPGs: The best solo play solution?

It's been a long time. I spent the summer finishing up my dissertation, and then I started another degree in the fall. The combination of teaching, taking classes, and trying to do research consumed me. I haven't had any time for gaming in months--and that sucks.

The last project I worked on during the summer was a playing-card-based dungeon-generation system. The idea is to quickly generate rooms, encounters, features, etc. I've been browsing a few other card-based approaches, and even found a Sudoku-based approach.

My idea here is that a gaming/generation system that allows for solo-play would also allow for GM-less group-play. But the trick here is balancing random generation with pre-stacking the deck and interpreting the results. Too much randomness sucks, producing a stale or discordant dungeon experience without a decent story behind it. Too much interpretation requires the player(s) to be rather schizophrenic, switching between omniscient DM and world-ignorant character.

So what's the best blend here for solo play?

Random generation: Dungeon-generation tables have been around for decades, and now numerous online apps will do all the tedious rolls and lookups for you. However, I find the results to be exactly that: random, discordant dungeons that you have to grind through. They usually lack structure--both narratively in terms of the quest/story and logically in terms of architecture and monster assortment. Simply replacing a dungeon generation die-roll table with cards won't improve this random flavor at all. There needs to be some way to tweak or interpret the cards--either beforehand or during the game--to produce a coherent emergent structure.

Solitaire systems: This is includes Choose Your Own Adventure books, gamebooks, solitaire adventure scenarios, etc. These have a pre-authored plot, and so the quality is better than random generation. But your options tend to be rather limited here to a couple options at a time. More than this and you need to start DMing in order to keep the story moving along its designed path. But DMing requires knowledge of the story, which brings us back to the schizophrenic scenario of solo DM/player.

Balance: So, again, how to balance author-provided quality with user choices and the openness of random generation?

For a little more money, there's a lot of board-game-like dungeon games out there which shoot for this. They provide a quest structure and then board-game rules for playing out the encounters along the way. Indeed, these were the original inspiration for my home-brewed zilch/card-generation system.

But there's another genre out there that does this even better: computer games! Aren't these the perfect solo RPG experience? Rich immersive multimedia experience, randomly generated content for maximum replay value, all with an authored storyline laid over it. Why not just play cRPGs then?

I've already started this exploration. I'm looking at NetHack, Diablo, DiabloII, and NWN. I already know that there's something different about a solitaire table-top RPG vs a cRPG experience, but I'd like to try to nail down just what that is.

I'll let you know what I find out...