Software & Apps

isledecomp/isle: A functionally complete decompilation of LEGO Island (1997)

Development Vlog | Complimented | Matrix | Forums | Patreon

This is a functionally complete decompilation of LEGO Island (Version 1.1, English). It aims to be as accurate as possible, matching the compiled instructions with the original machine code as closely as possible. The goal is to provide a usable codebase that can be modified, improved, and ported to other platforms later.

The two ISLE.EXE and LEGO1.DLL fully decompiled and, to the best of our knowledge, identical to the originals. However, work is still ongoing to improve the accuracy, naming, documentation, and structure of the source code. While there may still be unresolved bugs not in retail, the game should be fully playable with binaries derived from this source code.

Due to various complexities regarding the compiler, these binaries are not a byte-for-byte match of the original executables. We remain hopeful that this will be resolved at some point.

This project uses the CMake build system, which allows for a high level of versatility regarding 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 executables as much as possible, all contributions will be graded in the output of this compiler.

These instructions outline how to compile this repository using Visual C++ 4.2 into the most accurate binary where most of the functions are instruction-matching retail. If you want, you can try using other compilers, but this is at your own risk and is not covered in this guide.

You need to install the following software:

  • Microsoft Visual C++ 4.2. It can be found on many abandonware sites, but the installer can be quite difficult on modern versions of Windows. For convenience, a portable version available to download and use immediately.
  • CMake. A copy is always included in the “Desktop development with C++” workload in newer versions of Visual Studio; however, it can also be installed as a standalone app.
  1. Open Command Prompt (cmd).
  2. From Visual C++ 4.2, run BIN/VCVARS32.BAT x86 to populate the path and other environment variables for MSVC compilation.
  3. Create a folder for the bundled items to go, such as a build folder inside the source repository (the folder you cloned/downloaded).
  4. In your Command Prompt, cd to the build folder.
  5. Configure the project using CMake by running:
cmake  -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo
  • Visual C++ 4.2 has issues with paths containing spaces. When you configure or make errors, make sure that CMake, the repository, or Visual C++ 4.2 is in a path with spaces.
  • change with the source repository. It can be done .. if your build folder is inside the source repository.
  • RelWithDebInfo is recommended because it can generate debug symbols useful for further decompilation work. However, you can change it to Release if you don’t need them. Debug builds are not recommended as they may not be compatible with retail LEGO1.DLLwhich is currently the only way to use this decompilation for gameplay.
  • NMake Makefiles is the most recommended because it is immediately compatible with Visual C++ 4.2. For a faster build, you can use Ninja (if you have it installed), however due to the limitations of Visual C++ 4.2, you can only build Release builds this way (debug symbols cannot be created using the Ninja).
  1. Build the project by running nmake or cmake --build
  2. Once this is done, there should be a recompilation ISLE.EXE and LEGO1.DLL in the build folder.
  3. Note that nmake must run twice under certain conditions, so it is advisable to always (re-)compile using nmake && nmake.

If you have a CMake-compatible IDE, it should be relatively straightforward to use this repository, as long as you can use it. VCVARS32.BAT and put the generator on NMake Makefiles.

Just put the compilation ISLE.EXE and LEGO1.DLL to the LEGO Island installation folder (usually C:\Program Files\LEGO Island or C:\Program Files (x86)\LEGO Island). On the other hand, LEGO Island can be run from any directory as long as ISLE.EXE and LEGO1.DLL are in the same directory, and the registry keys (usually HKEY_LOCAL_MACHINE\Software\Mindscape\LEGO Island or HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mindscape\LEGO Island) point to the correct location for the asset files.

If you are interested in helping or contributing to this project, see the CONTRIBUTING page.

Which version of LEGO Island do I have?

Right click on LEGO1.DLLCHOOSE Propertiesand transfer to Details tab. low Version you should see 1.0.0.0 (1.0) or 1.1.0.0 (1.1). In addition, you can view the game disc files; The 1.0 files say August 8, 1997, and the 1.1 files say September 8, 1997. Version 1.1 is the most common, especially if you’re not using the English or Japanese versions, so that’s most likely the version you have.

Please note that some localized versions of LEGO Island are compiled with minor changes despite maintaining a version number similar to other versions; this decompilation specifically targets the English release of version 1.1 of LEGO Island. You can verify that you have the correct version using the checksums below:

  • ISLE.EXE md5: f6da12249e03eed1c74810cd23beb9f5
  • LEGO1.ETC md5: 4e2f6d969ea2ef8655ba3fc221a0c8fe
  • CONFIG.EXE md5: 92d958a64a273662c591c88b09100f4a

https://opengraph.githubassets.com/f7f2defda656fbf2fcc5783e0c56805a67ac298bd322cb32f3c3a8ea54c3740a/isledecomp/isle

2024-12-23 20:03:00

Related Articles

Leave a Reply

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

Check Also
Close
Back to top button