Comments (11)
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 😛 )
from devilution.
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.
from devilution.
@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.
from devilution.
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?
from devilution.
@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...
from devilution.
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.
from devilution.
@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!
from devilution.
@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.
from devilution.
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.
from devilution.
(...) 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: [email protected]
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).
from devilution.
This will be handled via https://github.com/diasurgical/devilutionX
from devilution.
Related Issues (20)
- [hellfire] Hive/Crypt - invisible chests and barrels HOT 1
- Are you able to use Hellfire's source code? HOT 1
- [hellfire] OperateL2Door - Please check bin exactness HOT 10
- Building in VS2019: exe attempts to open crypto/rsa key file? HOT 1
- Cleanup code HOT 1
- out of memory error HOT 5
- 60 FPS support? HOT 1
- Migrate macOS builds to GitHub Actions HOT 10
- [Not A Bug] Question about the License and Legal Section in the Readme HOT 5
- MaxGold always depends on auricGold HOT 4
- Gnat String's "Multiple arrows per shot" only fires one arrow HOT 2
- Win98 Support? HOT 1
- Farmer Quest Bug HOT 1
- [Feature request] add option to show items on map HOT 4
- [Android] Option to change stationary toggle to allow moving
- "Legal" section ambiguity HOT 1
- [MSVC][permissive-] devilution failed to build with /permissive- on MSVC HOT 5
- [Need help] Getting a Massive bow of swiftness at clvl 44+ HOT 3
- Is this gap intentional? HOT 1
- mods don't work In the mobile application HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from devilution.