
Diablo devolved – magic behind the 1996 computer game - cyberfart
https://github.com/galaxyhaxz/devilution
======
zackmorris
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
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.

~~~
kevstev
The entire genre of flight and space-sims has almost entirely gone away and to
me its such a tremendous shame- with today's multi-monitor setups and wide
screens they would be such a better experience. X-wing, descent, flight
simulator, were all so much fun. I still have my MS sidewinder collecting dust
in a closet- which may be part of the problem- these games really needed a
decent flight stick to enjoy, and that's a big barrier to entry.

~~~
2muchcoffeeman
To this day I have to ‘invert’ my y-axis when I play for any sort of 1st
person perspective game.

~~~
gattr
Same here! IIRC for me it's due to Duke Nukem 3D's default settings. (Annoying
when games "forget" to respect this option, e.g. Crysis 3 in the VTOL flying
segment.)

------
Exuma
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

~~~
raesene9
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

~~~
Hallucinaut
Absolutely the same addiction here. Even the identical looking houses (at
least on the CPC464) I'm pretty sure by muscle memory I could find the Guild
and dungeon entrances, I did them so many times.

I loved that game so much I finally, last week, made it to Orkney to see the
actual Skaea Brae. Little bit of artistic licence taken, but Orkney is an
amazing place to visit regardless.

