Плагин Nintendo Switch для Portal 1 и 2, который позволяет загружать файлы за пределами game.zip, поэтому больше не нужно перепаковывать и отправлять огромные архивы каждый раз, когда вы хотите что-то изменить.
У вас должна быть версия Portal 2 1.0.3 и Portal 1.0.2 или 1.0.3.
Из релизов скачать:
Портал-NXSideLoader.zip
Без сетевых патчей (это не заблокирует вам использование сети):
- Portal2-NXSideLoader.zip
С сетевыми исправлениями (для людей, которые блокируют серверы Nintendo, они блокируют подключение игры к сети во избежание сбоя + помогают при отладке):
- Portal2-NoWeb-NXSideLoader.zip
Поместите папку atmosphere
в корень SD-карты (да, ваш CFW не будет удален...)
Переименуйте основную папку мода (например, в случае 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.
Моды должны иметь правильно оптимизированный код ЦП, иначе Switch будет захлебываться.
Примеры правильно оптимизированных модов:
Примеры плохо оптимизированных модов:
Некоторые файлы в nxcontent
могут не поддерживаться, поскольку в них предварительно загружены отдельные функции. Мне нужно было добавить специальную поддержку для одной функции, чтобы можно было загрузить rom_boot_params.txt
. Если какой-то файл не работает и вы хотите, чтобы он работал, напишите проблему.
Игра поддерживает vscripts.
Изменение исходного кода не поддерживается для этого мода. Вам придется сделать свои собственные крючки вручную.
Разработчики игр переработали весь cstdio, чтобы использовать game.zip в качестве файловой системы. Портальные игры для открытия большинства файлов используют функцию fopen_nx()
. Чтобы прочитать этот файл — fread_nx()
и т. д. Все функции перекрестно совместимы с cstdio, поэтому решение было довольно простым:
fopen_nx()
fopen()
с правильным путем, начинающимся с rom:/
С этим решением было 2 проблемы:
rom_boot_params.txt
, поэтому я подключил функцию чтения этого файла и переработал ее для загрузки файла с SD-карты. Позже выяснилось, что эта же функция отвечает за загрузку звуковых файлов и текстур из bsp-файлов.fopen_nx()
игнорирует регистр + имеет приоритет сначала проверить, находится ли файл внутри папки nxcontent
, а если нет, проверяет корень zip-файла. Внутренний хук я переопределил эту проверку + использовал tolower()
для пути к файлу, поскольку загрузка файла HOS romfs чувствительна к регистру, а все исходные файлы написаны строчными буквами.Вам потребуется стандартная установка Devkitpro с помощью Switch-dev.
Исправьте main.npdm
из exefs с помощью этого, иначе плагин выйдет из строя: https://github.com/skyline-dev/skyline/blob/master/scripts/patchNpdm.py
Чтобы скомпилировать его для Портала 1, используйте команду
make PORTAL="-DPORTAL"
для Портала 2
make PORTAL="-DPORTAL2"
с интернет-патчами, позволяющими отладку через сеть, которая заблокировала доступ к серверам Nintendo
make PORTAL="-DPORTAL2 -DPDEBUG"