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

Support for version 1.0 #47

Open
jaydee2k opened this issue Jun 14, 2021 · 8 comments
Open

Support for version 1.0 #47

jaydee2k opened this issue Jun 14, 2021 · 8 comments

Comments

@jaydee2k
Copy link

At first thanks for your efforts bringing Diablo 2 to widescreen monitors !

Is there the slightest chance to add 1.0 compability or are there engine restrictions in vanilla D2?

@IAmTrial
Copy link
Collaborator

IAmTrial commented Jun 18, 2021

Support for the original Diablo II 1.0 release would be extremely difficult. The main issue is that the assets that are used in the Lord of Destruction (LoD) Expansion Set are not usually available in a classic install. It would be possible to load d2exp.mpq and other MPQs, but I cannot be entirely sure of any potential side effects. I also want to avoid bundling any of the assets found in a standard LoD install.

The second problem is that many different places in the code are hardcoded values. These values are adjusted only for the 640x480 resolution. Starting with version 1.07 (which is the version LoD was released), some parts of the code have been changed to determine the values dynamically. Only very few places in the binary have hardcoded values. SGD2FreeRes patches these areas. With version 1.0, I think that a lot of work would be need to be done to even get something functional. Even more work will be needed to make anything look presentable.

The third problem is that there is no way to change the ingame resolution from the options menu. The initial solution would be to force a particular resolution when the game loads, but there would still lack a proper way to change the ingame resolution. It would be difficult to backport a solution that behaves exactly the same as later versions.

@jaydee2k
Copy link
Author

Thanks very much for the detailed explanation.

@cedricwaltercastroson
Copy link

Say If I was motivated enough.. and willing to get dirty.. where would you suggest to start?
Since there is no way to change the ingame resolution, I think forcing a particular resolution is the way to go about it.
Do you have any documentation? getting the addresses etc?

@IAmTrial
Copy link
Collaborator

Say If I was motivated enough.. and willing to get dirty.. where would you suggest to start? Since there is no way to change the ingame resolution, I think forcing a particular resolution is the way to go about it. Do you have any documentation? getting the addresses etc?

Do you mean that you would like to try to get SGD2FreeRes to run on Diablo II version 1.0, no matter the cost? It would be possible to force a resolution into the game, but I haven't inspected the 1.0 code in a while. I don't have much on 1.0, other than that it hardcodes a lot of values based on 640x480.

@cedricwaltercastroson
Copy link

cedricwaltercastroson commented Jul 16, 2022

Yes, I believe vanilla 1.0 or the best stable 1.05b deserves at least a 1066x600 resolution hack.

@IAmTrial
Copy link
Collaborator

Feel free to try. Make sure your fork and distribution conform to AGPL v3 or greater license.

@cedricwaltercastroson
Copy link

@IAmTrial
I got as far as this doing a binary patch on 1.05b based on your d2widescreenhack article.
Do you have any suggestion on to make it display properly?
image

Do you have discord we could discuss? I really want to work on this especially the vanilla classic D2.

@IAmTrial
Copy link
Collaborator

IAmTrial commented Jan 1, 2023

You can find me on the SlashDiablo Discord, you can DM me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants