Compatibility Issues: Difference between revisions

From LEGO Island Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[LEGO Island]] was written in 1997 for Microsoft Windows 95. Since then, Windows has gone through several changes, many of which have broken the dated LEGO Island code. This is a list of known [[compatibility issues]] running LEGO Island on modern versions of Windows.
[[LEGO Island]] was written in 1997 for Microsoft Windows 95. Since then, Windows has gone through several changes, many of which have broken the dated LEGO Island code. This is a list of known '''compatibility issues''' running LEGO Island on modern versions of Windows.
 
== D3DRM.DLL was not found ==
 
'''Affects:''' Windows Vista+
 
'''Description:''' LEGO Island was written around an now-obsolete DirectX API called [[Direct3D Retained Mode]]. It was seldom used and quietly dropped in Windows Vista.
 
<center>[[File:D3drm_error.PNG]]</center>
 
'''Solution:'''
* Restore Retained Mode manually using either of the following options:
** Acquire the file '''D3DRM.DLL''':
*** '''Recommended:''' [[File:D3DRM.ZIP|Download the most recent version of D3DRM.DLL]]. This build is newer than the one on disc (2001 as opposed to 1997) and has generally better compatibility with modern Windows (particularly when using dgVoodoo or if playing in Wine).
*** The official LEGO Island disc contains an installer for DirectX 5 including D3DRM.DLL. It can be found at <code><CD drive>:\redist\directx\d3drm.dll</code>.
** Copy '''D3DRM.DLL''' to either of the following locations:
*** The LEGO Island install directory (usually <code>C:\Program Files\LEGO Island</code> or <code>C:\Program Files (x86)\LEGO Island</code>)
*** The Windows system directory (usually <code>C:\Windows\system32</code>)
 
* Use a version of Windows older than Windows Vista.


== Save files don't actually save ==
== Save files don't actually save ==

Revision as of 03:53, 21 October 2019

LEGO Island was written in 1997 for Microsoft Windows 95. Since then, Windows has gone through several changes, many of which have broken the dated LEGO Island code. This is a list of known compatibility issues running LEGO Island on modern versions of Windows.

D3DRM.DLL was not found

Affects: Windows Vista+

Description: LEGO Island was written around an now-obsolete DirectX API called Direct3D Retained Mode. It was seldom used and quietly dropped in Windows Vista.

D3drm error.PNG

Solution:

  • Restore Retained Mode manually using either of the following options:
    • Acquire the file D3DRM.DLL:
      • Recommended: Download the most recent version of D3DRM.DLL. This build is newer than the one on disc (2001 as opposed to 1997) and has generally better compatibility with modern Windows (particularly when using dgVoodoo or if playing in Wine).
      • The official LEGO Island disc contains an installer for DirectX 5 including D3DRM.DLL. It can be found at <CD drive>:\redist\directx\d3drm.dll.
    • Copy D3DRM.DLL to either of the following locations:
      • The LEGO Island install directory (usually C:\Program Files\LEGO Island or C:\Program Files (x86)\LEGO Island)
      • The Windows system directory (usually C:\Windows\system32)
  • Use a version of Windows older than Windows Vista.

Save files don't actually save

Affects: Windows Vista+

Description: LEGO Island saves files into its install directory, which is C:\Program Files\LEGO Island by default. While it was not uncommon at the time to use the install directory for application data, it quickly became bad practice due to security risks. As of Windows Vista, administrator privileges are required to write files anywhere in C:\Program Files, which breaks LEGO Island's saving function.

Solutions:

  • Run LEGO Island as administrator (right click > Run as Administrator)
  • Use LEGO Island Rebuilder, which has an option to redirect save data to `%APPDATA%` (the modern day standard location for application data)
  • Re-install LEGO Island somewhere with full write access (i.e. not C:\Program Files)
  • Manually redirect saves to a writable location in the registry (September build only):
    • 32-bit: HKLM\Software\Mindscape\LEGO Island\savepath
    • 64-bit: HKLM\Software\WOW6432Node\Mindscape\LEGO Island\savepath

General instability, graphical glitches, driving scenes unplayable, etc.

Affects: Most versions of Windows 10

Description: LEGO Island was written around a very old version of DirectDraw, including a retained mode API (D3DRM) that is not only unsupported now, it's also been dropped from Windows/DirectX entirely. Many of its DirectDraw function calls are obsolete, deprecated and/or completely abandoned now.

Solutions:

  • Change to a software mode in the LEGO Island configuration (Ramp Emulation, RGB Emulation, MMX Emulation, Direct3D HEL). These use CPU/software rather than GPU/hardware (theoretically slower, but imperceptible on modern PCs), so hardware/DirectX API differences aren't so impactful.
  • Use dgVoodoo. This wraps several old DirectX API calls to modern DirectX 11 calls, fixing a huge amount of compatibility issues with modern software and hardware.

Textures are heavily glitched

Affects: Windows 10 1809+ (October 2018 aka "October Update")

Description: When using "Ramp Emulation" mode, all 3D textures are heavily glitched. Bitmaps remain normal:

Windows 10 1809 Ramp Bug.png

This is a DirectX incompatibility introduced in Windows 10 1809. The exact cause is unclear.

Solutions:

  • Use "RGB Emulation". This mode is unaffected.
  • Use "Direct3D HAL" with dgVoodoo (full screen only). Direct3D HAL is unaffected in general, but has its own compatibility issues on Windows 10 without using dgVoodoo.
  • Use a version of Windows earlier than Windows 10 1809.