
isledecomp/isle: A functionally complete decompilation of LEGO Island (1997)
Develop a video blog | contribute | matrix | forum | Patron
This is a fully functional decompilation of LEGO Island (version 1.1, English). Its goal is to match the recompiled instructions as closely as possible to the original machine code as accurately as possible. The goal is to provide a viable code base that can be later modified, improved, and ported to other platforms.
Both ISLE.EXE
and LEGO1.DLL
To the best of our knowledge, they are fully decompiled and functionally identical to the original versions. However, work is still ongoing to improve the accuracy, naming, documentation, and structure of the source code. While there may still be unresolved bugs that do not exist at retail, the game should be fully playable using binary files derived from this source code.
Due to various compiler complexities, these binary files are not a byte-for-byte match of the original executable. We remain hopeful that this issue will be resolved at some point.
This project uses CMake Build systems that allow a high degree of versatility in compilers and development environments. For the most accurate results, it is recommended to use Microsoft Visual C++ 4.20 (the same compiler used to build the original game). Since we try to match the output of this code to the original executable as closely as possible, all contributions will be scored based on the output of this compiler.
These instructions will outline how to use Visual C++ 4.2 to compile this repository into high-precision binaries, with most functions conforming to retail instructions. You can try using other compilers if you wish, but this is done at your own risk and will not be covered in this guide.
You will need to install the following software:
- Microsoft Visual C++ 4.2. This can be found on many abandonware sites, but the installer can be a bit unstable on modern versions of Windows. For convenience, a Portable version is available and can be downloaded and used quickly.
- CMake. In newer versions of Visual Studio, a copy of the Desktop Development with C++ workload is usually included; however, it can also be installed as a standalone application.
- Turn on command prompt characters (
cmd
). - Starting with Visual C++ 4.2, execute
BIN/VCVARS32.BAT x86
Fill in the path and other environment variables to compile with MSVC. - Create a folder for compiled objects, for example
build
The folder within the source repository (the folder you cloned/downloaded to). - In your command prompt characters,
cd
Go to the build folder. - Configure the project using CMake by executing the following command:
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo
- Visual C++ 4.2 has issues with paths containing spaces. If the configuration fails or an error occurs, make sure that neither CMake, the repository, nor Visual C++ 4.2 are in a path that contains spaces.
- replace
with the source repository. This can be..
If your build folder is inside the source repository. RelWithDebInfo
Recommended as it will produce debugging symbols useful for further decompilation efforts. However, you can change it toRelease
If you don’t need them.Debug
Not recommended for builds as they are unlikely to be retail compatibleLEGO1.DLL
which is currently the only way to play games using this kind of decompilation.NMake Makefiles
is most recommended as it will be immediately compatible with Visual C++ 4.2. For faster build you can useNinja
(if you have it installed), but due to limitations of Visual C++ 4.2, you can only buildRelease
Constructed this way (cannot generate debugging symbolsNinja
).
- Create a project by running
nmake
orcmake --build
- Once completed, there should be a recompiled
ISLE.EXE
andLEGO1.DLL
in the build folder. - Notice
nmake
Under certain conditions it must be run twice, so it is recommended to always use (re)compilenmake && nmake
.
If you have a CMake-compatible IDE, using this repository should be very simple, as long as you can use VCVARS32.BAT
and set the generator to NMake Makefiles
.
Just compile the ISLE.EXE
and LEGO1.DLL
Go to the LEGO Island installation folder (usually C:\Program Files\LEGO Island
or C:\Program Files (x86)\LEGO Island
). Alternatively, LEGO Island can be run from any directory as long as ISLE.EXE
and LEGO1.DLL
in the same directory and the login project (usually HKEY_LOCAL_MACHINE\Software\Mindscape\LEGO Island
or HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mindscape\LEGO Island
) points to the correct location of the asset file.
If you are interested in helping or contributing to this project, please check out contribute Page.
right click LEGO1.DLL
choose Properties
then switch to Details
tab. below Version
you should see 1.0.0.0
(1.0) or 1.1.0.0
(1.1). Additionally, you can view the game disc archives; 1.0 files will all show August 8, 1997, while 1.1 files will all show September 8, 1997. The most common version.
Please note that some localized versions of LEGO Island have been recompiled with minor changes, despite maintaining version numbers in parallel with other versions; this decompile is specifically for the English version of LEGO Island version 1.1. You can use the following checksum to verify you have the correct version:
- island program
md5: f6da12249e03eed1c74810cd23beb9f5
- Lego 1.etc.
md5: 4e2f6d969ea2ef8655ba3fc221a0c8fe
- Profile
md5: 92d958a64a273662c591c88b09100f4a
2024-12-23 20:03:37