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

Diablo II Lord of Destruction 1.13c does not boots #152

Closed
gandalfthewhite19890404 opened this issue Apr 8, 2022 · 40 comments
Closed

Diablo II Lord of Destruction 1.13c does not boots #152

gandalfthewhite19890404 opened this issue Apr 8, 2022 · 40 comments

Comments

@gandalfthewhite19890404
Copy link

Diablo II Lord of Destruction 1.13c does not boots, process is hanging in task manager. Tried with default config, with OpenGL, GDI as renderers.
GPU - NVIDIA 8600GT 512MB
Game version 1.13c, OS - Windows 7 x64.
cnc-ddraw.log

@SilentMRG
Copy link

Same thing here. The only difference is that I am using patch 1.13d. And when I run the game, some characters like * ) 8 and etc... appear in a small square in the upper left corner of the screen. I have already run the video test and selected DirectDraw and there is no compatibility option enabled.

@SilentMRG
Copy link

SilentMRG commented Aug 13, 2022

Hey my man!
I found an easier solution like pie and it works like a charm!

First of all, delete all cnc-ddraw files, and then download and install the latest patch (1.14d), you can find it here: https://www.pcgamingwiki.com/wiki/Diablo_II

Then download and install nGlide: https://www.zeus-software.com/downloads/nglide
And finally, in the game shortcut add this: -3dfx
Edit: Oops... I forgot to say that if you are playing on Windows 7, you must additionally check "Disable desktop composition" option in application compatibility tab for "game.exe".

Optional: If you installed Diablo II + Expansion from retail discs, and want to play the Expansion without the CD in the disc drive, open the Expansion disc and copy these files... "D2XVideo.MPQ", "D2XMusic.MPQ" and paste them in the game directory.

And that's all my friend! Enjoy!!!

Note: I like cnc-ddraw and use it in many games, however unfortunately cnc-ddraw doesn't work the way it should with Diablo II and its Expansion. It is a pity... =(

@FunkyFr3sh
Copy link
Owner

@SilentMRG To get cnc-ddraw working you have multiple choices, either use 1.14b (this is what you get from battle.net), make sure you download proxy-dlls.zip from the release page and follow the instructions.

1.13d does work as well, but you need to download community made patches to fix the scrolling letters problem. It does work without a patch as well but the game needs a very long time to start.

@FunkyFr3sh
Copy link
Owner

FunkyFr3sh commented Sep 8, 2022

@gandalfthewhite19890404 You probably also had the scrolling letters issue (My log file looks the same on windows 7)

It's easier to just download 1.14b instead:

Download and install the game:
D2: https://www.blizzard.com/de-de/download/confirmation?platform=windows&locale=en_US&product=d2
LOD: https://www.blizzard.com/de-de/download/confirmation?platform=windows&locale=en_US&product=d2lod

Download cnc-ddraw and extract it into your game folder:
cnc-ddraw: https://github.com/CnCNet/cnc-ddraw/releases/latest/download/cnc-ddraw.zip

Rename SmackW32.dll to SmackW32x.dll, download the proxy-dll.zip and extract the SmackW32.dll from the Diablo II folder into your game folder
proxy-dlls: https://github.com/CnCNet/cnc-ddraw/releases/latest/download/proxy-dlls.zip

@SilentMRG
Copy link

SilentMRG commented Oct 18, 2023

And for those who install Diablo II plus the Expansion directly from the retail CD, the patch 1.14b is attached...
LODPatch_114b.zip =D
Unfortunately, I couldn't find the 1.14b patch for the base game for those who might want to play without the Expansion. =/

Note: I must say that with cnc-ddraw the game runs much, much better! With nGlide the graphics become ugly, rough, and look like cardboard wet. And with cnc everything is as beautiful as those days... Shiny like a diamond. =)

@SilentMRG
Copy link

Just to let everyone know that a guy uploaded these installers:
https://archive.org/details/d-2-1.14b-installer-en-us

