Add changelog section

This commit is contained in:
Christian Semmler 2025-12-31 14:31:55 -07:00
parent 1268c376b1
commit d3e395a63d
No known key found for this signature in database
GPG Key ID: 086DAA1360BEEE5C
3 changed files with 173 additions and 2 deletions

View File

@ -152,6 +152,103 @@
rel="noopener noreferrer">available here</a>.</p> rel="noopener noreferrer">available here</a>.</p>
</details> </details>
</div> </div>
<div class="changelog-section">
<h2>Changelog</h2>
<details>
<summary>December 2025</summary>
<ul>
<li><strong>New:</strong> "Active in Background" option keeps the game running when the tab loses focus</li>
<li><strong>New:</strong> WASD navigation controls as an alternative to arrow keys</li>
<li><strong>Fixed:</strong> Act 3 helicopter ammo now correctly sticks to targets and finishes animations</li>
<li><strong>Fixed:</strong> Pick/click distance calculation for more accurate object selection</li>
<li><strong>Fixed:</strong> Maximum deltaTime capping prevents physics glitches in races</li>
<li><strong>Fixed:</strong> Touch controls now properly support widescreen aspect ratios</li>
<li><strong>Improved:</strong> Default anisotropic filtering increased to 16x for sharper textures</li>
</ul>
</details>
<details>
<summary>November 2025</summary>
<ul>
<li><strong>Fixed:</strong> Dictionary loading failure no longer causes crashes</li>
<li><strong>Fixed:</strong> INI configuration now properly applies defaults when values are missing</li>
</ul>
</details>
<details>
<summary>September 2025</summary>
<ul>
<li><strong>New:</strong> Additional widescreen background images</li>
<li><strong>Fixed:</strong> Jukebox state now correctly restored when using HD Music extension</li>
<li><strong>Fixed:</strong> Background audio no longer gets stuck when starting audio fails</li>
<li><strong>Improved:</strong> SI Loader actions now start at the correct time during world loading</li>
</ul>
</details>
<details>
<summary>August 2025</summary>
<ul>
<li><strong>New:</strong> Extended Bad Ending FMV extension shows the uncut beta animation</li>
<li><strong>New:</strong> HD Music extension with high-quality audio</li>
<li><strong>New:</strong> Widescreen backgrounds extension eliminates 3D edges on wide displays</li>
<li><strong>New:</strong> SI Loader extension system for community content and modifications</li>
<li><strong>New:</strong> OpenGL ES 2.0/3.0 renderer for broader device compatibility</li>
<li><strong>Fixed:</strong> Purple edges no longer appear on scaled transparent 2D elements</li>
<li><strong>Fixed:</strong> Transparent pixels now render correctly with alpha channel support</li>
</ul>
</details>
<details>
<summary>July 2025</summary>
<ul>
<li><strong>New:</strong> HD Textures extension with enhanced visuals</li>
<li><strong>New:</strong> MSAA anti-aliasing support for smoother edges</li>
<li><strong>New:</strong> Anisotropic filtering for sharper textures at angles</li>
<li><strong>New:</strong> Haptic feedback (vibration) support for gamepads and mobile devices</li>
<li><strong>New:</strong> Virtual Gamepad touch control scheme with sliding controls</li>
<li><strong>New:</strong> Gamepad/controller support with analog sticks and D-pad</li>
<li><strong>New:</strong> Full screen mode with in-game toggle</li>
<li><strong>New:</strong> Maximum LOD and Maximum Actors configuration options</li>
<li><strong>New:</strong> Configurable transition animations (Mosaic, Dissolve, Wipe, etc.)</li>
<li><strong>New:</strong> Extensions system allowing community-created content</li>
<li><strong>Fixed:</strong> WebGL driver compatibility issues resolved</li>
<li><strong>Fixed:</strong> Firefox Private browsing mode now works correctly</li>
<li><strong>Fixed:</strong> Virtual cursor transparency and positioning</li>
<li><strong>Fixed:</strong> Touch coordinate translation for proper viewport mapping</li>
<li><strong>Fixed:</strong> Memory leaks in ViewLODList</li>
<li><strong>Fixed:</strong> Screen transitions on software renderer and 32-bit displays</li>
<li><strong>Fixed:</strong> Tabbing in and out of fullscreen</li>
<li><strong>Fixed:</strong> Click spam prevention on touch screens</li>
<li><strong>Improved:</strong> Mosaic transition animation is faster and cleaner</li>
<li><strong>Improved:</strong> Loading UX for HD Textures with progress indicators</li>
</ul>
</details>
<details>
<summary>June 2025 — Initial Release</summary>
<ul>
<li><strong>New:</strong> Emscripten web port — play LEGO Island directly in your browser!</li>
<li><strong>New:</strong> WebGL rendering for hardware-accelerated 3D graphics</li>
<li><strong>New:</strong> Software renderer fallback for devices without WebGL</li>
<li><strong>New:</strong> 32-bit color support for improved visual quality</li>
<li><strong>New:</strong> Full screen support</li>
<li><strong>New:</strong> Joystick/gamepad enabled by default</li>
<li><strong>New:</strong> Option to skip the startup delay</li>
<li><strong>New:</strong> Support for LEGO Island 1.0 version</li>
<li><strong>New:</strong> FPS display option</li>
<li><strong>New:</strong> Game runs without requiring an audio device</li>
<li><strong>Fixed:</strong> Infocenter to Act 2/Act 3 transition issues</li>
<li><strong>Fixed:</strong> Race initialization errors</li>
<li><strong>Fixed:</strong> Jetski race startup issues</li>
<li><strong>Fixed:</strong> Plant creation bug in LegoPlantManager</li>
<li><strong>Fixed:</strong> Late-game "sawtooth" audio glitches</li>
<li><strong>Fixed:</strong> Building variant switching (Pepper's buildings)</li>
<li><strong>Fixed:</strong> OpenGL rendering issues</li>
<li><strong>Fixed:</strong> Image serialization bugs</li>
<li><strong>Improved:</strong> Transparent objects now render correctly (sorted last)</li>
<li><strong>Improved:</strong> GPU mesh uploading via VBOs for better performance</li>
<li><strong>Improved:</strong> Backface culling enabled for faster rendering</li>
<li><strong>Improved:</strong> SIMD-optimized z-buffer clearing</li>
<li><strong>Improved:</strong> Edge-walking triangle rasterization</li>
</ul>
</details>
</div>
</div> </div>
</div> </div>
@ -630,7 +727,7 @@
</div> </div>
<div class="app-footer"> <div class="app-footer">
<p>Last updated: <span id="app-version">2025-12-31 21:02:34 UTC</span></p> <p>Last updated: <span id="app-version">2025-12-31 21:31:41 UTC</span></p>
</div> </div>
</div> </div>

View File

@ -739,6 +739,80 @@ select {
line-height: 1.5; line-height: 1.5;
} }
.changelog-section {
margin-top: 30px;
padding-top: 10px;
border-top: 1px solid #444;
width: 100%;
text-align: left;
}
.changelog-section h2 {
color: #FFD700;
font-size: 1.5em;
margin-bottom: 20px;
text-align: center;
}
.changelog-section details {
background-color: #1c1c1c;
border: 1px solid #333;
border-radius: 8px;
margin-bottom: 10px;
transition: background-color 0.2s ease;
}
.changelog-section details[open] {
background-color: #252525;
}
.changelog-section summary {
padding: 20px;
cursor: pointer;
font-weight: bold;
color: #e0e0e0;
font-size: 1.1em;
list-style: none;
display: flex;
justify-content: space-between;
align-items: center;
}
.changelog-section summary::-webkit-details-marker {
display: none;
}
.changelog-section summary::after {
content: '+';
font-size: 1.5em;
color: #FFD700;
transition: transform 0.2s ease-in-out;
}
.changelog-section details[open] summary::after {
transform: rotate(45deg);
}
.changelog-section details ul {
padding: 0 20px 20px 40px;
margin: 0;
}
.changelog-section details li {
color: #b0b0b0;
font-size: 0.9em;
line-height: 1.6;
margin-bottom: 8px;
}
.changelog-section details li:last-child {
margin-bottom: 0;
}
.changelog-section details li strong {
color: #FFD700;
}
/* Responsive adjustments */ /* Responsive adjustments */
@media (max-width: 768px) { @media (max-width: 768px) {
#install-video { #install-video {

2
sw.js
View File

@ -10,7 +10,7 @@ const { Strategy } = workbox.strategies;
const { CacheableResponsePlugin } = workbox.cacheableResponse; const { CacheableResponsePlugin } = workbox.cacheableResponse;
const { RangeRequestsPlugin } = workbox.rangeRequests; const { RangeRequestsPlugin } = workbox.rangeRequests;
precacheAndRoute([{"revision":"9d8421ea88e9afd4e5124cf1a26f1de7","url":"index.html"},{"revision":"013ceb7d67293d532e979dde0347f3af","url":"cancel_off.webp"},{"revision":"bfc1563be018d82685716c6130529129","url":"cancel_on.webp"},{"revision":"d282c260fd35522036936bb6faf8ad21","url":"cdspin.gif"},{"revision":"3d820bf72b19bd4e437a61e75f317b83","url":"configure_off.webp"},{"revision":"e2c0c5e6aa1f7703c385a433a2d2a519","url":"configure_on.webp"},{"revision":"88e1e81c930d8e6c24dfdc7af274e812","url":"favicon.png"},{"revision":"d16b293eca457e2fb1e7ef2caca8c904","url":"favicon.svg"},{"revision":"d2b9c2e128ef1e5e4265c603b0bc3305","url":"free_stuff_off.webp"},{"revision":"cbc6a6779897f932c3a3c8dceb329804","url":"free_stuff_on.webp"},{"revision":"05fba4ef1884cbbd6afe09ea3325efc0","url":"install_off.webp"},{"revision":"11247e92082ba3d978a2e3785b0acf51","url":"install_on.webp"},{"revision":"d23ea8243c18eb217ef08fe607097824","url":"island.webp"},{"revision":"92952ef8f080c355aec499e669214840","url":"isle.js"},{"revision":"4fb9dbeadeb5781c3a069b5acb1d5f45","url":"isle.wasm"},{"revision":"6d4248f1a08c218943e582673179b7be","url":"poster.pdf"},{"revision":"a6fcac24a24996545c039a1755af33ea","url":"read_me_off.webp"},{"revision":"aae783d064996b4322e23b092d97ea4a","url":"read_me_on.webp"},{"revision":"766a9e6e6d890f24cef252e81753b29d","url":"run_game_off.webp"},{"revision":"70208e00e9ea641e4c98699f74100db3","url":"run_game_on.webp"},{"revision":"0a65c71d9983c9bb1bc6a5f405fd6fd9","url":"shark.webp"},{"revision":"88c1fd032e6fc16814690712a26c1ede","url":"uninstall_off.webp"},{"revision":"0118a4aca04c5fb0a525bf00b001844e","url":"uninstall_on.webp"},{"revision":"b21ea085712e7a731dd721578b46186b","url":"app.js"},{"revision":"1293042d858f504fd82a59cdf14c5593","url":"style.css"},{"revision":"060210979e13e305510de6285e085db1","url":"manifest.json"},{"revision":"4f0172bc7007d34cebf681cc233ab57f","url":"install.webp"},{"revision":"6a70d35dadf51d2ec6e38a6202d7fb0b","url":"install.mp3"},{"revision":"eac041a0b8835bfea706d997b0b7b224","url":"downloader.js"}]); precacheAndRoute([{"revision":"1941a2dd1683d34e6503354fa9002d99","url":"index.html"},{"revision":"013ceb7d67293d532e979dde0347f3af","url":"cancel_off.webp"},{"revision":"bfc1563be018d82685716c6130529129","url":"cancel_on.webp"},{"revision":"d282c260fd35522036936bb6faf8ad21","url":"cdspin.gif"},{"revision":"3d820bf72b19bd4e437a61e75f317b83","url":"configure_off.webp"},{"revision":"e2c0c5e6aa1f7703c385a433a2d2a519","url":"configure_on.webp"},{"revision":"88e1e81c930d8e6c24dfdc7af274e812","url":"favicon.png"},{"revision":"d16b293eca457e2fb1e7ef2caca8c904","url":"favicon.svg"},{"revision":"d2b9c2e128ef1e5e4265c603b0bc3305","url":"free_stuff_off.webp"},{"revision":"cbc6a6779897f932c3a3c8dceb329804","url":"free_stuff_on.webp"},{"revision":"05fba4ef1884cbbd6afe09ea3325efc0","url":"install_off.webp"},{"revision":"11247e92082ba3d978a2e3785b0acf51","url":"install_on.webp"},{"revision":"d23ea8243c18eb217ef08fe607097824","url":"island.webp"},{"revision":"92952ef8f080c355aec499e669214840","url":"isle.js"},{"revision":"4fb9dbeadeb5781c3a069b5acb1d5f45","url":"isle.wasm"},{"revision":"6d4248f1a08c218943e582673179b7be","url":"poster.pdf"},{"revision":"a6fcac24a24996545c039a1755af33ea","url":"read_me_off.webp"},{"revision":"aae783d064996b4322e23b092d97ea4a","url":"read_me_on.webp"},{"revision":"766a9e6e6d890f24cef252e81753b29d","url":"run_game_off.webp"},{"revision":"70208e00e9ea641e4c98699f74100db3","url":"run_game_on.webp"},{"revision":"0a65c71d9983c9bb1bc6a5f405fd6fd9","url":"shark.webp"},{"revision":"88c1fd032e6fc16814690712a26c1ede","url":"uninstall_off.webp"},{"revision":"0118a4aca04c5fb0a525bf00b001844e","url":"uninstall_on.webp"},{"revision":"b21ea085712e7a731dd721578b46186b","url":"app.js"},{"revision":"2898f0ebd4847281c7020d48f43812d9","url":"style.css"},{"revision":"060210979e13e305510de6285e085db1","url":"manifest.json"},{"revision":"4f0172bc7007d34cebf681cc233ab57f","url":"install.webp"},{"revision":"6a70d35dadf51d2ec6e38a6202d7fb0b","url":"install.mp3"},{"revision":"eac041a0b8835bfea706d997b0b7b224","url":"downloader.js"}]);
const gameFiles = [ const gameFiles = [
"/LEGO/Scripts/CREDITS.SI", "/LEGO/Scripts/INTRO.SI", "/LEGO/Scripts/NOCD.SI", "/LEGO/Scripts/SNDANIM.SI", "/LEGO/Scripts/CREDITS.SI", "/LEGO/Scripts/INTRO.SI", "/LEGO/Scripts/NOCD.SI", "/LEGO/Scripts/SNDANIM.SI",