top | item 17338886

Diablo devolved – magic behind the 1996 computer game

656 points| cyberfart | 7 years ago |github.com | reply

274 comments

order
[+] zackmorris|7 years ago|reply
I'm old enough to remember that when Diablo came out, it seemed to be running too fast. This was before 3D video cards were mainstream (which happened with the Voodoo and Quake in 1997 maybe?).

I was working a lot with blitters at that point and running into speed issues on the Mac because Apple liked to release machines with half-width busses, which cut memory throughput by almost half. I'd be lucky to get 60 fps on a fullscreen 640x480 blit in 256 colors on a 68k Mac, but PCs seemed to do it trivially, and also do more with masking and color mapping at nearly the same speed.

Even PowerPC Macs ran between 2-10 times slower than their Pentium counterparts on tons of games. For example, Descent ran at 10 fps or whatever and was barely playable on a PPC 601, but ran great on a 100 MHz Pentium. Even Duke Nukem 3D ran full speed on a 100 MHz 486dx4. That could not have all simply been due to a lack of optimization on the Mac side.

This is all from memory so take it with a grain of salt. But I'm mildly curious what kind of approaches went into their blitting, and if they used things like palette animation (which wasn't available on the Mac because Apple put a blocking call on the palette change, which synced it to the refresh rate, although I never tried it from another thread because I don't think it was thread-safe).

[+] gwicks56|7 years ago|reply
I had totally forgotten about Descent, thank you for the reminder. That game seriously scared me as a 13 yo boy at the time. I loved it.
[+] cbsmith|7 years ago|reply
IIRC, it was the 680x0's that so often had the crippled memory bus.

The slowness on the PowerPC probably had more to do with the CPU power. PowerMacs struggled to be competitive with Pentiums for integer computation, and often the PowerPC Macs were not clocked competitively against their PC brethren.

You referenced a 601... The PowerPC 601 based machines still had NuBus, which was slow compared to VLB & PCI.

All the early PowerPC had a variety of disadvantages slowing them down: 680x0 emulation blowing the processor cache at times (particularly the 603), built in graphics were generally pathetic (and often used RAM as VRAM, undermining the value of the fast memory bus for gaming... but if you installed your own card with dedicated memory that problem vanished), and a the graphics card market was skewed for desktop publishing making it very costly to get good gaming performance.

Of course Apple abused benchmark stats to make it all seem much faster than it was, but the memory bus was derived from the Motorola 88100 bus, and consequently was pretty decent (and if you think about it, the afore mentioned 486dx4 actually had a memory bus that was running about a third of CPU speed...).

Radius graphics cards used to have fantastic blit performance.

[+] amatecha|7 years ago|reply
Did you ever play that pre-alpha source port of Quake on Mac that was just roughly compiled from the DOS source? Got like 12 fps at best on 320x200 on a PowerPC 603e 120mhz... When you fired a rocket the framerate would slow down by like 50% :'D
[+] phaedrus|7 years ago|reply
I believe the PC version used palette switching for a lava effect, but not for scrolling (it used Direct X). Never got to see the Mac version of the game.

I wrote a bot for Diablo 1 (https://sourceforge.net/projects/projectsolo/). Due to the way the game uses older Windows modes for the palette, the colors never come out right in screen captures and also get messed up if you alt-tab. IIRC I had to use an API call dating back to Win16 to get the raw bytes, and I used artificial color for the visualizations rather than figure out how to obtain the actual palette.

[+] ben_w|7 years ago|reply
> Even Duke Nukem 3D ran full speed on a 100 MHz 486dx4. That could not have all simply been due to a lack of optimization on the Mac side.

Curious. I remember playing Marathon 2 on a 75MHz 603e and it seemed fine. What counts as “full speed”? I think Marathon was frame limited to 30 fps or close to that, from experimenting with semi-transparency based on fast-moving platforms…

[+] scarface74|7 years ago|reply
What was sad was that the same games ran better on my DX2/66 Dos Compatibility card with 32MB of on board RAM on my 6100/60 (with 16MB of RAM) than they did natively on the Mac.
[+] fusiongyro|7 years ago|reply
I remember trying very hard to play Descent on a 33 MHz 486 DX. It did not go well for me!
[+] Exuma|7 years ago|reply
I remember going on vacation with my parents and all I had was the Diablo game manual, because I got the game 1 hour before we left. I read the manual about 100 times in the car... good memories
[+] spapas82|7 years ago|reply
I remember trying to play Diablo multiplayer through a 55.6 kbps modem. It was nice for like 5 minutes but then the connection lagged and I couldn't control my character. When the connection quality improved, I saw my character dead with all his (high level and very diffucult to find) gear stolen by other players.

I was so frustrated I removed the cdrom from the drive and threw it on the wall; the cd broke and that was the last time I played Diablo...

[+] amatecha|7 years ago|reply
haha! I remember borrowing my friend's WarCraft 2 manual before I could play the game (wasn't yet out for Mac), and imagining the epic gameplay. Back in the days when games actually came with a manual and often included tons of awesome artwork you wouldn't see elsewhere. :) Actually reminds me I scanned some of the artwork and printed them out so I could color them -- still have a couple of those!
[+] jczhang|7 years ago|reply
The first Diablo manual had great background stories and mythology. When I watched Constantine for the first time, I realize it had the same setting as Diablo!
[+] kirbypineapple|7 years ago|reply
For me it was the Starcraft game manual. I took that thing everywhere!
[+] raesene9|7 years ago|reply
For me it was the Bard's Tale. A demo of Skara brae and a couple of levels of the first dungeon was put on a magazine cover in the UK months before the game came out.

