Windowed Mode: Difference between revisions

From LEGO Island Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[LEGO Island]] does not officially have a [[Windowed Mode]], however one can be enabled with the use of registry tweaks. The mode is somewhat limited, it seems the feature was either never completed or perhaps only intended for testing during development. Regardless, the game is fully playable in it with only a few graphical compromises.
''[[LEGO Island]]'' does not officially have a [[Windowed Mode]], however one can be enabled with the use of registry tweaks. The mode is somewhat limited, it seems the feature was either never completed or perhaps only intended for use during development. Regardless, the game is fully playable in it with only a few graphical compromises.


== Limitations ==
== Enabling ==


While LEGO Island is fully playable in windowed mode, it requires a specific configuration to work properly.
=== Automatic (LEGO Island Rebuilder) ===


LEGO Island will refuse to run windowed if the graphical mode selected is Direct3D HAL (hardware mode). Instead you'll have to select a software mode (RGB/MMX/Ramp) in [[CONFIG.EXE]]. Software modes are inherently slower since the CPU is used to render graphics without any involvement of the GPU, however this is only noticeable on older computers since modern CPUs are fast enough to render LEGO Island at its maximum frame rate. Using a software mode will also disable [[dgVoodoo]] and any of its features.
[[LEGO Island Rebuilder]] allows you to modify the "Full Screen" setting on launch without requiring editing registry entries or adminstrator privileges:


LEGO Island is designed to run at particular bit depths (either 8-bit or 16-bit) and will ordinarily switch into an appropriate mode on startup automatically. However in windowed mode, LEGO Island naturally makes no change to the display mode whatsoever. Since it was never intended to run at any bit depth over 16-bit color (most modern computers run at 32-bit color), its graphics are not correctly initialized in this state, and as a result, all of the game's bitmaps (2D backgrounds/sprites) will be missing. While this doesn't affect the outside 3D island gameplay, it does affect any indoors rooms including all build sequences. This issue is particularly obstructive for the opening registration book sequence that predominantly uses 2D sprites, making it extremely difficult to even start playing the game. To work around this, LEGO Island must be run at a lower bit depth so that its graphics initialize correctly (see below for instructions on setting LEGO Island's or your system's bit depth to a lower one).  
<center>https://i.imgur.com/vAXy68m.png</center>
 
