Show HN:NES《魂斗罗》(1987) 移植(汇编 -> C,然后 C -> WebAssembly)

Hacker News Top 工具

摘要

一个 Show HN 项目,将 NES 经典游戏《魂斗罗》(1987) 从汇编语言移植到 C,然后编译成 WebAssembly,使其可以直接在浏览器中运行,支持键盘和屏幕虚拟按键操作。

基于 vermiceli 对《魂斗罗》的带注释反汇编:<a href="https:&#x2F;&#x2F;github.com&#x2F;vermiceli&#x2F;nes-contra-us" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;vermiceli&#x2F;nes-contra-us</a>。感谢他的出色工作。<p>我分两步完成了移植。首先是移植到 C:游戏逻辑从 6502 汇编逐个例程翻译,并在 Mesen 模拟器中逐帧与原版进行比对验证。然后将 C 代码编译成 WebAssembly,使其可以在浏览器中运行。<p>锦上添花的是:支持在线多人游戏,两名玩家可以通过互联网合作游玩。<p>源代码:<a href="https:&#x2F;&#x2F;github.com&#x2F;epoyraz&#x2F;nes-contra-us" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;epoyraz&#x2F;nes-contra-us</a>
查看原文
查看缓存全文

缓存时间: 2026/10/31 21:22

# Contra — NES 原生移植版(WebAssembly) 来源:https://epoyraz.github.io/nes-contra-us/ NES 原生移植版 —— 通过 WebAssembly 在浏览器中运行 加载中... 按回车(或点按 **START**)开始游戏。←↑→↓移动 · A/空格跳跃 · S射击 · 回车开始 · Shift选择 屏幕按键:**A** = 跳跃 · **B** = 射击 联机模式:两名玩家在各自的电脑上使用相同的按键。玩家 1 在标题画面按住 **Shift** 选择 **2 PLAYERS(双人模式)**。 Nintendo ⇓ ⇓ ⇓ ⇓ 呜呼!怀旧万岁!!!

相似文章

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

Hacker News Top

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

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

Hacker News Top

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

Show HN: 运行于 WebAssembly 的 Firefox

Hacker News Top

Firefox 被编译为在 WebAssembly 中运行,采用基于 WebGL 的渲染和实验性的 JS 到 WASM JIT,网页内容通过 Puter 托管的 Wisp 服务器进行代理。