Термины: нативный порт — обычная программа под Windows (.exe), которая запускает игру напрямую, без прослойки-эмулятора. Сборка из исходников — вы компилируете .exe сами из кода проекта. Игровые данные (assets) — файлы моделей, текстур и звука; они не входят в репозиторий порта, их нужно взять из вашей копии игры.

Параметры → Система → О системе → Тип системы.Похожий разбор установки нативного порта (без эмулятора, с проверкой контрольных сумм и путей) есть в гайде про The Legend of Zelda: Breath of the Wild нативно на Windows — логика шагов там та же, что ниже.
Что сделать: установить три инструмента (Git, CMake, Visual Studio 2022), затем проверить, что каждый виден из терминала. Терминал запускайте заново после каждой установки — иначе PowerShell не увидит новые записи в PATH.
Зачем: 80% провалов сборки — это отсутствующий компилятор или старый CMake, а не баг порта. Дешевле проверить это сейчас, чем читать лог ошибки на 2000 строк.
Как проверить: откройте PowerShell и выполните:
git --version
cmake --version
Ожидаемый вывод — две строки с номерами версий, например:
git version 2.x
cmake version 3.x
Точные цифры зависят от установленных сборок; важно, чтобы обе команды отработали без ошибки. Если PowerShell отвечает:
git : Имя "git" не распознано как имя командлета, функции, исполняемого файла или сценария.
— перезапустите терминал, а если не помогло, переустановите Git с опцией «Git from the command line and also from 3rd-party software».
Отдельно проверьте компилятор: найдите в меню «Пуск» ярлык x64 Native Tools Command Prompt for VS 2022 (не обычный cmd) и в нём выполните:
cl
Успех — строка вида Microsoft (R) C/C++ Optimizing Compiler Version ... и подсказка по использованию. Если ярлыка нет, значит при установке Visual Studio не выбран workload C++ — запустите Visual Studio Installer и добавьте его.
Проверьте место на диске:
Get-PSDrive C | Select-Object @{n='FreeGB';e={[math]::Round($_.Free/1GB,1)}}
Вывод: таблица со значением FreeGB. Меньше 30 — освободите место, иначе сборка упадёт на середине линковки.
| Проверка | Команда | Признак успеха |
|---|---|---|
| Git | `git --version` | строка с версией |
| CMake | `cmake --version` | строка с версией |
| Компилятор | `cl` в x64 Native Tools | баннер MSVC |
| Место | `Get-PSDrive C` | FreeGB ≥ 30 |

Что сделать: склонировать репозиторий порта вместе со всеми подмодулями, сгенерировать проект сборки и скомпилировать Release-версию.
Зачем: флаг --recursive подтягивает сторонние библиотеки (SDL, glm и т.п.), без которых сборка гарантированно упрётся в «unresolved external symbol». Суффикс Release отключает отладочные проверки и даёт рабочий .exe вместо медленного Debug-варианта.
Как проверить: выполните в PowerShell, заменив плейсхолдеры:
cd $HOME\source
git clone --recursive <URL-репозитория-порта> tlou-pc
cd tlou-pc
<URL-репозитория-порта> — адрес проекта на GitHub/GitLab, который вы нашли. URL намеренно не подставлен: адрес нужно взять из официального README проекта (сверьтесь с документацией). Если разработчики рекомендуют конкретную ветку (stable, release), клонируйте её: git clone --recursive -b <ветка> <URL> tlou-pc.
Затем генерация и сборка:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel
Разбор флагов: -S . — где лежат исходники, -B build — куда писать файлы сборки, -G — какой генератор использовать, -A x64 — 64-битная платформа, --parallel — собирать во все ядра.
Успешная генерация заканчивается строкой:
-- Configuring done
-- Generating done
-- Build files have been written to: .../tlou-pc/build
Успешная сборка — строкой Build succeeded. и счётчиком предупреждений. Проверьте, что бинарник появился:
Get-ChildItem build -Recurse -Filter *.exe | Select-Object FullName, Length
Пример: вы видите строку C:\Users\user\source\tlou-pc\build\bin\Release\tlou.exe с ненулевым Length. Путь bin\Release зависит от настроек проекта — если файл в другом каталоге, ориентируйтесь на README (сверьтесь с документацией).
Почему это работает: CMake не собирает игру сам, он генерирует .sln/.vcxproj под ваш Visual Studio, а cmake --build уже вызывает MSVC.

