Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross-platform support? #17

Closed
neuromancer opened this issue Jun 18, 2018 · 11 comments
Closed

Cross-platform support? #17

neuromancer opened this issue Jun 18, 2018 · 11 comments
Labels
enhancement New feature or request
Milestone

Comments

@neuromancer
Copy link

I noticed that devilution can be compiled in Linux to run it using wine, but I was wondering if there is any plans to have a native binary for other platforms like Linux or OSX.

@ghost
Copy link

ghost commented Jun 18, 2018

That can be seen as a mid-long term goal, however:

(...) to reverse the user interface (DiabloUI) to help make Diablo cross-platform.

The title-screen/UI code has not yet been reversed, but even then it's probably useless. It uses a dialog system which is specific to Windows and causes the black screen issues under Wine. That code will have to be decompiled and re-written (as with the PS1/MAC port). The Hell 2 looks like it accomplished this, but it's unlikely the author would share the source.

Other than that and network code, @mewmew has a Smack32 video decoder written in Go, and StormLib will replace the storm.dll. So it's just a matter of replacing the DirectX calls with OpenGL ones.

(Personally I think Diablo looks better under Wine, OGL shaders are much smoother 😛 )

@mewmew
Copy link
Contributor

mewmew commented Jun 19, 2018

@mewmew has a Smack32 video decoder written in Go

The Smacker video decoder is very much in the early works. With a Hackathon or two it may be done, but for now it is not usable.

@baszczewski
Copy link

There is few D1 open source variants. For example on early stage is Freeablo:
https://github.com/wheybags/freeablo
Maybe you can use something for new UI from this project?

@ghost
Copy link

ghost commented Jun 19, 2018

@baszczewski Freeablo is indeed a very impressive project. However, as it's a rewrite, the code would need an overhaul to work with the original game. Last I heard the UI was actually still unfinished, and Wheybags had planned on implementing it later on. That was circa-2015, though...

@ghost
Copy link

ghost commented Jun 19, 2018

I think this is possible I did some work with this back in 2004..... I will cross my fingers and see if I can find any sources lying around.

@ghost ghost added the enhancement New feature or request label Jun 20, 2018
@ghost ghost added this to the 2.0 milestone Jun 21, 2018
@pengyz
Copy link

pengyz commented Jun 21, 2018

Freeablo now use nuklear as it's ui library.
It's a simple and header-only imgui library written in ANSI C and rendering with OpenGL backend.
@galaxyhaxz I don't if it helpful for this project.

@ghost
Copy link

ghost commented Jun 25, 2018

@mewmew Looks like we won't need a video decoder: Rad Video Tools

I think once we get Diablo running on linux, we could make a script which will convert all assets in the MPQ to open source formats. The script could use the Rad tools to convert the .smk to an open source format. Then repack everything back up into a .zip format, so we don't need the MPQ library at all!

@mewmew
Copy link
Contributor

mewmew commented Jun 26, 2018

@mewmew Looks like we won't need a video decoder: Rad Video Tools

That's great! Just have to find a suitable format to convert it to.

The requirements for a video format, as I see it is:

  • Open source decoders
  • Open (and royalty free) specification
  • Lossless (both audio and video)

I think once we get Diablo running on linux, we could make a script which will convert all assets in the MPQ to open source formats. The script could use the Rad tools to convert the .smk to an open source format. Then repack everything back up into a .zip format, so we don't need the MPQ library at all!

Definitely! This is something @7i and I have discussed for a long time, that any remake of Diablo should have a pre-process step that converts all of the original game assets to modern file formats with open specifications.

This is the approach taken by spark to add Diablo 1 game assets to the FLARE game engine. For reference, see the opensourceami scripts.

This is also one of the objectives of Djavul:
2. Convert the original game assets to file formats with open specifications (subproject formats).

More specifically tracked by the formats subproject.

@sskras
Copy link
Contributor

sskras commented Jun 28, 2018

As read in the comment in MyAbandonware, I feel it would be nice to have the mobile (Android) version of it too=)

LIL LORRIR 2018-06-26 0 point Windows version

I loved the original Diablo game on Sony Play station then later on my computer. I would love to be able to play it on my phone also.

Though I do not play games on Android + have no idea whether a phone is suitable for an ARPG.

@sskras
Copy link
Contributor

sskras commented Jul 6, 2018

@galaxyhaxz,

(...) to reverse the user interface (DiabloUI) to help make Diablo cross-platform.

(...) That code will have to be decompiled and re-written (as with the PS1/MAC port). The Hell 2 looks like it accomplished this, but it's unlikely the author would share the source.

why would TH2 have to reverse this dll? I haven't been using TH2 (or any mod at all), hence my curiosity.

The author seems to be friendly, BTW:

Contact me regarding the mod via email: diablothehell@gmail.com
Please don't be shy or afraid to write me. If you have any questions or want to tell me something,
go ahead and do that right away. It's OK really. I always answer emails.

Some people could become even his Patreon supporters (eg. me) if that would help sharing the source (given it exists).

@ghost
Copy link

ghost commented Aug 3, 2018

This will be handled via https://github.com/diasurgical/devilutionX

@ghost ghost closed this as completed Aug 3, 2018
AJenbo pushed a commit that referenced this issue Dec 17, 2019
Main menu and hero selection screen are now px perfect
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants