>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 安全
C

如何在现代硬件上不使用模拟器运行任天堂64经典游戏

606 星标

还记得我们以前是怎么花上几个小时,弯腰驼背地对着笨重的CRT电视,努力收集《超级马里奥64》里所有星星的吗?模拟器在一定程度上解决了怀旧情结的问题,但它们总是伴随着一系列缺点:输入延迟、图形故障,以及无休止的插件调试。最近,我偶然发现了 HarbourMasters 团队的 Ghostship 项目,它提供了一种根本不同的方法。它不是模拟器,而是将游戏完整移植到现代平台上的原生版本。

原生移植有什么吸引力

当我们通过模拟器运行游戏时,计算机会消耗资源来"假装"自己是一台游戏机。Ghostship 采取了不同的路线。开发者们获取了反编译的游戏代码,并使其直接在 Windows、Linux 和 macOS 上运行。

这带来了几个很酷的优势。首先,你可以获得正确的 DirectX 11、OpenGL,甚至 Mac 用户的 Metal 支持。其次,游戏运行时的输入延迟极小,这对于平台跳跃游戏至关重要。但最有趣的部分是模组和自定义资源支持,你只需将文件放入一个文件夹就能启用它们。

这个项目能做什么

Ghostship 基于 libultraship 引擎构建。这是一个将任天堂64硬件调用转换为现代API语言的中间层。

开箱即用,你将获得以下功能:

  • 真正的宽屏分辨率,不会拉伸画面。
  • 现代手柄支持和灵活的键盘配置。
  • 通过 .o2r 和 .otr 文件实现的模组系统。
  • 在游戏过程中按 Tab 键即可在标准和替代资源之间切换。

有趣的是,开发者们还考虑到了掌机。有一个针对 Nintendo Switch 的构建版本,不过你仍然需要一台电脑来生成游戏资源。

如何在不违法的情况下运行它

项目作者非常重视版权问题。仓库中没有任何一字节的任天堂受保护内容。要玩游戏,你需要自行获取游戏镜像(ROM)。

流程如下:

  1. 获取 .z64 格式的游戏镜像(支持美国版和日本版)。
  2. 验证 SHA-1 校验和。美国版的校验和是 9bef1128717f958171a4afac3ed78ee2bb4e86ce
  3. 启动 Ghostship.exe,将其指向 ROM,程序将自动提取必要的资源并构建可运行版本。

顺便说一下,如果你的镜像是 .n64 格式,你需要先将其转换为 .z64。README 中有一个简单工具的链接可以完成这个转换。

技术内部原理与自定义

如果你决定调整设置,请查看 Ghostship.cfg.json 文件。在那里你可以手动切换图形后端。例如,如果游戏在 Windows 上崩溃,尝试将后端 ID 改为 3(OpenGL)。默认情况下,它使用 DirectX 11(ID 2)。

对于那些想要更进一步、创建自己模组的用户,HarbourMasters 团队提供了一整套工具。有一个 retro 归档生成器,甚至还有一个用于 Blender 的 fast64 插件。这意味着你可以在3D编辑器中重新设计关卡或角色,然后将它们放入游戏中。

Powered by libultraship

值得一试吗

如果你只是想玩五分钟然后忘掉它,模拟器会更快。但如果你在乎舒适度、高帧率,以及能够全身心投入模组创作——Ghostship 是必备之选。这个项目生机勃勃,由社区积极开发,致谢名单上列出了那些花费数十年逆向工程经典游戏的人们。

这绝对适合以下人群:

  • 那些基于 PC 或 Steam Deck 构建自己复古游戏站的人。
  • 对了解旧代码如何适配现代硬件感兴趣的开发者。
  • 梦想在 Blender 中使用马里奥引擎的模组创作者。

唯一的缺点是面向初学者的从源码构建文档比较稀疏。但发布页面中的预编译二进制文件解决了99%用户的这个问题。

如果在 ROM 哈希值方面遇到问题,可以去看看他们的 Discord——那里的人非常乐于助人,只要你别问他们去哪里下载盗版游戏就行。

相关项目