------
Reedx
For anyone interested in the history of Diablo, the GDC post mortem is well
worth a watch:
[https://www.youtube.com/watch?v=VscdPA6sUkc](https://www.youtube.com/watch?v=VscdPA6sUkc)

Quite a bit of detail regarding the origin of the game, going turn-based to
real-time, the studio becoming Blizzard North, etc.

Also here's the original design doc:
[https://www.graybeardgames.com/download/diablo_pitch.pdf](https://www.graybeardgames.com/download/diablo_pitch.pdf)

------
aw3c2
There is a slowly but steadily progressing engine being developed at
[https://freeablo.org/](https://freeablo.org/)

~~~
have_faith
It's such a shame there's no modern spiritual successor to Diablo / Diablo 2.
The aesthetic and gameplay was great.

~~~
jakebasile
Isometric ARPGs are niche now, but there's still games being made. Off the top
of my head:

\- Titan Quest (just got an update and a new expansion!)

\- Grim Dawn

\- The Incredible Adventures of Van Helsing

\- Victor Vran

\- Path of Exile

\- Warhammer 40000 Inquisitor - Martyr

\- Torchlight 1 & 2 (I wish Runic games hadn't imploded...)

It is unfortunate that most of these don't have the same level of randomness
than Diablo has, but they're pretty good games in their own right.

~~~
3pt14159
I played path of exile years ago and it was great.

~~~
dkersten
Me too! It was fantastic. Ironically, I stopped playing a few weeks before it
came out of closed beta (just didn’t have time and then never went back to
it... now its changed so much I feel a bit overwhelmed by the thoughts of
going back to it)

I actually heard about PoE on HN too, back in 2012 :)

~~~
tbredin
The latest update has a sort of dungeon building mechanic and its so so good.
Highly recommend trying it out again. The art & graphics have improved _a lot_
since closed beta too (I was there ... just never left)

~~~
dkersten
Thanks for the comment! I may give it another look.

(although a big reason behind why I haven’t is that I mainly play on consoles
now, will have to see how well it runs on my shitty machine!)

------
brailsafe
Just leavin dis here
[https://archive.org/details/Diablo_1996_Blizzard](https://archive.org/details/Diablo_1996_Blizzard)

~~~
rocky1138
> According to Jurannok, a Blizzard representative on their Support Forums,
> the game has been discontinued and Blizzard has no current plans to update
> it or start selling it again.

> Sources:

>
> [https://us.battle.net/forums/en/bnet/topic/13595100072#post-...](https://us.battle.net/forums/en/bnet/topic/13595100072#post-2)

>
> [https://us.battle.net/forums/en/bnet/topic/14611181553#post-...](https://us.battle.net/forums/en/bnet/topic/14611181553#post-2)

> As far as I am concerned, that makes Diablo 1 abandonware, so feel free to
> download this iso, legally.

That's quite a jump of logic! Just because they don't publish it now doesn't
mean they don't reserve the right to publish it in the future.

~~~
hyperman1
I think abandonware is always illegal, it's just that nobody cares enough to
enforce the copyright. Betting on this when you have blizzard with their
trigger happy lawyers seems risky, IMHO.

~~~
rocky1138
Assumed abandonware, anyway. Some companies have legit given the rights over
to the public domain for stuff. Hasbro releasing the encryption keys and
rights to Atari Jaguar comes to mind.

[http://www.atarihq.com/news/1999/990514.html](http://www.atarihq.com/news/1999/990514.html)

~~~
hyperman1
True. The Id software releases are another major example. I am very gratefull
for these gifts.

But 'abandoned' implies forgetting or not caring. If a company actively takes
some action to allow access, the word 'abandoned' doesn't seem appropriate
anymore.

What do you think about the word 'donated' or simply 'licensed'.

------
mihaifm
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.

~~~
jmts
I played stupid amounts of both. In early highschool I was sick for a few
weeks, and spent all of it playing D1. One afternoon I decided I needed a
drink, so I got up and as I turned around I saw a Hidden melting away into the
aether. I decided I should probably break for half an hour or so.

In late highschool I remember walking home from school and seeing a newspaper
on our front lawn, and in my head I tried to press the 'tab' key to activate
the popup telling me what it was.

As far as the music goes, I honestly can't recall any D2 music nearly as
easily as the D1 music comes to mind. The town music is obviously the most
iconic, but the caves and hell soundtracks give me goosebumps every time.
Combined with the sounds of magma demons, and vipers, and balrogs, and mages.
Oh man, those were the days.

------
crocal
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!

~~~
munificent
This code was automatically decompiled, though, wasn't it? The original is
likely quite different.

~~~
crocal
I don’t think it is vastly different in terms of program structure. They lost
variable names and maybe some optimized intermediary calculations, but
functional calls and branches are usually preserved through decomp (unless
some compiler optims have been activated)

~~~
aleden
Could you provide an example to corroborate your claim?

~~~
crocal
This, maybe: [https://github.com/avast-
tl/retdec/blob/master/README.md](https://github.com/avast-
tl/retdec/blob/master/README.md)

There is a talk presentation linked in there that gives nice explanations and
examples.

I used to do a lot of decompilation of Java apps back in the days. It’s easier
to decompile but still, all intermediary variable names disappeared ^^.

------
amatecha
Alright, let's take a look at these remaining bugs that never got fixed...
_puts on Godly Plate of the Whale_ ;)

~~~
SamLevin88
my dude

edit: this guy quests

------
cthuluforprez
Having never played Diablo, is there any way I can still play it on a modern
computer?

~~~
ryanmcbride
Yes! I actually played it through last year.

[https://www.reddit.com/r/Diablo/wiki/index#wiki_diablo_i_gam...](https://www.reddit.com/r/Diablo/wiki/index#wiki_diablo_i_game_guide)

I've also used this HD mod that adds some characters from Diablo II, better
multiplayer, and increases the difficulty:

[https://mod.diablo.noktis.pl/download](https://mod.diablo.noktis.pl/download)

~~~
cthuluforprez
Thanks! I'll try it out. Did you liked the game?

~~~
ryanmcbride
Of course! It wasn't my first time playing it had just been years since my
last playthrough.

------
lordleft
What is the legality of something like this? Really cool project!

~~~
thefreeman
I think as long as they don't include DIABDAT.MPQ or any of the content /
texture files from the original game it should be ok.

~~~
degenerate
It is. And it's mentioned at the bottom of the github page, too: "This work is
being released to the Public Domain. No assets of Diablo are being provided.
You must own a copy of Diablo and have access to the assets beforehand in
order to use this software."

~~~
davidcbc
This seems legally questionable given that all of the source files have a
copyright notice from Blizzard indicating distribution without written
permission is prohibited.

~~~
oh_sigh
No one is distributing them. If you have the content files, you can point the
open source engine to read them.

~~~
davidcbc
The guy on Github is distributing the source files which have a Blizzard
copyright notice on them saying not to distribute them.

~~~
joecarpenter
Which is really weird. Because the code is reverse-engineered and I'm 99% sure
the author used Hex-Rays Decompiler (due to variable names, etc).

------
slezakattack
There is no cow level..

[https://gaming.stackexchange.com/questions/69604/what-
does-i...](https://gaming.stackexchange.com/questions/69604/what-does-it-mean-
there-is-no-cow-level)

~~~
radiorental
These are not the cows you are looking for

[https://www.youtube.com/watch?v=qSlGQpvl_IA](https://www.youtube.com/watch?v=qSlGQpvl_IA)

------
egfx
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
We should clone this repository before Github gets sent a DMCA takedown
notice.

~~~
EpicEng
>"This work is being released to the Public Domain. No assets of Diablo are
being provided. You must own a copy of Diablo and have access to the assets
beforehand in order to use this software."

~~~
davidcbc
Just because someone says what they are doing is legal doesn't mean it is.
IANAL so I don't know but the source files have Blizzard's copyright warning
in them

~~~
superkuh
And now that MS owns github there's reason to believe they're going to be more
active/compliant about bullshit DMCA take down requests.

~~~
sakarisson
It wouldn't be a bullshit takedown request. The source code even had a
copyright notice before the repo owner "removed the fear factor".

[https://github.com/galaxyhaxz/devilution/commit/bb01c6f084b8...](https://github.com/galaxyhaxz/devilution/commit/bb01c6f084b8d6525785f7f41a2ceca18c06c86c)

In fact, when you wrote your comment, those notices were still there, so you
have no excuse for writing such an ill-informed comment.

~~~
galaxyhaxz
The copyright notice was fake, I was the one who typed it up originally and
removed it so people don't think this actually came from blizzard.

It will be interesting to see what happens on Blizzard's end. I won't be
surprised if the repo gets DMCA'd. It's not a big deal to me either way, I did
this for the learning experience.

------
brailsafe
The repository is ~1mb. Far less than most websites.

~~~
zaroth
You need the actual game DVD to bootstrap it. It’s a brilliant way to side
step any copyright concerns for modding under first sale doctrine.

~~~
brailsafe
Agreed. I believe some of the open source rebuilds of various SimCity titles
use the same tactic.

------
frugalmail
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.

------
what-the-grump
I might still have the disks to all except d3.

------
Mtntk
could be there any effort to conversion to opengl support, or it would be too
complex to handle ?

~~~
Zelizz
It would probably be better to port to SDL2, which can then use whichever
rendering backend is best for your platform.

------
n0tme
So many gotos..

------
reiichiroh
It's amazing that Chris Metzen's terrible kiddy drawings from the Diablo and
Starcraft manuals got him promoted eventually to creative lead.

~~~
abiox
metzen _created_ the diablo universe (with roper) and the starcraft universe
(with phinney). he had a bit more involvement than some drawings in manuals.

~~~
reiichiroh
Still, the pencil drawings in the manuals looked like EGM envelope rejects.