I played that demo to oblivion, I can still pretty much remember all the street layouts

[+] isolli|7 years ago|reply
I fondly remember the Ultima VI manual, complete with cloth map. Those were the days :)
[+] Waterluvian|7 years ago|reply
I had the exact same experience. That was also my first true adolescent introduction to the female form with the full page rogue showing some rather PG-13 characteristics.
[+] learc83|7 years ago|reply
Same thing happened to me with Diablo 2. It came out while my family was visiting my aunt on the other side of the country. My parents bought it for me, but my aunt and uncle didn't have a computer that could play it, so I spent the week looking through the manual.
[+] robbiep|7 years ago|reply
Civ 2 for me

Game manuals are a lost art :(

[+] megaman22|7 years ago|reply
I miss the days of actual boxed games, with real manuals in them. So much nostalgia for going to the mall and finding a rare treasure that would run on my decrepit 586 in the back of EB Games, then reading the manual cover to cover a couple times waiting for my mom to finish up shopping and drive home.

I hope I still have my Warcraft, Lords of the Realm 2, Close Combat 2 and Civilization 2 manuals somewhere.

[+] BadassFractal|7 years ago|reply
Reading the game manual was one of my favorite rituals when I couldn't actually get to play the game for a while, amazing memories.
[+] mikepurvis|7 years ago|reply
Caesar II was that one for me— got the game for Christmas and then immediately was in the car to visit family for a week.
[+] cabaalis|7 years ago|reply
That manual and the warcraft/starcraft manuals are responsible for a large part of the person I am. I was 10 at the time, and the universes that Blizzard created got me into gaming, from there into social gaming (m:tg) and then into computers and programming so that I could make my own games.
[+] AcerbicZero|7 years ago|reply
I did something similar with the Starcraft manual...the art work alone was awesome.
[+] norbertdragan|7 years ago|reply
Are you me? I had this exact same experience with the Diablo 2 manual.
[+] digi_owl|7 years ago|reply
I did something similar with a set of manuals for a Microprose B-17 simulator. Thing is that one of the manuals where more of a history text book going over all the tech and such used to guide the bombers to their targets.
[+] robohamburger|7 years ago|reply
I met a friend, who I am still friends with today by lending them my Diablo 1 manual in class. That was an amazing manual.
[+] khalilravanna|7 years ago|reply
I remember bringing the manuals for Civ II, Black & White, and Morrowind to school. Oh man, I miss manuals
[+] Zardoz84|7 years ago|reply
original Heroes of Might&Magic. Had a great deal of lore with the mails of Lord Iron First to his brother.
[+] catacombs|7 years ago|reply
That must have been the longest vacation ever.
[+] mihaifm|7 years ago|reply
Haven’t played Diablo 1, I grew up with Diablo 2 (I’m a bit younger lol), but for me D2 represents the most memorable athmosphere in gaming. Man...that music in Act 1...

Years later I bought 2 copies of D2 to replay it. Needed 2 because no shared stash to transfer items between characters.

[+] crocal|7 years ago|reply
What I like about this code is how much direct it is. No fancy abstraction. Brutally to the point with switch() and if() and that’s it!
[+] amatecha|7 years ago|reply
Alright, let's take a look at these remaining bugs that never got fixed... puts on Godly Plate of the Whale ;)
[+] cthuluforprez|7 years ago|reply
Having never played Diablo, is there any way I can still play it on a modern computer?
[+] lordleft|7 years ago|reply
What is the legality of something like this? Really cool project!
[+] egfx|7 years ago|reply
QA tester on Diablo 2 Expansion here.

There was sort of an infamous bug I found on the old D2 Expansion discs that let you bypass securom as well as play as expansion characters in non-expansion games using non-expansion discs. In fact, once you put in the D2 Expansion disc, all the configs got copied and if you switched to the regular non-expansion disc you were able to retain all the expansion features for as long as you had your PC on ;)

[+] jannes|7 years ago|reply
We should clone this repository before Github gets sent a DMCA takedown notice.
[+] brailsafe|7 years ago|reply
The repository is ~1mb. Far less than most websites.
[+] frugalmail|7 years ago|reply
So many fun hours spent playing with friends and talking about it!

Thanks for the work and trying to breathe new life into it. Look forward to new generations enjoying it.

[+] Mtntk|7 years ago|reply
could be there any effort to conversion to opengl support, or it would be too complex to handle ?