Skip to content

Releases: labelle-toolkit/labelle-assembler

v0.39.1

12 Jun 19:03
0a14c1b

Choose a tag to compare

What's Changed

  • fix(wgpu): first working render path + template fixes + CI example build by @apotema in #284
  • release: v0.39.1 by @apotema in #285

Full Changelog: v0.39.0...v0.39.1

v0.39.0

12 Jun 17:57
8f62de0

Choose a tag to compare

What's Changed

  • feat(sdl_gamepad/sim): multi-gamepad coverage in the simulation harness by @apotema in #281
  • feat(backends): route Linux desktop gamepad to core's udev/evdev source (core#33) by @apotema in #282
  • release: v0.39.0 by @apotema in #283

Full Changelog: v0.38.0...v0.39.0

v0.38.0

12 Jun 14:35
fc264b2

Choose a tag to compare

What's Changed

  • deps: repoint labelle-core backend pins to v1.15.0 tag (#266) by @apotema in #267
  • fix(sokol-android): initialize gamepad subsystem so connected pads show at startup by @apotema in #268
  • fix(sokol/android): light up dpad reported as a HAT axis by @apotema in #269
  • feat(backends): relocate windowless-SDL desktop gamepad source out of core into assembler (core#28) by @apotema in #271
  • fix(gamepad-android): show real device name + type_hint on sokol-Android (#270) by @apotema in #272
  • fix(gamepad-demo): avoid OOB when device name fills the buffer by @apotema in #273
  • feat(gamepad): project.labelle opt-out flag (gamepad: .auto | .none) (core#28) by @apotema in #274
  • fix(tests): drive plugin systems headless on the backend-agnostic test target (#275) by @apotema in #276
  • feat(sdl_gamepad): hardware-free verification harness + CI runtime check by @apotema in #279
  • Fix Windows desktop builds for the sokol and raylib backends by @apotema in #277
  • fix(scanner): fall back to copy when symlink creation is denied on Windows by @apotema in #278
  • release: v0.38.0 by @apotema in #280

Full Changelog: v0.37.0...v0.38.0

v0.37.0

11 Jun 00:11
980760f

Choose a tag to compare

controller backends: raylib/sdl detection+state, sokol Android/iOS/Linux/wasm detection, Android analog state (quirk table), single-core-instance generator fix, ECS wasm32 fix. NOTE: mobile (android/ios/linux/wasm) controller code is compile/cross-compile-verified only — on-device validation tracked in labelle-engine#261.

What's Changed

  • feat(raylib): gamepad hotplug pollGamepadEvents/describeGamepads (#246) by @apotema in #253
  • feat(sdl): native gamepad hotplug + GUID, replace input stubs (#247) by @apotema in #254
  • feat(sokol): Android gamepad detection JNI glue + B->BACK guard (#248) by @apotema in #256
  • fix(build): unify labelle-core onto backend input modules (single core instance) by @apotema in #259
  • feat(sokol): iOS/tvOS gamepad state + link GameController.framework (#251) by @apotema in #257
  • feat(build): link libudev for sokol Linux gamepad detection + udev rule & docs (#249) by @apotema in #255
  • feat(sokol): Android analog gamepad state (buttons + axes + dpad) (#250) by @apotema in #260
  • feat(examples): gamepad input demo (raylib) + raylib-imgui Zig 0.16 build fixes by @apotema in #262
  • fix(ecs/zig-ecs): u32 instance_id for wasm32 (64-bit atomics unsupported) by @apotema in #264
  • release: labelle-assembler v0.37.0 by @apotema in #265

Full Changelog: v0.36.5...v0.37.0

v0.36.5 — ECS component-storage cache

09 Jun 16:41
e797208

Choose a tag to compare

ECS adapter: cache component storage per type (#245)

Registry.assure(T) re-hashed a comptime-constant type id into a HashMap on every component access (getComponent/hasComponent/view filtering) — profiling a 100-worker scene showed this as the single biggest per-tick CPU cost. The adapter now memoizes the *Storage(T) pointer in a per-T threadlocal cache, validated against a per-adapter instance_id (immune to registry address reuse; race-free under concurrent access).

Measured (Debug, 100-worker scene): assure HashMap self-time −96%; Debug FPS +8% median / +24% at the dips (p10 73→92). ReleaseFast (vsync-capped) banks it as headroom. Behavior-preserving.

Downstream: bump .assembler_version to 0.36.5. Closes Flying-Platform/flying-platform-labelle#509.

What's Changed

  • fix: resolve cross-file Subflow refs in flow_scanner (unblocks Delay) (#243) by @apotema in #244
  • perf(ecs): cache component storage per type in the adapter by @apotema in #245

Full Changelog: v0.36.4...v0.36.5

v0.36.4 — frame-rate-independent desktop dt

08 Jun 23:54
5320a95

Choose a tag to compare

Frame-rate-independent desktop simulation (#242)

Desktop sokol and raylib backends now derive the per-frame simulation dt from real elapsed frame time (clamped) instead of a fixed 1/target_fps, matching the mobile/wasm templates. Previously the desktop sim speed scaled with the display refresh rate (e.g. ~1.67× too fast on a 100Hz panel, 2× on 120Hz). Now the game runs at real-time regardless of display refresh.

  • backends/sokol/templates/desktop.txt: dt = @min(frameDuration(), 4.0/target_fps)
  • backends/raylib/templates/desktop.txt: dt = @min(getFrameTime(), 4.0/target_fps)
  • Hardened the 4.0/target_fps clamp denominator with @max(target_fps, 1) across desktop + mobile templates to guard a target_fps=0 (unlimited) config against divide-by-zero.

Downstream note: games consuming this should bump .assembler_version to 0.36.4. The dt change is frame-rate-independent (non-deterministic vs the old fixed step) and may warrant a re-balance for games tuned against the old refresh-coupled speed.

Closes Flying-Platform/flying-platform-labelle#504 (downstream tracking).

What's Changed

  • fix(backends): make desktop sim frame-rate-independent by @apotema in #242

Full Changelog: v0.36.3...v0.36.4

v0.36.3

04 Jun 18:21

Choose a tag to compare

What's Changed

  • fix: game-script CustomNodes compile — shim PluginFlowNodes + named-module promotion (#240) by @apotema in #241

Full Changelog: v0.36.2...v0.36.3

v0.36.2

04 Jun 17:38

Choose a tag to compare

What's Changed

Full Changelog: v0.36.1...v0.36.2

v0.36.1

27 May 19:53

Choose a tag to compare

What's Changed

  • feat(scan): read assets manifest from bundle meta header (RFC #596) by @apotema in #237

Full Changelog: v0.36.0...v0.36.1

v0.36.0

27 May 18:54

Choose a tag to compare

What's Changed

  • feat(scan): accept RFC #596 wrapper-flat + bundle + meta shapes by @apotema in #235

Full Changelog: v0.35.0...v0.36.0