=== Manual (Registry Editing ===
 
To enable windowed mode through the registry, you'll need to edit the string value at <code>HKEY_LOCAL_MACHINE\Software\Mindscape\LEGO Island\Full Screen</code> to <code>NO</code> using <code>regedit</code>.
 
On 64-bit systems, this key will be located at <code>HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mindscape\LEGO Island</code> instead.


== Enabling Windowed Mode (Recommended) ==
Note that changing settings through [[CONFIG.EXE]] will always reset this value to <code>YES</code>, so you'll have to change it back again.


Use the [[LEGO Island Rebuilder]] tool. It does everything below automatically with one setting and requires no administrator privileges or registry editing to do so.
=== Limitations ===


<center>https://i.imgur.com/vAXy68m.png</center>
While ''LEGO Island'' is fully playable in windowed mode, it requires some specific configuration to work properly:


== Enabling Windowed Mode (Manually) ==
==== Windowed in hardware mode ====


Firstly, you must have registry write access.
Ordinarily, if your graphics mode is set to "Direct3D HAL", ''LEGO Island'' will throw a "failed to startup" error. This is actually thrown when the <code>Flip Surfaces</code> setting is enabled, which [[CONFIG.EXE]] forces on when "Direct3D HAL" is selected. If you toggle <code>Flip Surfaces</code> off, either in the registry or with [[LEGO Island Rebuilder]], you will be able to run "Direct3D HAL" in windowed mode.


# In the Lego Island configuration, set your Direct3D device to '''Ramp Emulation''' (Lego Island will crash on launch if it's set to `Direct3D HAL` and windowed mode).
==== Missing bitmaps ====
# Using <code>regedit.exe</code>, browse to <code>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mindscape\LEGO Island</code> (64-bit) or <code>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\LEGO Island</code> (32-bit)
# Set value '''Full Screen''' to '''NO'''.
# Lego Island will now run in a window next time you run it.


NOTE: Lego Island Configuration will automatically set "Full Screen" back to YES
''LEGO Island'' only supports 8-bit and 16-bit color modes, however most modern computers run in 32-bit color. The 3D can render here since it's handled by Direct3D, but the bitmaps are handled manually by the game, and since it doesn't support 32-bit they simply don't render.


=== In windowed mode, the background textures are missing and everything is blue ===
This results in backgrounds becoming a solid blue color:


https://i.imgur.com/F43M2lN.png
https://i.imgur.com/F43M2lN.png


'''Solution:''' Run LEGO Island in 16-bit or 8-bit (256 color) mode.
===== Windows =====
 
'''Explanation: ''' "Ramp Emulation", which we had to enable in step 1 for windowed mode to work in the first place, is limited to 16-bit or 8-bit color mode. For reference, a modern computer will usually be running in 32-bit color mode (also known as "True Color" or "Millions of Colors"). When running in full screen, Lego Island will automatically change the display mode to the color mode set in [[CONFIG.EXE]], but it doesn't in windowed mode which causes this issue.


'''Tutorial:''' Starting with Windows XP, applications can be individually set to run at a different bit depth. To do so, right click LEGO Island and click Properties in the context menu. Then switch to the "Compatibility" tab.
Starting with Windows XP, applications can be individually set to run at a different bit depth. To do so, right click LEGO Island and click Properties in the context menu. Then switch to the "Compatibility" tab.


https://i.imgur.com/cngmbTo.png
https://i.imgur.com/cngmbTo.png
Line 43: Line 44:


Alternatively, you can manually set the bit depth yourself to 16-bit in Display properties (pre-Vista) or Screen Resolution (post-Vista).
Alternatively, you can manually set the bit depth yourself to 16-bit in Display properties (pre-Vista) or Screen Resolution (post-Vista).
===== Wine (Linux/Mac) =====
The same limitations on Direct3D HAL/Flip Surfaces above apply here.
Wine does not have Windows' 8-bit/16-bit color compatibility mode, nor do their host operating systems Linux and macOS. This makes it difficult to address the missing bitmap/blue background issue.
Instead, it can be better to run the game in full screen, and then enable Wine's "Emulate Virtual Desktop" feature. This will force any full screen game into a window, but also limits anything else you do in that Wine prefix to that window. There are also known graphical glitches that appear for unknown reasons in this mode, though they are not critical enough to be game-breaking.
For a more ideal solution, it's recommended to look into [[#dgVoodoo|dgVoodoo]] (see below). You may also need to install [https://github.com/doitsujin/dxvk DXVK] for the game to render correctly.
== dgVoodoo ==
Alternatively, [[dgVoodoo]] can force windowed mode if ''LEGO Island'' is set to "Direct3D HAL" with full screen '''enabled'''. This works on both Windows and Wine and is in many ways superior to the game's built-in windowed mode. It has no limitations on 32-bit color mode and allows (read: requires) hardware mode.
The following images show a dgVoodoo configuration that will force ''LEGO Island'' into a windowed mode:
<center>
<gallery>
File:Dgvwin1.png
File:Dgvwin2.png
</gallery>
</center>
== External Links ==
* [http://www.dege.freeweb.hu/ dgVoodoo Official Website]
* [https://github.com/doitsujin/dxvk DXVK GitHub]

Latest revision as of 20:52, 1 November 2023

LEGO Island does not officially have a Windowed Mode, however one can be enabled with the use of registry tweaks. The mode is somewhat limited, it seems the feature was either never completed or perhaps only intended for use during development. Regardless, the game is fully playable in it with only a few graphical compromises.

Enabling

Automatic (LEGO Island Rebuilder)

LEGO Island Rebuilder allows you to modify the "Full Screen" setting on launch without requiring editing registry entries or adminstrator privileges:

https://i.imgur.com/vAXy68m.png

Manual (Registry Editing

To enable windowed mode through the registry, you'll need to edit the string value at HKEY_LOCAL_MACHINE\Software\Mindscape\LEGO Island\Full Screen to NO using regedit.

On 64-bit systems, this key will be located at HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mindscape\LEGO Island instead.

Note that changing settings through CONFIG.EXE will always reset this value to YES, so you'll have to change it back again.

Limitations

While LEGO Island is fully playable in windowed mode, it requires some specific configuration to work properly:

Windowed in hardware mode

Ordinarily, if your graphics mode is set to "Direct3D HAL", LEGO Island will throw a "failed to startup" error. This is actually thrown when the Flip Surfaces setting is enabled, which CONFIG.EXE forces on when "Direct3D HAL" is selected. If you toggle Flip Surfaces off, either in the registry or with LEGO Island Rebuilder, you will be able to run "Direct3D HAL" in windowed mode.

Missing bitmaps

LEGO Island only supports 8-bit and 16-bit color modes, however most modern computers run in 32-bit color. The 3D can render here since it's handled by Direct3D, but the bitmaps are handled manually by the game, and since it doesn't support 32-bit they simply don't render.

This results in backgrounds becoming a solid blue color:

https://i.imgur.com/F43M2lN.png

Windows

Starting with Windows XP, applications can be individually set to run at a different bit depth. To do so, right click LEGO Island and click Properties in the context menu. Then switch to the "Compatibility" tab.

https://i.imgur.com/cngmbTo.png

Prior to Windows 8, the only available mode is "256 color" mode and your whole system will be temporarily set to this mode until the application quits. LEGO Island will run perfectly fine in 256 color mode, but you may see some color banding or other artifacts.

From Windows 8 onwards, 16-bit mode is also available providing much more color and the mode is only set for the application rather than the whole system. This is strongly recommended for playing LEGO Island windowed.

Alternatively, you can manually set the bit depth yourself to 16-bit in Display properties (pre-Vista) or Screen Resolution (post-Vista).

Wine (Linux/Mac)

The same limitations on Direct3D HAL/Flip Surfaces above apply here.

Wine does not have Windows' 8-bit/16-bit color compatibility mode, nor do their host operating systems Linux and macOS. This makes it difficult to address the missing bitmap/blue background issue.

Instead, it can be better to run the game in full screen, and then enable Wine's "Emulate Virtual Desktop" feature. This will force any full screen game into a window, but also limits anything else you do in that Wine prefix to that window. There are also known graphical glitches that appear for unknown reasons in this mode, though they are not critical enough to be game-breaking.

For a more ideal solution, it's recommended to look into dgVoodoo (see below). You may also need to install DXVK for the game to render correctly.

dgVoodoo

Alternatively, dgVoodoo can force windowed mode if LEGO Island is set to "Direct3D HAL" with full screen enabled. This works on both Windows and Wine and is in many ways superior to the game's built-in windowed mode. It has no limitations on 32-bit color mode and allows (read: requires) hardware mode.

The following images show a dgVoodoo configuration that will force LEGO Island into a windowed mode:

External Links