跳到正文
网页珍奇柜Web Curio

无限麦金塔

Infinite Mac,Mihai Parparita,2021 年

正在布展…

本柜的现场复刻:按原作的技术思路从零编写,不含原作的代码和素材。为什么不直接展出原作:原作用模拟器运行真正的经典 Mac 系统软件,系统与磁盘镜像属于 Apple 版权,无法收录;这里是从零手绘的 1-bit 经典桌面玩具(自制点阵字体与图标、条纹标题栏、虚线拖拽框、画图/计算器/十五拼图/记事本/时钟)。原作请点上方「去看原作」。

它是怎么做的

  1. 第 1 步Basilisk II、SheepShaver、Mini vMac、DingusPPC 等模拟器被编译为 WebAssembly
  2. 第 2 步磁盘镜像被切成小块按需流式加载,所以开机几乎无需等待
  3. 第 3 步模拟器在 Web Worker 中运行,用 SharedArrayBuffer 与主线程交换帧缓冲和输入
  4. 第 4 步帧缓冲被画到 canvas 上,声音经 Web Audio 输出
  5. 第 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.

档案

能不能拿来用

原作以 Apache-2.0 许可开源:可以阅读源码学习,按许可证条款使用;在自己的项目里引用时保留原作者署名。

性能开销

视觉强度

实现难度

尺度为策展判断(1 到 5),用于比较和推荐。

核实记录:Opened https://infinitemac.org (200, title 'Infinite Mac'); repo mihaip/infinite-mac exists, licence Apache-2.0 via GitHub API.