evillollive/sim-jesse

GitHub: evillollive/sim-jesse

将 1993 年经典 Mac 语音玩具 SimJesse! 通过逆向工程在浏览器中完整重制的数字保存项目。

Stars: 1 | Forks: 0

# SimJesse! 网页重制版 [![quality](https://static.pigsec.cn/wp-content/uploads/repos/cas/db/dbd871ff9cf9ec16b2fe205b76ec59df441e0ad152f02ace51acf77e44fa8ced.svg)](https://github.com/evillollive/sim-jesse/actions/workflows/quality.yml) [![GitHub Pages](https://img.shields.io/badge/demo-GitHub%20Pages-2ea44f)](https://evillollive.github.io/sim-jesse/) [![License: AGPL v3](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE) [![No build step](https://img.shields.io/badge/build-none-lightgrey)](#run-it) **SimJesse!** 将一款 1993 年经典的 Mac 免费软件应用以浏览器体验的形式重新呈现:这是一个具备语法感知能力的随机语音生成器,由数字化的 Jesse Jackson 音频片段、原始的 Mac 资源以及逆向工程的 68k 语音算法组装而成。

Preview of the SimJesse classic web recreation and Dream Machine modes

原版的 **SimJesse! 1.0 "The Digital Demagogue"** 已经无法在现代硬件上运行。本项目通过提取 Mac 资源分支(resource fork)、解码 MACE 3:1 音频、恢复艺术素材,并将原始的句子生成逻辑移植到无依赖的网页中,从而保存了这一体验。 ## 为什么它很有趣 - **数字保存:** 让一个 20 世纪 90 年代的小型 Mac 文化产物在不使用模拟器的情况下依然可用。 - **逆向工程:** 记录了资源分支提取、PICT 转换、MACE 音频解码以及 68k 控制流追踪的过程。 - **声音拼贴:** 将 123 个恢复的片段转化为连续的伪语音、创作模式和混音模式。 - **易于分享:** 经典重制版是一个单一的自包含 HTML 文件;现代版本则可以通过静态托管运行。 ## 运行方式 | 目标 | 命令或链接 | | --- | --- | | 体验经典网页重制版 | 打开 | | 体验 2.0 版本,即 "The Dream Machine" | 打开 | | 在本地运行经典文件 | 在现代浏览器中打开 `index.html` | | 在本地运行所有静态文件 | 运行 `python3 -m http.server 8000`,然后打开 | 经典的 `index.html` 直接嵌入了其图像和声音,因此无需构建步骤、包管理器或服务器即可运行。2.0 版本会从 `extracted/sounds_wav/` 加载 WAV 文件;如果你的浏览器阻止了本地 `file://` 音频获取,请使用 GitHub Pages 或本地静态服务器。 ## 功能亮点 ### 经典的 SimJesse! 1.0 重制版 - 原始的 Apple / File / Edit 菜单结构,包括 Apple 菜单下的 **About SimJesse!**。 - 三个原始风格的控件: - **Run, Jesse, Run!** 持续生成演讲直到停止。 - **Music** 循环播放乐器和音乐家采样。 - **Nature** 无缝循环播放自然声音。 - 保留了事件声音:启动时由 `lou` 表示("Here comes Jesse Jackson"),停止时播放 `noNo`("no more!")。 ### 2.0 版本:"The Dream Machine" `v2/index.html` 是一个现代重构版本,基于相同的 123 个片段和七种恢复的语音模式构建: - **Run, Jesse, Run!** 增加了滚动动画字幕和氛围过滤器:Hopeful、Fired Up、Reflective 和 Celebration。 - **Compose** 允许你将片段点击放置在时间线上,回放它们,并复制可分享的 URL。 - **Remix** 将 Jesse 的语音叠加在合成的节拍上,提供 Gospel、Lo-fi、Jazz 和 Hip-hop 模式,并带有 BPM 控制。 ## 工作原理 1. **资源分支恢复:** 保存的 Mac 应用档案包含一个 AppleDouble 资源分支,已被提取为 `SimJesse.rsrc`。 2. **资源转储:** 定制的 Python 工具将经典的 Mac 资源映射解析为声音、PICT 图像、菜单、对话框、代码和数据。 3. **音频解码:** 123 个片段中有 120 个是 Apple MACE 3:1 压缩的 `'snd '` 资源;这些工具将它们封装为 AIFF-C `MAC3` 格式,以便 `ffmpeg` 能将其解码为 WAV 文件。 4. **艺术素材转换:** PICT 资源在转换为 PNG 之前,会获得一个 QuickTime 兼容的 512 字节文件头。 5. **语音算法移植:** 对原始的 68k `CODE/2.bin` 进行了追踪,以恢复七种随机语音模式、声音池、分支行为以及共享的尾声。 阅读 [docs/REVERSE_ENGINEERING.md](docs/REVERSE_ENGINEERING.md) 中的详细保存说明。 ## 仓库结构图 | 路径 | 用途 | | --- | --- | | `index.html` | 忠实、自包含的 SimJesse! 1.0 浏览器重制版 | | `v2/index.html` | 包含经典、创作和混音模式的 2.0 版本 "The Dream Machine" | | `original/` | 原始的 Mac 应用档案和提取的原始资源分支 | | `extracted/sounds_snd_raw/` | 所有 123 个原始的 `'snd '` 资源,按 id 和资源名称命名 | | `extracted/sounds_wav/` | 声音资源的解码 WAV 版本 | | `extracted/images_pict_raw/` | 原始的 PICT 资源 | | `extracted/images_png/` | 转换后的 PNG 艺术素材,包括肖像和 UI 资产 | | `tools/` | 资源提取、解码、转换和静态质量检查 | | `docs/SHARING.md` | 定位、演示想法、主题建议和可分享的文案 | ## 命令与注意事项 ``` # GitHub Actions 使用的静态 security/accessibility 基线 python3 tools/quality_checks.py # 为 v2 音频抓取在本地提供 repo 服务 python3 -m http.server 8000 ``` 从零开始重新构建提取的资产需要 Python 3、用于 MACE 音频解码的 `ffmpeg` 以及用于 PICT 转换的 ImageMagick: ``` unzip "original/SimJesse 1.0.zip" -d _work python3 tools/1_extract_resource_fork.py "_work/__MACOSX/._SimJesse 1.0" SimJesse.rsrc python3 tools/2_dump_resources.py SimJesse.rsrc res python3 tools/3_decode_sounds.py res/snd wav tools/4_convert_pict.sh res/PICT png ``` ## 隐私、安全与信任 SimJesse 是静态网络内容:没有后端,没有包依赖,没有分析工具,也没有用户账户。经典页面将所有媒体嵌入在 `index.html` 中,并包含由 `tools/quality_checks.py` 检查的 Content Security Policy 和 referrer-policy meta 标签。2.0 版本仅在你在 Compose 模式下按下 **Copy Link** 时才会获取本地 WAV 文件并使用剪贴板。 原始的 **SimJesse! 1.0** 版权 © 1993 归 Mark Hayes (ccmlh@it.bu.edu) 所有,作为包含“请传播!”字样的免费软件分发,并献给 Captain Crunch,即 Multicultural Caffeinated Cockatiel。本次重制是对 Jesse Jackson 的演讲艺术以及早期 Mac 免费软件领域创造力的保存与致敬。 ## 分享 有用的搜索词:**SimJesse web recreation**、**1993 Mac app preservation**、**classic Mac resource fork reverse engineering**、**MACE 3:1 audio decoding**、**browser-based vintage Mac app recreation**、**Jesse Jackson speech generator**。 如果你喜欢这种网络保存项目,请尝试在线演示,为仓库点 Star,并分享给对经典 Mac 软件、音频考古、创意编程或小型奇妙网络玩具感兴趣的人。 ## 许可证 本重制版基于 [GNU Affero General Public License v3.0](LICENSE) 授权。
标签:云资产清单, 后端开发, 声音艺术, 复古软件, 多模态安全, 数字保存, 数据可视化, 逆向工具, 逆向工程, 音频解码