elishacloud / dxwrapper

Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
zlib License
1.28k stars 90 forks source link

[Genesis3D] Textures with black color become transparent when it shouldn't. #299

Closed rtxa closed 1 month ago

rtxa commented 1 month ago

Games that use the old Genesis3D engine which has a D3D renderer (DX6 or 7 if I'm not wrong) has an issue where textures with black colors are getting transparent when it shouldn't.

I'm using DXWrapper with DDrawCompat enabled to fix a FPS-drop when this type of text is displayed (This can be enabled from the menu by pressing Esc -> Opciones -> Estadisticas FPS).

imagen

Issue looks similar to #226

Log

Log: ``` 8188 14:24:21.267 Starting DxWrapper v1.2.7200.25 8188 14:24:21.267 Running from: C:\Hoodaway\dxwrapper.dll 8188 14:24:21.267 Reading config file: C:\Hoodaway\dxwrapper.ini 8188 14:24:21.267 HP OMEN by HP Laptop 15-ce0xx (Notebook) 8188 14:24:21.267 HP 838F 00.02 (Notebook) 8188 14:24:21.267 Intel(R) HD Graphics 630 8188 14:24:21.267 Windows 10 Home 64-bit (10.0.19041) 8188 14:24:21.267 Entidad3D.exe (PID:30128) 8188 14:24:21.267 Environment variable __COMPAT_LAYER = "DWM8And16BitMitigation" 8188 14:24:21.267 Windows is newer than, Windows Vista: 1 Windows 7: 1 Windows 8: 1 8188 14:24:21.267 Disabling High DPI Scaling... 8188 14:24:21.267 Loaded library: user32.dll 8188 14:24:21.267 Loaded library: shcore.dll 8188 14:24:21.267 Loading 'ddraw.dll'... 8188 14:24:21.267 Hooking ddraw.dll APIs... 8188 14:24:21.267 Enabling DDrawCompat 8188 14:24:21.267 Process path: C:\Hoodaway\Entidad3D.exe 8188 14:24:21.267 Loading DDrawCompat dynamically from C:\Hoodaway\dxwrapper.dll 8188 14:24:21.267 Loaded library: winmm.dll 8188 14:24:21.281 Loaded library: uxtheme.dll 8188 14:24:21.281 DDrawCompat v0.3.1 version loaded successfully 8188 14:24:21.281 DxWrapper loaded! 8188 14:24:21.287 Installing display mode hooks 8188 14:24:21.288 Installing registry hooks 8188 14:24:21.288 Installing Direct3D driver hooks 8188 14:24:21.289 Installing Win32 hooks 8188 14:24:21.298 Hooking user mode display driver: C:\Windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_4a725c9a083cb6dc\nvldumd.dll+0x22560 8188 14:24:21.449 Dynamic vertex buffers are available 8188 14:24:21.449 Dynamic index buffers are available 8188 14:24:21.451 Checking source color key support: passed 8188 14:24:21.456 Installing DirectDraw hooks 8188 14:24:21.457 Installing Direct3D hooks 8188 14:24:21.461 Installing GDI hooks 17248 14:24:21.468 Loaded library: dwmapi.dll 8188 14:24:21.470 Finished installing hooks ```

Screenshots

e3d-before e3d-after

Game tested

Hoowaday (made with Entidad 3D game-maker) Download link (10mb compressed): http://www.comunidad-e3d.com/des/13/35/hoodaway/des

How to reproduce

  1. Extract the game in some folder.
  2. Extract required DXWrapper files (ddraw.dll, dxwrapper.dll and dxwrapper.ini) into Hoowaday folder (where Entidad3D.exe is located).
  3. Run Start.bat to start the game. Select D3D driver renderer with 800x600 windowed resolution.
  4. Press ESC to skip the intro. Movements keys are ESDF instead of WASD. Go to the bathroom and see how the floor is transparent, look yourself into the mirror and the character is transparent in some parts.

Thanks for reading and hope you can help me with this.

elishacloud commented 1 month ago

Looks like a bug in DDrawCompat. I have included three versions of DDrawCompat in here: v2.0, v2.1 and v3.2. You can try all three versions.

Note: I don't plan on adding newer versions in here or updating those existing versions. Maybe newer versions of DDrawCompat have fixed the issue.

elishacloud commented 1 month ago

Closing issue. Please contact the author of DDrawCompat if the latest version of his tool on his GitHub site doesn't work.