Two Black Cats
Two Black Cats

Pre-Release Version 0.1.4 uploaded to Steam

We've updated the engine to pre-release version 0.1.4.

There have been many changes since our last upload in Dec. 2025, so we have a detailed changelog below, split per category.

 

Compiler Overhaul

The compiler received a full rewrite from string-based emission to a structured IR (Intermediate Representation) with a full optimization pipeline:

  • Structured IR — two-phase compilation: collect IR, render once

  • Script Inlining — sync callees inlined with constant folding and early-return-to-goto conversion

  • CSE (Common Subexpression Elimination) — cross-statement with deep sub-expression replacement

  • LICM (Loop-Invariant Code Motion) — expression-level alias analysis

  • Dead Store Elimination — removes unused variable writes

  • Parameterized Script Dedup — merges nearly-identical scripts differing only in actor IDs

  • Direct C Argument Passing — eliminates global array marshalling for custom events

  • Per-Actor/Trigger Local Var Pools — each type gets only the locals it needs

  • Jump Tables — dense switch statements compile to indexed jumps

  • M68K ASM Expression Lowering — binops, unary ops, DBF loops, TST.W for zero comparisons

  • IR Optimization Passes — constant folding, identity elimination, associative merging

  • UI toggles for optimization passes in Build Options (marked experimental)

 

 

New Resource Compiler

The resource compiler (rescomp) has been completely rewritten in TypeScript instead of using the old Java version — it's 2x faster now.

We also added per-resource size reporting integrated into the editor.

 

Export Platforms

Massive expansion of export targets, build and ship from the editor to:

  • macOS — .app bundles with code signing, universal binary (arm64 + x86_64)

  • iOS — .app export with Metal backend, touch input, landscape support

  • Android — APK/AAB export with AAudio, touch overlay, GLES3 shaders

  • Linux PortMaster — handheld-ready packaging (ARMv7, AArch64, MIPS)

  • Linux Desktop — DEB, RPM, and AppImage

  • Windows — with or without Steam support

  • Web — HTML + WASM

  • Touch Input — texture-based overlay with positional D-pad, layout editor with presets for iOS, Android and Web

 

 

Debugger & CPU Profiler

We improved the debugger substantially, some of the most important changes are:

  • CPU Profiler — cycle-accurate per-section timing with stacked bar visualization

  • Per-script profiling with sparklines, self-time, freeze, and threshold highlighting

  • Flame timeline, sort/filter, hide-idle, budget lines, EMA smoothing

  • Detachable profiler window with copy-to-clipboard export

  • Auto-pause when CPU load exceeds configurable threshold

  • Memory Map — heap walk visualization with DMA, VRAM regions, BSS/Stack split

  • VDP register display aligned with Sega Retro spec

  • Breakpoint sync, step controls, variable/actor inspection

  • DMA tracking with configurable buffer size

  • MiniDebugger standalone app with sprite table, plane tooltips, memory viewer

 

 

Editor UX Improvements

We added new features to the UI, some are related to updating the engine to match GB Studio 4.2.0 and others are custom-made for MD Engine.

The new changes are:

  • Scene Notes — collapsible, markdown-rendered, with linked entities

  • Scene Minimap — overview with connections and click-to-navigate

  • Script Search (Ctrl+Shift+F) — find by command, variable, actor, custom event, constant, or text

  • Multi-Select — Ctrl+click, Shift+drag, Ctrl+A for actors and triggers

  • Stamps — reusable actor/trigger group templates for quick placement

  • Undo/Redo History Panel — draggable floating popup with preview

  • Keyboard Shortcut Customization — full rebinding in Preferences

  • Detachable Script Editor — floating panel for more screen space

  • Asset Usage Report — "View Uses" toggle across all asset editors

  • Import Scene / Import Project — merge content from other projects

  • Tile Grid Overlay — 8x8 / 16x16 with color presets and snap-to-grid

  • Drag-and-drop in navigators (palettes, constants, entities)

  • Right-click context menus in World view (add scenes, notes, delete)

  • F2 rename shortcut in all navigator panels

  • Collapsible root folders in prefabs navigator (Actors/Triggers/Stamps)

  • Auto-labeling for scenes and entities

  • Switch event max cases increased from 16 to 64

  • Inline C Code event with C syntax highlighting

  • Custom event parameter count warning (>6 params)

 

New Engine Features

We added new features to the engine and runtime.

  • Pathfinding — BFS and A* with 8-directional movement, 68K ASM hot paths, configurable grid.

  • Collision Grid — Improves collision performance on certain types of games, like shoot em ups or games with very big maps.

  • Wait counter fix during game pause.

  • Non-fatal warnings for unmapped/invalid memory access. They help identify major bugs.

  • Custom profiler section events (Profile Start/End).

 

 

Performance

We did a major rewrite of the internal runtime engine, and a polish pass on the editor UI, some of the more notable improvements are:

  • Engine (68K ASM) — collision gridding, physics, text rendering, actor sync (branchless isPinned + dbra), tween update (pointer table)

  • Editor — throttled profiler renders (~4Hz), pre-allocated typed arrays, ring buffers, memoized selectors

  • Compiler — parallel I/O, cached lookups, up to 6x faster build time

  • Android — AAudio with lock-free SPSC ring buffer, sustained perf mode (19fps → 60fps fix)

 

 

Integrated Sub-Applications

MiniPainter (Pixel Art Editor)

Full-featured indexed-color pixel art editor embedded in the editor:

  • Sprite, background, tileset, and font editing modes

  • Palette-aware painting with dithering (Bayer + Floyd-Steinberg)

  • Layers, animations (multiple per document), onion skinning

  • Sprite sheet import/export with frame splitting and animation detection

  • Wrong Tile Overlay to highlight palette line mismatches

  • Color picker, quantize dialog, live palette preview

  • Symmetry/mirror drawing, magic wand, marching ants selection

  • Light/dark theme, VRAM usage bar, per-frame duration control

     

MiniTracker (Music Tracker)

Tracker-style music composition tool:

  • Native .mdemt format with FM/PSG/DAC channels

  • DefleMask (.dmf) and Furnace (.fur) import with DAC sample support

  • DMP instrument import

  • VGM export, MIDI export

  • WASM-based chip emulation for live preview

  • Full integration: edit songs directly from the editor's song list

     

MiniNotator (MML Editor)

MML (Music Macro Language) composition tool:

  • ctrmml-compatible MML tokenizer, parser, and compiler

  • Code editor with MML syntax highlighting

  • Live VGM preview with seek via register snapshots

  • DAC sample import and FM6 DAC mode

  • Vibrato, tremolo, arpeggio, pitch/volume envelopes, shuffle/swing

  • MDSDRV driver integration with PCM alignment and drum mode

 

 

Flasher (ROM Flasher)

New serial flash tool for writing ROMs to real cartridges:

  • Flash chip identification from MID/DID database

  • ROM header parsing with auto size detection

  • SRAM backup/restore and save slot management

  • One-click "Flash Last Export" from the editor

  • AMD Unlock Bypass for ~5.5x faster flash writes

 

 

Other Notable Additions

  • EFIGS Localization — multi-language text support in games as new text rendering mode option

  • Slope Support — terrain slopes with 16x16 export

  • GB Studio 4.20 — updated code to GB Studio 4.2.0 format

🌐 Join the Community

Join other developers making retro games and stay updated.