Как играть в новую Zelda: Ocarina of Time на iPhone без эмулятора

Запустить ремейк Ocarina of Time можно не только на Switch 2: Линк уже бегает по Лесу Кокири на айфонах. Порт выложили через день после релиза игры, и за три дня он пережил семнадцать версий. Подойдет для этого, правда, далеко не каждый iPhone. А готовой кнопки «Установить» нет вовсе, и самое трудное начинается задолго до первого запуска.

iPhone с Ocarina of Time на экране стоит на столе рядом со щитом Хайрула и Трифорсом

iPhone с Ocarina of Time на экране стоит на столе рядом со щитом Хайрула и Трифорсом

Это не эмулятор, а сама игра со Switch 2 внутри айфона

Проект называется kid with sword remake. Это ответвление открытого nxnative, который умеет превращать игры для Nintendo Switch в обычные приложения для iPhone, iPad и Mac. Главное отличие от эмуляторов в том, что код игры выполняется напрямую на процессоре Apple. Никто не притворяется консолью: программа переписывает игру под айфон, а графику Switch пересобирает на Metal, родном графическом движке Apple.

Отсюда и скорость. Эмулятору приходится на лету переводить каждую команду чужого железа, и даже флагманы с этим справляются с трудом. Здесь эта работа сделана заранее, на компьютере. Работа над ним идет в бешеном темпе: в отдельные дни автор выкладывал по несколько сборок.

Линк бежит по Лесу Кокири на экране iPhone, поверх картинки сенсорные кнопки и счетчик кадров

Линк бежит по Лесу Кокири на экране iPhone, поверх картинки сенсорные кнопки и счетчик кадров

Требования к айфону жесткие. Нужен iPhone 15 Pro или новее с iOS 26, а из планшетов подойдет iPad на M1 и новее. Дело в формате текстур: в играх Switch они сжаты способом, который старые чипы Apple просто не читают. Тестирует порт автор на iPhone 18 Pro, и на нем же собрана вся статистика ниже.

Линк встречает жительницу деревни Кокири, над ее головой реплика «Oh?»

Линк встречает жительницу деревни Кокири, над ее головой реплика «Oh?»

Теперь о статусе. Это пререлиз, причем выложен только исходный код. Ни готового IPA-файла, ни файлов игры в репозитории нет и не будет: все собирается у вас дома из вашей же копии. Новые сборки выходят чуть ли не каждый день, так что, если хотите видеть, как порт подтягивается, подписывайтесь на наши каналы в Telegram и МАКС: про заметные обновления расскажем там.

Без Mac и собственной копии игры ничего не выйдет

Собрать игру на самом айфоне нельзя. Понадобится Mac на Apple silicon с macOS 26.6 или новее, Xcode 27.2, Homebrew и Python 3.12 или свежее. Автор все делал на безвентиляторном MacBook Air M5 с 16 ГБ памяти, так что топовый Mac Pro для этого не нужен. А вот свободное место понадобится: около 80 ГБ под рабочую папку плюс еще 3 ГБ под итоговый файл.

Если внутренний диск забит, всю сборку можно вынести на внешний SSD. Недорогие накопители с USB-C регулярно появляются в «Сундук Али-Бабы» в МАКС, а заодно и геймпады для айфона.

Теперь о самом главном. Порт не содержит ни байта из игры, поэтому образ игры придется искать самостоятельно. Скачать его по ссылке из этой статьи не получится: поищите в сети и на известных площадках, где обычно выкладывают дампы игр для Switch 2. Нужна определенная версия: базовая игра плюс обновление v131072. С другими обновлениями автор порт не проверял, и они вполне могут не запуститься.

Линк бежит по камням через ручей в деревне Кокири

Линк бежит по камням через ручей в деревне Кокири

Подойдет один из двух вариантов. Либо файл .nup, в котором уже лежит и игра, и обновление. Либо распакованная папка: внутри base с подпапками exefs и romfs, а рядом updates/131072 с такими же двумя подпапками.

Отдельно про файл prod.keys, о котором вы наверняка прочитаете в инструкциях к nxnative. Это ключи консоли, без которых не расшифровать игры. Для Ocarina of Time и других игр со Switch 2 prod.keys не нужен: такие дампы собираются без него. А вот если захотите так же перенести на айфон что-то с первой Switch, например Mario Kart 8 Deluxe или Breath of the Wild, ключи придется добывать со своей консоли. В открытом доступе их никто не выложит.

Собираем IPA на Mac, и это проще, чем кажется

Работать придется в Терминале, но думать почти не нужно: команды копируются из инструкции по одной, а дальше Mac все делает сам. Положите игру в отдельную папку, например Games/Zelda в домашней папке, и запаситесь временем. Первая сборка у автора заняла около часа, причем 40 минут из них уходит на перевод почти 43 тысяч шейдеров игры.

