经典PC demoscene作品在浏览器中原生运行

Hacker News Top 工具

摘要

一个项目将1992至1993年间的经典PC demoscene作品(Unreal、Second Reality、Crystal Dream II)从原始DOS代码逐条指令重编译为WebAssembly,并模拟了VGA、定时器和Sound Blaster硬件,使其能够在浏览器中原生运行,且保持与原始代码完全一致的精确周期时序。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/08 12:42

# demoscene-recomp 来源: https://treylorswift.github.io/demoscene-recomp/web/ ─═≡经典 PC demoscene 作品在浏览器中运行。≡═─ ## 工作原理 每个 demo 的原始 DOS 代码被逐条指令重新编译,在浏览器中运行: 1. demo 在一个 x86 模拟器上运行,记录整个 demo 过程中 CPU 实际执行的每一个代码块。 2. 该记录被翻译为 C 代码——原始指令逐条对应,保留模拟机器的精确时钟时序。 3. C 代码连同 demo 所交互的硬件模型一起编译为 WebAssembly:定时器、VGA 显卡和 Sound Blaster 声卡。 4. 结果与模拟器逐事件进行校验:每一个中断、端口访问和帧都对应模拟时间中的同一时刻。 Demo 自带的加载器、音乐播放器和效果都以 1992 和 1993 年的原始方式运行,只是硬件部分改用模型模拟。 这些 demo 在 VGA 上以 70 Hz 运行,因此在 70 Hz、140 Hz 或更高刷新率的显示器上观看效果最为流畅。 demoscene-recomp 位于 GitHub (https://github.com/treylorswift/demoscene-recomp) ## 致谢 *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 (https://treylorswift.github.io/demoscene-recomp/web/assets/FONT-LICENSE.TXT))

相似文章

Show HN:将 PS2 游戏静态重编译为 WebAssembly

Hacker News Top

Show HN:将《GT赛车4》和《战神II》等 PS2 游戏的 Emotion Engine 机器码静态重编译为 C++/WebAssembly,无需模拟器即可在浏览器中运行,使用 WebGPU 计算着色器实现 Graphics Synthesizer 的功能,并重新实现了 PS2 内核。该项目可在笔记本电脑的集成 GPU 上全速运行,游戏光盘镜像由代码仓库中的脚本在本地处理。

PCjs Machines

Hacker News Top

PCjs 使用 JavaScript 模拟 1970 年代和 1980 年代的复古计算机硬件和软件,在浏览器中提供复古计算体验。

微型模拟器

Hacker News Top

一个基于网页的经典8位计算机模拟器集合,涵盖Amstrad CPC、ZX Spectrum、Commodore和Robotron等机型,使用Visual 6502和Visual Z80 Remix构建。