There have been many changes since our last upload in March 2026, so we have a detailed changelog below, split per category.
Also, don't forget MD Engine releases on September 7th!
Engine Architecture
- Hardware abstraction layer: The engine no longer calls SGDK directly. Every hardware operation now goes through a HAL, which is what made most of the rest of this release possible: it is the layer the new PAL support, the window-plane dialogue system and the tile-type callbacks all hook into.
- Fixed-point physics: Migrated to 24.8 positions and 8.8 velocities for better precision.
- Performance: Faster projectile and particle pools, cheaper collision gridding, and fewer redundant
offscreen actor updates.
PAL and NTSC
The engine now knows which region it is running in, and so does everything around it:
- Default Mode: One project-level NTSC/PAL setting, encoded into the exported build.
- Region-correct timing: Script durations, actor motion, tweens, the typewriter text effect and music fades are all scaled per region, so a game plays at the same speed on a 50Hz machine as on a 60Hz one. NTSC output is byte-for-byte identical to before.
- PAL Extra Lines: An opt-in mode that uses PAL's 16 extra scanlines, giving a 240px screen of 30 cells instead of 28, from a single ROM that still serves both regions. The compiler warns you when a scene is too short for it.
- Region-paced preview: The in-editor emulator and the native desktop runtime both run at 50Hz or 60Hz to match, audio included.
- If PAL Mode: A script event to branch on the console's region at runtime.
- PAL vs NTSC sample: A new template project with a stopwatch-against-real-time clock that demonstrates the difference.
Compiler
- New optimization passes: Strength reduction for non-power-of-2 multiplies, liveness analysis, if-chain
to switch conversion, and structured basic-block analysis for the assembly emitters. - Correctness fixes in CSE and LICM: Indexed globals, non-pure call arguments, globals written by called
scripts, and unknown callees are now handled properly instead of being assumed safe. - Project constants: These are now resolved at compile time.
- Compact actor instance data: Actor local variable offsets now exist in the instance rows, and scene
lifecycle dispatched through a descriptor table, making the overall ROM size smaller. - Preload palette AUTO: Now resolves at runtime.
- Export C Source: Added the option to export the project as C source code.
Resource Compiler
- XGM2 audio parity restored: The TypeScript resource compiler's XGM2 output now matches the original Java tool exactly, fixing music playback, with a few other fixes. MDSDRV fixes were done too.
- Maps: Multi-tileset TMX support, TMX priority map handling, an empty-map crash fix, and clearer error
reporting.
New Engine Features
- Dialogue windows: The dialogue box is now a true window-plane rectangle instead of drawn tiles, with
dynamic positioning, split bounds clamping, centre-position handling and a warning when a scene falls back. - Per-layer plane events: Clear Plane, Redraw Plane and friends unified across layers, with a reset-scroll
option. - Tile-type callbacks: Run a script when an actor or projectile touches a tagged tile type.
- One-way slopes: Color coded in the collision painter, with the snapping and wall-avoidance bugs fixed.
- Actor Overlaps Reset: An event to clear first-time collision tracking.
- Cheat Mode: This can now be enabled with a script event.
- VDP Settings: Split charblock layout, a per-mode tile budget readout, and a warning when VDP Tile Setup is registered twice in the same onStart.
- Max Map Changes: Setting exposed in the UI.
- Flash saves: Save operations guarded on flash support, partial chunks deleted, loaded array metadata
clamped, and fewer redundant chunk loads, and support for any flash save size, using virtual sectors instead of hardware sectors, supports both SST and Spansion NOR memories now.
Emulator and Debugger
- Emulator accuracy: H-int counter reload at the active/vblank boundary, CRAM and VSRAM DMA fill, the
sprite-overflow flag on the per-line dot limit, per-channel YM2612 saturation before the L/R mix, DAC channel 6 stereo panning, 68K open-bus returning 0xFF, and pad control-port write storage. - Frame height follows the video mode: Instead of assuming 224 lines, in both the emulator and the debugger.
- Save states: Exposed through the WASM core.
- Flash chip: The flash save emulation has been updated to simulate different types of memories if needed.
- Reset Save Data: A debugger action, plus a fix for saves being dropped while a previous write was still pending.
Playtiles Remote Debugging
- Debug On Playtiles Device: Added a new setting that runs Play on your phone through the Playtiles debug bridge instead of the built-in emulator. The debugger also adapts itself to what a remote device can actually serve.
Editor Improvements
- Clean Up Project: Find and remove unused assets, palettes and entities.
- 11 languages: English, Spanish, French, German, Italian, Japanese, Korean, Polish, Portuguese (BR),
Russian and Simplified Chinese, across the editor and every sub-app. - Go To Sprite: Context menu on actors.
- Palette import dropdown: And a dedicated remove-unused-palettes button.
- Numpad shortcuts: Numpad digits now drive the same shortcuts as the top row, including Ctrl+Numpad
section switching. - Build settings regrouped: Into clearly named sections.
- Save As: Now re-points asset watchers at the new project directory.
- Show Connections: Honours pixel/tile units for switch-scene destinations.
- Dozens of script event fixes: Naming consistency, auto-labels, field types, wrong defaults and
misleading descriptions.
Sub-Applications
- MiniPainter: Multi-document tabs with per-tab palettes and session restore, an indexed-first pixel
pipeline, and tile edits that are indexed-authoritative. - MiniTracker: WAV-to-pattern and WAV-to-synthesis import, playback moved to an AudioWorklet, and hardened song loading and playback timing.
- MiniNotator, imgconv, BMFont and bfxr: Localized and wired into the editor's settings.
Other Notable Additions
- New sample projects — PAL vs NTSC, dialogue planes and HBlank palette effects, bringing the template library to 28 projects.
- Fixes throughout — the map editor's undo shortcut, scene size resets when a TMX file changes, sprite
frame timeline scroll, palette color edits not marking a file dirty, and a long list of smaller ones.