strangebytes / diablo-ddrawwrapper

DirectDraw wrapper for the game Diablo 1
http://www.strangebytes.com/index.php/projects/1-diablo-1-windows-7-vista-patch
51 stars 13 forks source link

(How) can this be used for Diablo 1 Shareware ? #1

Open sskras opened 6 years ago

sskras commented 6 years ago

I am on w10pro (64-bit). Have tried running Diablo 1 Shareware (diablosw.exe). It didn't work. I then put this .dll file in the same directory as demo installer. It throwed some different error at me.

Have someone tried running it that way? Did anyone succeeded?

sskras commented 5 years ago

Any ideas?

elishacloud commented 5 years ago

You could try using the dxwrapper I created. It is much more complete than this wrapper. It is only missing the in-game hotkeys. You can download it here: ddraw.zip

Otherwise can you give me a link to where I can download the Diablo 1 Shareware?

sskras commented 5 years ago

Will do later, but IIRC dxwrapper hasn't worked correctly for me too.

As this week I am mostly AFK, this is it, the original location still works: http://ftp.blizzard.com/pub/demos/diablosw.exe

elishacloud commented 5 years ago

I just tried it with the wrapper I posted above and it works perfectly with the Diablo 1 Shareware.

elishacloud commented 5 years ago

Also, the updates to this project I made in the pull request seems to help, at least it worked for me. The download below should allow diablo-ddrawwrapper to work with the Diablo 1 Shareware.

Here is the download for the updated diablo-ddrawwrapper build: ddraw.zip

sskras commented 5 years ago

Thanks. Will try ASAP.

sskras commented 5 years ago

The updated diablo-ddrawwrapper build (circa May 15) doesn't work for me:

image

Running diablo_s.exe /ddrawlog gives the same result (no _ddrawdebug.log found in the Diablo Shareware dir).

sskras commented 5 years ago

The dxwrapper ddraw.zip you mentioned at first gets an Blizzard intro running. But then the game just quits. Might it be 32 vs 64 bit issue?

OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.17134 N/A Build 17134
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Workstation
OS Build Type:             Multiprocessor Free
  ...
System Manufacturer:       HP
System Model:              HP EliteBook 840 G3
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 78 Stepping 3 GenuineIntel ~2396 Mhz
BIOS Version:              HP N75 Ver. 01.14, 2017-04-12
elishacloud commented 5 years ago

@sskras, from the error message it looks like Diablo is not able to find the ddraw.dll file. Running diablo_s.exe /ddrawlog won't work unless ddraw.dll is able to be found. This should have nothing to do with 32bit or 64bit. I am not sure why Diablo cannot find the file. Did you put the ddraw.dll file in the same folder with the diablo_s.exe file? They both need to be in the same folder. Also, make sure that all the compatibility settings in the diablo_s.exe file properties are disabled.

For the other issue, I have seen the issue you had with dxwrapper before on my laptop. Here is an updated dxwrapper that should fix this issue: ddraw.zip

sskras commented 5 years ago

@sskras, from the error message it looks like Diablo is not able to find the ddraw.dll file. Running diablo_s.exe /ddrawlog won't work unless ddraw.dll is able to be found. [...] Did you put the ddraw.dll file in the same folder with the diablo_s.exe file? They both need to be in the same folder.

Yes, I put it together with the diablo_s.exe in the same folder. If I move the files out, I get very different message box:

image

Also, make sure that all the compatibility settings in the diablo_s.exe file properties are disabled.

Done: image

Here is an updated dxwrapper that should fix this issue: ddraw.zip

I guess effect is the same. It generated dxwrapper-diablo_s.log though:

12844 18:28:51.524 Starting DxWrapper v1.0.6295.21
12844 18:28:51.525 Intel(R) HD Graphics 520
12844 18:28:51.534 Windows 10 64-bit (10.0.17134) 
12844 18:28:51.534 "diablo_s.exe" (PID:14104)
12844 18:28:51.542 Loaded library: kernel32.dll
12844 18:28:51.542 Hooking 'GetModuleFileName' API...
12844 18:28:51.542 Failed verification for memory write!
12844 18:28:51.542 Disabling High DPI Scaling...
12844 18:28:51.542 Loaded library: user32.dll
12844 18:28:51.542 Loaded library: shcore.dll
12844 18:28:51.542 Loading 'ddraw.dll'...
12844 18:28:51.542 Hooking ddraw.dll APIs...
12844 18:28:51.543 Enabling ddraw wrapper
12844 18:28:51.543 Enabling d3d9 wrapper
12844 18:28:51.543 Loading 'd3d9.dll'...
12844 18:28:51.547 DxWrapper loaded!
12844 18:28:51.547 dd_DirectDrawCreate
12844 18:28:51.547 dd_DirectDrawCreateEx
12844 18:28:51.547 Redirecting 'DirectDrawCreate' IID_IDirectDraw to --> 'Direct3DCreate9'
12844 18:28:51.547 Redirecting 'Direct3DCreate9' ...
12844 18:28:51.558 Creating device m_IDirectDrawX::m_IDirectDrawX(007A7E98) converting device from v1 to v9
12844 18:28:51.558 Creating device m_IDirectDrawSurfaceX::m_IDirectDrawSurfaceX(0077A220) converting device from v1 to v9
12844 18:28:51.558 Creating device m_IDirectDrawPalette::m_IDirectDrawPalette(007A8600)
elishacloud commented 5 years ago

@sskras, there are a couple of issues that could be causing this. First let's try a few common issues:

  1. Download and install the latest video drivers, both for Intel and Nvidia. I believe there was an issue with one of the older driver versions that caused a crash.
  2. Make sure that you have the Windows 10 Legacy Component called DirectPlay installed. See here for how to add it.
  3. Make sure that you have the DirectX 9.0c Runtime library installed. You can install it from here.
sskras commented 5 years ago

Thanks. As this is corporate machine with OS components managed via GP, I hesitate changing them on my own very much. There is no nVidia chip on it and Intel GPU drivers are the latest, I believe.

I will see what can I do about DPlay.

Then I am going to check what does dxdiag say.

PS. Maybe I just need to enable Compatibility Mode on w10? PPS. Oops, I haven't update-patched the shareware version to 1.09b! Did you test vanilla too or have you updated it before?