VOGONS


A newbie problem

Topic actions

First post, by ghotik2002

User metadata
Rank Newbie
Rank
Newbie

There must be a silly reason for my problem: I download dgVoodoo2 bundle, extract ddraw.dll, copy that over the game folder and run the game.
Very often (but not always) I get from the game logs a DirectDrawcreate(0, ..) error with DDERR_GENERIC error code, in practice while doing the DirectDraw most simple and robust operation.
I also tried to extract dgvoodooCpl.exe and create a dgVoodoo.conf file, but the result is the same.
Please, help!

Reply 1 of 15, by Dege

User metadata
Rank l33t
Rank
l33t

Could you plz attach the full log coming from the spec-release version of dgVoodoo?

Reply 2 of 15, by ghotik2002

User metadata
Rank Newbie
Rank
Newbie

Log? I suppose there is a way to get a text logfile, but I never saw one. I'll read the doc better....
I noticed one thing: the minimum requirements talk about dx10, I doubt it's supported on my old pc, maybe this is the reason.

Reply 3 of 15, by ghotik2002

User metadata
Rank Newbie
Rank
Newbie

Well, it took a while but I learnt ... here's the log

[7496] [dgVoodoo] INFO: Reading config from file D:\Games\MoHo\dgVoodoo.conf.
[7496] [dgVoodoo] INFO: INI file based version of config file is successfully read.
[7496] [dgVoodoo] INFO: DDraw is successfully loaded: D:\Games\MoHo\DDRAW.DLL
[7496] [dgVoodoo] INFO: Reading config from file D:\Games\MoHo\dgVoodoo.conf.
[7496] [dgVoodoo] INFO: INI file based version of config file is successfully read.
[7496] [dgVoodoo] ERROR: DDBase (0112C550): Cannot initialize the DDI object.
[7496] [dgVoodoo] ERROR: DirectDraw (0113B4F8) Initialization failed: Cannot init device DDI.
[7496] [dgVoodoo] ERROR: DirectDrawCreate/DirectDrawCreateEx: creating DirectDraw object has failed.
[7496] Couldn't create DDraw
[7496] Launching start game box.
[7496] Direct3DCreate9 (SDKVersion = 1F)
[7496] [dgVoodoo] INFO: Reading config from file D:\Games\MoHo\dgVoodoo.conf.
[7496] [dgVoodoo] INFO: INI file based version of config file is successfully read.
[7496] [dgVoodoo] INFO: Reading config from file D:\Games\MoHo\dgVoodoo.conf.
[7496] [dgVoodoo] INFO: INI file based version of config file is successfully read.
[7496] [dgVoodoo] INFO: Direct3D9 (01130140) DirectDraw has been loaded: D:\Games\MoHo\DDRAW.DLL
[7496] [dgVoodoo] ERROR: DDBase (0307AF90): Cannot initialize the DDI object.
[7496] [dgVoodoo] ERROR: DDBase (0307AF90): Cannot initialize the DDI object.
[7496] [dgVoodoo] ERROR: Direct3D9 (01130140) Initialization failed: No any output device is found. Invalid adapter or an adapter with unplugged/invalid display output is specified in the config?
[7496] [dgVoodoo] INFO: Reading config from file D:\Games\MoHo\dgVoodoo.conf.
[7496] [dgVoodoo] INFO: INI file based version of config file is successfully read.
[7496] [dgVoodoo] INFO: Reading config from file D:\Games\MoHo\dgVoodoo.conf.
[7496] [dgVoodoo] INFO: INI file based version of config file is successfully read.
[7496] [dgVoodoo] INFO: Reading config from file D:\Games\MoHo\dgVoodoo.conf.
[7496] [dgVoodoo] INFO: INI file based version of config file is successfully read.
[7496] Start Dialog: Cancelled or error.
[4780] DXGI WARNING: IDXGIFactory::CreateSwapChain/IDXGISwapChain::ResizeBuffers: The buffer width inferred from the output window is zero. Taking 8 as a reasonable default instead [ MISCELLANEOUS WARNING #1: ]
[4780] DXGI WARNING: IDXGIFactory::CreateSwapChain/IDXGISwapChain::ResizeBuffers: The buffer height inferred from the output window is zero. Taking 8 as a reasonable default instead [ MISCELLANEOUS WARNING #2: ]

The computer is an old portable with Win7-64, I don't expect miracles, but what wonders me is the failure in a basic DirectDrawCreate(0) call, the first and simplest of all operations. To be noted that the games are working ok without dgVoodoo2 wrappers. I'm just testing the effects of combining dgVoodoo2 with DxWnd to fix compatibility issues.

Reply 4 of 15, by Bakhtosh

User metadata
Rank Newbie
Rank
Newbie

dgvoodoo 2 is a wrapper that translates commands for old DirectX versions (DirectDraw/Direct3D) to Direct3D 11 commands and needs a GPU that at least supports hardware rendering at GPU feature level 10.0 to do that. See here: http://dege.freeweb.hu/

It doesn't matter if your GPU/GPU driver supports the original commands. They has to support the translated commands.
So the question is: What GPU is your system using. From the log my guess is that it doesn't support hardware rendering at GPU feature level 10.0

Can you post the video card name & model?
What happens if you set dgvoodoo to use Microsoft WARP (software rendering)?

Reply 5 of 15, by Dege

User metadata
Rank l33t
Rank
l33t

Yes, Gho, your GPU probably does not support DX 10.0.
But also there is a known issue with ATI Radeon 3000 which supports DX 10.0 but creating some hw buffers fails with its driver, for some reason.

Reply 6 of 15, by ghotik2002

User metadata
Rank Newbie
Rank
Newbie

Gorgeous!
Setting the OutputAPI field in dgVoodoo.conf to the "d3d11warp" value fixed the problem for me!
My video card is a "Mobile Intel(R) 4 Series Express Chipset Family" (as reported in Device Manager), a cheap integrated video card inside my old portable, so it is reasonable that there could be no hardware support for sophisticated GPU functionalities.
So, setting software rendering works, though it is awfully slow.
But who cares? My goal was to have the possibility to run dgVoodo in combination with DxWnd and find out where it works and where it doesn't. Then, once the problems are fixed, moving to a better platform with hardware GPU support will provide the good performances that anyone wants. In effect, on my other newer computer things are going to be much better.
Thank you very much for the support. As a side effect, I now learnt how to configure and debug the dgVoodoo tool, so hopefully I will bother you less frequently now.
😊

Reply 7 of 15, by Bill_Boquet

User metadata
Rank Newbie
Rank
Newbie

This is my first post and as my issue seems quite similar to the one reported here (Mobile Intel graphic card), I take the opportunity to continue the discussion.

dgVoodoo works fine with PC Scrabble 99 (french version), a very old game developed for Windows 95/98 with a Windows XP patch. This is a static game only using DirectDraw, initially with DirectX 6.1. For the purpose of this post, the game itself is not of importance as the problem faced on only one machine seems HW related.

This machine is a 15 years old HP Compaq 6720s, running Windows 10 Pro 64-bit.
https://support.hp.com/us-en/document/c01129747
Chipset : Mobile Intel GM965. Graphics : Intel GMA X3100, up to 384-MB shared system memory
Graphic card : Mobile Intel(R) 965 Express Chipset Family (Microsoft Corporation - WDDM 1.1). Driver : 8.15.10.2697 from October 1, 2012.

The game runs fine with dgVoodoo 2.78 on 3 other machines with Windows 10 Pro 64-bit. It also starts fine on the HP Compaq 6720s without dgVoodoo (but have problems afterwards) and with another (basic) wrapper. With dgVoodoo 2.78 (and also earlier versions down to 2.60) on this machine, the game stops immediately with a popup error message : PC-Scrabble: Initialisation DirectDraw - Erreur 80004005 DirectDrawCreate.

DebugView++ logfile :
[dgVoodoo] INFO: Reading config from file C:\Program Files (x86)\PC Scrabble 99\dgVoodoo.conf.
[dgVoodoo] INFO: INI file based version of config file is successfully read.
[dgVoodoo] INFO: DDraw is successfully loaded: C:\Program Files (x86)\PC Scrabble 99\DDRAW.dll
[dgVoodoo] INFO: Reading config from file C:\Program Files (x86)\PC Scrabble 99\dgVoodoo.conf.
[dgVoodoo] INFO: INI file based version of config file is successfully read.
[dgVoodoo] ERROR: DDBase (004BC300): Cannot initialize the DDI object.
[dgVoodoo] ERROR: DirectDraw (004CA2B8) Initialization failed: Cannot init device DDI.
[dgVoodoo] ERROR: DirectDrawCreate/DirectDrawCreateEx: creating DirectDraw object has failed.
<process started at 22:25:47.035 has terminated with exit code 0>

Setting the OutputAPI field in dgVoodoo.conf to the "d3d11warp" fixes the startup issue, but the game behaves afterwards like without wrapper and crashes.

Thanks in advance for feedback on this issue. It is not critical for me as the HP Compaq 6720s is only used for test purposes. Nevertheless, very strange that dgVoodoo fails only on this machine.

Reply 8 of 15, by Dege

User metadata
Rank l33t
Rank
l33t

Thanks for the log! Something fails with initializing D3D11 or with creating some of the related D3D11 resources. Intel GMA X3100 supports DX 10.0, so it should not be a problem.

What if you explicitly select D3D11 with FL 10.0 as the output API in the config?

Anyway, unfortunately dgVoodoo cannot report a more detailed report about the problem. If very interested, you may install the Windows SDK, and then having the DirectX Control Panel, you can enable the debug layers on top of D3D11 which gives detailed report about the internal state of D3D11 and the errors occuring.

Reply 9 of 15, by Bill_Boquet

User metadata
Rank Newbie
Rank
Newbie

Thanks Dege for your feedback and for the tips. In fact, I also tried all the other options of the OutputAPI field, but with similar behaviour : it fixes the startup issue, but the game behaves afterwards like without wrapper and crashes.

I will try to test with the Windows SDK during this WE and report afterwards.

Reply 10 of 15, by Bill_Boquet

User metadata
Rank Newbie
Rank
Newbie

As I am a real newbie, please forgive in advance my ignorance. As I am very interested 😉 to learn, I tried to follow Dege advices.
. Download and instal the legacy DirectX SDK June 2010, as my HP Compaq 6720s laptop is an old lady (see my previous post).
. Open the DirectX Control panel. In the Direct 3D 10.x/11 folder, add the game executable (pcs99.exe) in the Edit list, select Force On in the Debug layer and leave other options unchanged.
. Download dgVoodoo2_78_dbg, copy DDRAW.dll and dgVoodoo.conf in the game folder.
. Download and run DebugView++.exe, File -> Run the game executable (pcs99.exe)

As a result, I got exactly the same DebugView++ logfile than before, without additional debugging info. I surely missed something, but what ?
Before this attempt, I also downloaded the Windows SDK, but was completely lost and never found the DirectX Control panel, hence stopped my investigations.

Thanks in advance for guidance to allow me to probe further, Bill.

Reply 11 of 15, by Dege

User metadata
Rank l33t
Rank
l33t

Basically that's what to do, but I'm not sure if DirectX SDK June 2010 is supposed to work on Windows 10, that's really old.
I recommend downloading the Windows SDK installer (DX SDK is part of the Win SDK now)

https://developer.microsoft.com/en-us/windows … ds/windows-sdk/

and when selecting what SDK features to install,

- Windows Performance Toolkit
- Debugging Tools for Windows

are enough for the DX debug layer. But I'm not sure, in the worst case 'Windows SDK for Desktop C++ x86 Apps' is also needed.
When they are installed, you should find 'dxcpl.exe' in C:\Windows\System32 or C:\Windows\SysWow64, you can run it from there. I pinned it to my taskbar.

dxcpl.png

Add the folder (not the executable) of the game to the list because the debug layer is only enabled to executables that can be found in the (sub)folders of the lists.
Set the Direct3D/DXGI Debug Layer to 'Force ON'. Also, make sure that no messages are set to be muted on the Message Settings Tab.
The same for Break Settings because the app will simply crash if not attached to a debugger and the dbg layer tries to break the execution.

And that's all, you should see the DX messages coming, in the DebugView(++) window.

Reply 12 of 15, by Bill_Boquet

User metadata
Rank Newbie
Rank
Newbie

Thanks Dege for the detailed explanations. Without the hint to locate dxcpl.exe, I would never have been able to probe further.
Here we are with the log file : it all Greek to me 😉. Maybe the error message in line 17 can shed some light on the behaviour.
As discussed before, the resolution of this issue is not vital for me : I already thank you for your advices that allow me to learn a bit more.
Cheers, Bill.

1 0.000000 5092 Pcs99.exe Started capturing output of stdout/stderr
2 0.228201 5092 Pcs99.exe [dgVoodoo] INFO: Reading config from file C:\Program Files (x86)\PC Scrabble 99\dgVoodoo.conf.
3 0.230070 5092 Pcs99.exe [dgVoodoo] INFO: INI file based version of config file is successfully read.
4 0.230239 5092 Pcs99.exe [dgVoodoo] INFO: DDraw is successfully loaded: C:\Program Files (x86)\PC Scrabble 99\DDRAW.dll
5 0.231137 5092 Pcs99.exe [dgVoodoo] INFO: Reading config from file C:\Program Files (x86)\PC Scrabble 99\dgVoodoo.conf.
6 0.232334 5092 Pcs99.exe [dgVoodoo] INFO: INI file based version of config file is successfully read.
7 0.262449 5092 Pcs99.exe D3D11 INFO: Create ID3D11Context: Name="unnamed", Addr=0x03052FC0, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097225: CREATE_CONTEXT]
8 0.520156 5092 Pcs99.exe D3D11 INFO: Create ID3DDeviceContextState: Name="unnamed", Addr=0x0305CDF0, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #3145735: CREATE_DEVICECONTEXTSTATE]
9 0.521858 5092 Pcs99.exe D3D11 INFO: Create ID3D11BlendState: Name="unnamed", Addr=0x0303EABC, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097270: CREATE_BLENDSTATE]
10 0.522307 5092 Pcs99.exe D3D11 INFO: Create ID3D11DepthStencilState: Name="unnamed", Addr=0x0303EC14, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097273: CREATE_DEPTHSTENCILSTATE]
11 0.522757 5092 Pcs99.exe D3D11 INFO: Create ID3D11RasterizerState: Name="unnamed", Addr=0x0303ED6C, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097276: CREATE_RASTERIZERSTATE]
12 0.523642 5092 Pcs99.exe D3D11 INFO: Create ID3D11Sampler: Name="unnamed", Addr=0x0303EECC, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097267: CREATE_SAMPLER]
13 0.523886 5092 Pcs99.exe D3D11 INFO: Create ID3D11Query: Name="unnamed", Addr=0x03062D1C, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097279: CREATE_QUERY]
14 0.524421 5092 Pcs99.exe D3D11 INFO: Create ID3D11Fence: Name="unnamed", Addr=0x03062E9C, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #3146249: CREATE_FENCE]
15 0.524764 5092 Pcs99.exe D3D11 INFO: Destroy ID3D11Fence: Name="unnamed", Addr=0x03062E9C [ STATE_CREATION INFO #3146251: DESTROY_FENCE]
16 0.525321 5092 Pcs99.exe D3D11 INFO: Create ID3D11Buffer: Name="unnamed", Addr=0x0305122C, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097228: CREATE_BUFFER]
17 0.526816 5092 Pcs99.exe D3D11 ERROR: ID3D11Device::CreateComputeShader: CreateComputeShader can only be called on devices either (a) with feature level greater or equal to D3D_FEATURE_LEVEL_11_0, or (b) with D3D_FEATURE_LEVEL_10_* for hardware that reports support for the Compute Shader. The current device is not one of these. Use the CheckFeatureSupport() API with D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS to discover support for Compute Shaders on D3D_FEATURE_LEVEL_10_*. [ STATE_CREATION ERROR #68: CREATEBUFFER_INVALIDMISCFLAGS]
18 0.526936 5092 Pcs99.exe D3D11 INFO: Destroy ID3D11Buffer: Name="unnamed", Addr=0x0305122C [ STATE_CREATION INFO #2097230: DESTROY_BUFFER]
19 0.527361 5092 Pcs99.exe D3D11 INFO: Destroy ID3D11Query: Name="unnamed", Addr=0x03062D1C [ STATE_CREATION INFO #2097281: DESTROY_QUERY]
20 0.527747 5092 Pcs99.exe D3D11 INFO: Destroy ID3D11RasterizerState: Name="unnamed", Addr=0x0303ED6C [ STATE_CREATION INFO #2097278: DESTROY_RASTERIZERSTATE]
21 0.528083 5092 Pcs99.exe D3D11 INFO: Destroy ID3D11DepthStencilState: Name="unnamed", Addr=0x0303EC14 [ STATE_CREATION INFO #2097275: DESTROY_DEPTHSTENCILSTATE]
22 0.528417 5092 Pcs99.exe D3D11 INFO: Destroy ID3D11BlendState: Name="unnamed", Addr=0x0303EABC [ STATE_CREATION INFO #2097272: DESTROY_BLENDSTATE]
23 0.528754 5092 Pcs99.exe D3D11 INFO: Destroy ID3D11Sampler: Name="unnamed", Addr=0x0303EECC [ STATE_CREATION INFO #2097269: DESTROY_SAMPLER]
24 0.531658 5092 Pcs99.exe D3D11 INFO: Destroy ID3D11Context: Name="unnamed", Addr=0x03052FC0 [ STATE_CREATION INFO #2097227: DESTROY_CONTEXT]
25 0.532139 5092 Pcs99.exe D3D11 INFO: Destroy ID3DDeviceContextState: Name="unnamed", Addr=0x0305CDF0 [ STATE_CREATION INFO #3145749: DESTROY_DEVICECONTEXTSTATE]
26 0.533054 5092 Pcs99.exe [dgVoodoo] ERROR: DDBase (0012B610): Cannot initialize the DDI object.
27 0.533128 5092 Pcs99.exe [dgVoodoo] ERROR: DirectDraw (001386C8) Initialization failed: Cannot init device DDI.
28 0.548561 5092 Pcs99.exe [dgVoodoo] ERROR: DirectDrawCreate/DirectDrawCreateEx: creating DirectDraw object has failed.
29 3.881747 5092 Pcs99.exe <process started at 21:57:31.582 has terminated with exit code 0>

Reply 13 of 15, by Dege

User metadata
Rank l33t
Rank
l33t

Thanks!
You found the problem: your GPU does not support compute shaders at all, but dgVoodoo does not check for it, it just blindly tries to create them which fails.
Ok, I'll put the needed check into the code. Compute shaders are only used for C64-like output, something that most people can ignore... 😁

Reply 14 of 15, by Bill_Boquet

User metadata
Rank Newbie
Rank
Newbie

Thanks Dege, at last an answer to the mystery. I will now leave my old lady (HP Compaq 6720s laptop) rest in peace 😉.
dgVoodoo perfectly works on all my other machines, thanks for your work and support that allow my wife to further play with her favorite game.

Reply 15 of 15, by Bill_Boquet

User metadata
Rank Newbie
Rank
Newbie

Hi Dege, I followed the exchanges in the other thread :
Issues with Intel HD 3000 (Gen6) and Intel HD 4000 (Gen7) iGPUs and dgVoodoo
and tried the proposed alternatives :
1) Disable the DirectXExt\EnableSpecializedShaders for 2.76+? (compatibility option)
2) Use dgVoodoo v2.54
3) Use WIP85.1

The two first failed with the usual error message.
I tested the latest WIP in debug mode and got exactly the same log file than unmei220.
Same error, same conclusion : no more options 😉.

Thanks anyhow for your efforts and continuous support, Bill.