Open master801 opened 9 months ago
Can you try with this build? It should work as good or the same as DDrawCompat v0.3.2: dxwrapper.zip
Can you try with this build? It should work as good or the same as DDrawCompat v0.3.2: dxwrapper.zip
That build kinda works.
In fullscreen, the game just sits at a black screen with the audio playing.
In windowed, the game does look fine.
In fullscreen, the game just sits at a black screen with the audio playing.
Yes, this is a bug in dxwrapper. I am looking into the issue. I will try and put a fix in for this soon.
In fullscreen, the game just sits at a black screen with the audio playing.
This is the same issue as #301.
DDrawCompat black screen is fixed with the latest build.
OS: Windows 10 Pro 22H2 (
19045.4046
) CPU: AMD Ryzen 1600 3.20 GHz RAM: 16GB 2400 MHz GPU: Gigabyte AMD RX 580 GAMING 4G (4GB) - AMD Adrenalin24.1.1
Lego Rock Raider (SecuROM version)
d3drm.dll
-5.1.26000.0
- PCGamingWiki version (game will not load at all with bundled CD DirectX6D3DRM.DLL
-4.06.02.436
)Problem: When dxwrapper is used to wrap stub
ddraw.dll
, and when optionsCompatibility
/DDrawCompat
andDDrawCompat
/ none/DDrawCompat20
/DDrawCompat21
/DDrawCompat31
, are both enabled, the game will show a black screen with audio playing and the game still playable, albeit not visible.Note:
Compatibility
optionsForceTermination
andResetScreenRes
are only enabled because when the game hangs and cannot be exited safely. It needs to be closed via task bar (cannot see Task Manager to end process) and the screen resolution will be stuck in640x480
(when process is ended in Task Manager, screen resolution does not go back to normal - needs to be reset via Windows'Display Settings
).Game Settings:
dxwrapper.ini
> ;; Config file for DirectX DLL Wrapper > ;; > ;; For details, see: https://github.com/elishacloud/dxwrapper/wiki/Configuration-%28advanced%29 > ;; > [General] > RealDllPath = AUTO > WrapperMode = AUTO > LoadCustomDllPath = > ExcludeProcess = > IncludeProcess = > RunProcess = > WaitForProcess = 0 > DisableLogging = 0 > > [Plugins] > LoadPlugins = 0 > LoadFromScriptsOnly = 0 > > [Compatibility] > Dd7to9 = 0 > D3d8to9 = 0 > DDrawCompat = 1 > Dinputto8 = 0 > DisableHighDPIScaling = 0 > DisableGameUX = 0 > DxWnd = 0 > EnableDdrawWrapper = 0 > EnableD3d9Wrapper = 0 > EnableDinput8Wrapper = 0 > EnableDsoundWrapper = 0 > ForceTermination = 1 > HandleExceptions = 0 > ResetScreenRes = 1 > SingleProcAffinity = 0 > > [Hooking] > DdrawHookSystem32 = 0 > D3d8HookSystem32 = 0 > D3d9HookSystem32 = 0 > DinputHookSystem32 = 0 > Dinput8HookSystem32 = 0 > DsoundHookSystem32 = 0 > > [DDrawCompat] > DDrawCompat20 = 0 > DDrawCompat21 = 0 > DDrawCompat31 = 1 > DDrawCompatDisableGDIHook = 0 > DDrawCompatNoProcAffinity = 0 > > [ddraw] > ConvertToDirectDraw7 = 0 > ConvertToDirect3D7 = 0 > DdrawOverrideBitMode = 0 > DdrawResolutionHack = 0 > DirectShowEmulation = 0 > > [Dd7to9] > DdrawAutoFrameSkip = 0 > DdrawEmulateSurface = 0 > DdrawFixByteAlignment = 0 > DdrawRemoveScanlines = 0 > DdrawRemoveInterlacing = 0 > DdrawReadFromGDI = 0 > DdrawWriteToGDI = 0 > DdrawEnableMouseHook = 0 > DdrawCreateDeviceEarly = 0 > DdrawDisableDirect3DCaps = 0 > DdrawLimitDisplayModeCount = 0 > DdrawUseNativeResolution = 0 > DdrawClippedWidth = 0 > DdrawClippedHeight = 0 > DdrawOverrideWidth = 0 > DdrawOverrideHeight = 0 > DdrawOverridePrimaryWidth = 0 > DdrawOverridePrimaryHeight = 0 > DdrawOverrideStencilFormat = 0 > DdrawIntegerScalingClamp = 0 > DdrawMaintainAspectRatio = 0 > > [d3d9] > AnisotropicFiltering = 0 > AntiAliasing = 0 > CacheClipPlane = 0 > EnableVSync = 0 > ForceVsyncMode = 0 > OverrideRefreshRate = 0 > LimitPerFrameFPS = 0 > EnableWindowMode = 0 > WindowModeBorder = 0 > SetInitialWindowPosition = 0 > InitialWindowPositionLeft = 0 > InitialWindowPositionTop = 0 > FullscreenWindowMode = 0 > ForceExclusiveFullscreen = 0 > ForceMixedVertexProcessing = 0 > ForceSystemMemVertexCache = 0 > ForceDirect3D9On12 = 0 > GraphicsHybridAdapter = 0 > > [FullScreen] > FullScreen = 0 > ForceWindowResize = 0 > SendAltEnter = 0 > WaitForWindowChanges = 0 > LoopSleepTime = 120 > WindowSleepTime = 500 > SetFullScreenLayer = 0 > SetNamedLayer = > IgnoreWindowName = > > [dinput8] > FilterNonActiveInput = 0 > > [dsound] > Num2DBuffers = 0 > Num3DBuffers = 0 > ForceCertification = 0 > ForceExclusiveMode = 0 > ForceSoftwareMixing = 0 > ForceHardwareMixing = 0 > ForceHQ3DSoftMixing = 0 > ForceNonStaticBuffers = 0 > ForceVoiceManagement = 0 > ForcePrimaryBufferFormat = 0 > PrimaryBufferBits = 16 > PrimaryBufferSamples = 44100 > PrimaryBufferChannels = 2 > AudioClipDetection = 0 > AudioFadeOutDelayMS = 20 > FixSpeakerConfigType = 1 > StoppedDriverWorkaround = 0 > > [AppCompatData] > LockEmulation = 0 > BltEmulation = 0 > ForceLockNoWindow = 0 > ForceBltNoWindow = 0 > LockColorkey = 0 > FullscreenWithDWM = 0 > DisableLockEmulation = 0 > EnableOverlays = 0 > DisableSurfaceLocks = 0 > RedirectPrimarySurfBlts = 0 > StripBorderStyle = 0 > DisableMaxWindowedMode = 0 > > [WriteMemory] > VerificationAddress = 0x00000000 > VerificationBytes = 0x00 > ResetMemoryAfter = 0 > AddressPointer = 0x00000000 > BytesToWrite = 0x00dxwrapper-legorr.log
> 12836 14:39:52.462 Starting DxWrapper v1.1.6900.22 > 12836 14:39:52.462 Running from: C:\Users\Master\Downloads\Rock Raiders - dxwrapper\dxwrapper.dll > 12836 14:39:52.462 Reading config file: C:\Users\Master\Downloads\Rock Raiders - dxwrapper\dxwrapper.ini > 12836 14:39:52.462 Gigabyte Technology Co., Ltd. AB350-Gaming 3 Default string (Desktop) > 12836 14:39:52.462 Gigabyte Technology Co., Ltd. AB350-Gaming 3-CF x.x (Desktop) > 12836 14:39:52.462 Radeon RX 580 Series > 12836 14:39:52.463 Windows 10 Enterprise 64-bit (10.0.19041) > 12836 14:39:52.463 LegoRR.exe (PID:12264) > 12836 14:39:52.468 Environment variable __COMPAT_LAYER = "" > 12836 14:39:52.468 Loading 'ddraw.dll'... > 12836 14:39:52.468 Hooking ddraw.dll APIs... > 12836 14:39:52.468 Enabling DDrawCompat > 12836 14:39:52.468 Process path: C:\Users\Master\Downloads\Rock Raiders - dxwrapper\LegoRR.exe > 12836 14:39:52.468 Loading DDrawCompat dynamically from C:\Users\Master\Downloads\Rock Raiders - dxwrapper\dxwrapper.dll > 12836 14:39:52.471 Loaded library: winmm.dll > 12836 14:39:52.473 Loaded library: uxtheme.dll > 12836 14:39:52.473 DDrawCompat v0.3.1 version loaded successfully > 12836 14:39:52.473 DxWrapper loaded! > 1316 14:39:52.574 Starting fullscreen thread... > 12836 14:39:52.737 Installing display mode hooks > 12836 14:39:52.761 Installing registry hooks > 12836 14:39:52.761 Installing Direct3D driver hooks > 12836 14:39:52.761 Installing Win32 hooks > 12836 14:39:52.766 Hooking user mode display driver: C:\Windows\System32\DriverStore\FileRepository\u0399660.inf_amd64_d7fa3539ce499e50\B399655\aticfx32.dll+0x5da20 > 12836 14:39:52.797 Dynamic vertex buffers are available > 12836 14:39:52.797 Dynamic index buffers are available > 12836 14:39:52.800 Checking source color key support: passed > 12836 14:39:52.802 Incorrect z-buffer bit depth capabilities detected; changed from "16, 32" to "16, 24" > 12836 14:39:52.807 Installing DirectDraw hooks > 12836 14:39:52.808 Installing Direct3D hooks > 12836 14:39:52.816 Installing GDI hooks > 8372 14:39:52.832 Loaded library: dwmapi.dll > 12836 14:39:52.833 Finished installing hooks > 1316 14:40:32.082 Process not exiting, attempting to terminate process... > 1316 14:40:32.082 Reseting screen resolution... > 1316 14:40:33.269 Utils::Fullscreen::CheckForTermination Terminating process!When
Compatibility
optionsDd7to9
/D3d8to9
/EnableDdrawWrapper
/EnableD3d9Wrapper
and/orddraw
optionsConvertToDirectDraw7
andConvertToDirect3D7
are enabled, the game will not detect these options properly and will show the errorNo supported screen modes found.
As a side note, I also tested the game with only DDrawCompat (v0.5.1) and the game worked perfectly fine with Compatibility Mode set to Windows 98 (AVI cutscenes won't play if this isn't enabled), even scaling to fullscreen 1080p.
This is the log file for DDrawCompat 0.5.1:
DDrawCompat-LegoRR.log
> 18:34:35.294 Process path: C:\Program Files (x86)\LEGO Media\Games\Rock Raiders\LegoRR.exe > 18:34:35.294 Loading DDrawCompat statically from C:\Program Files (x86)\LEGO Media\Games\Rock Raiders\DDRAW.dll > 18:34:35.294 Environment variable __COMPAT_LAYER = "DWM8And16BitMitigation RunAsAdmin Win98 Installer" > 18:34:35.294 Loading global config file: C:\ProgramData\DDrawCompat\DDrawCompat.ini > 18:34:35.294 File not found, skipping > 18:34:35.294 Loading user config file: C:\Users\Master\AppData\Local\DDrawCompat\DDrawCompat.ini > 18:34:35.294 File not found, skipping > 18:34:35.294 Loading directory config file: C:\Program Files (x86)\LEGO Media\Games\Rock Raiders\DDrawCompat.ini > 18:34:35.294 File not found, skipping > 18:34:35.294 Loading process config file: C:\Program Files (x86)\LEGO Media\Games\Rock Raiders\DDrawCompat-LegoRR.ini > 18:34:35.294 File not found, skipping > 18:34:35.294 Loading overlay config file: C:\Program Files (x86)\LEGO Media\Games\Rock Raiders\DDrawCompatOverlay-LegoRR.ini > 18:34:35.295 File not found, skipping > 18:34:35.295 Final configuration: > 18:34:35.295 [default] AlignSysMemSurfaces = on > 18:34:35.295 [default] AltTabFix = off > 18:34:35.295 [default] AlternatePixelCenter = off > 18:34:35.295 [default] Antialiasing = off > 18:34:35.295 [default] BltFilter = point > 18:34:35.295 [default] ColorKeyMethod = auto > 18:34:35.295 [default] ConfigHotKey = shift+f11 > 18:34:35.295 [default] ConfigRows = allrw, allro > 18:34:35.295 [default] ConfigTransparency = alpha(90) > 18:34:35.295 [default] CpuAffinity = 1 > 18:34:35.295 [default] CpuAffinityRotation = on > 18:34:35.295 [default] CrashDump = off > 18:34:35.295 [default] DepthFormat = app > 18:34:35.295 [default] DesktopColorDepth = initial > 18:34:35.295 [default] DesktopResolution = desktop > 18:34:35.295 [default] DisplayAspectRatio = app > 18:34:35.295 [default] DisplayFilter = bilinear(0) > 18:34:35.295 [default] DisplayRefreshRate = app > 18:34:35.295 [default] DisplayResolution = desktop > 18:34:35.295 [default] DpiAwareness = permonitor > 18:34:35.295 [default] FontAntialiasing = app > 18:34:35.295 [default] ForceD3D9On12 = off > 18:34:35.295 [default] FpsLimiter = off > 18:34:35.295 [default] FullscreenMode = borderless > 18:34:35.295 [default] LogLevel = info > 18:34:35.295 [default] PalettizedTextures = off > 18:34:35.295 [default] RemoveBorders = off > 18:34:35.295 [default] RenderColorDepth = appd8 > 18:34:35.295 [default] ResolutionScale = app(1) > 18:34:35.295 [default] ResolutionScaleFilter = point > 18:34:35.295 [default] SoftwareDevice = rgb > 18:34:35.295 [default] SpriteDetection = off > 18:34:35.295 [default] SpriteFilter = app > 18:34:35.295 [default] SpriteTexCoord = app > 18:34:35.295 [default] StatsAggregateTime = 3 > 18:34:35.295 [default] StatsColumns = label, cur, avg, min, max > 18:34:35.295 [default] StatsHotKey = shift+f12 > 18:34:35.295 [default] StatsPosX = right > 18:34:35.295 [default] StatsPosY = top > 18:34:35.295 [default] StatsRows = label, presentrate, fliprate, blitcount, lockcount, ddiusage > 18:34:35.295 [default] StatsTransparency = alpha(75) > 18:34:35.295 [default] StatsUpdateRate = 5 > 18:34:35.295 [default] SupportedDepthFormats = all > 18:34:35.295 [default] SupportedResolutions = native, 640x480, 800x600, 1024x768 > 18:34:35.295 [default] SupportedTextureFormats = all > 18:34:35.295 [default] TerminateHotKey = ctrl+alt+end > 18:34:35.295 [default] TextureFilter = app > 18:34:35.295 [default] ThreadPriorityBoost = off > 18:34:35.295 [default] VSync = app > 18:34:35.295 [default] VertexBufferMemoryType = sysmem > 18:34:35.295 [default] WinVersionLie = off > 18:34:35.318 Initial DPI awareness: unaware > 18:34:35.319 DPI awareness was successfully changed to "permonitor" via SetProcessDpiAwarenessContext > 18:34:35.319 Primary CPU group number: 0 > 18:34:35.319 Physical to logical CPU core mapping for efficiency class 0: > 18:34:35.319 Physical core #1: 1, 2 > 18:34:35.319 Physical core #2: 3, 4 > 18:34:35.319 Physical core #3: 5, 6 > 18:34:35.319 Physical core #4: 7, 8 > 18:34:35.319 Physical core #5: 9, 10 > 18:34:35.319 Physical core #6: 11, 12 > 18:34:35.319 Current CPU affinity: 1 > 18:34:35.319 Applying configured CPU affinity: 1 > 18:34:35.319 CPU affinity rotation is enabled > 18:34:35.319 DDrawCompat loaded successfully > 18:34:35.645 Installing display mode hooks > 18:34:36.205 Installing registry hooks > 18:34:36.205 Installing Direct3D driver hooks > 18:34:36.211 Hooking user mode display driver: C:\Windows\System32\DriverStore\FileRepository\u0399660.inf_amd64_d7fa3539ce499e50\B399655\aticfx32.dll+0x5da20 > 18:34:36.229 Supported resource formats: > 18:34:36.229 {D3DDDIFMT_X1R5G5B5,0xca701f,0x8a,0x8a,16} > 18:34:36.229 {D3DDDIFMT_A1R5G5B5,0xca701f,0x8a,0x8a,16} > 18:34:36.229 {D3DDDIFMT_A4R4G4B4,0xc2701f,0x8a,0x8a,16} > 18:34:36.229 {D3DDDIFMT_R5G6B5,0xca7c1f,0x8a,0x8a,16} > 18:34:36.229 {D3DDDIFMT_X8R8G8B8,0xdafc1f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_A8R8G8B8,0xdaf11f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_X8B8G8R8,0xdaf11f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_L8,0xc2701f,0x0,0x0,8} > 18:34:36.229 {D3DDDIFMT_P8,0x5000,0x0,0x0,8} > 18:34:36.229 {FOURCC(M2IA),0x4000,0x0,0x0,0} > 18:34:36.229 {D3DDDIFMT_V8U8,0x831007,0x0,0x0,16} > 18:34:36.229 {D3DDDIFMT_X8L8V8U8,0x31007,0x0,0x0,32} > 18:34:36.229 {D3DDDIFMT_Q8W8V8U8,0x83501f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_V16U16,0x831007,0x0,0x0,32} > 18:34:36.229 {D3DDDIFMT_A2W10V10U10,0x31007,0x0,0x0,32} > 18:34:36.229 {D3DDDIFMT_Q16W16V16U16,0x83501f,0x8a,0x8a,64} > 18:34:36.229 {FOURCC(DXT1),0x82e007,0x0,0x0,0} > 18:34:36.229 {FOURCC(DXT2),0x82e007,0x0,0x0,0} > 18:34:36.229 {FOURCC(DXT3),0x82e007,0x0,0x0,0} > 18:34:36.229 {FOURCC(DXT4),0x82e007,0x0,0x0,0} > 18:34:36.229 {FOURCC(DXT5),0x82e007,0x0,0x0,0} > 18:34:36.229 {FOURCC(ATI1),0x821007,0x0,0x0,8} > 18:34:36.229 {FOURCC(ATI2),0x821007,0x0,0x0,8} > 18:34:36.229 {D3DDDIFMT_A4L4,0x827007,0x0,0x0,8} > 18:34:36.229 {D3DDDIFMT_A8L8,0x827007,0x0,0x0,16} > 18:34:36.229 {D3DDDIFMT_A2B10G10R10,0xca701f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_G16R16,0xc2701f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_L16,0xc2701f,0x0,0x0,16} > 18:34:36.229 {D3DDDIFMT_A2R10G10B10,0xca7c1f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_A16B16G16R16F,0xca701f,0x8a,0x8a,64} > 18:34:36.229 {D3DDDIFMT_A16B16G16R16,0xca701f,0x8a,0x8a,64} > 18:34:36.229 {D3DDDIFMT_R16F,0xc2701f,0x8a,0x8a,16} > 18:34:36.229 {D3DDDIFMT_G16R16F,0xc2701f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_R32F,0xc2701f,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_G32R32F,0xc2701f,0x8a,0x8a,64} > 18:34:36.229 {D3DDDIFMT_A32B32G32R32F,0xca701f,0x8a,0x8a,128} > 18:34:36.229 {D3DDDIFMT_R8,0xc2701f,0x8a,0x8a,8} > 18:34:36.229 {D3DDDIFMT_G8R8,0xc2701f,0x8a,0x8a,16} > 18:34:36.229 {FOURCC(RESZ),0xc2701f,0x0,0x0,32} > 18:34:36.229 {D3DDDIFMT_D16_LOCKABLE,0x10c0,0x0,0x0,16} > 18:34:36.229 {D3DDDIFMT_D16,0x10c1,0x8a,0x8a,16} > 18:34:36.229 {D3DDDIFMT_X8D24,0x10c1,0x8a,0x8a,32} > 18:34:36.229 {D3DDDIFMT_D32F_LOCKABLE,0x10c1,0x0,0x0,32} > 18:34:36.229 {D3DDDIFMT_S8D24,0x10c1,0x8a,0x8a,32} > 18:34:36.229 {FOURCC(DF16),0x10c1,0x8a,0x8a,16} > 18:34:36.229 {FOURCC(DS16),0x10c1,0x8a,0x8a,16} > 18:34:36.230 {FOURCC(DF24),0x10c1,0x8a,0x8a,32} > 18:34:36.230 {FOURCC(INTZ),0x10c1,0x0,0x0,32} > 18:34:36.230 {FOURCC(NULL),0xc2701f,0x8a,0x8a,32} > 18:34:36.230 {D3DDDIFMT_A8,0xc2701f,0x0,0x0,8} > 18:34:36.230 {FOURCC(UYVY),0x7000,0x0,0x0,16} > 18:34:36.230 {FOURCC(YUY2),0x7000,0x0,0x0,16} > 18:34:36.230 {FOURCC(NV12),0x7000,0x0,0x0,12} > 18:34:36.230 {FOURCC(NV21),0x7000,0x0,0x0,12} > 18:34:36.230 {FOURCC(YV12),0x7000,0x0,0x0,12} > 18:34:36.230 {FOURCC(AYUV),0x7000,0x0,0x0,32} > 18:34:36.230 {FOURCC(SYV2),0x7000,0x0,0x0,16} > 18:34:36.230 {FOURCC(P010),0x7000,0x0,0x0,24} > 18:34:36.230 {FOURCC(INST),0x6000,0x0,0x0,0} > 18:34:36.230 {FOURCC(GET4),0x6000,0x0,0x0,0} > 18:34:36.230 {FOURCC(R2VB),0x6000,0x0,0x0,0} > 18:34:36.230 {FOURCC(ATIC),0x6000,0x0,0x0,0} > 18:34:36.230 {FOURCC(FLGL),0x6000,0x0,0x0,0} > 18:34:36.230 {FOURCC(GINF),0x6000,0x0,0x0,0} > 18:34:36.230 {FOURCC(CMSL),0x6000,0x0,0x0,0} > 18:34:36.230 {FOURCC(SHDT),0x6000,0x0,0x0,0} > 18:34:36.230 {FOURCC(MMDX),0x6000,0x0,0x0,0} > 18:34:36.230 Supported z-buffer bit depths: 16, 24 > 18:34:36.230 Supported MSAA modes: msaa(7), msaa2x(4), msaa4x(2), msaa8x(2) > 18:34:36.245 Dynamic vertex buffers are available > 18:34:36.245 Dynamic index buffers are available > 18:34:36.409 Installing DirectDraw hooks > 18:34:36.411 Installing Direct3D hooks > 18:34:36.414 Installing GDI hooks > 18:34:36.423 Finished installing hooks > 18:34:37.071 Using resource format: D3DDDIFMT_R5G6B5, render target primary, anymem -> vidmem > 18:34:37.071 Using resource format: D3DDDIFMT_X8D24, depth buffer, vidmem > 18:34:37.071 Using Direct3D device type: IID_IDirect3DHALDevice > 18:34:37.078 Auto-detected ColorKeyMethod: native > 18:34:37.079 Using feature: enumerating hardware texture formats via IDirect3DDevice > 18:34:37.080 Using resource format: D3DDDIFMT_R5G6B5, plain, sysmem > 18:34:37.084 Using feature: enumerating hardware texture formats via IDirect3DDevice2 > 18:35:04.113 Using resource format: D3DDDIFMT_P8, plain, sysmem > 18:35:04.114 Using resource format: D3DDDIFMT_R5G6B5, texture, vidmemI also tested with DDrawCompat v0.3.1 (since dxwrapper uses this version) and the game also worked pretty much the same as the newer version does, albeit it doesn't scale to 1080p.
Using DDrawCompat in conjunction with dxwrapper's stubs
dinput.dll
anddsound.dll
and options enabled, the game still works as intended.For whatever reason, dxwrapper's
ddraw.dll
stub and options for this wrapped dll, completely breaks the game.