systemless 0.9.8

High-Level Emulation for classic Macintosh applications
Documentation
# Changelog

## [0.9.8]https://github.com/benletchford/systemless/compare/v0.9.7...v0.9.8 (2026-07-30)


### Bug Fixes

* correct FixRound Pascal stack discipline ([#214]https://github.com/benletchford/systemless/issues/214) ([2f66eed]https://github.com/benletchford/systemless/commit/2f66eed0ff6d185964618d6fb1dd6cfa9dcf048d)

## [0.9.7]https://github.com/benletchford/systemless/compare/v0.9.6...v0.9.7 (2026-07-30)


### Bug Fixes

* preserve Finder metadata in web packages ([#211]https://github.com/benletchford/systemless/issues/211) ([b52cb58]https://github.com/benletchford/systemless/commit/b52cb5867fda53da3c2078c820ba185fbd2af664)

## [0.9.6]https://github.com/benletchford/systemless/compare/v0.9.5...v0.9.6 (2026-07-30)


### Bug Fixes

* translate indexed CopyBits across differing depths ([#208]https://github.com/benletchford/systemless/issues/208) ([c53b5d4]https://github.com/benletchford/systemless/commit/c53b5d40696a7ebaabd31afc046938a9adc8a55e)

## [0.9.5]https://github.com/benletchford/systemless/compare/v0.9.4...v0.9.5 (2026-07-30)


### Bug Fixes

* gate launch Apple events on the SIZE capability ([#203]https://github.com/benletchford/systemless/issues/203) ([f975d51]https://github.com/benletchford/systemless/commit/f975d51b762636ff49e4e729cf682109b326a81f)
* install canonical indexed palettes when changing depth ([#205]https://github.com/benletchford/systemless/issues/205) ([129fd4d]https://github.com/benletchford/systemless/commit/129fd4d7ad3d5534a181f025df3ef8fc655533e6)
* render Toolbox chrome through packed indexed framebuffers ([#206]https://github.com/benletchford/systemless/issues/206) ([7ba1b86]https://github.com/benletchford/systemless/commit/7ba1b863b7d790718590de06be53e2e6c30d1303)
* resolve bitmap strikes through FOND associations ([#200]https://github.com/benletchford/systemless/issues/200) ([8cde076]https://github.com/benletchford/systemless/commit/8cde0768739c970ba645b5e6f55ffd0f3afa0707)
* return canonical byte Booleans from dialog event traps ([#204]https://github.com/benletchford/systemless/issues/204) ([bf9e9f2]https://github.com/benletchford/systemless/commit/bf9e9f212566156a7a88aa66d9eff76a10147889)

## [0.9.4]https://github.com/benletchford/systemless/compare/v0.9.3...v0.9.4 (2026-07-30)


### Bug Fixes

* preserve explicit palette indices during indexed blits ([#194]https://github.com/benletchford/systemless/issues/194) ([4a2429d]https://github.com/benletchford/systemless/commit/4a2429dac44a9bfad81edbbbe2b47e2c5e88c048)

## [0.9.3]https://github.com/benletchford/systemless/compare/v0.9.2...v0.9.3 (2026-07-30)


### Bug Fixes

* create and resolve minimal full-path aliases ([#191]https://github.com/benletchford/systemless/issues/191) ([1c0f4c2]https://github.com/benletchford/systemless/commit/1c0f4c2f14f9b5c24edf5a9df541968f82802a9f)

## [0.9.2]https://github.com/benletchford/systemless/compare/v0.9.1...v0.9.2 (2026-07-30)


### Bug Fixes

* record 8-bit ClosePicture snapshots without overflow ([1fa7a56]https://github.com/benletchford/systemless/commit/1fa7a56e3177324ff93e7d20d0590dbe430cef06)
* restore offscreen PixMap base handles ([59e772f]https://github.com/benletchford/systemless/commit/59e772fe4beda4d2d50a5f29aaab565f22cade98)

## [0.9.1]https://github.com/benletchford/systemless/compare/v0.9.0...v0.9.1 (2026-07-30)


### Bug Fixes

* strip synthetic Unix volumes from HFS paths ([aaad830]https://github.com/benletchford/systemless/commit/aaad83056b225fcb6c73dd67581fcd73d262e573)

## [0.9.0]https://github.com/benletchford/systemless/compare/v0.8.8...v0.9.0 (2026-07-30)


### Features

* pack multi-source HFS game releases for web ([#171]https://github.com/benletchford/systemless/issues/171) ([db4281e]https://github.com/benletchford/systemless/commit/db4281e553083bb5086db7376ac4c47e17867a1d)


### Bug Fixes

* deliver mouse input to custom ADB service routines ([#149]https://github.com/benletchford/systemless/issues/149) ([956efd2]https://github.com/benletchford/systemless/commit/956efd229bb5295091874b62a1de8722ad01b029)
* **dialog:** retain packed indexed snapshots ([#173]https://github.com/benletchford/systemless/issues/173) ([03dd973]https://github.com/benletchford/systemless/commit/03dd973fca8e3510c7d14c6d72fbae693a1ad0e9)
* **files:** preserve relative pathname components ([#159]https://github.com/benletchford/systemless/issues/159) ([70e5a21]https://github.com/benletchford/systemless/commit/70e5a21e0f66d702d2db8ccd1cf1812d9ef50c37)
* **files:** preserve slashes in HFS filenames ([#155]https://github.com/benletchford/systemless/issues/155) ([4fa5eb2]https://github.com/benletchford/systemless/commit/4fa5eb294deab41682e7d4870aaed74f76add70e)
* **files:** resolve the volume root through its parent ID ([#153]https://github.com/benletchford/systemless/issues/153) ([36557bc]https://github.com/benletchford/systemless/commit/36557bcd9031f5184434101781c1a5cfef363c0d)
* **loader:** mount MacBinary application forks ([#151]https://github.com/benletchford/systemless/issues/151) ([eb0c1a8]https://github.com/benletchford/systemless/commit/eb0c1a845025237101a02ef2d6660e1410c8a446)
* **quickdraw:** encode indexed ClosePicture snapshots ([#175]https://github.com/benletchford/systemless/issues/175) ([eab646a]https://github.com/benletchford/systemless/commit/eab646a34c36dabac6678ab681a38abcf6a69f58)
* **quickdraw:** translate screen CopyBits rectangles ([#162]https://github.com/benletchford/systemless/issues/162) ([f34d52d]https://github.com/benletchford/systemless/commit/f34d52d38fa54a84d7489c4632dffdd000482f2d)
* render 4-bit indexed display modes ([#170]https://github.com/benletchford/systemless/issues/170) ([9267b22]https://github.com/benletchford/systemless/commit/9267b22761cc87097093f82e81f19227adbeaba9)
* translate indexed colors in CopyMask ([#167]https://github.com/benletchford/systemless/issues/167) ([22fc694]https://github.com/benletchford/systemless/commit/22fc6941a4a5ba5087e77d5ccfdfb3ded19da679)
* use canonical Pascal booleans in Standard File replies ([#157]https://github.com/benletchford/systemless/issues/157) ([d5e8ae0]https://github.com/benletchford/systemless/commit/d5e8ae03e95c96ca9d2732d15ac8792e351a1b8d)
* **window:** erase newly exposed window content ([#158]https://github.com/benletchford/systemless/issues/158) ([e4759cd]https://github.com/benletchford/systemless/commit/e4759cda5b5a3f9a1a7904d846975ae03f7e41ba)
* **window:** redraw window pictures during update scans ([#164]https://github.com/benletchford/systemless/issues/164) ([41a8d3f]https://github.com/benletchford/systemless/commit/41a8d3fe551db859ee76f8388561ce1d5a4e53b0)
* **window:** refresh saved-under desktop pixels ([#166]https://github.com/benletchford/systemless/issues/166) ([3e57ba6]https://github.com/benletchford/systemless/commit/3e57ba6b18c90e930702f8a8c543f0ace91ea811)

## [0.8.8]https://github.com/benletchford/systemless/compare/v0.8.7...v0.8.8 (2026-07-29)


### Bug Fixes

* restore retained modal backgrounds using dialog bounds ([95ff71c]https://github.com/benletchford/systemless/commit/95ff71c31e9905197a8414d4f1e6535e8b903b7b)

## [0.8.7]https://github.com/benletchford/systemless/compare/v0.8.6...v0.8.7 (2026-07-29)


### Bug Fixes

* **loader:** prefer user applications over System Folder utilities ([722f76e]https://github.com/benletchford/systemless/commit/722f76ead301cf4f1feeb6d789271756ebbb69df)

## [0.8.6]https://github.com/benletchford/systemless/compare/v0.8.5...v0.8.6 (2026-07-29)


### Performance Improvements

* **runner:** prove and park exact idle cycles ([8cd95d7]https://github.com/benletchford/systemless/commit/8cd95d73a733a9fe21d546b3cba6d5b9df3372c5)
* **runner:** support signed BLT and computed-deadline TickCount waits ([bfe2ded]https://github.com/benletchford/systemless/commit/bfe2ded6a5f691e4b82b1fad17fc239f08982398)

## [0.8.5]https://github.com/benletchford/systemless/compare/v0.8.4...v0.8.5 (2026-07-29)


### Bug Fixes

* honor guest-updated mouse coordinates in GetMouse ([#139]https://github.com/benletchford/systemless/issues/139) ([d47e2e9]https://github.com/benletchford/systemless/commit/d47e2e9ba454aee94f286ca6abefb967a66e7822)

## [0.8.4]https://github.com/benletchford/systemless/compare/v0.8.3...v0.8.4 (2026-07-29)


### Bug Fixes

* preserve the current GrafPort when creating dialogs ([6fa282f]https://github.com/benletchford/systemless/commit/6fa282f66e3a3cd8a2759dab71dd58700720d7ac)

## [0.8.3]https://github.com/benletchford/systemless/compare/v0.8.2...v0.8.3 (2026-07-29)


### Bug Fixes

* render generated RGB pixel patterns in color ports ([5afe04d]https://github.com/benletchford/systemless/commit/5afe04d8c916f2c775d7655054a188936c1fbd44)

## [0.8.2]https://github.com/benletchford/systemless/compare/v0.8.1...v0.8.2 (2026-07-28)


### Bug Fixes

* honor MakeRGBPat colors in FillCRect ([#128]https://github.com/benletchford/systemless/issues/128) ([7f50f52]https://github.com/benletchford/systemless/commit/7f50f527dd619eddd6ebe307919aca5f321a9ed9)
* implement Pack4 binary-to-decimal conversion ([#126]https://github.com/benletchford/systemless/issues/126) ([3623732]https://github.com/benletchford/systemless/commit/3623732d066b75c786c204ed1654db2c6bb9c023)
* resolve legacy PBCreate through working directory references ([#124]https://github.com/benletchford/systemless/issues/124) ([185b8c5]https://github.com/benletchford/systemless/commit/185b8c583287a2588b094e4e31f991f78f59b95e)
* treat nonzero control visibility values as visible ([#122]https://github.com/benletchford/systemless/issues/122) ([133c00a]https://github.com/benletchford/systemless/commit/133c00ac4b7b7248575a7b24248f6a0b0e2f58c7)

## [0.8.1]https://github.com/benletchford/systemless/compare/v0.8.0...v0.8.1 (2026-07-28)


### Bug Fixes

* accept a Pascal BOOLEAN parameter in either byte of its stack slot ([#114]https://github.com/benletchford/systemless/issues/114) ([d4ea0f5]https://github.com/benletchford/systemless/commit/d4ea0f5f9f3e8437d3346f57ba1138a6490d8b25)
* preserve Sound Manager Pascal callback and dispatch frames ([#120]https://github.com/benletchford/systemless/issues/120) ([a89d233]https://github.com/benletchford/systemless/commit/a89d233a75b2cde2c964f7be61b76b5583bef70a)
* resolve control title ink against the live device colour table ([#119]https://github.com/benletchford/systemless/issues/119) ([c804e91]https://github.com/benletchford/systemless/commit/c804e91b5524a183dad2ce89fa6afdb194a09218)

## [0.8.0]https://github.com/benletchford/systemless/compare/v0.7.1...v0.8.0 (2026-07-27)


### Features

* implement the full Thread Manager selector table for cooperative threads ([0545f62]https://github.com/benletchford/systemless/commit/0545f62de193dbb2d4c1cf8279083243e1246cc3)

## [0.7.1]https://github.com/benletchford/systemless/compare/v0.7.0...v0.7.1 (2026-07-27)


### Bug Fixes

* activate queued launches when caller exits ([0b8c40a]https://github.com/benletchford/systemless/commit/0b8c40a1890714df2e05d53b9fed44d48eb7f2c6)
* correct sound doubleback argument order ([f390999]https://github.com/benletchford/systemless/commit/f39099990f19c64e90c297c1d584a900e0d0ef64)
* deliver asynchronous file read completions ([49759a4]https://github.com/benletchford/systemless/commit/49759a4ffb1e2eeea5983f1de3a56a8942ab4e67)
* honor ShieldCursor intersection visibility ([b27a3f3]https://github.com/benletchford/systemless/commit/b27a3f386ab7c9c214c343a0574631d531bb5b11)
* initialize QuickDraw cursor vectors ([5117ad4]https://github.com/benletchford/systemless/commit/5117ad435dedb15959dd87dc3e9e30518c77fc19)
* initialize shield cursor vector ([66faeef]https://github.com/benletchford/systemless/commit/66faeef1fe7af40f6254fa8b552d172c00e2fde6)
* initialize show cursor vector ([0670e85]https://github.com/benletchford/systemless/commit/0670e85fa26924cbd822bde50f4a433e06491829)
* initialize swap mmu trap vector ([b3395ae]https://github.com/benletchford/systemless/commit/b3395ae23e5e125000268fd5ec9d3cfb04214587)
* interleave sub-vbl timer callbacks ([0d3a3fe]https://github.com/benletchford/systemless/commit/0d3a3fe2e8e87c4051f71a066f85967ab5c94b25)
* isolate sound callback trampolines ([3c08c52]https://github.com/benletchford/systemless/commit/3c08c523978e2cb92c0e4e2378750d8976d02e22)
* **memory:** keep application allocations inside the zone boundary ([76dbf1e]https://github.com/benletchford/systemless/commit/76dbf1e0f5f8c29effd33b8f695b78a2317780c1)
* pace self-reprimed timer tasks ([48494fb]https://github.com/benletchford/systemless/commit/48494fb274f846e23e2459a69b245c881bb6773a)
* preserve concurrent timer callbacks ([69e6402]https://github.com/benletchford/systemless/commit/69e64027a54bbef4808c6791023d869ff082ec55)
* preserve sub-vbl timer deadlines ([284495f]https://github.com/benletchford/systemless/commit/284495f9361699a4f3a8cb26d5cd263143d7ed4c)
* prioritize overdue timer callbacks ([95fad8f]https://github.com/benletchford/systemless/commit/95fad8fed3ef017e74469e7adc9b0ddbce6d7a28)
* **quickdraw:** support packed indexed CopyBits sources ([d211fa4]https://github.com/benletchford/systemless/commit/d211fa4202d73d883c1ab991bb16a38549d76ecf)
* resolve menu definition procedure handles ([25f7829]https://github.com/benletchford/systemless/commit/25f7829412190352ff4dbac737b399fd0b145d6e)
* stabilize centered fullscreen margins ([f5fffd0]https://github.com/benletchford/systemless/commit/f5fffd0696ae6262485553a3ca9ae23bf9c7293e)
* **window:** expose the legacy window manager port layout ([dcac552]https://github.com/benletchford/systemless/commit/dcac552bc0d1956c893c5b8e330463d2b4bd731e)

## [0.7.0]https://github.com/benletchford/systemless/compare/v0.6.0...v0.7.0 (2026-07-26)


### Features

* add cooperative Thread Manager support ([04348cd]https://github.com/benletchford/systemless/commit/04348cde025509160b5becbec81061b7dff3262f)


### Bug Fixes

* terminate indexed volume enumeration ([40bd9a3]https://github.com/benletchford/systemless/commit/40bd9a3124a4dc297b039a0fba8c67dac84c27d8)

## [0.6.0]https://github.com/benletchford/systemless/compare/v0.5.0...v0.6.0 (2026-07-26)


### Features

* **macos:** mirror guest menus in the menu bar ([c27d671]https://github.com/benletchford/systemless/commit/c27d6716afb4d6981629d980620bcab38b62f918)


### Bug Fixes

* **gui:** derive viewports from guest-drawn frames ([9ab5281]https://github.com/benletchford/systemless/commit/9ab528128b5d5fb91f7e7522aa34bf54cff19694)
* **quickdraw:** frame complex regions as outlines ([67d69dd]https://github.com/benletchford/systemless/commit/67d69dd8725424767948d3a370b6f985687bdee5)
* **quickdraw:** honor application bitmap fonts and face widths ([cbd7f67]https://github.com/benletchford/systemless/commit/cbd7f67f1e443f18361e70ef6672830218d2606a)
* **quickdraw:** implement SetPortPix for color ports ([d704cc5]https://github.com/benletchford/systemless/commit/d704cc532b526b0b59ceeee44191decd89337b78)
* **quickdraw:** preserve destinations in colored OR modes ([7b0dde1]https://github.com/benletchford/systemless/commit/7b0dde1b8fdfa2aaa63bf0d9365890449019e048)
* **quickdraw:** preserve polygon boundaries in regions ([00026af]https://github.com/benletchford/systemless/commit/00026afbe257d78ea1aa6793fe628dbafeafe49d)


### Performance Improvements

* **macos:** stage only visible guest framebuffer rows ([ce355f9]https://github.com/benletchford/systemless/commit/ce355f9f69045444c5a0edd494aad55033c832fe)
* **runner:** fast-forward signed TickCount waits ([c42dbb3]https://github.com/benletchford/systemless/commit/c42dbb368787ecbab1a5674b3fa6701509b7f3f9)

## [0.5.0]https://github.com/benletchford/systemless/compare/v0.4.2...v0.5.0 (2026-07-26)


### Features

* document Homebrew installation ([be7742f]https://github.com/benletchford/systemless/commit/be7742f030dc63289b84141c328fef3d8f1aacdc)


### Bug Fixes

* decode menu titles and item text as Mac Roman instead of UTF-8 ([b719dc4]https://github.com/benletchford/systemless/commit/b719dc4112cdae50475b91c353e6095f269653f4)
* draw dimmed menu items, dividers and title metrics the way System 7.5.3 does ([0230216]https://github.com/benletchford/systemless/commit/0230216bfe16c80760b56a658a90131722285a55)
* preserve direct framebuffer output after pointer resize failures ([4ce0903]https://github.com/benletchford/systemless/commit/4ce090384ac148cc00dcf8a48be0338b62719a8d)
* preserve VBL queues and Color QuickDraw indices for direct-drawing games ([be22899]https://github.com/benletchford/systemless/commit/be228991c3064444ccc686b849ce7ef093223dea)

## [0.4.2]https://github.com/benletchford/systemless/compare/v0.4.1...v0.4.2 (2026-07-26)


### Bug Fixes

* preserve application-painted dialog pixels during framebuffer redraws ([954de06]https://github.com/benletchford/systemless/commit/954de06e6ccc76d57dc28e1b5740cdf3152b5f56)
* stop ModalDialog repainting a dialog the application already drew itself ([a56286d]https://github.com/benletchford/systemless/commit/a56286d908d1ed5850d857a571c09ca2056bb514)

## [0.4.1]https://github.com/benletchford/systemless/compare/v0.4.0...v0.4.1 (2026-07-25)


### Bug Fixes

* dim a disabled menu title with the gray pattern instead of hiding it ([92d9246]https://github.com/benletchford/systemless/commit/92d92466037b45d703e6045ad09dad25e03909d4)
* keep the menu-bar exclusion out of a window's content region so moved windows do not lose their top rows ([3ba5c08]https://github.com/benletchford/systemless/commit/3ba5c083b51c5e72e0cc7ea34880c32e10a241e5)
* populate the 68k exception vector table so a stray deref of address 0 lands in ROM space ([b764613]https://github.com/benletchford/systemless/commit/b7646136281e71bc02879327047a9ce70fbef60f)
* report a loaded resource handle's exact byte count from GetHandleSize ([e85894e]https://github.com/benletchford/systemless/commit/e85894e88544f84fca84d50c417aec361af3cab0)
* subtract front windows from visRgn so a background repaint cannot erase a modal dialog ([2420fb0]https://github.com/benletchford/systemless/commit/2420fb06c5a1b5b64f2872096afba568c99635e7)

## [0.4.0]https://github.com/benletchford/systemless/compare/v0.3.0...v0.4.0 (2026-07-25)


### Features

* play QuickTime movies on a timeline with cvid, rle and smc image decoders ([37b62a7]https://github.com/benletchford/systemless/commit/37b62a76b7ebaede548b281ecc83ee1a027e6d7b)

## [0.3.0]https://github.com/benletchford/systemless/compare/v0.2.5...v0.3.0 (2026-07-25)


### Features

* show the retro computer menu mark in 68k games ([e96d4a5]https://github.com/benletchford/systemless/commit/e96d4a5691324cf7d1a62d4a0433b554f2ca5677)


### Bug Fixes

* .release-please-manifest.json ([4a7fe45]https://github.com/benletchford/systemless/commit/4a7fe45a08df5799a79808af2e0f8a8cc72d3096)
* **audio:** recover buffered lead after frontend stalls ([3cf0a5f]https://github.com/benletchford/systemless/commit/3cf0a5fb54e247801fd860d3840aff15b95ba1dd)
* **build:** keep the Metal presenter out of automatic binaries ([ad9a089]https://github.com/benletchford/systemless/commit/ad9a089eeb47b9cfd6c3943660a40f5d275dffa7)
* **deps:** update m68k to 0.2.4 ([a7882de]https://github.com/benletchford/systemless/commit/a7882de4d7eecd0e4cf3bd86c31654de4dc93933)
* **event:** initialize classic double-click interval ([a95e9d3]https://github.com/benletchford/systemless/commit/a95e9d3de6260c1a0f0504cde7d0ab9f234502ce)
* **event:** initialize classic double-click interval ([d42f3d1]https://github.com/benletchford/systemless/commit/d42f3d177c15108b29181724d708c14a0aa0295a)
* **gui:** detect and cache centered game viewports ([74a3391]https://github.com/benletchford/systemless/commit/74a33911dc1200da87578d0eff1e0f2db6cbd88e)
* **gui:** preserve cached crop during startup detection ([3ab59ab]https://github.com/benletchford/systemless/commit/3ab59ab76c292a06803c99ec2b9c8f0e93c01c8f)
* **gui:** preserve transactional resizing with async presentation ([891562c]https://github.com/benletchford/systemless/commit/891562cf0b216d00d5716437cb0251b3645aea24)
* **gui:** reveal transient dialogs without resize bounce ([b3d4164]https://github.com/benletchford/systemless/commit/b3d4164f127b685e4d2169aa9d6432d54e0687a5)
* honor the system event mask when posting key-up events ([e81e949]https://github.com/benletchford/systemless/commit/e81e949e9bab24b8a806b59992891cf664cf19e7)
* **macos:** drain Metal worker autoreleases ([e98664d]https://github.com/benletchford/systemless/commit/e98664d97390136bc5e79d5c16d8d3086a1681de)
* **macos:** drain Metal worker autoreleases ([a8e0f1b]https://github.com/benletchford/systemless/commit/a8e0f1b459e5732be0632dbe68e1658a97ac892f)
* **memory:** validate RecoverHandle master-pointer slots ([b72ea7d]https://github.com/benletchford/systemless/commit/b72ea7ddb50f784fdf49d67f4322b09bd4805f0d)
* **memory:** validate RecoverHandle master-pointer slots ([53c1fa7]https://github.com/benletchford/systemless/commit/53c1fa7afdfa6a018023a017739ad36cc5e1693d)
* preserve guest menu enable flags in MORE ([04370de]https://github.com/benletchford/systemless/commit/04370de9f5575c043d21303ae5b73e0c3d81dbcc)
* select menu item at mouse release ([c2177b1]https://github.com/benletchford/systemless/commit/c2177b12f12a5c18681328bb1b9a0b48e4f1cc19)
* suppress duplicate host keydown events ([38155a2]https://github.com/benletchford/systemless/commit/38155a2b6d3a015ec828588300eb7b58ac14980b)
* suppress standalone modifier key events ([f286228]https://github.com/benletchford/systemless/commit/f2862283ad72c1e654d4cf3a08364d95f4a07b65)
* terminate exhausted Marathon terminal style insertions ([30f49a4]https://github.com/benletchford/systemless/commit/30f49a4d929c37ecd9e5c4de14b2ead5af420d89)


### Performance Improvements

* **gui:** decode guest framebuffers in Metal ([fca3ecc]https://github.com/benletchford/systemless/commit/fca3ecccf0a88570c5542e4d9eb8faf290f810d1)
* **gui:** decode guest framebuffers in Metal ([76c3925]https://github.com/benletchford/systemless/commit/76c3925496d43097b2cc016b9f2208c3782d14f2)
* **gui:** decouple Metal presentation from emulation ([b165448]https://github.com/benletchford/systemless/commit/b165448b317acae1d3bf51ce94174265dd166d79)
* **gui:** decouple Metal presentation from emulation ([e03f4b0]https://github.com/benletchford/systemless/commit/e03f4b02440b20703644ea86d804cd42dcd948dc), closes [#23]https://github.com/benletchford/systemless/issues/23
* **gui:** present macOS frames with Metal ([ec589a8]https://github.com/benletchford/systemless/commit/ec589a825fa6cc7dd0015558317dc70a4af7f9f4)
* **gui:** present macOS frames with Metal ([35cef58]https://github.com/benletchford/systemless/commit/35cef58733c62aa77211188533e2d212129efae5)
* **gui:** skip unchanged Metal guest frames ([812e1a7]https://github.com/benletchford/systemless/commit/812e1a749009da7824d91b65b2dbfb0832e304ec)
* **gui:** skip unchanged Metal guest frames ([d2ab17c]https://github.com/benletchford/systemless/commit/d2ab17c062f7a51859c106f94caddd6a07eabcd0)
* **runner:** fast-forward capped GUI TickCount waits ([7b9b940]https://github.com/benletchford/systemless/commit/7b9b940424f89b8ad70ff9d270fcf082ee642147)
* **runner:** fast-forward capped GUI TickCount waits ([721ab96]https://github.com/benletchford/systemless/commit/721ab96cccf836afa156b787e6d183ef28ac7ea3)
* **runner:** fast-forward TickCount BEQ waits ([6dc03b4]https://github.com/benletchford/systemless/commit/6dc03b430dc11ffd13c19c18ef583767c3abe6e6)
* **runner:** fast-forward TickCount BEQ waits ([22231e0]https://github.com/benletchford/systemless/commit/22231e0803c1b67f7fddca559f514a9cd359995c)

## [0.2.2]https://github.com/benletchford/systemless/compare/v0.2.1...v0.2.2 (2026-07-24)


### Bug Fixes

* **deps:** update m68k to 0.2.4 ([a7882de]https://github.com/benletchford/systemless/commit/a7882de4d7eecd0e4cf3bd86c31654de4dc93933)

## [0.2.1]https://github.com/benletchford/systemless/compare/v0.2.0...v0.2.1 (2026-07-24)


### Bug Fixes

* **macos:** drain Metal worker autoreleases ([e98664d]https://github.com/benletchford/systemless/commit/e98664d97390136bc5e79d5c16d8d3086a1681de)
* **macos:** drain Metal worker autoreleases ([a8e0f1b]https://github.com/benletchford/systemless/commit/a8e0f1b459e5732be0632dbe68e1658a97ac892f)


### Performance Improvements

* **runner:** fast-forward TickCount BEQ waits ([6dc03b4]https://github.com/benletchford/systemless/commit/6dc03b430dc11ffd13c19c18ef583767c3abe6e6)
* **runner:** fast-forward TickCount BEQ waits ([22231e0]https://github.com/benletchford/systemless/commit/22231e0803c1b67f7fddca559f514a9cd359995c)

## [0.2.0]https://github.com/benletchford/systemless/compare/v0.1.133...v0.2.0 (2026-07-23)


### Features

* show the retro computer menu mark in 68k games ([e96d4a5]https://github.com/benletchford/systemless/commit/e96d4a5691324cf7d1a62d4a0433b554f2ca5677)


### Bug Fixes

* preserve guest menu enable flags in MORE ([04370de]https://github.com/benletchford/systemless/commit/04370de9f5575c043d21303ae5b73e0c3d81dbcc)
* select menu item at mouse release ([c2177b1]https://github.com/benletchford/systemless/commit/c2177b12f12a5c18681328bb1b9a0b48e4f1cc19)
* suppress standalone modifier key events ([f286228]https://github.com/benletchford/systemless/commit/f2862283ad72c1e654d4cf3a08364d95f4a07b65)

## [0.1.133]https://github.com/benletchford/systemless/compare/v0.1.132...v0.1.133 (2026-07-23)


### Bug Fixes

* **audio:** recover buffered lead after frontend stalls ([3cf0a5f]https://github.com/benletchford/systemless/commit/3cf0a5fb54e247801fd860d3840aff15b95ba1dd)
* **build:** keep the Metal presenter out of automatic binaries ([ad9a089]https://github.com/benletchford/systemless/commit/ad9a089eeb47b9cfd6c3943660a40f5d275dffa7)
* **event:** initialize classic double-click interval ([a95e9d3]https://github.com/benletchford/systemless/commit/a95e9d3de6260c1a0f0504cde7d0ab9f234502ce)
* **event:** initialize classic double-click interval ([d42f3d1]https://github.com/benletchford/systemless/commit/d42f3d177c15108b29181724d708c14a0aa0295a)
* **gui:** detect and cache centered game viewports ([74a3391]https://github.com/benletchford/systemless/commit/74a33911dc1200da87578d0eff1e0f2db6cbd88e)
* **gui:** preserve cached crop during startup detection ([3ab59ab]https://github.com/benletchford/systemless/commit/3ab59ab76c292a06803c99ec2b9c8f0e93c01c8f)
* **gui:** preserve transactional resizing with async presentation ([891562c]https://github.com/benletchford/systemless/commit/891562cf0b216d00d5716437cb0251b3645aea24)
* **gui:** reveal transient dialogs without resize bounce ([b3d4164]https://github.com/benletchford/systemless/commit/b3d4164f127b685e4d2169aa9d6432d54e0687a5)
* **memory:** validate RecoverHandle master-pointer slots ([b72ea7d]https://github.com/benletchford/systemless/commit/b72ea7ddb50f784fdf49d67f4322b09bd4805f0d)
* **memory:** validate RecoverHandle master-pointer slots ([53c1fa7]https://github.com/benletchford/systemless/commit/53c1fa7afdfa6a018023a017739ad36cc5e1693d)


### Performance Improvements

* **gui:** decode guest framebuffers in Metal ([fca3ecc]https://github.com/benletchford/systemless/commit/fca3ecccf0a88570c5542e4d9eb8faf290f810d1)
* **gui:** decode guest framebuffers in Metal ([76c3925]https://github.com/benletchford/systemless/commit/76c3925496d43097b2cc016b9f2208c3782d14f2)
* **gui:** decouple Metal presentation from emulation ([b165448]https://github.com/benletchford/systemless/commit/b165448b317acae1d3bf51ce94174265dd166d79)
* **gui:** decouple Metal presentation from emulation ([e03f4b0]https://github.com/benletchford/systemless/commit/e03f4b02440b20703644ea86d804cd42dcd948dc), closes [#23]https://github.com/benletchford/systemless/issues/23
* **gui:** present macOS frames with Metal ([ec589a8]https://github.com/benletchford/systemless/commit/ec589a825fa6cc7dd0015558317dc70a4af7f9f4)
* **gui:** present macOS frames with Metal ([35cef58]https://github.com/benletchford/systemless/commit/35cef58733c62aa77211188533e2d212129efae5)
* **gui:** skip unchanged Metal guest frames ([812e1a7]https://github.com/benletchford/systemless/commit/812e1a749009da7824d91b65b2dbfb0832e304ec)
* **gui:** skip unchanged Metal guest frames ([d2ab17c]https://github.com/benletchford/systemless/commit/d2ab17c062f7a51859c106f94caddd6a07eabcd0)
* **runner:** fast-forward capped GUI TickCount waits ([7b9b940]https://github.com/benletchford/systemless/commit/7b9b940424f89b8ad70ff9d270fcf082ee642147)
* **runner:** fast-forward capped GUI TickCount waits ([721ab96]https://github.com/benletchford/systemless/commit/721ab96cccf836afa156b787e6d183ef28ac7ea3)

## [0.1.132]https://github.com/benletchford/systemless/compare/v0.1.131...v0.1.132 (2026-07-12)


### Bug Fixes

* honor the system event mask when posting key-up events ([e81e949]https://github.com/benletchford/systemless/commit/e81e949e9bab24b8a806b59992891cf664cf19e7)
* suppress duplicate host keydown events ([38155a2]https://github.com/benletchford/systemless/commit/38155a2b6d3a015ec828588300eb7b58ac14980b)
* terminate exhausted Marathon terminal style insertions ([30f49a4]https://github.com/benletchford/systemless/commit/30f49a4d929c37ecd9e5c4de14b2ead5af420d89)