[1.09d] Multiple Diablo II Instances

This forum is for discussions on how to edit what can not be edited through the txt files, needless to say this isn't about battle net hacking.

Moderators: Nefarius, Havvoric

Post Reply
User avatar
Kieran
Senior Moderator
Angel
Posts: 617
Joined: Mon Oct 22, 2007 9:46 am
Location: England
Contact:
Great Britain

Hand-picked

[1.09d] Multiple Diablo II Instances

Post by Kieran » Sun Jan 21, 2018 8:06 pm

Hello Everybody,

I have made an alteration in D2gfx.dll to allow multiple instances of Diablo II to be ran. I have done this for 1.10f and 1.13c without any problems. I have made the same change for version 1.09d which works fine when running from Game.exe.

When running from Diablo II.exe I am only able to open one window, unless I open a second version from Game.exe. This does not occur with either 1.10f or 1.13c; only with 1.09d.

What is strange is that if I open 1.09d from Diablo II.exe it does not allow me to open a second from my other directory for 1.13c either.

I initially thought that the Diablo II.exe must have been different from the Diablo II.exe used in 1.10f and 1.13c however it appears to be exactly the same.

Does anybody have any knowledge on this or how I could resolve this? I understand I could just make a shortcut to Game.exe and run as normal however I am curious as to what the difference is and why this is happening.

Thanks for any info you guys might be able to offer.

Kieran

User avatar
devurandom
Forum Regular
Angel
Posts: 897
Joined: Sat Mar 07, 2015 9:07 pm
United States of America

Re: [1.09d] Multiple Diablo II Instances

Post by devurandom » Mon Jan 22, 2018 4:09 pm

Edit:

What happens if you replace the old diabloII.exe with a newer version, like one from 1.13c?
Assembly Reference | 1.13d Code Edits | UVLoD | BaseMod Plugin

Fiat paper money is the most elaborate and well devised form of slavery the world has ever seen..

User avatar
Kieran
Senior Moderator
Angel
Posts: 617
Joined: Mon Oct 22, 2007 9:46 am
Location: England
Contact:
Great Britain

Hand-picked

Re: [1.09d] Multiple Diablo II Instances

Post by Kieran » Mon Jan 22, 2018 5:13 pm

devurandom wrote:
Mon Jan 22, 2018 4:09 pm
Edit:

What happens if you replace the old diabloII.exe with a newer version, like one from 1.13c?
They are both the same executable files.

Even so, I've tried with 1.13c and 1.14b Diablo II.exe's and same results!

Interestingly;

When you open from Diablo II.exe it launches the game fine. When I double click to open a second it does nothing.

When I launch from Game.exe another instance does open however windows separates it as another program. See below for a comparison:

Version 1.09 (First icon is Diablo II.exe - the rest are Game.exe)
Image

Version 1.13c (All icons are Diablo II.exe)
Image


This is the code for D2gfx.dll

Code: Select all

6FA7447C   EB 47         		JMP SHORT D2gfx.6FA744C5
6FA7447E   8D85 DCFEFFFF 	LEA EAX,DWORD PTR SS:[EBP-124]
6FA74484   68 64E4A76F    		PUSH D2gfx.6FA7E464                      ; ASCII "Diablo II Critical Error"
6FA74489   50             		PUSH EAX
6FA7448A   E8 310F0000     	CALL D2gfx.6FA753C0
6FA7448F   8D8D DCFDFFFF  	LEA ECX,DWORD PTR SS:[EBP-224]
6FA74495   68 3CE6A76F      	PUSH D2gfx.6FA7E63C                      ; ASCII "Only one copy of Diablo II may run at a time."
6FA7449A   51               		PUSH ECX
6FA7449B   E8 200F0000      	CALL D2gfx.6FA753C0
6FA744A0   83C4 10          		ADD ESP,10
6FA744A3   8D95 DCFEFFFF    	LEA EDX,DWORD PTR SS:[EBP-124]
6FA744A9   8D85 DCFDFFFF    	LEA EAX,DWORD PTR SS:[EBP-224]
6FA744AF   6A 30            		PUSH 30
6FA744B1   52               		PUSH EDX
6FA744B2   50               		PUSH EAX
6FA744B3   53               		PUSH EBX
6FA744B4   FF15 74C1A76F    	CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; USER32.MessageBoxA
6FA744BA   5F               		POP EDI
6FA744BB   5E               		POP ESI
6FA744BC   33C0             		XOR EAX,EAX
6FA744BE   5B               		POP EBX
6FA744BF   8BE5             		MOV ESP,EBP
6FA744C1   5D               		POP EBP
6FA744C2   C2 0800          		RETN 8

User avatar
devurandom
Forum Regular
Angel
Posts: 897
Joined: Sat Mar 07, 2015 9:07 pm
United States of America

Re: [1.09d] Multiple Diablo II Instances

Post by devurandom » Tue Jan 23, 2018 10:40 am

So it may have something to do with securom in v1.09 game.exe
Try installing the Fixed Game.exe for 1.09d from GalaXyHaXz linked in post below.
It removes securom to allow the game to run without CD.

viewtopic.php?t=61484
Assembly Reference | 1.13d Code Edits | UVLoD | BaseMod Plugin

Fiat paper money is the most elaborate and well devised form of slavery the world has ever seen..

User avatar
Kieran
Senior Moderator
Angel
Posts: 617
Joined: Mon Oct 22, 2007 9:46 am
Location: England
Contact:
Great Britain

Hand-picked

Re: [1.09d] Multiple Diablo II Instances

Post by Kieran » Tue Jan 23, 2018 6:52 pm

devurandom wrote:
Tue Jan 23, 2018 10:40 am
So it may have something to do with securom in v1.09 game.exe
Try installing the Fixed Game.exe for 1.09d from GalaXyHaXz linked in post below.
It removes securom to allow the game to run without CD.

viewtopic.php?t=61484
This is already the game.exe that I use mate!

FearedBliss
Posts: 82
Joined: Sat Oct 16, 2010 4:29 pm
United States of America

Re: [1.09d] Multiple Diablo II Instances

Post by FearedBliss » Sun Jan 28, 2018 2:37 am

You need to use Game.exe and the modified d2gfx.dll like what you are doing. GalaxyHaxz change only has securom. Him and I worked together on some modifications together and I've used his . exes as a basis for all of my changes. You can take a look at my mod, in the Code Edits folder you can find all the changes documented. The files folder has all of the files organized. The WHATIS file in the main directory shows you which file has what change.

https://github.com/fearedbliss/singling

Note: It is normal behavior for pre 1.10 versions to require Game.exe for multiple windows rather than Diablo II.exe. I don't recommend using Diablo II.exe. there isn't anything in that executable that is really needed. I do understand your question is why the difference in behavior.. I asked the same question back when I first encountered that. But since Game.exe worked for every version consistently, I went with that solution and saved time.

User avatar
Kieran
Senior Moderator
Angel
Posts: 617
Joined: Mon Oct 22, 2007 9:46 am
Location: England
Contact:
Great Britain

Hand-picked

Re: [1.09d] Multiple Diablo II Instances

Post by Kieran » Sun Jan 28, 2018 3:08 am

Appreciate that Fearedbliss but this is exactly what I'm trying to discover; the reasons why :)

Post Reply

Return to “Code Editing”