All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
NodeFileProvidercan load files from.zip,.tar.gz,.tgz, and.rararchives and exposesclearCache().- Node tools export sprites and package levels.
- Complete Mocha test suite with GitHub Actions workflows.
- Bench mode shows a color-coded overlay and recovers speed dynamically.
- Progressive Web App support via
site.webmanifest, touch icons, and a service worker cache. - New docs under
docs/cover CI, testing and sprite export tools. - MIDI device hot-plug listeners refresh input/output lists while preserving selections.
- Debounced stage resize updates to avoid redundant canvas layout work.
- MIDI enable failures now surface in the UI and the error display resets cleanly.
DisplayImage.drawDashedRectnow handles the RGB signature used by the editor overlay.
patchSprites.jscan slice sprite sheets using--sheet-orientation.packLevels.jscreates DAT archives from 2048-byte level files.- These tools rely on
NodeFileProviderto read packs from folders or archives. FileProvidernow prefers IndexedDB caching with localStorage fallback and chunked base64 conversion.
- Agent-focused search/index tooling and related metrics tracking.
- HQX and xBRZ scaling options for smoother graphics.
- Frame step controls for debug playback.
- Bench mode records spawn totals, spawns entrances near originals, randomizes direction and shows TPS.
- Optional custom crosshair cursor.
- Zoom near the level origin centers on the pointer.
- Bench timers, overlay color and text spacing.
- Zoom direction, pan clamping and bottom clamp issues.
- Viewport panning and centering calculations.
- Crosshair transparency and HUD alignment during resize.
- Stage and GUI alignment.
- Stage layout reserves a bottom margin for the HUD.
- Project now requires Node.js 20+.
- Keyboard shortcuts to adjust speed and game functions.
- Right-click actions for quick release-rate changes and debug toggle.
- Support for levels with multiple entrances and animated traps.
- Minimap with zoom and click-and-drag repositioning.
- Original crosshair cursor sprite.
- WebMIDI integration with device selection and error display.
- On-screen speed control UI.
- Frying, jumping and hoisting animations.
- Minimap viewport box and death markers.
- Level packs for Xmas '91/'92 and Holiday '93/'94.
- Skill selection and speed changes while paused.
- Asynchronous Blob loading for BinaryReader.
- Mouse wheel zoom centers on the cursor and keeps the world point under the cursor fixed.
- Switching the game type refreshes level resources automatically.
- Numerous crashes and invisible blockers when lemmings die.
- Corrected fall height and trap cooldown behavior.
- Arrow trigger animation and explosion sprite alignment issues.
- Crash when floating and other action reapply bugs.
- Bomb counters persisting after trap deaths.
- Prevent wasted skill actions while falling.
- Log resource loading failures for easier debugging.
- Optimized performance to handle thousands of lemmings per tick.
- Improved steel terrain detection and arrow wall functionality.
- Displayed speed indicator with keyboard shortcuts and right-click reset.
- Instant min/max release rates and crosshair cursor sprite.
- Multi-entrance levels, trap animations with cooldowns, and arrow walls.
- Minimap with drag-to-pan, zoom, and skill usage while paused.
- Extended debug controls via Nuke toggle and URL parameters.
- Various crashes and invisible blockers after blocking ends.
- Actions consumed by dead lemmings and lingering bomber triggers.
- Trap sprite misalignment, arrow wall animations, and fall height.
- Missing trap cooldown and redundant or wasted actions.
- Optimized hot loops and memory usage with typed arrays and caching.
- Grid-based trigger management and requestAnimationFrame timing.
- Better error propagation, modular code, and partial JSDoc coverage.
- First playable JavaScript port with level and sprite assets.
- PWA manifest, icons and mobile layout improvements.
- Early WebMIDI integration with device selection.
- Basic minimap prototype and debug logging toggles.
- Initial documentation including file format notes.
- Crash fixes for floating lemmings and arrow triggers.
- Early steel detection and trap collision issues.
- Removed incomplete sound and music code.
- General performance and CSS tweaks.