Skip to forum content

You are not logged in. Please login or register.


forums.pvpgn.pro → [EN] Diablo → D2GS and Windows Server Core 2019 x64

Pages 1

You must login or register to post a reply

RSS topic feed

Posts: 6

1 (edited by MindChild 29.09.2020 00:29)

Topic: D2GS and Windows Server Core 2019 x64

Hi all,

Trying to migrate a REALLY OLD PvPGN server running on Windows Server 2003 to something not so exploitable if I ever open it to people on the internet.

With that said, right now, the server is for my LAN ONLY

So long story short, after adding app compatibility FOD, dropping the firewall, and a few other tweaks, PvPGN/D2GS are installed properly from what I can tell, with the appropriate files from Diablo II LOD 1.13d. Everything runs... sort of. The PvPGN stack itself works, is stable, I can create a new user, create a new character, even create a new game, but it ends up saying "You are in line to create a game" and that I am in position 1. Great, time to debug.

I'd like to state that app compatibility is set to XP SP2 for all binaries here. Before I did such, D2GS would crash immediately. Now it at least loads. Nothing is written to the log files indicating what is going on, but event viewer has entries of the problem:

Faulting application name: D2GS.EXE, version: 1.10.3.6, time stamp: 0x40473cc7
Faulting module name: Fog.dll, version: 0.0.0.0, time stamp: 0x4e9de32b
Exception code: 0xc00000fd
Fault offset: 0x00008285
Faulting process id: 0x9d4
Faulting application start time: 0x01d695bb6757e2c3
Faulting application path: C:\Program Files (x86)\D2GS\D2GS.EXE
Faulting module path: C:\Program Files (x86)\D2GS\Fog.dll
Report Id: 22e565b0-5c66-4e94-b326-ac683b8e10cd
Faulting package full name: 
Faulting package-relative application ID: 

So D2GS is crashing due to a stack overflow originating in Fog.dll. I have little doubt that this is a compatibility problem, or Windows security features getting in the way. Any direction would be appreciated. Also, it would be good to hear the latest server platforms that people have successfully ran D2GS/PvPGN on. Thanks

Added: 28.09.2020 15:55


Edit:
Tried all different compatibility modes. Nothing worked better.

Disabled DEP. No difference.

Tried looking into Fog.dll itself. The export table has been mostly scrubbed so there is nothing of value there.

Edit2:

Looked at the d2gs source. Fog.dll gets patched in before D2GSPreInit and according to the log files, we get well past that . The game server actually starts. It just crashes inside afterwards. Again, it isn't caught in the program, so there isn't anything about closing down the process in the logs. Only in a Windows Application event in Windows event viewer

d2ge.log

09/28 16:23:58.324 D2GEThread: Server Thread 2720 Created

d2gs.log

09/28 16:23:41.918  (*)D2GSPreInit: Maxinum Game Number is 400
09/28 16:23:41.918  (*)PatchFogPool: Pre-Allocate 402 Pools=0x01AF0000  (0x255E58 bytes)
09/28 16:23:41.965  (*)PatchModule: 39 of 39 Patches Successfully Applied
09/28 16:23:41.965  (*)ScriptLoad: 0 Patches Loaded From Script File d2gs.script
09/28 16:23:41.965  (*)PatchModule: 0 of 0 Patches Successfully Applied
09/28 16:23:41.965  (*)D2GSInit: Starting up Game Server,Initializing...
09/28 16:23:41.965  (*)D2GSInit: Server Name: Diablo II Game Server

2

Re: D2GS and Windows Server Core 2019 x64

Hi! How are you?
If you mention that it is with x64 bits, remember to install the regedit in WOW6432NODE, if so, that you have installed it correctly, remember to use the Compatibility in Win XP Service Pack 2 and run it as Administrator.

If it still crashes, check that you have all the D2GS files installed. Anyway, I recommend that you switch to LINUX, either through a VirtualBox or similar, because there are many "hackers" who will try to throw the server away and if you do not patch it with iptables, you will not be able to offer a quality service on your server to your players.

Any questions you have, let me know.

Best regards

3

Re: D2GS and Windows Server Core 2019 x64

kikowtf1 wrote:

