无限麦金塔
Infinite Mac,Mihai Parparita,2021 年

正在布展…
它是怎么做的
- 第 1 步Basilisk II、SheepShaver、Mini vMac、DingusPPC 等模拟器被编译为 WebAssembly
- 第 2 步磁盘镜像被切成小块按需流式加载,所以开机几乎无需等待
- 第 3 步模拟器在 Web Worker 中运行,用 SharedArrayBuffer 与主线程交换帧缓冲和输入
- 第 4 步帧缓冲被画到 canvas 上,声音经 Web Audio 输出
- 第 5 步按年份组织的界面让访客挑选系统版本
复刻配方
一段技术配方,可以直接交给 AI 编程助手,也可以自己照着写。想指定技术栈、位置和性能预算,就把它加入实现方案。
Compile an existing open-source emulator to WebAssembly with Emscripten and run it inside a Web Worker. Share the framebuffer, input queue and audio ring buffer with the main thread through SharedArrayBuffer (which requires cross-origin isolation headers). Split disk images into fixed-size chunks with a manifest and fetch chunks lazily on read so boot is fast. Blit the framebuffer to a canvas each animation frame and wrap it in a period-appropriate bezel.


