isledecomp/isle: A functionally complete decompilation of LEGO Island (1997)
December 24, 2024

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.
  1. Turn on command prompt characters (cmd).
  2. Starting with Visual C++ 4.2, execute BIN/VCVARS32.BAT x86 Fill in the path and other environment variables to compile with MSVC.
  3. Create a folder for compiled objects, for example build The folder within the source repository (the folder you cloned/downloaded to).
  4. In your command prompt characters, cd Go to the build folder.
  5. 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 to Release If you don’t need them. Debug Not recommended for builds as they are unlikely to be retail compatible LEGO1.DLLwhich 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 use Ninja (if you have it installed), but due to limitations of Visual C++ 4.2, you can only build Release Constructed this way (cannot generate debugging symbols Ninja).
  1. Create a project by running nmake or cmake --build
  2. Once completed, there should be a recompiled ISLE.EXE and LEGO1.DLL in the build folder.
  3. Notice nmake Under certain conditions it must be run twice, so it is recommended to always use (re)compile nmake && 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.

Which version of Lego Island do I have?

right click LEGO1.DLLchoose Propertiesthen 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

Leave a Reply

Your email address will not be published. Required fields are marked *