Hi! How are you?
If you mention that it is with x64 bits, remember to install the regedit in WOW6432NODE, if so, that you have installed it correctly, remember to use the Compatibility in Win XP Service Pack 2 and run it as Administrator.

If it still crashes, check that you have all the D2GS files installed. Anyway, I recommend that you switch to LINUX, either through a VirtualBox or similar, because there are many "hackers" who will try to throw the server away and if you do not patch it with iptables, you will not be able to offer a quality service on your server to your players.

Any questions you have, let me know.

Best regards

I appreciate the attempt at feedback, but I don't believe I see where anything is relevant, unless I am misunderstanding you. I ensured that the registry settings were in both places (HKLM\SOFTWARE\D2Server\D2GS\ and HKLM\SOFTWARE\Wow6432Node\D2Server\D2GS) just to be sure, but they were in the right place already, else I would have other errors between all of the apps being unable to communicate with each other. The files are installed just fine.

It is already running in a VM on XenServer (XCP-ng).

Linux isn't a solution to anything here. Wine is even worse with D2GS so I would have to run it on a separate Windows installation anyway, bring me right back to wear I am.

Thanks.

4 (edited by kikowtf1 29.09.2020 00:47)

Re: D2GS and Windows Server Core 2019 x64

Hmm, interesting.. check that you have the correct game files, I get them from the PvPGN CDN, here: cdn.pvpgn.pro/diablo2/1.13d/ in your case.

My server is on Debian 9, on Google Cloud Platform servers, in turn, I use Wine 2.0.1 and it works perfect. It is more, much more reliable than Windows. The downside of this is that you don't have a graphical interface so it is more difficult to get the error logs, but once you have everything, there are no glitches.

I do not know if it is allowed but the ip of the server so that you can try to enter and if you want you can contact me ingame is: 35.247.213.203

Best regards,

Added: 29.09.2020 00:42

MindChild wrote:

d2ge.log

09/28 16:23:58.324 D2GEThread: Server Thread 2720 Created

d2gs.log

09/28 16:23:41.918  (*)D2GSPreInit: Maxinum Game Number is 400
09/28 16:23:41.918  (*)PatchFogPool: Pre-Allocate 402 Pools=0x01AF0000  (0x255E58 bytes)
09/28 16:23:41.965  [b](*)PatchModule: 39 of 39 Patches Successfully Applied[/b]
09/28 16:23:41.965  (*)ScriptLoad: 0 Patches Loaded From Script File d2gs.script
09/28 16:23:41.965  (*)PatchModule: 0 of 0 Patches Successfully Applied
09/28 16:23:41.965  (*)D2GSInit: Starting up Game Server,Initializing...
09/28 16:23:41.965  (*)D2GSInit: Server Name: Diablo II Game Server

If I'm not mistaken, the D2GE is the one that loads the scripts, not the D2GS, you have wrongly mentioned the files or something is failing.. very strange. I send you how the two files should follow, so you can check where you are failing.

d2ge.log

