dbi/README.md
rashevskyv 92a3b05b70 519
2023-03-14 09:32:49 +02:00

802 lines
85 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DBI by **[duckbill](https://github.com/duckbill007)**
![Github latest downloads](https://img.shields.io/github/downloads/rashevskyv/dbi/total.svg)
[ENGLISH GUIDE](README_ENG.md)
Инструкция базируется на [работе Брикачу](https://4pda.to/forum/index.php?showtopic=939714&st=1100#Spoil-86288632-5)
Ультимативное решение для установки `NSP`, `NSZ`, `XCI` и `XCZ` и работы с Nintendo Switch. Поддержка установки по MTP, USB, http (с вашего личного сервера), внешнего USB и многое другое. Поддержка просмотра картинок в формате `jpg`, `png` и `psd`. Поддержка работы с архивами `zip` и `rar`, а так же с контейнерами `cbr`/`cbz`. Поддержка текстовых файлов, просмотр в режиме обычного текста и в режиме hex-просмотра. Может быть использован в качестве файлового менеджера (копирование, перемещение, удаление файлов и папок, создание папок). Работа с сохранениями (в том числе резервное копирование и восстановление) и многое другое.
## Содержание:
1. [Установка](#установка)
1. [Использование](#использование)
1. [Интерфейс](#интерфейс)
1. [Управление](#управление)
1. [Browse SD Card / Просмотр MicroSD карты и Browse USB0 Drive / Просмотр USB0 диска](#browse-sd-card--просмотр-microsd-карты-и-browse-usb0-drive--просмотр-usb0-диска)
1. [Install title from DBIbackend / Установка через DBIbackend](#install-title-from-dbibackend--установка-через-dbibackend)
1. [Home server / Подключение к серверу](#home-server--подключение-к-серверу)
1. [Browse installed applications / Просмотр установленных игр](#browse-installed-applications--просмотр-установленных-игр)
* [Контекстное меню тайтла](#контекстное-меню-тайтла)
* [Детальное меню игры](#детальное-меню-игры)
* [Content records / Контент](#content-records--контент)
* [Tickets / Тикеты](#tickets--тикеты)
* [Saves / Сохранения](#saves--сохранения)
* [Контекстное меню записи](#контекстное-меню-записи)
1. [Cleanup orphaned files / Очистка потерянных файлов](#cleanup-orphaned-files--очистка-потерянных-файлов)
1. [Browse tickets / Просмотр тикетов](#browse-tickets--просмотр-тикетов)
* [Контекстное меню тикетов](#контекстное-меню-тикетов)
1. [Browse saves / Просмотр сохранений](#browse-saves--просмотр-сохранений)
* [Контекстное меню Installed / Установленные и Uninstalled / Удалённые](#контекстное-меню-installed--установленные-и-uninstalled--удалённые)
* [Контекстное меню Backups / Бекапы](#контекстное-меню-backups--бекапы)
1. [Run MTP responder / Запустить MTP соединение](#run-mtp-responder--запустить-mtp-соединение)
1. [Configuration / Настройки DBI и параметры файла dbi.config](#configuration--настройки-dbi-и-параметры-файла-dbiconfig)
* [General / Общие (`[General]`)](#general--общие-general)
* [Main menu / Главное меню (`[MainMenu]`)](#main-menu--главное-меню-mainmenu)
* [Applications / Установленные игры (`[Applications]`)](#applications--установленные-игры-applications)
* [Install options / Параметры установки (`[Install]`)](#install-options--параметры-установки-install)
* [MTP options / Параметры MTP (`[MTP]`)](#mtp-options--параметры-mtp-mtp)
* [MTP storages / Хранилища MTP (`[MTP Storages]`)](#mtp-storages--хранилища-mtp-mtp-storages)
* [FTP options / Параметры FTP (`[FTP]`)](#mtp-options--параметры-mtp-mtp)
* [Access point / Точка доступа (`[Access point]`)](#access-point--точка-доступа-access-point)
* [Есть в конфиге, но нет в меню](#есть-в-конфиге-но-нет-в-меню)
* [Network sources](#network-sources)
* [Local sources](#local-sources)
* [MTP custom storages](#mtp-custom-storages)
* [Title name override](#title-name-override)
1. [Exit / Выход](#exit--выход)
1. [Уведомления и коды ошибок](#уведомления-и-коды-ошибок)
1. [Уведомления](#уведомления)
1. [Ошибки](#ошибки)
1. [Цветовые кода](#цветовые-коды)
1. [dbi.config](#dbiconfig)
1. [Другие возможности](#другие-возможности)
1. [Благодарности](#благодарности)
## Установка
Поместите `dbi.nro` и `dbi.config` в папку `sdmc:/switch/DBI/` на вашей каре памяти. Запускайте из режима апплета с помощью Homebrew Launcher (через альбомы)
*В режиме апплета программа запускается с синим фоном. В режиме тайла - с чёрным*
## Использование
### Интерфейс
![2021041010520200](https://user-images.githubusercontent.com/18294541/114262830-d7643e00-99ea-11eb-8dbb-c8e0996577e5.jpg)
* **Browse SD Card** / **Просмотр MicroSD карты** — установка `NSP`/`NSZ`/`XCI`/`XCZ`-файлов из карты памяти.
* **Browse USB0 Drive** / **Просмотр USB0 диска** — установка `NSP`/`NSZ`/`XCI`/`XCZ`-файлов с внешнего USB-накопителя в exFAT/FAT32: флешки, жёсткого диска, проч.
* **Install title from DBIbackend** / **Установка через DBIbackend** — установка `NSP`/`NSZ`/`XCI`/`XCZ` из ПК по USB 2.0 и 3.0-проводу, через прилагаемую программу dbibackend. *Горячая клавиша для этой опции*: кнопка **(Y)**.
* **Install title from Gamecard** / **Установка с картриджа** — этот пункт появляется при вставленном в Switch игровом картридже, — для установки игры из имеющегося игрового картриджа в microSD-карту или внутреннюю NAND-память консоли.
* **Home server** / **Подключение к серверу** — начиная с версии v150, есть возможность устанавливать игры по сети (HTTP), через WiFi без провода или LAN-USB-адаптер. Подробнее об этом ниже
* **Browse installed applications** / **Просмотр установленных игр** — просмотр установленных игр, их общее установленное количество, посмотреть потраченное время на игру и количество её запусков, проверить (верифицировать) на ошибки, перенести игровые данные между встроенной памятью, картой памяти и обратно, возможность их выборочного или потокового удаления вместе с прилагаемыми LayeredFS-модами, просмотр наличия у них обновлений и DLC, ручное удаление DLC/обновлений/LaryeredFS (LFS) мода, функция Reset Required version для сброса системной проверки обновления у выбранной игры. *Горячая клавиша для этой опции*: кнопка **(L)**.
* **Cleanup orphaned files** / **Очистка потерянных файлов** — автоматическая чистка ненужных удалённых файлов игр, если они есть
* **Browse tickets** / **Просмотр тикетов** — просмотр и ручное удаление системных тикетов игр.
* **Browse saves** / **Просмотр сохранений** - просмотр и удаление сохранений
* **Run MTP responder** / **Запустить MTP соединение** — включение внутреннего MTP-сервера для присоединения Switch к ПК или к Android-устройству (телефон/планшет/пр., протестированы Pixel 3, Xiaomi Mi A1, Lenovo Tab 4 7" TB-7304X), можно: просматривать и работать с картой памяти (1: External SD Card) и внутренней память консоли, просматривать установленные игры (4: Installed games), сделать бекап игровых сохранений на ПК (7: Saves), при вставленном игровом картридже дампить его (full/trimmed/сертификат) на ПК/Android (9: Gamecard). *Горячая клавиша для этой опции*: кнопка (X).
* **Run FTP server** / **Запустить FTP сервер** - включает FTP-сервер DBI для доступа к файлам microSD через порт 5000 или установку файлов через порт 6000
* **Exit** / **Выход** — выход из программы. *Горячая клавиша для этой опции*: кнопка **(+)**
В самом левом нижнем углу (SD) написано про занятый размер данных на карте/общий размер карты. В правом нижнем углу (NAND) написан занятый размер данных во встроенной памяти Switch/общий встроенной памяти Switch.
Внизу по центру (dbi: XXX) написан номер версии dbi — старайтесь всегда использовать самую последнюю версию программы
### Управление
* **(А)** - выбор, подтверждение
* **(B)** - отмена. **На главном экране** - выход из программы
* **(X)** - выделение файла. **На главном экране** - горячая клавиша для монтирования MTP (пункт меню "[Run MTP responder / Запустить MTP соединение](#run-mtp-responder--запустить-mtp-соединение)")
* **(Y)** - инвертировать выделение, выделить всё, если ничего не выделено. **На главном экране** - установка по USB с помощью dbibackend (пункт меню "[Install title from DBIbackend / Установка через DBIbackend](#install-title-from-dbibackend--установка-через-dbibackend)")
* **(ZL)**, **(ZR)** - быстрое перемещение по меню
* **(L)** **на главном экране** - перейти в меню "[Browse installed applications / Просмотр установленных игр](#browse-installed-applications--просмотр-установленных-игр)"
* **(R)** - изменить порядок отображения файлов/тайтлов
* **(L3)** - запустить игру из списка установленных игр
* **(+)** на правом джойконе - контекстное меню, которое позволяет производить контекстные операции, как-то удаление, сброс требуемой версии прошивки, монтирование по MTP и др.
* **(-)** на левом джойконе при установке приложений отключает/включает экран
### Browse SD Card / Просмотр MicroSD карты и Browse USB0 Drive / Просмотр USB0 диска
Выберите этот пункт, если хотите установить игры/обновления/DLC из уже имеющихся файлов на карте памяти/внешнем USB.
Кнопка **(A)** открывает папку, кнопка **(B)** возвращает назад, после открытия папки с файлами для установки, кнопкой **(X)** можно выделить только необходимые файлы, кнопокй **(Y)** инвертировать выбор. При этом цвет названия выделенных файлов изменится с белого на светло-синий.
После этого нажмите кнопку **(А)** для подтверждения. Возникнет окно с опциями установки:
![2021041011441100](https://user-images.githubusercontent.com/18294541/114264183-18138580-99f2-11eb-8c7b-536b4b831195.jpg)
* **Total transfer size** / **Общий размер передачи** — объём установочных дистрибутивов (файлов `NSP`/`NSZ`/`XCI`/`XCZ`), выбранных и готовых к установке.
* **Total install size** / **Общий размер установки** — объём свободного пространства, которое необходимо для установки выбранных файлов.
* **Install target** / **Место установки** — локация установки данных: **NAND** — внутренняя память консоли Nintendo Switch, **SD** — карта памяти microSD, **AUTO** — опция по-умолчанию для установки всегда на карту памяти microSD, но если на ней будет недостаточно места, данные установятся во внутреннюю память.
* **Delete after install** / **Удалять после установки** — это опция удаления установочных дистрибутивов (файлов `NSP`/`NSZ`/`XCI`/`XCZ`) с карты после их успешной установки; чтобы она работала, с файлов должен быть снят атрибут «Только чтение». По-умолчанию файлы не удаляются. Опция видна только при установке с карты памяти/внешнего USB
* **Turn off screen** / **Выключать экран** — возможность выключить экран на время установки для экономия электроэнергии аккумулятора, сразу после успешной установки экран автоматически включится. Эта опция работает только в портативном режиме.
* Нажмите **Start install** / **Начать установку**, чтобы начать установку. После успешной установки, появится статистика установки и надпись *Installation Complete. Press B to return* / *Установка завершена. Чтобы вернуться нажмите В*.
В программе имеется встроенная автоматическая функция удаления старых апдейтов при установке нового обновления к игре, поэтому за лишнее занимаемое место ими можно не беспокоиться.
Вы можете запускать `.NRO`-файлы кнопкой **(A)**
### Install title from DBIbackend / Установка через DBIbackend
Через "**Install title from DBIbackend** / **Установка через DBIbackend**" очень удобно устанавливать игры, обновления и DLC к ним сразу напрямую по USB-проводу с ПК на Switch, минуя необходимость вынимать карту и тратить двойное время, закачивая дистрибутивы (`NSP`/`NSZ`/`XCI`/`XCZ`-файлы) на карту памяти и устанавливая их оттуда. *Горячая клавиша для вызова этой опции из главного меню*: кнопка **(Y)**.
Для работы сперва нужно скачать на ПК dbibackend (`dbibackend.exe` для Windows или `dbibackend` для всех ОС), запустить его, выбрать игры для установки, нажать **Start server**, затем подключить USB-C кабель к ПК и Switch, выбрать пункт **Install title from DBIbackend** в dbi и установить все необходимые игры.
Для правильной работы dbibackend на Windows, необходимо поставить драйвера "**libusbK (v3.1.0.0)**". Их можно установить через программу [Zadig](https://zadig.akeo.ie/), введя DBI в режим "**Install title from DBIbackend**" и выбрав в программе появившееся устройство.
Выделение файлов, а так же их установка происходит способом идентичным способу из пункта **Browse SD Card/Browse USB0 Drive**
Для быстрой отправки файлов или папок с играми на установку, нажмите на них правой клавишей мыши, выберите `Отправить > dbibackend`, установочные файлы сразу помещаются в очередь dbibackend. Для того, чтобы это настроить в Windows, нажмите `Win+R`, введите `shell:sendto`, положите в папку ярлык для `dbibackend.exe`
Существуют альтернативные клиенты для работы с DBIbackend, например [headless-реализация](https://github.com/cyb3rwarden/dbibackend/blob/0885ef67edf28cbca30fb2c193ad7ab9a62786f7/dbibackend/dbibackend.py), [NSW-DBI 2.0.0 на nodegui](https://4pda.to/forum/index.php?showtopic=939714&st=6080#entry100701109) (требуется установка драйвера libusb для Linux или WinUSB (libusb) для Windows через Zadig).
Вы можете передавать команды скрипту путем запуска его из командной строки с последующим указанием пути к необходимой для установки игры или игр. Например:
```
python ~/dbi/dbibackend ~/Switch/File1.nsp ~/Switch/File2.nsp ~/Switch/File3.nsp
```
```
dbibackend.exe "e:\Switch\Games\File1.nsp" "e:\Switch\Games\File2.nsp" "e:\Switch\Games\File3.nsp"
```
#### Зависимости, которые могут потребоваться для работы в MacOS или Linux
```bash
brew install python-tk
pip3 install pyusb
```
### Home server / Подключение к серверу
Пункт "**Home server** / **Подключение к серверу**" появляется при наличии настроенного раздела **Network install sources** в `dbi.config` (подробнее про этот файл ниже). Причём название этого пункта будет меняться в зависимости от названия указанного в конфигурационном файле
Для установки игр по сети, отредактируйте файл **[dbi.config](#dbiconfig)**, находящийся в папке `sdmc:/switch/DBI/`, согласно примеру
```
; Network install sources
[Network sources]
; <display name>=<type>|<URL>
Home server=ApacheHTTP|http://192.168.1.47/Nintendo/Switch/
```
Установите на ПК любой другой HTTP-сервер c включённым DirectoryListing: Apache, Mongoose, Python SimpleHTTP, sheret, rclone и т. д.,
Пример для nginx на Windows:
отредактируйте файл `/nginx/conf/nginx.conf`, прописав в `location` адрес вашего Switch, вместо указанного в примере `127.0.0.1` (или всю свою подсеть вида 192.168.1.1/24 или 192.168.0.0/16); его можно узнать на Switch в **Системных настройках** > **Интернет**:
```
location/{
root html;
index index.html index.htm;
}
location /Nintendo/Switch/ {
allow 127.0.0.1;
deny all;
autoindex on;
}
```
Сохраните конфиг, запустите `nginx.exe`, разрешив программе доступ в сеть, затем скопируйте нужную игру в локальную папку /nginx/html/Nintendo/Switch/ на ПК, а на Switch выберите строку «Home server».
Получаем обычный интерфейс инсталляции файлов, и можно начать устанавливать все игры по сети, после чего, при желании веб-сервер можно остановить через nginx -s stop.
В качестве адреса сервера, можно использовать и доменное имя в интернете, например, своего удалённого VPS — лучше с HTTP Basic-аутентификацией вида http://user:password@host:port/Nintendo/Switch/
Например:
```
ApacheHTTP|Network repo|http://127.0.0.1/Nintendo/Switch/
ApacheHTTP|WWW VPS repo|http://www.myveryownswitchvpsdomain.su/Nintendo/Switch/
```
Сгенерировать файл htpasswd, положить в `/nginx/conf/`, затем в `nginx.conf` изменить в блоке (пример):
```
location /Nintendo/Switch/ {
satisfy all;
allow 127.0.0.1;
deny all;
auth_basic "Password Protected Area";
auth_basic_user_file htpasswd;
autoindex on;
}
```
Логин «switch», пароль «pwd»:
Файл htpasswd:
```
switch:{SHA}N/omUzCtg+qoee+x4ttjgIls9jk=
```
### Browse installed applications / Просмотр установленных игр
В **Browse installed applications** можно посмотреть список установленных программ, обновлений, DLC к ним, по отдельности их занимаемый объём и версию, порядковую и в HEX-формате, их titleID, посмотреть общее время игры и количество запусков, наличие установленного LayeredFS-мода к игре (для Atmosphére).
*Горячая клавиша для вызова этой опции из главного меню*: кнопка **(L)**:
Сверху в центре написано общее количество установленных игр и тип сортировки
![2021062719353200](https://user-images.githubusercontent.com/18294541/123554546-32efcd80-d789-11eb-8d3f-3124448624e0.jpg)
В квадратных скобках перед названием игры написана базовая информация о месте установки, составе и наличии мода игры. Отображается только то, что установлено. То есть, если буквы b в квадратных скобках нет, значит у игры не установлена сама базовая часть (в таком случае строка будет окрашена красным)
* **N/S/M/G** - NAND/SD/Mixed/Gamecart - означает место, где установлена игра. В случае, если части игры находятся на разных носителях, отображается Mixed, а если на картридже - Gamecart
* **b** - BASE - сама игра
* **u** - Update - обновление игры
* **d** - DLC - DLC игры
* **l** - LayeredFS mod - наличие модификаций, читов или перевода, которые находятся в папке `sdmc:/atmosphere/contents/%titleID%/`
Нажав **(L3)** можно запустить игру прямо отсюда
**Обратите внимание!** Если игра выделена **красным**, значит не установлена её базовая часть, а установлено только обновление или DLC
#### Контекстное меню тайтла
![2021062719354100](https://user-images.githubusercontent.com/18294541/123554557-3b480880-d789-11eb-9235-d547f2c588bd.jpg)
Отображается при нажатии на **(+)** на выбранных тайтлах (или тайтле)
В верху контекстного окна отображается количество выбранных тайтлов и их размер
* **Delete title** / **Удалить** - удалить выбранные тайтлы
* **Move title to MicroSD/NAND** / **Переместить в NAND/MicroSD** - переместить выбранные тайтлы в NAND или на карту памяти, в зависимости от того, где тайтл сейчас находится. Если части тайтла находятся и там и там, будут отображены оба варианта
* **Reset required version** / **Сбросить требуемую версию** - сбросить проверку требуемой для запуска тайтла версии системы (должен быть включён дебаг в Atmosphere)
* **Check integrity** / **Проверить целостность** - проверка целостности данных выбранных тайтлов
* **Expose contents via MTP** / **Открыть контент по MTP** - смонтировать содержимое выбранных тайтлов по MTP
* **Dump to MicroSD** / **Сдампить на MicroSD** - сдампить весь доступный контент (игру, DLC, обновление) на MicroSD по пути, указанному в конфиге (по-умолчанию `switch/DBI/dumps`)
* **Content info** / **Информация о контенте** - показать дополнительную информацию о контенте (версия SDK, требуемое поколение ключей, ID, информацию о патчах и многое другое)
Если нажать на тайтле кнопку **(A)**, то откроется **детальное меню игры**
### Детальное меню игры
**Детальное меню игры** открывается, если нажать на тайтле кнопку **(A)**, находясь в меню просмотра установленных игр (**Browse installed applications** / **Просмотр установленных игр**)
![2021062719353600](https://user-images.githubusercontent.com/18294541/123554561-400cbc80-d789-11eb-8d81-e3403f33b365.jpg)
Отображается иконка игры, **TitleID**, название (**Name** / **Имя**), автор (**Author** / **Автор**), версия (**Version** / **Версия**), поддерживаемые языки (**Language** / **Языки**) и наличие LFS-мода (**LFS-mod** / **LFS-мод.**)
Так же здесь можно узнать количество времени, проведённого в игре (**Total play time** / **Общее время игры**), сколько раз игра была запущена (**Total launches** / **Общее число запусков**), сколько она весит (в целом (**Total occupied space** / **Общее занимаемое место**), а так же сколько места занимает в NAND (**Space in NAND** / **Место в NAND**) и на SD (**Space on MicroSD** / **Место на MicroSD**)), размер сохранений (**Total saves size** / ****) и какой язык у игры активен (**Forced Language** / **Форсированный язык**)
Ниже можно увидеть три вкладки, между которыми можно переключаться кнопками **(L)** и **(R)**
* **Content records** / **Контент**
* **Tickets** / **Тикеты**
* **Saves** / **Сохранения**
#### Content records / Контент
![2021062719354800](https://user-images.githubusercontent.com/18294541/123554565-41d68000-d789-11eb-9c59-621275895075.jpg)
Информация показана в следующем виде:
[Location] Type | version [version number] | Size
**Location** - **NAND** или **SD**, в зависимости от места, в которое установлен контент
**Type** - **Application** для базовой игры, **Update** для обновления, **Addon** для DLC, причем рядом с последним будет указан номер самого DLC
**version [version number]** - версия контента в dec и [hex] (например, 786432 это 0.12.0.0)
**Size** - занимаемое место
При нажатии на контенте кнопкой **(A)**, можно посмотреть его содержимое. Содержимое можно скопировать, выбрав соответствующий пункт в контекстном меню (напоминаю, открывается по нажатию кнопки **(+)**). Содержимое открывается в режиме "только для чтения".
При нажатии кнопки (+) на выбранном контенте, можно попасть в контекстное меню:
* **Delete record** / **Удалить** - удалить выбранную запись
* **Move records to MicroSD/NAND** / **Переместить в MicroSD/NAND** - переместить выбранную запись в NAND или на карту памяти, в зависимости от того, где она сейчас находится. Если части тайтла находятся и там и там, будут отображены оба варианта
* **Reset required version** / **Сбросить требуемую версию** - сбросить проверку требуемой для запуска тайтла версии системы (должен быть включен дебаг в Atmosphere). Не поможет, если игра собрана на новой версии SDK
* **Force language** / **Форсировать язык** - позволяет принудительно запускать игру с выбранным языком. По-умолчанию игра запускается с тем же языком, что выбран в системе, ежели такового в игре нет, то в зависимости от региона консоли. Выбранный язык будет отображаться рядом с иконкой игры в поле **Forced Language**
* **Check integrity** / **Проверить целостность** - проверка целостности данных выбранных тайтлов
* **Expose contents via MTP** / **Открыть контент по MTP** - смонтировать содержимое выбранных тайтлов по MTP
* **Dump to MicroSD** / **Сдампить на MicroSD** - сдампить весь доступный контент (игру, DLC, обновление) на MicroSD по пути, указанному в конфиге (по-умолчанию `switch/DBI/dumps`)
* **Content info** / **Информация о контенте** - показать дополнительную информацию о контенте (версия SDK, требуемое поколение ключей, ID, информацию о патчах и многое другое)
#### Tickets / Тикеты
**Ticket (или encrypted title key)** — это зашифрованная уникальная информация о правах запуска на контент игры, которая устанавливается в систему при инсталляции каждой игры (**000** в конце titleID)/обновления (**800** в конце titleID)/каждого DLC.
Отображаются установленные для контента тикеты:
* **Personalized ticket** / **Персонализированный тикет (личный)** - тикет, который дается при установке игры из ешопа, он персонифицированный, то есть уникальный для каждой учетной записи
* **Common ticket** / **Общий тикет** - тикет общего типа, есть у обновлений, так же используется как костыль в пиратских играх
Базы игр на серверах Nintendo шифрованы одним и тем же ключом, но этот ключ шифруется собственным ключом, уникальным для каждого купившего игру (этот ключ генерируется на самой приставке), поэтому получить из Personalized-тикета ключ для дешифровки игры можно только на той приставке, для которой он создан.
То есть у всех купивших Personalized-тикеты разные, но содержат один и тот же ключ дешифровки игры.
А в Common-тикетах нет шифрования, только подпись.
При нажатии кнопки (+) на выбранном контенте, можно попасть в контекстное меню, где можете удалить выбранные тикеты.
Иногда, если возникают специфическая ошибка, и вы точно знаете и уверены, что вы делаете, его можно удалить у конкретной игры и её обновления/DLC.
Во всех остальных случаях лучше тут ничего не трогать, во избежание ошибок запуска игр.
#### Saves / Сохранения
Просмотр и удаление сохранений. Если сохранения нет, его можно создать через контекстное меню (кнопка (+)) для выбранного аккаунта. Если оно есть, то:
* **Backup** / **Сделать бекап** - сделать резервную копию сохранения. По-умолчанию она будет расположена в папке `switch/DBI/saves`
* **Restore** / **Восстановить бекап** - восстановить резервную копию сохранений
* **Save info...** / **Информация о сохранении...** - подробная информация о сохранении, например, тип, размер, имя аккаунта и т.п.
* **Increase save size** / **Увеличить размер** - Увеличивает место, выделенное под сохранение на заданное значение
* **Delete** / **Удалить** - удалить сохранение
### Cleanup orphaned files / Очистка потерянных файлов
**Cleanup orphaned files** автоматически чистит ненужные файлы игр, файлы от прерванных установок игр, скачанное (официально) обновление OFW прошивки и все неиспользуемые тикеты игр, если они были найдены.
### Browse tickets / Просмотр тикетов
Просмотр и удаление тикетов игр. **Ticket (или encrypted title key)** — это специальная зашифрованная уникальная информация о правах запуска на контент игры, которая устанавливается в систему при инсталляции каждой игры (**000** в конце titleID)/обновления (**800** в конце titleID)/каждого DLC.
* **(+)** означает наличие установленной игры
* **[c]** (**Personalized ticket** / **Персонализированный тикет (личный)**) - тикет, который дается при установке игры из ешопа, он персонифицированный, то есть зашифрован уникальным ключем вашей консоли
* **[p]** (**Common ticket** / **Общий тикет**) - тикет общего типа, есть у обновлений, так же используется как костыль в пиратских играх
Базы игр на серверах Nintendo шифрованы одним и тем же ключом, но этот ключ шифруется собственным ключом, уникальным для каждого купившего игру (этот ключ генерируется на самой приставке), поэтому получить из Personalized-тикета ключ для дешифровки игры можно только на той приставке, для которой он создан.
То есть у всех купивших Personalized-тикеты разные, но содержат один и тот же ключ дешифровки игры.
А в Common-тикетах нет шифрования, только подпись.
Иногда, если возникают специфическая ошибка, и вы точно знаете и уверены, что вы делаете, его можно удалить у конкретной игры и её обновления/DLC.
Во всех остальных случаях лучше тут ничего не трогать, во избежание ошибок запуска игр.
#### Контекстное меню тикетов
Отображается при нажатии на **(+)** на выбранных тикетах
В верху контекстного окна отображается количество выбранных тикетов
* **Delete tickets** / **Удалить** - удалить выбранные тикеты
* **Select same game** / **Выбрать ту же игру**- выделить все тикеты, относящиеся к выделенной игре
### Browse saves / Просмотр сохранений
Просмотр и удаление сохранений.
В общем виде сохранения показываются так:
`[Account] Game-Name Backup-date Size`
* **Account** - показывает имя аккаунта для которого был создан сейв, если тип сейва Account, если тип сейва другойб показывает его тип
* **Game-Name** - показывает название игры для которой был создан сейв
* **Backup-date** - показывает дату создания бекапа, отображается только во вкладке Backup
* **Size** - размер сохранения или бекапа
Ниже можно увидеть три вкладки, между которыми можно переключаться кнопками **(L)** и **(R)**
* **Installed** / **Установленные** - показывает сохранения для всех установленных игр
* **Uninstalled** / **Удалённые** - показывает сохранения для всех не установленных игр
* **Backups** / **Бекапы** - показывает созданные бекапы
#### Контекстное меню Installed / Установленные и Uninstalled / Удалённые
Отображается при нажатии на **(+)** на выбранных сохранениях
* **Backup** / **Сделать бекап** - сделать бекап выбранных сохранений
* **Open** / **Открыть** - открыть сохранение
* **Save info...** / **Информация...** - информация о сохранении (Id, тип, размер, время создания и прочее)
* **Delete** / **Удалить** - удалить выбранные сохранения
* **Select same app** / **Выбрать ту же игру** - выделить все сохранения, относящиеся к выделенной игре
* **Browse app(s)** / **Просмотреть игры** - перейти на [карточку выбранных игр](#content-records--контент). Переключаться между карточками можно кнопками **(ZL)**/**(ZR)**. Только во вкладке **Installed** / **Установленные**
#### Контекстное меню Backups / Бекапы
Отображается при нажатии на **(+)** на выбранных сохранениях
* **Validate saves** / **Проверка сохранений** - проверить целостность сохранений
* **Restore** / **Восстановить бекап** - восстановить бекап выбранных сохранений
* **Open** / **Открыть** - открыть сохранение
* **Delete** / **Удалить** - удалить выбранные сохранения
* **Browse app(s)** / **Просмотреть игры** - перейти на [карточку выбранных игр](#content-records--контент). Переключаться между карточками можно кнопками **(ZL)**/**(ZR)**
* **Select same user** / **Выбрать того же пользователя** - выделить все сохранения, относящиеся к определенному пользователю
Если в списке на одну игру, одного пользователя выбрано несколько бекапов, то восстановится только самый свежий.
### Run MTP responder / Запустить MTP соединение
**Run MTP responder** / **Запустить MTP соединение** включает встроенный в DBI MTP-сервер для обмена данными с ПК либо к Android-устройству по USB-C OTG (телефон/планшет/прочие устройства). *Горячая клавиша для вызова этой опции из главного меню*: кнопка **(X)** (ей же выходить из MTP). После подключения USB-провода к ПК и запуска MTP-сервера в dbi, на ПК появится следующее окно:
![изображение](https://user-images.githubusercontent.com/18294541/114265006-054f7f80-99f7-11eb-86c9-1a20d588e616.png)
Где:
1: **External SD Card**, для просмотра, копирования и удаления файлов и папок c/на ПК и с/на карту памяти microSD. В случае, если размер файла превышает 4Гб, DBI автоматически разобьёт его на фрагменты специальным образом, чтобы свитч видел такой файл как цельный
2: **NAND User**, просмотр, копирование файлов и папок на ПК с внутренней память Switch, в его системный раздел USER (раздел доступен только для чтения).
3: **NAND System**, просмотр, копирование файлов и папок на ПК с внутренней памяти Switch, в его системный раздел SYSTEM (раздел доступен только для чтения).
4: **Installed games**, для просмотра установленных игр.
В **Installed games** отображаются все игры как в NAND, внутренней памяти Switch, так и установленные на карту памяти, все вместе. Чтобы сделать дамп (дистрибутив) установленный игры себе на ПК в формате .NSP, просто скопируйте папку с названием игры из **Installed games** на свой ПК, при этом на базе вашего personalized-тикета генерируется общий common-тикет с полностью очищенной личной информацией. Вы получите дамп этой игры в виде раздельных файлов - отдельно саму игру, отдельно обновление и DLC. Если для игры были установлены читы или моды, они будут находится в папке `Mods & Cheats`. Так же можно получить скомбинированный дамп, в котором в один файл будет склеяны сама игры, все её DLC и обновление. Такой файл лежит прямо в корне раздела **Installed games**.
Здесь так же хранится сгенерированный dbi `InstalledApplications.csv`, с таблицей списка установленных игр, их TitleID и текущей версии.
5: **MicroSD install**
Скопируйте в эту папку ваши **NSP**/**NSZ**/**XCI** или **XCZ**. По окончанию копирования игра будет установлена на **карту памяти** вашей приставки. При установке NSZ-файлов учитывайте, что их фактический размер может сильно отличаться от размера после установки, так что если при наличии свободных 2Гб на карте памяти у вас, например, не хватает места для установки NSZ размером, скажем, в 1Гб, не удивляйтесь, поскольку контейнер NSZ - сжатый.
6: **NAND install**: Скопируйте в эту папку ваши **NSP**/**NSZ**/**XCI** или **XCZ**. По окончанию копирования игра будет установлена во **внутреннюю память** вашей приставки. При установке NSZ-файлов учитывайте, что их фактический размер может сильно отличаться от размера после установки, так что если при наличии свободных 2Гб на карте памяти у вас, например, не хватает места для установки NSZ размером, скажем, в 1Гб, не удивляйтесь, поскольку контейнер NSZ - сжатый.
7: **Saves**: Доступ ко всем сохранениям игр — в аккаунтах (Account), системных программ (System), в Background Content Asymmetric synchronized delivery and Transmission (BCAT, пример: ивенты в ACNH), временных (Temporary), кэш (Cache, пример: аддоны в DOOM), системных BCAT (SystemBCAT), — хранящимся во внутренней памяти Switch
В папке **Installed games** — сохранения для имеющихся установленных сейчас игр
**Uninstalled games** — сохранения от удалённых игр, которые раньше запускались. Отсюда можно сделать их бекап, скопировав их на ПК, а также удалить ненужные — для этого откройте папку с именем нужной игры, затем удалите папку с ником вашего аккаунта/Device-сохранения.
Для того, чтобы восстановить сохранения, скопируйте их в соответствующую папку с ПК. DBI не требует предварительного запуска игры для восстановления сохранения, однако это касается только обычных сохранений. BCAT или Cache сохранения требуют предварительного запуска игры перед восстановлением.
8: **Album**: доступ к скриншотам и видеороликам (Альбому), точно так же, как это сделано в OFW 11.0.0 Nintendo.
9: **Gamecard**: при вставленном в Switch игровом картридже появляется возможность скопировать его дамп в .XCI либо trimmed .XCI на ПК, вместе со встроенным в него обновлением, если оно есть, с уже убранным его персональным RSA-сертификатом; кроме того, возможно отдельно экспортировать его сертификат
Также, на дисплее Switch после включения MTP-сервера появится окно с вашим ником учётной записи и его UID, а также количеством игровых сохранений:
![2021041013152900](https://user-images.githubusercontent.com/18294541/114266673-27013480-9a00-11eb-81ba-f1ff1c3c5abb.jpg)
Чтобы выключить MTP-сервер и выйти в главное меню, нажмите кнопку **(X)** или **(B)**.
### Configuration / Настройки DBI и параметры файла dbi.config
Менеджер конфигурации программы, позволяет легко настроить программу без редактирования `dbi.config`.
Ниже будут описаны пункты конфигурации через GUI/ Пункты, которым они соответствуют в `dbi.config` будут указаны в скобках.
**true** в конфиге соответствует **Yes** / **Да** в настройках, **false** - **No** / **Нет**
#### General / Общие (`[General]`)
* **Use external USB drives** / **Использовать внешние USB** (`UseLibUsbHsFS`) - **true** включает библиотеку [libusbhsfs](https://github.com/DarkMatterCore/libusbhsfs) для работы с внешними USB-накопителями через USB-OTG на Switch, **false** отключает её.
* **Direct exit to homescreen** / **Выход на рабочий стол** (`ExitToHomeScreen`) - при **false** выход из dbi происходит в hbmenu, при **true** на рабочий стол Switch.
* **Log events & operations** / **Журналирование действий** (`LogEvents`) - сохранять или нет логи для событий "*Install*", "*Check integrity*" and "*Cleanup*"
* **Highlight update files** / **Подсвечивать файлы обновлений** (`HighlightUpdates`) - подсвечивать или нет в файловом менеджере обновления для установленных игр
* **Rotate screen upside down** / **Перевернуть экран** (`RotateScreen`) - переворачивает экран на 180 градусов
* **Rotate joycon upside down** / **Перевернуть джойконы** (`RotateJoycon`) - переворачивает управление, чтобы соответствовать перевёрнутому экрану
* **Use under/over clock** / **Использовать разгон** (`OptimizeClockSpeed`) - отключает оптимизацию частоты SoC в простое. Отключено по-умолчанию, поскольку **может привести к лагам на стартовом экране при некорректном выходе из DBI**! Корректный выход - через пункт меню **Exit**.
* **Browse saves in RO mode** / **Сохранения только в RO режиме** (`ROSaveFS`) - просматривать сохранения в режиме только для чтения
* **Show 'Update From Here'** / **Показывать 'Обновить отсюда'** (`ShowUpdateFromHere`) - показывать кнопку "Update all titles" в контекстном меню для автообновления установленных игр из всех (microSD/USB/HTTP/FTP) доступных источников
* **Save backup folder** / **Папка для бекапа сохранений** (`SavesFolder`) - папка для хранения дампов сохранений
* **Logs folder** / **Папка журналов** (`LogsFolder`) - папка для хранения логов
* **Title dumps folder** / **Папка для дампа игр** (`DumpsFolder`) - папка на карте памяти в которую будут дампиться игры
* **Version info URL** / **URL для проверки обновлений** (`VersionsURL`) - может принимать прямую ссылку на файл на уудалённом сервере, либо на файл на карте памяти. Примеры: `https://raw.githubusercontent.com/blawar/titledb/master/versions.txt` или `sdmc:/versions.txt`
* **Show cache warming indicator** / **Показывать прогрев кеша** (`ShowCacheWarmingIndicator`) - показывать уведомление о кешировании информации об установленных программах
* **Put cursor down after selection** / **Смещать курсор после выделения** (`MoveDownAfterX`) - сдвигать или нет курсор после отмечания игры кнопкой **(X)**
* **Screen idle time in seconds** / **Время гашения экрана в секундах** (`ScreenIdleTimeout`) - таймаут гашения дисплея
**Есть в конфиге, но нет в меню:**
* **AppSorting** - опции для сортировки списка приложений
* **SaveSorting** - опции для сортировки сохранений
#### Main menu / Главное меню (`[MainMenu]`)
Настройки пунктов меню, которые будут отображаться в главном меню DBI. **Yes** / **Да** в настройках, соответствует **true** в конфиге, **No** / **Нет** - **false**
* **Browse SD Card** / **Просмотр MicroSD карты** (`BrowseSD`) - пункт "[Browse SD Card / Просмотр MicroSD карты](#browse-sd-card--просмотр-microsd-карты-и-browse-usb0-drive--просмотр-usb0-диска)", для установки игр с Sd карты
* **Browse SYSTEM** / **Просмотр раздела SYSTEM** (`BrowseSystem`) - возможность просматривать и копировать файлы из раздела SYSTEM
* **Browse USER** / **Просмотр раздела USER** (`BrowseUser`) - возможность просматривать и копировать файлы из раздела USER
* **Browse USB** / **Просмотр USB носителей** (`USBHost`) - пункт "**Browse USB0 Drive / Просмотр USB0 диска**, для установки игр с внешнего USB
* **Install from USB** / **Установка через DBIbackend** (`BackendInstall`) - пункт "[Install title from DBIbackend / Установка через DBIbackend](#install-title-from-dbibackend--установка-через-dbibackend)"
* **Install from Gamecard** / **Установка с картриджа** (`GameCard`) - пункт "**Install title from Gamecard** / **Установка с картриджа**", для установки содержимого картриджа в память консоли
* **Browse network** / **Просмотр сети** (`Network`) - пункт "**Home server** / **Подключение к серверу...**", для установки игр с домашнего веб-сервера
* **Browse SD shortcuts** / **Закладки на SD** (`Local`) - показывать или нет ссылки на папки из раздела [Local sources](#local-sources)
* **Browse applications** / **Просмотр установленных игр** (`BrowseApps`) - пункт "[Browse installed applications](#browse-installed-applications)", для управления установленными приложениями
* **Cleanup orphaned files** / **Очистка потерянных файлов** (`Cleanup`) - пункт "[Cleanup orphaned files / Очистка потерянных файлов](#cleanup-orphaned-files--очистка-потерянных-файлов)", для очистки "осиротевших" файлов с карты памяти
* **Check title updates** / **Проверка обновлений игр** (`UpdateCheck`) - пункт "**Check for title updates** / **Проверка обновлений игр**", для проверки обновлений и DLC для установленных игр
* **Browse tickets** / **Просмотр тикетов** (`Tickets`) - пункт "[Browse tickets / Просмотр тикетов](#browse-tickets--просмотр-тикетов)", для управления тикетами
* **Browse saves** / **Просмотр сохранений** (`Saves`) - [Browse saves / Просмотр сохранений](#browse-saves--просмотр-сохранений)
* **Run MTP responder** / **Запустить МТР соединение** (`MTP`) - пункт "[Run MTP responder / Запустить MTP соединение](#run-mtp-responder--запустить-mtp-соединение)", для запуска MTP
* **Run FTP server** / **Запустить FTP сервер** (`FTP`) - пункт "**Run FTP server** / **Запустить FTP сервер**", для запуска FTP
#### Applications / Установленные игры (`[Applications]`)
* **Show LFS folder size (slow)** / **Показывать размер LFS (долго)** (`CalculateLFSSize`) - включает или отключает подсчёт размера установленных LFS-модов. Если включено, может повлиять на скорость открытия меню "*Browse installed applications*"
#### Install options / Параметры установки (`[Install]`)
* **Check hash during install** / **Проверять хэш при установке** (`CheckHash`) - при **true** проверяются хеши `.nca`-файлов при установке игр на Switch, при **false** - нет
* **Chunked HTTP/FTP transfer** / **Блочная передача по HTTP/FTP** (`ChunkedTransfer`) - использование чанковую передачу данных по HTTP
#### MTP options / Параметры MTP (`[MTP]`)
* **Show combined NSP** / **Показывать объединённый NSP** (`ShowCombinedNSPInInstalledGames`) - **false** выключает показ комбинированных (multi-title .NSP-file) тайтлов.
* **Show 'Mods & Cheats' folder** / **Показывать папку 'Mods&Cheats'** (`ShowMACInInstalledGames`) - **false** выключает показ виртуальной директории **Mods & cheats** в пункте Installed games в MTP, перенаправляющей по пути `sdmc:/atmosphere/contents/TITLEID/` на карту памяти
* **Use TitleID for 'Mods & Cheats'** / **Использовать для неё TitleID** (`MACasTID`) - отображать папку "Mods & Cheats" в режиме MTP в виде TitleID
* **Turn off screen** / **Выключать экран** (`TurnOffScreen`) - отключать или нет экран консоли при подключении её в режиме MTP
**Есть в конфиге, но нет в меню:**
* **LogAllFiles** — **false** выключает логирование файлов меньше 4Мб при работе с MTP, при **true** логируются все файлы.
#### MTP storages / Хранилища MTP (`[MTP Storages]`)
Показ соответствующих элементов при работе [MTP Responder](#run-mtp-responder--запустить-mtp-соединение) с ПК/Android, по умолчанию все пункты включены для отображения.
**true** - отображать в главном меню, **false** - нет
Названия пунктов соответствуют названиям разделов
* **External SD Card** (`1: External SD Card`)
* **Nand USER** (`2: Nand USER`)
* **Nand SYSTEM** (`3: Nand SYSTEM`)
* **Installed games** (`4: Installed games`)
* **MicroSD install** (`5: MicroSD install`)
* **NAND install** (`6: NAND install`)
* **Saves** (`7: Saves`)
* **Album** (`8: Album`)
* **Gamecard** (`9: Gamecard`)
* **Show custom storages** / **Пользовательские хранилища** (`CustomStorages`) - отображать или спрятать кастомные пункты меню, прописанные в секции **MTP custom storages**
#### FTP options / Параметры FTP (`[FTP]`)
* **Turn off screen** / **Выключать экран** (`TurnOffScreen`) - выключать экран при входе в режим FTP
* **Start local Access point** / **Запускать точку доступа** (`UseAP`) - работа Switch в режиме точки доступа, к которой FTP-клиенты могут подключаться напрямую. Ниже настройки этой точки доступа
#### Access point / Точка доступа (`[Access point]`)
* **SSID** (`SSID`) - название точки доступа
* **Password** / **Пароль** (`Password`) - пароль
* **Use 5 GHz** / **Использовать 5 GHz** (`Use5GHz`) - использовать ли 5 гигагерц. Если выключено, то будет работать в режиме 2.4 Ггц
* **Use hidden SSID** / **Использовать скрытый SSID** (`Hidden`) - скрывать SSID для поиска. То есть подключиться можно будет только введя указанный SSID
#### Есть в конфиге, но нет в меню
##### [Network sources](#home-server--подключение-к-серверу)
Задаются имена и адреса для установки игр по сети (через WiFi/LAN-адаптер)
**NSP Indexer** - адрес для индексации NSP ([подробнее](https://github.com/rashevskyv/dbi/issues/44))
##### **Local sources**
Создание пунктов меню с быстрым доступом к выбранным в конфиге папкам на карте памяти («ярлыки»), например:
`Homebrew Shortcut=sdmc:/switch` создаст в главном меню пункт "**Homebrew Shortcut**", который откроет папку `sdmc:/switch`
##### **MTP custom storages**
Кастомные пункты для MTP-режима для быстрого доступа к папкам на вашей карте памяти. Формат: `<отображаемое_имя папки>=<путь>`, например: `Homebrew=sdmc:/switch`.
В режиме MTP появится папка `Homebrew`, ссылающаяся на папку `switch` на вашей карте памяти
##### **Title name override**
Позволяет изменить имя отображаемого тайтла. Например, если указать `10023901191C000=Naheulbeuk`, то в приложении вместо `The Dungeon of Naheulbeuk: The Amulet of Chaos` будет отображаться просто `Naheulbeuk`
### Exit / Выход
**Exit** / **Выход** — выход из программы в HOS, минуя hbmenu, либо в hbmenu (это настраивается в dbi.config); если dbi был запущен из тайтла/форвардера, программа перезагрузится либо останется на чёрном экране.
## Уведомления и коды ошибок
### УВЕДОМЛЕНИЯ:
Отображаются оранжевым цветом. Это НЕ ошибки!
* **[SIGNATURE: Invalid] / [ПОДПИСЬ: OK]**, **[SIGNATURE: XCI->NSP] / [ПОДПИСЬ: XCI->NSP]**, **[HASH NOT MATCHED TO META] /[ХЕШ НЕ СОВПАДАЕТ]**, **[HASH FIXED IN META] / [ХЕШ ИСПРАВЛЕН]** — это НЕ ОШИБКИ, а уведомления о несовпадении подписи в заголовках, например, при использовании конвертации или редактирования, кастомного NSP, форвардера.
* **HASH MISMATCH** — чаще всего, это НЕ ОШИБКА, игра была сконвертирована из картриджа (тогда всё в порядке), иногда — имеются проблемы с целостностью файла, перекачайте-перехешируйте его, передачей данных по USB-кабелю/порту/в процессе установки между ПК и Switch. Если игра не запускается или запускается с ошибкой, попробуйте переустановить её снова, проверить либо заменить USB-кабель/microSD/сменить USB-порт.
* **[DELTA SKIPPED] / [ДЕЛЬТА ФРАГМЕНТ НЕ НУЖЕН]** — это НЕ ОШИБКА, а уведомление, что ненужные фрагменты в файле обновления были пропущены, если они в нём были, как и было должно.
* **No tickets found» / «Тикеты не найдены** — это НЕ ОШИБКА, на работоспособность игры не влият, но информирование, что игра без тикетов. Она может быть дампом из .XCI-картриджа или переконвертирована в Standard Crypto.
* **Application uses AddonContent titleId** / **Игра использует titleId от дополнения**, **Application uses Update titleId** / **Игра использует titleId от обновления** — это НЕ ОШИБКА, обычно это указывает на homebrew-игру в .NSP, созданную не по стандартам, к примеру, когда в Application-тайтл (основную игру, v0) добавили и AddonContent-флаг (DLC). Если такая игра запускается и работает, тогда всё в порядке.
* **This application base is not stand alone. Make sure you installed update** / **База этой игры не самодостаточна. Не забудьте установить обновление** - при установке новых Sparse Storage игр — это НЕ ОШИБКА, не забудьте, кроме базового файла игры, установить ещё и апдейт к ней перед запуском.
### ОШИБКИ:
* **USB communication failed** / **Ошибка USB обмена** — проверьте/замените USB-кабель и USB-порт на ПК.
* **Cannot parse content meta** / **Невозможно разобрать content meta**:
* **Old firmware** / **УСТАРЕВШАЯ ПРОШИВКА** — ваша прошивка слишком устарела для анализа метафайла. Обновите CFW и системное ПО до последних версий
* **Unexpected error** / **Неожиданная ошибка** — файл поврежден. Проверьте и перекачайте файл.
* **Invalid PFS0 magic!** / **Ошибка PFS0 magic"** — перекачайте установочный файл игры и проверьте его целостность, этот файл повреждён.
* **[INVALID NCA MAGIC]** / **[ОШИБКА NCA MAGIC]** — обновитесь на последнюю версию OFW и CFW, если ошибка сохраняется после этого, перепроверьте целостность установочного файла игры.
* **Installation aborted** / **Установка прервана** — ошибка в передаче данных, перепроверьте и при необходимости замените USB-кабель/USB-порт между Switch и ПК. Также обязательно убедитесь, что у вас установлена самая последняя версия программы, как вот в этом посте.
* **Nothing to install** / **Нечего устанавливать** в окне выборе файлов — переименуйте файл без спецсимволов, иероглифов или кириллицы в имени и пути к нему.
* **Transfer error** / **Ошибка при передаче**, **[TRANSFER CRC ERROR]** / **[CRC ОШИБКА ПРЕДАЧИ]**, **[TRANSFER ABORTED]** / **[ПЕРЕДАЧА ПРЕРВАНА]** — проверить соединение USB-C кабеля и USB-порта, проверить с другими USB-C-кабелями, целостность файла игры и карту памяти на ошибки, при установке через MTP — запустить dbi через любую игру (тайтл) с удерживанием кнопки (R), а не в режиме апплета через альбомы.
* **Error occurred: Invalid argument** — обновите ваш dbi на последнюю версию.
* **SOME CONTENTS ARE MISSING. APPLICATION WILL BE UNUSABLE** / **ЧАСТЬ КОНТЕНТА ОТСУТСТВУЕТ. ИГРА НЕ БУДЕТ РАБОТАТЬ** — битая файловая система карты памяти, или нерабочая/некачественная флешка. Проверьте её в chkdsk и h2testw, если нет ошибок, переформатируйте в FAT32.
* **[NOT ENOUGH SPACE]** / **[НЕДОСТАТОЧНО МЕСТА]**, **[CAN NOT CREATE PLACEHOLDER]** / **[НЕ СОЗДАТЬ ПЛЕЙСХОЛДЕР]** — не хватает места на карте памяти/NAND, освободите его побольше, либо проблема с картой памяти. Проверьте её в chkdsk и h2testw, если нет ошибок, переформатируйте в FAT32.
* **Extra buffers exceeded. Media write speed is too low** / **Закончились дополнительные буферы. Скорость записи на носитель слишком низка**, при установке через MTP — запустить dbi через любую игру (тайтл) с удерживанием кнопки **(R)**; альтернативно — через NSP-форвардер, и использовать более быструю microSD-карту с другим USB-кабелем/портом.
* **No tickets found but they are required** / **Не найдены требуемые тикеты** — некорректный (неполный, без тикета но с titlerights) дамп игры, найдите другой.
* **Invalid personalized ticket** / **Неподерживаемый персонализированный тикет**, в конце установки игры при инсталлировании .tik-тикета — некорректный дамп игры, где вместо common-тикета остался персонализированный с той консоли, на которой была куплена игра; скачайте другой, корректный дамп.
* **No ES sigpatches!** / **Отсутствуют ES сигпатчи!** — не все, либо устаревшие, либо некорректно или не установленые сигпатчи на консоли, установите их самую новейшую версию.
### Цветовые коды:
* Общее
* <span style="color:#ffffff; background-color: black;">WHITE on BLACK BG</span> - файл в фокусе
* <span style="color:#008578; background-color: #000084;">BLUE</span> - выделенный файл (кнопкой **(X)**)
* В меню "**Browse SD Card**"
* <span style="color:#c7c6d6; background-color: #000084;">WHITE</span> - папка
* <span style="color:#80878f; background-color: #000084;">LIGHT GREY</span> - файл
* <span style="color:#414e54; background-color: #000084;">DARK GREY</span> - установленная игра
* <span style="color:#3bce28; background-color: #000084;">GREEN</span> - обновление и/или DLC для уже установленной игры
* В меню "**Browse installed applications**"
* <span style="color:#cebfde; background-color: #000084;">WHITE</span> - установленная игра
* <span style="color:#8e0000; background-color: #000084;">RED</span> - установлен апдейт и/или DLC, без самой игры
* **В логах** при установке:
* <span style="color:#00ff02; background-color: #000084;">GREEN</span> - завершено без ошибок
* <span style="color:#fa7f08; background-color: #000084;">ORANGE</span> - завершено без ошибок, но с предупреждениями, например, о том, что установленный файл - конверт с картриджа, или о том, что в META был исправлен хеш
* <span style="color:#f80100; background-color: #000084;">RED</span> - [ошибка](#ошибки). Файл не был установлен.
* **В логах** после установки:
* <span style="color:#00ff02; background-color: #000084;">GREEN</span> - завершено без ошибок
* <span style="color:#f6ff05; background-color: #000084;">YELLOW</span> - завершено без ошибок, но с предупреждениями
* <span style="color:#f80100; background-color: #000084;">RED</span> - завершено с ошибками
## dbi.config
Файл `dbi.config` отвечает за хранение настроек программы. Он находится рядом с `DBI.nro`.
Рассмотрим его содержимое:
```
; General settings
[General]
; Use libusbhsfs for access to USB mass storage drives connected to switch or dock
UseLibUsbHsFS=true
; Direct exit to homescreen
ExitToHomeScreen=false
; Folder where saves backups are stored
SavesFolder=sdmc:/switch/DBI/saves/
; Log "Install", "Check integrity" and "Cleanup" processes
LogEvents=false
; Folder where logs are stored
LogsFolder=sdmc:/switch/DBI/logs/
; Folder where game dumps are stored
DumpsFolder=sdmc:/switch/DBI/dumps/
; Sorting options for application list
AppSorting=LastPlayed,InstallLocation,Size,Name
; Sorting options for save list
SaveSorting=AppLastPlayed,AppName,UserUid,Size,SaveId
; Highlight files with updates to curently instaled titles in file browsers
HighlightUpdates=true
; Rotate screen upside down
RotateScreen=false
; Rotate joycons
RotateJoycon=false
; Underclock CPU in menues to reduce battery usage
OptimizeClockSpeed=false
; URL with title versions in format <id>|<rightsId>|[version]
VersionsURL=https://raw.githubusercontent.com/blawar/titledb/master/versions.txt
;VersionsURL=sdmc:/versions.txt
;Browse saves FS in Read-only mode
ROSaveFS=true
; Show "Update all items from here..." in context menu of file browsers
ShowUpdateFromHere=false
; Show cache warming spinner
ShowCacheWarmingIndicator=true
; Move cursor down after selection
MoveDownAfterX=true
; Screen idle timeout in seconds
ScreenIdleTimeout=0
; Visibility of main menu items
[MainMenu]
; Browse and install files from MicroSD card
BrowseSD=true
; Browse and copy files from SYSTEM partition
BrowseSystem=false
; Browse and copy files from USER partition
BrowseUser=false
; Browse and install files from USB flash drives and HDD
USBHost=true
; Browse and install files from PC via dbibackend
BackendInstall=true
; Install game from inserted game cartridge
GameCard=true
; Browse and install files from configured network sources
Network=true
; Browse and install files from configured sd card folders
Local=true
; Browse installed applications
BrowseApps=true
; Clean up files left from bad installs/old updates/unused tickets and so on
Cleanup=true
; Check for app updates
UpdateCheck=true
; View where you can view or delete installed tickets
Tickets=false
; View where you can view or delete game saves
Saves=true
; MTP responder
MTP=true
; FTP Server
FTP=true
[Applications]
; Whether check or not LFS mod size
CalculateLFSSize=false
; Install options
[Install]
; Check NCA hash during install
CheckHash=true
; Use chunked HTTP transfer (good in bad environments)
ChunkedTransfer=false
; MTP options
[MTP]
; Log all files, if disabled transfer shows only for files >= 2M
LogAllFiles=false
; Show or not NSP that includes base game, latest update and all DLC in single multi-title file
ShowCombinedNSP=true
; Show or not virtual "Mods & cheats" folder that redirects to sdmc:/atmosphere/contents/TITLEID
ShowMAC=true
; Use TitleID for "Mods & cheats" folder
MACasTID=true
; Show user defined shortcuts to MircoSD folders as separate storages
CustomStorages=true
; Turn screen off on start MTP mode
TurnOffScreen=false
; FTP options
[FTP]
; Turn screen off on start FTP mode
TurnOffScreen=false
; Start local access point for FTP server
UseAP=false
; Access point options
[Access point]
SSID=
Password=
Use5GHz=true
Hidden=false
;Enable or disable various MTP storages
[MTP Storages]
1: External SD Card=true
2: Nand USER=false
3: Nand SYSTEM=false
4: Installed games=true
5: MicroSD install=true
6: NAND install=true
7: Saves=true
8: Album=true
9: Gamecard=true
; Network install sources
[Network sources]
; <display name>=<type>|<URL>
; NSP Indexer=URLList|http://192.168.1.47/nspindexer/index.php?DBI
; Home server=ApacheHTTP|http://192.168.1.47/Nintendo/Switch/
; Test FTP=FTP|ftp://anonymous:password@192.168.1.24:2121/
; Main menu shortcuts to SD card locations
[Local sources]
; <display name>=<path>
Homebrew=sdmc:/switch
; Contents=sdmc:/atmosphere/contents
; DBILogs=sdmc:/switch/DBI/logs
[MTP custom storages]
; <display name>=<path>
Homebrew=sdmc:/switch/
Screenshots=sdmc:/Nintendo/Album/
; Override for display name
; <UPPERCASED TID>=<Desired name>
[Title name override]
; 010023901191C000=Naheulbeuk
```
Описание каждого пункта в отдельности находятся в разделе [настроек DBI](#configuration--настройки-dbi-и-параметры-файла-dbiconfig)
## Другие возможности
### Монтирование содержимого установленных игр по MTP
Перейдите в **Browse installed applications** / **Просмотр установленных игр** -> Выберите необходимые игры кнопкой **(X)** -> Нажмите **(+)** -> **Expose contend via MTP**
### Бекап и восстановление сохранений по MTP
1. Подключите приставку в режиме MTP по DBI
2. Перейдите в папку **Saves** на вашем ПК
3. Вы можете как скопировать сейвы на ПК, так и восстановить их, просто перетянув в эту папку
### Использование DBI для установки модификаций:
1. Подключите приставку в режиме MTP по DBI
1. Перейдите в **Installed Games**, в папку с названием вашей игры
1. Перейдите в папку **Mods & Cheats**
1. Поместите в папку **Mods & Cheats** ваш мод
1. **Будьте внимательны**, вам нужно класть не саму папку с titleID игры, а её содержимое! Например, вы скачали перевод для игры Cadence of Hyrule, в виде архиве `Cadence of Hyrule.rar`. Внутри этого архива вы видите папку с TitleID игры - `01000B900D8B0000`. Вам нужно распаковать архив, перейти в папку `01000B900D8B0000` и скопировать всё содержимое папки в **Mods & Cheats**! Не саму папку `01000B900D8B0000`, а всё то, что в ней находится! В данном примере, папку `romfs`
### USB 3.0
DBI поддерживает работу по USB 3.0. Если вы используете kefir, то USB 3.0 активно по-умолчанию. В ином случае, нужно активировать эту функцию через конфигурационные файлы Atmosphere, прописав в `atmosphere\config\system_settings.ini`:
```
[usb]
usb30_force_enabled = u8!0x1
```
**Важно** - активация USB 3.0 может повлиять на работу беспроводных соединений Bluetooth и Wi-Fi на частоте 2.4 ГГц. Если у вас возникают проблемы с подключением беспроводных контроллеров или сетей Wi-Fi на частоте 2.4 ГГц, то не следует активировать USB 3.0. Связь через Wi-Fi на частоте 5 ГГц не пострадает.
### Восстановление чистых пользовательских сохранений
Это нерасшифрованные сохранения, которые лежат в папке `USER:/saves`. В случае, если эмунанд поврежден, то эти сохранения можно достать через ПК или Tegra Explorer и восстановить через DBI.
Вы можете положить эти сохранения в папку с бекапами сохранений DBI (`/switch/dbi/saves` по умолчанию) и восстановить через стандартное меню восстановления сейвов (имя пользователя в таком случае будет взято в фигурные скобки `{}`), либо через контекстное меню, вызванное на файле такого сохранения.
## Благодарности
Спасибо [SciresM](https://github.com/SciresM) за [hactool](https://github.com/SciresM/hactool) (лицензия [ISC](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_ISC)) - DBI использует некоторые структуры данных, взятые оттуда.