https://github.com/isledecomp/isle Skip to content Navigation Menu Toggle navigation Sign in * Product + GitHub Copilot Write better code with AI + Security Find and fix vulnerabilities + Actions Automate any workflow + Codespaces Instant dev environments + Issues Plan and track work + Code Review Manage code changes + Discussions Collaborate outside of code + Code Search Find more, search less Explore + All features + Documentation + GitHub Skills + Blog * Solutions By company size + Enterprises + Small and medium teams + Startups By use case + DevSecOps + DevOps + CI/CD + View all use cases By industry + Healthcare + Financial services + Manufacturing + Government + View all industries View all solutions * Resources Topics + AI + DevOps + Security + Software Development + View all Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners + Executive Insights * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} isledecomp / isle Public * Notifications You must be signed in to change notification settings * Fork 94 * Star 1.9k A functionally complete decompilation of LEGO Island (1997) 1.9k stars 94 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 2 * Pull requests 0 * Actions * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Security * Insights isledecomp/isle master BranchesTags [ ] Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 1,475 Commits .github/workflows .github/workflows 3rdparty 3rdparty CONFIG CONFIG ISLE ISLE LEGO1 LEGO1 assets assets cmake cmake tools tools util util .clang-format .clang-format .clang-tidy .clang-tidy .editorconfig .editorconfig .gitattributes .gitattributes .gitignore .gitignore .pylintrc .pylintrc CMakeLists.txt CMakeLists.txt CONTRIBUTING.md CONTRIBUTING.md README.md README.md pyproject.toml pyproject.toml reccmp-project.yml reccmp-project.yml View all files Repository files navigation * README LEGO Island Decompilation Development Vlog | Contributing | 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 recompiled instructions to the original machine code as much as possible. The goal is to provide a workable codebase that can be modified, improved, and ported to other platforms later on. Status [68747470733a2f2f6c65676f69736c616] [68747470733a2f2f6c65676f69736c616] Both ISLE.EXE and LEGO1.DLL are completely decompiled and, to the best of our knowledge, are functionally 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 that are not present in retail, the game should be fully playable with the binaries derived from this source code. Due to various complexities with regard to the compiler, these binaries are not a byte-for-byte match of the original executables. We remain hopeful that this can be resolved at some point. Building This project uses the CMake build system, which allows for a high degree of versatility regarding compilers and development environments. For the most accurate results, Microsoft Visual C++ 4.20 (the same compiler used to build the original game) is recommended. Since we're trying to match the output of this code to the original executables as closely as possible, all contributions will be graded with the output of this compiler. These instructions will outline how to compile this repository using Visual C++ 4.2 into highly-accurate binaries where the majority of functions are instruction-matching with retail. If you wish, you can try using other compilers, but this is at your own risk and won't be covered in this guide. Prerequisites You will need the following software installed: * Microsoft Visual C++ 4.2. This can be found on many abandonware sites, but the installer can be a little iffy on modern versions of Windows. For convenience, a portable version is available that can be downloaded and used quickly instead. * CMake. A copy is often included with the "Desktop development with C++" workload in newer versions of Visual Studio; however, it can also be installed as a standalone app. Compiling 1. Open a Command Prompt (cmd). 2. From Visual C++ 4.2, run BIN/VCVARS32.BAT x86 to populate the path and other environment variables for compiling with MSVC. 3. Make a folder for compiled objects to go, such as a build folder inside the source repository (the folder you cloned/downloaded to). 4. In your Command Prompt, cd to the build folder. 5. Configure the project with CMake by running: cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo * Visual C++ 4.2 has issues with paths containing spaces. If you get configure or build errors, make sure neither CMake, the repository, nor Visual C++ 4.2 is in a path that contains spaces. * Replace with the source repository. This can be .. if your build folder is inside the source repository. * RelWithDebInfo is recommended because it will produce debug symbols useful for further decompilation work. However, you can change this to Release if you don't need them. Debug builds are not recommended because they are unlikely to be compatible with the retail LEGO1.DLL, which is currently the only way to use this decompilation for gameplay. * NMake Makefiles is most recommended because it will be immediately compatible with Visual C++ 4.2. For faster builds, you can use Ninja (if you have it installed), however due to limitations in Visual C++ 4.2, you can only build Release builds this way (debug symbols cannot be generated with Ninja). 1. Build the project by running nmake or cmake --build 2. When this is done, there should be a recompiled ISLE.EXE and LEGO1.DLL in the build folder. 3. Note that nmake must be 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 pretty straightforward to use this repository, as long as you can use VCVARS32.BAT and set the generator to NMake Makefiles. Usage Simply place the compiled ISLE.EXE and LEGO1.DLL into LEGO Island's install folder (usually C:\Program Files\LEGO Island or C:\Program Files (x86)\LEGO Island). Alternatively, LEGO Island can 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. Contributing If you're interested in helping or contributing to this project, check out the CONTRIBUTING page. Additional Information Which version of LEGO Island do I have? Right click on LEGO1.DLL, select Properties, and switch to the Details tab. Under Version you should either see 1.0.0.0 (1.0) or 1.1.0.0 (1.1). Additionally, you can look at the game disc files; 1.0's files will all say August 8, 1997, and 1.1's files will all say September 8, 1997. Version 1.1 is by far 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 were recompiled with small changes despite maintaining a version number parallel with other versions; this decompilation specifically targets the English release of version 1.1 of LEGO Island. You can verify you have the correct version using the checksums below: * ISLE.EXE md5: f6da12249e03eed1c74810cd23beb9f5 * LEGO1.DLL md5: 4e2f6d969ea2ef8655ba3fc221a0c8fe * CONFIG.EXE md5: 92d958a64a273662c591c88b09100f4a About A functionally complete decompilation of LEGO Island (1997) Resources Readme Activity Custom properties Stars 1.9k stars Watchers 49 watching Forks 94 forks Report repository Releases 1 Continuous build Latest Dec 23, 2024 Packages 0 No packages published Contributors 29 * @foxtacles * @disinvite * @itsmattkc * @MishaProductions * @ItzSwirlz * @jonschz * @Ramen2X * @tahg * @madebr * @stonedDiscord * @stravant * @WamWooWam * @BranDougherty * @DimaLeon2000 + 15 contributors Languages * C++ 96.5% * C 1.2% * Python 1.2% * CMake 1.1% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.