09/28 03:15:15.941  (*)D2Server1.13: Version 1.13 patch build 03 by marsgod. 2010-03-24
09/28 03:15:15.941  (*)D2GSPreInit: Diablo2 Game Server Library 0x010A0304
09/28 03:15:15.942  (*)D2GSPreInit: D2GSLib Version: D2GSLib 1.11.0.0 Build On Feb 16 2007 21:13:10
09/28 03:15:15.942  (*)D2GSPreInit: Core Game Version: Diablo2 LOD v1.11b
09/28 03:15:15.962  (*)D2GSPreInit: Running on Windows XP Version 5.1 Service Pack 3 (Build 2600)
09/28 03:15:15.962  (*)D2GSPreInit: CPU Number: 1
09/28 03:15:15.962  (*)D2GSPreInit: CPU Infomation: GenuineIntel (Type: 0 Family: 6 Model: F Stepping: 0 Brand: 0)
09/28 03:15:15.962  (*)D2GSPreInit: CPU Speed: Approx. 2199 MHz
09/28 03:15:15.962  (*)D2GSPreInit: Physical Memory: 2047/2047 MB
09/28 03:15:15.962  (*)D2GSPreInit: Virtual Memory: 2047/2047 MB
09/28 03:15:15.962  (*)D2GSPreInit: PageFile: 2761/3704 MB
09/28 03:15:15.962  (*)D2GSPreInit: Computer Name: diablo2
09/28 03:15:15.962  (*)D2GSPreInit: User Name: kikowtf1
09/28 03:15:15.991  (*)D2GSPreInit: Maxinum Game Number is 786632
09/28 03:15:15.991  (*)PatchFogPool: Pre-Allocate 786634 Pools=0x01A60000  (0x1DA2C6F8 bytes)
09/28 03:15:16.837  (*)PatchModule: 39 of 39 Patches Successfully Applied
09/28 03:15:16.838  (*)ScriptLoad: 8 Patches Loaded From Script File d2gs.script
09/28 03:15:16.838  (*)PatchModule: Patch 7 (RVA 0x383A4) Source Data Mismatch, Pattern Search Result 0
09/28 03:15:16.838  (*)PatchModule: Patch 7 Pattern (none) not found
09/28 03:15:16.838  (*)PatchModule: 7 of 8 Patches Successfully Applied
09/28 03:15:16.840  (*)D2GSInit: Starting up Game Server,Initializing...
09/28 03:15:16.840  (*)D2GSInit: Server Name: Diablo II Game Server
09/28 03:15:16.883  (*)D2GSInit: MPQs Initialized
09/28 03:15:16.905  (*)D2GSInit: Language Initialized
09/28 03:15:16.905  (*)D2GSInit: Pre-Cache Enabled
09/28 03:15:18.072  (*)D2GSInit: Game Data tables Initialized
09/28 03:15:18.088  (*)D2GSInit: NT Specific Features Enabled
09/28 03:15:18.088  (*)D2GSInit: Network Listening Socket Initialized
09/28 03:15:18.088  (*)D2GSInit: Callback Function Table Set up
09/28 03:15:18.089  (*)D2GSStart: Game Server Initialize done,Entering Message Loop
09/28 03:15:18.138  (*)ConfigLoad: Loading config from file C:\D2GS\D2Server.ini
09/28 03:15:18.141  (*)ConfigLoad: Loaded 348 item data from ItemConfig.dat
09/28 03:15:18.142  (*)ConfigLoad: WorldEvent item loaded succssfully
09/28 03:15:18.142  (*)ConfigLoad: WorldEvent is enabled
09/28 03:15:18.142  (*)D2Server1.13: Act2 & Act5 MeleeHireableAIFix Enabled, when IM, no attack.
09/28 03:15:18.142  (*)D2Server1.13: NeroPetAIFix Enabled, when IM, no attack.
09/28 03:15:18.143  (*)D2Server1.13: ExpGlitchFix Enabled.
09/28 03:15:18.143  (*)D2Server1.13: UberUp Disabled.
09/28 03:15:18.143  (*)D2Server1.13: Unicode Char Name Enabled.
09/28 03:15:18.143  (*)D2Server1.13: PreCalculate TC NoDropTbl Enabled.
09/28 03:15:18.143  (*)D2Server1.13: EthSocketBugFix Enabled.
09/28 03:15:18.143  (*)D2Server1.13: BugMF Disabled.
09/28 03:15:18.143  (*)D2Server1.13: DC will not spawn in some area.

d2gs.log

09/28 03:15:15.937 D2GEThread: Server Thread 52 Created
09/28 03:15:18.089 D2GEThread: Game Server Thread Start Successfully
09/28 03:15:18.092 D2GSResetGameList: End all game in the Game List and in the GE
09/28 03:15:18.092 watchdog_init: CreateThread watchdog_thread, 60
09/28 03:15:18.092 main: Entering Main Server Loop
09/28 03:15:18.094 D2GSConnectToD2xS: Connected to D2DBS Successfully
09/28 03:15:18.094 D2GSSendClassToD2DBS: Send connection class packet to D2DBS
09/28 03:15:18.095 D2GSConnectToD2xS: Connected to D2CS Successfully
09/28 03:15:18.095 D2GSSendClassToD2CS: Send connection class packet to D2CS
09/28 03:15:18.096 D2GSNetRecvPacket: CS socket become writable
09/28 03:15:18.096 D2GSAuthreq: Auth request for 'Manaos'
09/28 03:15:18.097 D2GSNetRecvPacket: DBS socket become writable
09/28 03:15:18.145 D2GSAuthReply: Game Server Activated by D2CS
09/28 03:15:18.146 D2GSSetD2CSMaxGameNumber: Tell D2CS to set max game to 393216
09/28 03:15:18.146 D2GSSetGameInfoByD2CS: Set current maxgame to 393216

