Brian Callahan writes:

> Hi ports --
>
> Attached is a new port, games/devilutionx. DevilutionX is an open
> source engine recreation for the original Diablo I game.

Minor nit: pkg/README path should be ~/.local/share/diasurgical/devilution/

>
> ---
> pkg/DESCR:
> DevilutionX is an open source recreation of the game engine used in
> Diablo I, an action role-playing game by Blizzard Entertainment.
>
> While this package and the game engine are open source, one still needs
> to provide the original game assets from Diablo I, which is not open
> source. You will need to purchase the original game to use this package.
> ---
>
> This port is a multi-person effort between myself, thfr@, and
> brynet@.

Thank you for all of your work. I had a lot of fun poking at it to get
TCP multiplayer to work.

> The game works very well on amd64--the underlying engine is
> claimed to be nearly 100% binary identical to the original
> game. Sadly, multiplayer doesn't work on 64-bit platforms, but this is
> known and hopefully will be fixed at some point.

I opened an issue upstream for 64-bit
multiplayer. https://github.com/diasurgical/devilutionX/issues/191

I managed to get 0.4.0 to work with TCP multiplayer on amd64. I have
attached it here in case you want to test against it.

The two main diffs are:
* patch-SourceX_dvlnet_frame_queue_cpp
* patch-Source_msg_cpp

These deal with 64-bit issues. In particular, msg.cpp cleans up some
pointer arithmetic where there happened to be padding. frame_queue.cpp
copies from a 32-bit type to a 64-bit type.

These diffs have to be removed when building for i386, so perhaps some
macros and platform detection need to be added.

I briefly tried merging my work against the git version, but I ran into
a segfault and haven't had time to investigate a possible regression.

Testing should focus on the git head version that you posted, and you
should have the final say on 0.4.0 vs git head. Git head has had many
fixes.

In testing the git head version:

amd64:
* TCP dialog box saying "unable to create game"
* UDP terminating with uncaught exception of type
std::__1::system_error: send_to: Socket is already connected

i386:
* TCP player 2 successfully connects to player 1
* UDP same socket error

>
> OK?
>
> ~Brian

Attachment: devilutionx-0.4.0.tar.gz
Description: devilutionx-0.4.0.tar.gz

Reply via email to