塞尔达3的重新实现。
我们的不和谐服务器是:https://discord.gg/AJJbJAzNNJ
这是塞尔达3的逆向工程克隆 - 与过去的链接。
它大约有70-80kLOC的C代码,并重新实现了原始游戏的所有部分。游戏从头到尾都可以玩。
你需要ROM的副本来提取游戏资源(关卡,图像)。然后,一旦完成,就不再需要ROM。
它使用LakeSnes的PPU和DSP实现,但进行了大量速度优化。此外,还可以将其配置为并行运行原始机器代码。然后在每帧之后比较 RAM 状态,以验证 C 实现是否正确。
我从扳手主义的塞尔达 3 JP 反汇编和其他记录函数名称和变量负载的反汇编中得到了很多帮助。
添加了一堆原始游戏不支持的功能。其中一些是:
支持像素着色器。
支持 16:9 或 16:10 的增强纵横比。
更高质量的世界 map。
支持 MSU 音轨。
按钮 X 上的辅助物品插槽(按住库存中的 X 进行选择)。
使用 L/R 键切换当前项目。
pillow
pyyaml
python -m pip install --upgrade pip pillow pyyaml
zelda3.sfc
python extract_resources.py
python compile_resources.py
run_with_tcc.bat
zelda3.exe
zelda3.ini
与上述
步骤1-7相同,步骤8相同。双击
9。将顶部下拉列表中
的“调试”更改为“发布” 10.在菜单中选择“构建>构建塞尔达3”,以在“/bin/release”子文件夹
11 中创建。在主目录中配置
Zelda3.sln
zelda3.exe
zelda3.ini
python3 -m ensurepip
cd
git clone https://github.com/snesrev/zelda3
cd zelda3
python3 -m pip install -r requirements.txt
sudo apt install libsdl2-dev
sudo dnf in sdl2-devel
sudo pacman -S sdl2
brew install sdl2)
zelda3.sfc
zelda3/tables
make
make -j$(nproc) # run on all core
make clean all # clear gen+obj and rebuild
CC=clang make # specify compiler
你需要安装 DevKitPro 和 Atmosphere。
(dkp-)pacman -S git switch-dev switch-sdl2 switch-tools
cd platform/switch
make # Add -j$(nproc) to build using all cores ( Optional )
# You can test the build directly onto the switch ( Optional )
nxlink -s zelda3.nro
查看 https://github.com/snesrev/zelda3/wiki 的 wiki 以获取更多帮助。
ROM 需要命名,并且必须来自美国地区,具有此确切的 SHA256 哈希
zelda3.sfc
66871d66be19ad2c34c927d6b14cd8eb6fc3181965b6e517cb361f7316009cfb
如果你打算将可执行文件移动到其他位置,请包含该文件。
tables/zelda3_assets.dat
游戏支持快照。游戏手柄输入历史记录也保存在快照中。因此,可以在涡轮模式下重播游戏,以验证游戏行为是否正确。
游戏运行并采用ROM文件的可选路径,该文件将验证每一帧的C代码是否与原始行为匹配。
./zelda3
按钮 | 钥匙 |
---|---|
向上 | 向上箭头 |
下 | 向下箭头 |
左 | 左箭头 |
右 | 向右箭头 |
开始 | 进入 |
选择 | 右移 |
一个 | X |
B | Z |
X | S |
Y | 一个 |
L | C |
R | V |
密钥可以在 zelda3 中重新配置.ini
此外,以下命令可用:
钥匙 | 行动 |
---|---|
标签 | 涡轮增压模式 |
W | 补充生命值/魔法 |
移位+W | 填充卢比/炸弹/箭头 |
Ctrl+E | 重置 |
P | 暂停(带暗淡) |
移位+P | 暂停(不变暗) |
按 Ctrl+向上 | 增加窗口大小 |
按 Ctrl+向下 | 减小窗口大小 |
T | 切换重播涡轮增压模式 |
O | 将地下城密钥设置为 1 |
K | 从游戏手柄日志中清除所有输入历史记录 |
L | 停止重播塑形镜头 |
R | 在快速和慢速渲染器之间切换 |
F | 显示渲染器性能 |
F1-F10 | 加载快照 |
Alt+Enter | 切换全屏 |
换档+F1-F10 | 保存快照 |
按 Ctrl+F1-F10 | 重播快照 |
1-9 | 运行地下城通关快照 |
按 Ctrl+1-9 | 在涡轮模式下运行地下城通关 |
该项目在 MIT 许可证下获得许可。有关详细信息,请参阅“许可证.txt”。