I haven't tested them. But anyone who wants to test it is a good opportunity. =)

@FunkyFr3sh
Copy link
Owner

Yeah, that old installer is good for Linux/macOS. On windows the new one works fine though, you don't necessarily need the old installer there

@SilentMRG
Copy link

SilentMRG commented Dec 3, 2023

@gandalfthewhite19890404 You probably also had the scrolling letters issue (My log file looks the same on windows 7)

It's easier to just download 1.14b instead:

Download and install the game: D2: https://www.blizzard.com/de-de/download/confirmation?platform=windows&locale=en_US&product=d2 LOD: https://www.blizzard.com/de-de/download/confirmation?platform=windows&locale=en_US&product=d2lod

Download cnc-ddraw and extract it into your game folder: cnc-ddraw: https://github.com/CnCNet/cnc-ddraw/releases/latest/download/cnc-ddraw.zip

Rename SmackW32.dll to SmackW32x.dll, download the proxy-dll.zip and extract the SmackW32.dll from the Diablo II folder into your game folder proxy-dlls: https://github.com/CnCNet/cnc-ddraw/releases/latest/download/proxy-dlls.zip

Hey...

I have a doubt...

I went to install the latest version of "cnc" and I came across something called "winmm.dll" in the "proxy-dlls" file, so I was confused, because previously the file was "SMACKW32.dll" and the original file had to be renamed to "SMACKW32x.dll".

So I did it like this: I copied "winmm.dll" to the D2 folder and renamed "SMACKW32x.dll" (original file) to its real name "SMACKW32.dll", did I do it right?

Edit: Well, from what I could tell "winmm.dll" is a Windows 10 dll or something like that, and I'm on Windows 7, so when I did the above procedure strangely the game worked only once and then I received the error "APPCRASH" every time I tried to start D2. Anyway, I downloaded the "proxy-dlls" version 5.9.0.0 and renamed the "SMACKW32.dll" etc... And everything worked fine. Now I'm wondering if "SMACKW32.dll" from version 5.9.0.0 can work together with version 6.0.0.0, as this is how it looks here: 6.0.0.0 plus SMACKW32.dll from version 5.9.0.0. I don't know if this is correct, what I do know is that the game started without errors.

Thanks in advance!

@FunkyFr3sh
Copy link
Owner

Yeah you done it right. The idea with the new method is that you don't have to rename any files, just extract the winmm.dll into the game folder and that's it.

I just tested it on windows 7 and it's working fine for me. Do you have a 64bit windows 7 or 32bit?

The old SMACKW32.dll is still working fine with 6.0.0.0, so yeah, you can still use it if needed

@SilentMRG
Copy link

I just tested it on windows 7 and it's working fine for me. Do you have a 64bit windows 7 or 32bit?

I use Windows 7 Ultimate 64-bit.

@SilentMRG
Copy link

I just want to say that until today I was using version 6.0.0.0, so today I changed to the latest version (6.4.0.0) and "winmm.dll" started to work! This is good, as I will no longer need to rename "SMACKW32.dll". Thanks for fixing this. =)

@FunkyFr3sh
Copy link
Owner

I just want to say that until today I was using version 6.0.0.0, so today I changed to the latest version (6.4.0.0) and "winmm.dll" started to work! This is good, as I will no longer need to rename "SMACKW32.dll". Thanks for fixing this. =)

Nice! Yeah, I could never reproduce your bug so I wasn't sure whats up with it. winmm.dll is still the same one from 6.0 (I didn't recompile it)

@SilentMRG
Copy link

LOL...it's a mystery then! The operating system is the same and I'm using the same D2 installation. However, just now I tried to start again and received the AppCrash error. ¬¬ But this time it was different, because if I try to start D2 two more times, it starts. Go figure...

@SilentMRG
Copy link

