To skip the story and get straight to the fix, I've created some links:
== Backstory! ==
I recently got my girlfriend, Lesley, into the Diablo game lore. I told her about the storyline of the original game and had her read through the story embedded in the first game's manual and she was hooked. So recently we built another gaming machine that she can play on while she's here - rather, she built it with my guidance (she's a nerd, and I'm lucky). The first game we installed was, of course, Diablo.
The expectations were set high - to sit down to the game after installing and dive right into the multiplayer co-op, axe wielding, bow shooting, fireball spitting, demon slaying action. The installation went well, and so did the update to version 1.09. So the process was repeated on my computer and we were ready to go. Or so we thought.
On first run of the game, the cinematics were completely sub-par from what I had remembered. It wasn't that they were old and antiquated renderings, but that the video sequences were distorted. Horribly. The menu screen looked normal, though, so I attributed it to a scratched CD and continued. In game, my Sorcerer was being hunted by the Predator, as he looked like he was giving off a heat spectrum, and moving around only made it worse. The river looked like a rainbow was strangled and left to die just south of Tristram, so I suspected that the graphics would only get worse if I continued.
A quick search on Google revealed that this was indeed a graphical error with Windows Vista and Windows 7, but was easily remedied by killing the explorer.exe process prior to launching the game. So I tested this and, much to my surprise, it worked. So the same was tested on her PC, and it worked as well. Note that my PC runs an Intel Core2Quad Q9450 and an AMD/ATi Radeon HD4870. Her computer is an AMD AM2 X2 5000+ and an nVidia GeForce 8800GTX. The issue occurs on most PC's, regardless of processor or graphics architecture.
We created new Battle.Net accounts and logged in, added each other as friends and I created our first game. She attempted to join, and then ... nope. High latency prevented her from joining the game. "What? High latency? We're on the same network!" She tried again, failed again. So I had her create the game. I attempted to join - and was kicked out with the same message. So apparently there's some kind of issue that prevents players on the same LAN from connecting to the same game in Battle.Net, though they can both be online at the same time and both can join games - just not a game hosted by the other.
Not a problem - that's what LAN games are for. A simple exit from battle.net back to the multiplayer game type selection screen and ¡voila! We'll be up and running in no time. Well, OK so apparently we need to install IPX/SPX onto both machines first and configure the IPX/SPX network. This is because Diablo 1 doesn't allow LAN games via TCP/IP (the Internet protocol), but instead connects using Novell's IPX/SPX protocol. So I go to the network adapter properties and attempt to add the new protocol... no such luck - it's not there!
Microsoft, for some reason, decided IPX/SPX would be of no use in any Windows operating system from Vista forward. That includes Server 2008 and of course Windows 7, and presumedly the upcoming Windows 8. That means our Diablo-slaughtering-bonding-togetherness-time was going to have to wait until I figured out a way around not being able to use IPX/SPX as our protocol.
I watched YouTube videos about using a mod called Diablo: The Awakening, but that apparently changed the in-game storyline of Diablo, and I wanted Lesley to grasp the full original storyline before continuing to Diablo 2. There was also information on using programs such as Tunngle and Kami, but they seemed complicated and as brilliant a PC Guru as I am, I wanted simplicity - for her sake.
Fast forward two hours of trying various methods (including tunngle and The Awakening mod) and I wasn't satisfied. There were just too many steps. Several other people were running into the same issue, as well, and nobody had a simple solution. Until I found this blog. "Play multiplayer WarCraft II on your LAN without IPX" is an article written about this same issue on another Blizzard favorite: Warcraft II. The article describes using an IPX/SPX "wrapper" to trick the game into thinking you have the IPX/SPX protocol installed, while sending the information using TCP/IP. This emulation reminds me of the old days when "glide wrappers" were used to get nVidia graphics cards to emulate 3dfx's Glide API's for games like Unreal Tournament, or console emulators like Project 64; however, instead of emulating a graphics architecture, it's emulating a networking protocol. Brilliant!
After following the directions and having some initial struggles, I finally got the IPXWrapper to work on both machines and we dove into the world of Diablo and started our quests. Well, she talked to Ogden the Tavern Owner, and I answered the phone to talk to my dad. NOW I was ready, and ... she had to leave to go visit her aunt for Thanksgiving. So I sit here writing this article, waiting for her to return, much as I wait for Diablo III (which, I scouted at a local Best Buy which is taking pre-orders, is scheduled for release in February 2012 ;] ).
For anybody that wants a consolidated fix to both the Diablo on Windows Vista/7 color issue AND the IPX/SPX LAN issue, I've provided clear instructions below for your viewing pleasure.
Happy Thanksgiving, everyone!
Consolidated Color and IPX/SPX fixes:
=====COPY ONLY BELOW THIS LINE=====
taskkill /f /im explorer.exe
=====COPY ONLY ABOVE THIS LINE=====
Step 2.) Open Notepad
Step 3.) Paste the above selection into notepad
Step 4.) Save the file to your desktop as “Diablo.bat”, making sure to change the “File type” to “All files (*.*)” before clicking save.
Step 5.) Run the file to launch Diablo.
What this batch file does is:
- Kills explorer.exe to fix the color problem most users on Vista/7 experience
- When the game ends, you’re instructed to press any key to continue
– Doing so will relaunch explorer.exe, bringing back your desktop icons and taskbar
- Exits the batch file
The reason we're launching it from the SHORTCUT rather than directly from the game's *.exe file is because we want to have compatibility mode enabled for the IPX/SPX wrapper solution as well.
Part 2 - IPX/SPX LAN fix:
Big thanks to blogo.biz for providing the initial information here:
Step 1.) Go to http://www.solemnwarning.net/ipxwrapper/ and download the latest IPXWrapper (at the time of this article, it was version 0.3.2
Step 2.) Extract the three included *.dll files (ipxwrapper.dll, mswsock.dll, and wsock32.dll - dpwsockx.dll isn't needed) into the directory of your game (NOT in a subfolder):
Step 3.) Click "Start" -> Go to "All Programs" -> "Diablo" -> Right-Click the "Diablo" game shortcut and click "Properties".
Step 4.) Set the shortcut to run in compatibility mode for “Windows XP SP3″ and click "OK":
Step 5.) Run the shortcut, or the batch file created in the "Color fix" instructions above to incorporate the IPXWrapper into your game.
NOTE: Without setting the compatibility mode for the Diablo game, the IPXWrapper doesn't work - Diablo continues to say it couldn't initialize the connection method and/or kicks you back to the connection method selection screen. The reason the batch file points to the shortcut instead of the game is because there's no way to force the compatibility mode into the game by launching directly from the EXE, so we launch a modified shortcut to get around this.
Hope this helps!!
UPDATE: Below are instructions to get Diablo 1 working over Hamachi! This guide assumes you've already gotten Hamachi installed on all participating computers, and you are joined on the same Hamachi virtual network.
Step 1.) Click "Start" -> "Control Panel" and go to "Network and Sharing Center"
Step 2) Over on the left-hand side, click "Change Adapter Settings"
Step 3.) Now you need to bring up the hidden menu bar. Press "Alt" to bring it up, then click "Advanced" -> "Advanced Settings"
Step 4.) Select "Hamachi" in the list, and use the green "Up" arrow on the right-hand side to move "Hamachi" to the top of the "Connections" list.
This will force the IPXWrapper to wrap Hamachi's VPN, and also force Diablo to see the Hamachi network, as Diablo will only see the first network in the connections list. So long as all the computers have "Hamachi" listed as the first / primary network, you can play together whether you're in the same room, in the same house, or just on the same planet. This was a limitation of the game, not a Windows glitch.
Step 5.) Repeat Part 3, steps 1 through 4 on all participating Windows Vista / Windows 7 computers.
Step 6.) Load up Diablo and select "Multi Player" -> "Local Area Network "IPX" -> Select/Create your Hero -> Join / Create a game -> Enjoy!!
If you're having issues still, please join our community and PM me some contact information and I'll do my best to assist you. Thanks for reading, all!! Time for Diablo 3!!
2012 / 04 / 14 - Huge thanks to Elly at http://diablo.incgamers.com for linking to our article: http://diablo.incgamers.com/blog/comments/getting-diablo-1-working-on-windows-7-guide .