From 919ede5428b76a025c5310d0bd83b8b1a7df270c Mon Sep 17 00:00:00 2001 From: foxtacles Date: Sat, 25 Apr 2026 08:20:40 -0700 Subject: [PATCH 1/3] Update isle progress pipeline (#1752) --- .github/workflows/build.yml | 5 ----- .github/workflows/compare.yml | 28 ++++++++++++++++++++++++---- README.md | 2 +- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1e9d4ae2..8175b208 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -246,7 +246,6 @@ jobs: - name: Upload Continuous Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - UPLOAD_KEY: ${{ secrets.UPLOAD_KEY }} run: | ./upload.sh \ build/CONFIG.EXE \ @@ -255,7 +254,3 @@ jobs: CONFIGPROGRESS* \ ISLEPROGRESS* \ LEGO1PROGRESS* - - curl -X POST -F key=$UPLOAD_KEY -F 'file=@CONFIGPROGRESS.SVG' https://legoisland.org/progress/ - curl -X POST -F key=$UPLOAD_KEY -F 'file=@ISLEPROGRESS.SVG' https://legoisland.org/progress/ - curl -X POST -F key=$UPLOAD_KEY -F 'file=@LEGO1PROGRESS.SVG' https://legoisland.org/progress/ diff --git a/.github/workflows/compare.yml b/.github/workflows/compare.yml index 1e1c3b31..9a98872d 100644 --- a/.github/workflows/compare.yml +++ b/.github/workflows/compare.yml @@ -175,9 +175,9 @@ jobs: find build-entropy -type f -name "CONFIGPROGRESS*.json" > configsamples.txt find build-entropy -type f -name "ISLEPROGRESS*.json" > islesamples.txt find build-entropy -type f -name "LEGO1PROGRESS*.json" > lego1samples.txt - reccmp-aggregate --samples @configsamples.txt --output CONFIGPROGRESS-agg.json --html CONFIGPROGRESS-agg.html - reccmp-aggregate --samples @islesamples.txt --output ISLEPROGRESS-agg.json --html ISLEPROGRESS-agg.html - reccmp-aggregate --samples @lego1samples.txt --output LEGO1PROGRESS-agg.json --html LEGO1PROGRESS-agg.html + reccmp-aggregate --samples @configsamples.txt --output CONFIGPROGRESS-agg.json --html CONFIGPROGRESS-agg.html --svg CONFIGPROGRESS-agg.svg --svg-icon assets/config.png + reccmp-aggregate --samples @islesamples.txt --output ISLEPROGRESS-agg.json --html ISLEPROGRESS-agg.html --svg ISLEPROGRESS-agg.svg --svg-icon assets/isle.png + reccmp-aggregate --samples @lego1samples.txt --output LEGO1PROGRESS-agg.json --html LEGO1PROGRESS-agg.html --svg LEGO1PROGRESS-agg.svg --svg-icon assets/lego1.png - name: Compare Aggregate Accuracy With Current Master shell: bash @@ -208,6 +208,10 @@ jobs: needs: [compare] runs-on: ubuntu-latest if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'isledecomp/isle' }} + permissions: + contents: write + pages: write + id-token: write steps: - uses: actions/checkout@v4 with: @@ -220,10 +224,26 @@ jobs: - name: Upload Continuous Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - UPLOAD_KEY: ${{ secrets.UPLOAD_KEY }} run: | export UPLOADTOOL_SUFFIX=accuracy ./upload.sh \ CONFIGPROGRESS* \ ISLEPROGRESS* \ LEGO1PROGRESS* + + - name: Prepare Pages + run: | + mkdir -p progress + cp CONFIGPROGRESS-agg.svg progress/CONFIGPROGRESS.SVG + cp ISLEPROGRESS-agg.svg progress/ISLEPROGRESS.SVG + cp LEGO1PROGRESS-agg.svg progress/LEGO1PROGRESS.SVG + cp CONFIGPROGRESS-agg.html progress/CONFIGPROGRESS.HTML + cp ISLEPROGRESS-agg.html progress/ISLEPROGRESS.HTML + cp LEGO1PROGRESS-agg.html progress/LEGO1PROGRESS.HTML + + - uses: actions/upload-pages-artifact@v3 + with: + path: progress/ + + - name: Deploy to GitHub Pages + uses: actions/deploy-pages@v5 diff --git a/README.md b/README.md index 6d62e581..5d1ddcc9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This is a functionally complete decompilation of LEGO Island (Version 1.1, Engli ## Status - + 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. From 2c7a7d2f2c9cf4c897be1ec46b20b2f45347f31d Mon Sep 17 00:00:00 2001 From: foxtacles Date: Sat, 25 Apr 2026 13:44:14 -0700 Subject: [PATCH 2/3] Aggregate CI fixes (#1753) --- .github/workflows/compare.yml | 1 + tools/multi-analyze.ps1 | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/compare.yml b/.github/workflows/compare.yml index 9a98872d..df594ea0 100644 --- a/.github/workflows/compare.yml +++ b/.github/workflows/compare.yml @@ -52,6 +52,7 @@ jobs: needs: [fetch-deps, reccmp] runs-on: windows-latest strategy: + fail-fast: false matrix: job: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] builds: diff --git a/tools/multi-analyze.ps1 b/tools/multi-analyze.ps1 index 36caf284..01f9da03 100644 --- a/tools/multi-analyze.ps1 +++ b/tools/multi-analyze.ps1 @@ -21,9 +21,10 @@ foreach($a in $artifacts) { foreach($i in $build_ids) { $params = @{ - FilePath = "reccmp-reccmp" + FilePath = "python" PassThru = $null ArgumentList = @( + "-m", "reccmp.tools.asmcmp", "--paths", $("legobin/" + $a["binfile"]), $($build_dirs[$i] + "/" + $a["binfile"]), From 41f8fca9c255398f3922ff2001e5171b180c3ca7 Mon Sep 17 00:00:00 2001 From: foxtacles Date: Fri, 15 May 2026 13:35:45 -0700 Subject: [PATCH 3/3] Match `Vector4::SetMatrixProduct` (#1754) --- LEGO1/realtime/vector4d.inl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LEGO1/realtime/vector4d.inl.h b/LEGO1/realtime/vector4d.inl.h index c26ecf46..f4c2ace0 100644 --- a/LEGO1/realtime/vector4d.inl.h +++ b/LEGO1/realtime/vector4d.inl.h @@ -75,9 +75,9 @@ void Vector4::EqualsImpl(const float* p_data) void Vector4::SetMatrixProduct(const float* p_vec, const float* p_mat) { m_data[0] = p_vec[0] * p_mat[0] + p_vec[1] * p_mat[4] + p_vec[2] * p_mat[8] + p_vec[3] * p_mat[12]; - m_data[1] = p_vec[0] * p_mat[1] + p_vec[1] * p_mat[5] + p_vec[2] * p_mat[9] + p_vec[4] * p_mat[13]; - m_data[2] = p_vec[0] * p_mat[2] + p_vec[1] * p_mat[6] + p_vec[2] * p_mat[10] + p_vec[4] * p_mat[14]; - m_data[3] = p_vec[0] * p_mat[3] + p_vec[1] * p_mat[7] + p_vec[2] * p_mat[11] + p_vec[4] * p_mat[15]; + m_data[1] = p_vec[0] * p_mat[1] + p_vec[1] * p_mat[5] + p_vec[2] * p_mat[9] + p_vec[3] * p_mat[13]; + m_data[2] = p_vec[0] * p_mat[2] + p_vec[1] * p_mat[6] + p_vec[2] * p_mat[10] + p_vec[3] * p_mat[14]; + m_data[3] = p_vec[0] * p_mat[3] + p_vec[1] * p_mat[7] + p_vec[2] * p_mat[11] + p_vec[3] * p_mat[15]; } // FUNCTION: LEGO1 0x10002ae0