Best regards,

5

Re: D2GS and Windows Server Core 2019 x64

i can fix it for you

6

Re: D2GS and Windows Server Core 2019 x64

kikowtf1 wrote:

Hmm, interesting.. check that you have the correct game files, I get them from the PvPGN CDN, here: cdn.pvpgn.pro/diablo2/1.13d/ in your case.

My server is on Debian 9, on Google Cloud Platform servers, in turn, I use Wine 2.0.1 and it works perfect. It is more, much more reliable than Windows. The downside of this is that you don't have a graphical interface so it is more difficult to get the error logs, but once you have everything, there are no glitches.

I do not know if it is allowed but the ip of the server so that you can try to enter and if you want you can contact me ingame is: 35.247.213.203

Best regards,

Added: 29.09.2020 00:42

...

If I'm not mistaken, the D2GE is the one that loads the scripts, not the D2GS, you have wrongly mentioned the files or something is failing.. very strange. I send you how the two files should follow, so you can check where you are failing.

d2ge.log

09/28 03:15:15.941  (*)D2Server1.13: Version 1.13 patch build 03 by marsgod. 2010-03-24
09/28 03:15:15.941  (*)D2GSPreInit: Diablo2 Game Server Library 0x010A0304
09/28 03:15:15.942  (*)D2GSPreInit: D2GSLib Version: D2GSLib 1.11.0.0 Build On Feb 16 2007 21:13:10
09/28 03:15:15.942  (*)D2GSPreInit: Core Game Version: Diablo2 LOD v1.11b
09/28 03:15:15.962  (*)D2GSPreInit: Running on Windows XP Version 5.1 Service Pack 3 (Build 2600)
09/28 03:15:15.962  (*)D2GSPreInit: CPU Number: 1
09/28 03:15:15.962  (*)D2GSPreInit: CPU Infomation: GenuineIntel (Type: 0 Family: 6 Model: F Stepping: 0 Brand: 0)
09/28 03:15:15.962  (*)D2GSPreInit: CPU Speed: Approx. 2199 MHz
09/28 03:15:15.962  (*)D2GSPreInit: Physical Memory: 2047/2047 MB
09/28 03:15:15.962  (*)D2GSPreInit: Virtual Memory: 2047/2047 MB
09/28 03:15:15.962  (*)D2GSPreInit: PageFile: 2761/3704 MB
09/28 03:15:15.962  (*)D2GSPreInit: Computer Name: diablo2
09/28 03:15:15.962  (*)D2GSPreInit: User Name: kikowtf1
09/28 03:15:15.991  (*)D2GSPreInit: Maxinum Game Number is 786632
09/28 03:15:15.991  (*)PatchFogPool: Pre-Allocate 786634 Pools=0x01A60000  (0x1DA2C6F8 bytes)
09/28 03:15:16.837  (*)PatchModule: 39 of 39 Patches Successfully Applied
09/28 03:15:16.838  (*)ScriptLoad: 8 Patches Loaded From Script File d2gs.script
09/28 03:15:16.838  (*)PatchModule: Patch 7 (RVA 0x383A4) Source Data Mismatch, Pattern Search Result 0
09/28 03:15:16.838  (*)PatchModule: Patch 7 Pattern (none) not found
09/28 03:15:16.838  (*)PatchModule: 7 of 8 Patches Successfully Applied
09/28 03:15:16.840  (*)D2GSInit: Starting up Game Server,Initializing...
09/28 03:15:16.840  (*)D2GSInit: Server Name: Diablo II Game Server
09/28 03:15:16.883  (*)D2GSInit: MPQs Initialized
09/28 03:15:16.905  (*)D2GSInit: Language Initialized
09/28 03:15:16.905  (*)D2GSInit: Pre-Cache Enabled
09/28 03:15:18.072  (*)D2GSInit: Game Data tables Initialized
09/28 03:15:18.088  (*)D2GSInit: NT Specific Features Enabled
09/28 03:15:18.088  (*)D2GSInit: Network Listening Socket Initialized
09/28 03:15:18.088  (*)D2GSInit: Callback Function Table Set up
09/28 03:15:18.089  (*)D2GSStart: Game Server Initialize done,Entering Message Loop
09/28 03:15:18.138  (*)ConfigLoad: Loading config from file C:\D2GS\D2Server.ini
09/28 03:15:18.141  (*)ConfigLoad: Loaded 348 item data from ItemConfig.dat
09/28 03:15:18.142  (*)ConfigLoad: WorldEvent item loaded succssfully
09/28 03:15:18.142  (*)ConfigLoad: WorldEvent is enabled
09/28 03:15:18.142  (*)D2Server1.13: Act2 & Act5 MeleeHireableAIFix Enabled, when IM, no attack.
09/28 03:15:18.142  (*)D2Server1.13: NeroPetAIFix Enabled, when IM, no attack.
09/28 03:15:18.143  (*)D2Server1.13: ExpGlitchFix Enabled.
09/28 03:15:18.143  (*)D2Server1.13: UberUp Disabled.
09/28 03:15:18.143  (*)D2Server1.13: Unicode Char Name Enabled.
09/28 03:15:18.143  (*)D2Server1.13: PreCalculate TC NoDropTbl Enabled.
09/28 03:15:18.143  (*)D2Server1.13: EthSocketBugFix Enabled.
09/28 03:15:18.143  (*)D2Server1.13: BugMF Disabled.
09/28 03:15:18.143  (*)D2Server1.13: DC will not spawn in some area.

