# Как запустить The Last of Us Remastered нативно на Windows: установка PC-порта без эмулятора

> AI Release · @ai_release1 · https://ai-release.org/guides/kak-zapustit-the-last-of-us-remastered-nativno-na-windo.html

## TL;DR
- Время выполнения: 40–60 минут (зависит от скорости сборки на вашем CPU)
- Уровень сложности: Intermediate
- Понадобится: Windows 10/11 x64, Git for Windows, CMake, Visual Studio 2022 (workload «Разработка классических приложений на C++»), 7-Zip, легально приобретённая копия The Last of Us Remastered, ~30 ГБ свободного места на диске, права администратора

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

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/kak-zapustit-the-last-of-us-remastered-nativno-na-windo-ru-1.jpg?v=1794041862)

- ОС: Windows 10 или Windows 11, обязательно 64-бит. Проверить: `Параметры → Система → О системе → Тип системы`.
- Git for Windows — нужен для клонирования репозитория и подмодулей (submodules — вложенные репозитории с библиотеками).
- CMake — генератор файлов сборки; минимальную версию смотрите в README проекта (**сверьтесь с документацией**).
- Visual Studio 2022 с компонентом «MSVC v143» и Windows SDK — компилятор C++.
- 7-Zip — для распаковки архивов с игровыми данными.
- Свободное место: не менее 30 ГБ (исходники + промежуточные объектные файлы + игровые данные).
- Легально приобретённая копия The Last of Us Remastered. Ассеты из репозитория не поставляются — это стандартная практика нативных портов, чтобы не распространять чужие файлы.
- Права администратора на установку инструментов.

Похожий разбор установки нативного порта (без эмулятора, с проверкой контрольных сумм и путей) есть в гайде [про The Legend of Zelda: Breath of the Wild нативно на Windows](https://ai-release.org/guides/kak-zapustit-the-legend-of-zelda-breath-of-the-wild-nat.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) — логика шагов там та же, что ниже.

## Шаг 1. Проверка окружения и подготовка инструментов
**Что сделать:** установить три инструмента (Git, CMake, Visual Studio 2022), затем проверить, что каждый виден из терминала. Терминал запускайте заново после каждой установки — иначе PowerShell не увидит новые записи в `PATH`.

**Зачем:** 80% провалов сборки — это отсутствующий компилятор или старый CMake, а не баг порта. Дешевле проверить это сейчас, чем читать лог ошибки на 2000 строк.

**Как проверить:** откройте PowerShell и выполните:

```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 и добавьте его.

Проверьте место на диске:

```powershell
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 |

## Шаг 2. Клонирование репозитория и сборка бинарника
![Иллюстрация к разделу «Шаг 2. Клонирование репозитория и сборка бинарника»](https://ai-release.org/guides/img/kak-zapustit-the-last-of-us-remastered-nativno-na-windo-ru-2.jpg?v=1794041870)

**Что сделать:** склонировать репозиторий порта вместе со всеми подмодулями, сгенерировать проект сборки и скомпилировать Release-версию.

**Зачем:** флаг `--recursive` подтягивает сторонние библиотеки (SDL, glm и т.п.), без которых сборка гарантированно упрётся в «unresolved external symbol». Суффикс `Release` отключает отладочные проверки и даёт рабочий .exe вместо медленного Debug-варианта.

**Как проверить:** выполните в PowerShell, заменив плейсхолдеры:

```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`.

Затем генерация и сборка:

```powershell
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.` и счётчиком предупреждений. Проверьте, что бинарник появился:

```powershell
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.

## Шаг 3. Подключение игровых данных и проверка запуска
![Иллюстрация к разделу «Шаг 3. Подключение игровых данных и проверка запуска»](https://ai-release.org/guides/img/kak-zapustit-the-last-of-us-remastered-nativno-na-windo-ru-3.jpg?v=1794041880)

**Что сделать:** указать порту путь к ассетам, извлечённым из вашей копии игры, и запустить .exe. Точное имя файла настроек и флага запуска у каждого проекта своё (**сверьтесь с документацией**); ниже — типовой вариант, который встречается у нативных портов.

**Зачем:** .exe содержит код, но не модели и текстуры. Без корректного пути к данным окно игры либо не появится, либо закроется через 1–2 секунды.

**Как проверить:** сложите ассеты в отдельный каталог, например `C:\Games\TLOU\assets`, и запустите:

```powershell
.\build\bin\Release\tlou.exe --game-data "C:\Games\TLOU\assets"
```

Если проект читает `config.ini` рядом с .exe, создайте его:

```ini
[General]
GameDataPath = C:\Games\TLOU\assets
Fullscreen   = true
VSync        = true
```

Проверка результата — по экрану, а не по логу:

- [ ] Появилось окно игры с логотипом/главным меню
- [ ] В меню настроек отображаются реальные разрешения (например, 1920x1080)
- [ ] Загрузка первого уровня доходит до игрового процесса без вылета
- [ ] В Диспетчере задач процесс висит с ненулевым потреблением CPU/GPU

Быстрая проверка лога, если окно не появилось:

```powershell
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 нашёл заголовочные файлы, но не сами библиотеки.
- Решение: выполните в каталоге проекта и пересоберите:
```powershell
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)`
- Причина: библиотеки нет в системе или указан неверный путь к её конфигу. Часто возникает, если установлен только MinGW, а проект ждёт MSVC.
- Решение: установите пакет через vcpkg (если проект это поддерживает) и передайте toolchain-файл:
```powershell
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` ещё раз:
```powershell
Test-Path "C:\Games\TLOU\assets"
```
Команда должна вернуть `True`.

## Резюме и следующие шаги
Вы прошли три этапа: проверили toolchain, собрали Release-бинарник из исходников с подмодулями и подключили легально полученные игровые данные. Дальше стоит зафиксировать рабочую конфигурацию (версию коммита и путь к ассетам) в заметке и проверить раздел README с известными ограничениями порта — там обычно перечислены неработающие эффекты и падения на конкретных уровнях. Если интересуют порты не только под Windows, посмотрите разбор [запуска Metal Gear Solid 2 HD и других портов NVIDIA SHIELD на Android](https://ai-release.org/guides/kak-zapustit-metal-gear-solid-2-hd-i-drugie-porty-nvidi.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) — там та же логика «данные отдельно от бинарника».

## FAQ
**Нужен ли эмулятор PS4 или PS3, чтобы это запустить?**
Нет. Нативный порт собирается как обычное 64-битное приложение Windows и запускает игру напрямую, без эмулятора и без образа консоли.

**Законно ли собирать такой порт?**
Код проекта распространяется отдельно от ассетов, а файлы игры вы берёте из собственной легально приобретённой копии. Конкретные условия смотрите в лицензии репозитория и в законодательстве вашей страны — это не юридическая консультация.

**Почему сборка занимает так много времени?**
Компилируется не только сама игра, но и все подмодули в Release-режиме. Ускорить можно флагом `--parallel` и закрытыми тяжёлыми приложениями; время сильно зависит от числа ядер CPU (**сверьтесь с документацией проекта** насчёт рекомендуемой конфигурации).

**Можно ли обойтись без Visual Studio и собрать через MinGW?**
Только если это прямо указано в README. По умолчанию проекты ориентированы на MSVC, и при генераторе MinGW вы получите ошибки линковки или отсутствующих пакетов — сверьтесь с документацией проекта.
