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

Lego Rock Raiders - Incompatibility / Black screen #258

Open
master801 opened this issue Feb 16, 2024 · 0 comments
Open

Lego Rock Raiders - Incompatibility / Black screen #258

master801 opened this issue Feb 16, 2024 · 0 comments

Comments

@master801
Copy link

master801 commented Feb 16, 2024

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 Adrenalin 24.1.1

Lego Rock Raider (SecuROM version)
d3drm.dll - 5.1.26000.0 - PCGamingWiki version (game will not load at all with bundled CD DirectX6 D3DRM.DLL - 4.06.02.436)

Problem: When dxwrapper is used to wrap stub ddraw.dll, and when options Compatibility/DDrawCompat and DDrawCompat/ 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 options ForceTermination and ResetScreenRes 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 in 640x480 (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:

Mode Selection

  • Device
    • Direct3D HAL (Microsoft Direct3D Hardware acceleration through Direc....)
  • Screen Modes:
    • Full Screen
    • 640x480 (16 bit)
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 = 0x00

dxwrapper-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 options Dd7to9 / D3d8to9 / EnableDdrawWrapper / EnableD3d9Wrapper and/or ddraw options ConvertToDirectDraw7 and ConvertToDirect3D7 are enabled, the game will not detect these options properly and will show the error No 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, vidmem

I 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 and dsound.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.

@master801 master801 changed the title Lego Rock Raider - Incompatibility / Black screen Lego Rock Raiders - Incompatibility / Black screen Feb 16, 2024
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

1 participant