d2gs.log

09/28 03:15:15.937 D2GEThread: Server Thread 52 Created
09/28 03:15:18.089 D2GEThread: Game Server Thread Start Successfully
09/28 03:15:18.092 D2GSResetGameList: End all game in the Game List and in the GE
09/28 03:15:18.092 watchdog_init: CreateThread watchdog_thread, 60
09/28 03:15:18.092 main: Entering Main Server Loop
09/28 03:15:18.094 D2GSConnectToD2xS: Connected to D2DBS Successfully
09/28 03:15:18.094 D2GSSendClassToD2DBS: Send connection class packet to D2DBS
09/28 03:15:18.095 D2GSConnectToD2xS: Connected to D2CS Successfully
09/28 03:15:18.095 D2GSSendClassToD2CS: Send connection class packet to D2CS
09/28 03:15:18.096 D2GSNetRecvPacket: CS socket become writable
09/28 03:15:18.096 D2GSAuthreq: Auth request for 'Manaos'
09/28 03:15:18.097 D2GSNetRecvPacket: DBS socket become writable
09/28 03:15:18.145 D2GSAuthReply: Game Server Activated by D2CS
09/28 03:15:18.146 D2GSSetD2CSMaxGameNumber: Tell D2CS to set max game to 393216
09/28 03:15:18.146 D2GSSetGameInfoByD2CS: Set current maxgame to 393216

Best regards,

You had my interest for a moment with your claim about Wine+Linux, but I just spent way too much time finding that it still doesn't work. As a matter of fact, I got further with the OLD code base on Wine. At least it exited out with a double free memory error, where either binaries won't run here. D2GSSVC.exe just exits with no error code and D2GS.exe exits with exit code 255. Yes, Wine is configured correctly with added i386 arch and a 32bit WINEPREFIX. Absolutely none of the log files are written to.

kiugetski wrote:

i can fix it for you

Great. Any insight you have is welcome

Added: 30.09.2020 13:58

I figured it out. The problem is WoW (Windows on Windows) compatibility on 64bit Windows.

I was able to get it working with minimal effort on Windows 10 32bit. Yet, had the same problems with Windows 10 64bit. Gave it a spin on Server 2016 and 2012 R2. Same. So, yeah

So essentially, unless you want to run an outdated Windows OS, the only currently supported Windows OS that will run this is Windows 10 x86. There are no modern 32bit Windows Server OS's.

Posts: 6

Pages 1

You must login or register to post a reply

Who now at forum

Currently view post: 0 guests, 0 registered users

forums.pvpgn.pro → [EN] Diablo → D2GS and Windows Server Core 2019 x64