经典 PC demoscene 作品现在能在浏览器里运行:每个 demo 的原始 DOS 代码被逐指令重新编译。x86 模拟器先记录 CPU 在整个 demo 中实际执行的代码块,再逐条翻成 C,连同精确的周期时序编译成 WebAssembly,接上定时器、VGA 与 Sound Blaster 的硬件模型,并与模拟器逐事件比对。demo 自带的加载器、音乐播放器和特效都照 1992、1993 年的原样运行,被建模的只有硬件。
正文
demoscene-recomp
─═≡ 经典 PC demoscene 作品,在浏览器中运行。≡═─
工作原理
每个 demo 的原始 DOS 代码都逐指令重新编译,在你的浏览器中运行:
- demo 在 x86 模拟器上运行,模拟器记录 CPU 在整个 demo 过程中实际执行的每一个代码块。
- 这段记录被翻译成 C——原始指令一对一转换,并保留被模拟机器的精确周期时序。
- 这些 C 代码连同 demo 所交互硬件的模型一起编译成 WebAssembly:定时器、VGA 显卡和 Sound Blaster 声卡。
- 结果与模拟器逐事件比对:每一次中断、端口访问和每一帧,都落在模拟时间的同一时刻。
demo 自带的加载器、音乐播放器和特效,运行起来与 1992 和 1993 年时一样,被模拟的只有硬件。
这些 demo 当年在 VGA 上以 70 Hz 运行,所以在 70 Hz、140 Hz 或更高刷新率的显示器上看起来最流畅。
致谢
Unreal 和 Second Reality 出自 Future Crew,Crystal Dream II 出自 Triton,Stars: Wonders of the World 出自 NoooN;它们都以免费形式发布给 demoscene 社区。
原始发布文件原样提供,未经修改,与 demo 运行时读取的文件一致。
访问量以匿名方式统计——不使用 IP 地址、追踪 cookie 或个人标识。
字体:IBM VGA 8x16,作者 VileR,int10h.org(CC BY-SA 4.0)
评论
多数人质疑AI侵蚀demoscene的人类创造力本质,少数人支持AI辅助移植降低技术门槛并凸显创意。另有一批老爱好者沉浸于对早期硬件限制下艺术成就的怀旧。
认为AI正在剥夺demoscene的人类技艺与意义
- 多位长期爱好者担忧AI生成代码与重制会摧毁demoscene,其核心价值在于真实个人的知识、技能与创意,而非提示词能力,原本的艺术意图也不该被AI改头换面(较多人) > 若无人类付出,意义何在?看视频即可,原生浏览器运行无内在价值,这讽刺了它本是人力庆典(@Sharlin)
认为AI辅助能剥离繁琐工具层凸显真正创意
- 支持者认为AI可消除底层移植的繁杂管道,让专注力回归创造力与勤奋,使老demo轻松可及;有开发者分享用Claude几乎自动移植老游戏的实践(少数人) > 去掉工具层,让真创意与勤奋被赞叹,AI可彻底消除管道层(@Krisso)
感怀早期demoscene在硬件限制下的艺术魔法
- 老爱好者怀念固定硬件时代利用漏洞突破显示边界等巧妙玩法,惊叹4KB/64KB demo的惊人产出,并为时代变迁感伤(较多人) > 第二现实的音乐仍让我起鸡皮疙瘩(@joking)
有价值的补充
- 技术实现上,演示通过在x86模拟器记录全流程执行块,转译为带精确周期时序的C,并与模拟器事件逐一对齐验证;有调侃称大模型将测试流程文档泄露至用户输出(@Retr0id)
- 另有用户指出经典demo《State of the Art》同样已被移植到浏览器运行(@futurecat)