黑客迅速证明Neo Geo版《毁灭战士》并非“不可能”
摘要
黑客们迅速为Neo Geo制作了可运行的《毁灭战士》移植版,推翻了此前因硬件限制而认为不可能移植的说法,他们巧妙地利用了该主机的修复层和精灵内存等变通方案。
<p>上个月,我们报道了Modern Vintage Gamer(MVG)的自信断言——《毁灭战士》在Neo Geo上根本无法运行,原因是该主机基于精灵的显示硬件和缺乏帧缓冲。但我们本应更清楚,不该告诉一群执着的黑客某件事是“不可能的”,因为最近两个项目在标准Neo Geo硬件上实现可运行的《毁灭战士》移植方面取得了巨大进展。</p>
<div class="ars-video ars-video--horizontal"><div><div class="relative" allow="fullscreen" loading="lazy" src="https://www.youtube.com/embed/VJwffCeo4jU?start=0&wmode=transparent"></div></div></div>
<p>这两个项目都做出了显著的图形妥协,这限制了它们在90年代作为可上市主机移植版的可行性,正如<a href="https://www.youtube.com/watch?v=VJwffCeo4jU">MVG在一个新视频中解释的那样</a>。不过,它们也证明了聪明而坚定的程序员能够从老旧硬件中挖掘出令人惊讶的成果。</p>
<h2>眯眼看,它看起来像《毁灭战士》</h2>
<p>为了为Neo Geo创建<a href="https://github.com/FrenkelS/Doom64KB">Doom64KB</a>项目,程序员FrenkelS改编了<a href="https://github.com/FrenkelS/Doom8088">之前的一个《毁灭战士》移植版</a>,该移植版原本设计用于在8088和286等16位PC处理器上运行。使用那个引擎后,Neo Geo代码利用<a href="https://wiki.neogeodev.org/index.php/Fix_layer">主机的修复层</a>(一种显示内存区域,通常用于在游戏画面上显示菜单和HUD信息)生成了一种原始帧缓冲。</p><p><a href="https://arstechnica.com/gaming/2026/07/hackers-quickly-prove-that-neo-geo-doom-ports-are-not-impossible/">阅读全文</a></p>
<p><a href="https://arstechnica.com/gaming/2026/07/hackers-quickly-prove-that-neo-geo-doom-ports-are-not-impossible/#comments">评论</a></p>
查看缓存全文
缓存时间: 2026/07/13 19:54
# 黑客迅速证明 Neo Geo 上的《Doom》移植并非“不可能”
来源:https://arstechnica.com/gaming/2026/07/hackers-quickly-prove-that-neo-geo-doom-ports-are-not-impossible/
上个月,我们曾报道了 Modern Vintage Gamer (MVG) 的自信论断,称*Doom*在 Neo Geo 上基本不可能运行(https://arstechnica.com/gaming/2026/06/why-a-neo-geo-port-of-doom-is-functionally-impossible/),原因是该主机的显示硬件基于精灵,且缺乏帧缓冲区。然而,我们本应更清楚:告诉一群专注的黑客某件事“不可能”只会激发他们的斗志。最近的两个项目已经在标准 Neo Geo 硬件上实现了功能性的*Doom*移植,并取得了重大进展。
这两款项目在图形上都做出了显著妥协,限制了它们作为 90 年代可商业化的主机移植版的可能性——正如 MVG 在新视频(https://www.youtube.com/watch?v=VJwffCeo4jU)中所阐述的那样。尽管如此,它们仍然证明了聪明且执着的程序员能从老旧硬件中压榨出令人惊讶的成果。
## 眯起眼睛看,这确实像*Doom*
为了在 Neo Geo 上创建 Doom64KB 项目(https://github.com/FrenkelS/Doom64KB),程序员 FrenkelS 改编了他们先前为 8088 和 286 等 16 位 PC 处理器设计的*Doom*移植版(https://github.com/FrenkelS/Doom8088)。利用该引擎,Neo Geo 代码随后将主机的固定图层(https://wiki.neogeodev.org/index.php/Fix_layer)当作一种原始帧缓冲区来使用——固定图层是显示内存中通常用于在游戏画面上方显示菜单和 HUD 信息的区域。
[](https://cdn.arstechnica.net/wp-content/uploads/2026/07/doom64kb.png)
如果你通常看到的*Doom*就是这副模样,请立刻去找眼科医生。
如果你通常看到的*Doom*就是这副模样,请立刻去找眼科医生。
图片来源:Doom64KB (https://github.com/FrenkelS/Doom64KB)
通过在此固定图层上渲染,Doom64KB 引擎能够以相对流畅的方式动画化*Doom*地图,尽管它使用的是粗糙的 8×8 像素瓦片,有效分辨率仅为 28×32(并且只有 16 色,限制了墙壁向远处延伸时的“光照衰减”效果)。对同一思路稍加改动,便可利用 Neo Geo 的精灵内存构建帧缓冲区,通过使用 4×4 像素块将有效分辨率提升至 80×56。虽然这种提升会明显牺牲帧率,但通过进一步优化或使用超频硬件(例如即将推出的 Neo Geo AES+ (https://plaionreplai.com/products/neogeo-aes)),情况可能会变得更加流畅。
相似文章
为什么Neo Geo版《毁灭战士》在功能上不可能实现
技术分析解释了为什么将《毁灭战士》移植到Neo Geo主机在功能上不可能实现,因为硬件限制,尽管一个简化的光线投射演示(近似《德军总部3D》)是可能的。
为什么fastDoom这么快
关于fastDOOM移植版相比原始Doom可执行文件实现显著性能提升的详细技术分析,涵盖了Doom源代码传承历史及具体优化技巧。
在E. coli细胞上运行‘Doom’……非常非常缓慢
MIT研究员Lauren Ramlan发表了一篇论文,证明经典游戏Doom可以在由E. coli细胞制成的显示器上运行,但帧率极低,完成一次通关需要几个世纪。
构建Clang后端并将Doom移植到我的自定义字节码虚拟机
作者复活了他的自定义字节码虚拟机(UVM),并借助AI解析文本LLVM IR构建了一个Clang后端,成功将Doom移植到该虚拟机上。
这个周末你打算做什么?
一位开发者描述了将《完美黑暗64》关卡移植到 noclip.website 的过程,强调了读取 N64 显示列表和重新实现渲染引擎的挑战。