Open Source Diablo 1 engine usable on Haiku!

Hey all, I recently heard about an open source Diablo 1 engine, devilutionX and it seems to run just fine under Haiku! (It’s just the engine though, you’ll need the data file from a copy of the game)

To build it:

  • Install the build dependencies: pkgman install cmake devel:libsdl2 devel:libsdl2_mixer devel:libsdl2_ttf devel:libsodium
  • Clone the repository: git clone https://github.com/diasurgical/devilutionX
  • Make and enter a build directory: mkdir build; cd build
  • Build it: cmake ..; make
  • Place the “DIABDAT.MPQ” data file from your original copy of Diablo into the build directory and make it lower case (“diabdat.mpq”)
  • Run! ./devilutionx

I might make a Haikuports package for it when I get some free time. Somebody has already made a package! Should’ve checked first :slight_smile:. The creator says 64bit builds are experimental but it built and ran successfully on a 64 bit nightly.

1 Like

Or you can spare this and install it from Depot.

If you want to get some recipe-experiences: You could update the HaikuPorts recipe to current git version.

Yeah I mentioned that in the edit. Are arbitrary git revisions allowed/accepted in HaikuPorts? I know release versions are preferred but some (Linux) repos I know of don’t allow them at all.
I’ll see if I can’t get the upstream devs to add build instructions for Haiku to their readme too.

I would prefer that we stick to stable releases wherever possible, unless there is a good reason to make an exception.

3 Likes

anyway nice to read what steps are needed to make a game and the engine work on haiku with all needed steps.
Thank you for your lesson.
keep on doing so…

1 Like

That said having an in tree recipe for the git version would also be handy for people that want to roll their own… but probably not a good idea to build it an host it on the depot.

That’s basically how live ebuilds work on Gentoo… they are use at your own risk but available for those that need them or to help prepare for upcoming changes in libraries etc…

1 Like

any screenshots of this running on Haiku? or even better, a vid?

7 Likes

Thanks Extro, :slight_smile:

Great! Now I have to go dig out my old diablo discs.

Thanks!

1 Like

Does it run ok? Or is it a slide show?

Framerate is good on my Mac Book Pro (2013, i7) (Parallallels). But there is a bug in the save system on x64. So dont investigate too much time in it, your progress can/will be lost.

Has anyone tried successfully under 32bit (hrev53242 here)?
When starting devilutionx.sh from Terminal, I get an alert “Unable to create main window” and the output:

DUMMY: SetUnhandledExceptionFilter @ /sources/devilutionX-0.4.0/SourceX/miniwin/misc.cpp:507
DUMMY: FindWindowA : class: DIABLO window: (null)
DUMMY: LoadIconA @ /sources/devilutionX-0.4.0/SourceX/miniwin/misc.cpp:431
DUMMY: LoadCursorA @ /sources/devilutionX-0.4.0/SourceX/miniwin/misc.cpp:446
DUMMY: LoadImageA @ /sources/devilutionX-0.4.0/SourceX/miniwin/misc.cpp:440
DUMMY: RegisterClassExA @ /sources/devilutionX-0.4.0/SourceX/miniwin/misc.cpp:399
INFO: SDL_Init: SDL not built with haptic (force feedback) support
DUMMY: SDrawDestroy @ /sources/devilutionX-0.4.0/SourceX/storm/storm.cpp:688
DUMMY: SNetDestroy @ /sources/devilutionX-0.4.0/SourceX/storm/storm_net.cpp:61
DUMMY: SetUnhandledExceptionFilter @ /sources/devilutionX-0.4.0/SourceX/miniwin/misc.cpp:507
DUMMY: __debugbreak @ /sources/devilutionX-0.4.0/SourceX/miniwin/misc.cpp:790
DUMMY: SetUnhandledExceptionFilter @ /sources/devilutionX-0.4.0/SourceX/miniwin/misc.cpp:507

Is my .mpq file corrupted?
md5sum /boot/home/config/settings/diasurgical/devilution/diabdat.mpq says
011bc6518e6166206231080a4440b373