I just got the GOG wrapper for my game Gorky 17, and played it on D2, whether this will cause problems online, I don't know anymore, well, I don't even play online, hehe. If you want to test it, it's in the attachment. =)
ddraw.zip

@FunkyFr3sh
Copy link
Owner

Yeah, that'S strange if it's random. Maybe you could try the debug log build and see if it generates a log+dmp
#44

@SilentMRG
Copy link

It's done... cnc-ddraw-1.zip
However, no "cnc-ddraw-.dmp" file was generated, only "cnc-ddraw-.log". And this time I didn't receive an "AppCrash", instead, it was an error related to not being able to start Direct3D, what I understood is that D2 was unable to understand which API the iGPU is using.

@FunkyFr3sh
Copy link
Owner

If you get the Direct3D error the it means you don't have either winmm nor smack32 dll from cnc-ddraw in the folder, so it's not going to work (the original problem that these dlls are fixing)

@SilentMRG
Copy link

I did the wrong test, I had deleted these dlls. ¬¬ Yes, I'm stupid. I'll do it again with these dlls.

@SilentMRG
Copy link

SilentMRG commented May 15, 2024

Now yes! Now I received the "AppCrash" error and another one that I forgot to mention, it's like a number 0x000 and I don't know what... Here is the log: cnc-ddraw-1.zip
Unfortunately, the other file was not generated, I think it was not due to the game not starting.

@SilentMRG
Copy link

Strangely, this log got smaller, while the other one got bigger, the other one has more information, from what I can tell.

@FunkyFr3sh
Copy link
Owner

