Fan of Diablo I? DevilutionX almost working on FreeBSD

Hello,

DevilutionX: Diablo build for modern operating systems.

For those that are interested helping us to getting this project ported to FreeBSD, please read this pull request:


Thanks,

Nuno Teixeira
 
I've taken a (very) quick look at it. Just a few small suggestions to make porter's lives easier. Code could use some restructuring as well to make porting easier, but that's more of an upstream issue anyway.

I would suggest doing actual detection for a FreeBSD platform (by checking for __FreeBSD__) instead of relying on the current behaviour.
It will make it easier to define FreeBSD-specific behaviour (which I assure you, there will be at least some of that).

C:
//-----------------------------------------------------------------------------
// Assumption: we are not on Windows nor Macintosh, so this must be linux *grin*

#if !defined(PLATFORM_DEFINED)

Basically something like this (before the Linux detection) should be enough. You can just copy the Linux headers for now.

C:
#if !defined(PLATFORM_DEFINED) && defined(__FreeBSD__)

Good luck in your endeavours. If I find the time I might chime in with some extra code, but I'm currently working on something else that takes up all my attention.

Note: to find out what's going wrong with the filesystem thingy, compile the project with debug:
cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc8 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++8 -DASAN=OFF -DCMAKE_BUILD_TYPE=Debug .. && make

Then debug it with gdb (lldb might also work, but since it's compiled with gcc I'd say use gdb)
gdb ./devilutionx

Look around the web to find out the gdb commands. 'bt' is your first friend for sure.
 
So now I can do all that time wasting from the old days again? Well... it was a lot of fun.
 
Of course I couldn't let it go. I just had to dedicate my sunday to getting more people to game on FreeBSD :D

There's a port on my GitHub repository. Copy your diabdat.mpq to ~/.local/share/diasurgical/devilution/diabdat.mpq.
Happy gaming!

There's also a miniscule PR on the project's GitHub to do away with the patch for CMakeLists.txt
 
Ok, I made a stupid mistake and the branch has also been updated. I fixed the port :)

Note that right now the port builds from a specific branch, not a tag. So when that branch gets updated, your port actually changes a little (or a lot).
Once the necessary things are in the main branch and released as a tag, I'll update it and maybe even create an official port from it :)
 
It will tempt me to waste weeks and months of my time, again. I've been clean for 4 years.

Well done, good work :)
 
Well done all that contribute time, knoledge to projects that need to be taking into consideration. This is not a game, this is a way to remember that some fantastic and beutifull games was created to be playing in MS DOS and Win95 an now can be remembered in Linux, *BSD, etc. I think this projects very important because they remember from where we been.

Thanks for all involved here:

- Devilutionx project
- kraileth
- malavon

And all that put some flame in this thread. And it worked :)

Yours,

Nuno Teixeira
 
I didn't mean to flame anything. I just feel tempted to put time into this for old times sake instead putting it into my kids. But in some years now I can show them "This is what daddy used to procrastinate..."

And maybe it will be fun to have a match against them. You do have multiplayer, don't you? ;)
 
And maybe it will be fun to have a match against them. You do have multiplayer, don't you? ;)
From the readme, never tested it (fun fact: I never played Diablo):
Multiplayer
  • TCP/IP only requires the host to expose port 6112
  • UPD/IP requires that all players expose port 6112
All games are encrypted and password protected.
 
I played diablo II for years but never tried multiplayer because I was allways trying the best tree to have more fun and not to difficult to enter hardcore mode.

I played Diablo I when I don't have an internet connection and we use floppys and cds from friends.

This project is important to me because Diablo I is still considered number 1 in its style in a lot of sites.
 
Will you submit this port to freebsd ports?
Probably, once there's a release on GitHub (as opposed using a branch which can change every second). It doesn't seem to be too difficult to maintain it either, so I'll go with it.
That said, if there's someone out here who can maintain it and who would actually play it (and thus test), speak up :)
 
Is this thing Diablo opensource a sort of (Opensource DIABLO) MMORPG for Raspberry PI ?
can it run online on a pi?

I'd like eternallands and diablo on pi ;)

6510
 
The FreeBSD branch has been merged into the master branch today, I updated the port to point to master now.

I forgot to say that you can choose a specific tag for GH_TAGNAME=1f20338 for example, instead of master tag:

editors/xi-term uses:

DISTVERSION= g20190328
that ponts to:
GH_TAGNAME= 08dd47e

That way you will have no problems with checksums with DISTINFO, because source will be inaltered to that specific tag.
 
BTW, theres a new release 0.4.0, so you can stay with this version tag because it includes changes for freebsd:


cheers
 
It's probably better not to package that thing by default. Decompiled code is not even in a legal grey area, it's pretty clearly constitutes copyright infringement.
 
Decompiled code is not even in a legal grey area
Pardon my ignorance on the subject, but isn't "Reverse engineered" different form "Decompiled" ? I thought the former did not constitute copyright infringement contrary to the latter.
 
It's probably better not to package that thing by default. Decompiled code is not even in a legal grey area, it's pretty clearly constitutes copyright infringement.
This is a legitimate concern. I've been wondering about this as well. EDIT: I'll ask this on the Bugzilla to make sure and see what comes up there.
 
I missed that part of the Readme. Just saw the "Reverse engineered" of the Credit section. Thank you for the clarification.
 
Port added: PR 237997

Also, while checking this out I came across the following PRs for other new games to be added:
PR 227844
PR 227168

More games are incoming it seems :)

Thanks Malavon! This is really good news.

Don't bother with "reverse engeneering" stuff. Original game is always needed.

What's new and opensourced is the engine that plays original content.

Very happy here :)

Nuno Teixeira
 
Back
Top