Zelda64Recomp/Zelda64Recomp
GitHub: Zelda64Recomp/Zelda64Recomp
通过静态重编译技术将 N64 游戏《摩吉拉的面具》原生移植到 PC 的开源项目,提供高帧率、宽屏、Mod 支持等现代增强功能。
Stars: 7001 | Forks: 323
# Zelda 64: Recompiled
Zelda 64: Recompiled 是一个使用 [N64: Recompiled](https://github.com/Mr-Wiseguy/N64Recomp) 将《摩吉拉的面具》(以及后续的《时之笛》)**静态重编译** 为原生移植版的项目,包含许多新功能、增强特性以及广泛的 Mod 支持。该项目使用 [RT64](https://github.com/rt64/rt64) 作为渲染引擎以提供图形增强。
### [在此处查看最新版本](https://github.com/Mr-Wiseguy/Zelda64Recomp/releases/latest)。
加入 [N64: Recompiled 社区 Discord](https://discord.gg/AWZThJ4dPf) 来讨论此项目及其他 N64: Recompiled 项目!
[](https://discord.gg/AWZThJ4dPf)
### **本仓库及其发行版不包含游戏资产。运行或构建此项目需要原版游戏。**
## 目录
* [系统要求](#system-requirements)
* [功能](#features)
* [即插即用](#plug-and-play)
* [完整保留的 N64 特效](#fully-intact-n64-effects)
* [易于使用的菜单](#easy-to-use-menus)
* [高帧率支持](#high-framerate-support)
* [宽屏和超宽屏支持](#widescreen-and-ultrawide-support)
* [Mod 支持](#mod-support)
* [双摇杆视角控制](#dual-analog-camera)
* [陀螺仪瞄准](#gyro-aim)
* [其他控制选项](#additional-control-options)
* [自动保存](#autosaving)
* [低输入延迟](#low-input-lag)
* [瞬间加载](#instant-load-times)
* [Linux 和 Steam Deck 支持](#linux-and-steam-deck-support)
* [计划功能](#planned-features)
* [常见问题解答](#faq)
* [已知问题](#known-issues)
* [构建说明](#building)
* [使用的库及参考的项目](#libraries-used-and-projects-referenced)
## 系统要求
运行此项目需要支持 Direct3D 12.0 (Shader Model 6)、Vulkan 1.2 或 Metal Argument Buffers Tier 2 的 GPU。各厂商支持的最老 GPU 大致如下:
* GeForce GT 630
* Radeon HD 7750(2012 年发布的版本,请勿与 RX 7000 系列混淆)及更新型号
* Intel HD 510 (Skylake)
* 配备 Apple Silicon 或 Intel 第七代 CPU 且系统为 MacOS 13.0+ 的 Mac
在 x86-64 PC 上,还需要支持 SSE4.1 指令集的 CPU(Intel Core 2 Penryn 系列或 AMD Bulldozer 及更新型号)。ARM64 版本可在任何 ARM64 CPU 上运行。
如果在启动时遇到崩溃问题,请确保您的显卡驱动已完全更新至最新版本。
## 功能
#### 即插即用
只需在主菜单中提供您拥有的北美版游戏ROM即可开始游玩!本项目会自动从提供的游戏副本中加载资产,因此无需经历单独的提取步骤或自行构建游戏。未来可能会支持其他版本的游戏。
#### 完整保留的 N64 特效
我们在 RT64 上投入了大量精力,以确保所有图形特效都能完全还原为最初在 N64 上的渲染效果。我们没有使用任何变通方法或“黑客”手段来复制这些特效,仅出于增强目的(例如宽屏支持)对它们进行了少量修改。这包括帧缓冲效果(如灰度过场动画和迪库泡泡弹)、深度效果(如真实之镜)、贴花(如阴影或撞击纹理)、精确的光照、着色效果(如火焰箭和炸弹爆炸),以及经常被错误渲染的各种纹理。
#### 易于使用的菜单
游戏设置、图形设置、输入映射和音频设置都可以通过游戏内的配置菜单进行调整。所有菜单均可使用鼠标、手柄或键盘进行操作,为您提供最大的便利。
#### 高帧率支持
得益于 RT64 提供的功能,您可以以任何想要的帧率进行游玩!游戏对象和地形、纹理滚动、屏幕效果以及大多数 HUD 元素都能以高帧率渲染。默认情况下,本项目配置为以显示器的刷新率运行。如果您愿意,也可以以游戏的原始帧率进行游玩。**改变帧率不会影响游戏玩法。**
**注意**:已知外部帧率限制器(例如 NVIDIA 控制面板)可能会引起问题,因此如果您注意到任何卡顿现象,请关闭它们并改用游戏内图形菜单中的手动帧率滑块。
#### 宽屏和超宽屏支持
支持任何宽高比,并且大部分特效已经过修改以在宽屏下正常工作。使用超宽屏时,如果您喜欢,可以将 HUD 定位在 16:9 的位置。
**注意**:在使用极宽的宽高比时,在某些过场动画中可能会在屏幕边缘看到一些动画异常。
#### Mod 支持
安装社区制作的 Mod 和纹理包!Mod 可以更改游戏的任何部分,包括添加全新的功能和内容。您只需在启动游戏前将 Mod 文件拖拽到游戏窗口,或点击 Mod 菜单中的 **安装 Mod** 按钮即可安装。Mod 可以在 Mod 菜单中开启或关闭,部分 Mod 还可以在该处进行配置。
项目在 Thunderstore 页面上提供了许多 Mod:https://thunderstore.io/c/zelda-64-recompiled/ 。无需且不支持使用 Thunderstore mod manager/r2modman,因此在下载 Mod 时请务必点击“Manual Download”按钮,而不是“Install with Mod Manager”按钮。
如果您有兴趣为此项目制作 Mod,请查看 [Mod 模板](https://github.com/Zelda64Recomp/MMRecompModTemplate) 和 [Mod 制作文档](https://hackmd.io/fMDiGEJ9TBSjomuZZOgzNg)。如果您有兴趣制作纹理包,请查看 [RT64 文档](https://github.com/rt64/rt64/blob/main/TEXTURE-PACKS.md)。
#### 双摇杆视角控制
像该系列后期作品一样使用双摇杆控制布局进行游玩!启用此选项后,右摇杆将控制视角。如果您愿意,您仍然可以将 C 按键映射到右摇杆,前提是您也将它们映射到手柄上的其他按键。右摇杆的 C 按键输入将被“静音”,除非您拿出陶笛,这样您仍然可以使用右摇杆吹奏陶笛。
#### 陀螺仪瞄准
当使用支持的手柄游玩时,弓等第一人称物品可以使用手柄的陀螺仪传感器进行瞄准。这包括(但不限于)Dualshock 4、Dualsense、Switch Pro 手柄以及大多数第三方 Switch 手柄(例如处于 Switch 模式的 8BitDo Pro 2)。
**注意**:诸如 BetterJoy 或 DS4Windows 之类的手柄映射软件可能会拦截陀螺仪数据并阻止游戏接收数据。大多数手柄都受原生支持,因此如果您想使用陀螺仪,建议关闭这些手柄映射软件。
#### 其他控制选项
通过将摇杆死区设置为您喜欢的数值,以及调整瞄准和可选双摇杆视角控制的 X 轴和 Y 轴反转,来自定义您的游玩体验。
#### 自动保存
有了自动保存功能,再也不用担心因为断电而丢失进度了!自动保存系统旨在尊重《摩吉拉的面具》原有的保存系统,并通过自动触发替换之前的自动保存或猫头鹰保存,来保持猫头鹰保存的设计初衷。然而,如果您仍然希望使用原汁原味的保存系统游玩,只需在游戏内菜单中关闭自动保存即可。
#### 低输入延迟
本项目已经过优化,具有尽可能低的输入延迟,让游戏比以往任何时候都更加灵敏响应!
#### 瞬间加载
由于游戏在现代硬件上原生运行,保存和加载文件、地点转换以及暂停都在眨眼间完成。
#### Linux 和 Steam Deck 支持
我们提供了 Linux 二进制文件以及 Flatpak,以便在大多数更新的 Linux 发行版(包括 Steam Deck)上运行。
要在 Steam Deck 上游玩,请将 Linux 版本解压到您的 Deck 上。然后,在桌面模式下,右键单击 Zelda64Recompiled 可执行文件并选择“添加到 Steam”。之后,您可以返回游戏模式并根据需要配置控制。有关更详细的说明,请参阅 [Steam Deck 陀螺仪瞄准常见问题解答部分](#how-do-i-set-up-gyro-aiming-on-steam-deck)。
## 计划功能
* 《时之笛》支持
* 光线追踪和更高质量的模型替换(通过 RT64)
* 多语言支持并支持加载自定义翻译
## 常见问题解答
#### 什么是静态重编译?
静态重编译是将应用程序从一个平台自动翻译到另一个平台的过程。有关更多详细信息,请在此处查看关于本项目重编译工作原理的完整描述:[N64: Recompiled](https://github.com/Mr-Wiseguy/N64Recomp)。
#### 这与反编译项目有什么关系?
与过去的 N64 移植版不同,本项目并非基于通过游戏反编译提供的源代码。这是因为静态重编译在制作移植版时绕过了对反编译源代码的需求,从而允许**在没有源代码的情况下**制作移植版。然而,反编译团队所做的逆向工程工作对于提供本项目中包含的一些增强功能是无价的。因此,本项目使用反编译项目的头文件和部分函数来对游戏进行修改。非常感谢反编译团队所做出的所有辛勤工作。
#### 如何在 Steam Deck 上设置陀螺仪瞄准?
由于无法直接读取 Steam Deck 的陀螺仪传感器,本项目提供鼠标瞄准作为一种在 Steam Deck 上使用陀螺仪的方法。首先,在游戏模式下启动游戏,按下 Steam 按键并进入“控制器设置”。在随后出现的菜单中再次选择“控制器设置”,然后将“陀螺仪行为”设置为“作为鼠标使用”。

您可能还希望更改默认行为,以便无需触摸右摇杆即可允许陀螺仪输入。为此,请点击“陀螺仪行为”右侧的齿轮图标,并确保“陀螺仪激活按键”设置为“未选择(陀螺仪常开)”。如果不是这种情况,请选择该选项,然后在随后的菜单中按“全部不选”。
#### 存档文件保存在哪里?
- Windows: `%LOCALAPPDATA%\Zelda64Recompiled\saves`
- Linux: `~/.config/Zelda64Recompiled/saves`
- macOS: `~/Library/Application Support/Zelda64Recompiled/saves`
#### 如何选择其他 ROM?
**您不能。** 本项目**仅**是《摩吉拉的面具》(以及未来的《时之笛》)的移植版,它只接受一种特定的 ROM:N64 发行的美版《摩吉拉的面具》。非 .z64 格式的 ROM 将被自动转换,只要它是正确的 ROM。**它不是模拟器,无法运行任何任意 ROM。**
不过,您可以通过安装 Mod 来改变游戏。有关详细信息,请参阅 [Mod 支持](#mod-support) 部分。
#### 这个项目有随机化 Mod 吗?
是的,本项目有一个可作为 Mod 使用的随机化器,可以在 https://github.com/RecompRando/MMRecompRando/releases/latest 找到。只需从发行版下载 MMRecompRando.zip 并像安装其他 Mod 一样进行安装即可。
#### 可以将此项目作为便携版应用运行吗?
可以,如果您在与可执行文件相同的文件夹中放置一个名为 `portable.txt` 的文件,本项目将以便携模式运行。在便携模式下,存档文件、配置文件和 Mod 都将放置在与可执行文件相同的文件夹中。
## 已知问题
* 诸如 MSI Afterburner 的覆盖层以及其他诸如 Wallpaper Engine 的软件可能会导致本项目出现性能问题,从而阻止游戏正确渲染。建议禁用此类软件。
## 构建说明
游玩本项目无需构建,因为预构建的二进制文件(不包含游戏资产)可以在 [Releases](https://github.com/Mr-Wiseguy/Zelda64Recomp/releases) 部分找到。有关如何构建此项目的说明可以在 [BUILDING.md](BUILDING.md) 文件中找到。
## 使用的库及参考的项目
* [RT64](https://github.com/rt64/rt64) 用作项目的渲染引擎
* [RmlUi](https://github.com/mikke89/RmlUi) 用于构建菜单和启动器
* [lunasvg](https://github.com/sammycage/lunasvg) 用于 SVG 渲染,由 RmlUi 使用
* [FreeType](https://freetype.org/) 用于字体渲染,由 RmlUi 使用
* [moodycamel::ConcurrentQueue](https://github.com/cameron314/concurrentqueue) 用于信号量和快速、无锁的 MPMC 队列
* [Gamepad Motion Helpers](https://github.com/JibbSmart/GamepadMotionHelpers) 用于实现陀螺仪瞄准的传感器融合和校准算法
* [Majora's Mask Decompilation](https://github.com/zeldaret/mm) 用于头文件和部分函数定义,以进行补丁或某些增强
* [Ares emulator](https://github.com/ares-emulator/ares) 用于 RSP 向量指令参考实现,用于 RSP 重编译
标签:C++, GitHub Actions, Mac, Mod支持, N64, PC移植, RT64, 任天堂64, 双摇杆, 塞尔达传说:姆吉拉的假面, 客户端加密, 开源游戏, 数据擦除, 时之笛, 模组支持, 渲染引擎, 游戏逆向工程, 画面增强, 自动保存, 自动笔记, 超宽屏, 陀螺仪瞄准, 静态重编译, 高帧率