Skip to content

emucap 0.17.0

Choose a tag to compare

@mcpads mcpads released this 22 Sep 15:39
· 51 commits to main since this release

This release reorganizes input tools and fixes PSP menu-return rendering and openMSX capture and disk-state restoration.

Interface changes

  • Use tap for ordinary buttons and keys, pointer for mouse movement/clicks/drags, and debug for persistent input, touch, running-time pulses and hold_until.
  • input_control has been removed. Reconnect Control, refresh tool discovery, and obtain each drawer's current schema and capability revision through operation="describe".

Fixes

  • openMSX disk states: New snapshots bundle native machine state, snapshot-time disk bytes and an identity/hash manifest. Restore creates a current-generation disk copy and verifies the candidate before discarding the original frozen machine. Failed candidates preserve the original session; missing XML replies close the ambiguous channel. Legacy states restore only when unchanged admitted source bytes match the saved disk checksum. Checksums include buffered guest writes.
  • openMSX capture and debugger: Frozen screenshots retain the latest completed VDP raster and report raster identity separately from the current CPU boundary. Unavailable/stale images are rejected without guest execution. Multiple ordered breakpoint snapshots and supported MSX profile contracts are corrected; debugger failure evidence survives shutdown.
  • PSP / PPSSPP: A secondary texture-cache hit now triggers primary texture revalidation, fixing stale glyphs after returning to a menu.
  • macOS lifecycle: Managed stop recognizes an OS-reported exited child that has not yet been reaped.

Updating

Install the prebuilt core package for your platform, or rebuild the Rust release binaries, and reconnect both MCP servers. Rebuild the maintained openMSX host to API 5 and the maintained PPSSPP host; use new managed launches to load the updated native code. Reconnect Control before planning an openMSX launch so its compiled host requirement matches the new host.

Validation

  • 1,482 Rust tests passed; two opt-in tests were excluded. All-target/all-feature Clippy and build guards passed.
  • Release binaries built on macOS ARM64 and cross-built for Linux x86_64 and Windows x86_64. Cross-compilation is build evidence, not runtime qualification on those operating systems.
  • macOS openMSX checks covered cross-generation disk restoration with the prior generation path absent, guest writes, in-flight disk writes, candidate rejection/rollback, persistent input and watchpoint preservation, and cartridge raster regression. The reported Madou Monogatari 2 legacy checkpoint restored with later input and screen progress.
  • PSP menu-return checks passed on original and Korean-patched Puyo Puyo 20th Anniversary routes.
  • The public package was audited and built. Both release MCP servers report 0.17.0; Control reports server_build=bf033ec.

Prebuilt core packages

  • Windows x86-64: emucap-0.17.0-x86_64-pc-windows-msvc.zip (built on Windows Server 2022; requires the Visual C++ x64 Redistributable).
  • Linux x86-64: emucap-0.17.0-x86_64-unknown-linux-gnu.tar.gz (built on Ubuntu 22.04).
  • Apple Silicon: emucap-0.17.0-aarch64-apple-darwin.tar.gz (built on macOS 14; not notarized).

Extract the complete archive and follow PREBUILT-CORE.md. The four prebuilt executables (emucap, emucap-mcp, emucap-track-mcp, emucap-broker) are in target/release/; adapter source, launch scripts and licenses are included. Adapter bridges and emulator hosts must be built separately using their adapter instructions.

All binaries use the unchanged 0.17.0 tag (bf033ecda14d91e69a62043e7ed04a2c9cf4cfaf). Native CI verifies extracted-package registration, CLI startup, both MCP initializations and tool discovery, and Control's exact build revision. Per-platform JSON records contain binary hashes and validation results; SHA256SUMS covers the archives. These core checks do not qualify adapter behavior on Windows or Linux.

This Release replaces the initial source-only publication without moving its tag. Firmware, game media, emulator binaries and private runtime evidence are not included. The bounded game checks do not qualify whole-game behavior or every supported machine profile.