上个月,复古硬件博主MVG断言:Doom在Neo Geo上"功能性不可能"运行。理由很直接——这台1990年发售的街机/家用两用主机是纯粹的sprite显示硬件,没有传统意义上的帧缓冲,Doom引擎离不开的逐像素绘图方式,在这台机器上没有立足之地。

一个月后,Ars Technica在2026年7月13日的报道里给出了反例。FrenkelS的Doom64KB和另一团队的Doom-NG,已经能在真实Neo Geo硬件上跑出可操作的早期版本。这不是Neo Geo拿到了一次商业级移植,而是再次证明:复古硬件上的"不可能",往往只是工程师还没想清楚该在画面和性能上砍哪一刀。

两条团队各自找了条绕路

FrenkelS给Neo Geo写的Doom64KB,血统来自他更早为8088、286这类16位处理器做的Doom8088引擎。他没有去凭空造一块帧缓冲,而是盯上了Neo Geo里专门显示菜单和HUD的fix layer——一块本该只叠字幕的显示内存。

另一条路线Doom-NG走得更硬核。此前MVG在原视频里提过的"sprite条带raycaster"思路,只认Wolfenstein 3D式90度直角网格地图,碰到Doom更复杂的几何就束手无策。Doom-NG的VSlice渲染器沿着Doom地图的BSP树逐列遍历,判断每一列屏幕该显示哪面墙,再让硬件把sprite缩放成16像素宽的竖条拼出画面。

项目技术路线有效分辨率/画面代价
Doom64KB 基础版fix layer伪帧缓冲,8×8像素块28×32,16色远近光影效果基本消失
Doom64KB 增强版sprite显存伪帧缓冲,4×4像素块80×56帧率明显下降
Doom-NGVSlice + BSP遍历,16px竖条sprite拼图未公开具体分辨率数字明显条纹、重复纹理、近处锯齿
两条路线,两种妥协 Doom64KB 来源:Doom8088引擎 改自8088/286移植 渲染层:fix layer伪帧缓冲 28×32,16色 增强版:80×56,4×4像素块 代价:分辨率↑帧率↓ Doom-NG 渲染器:VSlice 沿BSP树遍历可见面 对比:优于90度网格raycaster 帧率相对更高 画面:16像素宽竖条拼图 代价:重复纹理+近处锯齿

能跑起来,不等于能卖出去

两个项目都还停留在很早期的状态。敌人AI、背景音乐、切换武器——这些Doom最基本的游戏元素都还没补上。

目前跑起来的只是"能在地图里走一圈、看到墙"的最小可行版本。报道里也没有给出具体的版本发布计划或时间表。

也别把"技术上能跑"和"90年代能卖"划等号。Neo Geo在当年以街机级画面著称,卡带售价常常是同期其他主机的数倍。这套定位跟28×32分辨率、16色、条纹状墙面几乎是两个次元的东西。放在1990年代的货架上,这种画质妥协本身就是对Neo Geo招牌卖点的削弱。

分辨率差距有多大 Neo Geo原生 320×224 Doom64KB增强版 80×56 Doom64KB基础版 28×32 柱长按像素总量对数缩放,仅示意量级差距

复古玩家和移植开发者该盯什么

复古主机玩家现在不用急着找ROM试玩。两个项目都缺敌人、缺音乐、缺武器切换,跟"完整游戏"还差一大截。真正值得留意的是即将推出的Neo Geo AES+这类超频硬件——报道里只提到它可能改善帧率和稳定性,没有任何实测数据,观望比追新更划算。

移植开发者可以直接借鉴这套思路:碰到没有帧缓冲的老硬件,别死磕"造一块帧缓冲",去找机器上现成的、被低估的显示内存(比如Neo Geo的fix layer或sprite显存)改造成绘图区。这条路径的代价是分辨率和帧率必须二选一,但至少证明了"绕过"比"造轮子"更快出结果。

对这两类人来说,这次事件的意义不在于"Neo Geo又多了个Doom版本",而在于一次移植工程的示范:只要肯在分辨率、色深和渲染路径上做减法,"不可能"三个字经常撑不住太久。