Что сделать: указать порту путь к ассетам, извлечённым из вашей копии игры, и запустить .exe. Точное имя файла настроек и флага запуска у каждого проекта своё (сверьтесь с документацией); ниже — типовой вариант, который встречается у нативных портов.
Зачем: .exe содержит код, но не модели и текстуры. Без корректного пути к данным окно игры либо не появится, либо закроется через 1–2 секунды.
Как проверить: сложите ассеты в отдельный каталог, например C:\Games\TLOU\assets, и запустите:
.\build\bin\Release\tlou.exe --game-data "C:\Games\TLOU\assets"
Если проект читает config.ini рядом с .exe, создайте его:
[General]
GameDataPath = C:\Games\TLOU\assets
Fullscreen = true
VSync = true
Проверка результата — по экрану, а не по логу:
Быстрая проверка лога, если окно не появилось:
Get-Content .\build\bin\Release\*.log -Tail 40
Ищите строки с Failed to open, not found, invalid path — они прямо называют файл, который не найден. Управление: у большинства портов это XInput-геймпад; поддержку клавиатуры и мыши проверяйте в README (сверьтесь с документацией).
Проблема. Сборка падает на этапе линковки.
error LNK2019: unresolved external symbol "..." referenced in function "..."--recursive, и CMake нашёл заголовочные файлы, но не сами библиотеки.git submodule update --init --recursive
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel
Проблема. CMake не находит зависимость.
CMake Error at CMakeLists.txt:... (find_package): Could NOT find <PackageName> (missing: <PackageName>_DIR)cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=<путь-к-vcpkg>\scripts\buildsystems\vcpkg.cmake
Точный список зависимостей — в README проекта (сверьтесь с документацией).
Проблема. Игра запускается и сразу закрывается.
Failed to open file: C:\Games\TLOU\assets\... (имя файла зависит от проекта)--game-data ещё раз:Test-Path "C:\Games\TLOU\assets"
Команда должна вернуть True.
Вы прошли три этапа: проверили toolchain, собрали Release-бинарник из исходников с подмодулями и подключили легально полученные игровые данные. Дальше стоит зафиксировать рабочую конфигурацию (версию коммита и путь к ассетам) в заметке и проверить раздел README с известными ограничениями порта — там обычно перечислены неработающие эффекты и падения на конкретных уровнях. Если интересуют порты не только под Windows, посмотрите разбор запуска Metal Gear Solid 2 HD и других портов NVIDIA SHIELD на Android — там та же логика «данные отдельно от бинарника».
Нужен ли эмулятор PS4 или PS3, чтобы это запустить?
Нет. Нативный порт собирается как обычное 64-битное приложение Windows и запускает игру напрямую, без эмулятора и без образа консоли.
Законно ли собирать такой порт?
Код проекта распространяется отдельно от ассетов, а файлы игры вы берёте из собственной легально приобретённой копии. Конкретные условия смотрите в лицензии репозитория и в законодательстве вашей страны — это не юридическая консультация.
Почему сборка занимает так много времени?
Компилируется не только сама игра, но и все подмодули в Release-режиме. Ускорить можно флагом --parallel и закрытыми тяжёлыми приложениями; время сильно зависит от числа ядер CPU (сверьтесь с документацией проекта насчёт рекомендуемой конфигурации).
Можно ли обойтись без Visual Studio и собрать через MinGW?
Только если это прямо указано в README. По умолчанию проекты ориентированы на MSVC, и при генераторе MinGW вы получите ошибки линковки или отсутствующих пакетов — сверьтесь с документацией проекта.