5.7 KiB
LEGO Island Decompilation
Development Vlog | Contributing | Matrix | Forums | Patreon
This is a functionally complete decompilation of LEGO Island (Version 1.1, English). The aim is to match the recompiled instructions closely to the original machine code. The goal is to provide a workable codebase that can be modified, improved, and ported to other platforms in the future.
Status
Both ISLE.EXE and LEGO1.DLL are fully decompiled and are functionally identical to the original executables, as far as we know. However, there is ongoing work to improve the accuracy, naming, documentation, and structure of the source code. The game should be fully playable with the binaries derived from this source code, though some unresolved bugs may still exist.
Due to complications with the compiler, the binaries are not a byte-for-byte match of the original executables, but we are hopeful that this will be resolved in the future.
Building
This project uses the CMake build system, allowing compatibility with various compilers and development environments. For the most accurate results, Microsoft Visual C++ 4.20 (the compiler used to build the original game) is recommended. All contributions will be evaluated based on the output from this compiler to maintain accuracy.
These instructions describe how to compile the repository using Visual C++ 4.2 to generate highly-accurate binaries that match the original retail functions. While other compilers may be used, doing so is at your own risk, and is not covered in this guide.
Prerequisites
You will need the following software installed:
- Microsoft Visual C++ 4.2: Available from many abandonware sites. A portable version is also available for easier setup.
- CMake: CMake is typically bundled with the "Desktop development with C++" workload in newer versions of Visual Studio but can also be installed separately.
Compiling
-
Open a Command Prompt (
cmd). -
From Visual C++ 4.2, run
BIN/VCVARS32.BAT x86to set up the environment variables needed for compiling with MSVC. -
Create a folder for the compiled objects, e.g., a
buildfolder inside the source repository (the folder you cloned/downloaded). -
In the Command Prompt,
cdinto the build folder. -
Configure the project with CMake by running:
cmake <path-to-source> -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo- Note: Visual C++ 4.2 has issues with paths containing spaces. If you experience configure or build errors, ensure that CMake, the repository, and Visual C++ 4.2 are not located in a directory with spaces.
- Replace
<path-to-source>with the path to your source repository (you can use..if the build folder is inside the source repository). RelWithDebInfois recommended as it includes debug symbols useful for further decompilation. You can switch toReleaseif you do not need debug symbols. Avoid usingDebugbuilds as they may not be compatible with the retailLEGO1.DLL.NMake Makefilesis preferred for compatibility with Visual C++ 4.2. You can useNinjafor faster builds, but it limits you to onlyReleasebuilds and will not generate debug symbols.
-
Build the project by running either
nmakeorcmake --build <build-folder>. -
After the build process completes,
ISLE.EXEandLEGO1.DLLwill be available in the build folder. -
Important: Run
nmake && nmaketwice under certain conditions to ensure proper recompilation.
If you have a CMake-compatible IDE, using it should be straightforward as long as you can execute VCVARS32.BAT and set the generator to NMake Makefiles.
Usage
To use the compiled executables:
- Place the compiled
ISLE.EXEandLEGO1.DLLinto LEGO Island's installation folder (typically found atC:\Program Files\LEGO IslandorC:\Program Files (x86)\LEGO Island). - Alternatively, LEGO Island can run from any directory, provided both
ISLE.EXEandLEGO1.DLLare in the same directory, and the registry keys (usually located atHKEY_LOCAL_MACHINE\Software\Mindscape\LEGO IslandorHKEY_LOCAL_MACHINE\Software\Wow6432Node\Mindscape\LEGO Island) point to the correct asset file location.
Contributing
If you're interested in contributing to this project, please refer to the CONTRIBUTING page.
Additional Information
Which version of LEGO Island do I have?
To check your version of LEGO Island:
-
Right-click on
LEGO1.DLL, select Properties, and go to the Details tab. You should see either:1.0.0.0(for version 1.0), or1.1.0.0(for version 1.1).
-
You can also check the game disc files:
- Version 1.0 files will be dated August 8, 1997.
- Version 1.1 files will be dated September 8, 1997.
Version 1.1 is the most common, especially if you're not using the English or Japanese versions.
Please note, some localized versions of LEGO Island were recompiled with small changes, even though they share the same version number. This decompilation targets the English release of version 1.1 of LEGO Island.
You can verify that you have the correct version by checking the following checksums:
- ISLE.EXE:
md5: f6da12249e03eed1c74810cd23beb9f5 - LEGO1.DLL:
md5: 4e2f6d969ea2ef8655ba3fc221a0c8fe - CONFIG.EXE:
md5: 92d958a64a273662c591c88b09100f4a