Yeah the log is smaller (it's normal)

It's actually looking good, nto sure what it could be. Try to generate one more log with this one here:

winmm.zip

@SilentMRG
Copy link

And here's another log... cnc-ddraw-1.zip

@FunkyFr3sh
Copy link
Owner

FunkyFr3sh commented May 15, 2024

Yep, that one helped!

Looks like the problem is related to the newer tools I use to build - Here is the same file but built with the old tools: winmm.zip

@SilentMRG
Copy link

Maybe this: api-ms-win-core-synch-l1-2-0.DLL

be causing the error. From what I could research, this is a Windows 10 dll, and Windows 7 doesn't even have support for it. In the log, from what I could see, in my ignorance, Windows 7 tries to load a lower version, api-ms-win-core-synch-l1-1-0.DLL, but it fails, "winmm.dll" must be encoded to release with version 1-2-0.

@SilentMRG
Copy link

I'll try this other one...

@SilentMRG
Copy link

Unfortunately, I keep getting the same error. =/

@FunkyFr3sh
Copy link
Owner

Ah, too bad :D Well, at least I know now where it'S crashing, just have to figure out why. Will do some mroe tests tomorrow

@SilentMRG
Copy link

Ah, too bad :D Well, at least I know now where it'S crashing, just have to figure out why. Will do some mroe tests tomorrow

Hey Funky, sorry to bother you, but were you able to fix the error I was getting? I can use the GOG wrapper mentioned above, but I would like to test your wrapper, I think it is better in many things.

Thank you for your attention...
Best regards!

@FunkyFr3sh
Copy link
Owner

Ah, too bad :D Well, at least I know now where it'S crashing, just have to figure out why. Will do some mroe tests tomorrow

Hey Funky, sorry to bother you, but were you able to fix the error I was getting? I can use the GOG wrapper mentioned above, but I would like to test your wrapper, I think it is better in many things.

Thank you for your attention... Best regards!

I couldn't manage to reproduce your bug yet, I even installed a new windows 7 for it without any luck.

If you want you can try this debug build here, I added logging now for every single action that is done:
winmm.zip

It creates a file named "Diablo.txt"

@SilentMRG
Copy link

Dude, thanks for that...

I downloaded version 6.8 plus the file you attached here. Well, it started the first time, but when I exited and went to restart, the same error appeared as before. In the "Diablo.txt", this appeared:

DLL_PROCESS_ATTACH (GetLastError=183)
GetModuleHandle (GetLastError=183)

And nothing more.

@FunkyFr3sh
Copy link
Owner

FunkyFr3sh commented Sep 15, 2024

Oh, wow... I still don't know yet what it is for sure, but I have an idea. Try this one:

winmm2.zip

@SilentMRG
Copy link

Well, I have good news (I think), I started it several times and didn't get any errors. I used version 6.8 together with this last file.

Anyway, I opened "Diablo.txt" and found this:

DLL_PROCESS_ATTACH (GetLastError=183)
GetModuleFileName=D:\Diablo II\Game.exe (GetLastError=0)
GetModuleHandle=00400000 (GetLastError=0)
memcmp (GetLastError=0)
VirtualProtect=1 (GetLastError=0)
memcpy (GetLastError=0)
VirtualProtect=1 (GetLastError=0)
DONE (GetLastError=0)

I don't know if this is good or bad, it mentions an error in the first line, the same error as before, but this time the game launched without errors on the screen.

@FunkyFr3sh
Copy link
Owner

Nice! Yeah, that's looking good. The 183 error means that "Diablo.txt" did already exist. IF you delete it and then start the game it would be 0 (no error...). So yeah, that error can be ignored

@SilentMRG
Copy link

Funky, that's the problem... Diablo.txt didn't exist, I deleted it last night. Just now I deleted it again and started the game (without errors), and in the new Diablo.txt there is the same error in the first line. Well, anyway the game launches without AppCrash errors or any other errors as mentioned in other posts.

@FunkyFr3sh
Copy link
Owner

Ah, then that error must come from something else, not from the winmm.dll.

Yeah, it's fine. The main issue was found. It was the "Diablo II.exe" that was causing the problem, this is actually some small launcher that was loading the winmm.dll by accident and crashed. If you use the old dll that is known to crash and run the game directly from "game.exe" then it would work as well. For whatever reason your "Diablo II.exe" loads winmm.dll, but on my system it doesn't 👍

@SilentMRG
Copy link

Maybe this happens on my system because I installed directly from the retail CDs and then applied the 1.14b patch. The version of Game.exe is 1.14.1.68, size 3.42 MB (3,590,120 bytes), and the version of Diablo II.exe is 1.0.0.1, size 36.0 KB (36,864 bytes). I don't know if they values ​​differ on your side. I am also using the files D2XMUSIC.MPQ - 52.1 MB (54,691,647 bytes) and D2XVIDEO.MPQ - 105 MB (110,685,575 bytes) to play without the CD in the drive. These last two files are dated:

Sunday, ‎6‎ May‎, ‎2001, ‏‎08:22:00

Thursday, ‎3‎ May‎, ‎2001, ‏‎17:12:26

I don't know if these things somehow influence the behavior you described. And I've always been playing with the expansion, I've never tested it with just the base game.

Thanks for helping me!

@FunkyFr3sh
Copy link
Owner

Yeah that could be, I got the blizzard version from their website, I didn't use my CD's. My Diablo II.exe is 42.984 Bytes

@SilentMRG
Copy link

Just for the record:

"Blizzard BNUpdate v2.72 compiled on Oct 16 2003
Log created at 9:05 pm on 09/14/2024

This patch upgrades Diablo II Lord of Destruction from version 1.07 or later to version 1.14b.

RESULT: Patch successful"

That's pretty old! XD Previous to version 1.09 of the base game, which people say is the best for a single player campaign. :)

Just one question: Do you plan to keep the "winmm" I'm using for future versions? If not, I will save this so I can play on this system, hehe.

@FunkyFr3sh
Copy link
Owner

Yes I'll keep it, there is already a new release verson of it (without the debug logging) here: https://github.com/FunkyFr3sh/cnc-ddraw/releases/tag/experimental

@SilentMRG
Copy link

You're a fast cowboy, buddy. Impressive...

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