Порядок действий такой:

  1. Установите Xcode 27.2 и в нем компонент iOS: Xcode — Settings — Components. Затем поставьте Homebrew с сайта brew.sh.
  2. Откройте Терминал и выберите этот Xcode. Система попросит пароль от Mac, при вводе символы не отображаются, так и задумано: sudo xcode-select -s /Applications/Xcode.app
  3. Скачайте компилятор шейдеров: xcodebuild -downloadComponent MetalToolchain
  4. Поставьте инструменты для сборки: brew install xcodegen zstd glslang
  5. Следом установите .NET, на нем работает переводчик шейдеров: brew install --cask dotnet-sdk
  6. Добавьте модули Python: python3 -m pip install lz4 "capstone>=5,<6" fonttools nsz zbic "backports.zstd; python_version < '3.14'"
  7. Загрузите свежую сборку порта и перейдите в ее папку: git clone --branch v17 https://github.com/cheemu21/kid-with-sword-remake.git && cd kid-with-sword-remake
  8. Создайте в этой папке текстовый файл ios_env.txt с пятью строками из описания релиза: DM_UPSCALER=metalfx, DM_FPS_HOLD=off, DM_THERMAL_CAP=0, DM_QOS_MAP=1 и DM_QOS_EDGES=45,59.
  9. Запустите сборку: python3 scripts/build_ipa_from_nsp.py ~/Games/Zelda --env-file ios_env.txt --keep-extracted --romfs separate --gpu none -o ~/Games/Zelda/OcarinaOfTime.ipa

Параметр --romfs separate тут важен. С ним получается легкий IPA на 2,7-3 ГБ, а сами файлы игры весом около 26 ГБ лежат отдельно, в рабочей папке, по пути 0400486024DEC000_build/extract/v131072/RomFS.img. Без него IPA раздувается почти до 27 ГБ, и такой файл переварит далеко не каждая программа для установки.

Линк прыгает с камня, внизу экрана подсказка Jump

Линк прыгает с камня, внизу экрана подсказка Jump

Повторная сборка, когда выйдет новая версия порта, займет уже минуты, а не час: все, что не поменялось, Mac возьмет из готового. Если же Терминал ругается красным и вы не понимаете, на что, скопируйте ошибку в наш чат в Telegram или МАКС, разберемся вместе.

После установки игра еще полчаса будет готовиться

Получившийся IPA ставится на айфон так же, как любое приложение не из App Store. Удобнее всего это делать с личным сертификатом разработчика: мы подробно разбирали, как купить сертификат и установить приложение через Feather, и с Зельдой порядок тот же. Только перед подписью поищите в настройках пункт Increased Memory Limit и включите его, если он есть. Игре нужно много оперативной памяти, и без повышенного лимита iOS может ее закрыть.

Дальше идет шаг, который легко пропустить. Приложение установлено, но файлов игры в нем пока нет:

  1. Подключите iPhone к Mac кабелем и откройте его в Finder.
  2. Перейдите на вкладку «Файлы» и найдите там приложение игры.
  3. В рабочей папке сборки сделайте копию файла RomFS.img и назовите ее romfs.img, строчными буквами. Оригинал не трогайте, он пригодится для следующих сборок.
  4. Перетащите romfs.img на приложение игры в Finder.

Копирование 26 ГБ займет время, зато делать его нужно один раз. Приложение само проверит, что файл целый и нужной версии, так что оборванная копия не запустится и ничего не сломает. Обновлять romfs.img придется только при смене версии игры.

Теперь первый запуск игры, и он долгий. Айфон заранее подготовит около 30 500 графических конвейеров, и на это уходит от 20 до 40 минут. Не пугайтесь и не закрывайте игру: это происходит один раз, потом запуск обычный. Поставьте телефон на стол и займитесь чем-нибудь другим.

Мидо преграждает Линку путь у входа в лес со словами «I won't let you pass!»

Мидо преграждает Линку путь у входа в лес со словами «I won't let you pass!»

Перед стартом откроется окно настроек. Там можно выбрать частоту 30 или 60 кадров и масштаб картинки ползунком от 0,25 (режим Potato) до 1,0. Я бы на 60 fps долго не задерживался: iPhone 18 Pro держит их примерно минуту, потом нагревается, система снижает частоты, и счетчик падает до 37-43 кадров. С 30 fps картинка ровная, а для долгих сессий автор советует начинать на прохладном телефоне и не держать его на зарядке.

Часть настроек доступна и прямо во время игры. Кнопка с шестеренкой вверху экрана открывает меню, где переключаются режим консоли, качество картинки, счетчик кадров, отклик кнопок и вибрация. Остальное, по подсказке самого меню, живет в окне настроек перед стартом.

Меню прямо во время игры: режим консоли, качество картинки, счетчик кадров, раскладка и вибрация

Меню прямо во время игры: режим консоли, качество картинки, счетчик кадров, раскладка и вибрация

Управление сенсорное и сделано специально под эту игру: слева стик и крестовина, справа кнопки с буквами как на Switch, камера крутится свайпом по правой половине экрана. Раскладку можно сменить в том же меню: 2D, 3D или Tap, где по экрану достаточно просто нажимать. Но с геймпадом играть заметно приятнее, порт понимает Backbone, Kishi, DualSense и Switch Pro, а кнопки на экране при подключении прячутся. Если контроллера нет, загляните в нашу подборку геймпадов, которые превращают iPhone в консоль.

Выбор раскладки сенсорного управления: 2D, 3D или Tap

Выбор раскладки сенсорного управления: 2D, 3D или Tap

Совсем без огрехов не обходится. После перехода между локациями иногда всплывают фиолетовые или черные текстуры, а области дальше Леса Кокири и его окрестностей на айфоне пока толком не проверены. Так что это скорее способ заглянуть в ремейк раньше всех, чем замена консоли, но выглядит он для пятидневного проекта очень впечатляюще.

iOS 26Игры для iPhone и iPadСоветы по работе с Apple