Portal 1 和 Portal 2 的 Nintendo Switch 插件允许加载 game.zip 之外的文件,因此每次您想要更改某些内容时,不再需要重新打包和发送巨大的档案。
您必须拥有 Portal 2 版本 1.0.3 以及 Portal 版本 1.0.2 或 1.0.3
从版本下载:
Portal-NXSideLoader.zip
没有网络补丁(它不会阻止您使用网络):
- Portal2-NXSideLoader.zip
使用网络补丁(对于阻止任天堂服务器的人,它将阻止游戏连接到网络以防止崩溃+帮助调试):
- Portal2-NoWeb-NXSideLoader.zip
将atmosphere
文件夹放入SD卡根目录(是的,您的CFW不会被删除...)
根据游戏,将主 mod 文件夹重命名为(例如,在 Portal Reloaded 的情况下,它是“portalreloaded”):
portal
portal2_dlc3
并将此文件夹放入:
atmosphere/contents/01007BB017812000/romfs/nxcontent/
atmosphere/contents/0100ABD01785C000/romfs/nxcontent/
romfs 文件夹内的所有文件夹和文件名必须小写!
Some mods are overwriting menu options, so you can lose access to Switch controller settings.
If after installing mod you can't save anything in options, try to delete `gameinfo.txt` from mod folder. You may also delete custom options menu.
They are stored either freely somewhere inside mod folder OR they are packed to some vpk file.
Mod 需要有适当优化的 CPU 代码,否则 Switch 会卡住。
正确优化的模组示例:
优化不佳的模组示例:
nxcontent
中的少数文件可能不受支持,因为它们是通过单独的函数预加载的。我需要添加对一个函数的特定支持,以便加载rom_boot_params.txt
。如果有任何文件不起作用而您希望它起作用,请写一个问题。
游戏支持 vscript。
此 mod 不支持修改源代码。您需要手动制作自己的挂钩。
游戏开发人员重新设计了整个 cstdio 以使用 game.zip 作为文件系统。门户游戏打开大多数文件都使用名为fopen_nx()
函数。要读取此文件 - fread_nx()
等。所有函数都与 cstdio 交叉兼容,因此解决方案非常简单:
fopen_nx()
fopen()
并使用以rom:/
开头的正确路径该解决方案有两个问题:
rom_boot_params.txt
,所以我挂钩了读取该文件的函数,并重新设计了它以从 SD 卡加载文件。后来发现同样的函数负责从 bsp 文件加载声音文件和纹理。fopen_nx()
路径加载忽略大小写 + 优先检查文件是否在nxcontent
文件夹内,如果不是,则检查 zip 的根目录。在钩子内部,我重新实现了此检查+使用tolower()
作为文件路径,因为 HOS romfs 文件加载区分大小写,并且所有原始文件都是小写的。您需要使用 Switch-dev 安装标准 devkitpro。
用这个补丁来自exefs的main.npdm
,否则插件将崩溃:https://github.com/skyline-dev/skyline/blob/master/scripts/patchNpdm.py
要为 Portal 1 编译它,请使用命令
make PORTAL="-DPORTAL"
对于传送门 2
make PORTAL="-DPORTAL2"
带有互联网补丁,允许通过阻止访问任天堂服务器的网络进行调试
make PORTAL="-DPORTAL2 -DPDEBUG"