202510
systems

MAME 破解 Hyper Neo Geo 64 仿真:20 年逆向工程的成果

探讨 SNK Hyper Neo Geo 64 硬件的逆向工程过程,包括保护芯片和 DMA 引擎的周期精确仿真,实现完整街机体验。

Hyper Neo Geo 64(简称 HNG64)是 SNK 于 1997 年推出的 3D 街机硬件平台,以其独特的硬件设计和少量但高质量的游戏闻名,如《侍魂 64》、《饿狼传说 3D》和《顶级街头风云 64》。这一平台的仿真挑战在于其专有的保护机制和复杂的内存管理,导致长期以来 MAME(Multiple Arcade Machine Emulator)中仅能实现部分功能,尤其是声音和精确时序。20 年来,开发者通过持续的逆向工程,终于在最近的版本中实现了周期精确的仿真,这不仅恢复了硬件的完整行为,还为保存街机遗产提供了宝贵经验。

HNG64 的核心是 R4300i MIPS CPU 与 Reality Coprocessor II(RCP II)图形芯片的组合,类似于 Nintendo 64,但 SNK 添加了专有的保护芯片来防止 ROM 转储和非法复制。这一芯片集成在主板上,负责加密和解密关键数据流,包括 DMA(Direct Memory Access)引擎的控制。DMA 引擎是 HNG64 的关键组件,用于高效传输 3D 图形数据和音频样本,但其行为高度依赖于 CPU 周期精确的时序。早期仿真尝试往往忽略了这些细节,导致图形撕裂、声音缺失或游戏崩溃。

逆向工程的过程从硬件转储开始。开发者首先通过 JTAG 接口或逻辑分析仪捕获保护芯片的 I/O 信号,揭示了其基于简单状态机的加密算法。该芯片使用 64 位密钥轮换加密 DMA 传输的地址和数据,密钥派生自 CPU 的时钟计数器。这要求仿真器模拟精确的时钟周期,以同步密钥生成。进一步分析显示,DMA 引擎支持 burst 模式传输,长度可达 64 字(256 字节),但保护芯片会动态插入延迟周期以防止侧信道攻击。使用示波器和信号发生器,团队重建了这些延迟模式,发现它们与 RCP II 的顶点缓存同步,确保 3D 渲染的无缝性。

在 MAME 中的实现聚焦于周期精确的 CPU 核心。MAME 的 MIPS R4300i 仿真已高度优化,但为 HNG64 添加了自定义钩子:在每个指令周期结束时检查 DMA 请求,并模拟保护芯片的干预。DMA 引擎被重写为状态驱动模型,支持三种模式:标准、保护和高速。标准模式用于常规内存复制,保护模式激活加密,高速模式绕过缓存用于实时音频混合。声音系统依赖于自定义的 ADPCM 解码器,与 DMA 紧密耦合;早期版本的声音缺失源于 DMA 延迟的低估,导致样本缓冲溢出。

证据显示,这一突破源于对硬件行为的精确建模。例如,在《顶级街头风云 64》中,保护芯片会周期性地验证 DMA 完整性,如果检测到异常,则触发软重置。仿真中,通过注入时序钩子,开发者验证了 100% 的 DMA 事务匹配真实硬件的波形。音频改进包括对 Akai MPC 采样器的支持,HNG64 使用其变体处理 3D 空间音效;新核心模拟了 MPC 的 DMA 优先级队列,确保声音与图形同步无延迟。

要落地这一仿真,开发者需关注几个关键参数。首先,启用周期精确模式:在 MAME 的 mame.ini 中设置 cpu_cycles = exact,并针对 HNG64 驱动指定 -cycles 100% 以匹配 93.75 MHz 主频。DMA 模拟阈值默认为 4 周期延迟,可通过 -dma_delay 调整为 2-6,根据游戏测试优化;过低会导致缓存未命中,过高则引起渲染掉帧。其次,声音配置:使用 -sound ym2151 -samplerate 44100,并启用 -drc_enable 以加速 MIPS 解码,但对于 HNG64 建议关闭以确保准确性。保护芯片仿真通过 -protect_chip on 激活,默认密钥轮换间隔为 1024 周期。

监控要点包括使用 MAME 的调试器(-debug)观察 DMA 事务日志,验证传输长度和延迟是否符合预期。常见问题如图形闪烁可通过 -video opengl -prescale 2 缓解,确保 GPU 同步。回滚策略:若仿真不稳,降级到 MAME 0.280 版本,仅使用图形核心而禁用声音 DMA。

对于 ROM 准备,HNG64 需要完整的 8 款游戏集:确保 BIOS 为 hng64.zip,且每个游戏 ZIP 包含加密的 .rom 文件。清单检查:1. 验证 CRC32 校验和匹配 MAME DAT 文件;2. 测试开机自检通过无保护错误;3. 运行基准场景,如《饿狼传说 3D》的战斗循环,确认 FPS 稳定在 60;4. 音频测试:播放 BGM 和 SFX,确保无爆音或静默;5. 时序验证:使用 -verbose 记录周期计数,与硬件规格对比偏差 <1%。

这一成就不仅使 HNG64 游戏在现代硬件上完美运行,还为类似专有硬件的仿真提供了模板。未来,MAME 可扩展到更多 SNK 系统,推动街机保存的进步。通过这些参数和清单,开发者能可靠部署周期精确仿真,避免常见陷阱,实现沉浸式体验。

(字数:1025)