Инструкция по работе с трофеями Playstation 3
1. Введение.
Система трофеев на приставке Playstation 3 – это дополнительная стимуляция игроков для достижения более сложных целей, чем просто пройти игру. Эта система призвана заставить игрока дольше играть в конкретную игру, больше оттачивать мастерство игры, тратить деньги на платные дополнения к игре и платные сетевые режимы. Выглядит это, как фоновая задача на приставке. При наступлении какого-то условия в игре, фоновое приложение информирует игрока, что он крут, и что он получил тот или иной приз.
Не все, но большинство игр имеет систему трофеев. Таблица трофеев к конкретной игре идёт в запакованном виде вместе с данной игрой на Blu-Ray диске или в установочном файле *.PKG. Находятся упакованные трофеи в
\PS3_GAME\TROPDIR\NPWR00000_00\, где вместо нулей будет уникальный цифровой код для данной таблицы трофеев. Имя файла упакованных трофеев –
TROPHY.TRP. Есть оригинальная программа от Sony, которая позволяет работать с данным форматом файлов - это
Trophy Pack File Utility for Playstation®3 Version 3.12.
У этой программы есть два серьёзных минуса:- - она достаточно старая (от 2011 года) и не открывает трофеи современных игр, например игра God of War: Ascension™ (EU) (BCES01741). Более новую версию данной программы пока не спёрли;
- - она не позволяет сохранять изменения в файле трофеев. Точнее она не переподписывает заново изменённый файл, а значит, этот файл совершенно бесполезен, т.к. работать с ним приставка не будет.
Но всё-таки польза от этой программы есть: она наглядно показывает структуру трофеев. Давайте откроем в ней трофеи от игры Saboteur(BLES00743) и рассмотрим её основные поля:
m1.png
И так, нам сообщают, что в данной игре всего 46 трофеев, которые в сумме принесут нам 990 очков трофейного рейтинга. Также мы видим, что данная игра имеет самый крутой трофей, т.е. платиновый. К слову, мелкие PSN игры имеют поменьше трофеев и не имеют платинового трофея. К примеру, игра Plants Vs. Zombies (NPUA30059). Смотрим дальше:
m2.png
А дальше мы видим уникальный номер трофеев NPWR00825_00. Этот номер одинаковый для различных изданий какой-то конкретной игры. Например, игра God of War Collection выпускалась для разных регионов и имела различные уровни цензуры. Так вот, я в своё время взял файл трофеев из русифицированной версии игры BCES00791 и поместил в игру версии BCUS98229. В итоге игра была без цензуры на голых девок, но с русскими трофеями. Также уникальный номер трофеев сделан одинаковым, чтобы самые хитрые геймеры не заработали трижды одни и те же трофеи, играя в одну и ту же игру разных изданий. Дальше мы видим Trophy Set Version (V) 01.00. Это означает, что данная версия трофеев имеет первую версию и не обновлялась разработчиками. Если же в патче обновления игры присутствует обновление трофеев, то версия будет, например, 01.01. Как сделали в той же игре God of War Collection(BCUS98229). Её патч обновления 1.01 обновляет трофеи до версии 01.02, а в этой версии трофеев добавили русский язык. Так что всегда обновляйте игры перед их первым запуском. Хуже не будет. Чего не скажешь про обновление прошивки…
m3.png
Дальше идёт окно, где описываются непосредственно трофеи. Закладка Trophy Icons продемонстрирует картинки к тому или иному трофею. Закладки языков описывают трофеи на различных языках. В данном случае имеется русский язык. Title/Name(N) – имя трофея, Details(D) – описание трофея, т.е. что нужно сделать, чтобы его получить. Дальше идёт более интересная информация: Trophy (T) показывает порядковый номер трофея. Это важно, т.к. в приставке трофеи идут именно по номерам, причём в 16-ричном исчислении. Трофей под номером 000 – является всегда платиновым, если это не мелкая игра без платины вообще. Hidden(H) сообщает нам, является ли трофей скрытым, или нет. Скрытый трофей на приставке отображается в виде замочка и совсем непонятно, что нужно сделать, чтобы его получить. В этой программе можно увидеть описание трофея. Grade (G)– тип трофея. Их всего 4 типа: бронзовый, серебряный, золотой, платиновый. По себестоимости перечисленных металлов вы должны были догадаться, какой трофей дороже стоит и сложнее заработать. Платиновый трофей всегда один и открывается в последнюю очередь автоматом после открытия всех других трофеев данной игры. Об этом нам и сообщает пункт Platinum Link(P), т.е. есть ли связь данного трофея с платиновым. Только в мелких играх без платиновых трофеев этих связей нет.
Ну а ниже идёт общее название и описание данных трофеев (set) и все трофеи по порядку.
Отступлю и расскажу про то, как начисляется рейтинг, т.е. очки за получение трофеев.
- 1 бронзовый трофей = 15 очков.
- 1 серебряный трофей = 2 бронзовых трофея = 30 очков.
- 1 золотой трофей = 3 серебряных трофея = 6 бронзовых трофея = 90 очков.
- 1 платиновый трофей = 2 золотых трофея = 6 серебряных трофея = 12 бронзовых трофея = 180 очков.
И совершенно не важно, дрочились вы над каким-то трофеем месяц или получили его сразу после выбора пункта игры "Новая игра”… Получили в PSN или офлайн… Получили в основной игре или в купленных дополнениях DLC…Скрытый трофей или нет… На русском он языке или на японском… На древней игре или на последнем хите… На диске ли игра или скачана с PSN… Начисляются очки по вышеприведённой схеме. А при синхронизации заработанных трофеев с серверами Sony в сети PSN, она же уже SEN, у вас растёт рейтинг крутизны. И есть даже крупный российский сайт
www.stratege.ru, где на сегодняшний день более 15 000 человек меряются пиписьками, т.е. рейтингом от заработанных трофеев.
2. Файловая структура трофеев.
И так, а не хотелось бы вам узнать, что же именно и в каком виде находится в запакованном файле TROPHY.TRP? Если нет, то просто закройте свой Microsoft Word и удалите эту инструкцию… Если же хотелось бы, то внимательно читаем дальше.
Как ни странно, но такой простенький пакет файлов не открывает ни один архиватор. Если у вас установлен пакет программ PS3Tools, то этот тип файлов автоматом подхватывается прогой PKG ContentID, но она почему-то теряет много файлов из пакета. Это не нормально. И вот я нашёл маленькую программку одного программиста из Азии, которая хорошо распаковывает эти файлы. Называется она банально
TRPExtractor и является программой командной строки. Просто кидаем рядом файл трофеев TROPHY.TRP и перетаскиваем его мышкой на экзешник TRPExtractor.exe. Можно просто в командной строке написать TRPExtractor TROPHY.TRP. Файл трофеев распакуется в этой же папке, где он сам находится. Есть странный глюк: трофеи не распаковываются, если на файле TROPHY.TRP стоит атрибут "Только чтение”. А этот атрибут стоит часто, ведь файлы копируются с BD-ROM.
После распаковки у нас появляется куча файлов:
- ICON0.PNG – общая картинка данных трофеев. Именно её мы будем видеть на своей приставке в меню "Коллекция призов”. В некоторых играх есть несколько таких файлов под разными номерами. Это может быть картинка с названием игры на разных языках. Пример – игра God of War: Ascension™(EU) (BCES01741);
- TROP000.PNG, TROP001.PNG, TROP002.PNG, … – это картинки к каждому конкретному трофею по их номерам. Причём картинок будет ровно столько,сколько трофеев в игре, даже если у всех трофеев одинаковое отображение.
- TROP.SFM – файл, похожий на тип xml. В нём как раз и прописаны трофеи с описанием на языке по умолчанию. Можно открыть обычным блокнотом, но там не так всё будет наглядно, как в предыдущей программе.
- TROP_02.SFM, TROP_04.SFM, TROP_08.SFM, … – это тоже описание трофеев на разных языках. 08 в данном примере (а может и всегда) – это русский язык. Именно из одного из этих файлов формируются список трофеи на вашей приставке, которые вы видите в пункте меню "Коллекция призов”.
- TROPCONF.SFM – это самый важный файл. Именно из него формируются трофеи на вашей приставке, которые вы не видите, но именно с ними работает приставка в первую очередь при открытии и, самое главное, при синхронизации с серверами. В нём нет описания трофеев, т.к. приставке оно не нужно. В нём только структура трофеев. В каждом *.SFM файле первой же строкой идёт цифровая подпись данного файла.
- <!--Sce-Np-Trophy-Signature: подпись состоит из 320 символов, в которых зашифровано содержимое всего файла. При изменении хотя бы одного символа в файле должна определённым образом поменяться и подпись. По какому алгоритму происходит формирование подписи известно только Sony. Так что ничего мы поменять не сможем. Приставка в первую очередь проверит соответствие подписи содержимому файла, а потом выдаст ошибку и даже не запустит игру.
3. Установка трофеев на приставку.
После запуска игры приставка порой незаметно, а порой и оповещая нас, устанавливает трофеи на свой винчестер. Файловая структура установленных трофеев отличается от структуры трофеев в файле TROPHY.TRP. Для начала приставка смотрит, какие языки присутствуют в файле трофеев, и копирует себе на винчестер только файлы одного языка. За приоритетный язык берётся язык меню приставки. У многих из нас в настройках приставки выбран русский язык, поэтому приставка пытается скопировать файлы трофеев с русским языком. Если русского языка в трофеях нет, то приставка копирует файл TROP.SFM, т.е. файл трофеев языка по умолчанию.
В этом и есть подвох с японскими играми. Например, игра Catherine (BLUS30428) имеет в своих трофеях японский язык по умолчанию и не имеет русского. Японский и будет использован при формировании трофеев на приставке, если вы запустите игру на русском языке приставки. Для лицензионщиков будет крайне затруднительно поменять язык трофеев на какой-нибудь другой. Всем остальным же придётся удалять установленные трофеи с приставки, переключать язык меню приставки на английский, и опять запускать игру. Язык меню приставки потом можно вернуть обратно на русский.
Итак, приставка выбрала за основу формирования трофеев файлы нужного языка и создала у себя на винчестере файл описания трофеев TROPCONF.SFM. Он мало чем отличается от исходного файла, например, TROP.SFM, однако кое-что в самом начале файла приставка дописывает. Это не учитывается в формировании цифровой подписи, поэтому подпись остаётся неизменной, а файл считается валидным. Основная картинка трофеев также берётся нужного языка и переименовывается в ICON0.PNG. Остальные картинки трофеев копируются без изменений.
Дальше приставка создаёт файл TROPUSR.DAT. Это индивидуальный файл для конкретного пользователя. Именно в этом файле сдержится информация о трофеях, которые мы видим в меню приставки "Коллекция призов”. А точнее о их состоянии: закрыт ли, открыт ли, когда открыт. Подробную структуру данного файла мы рассмотрим позже.
Дальше создаётся самый главный файл трофеев TROPTRNS.DAT. Этот файл также является индивидуальным для конкретного пользователя и к тому же является закриптованным (зашифрованным). Т.е. в нём перемешаны определённым образом данные. Если его просто открыть для просмотра, то кроме хаоса символов мы ничего не увидим. Именно в этом файле сдержится информация о трофеях, которую мы
не видим, но которая является основной для приставки и для синхронизации трофеев с сервером Sony. Подробную структуру данного файла мы рассмотрим позже.
Также создаются ещё два вспомогательных файла. Это PARAM.SFO и PARAM.PFD.
PARAM.SFO – это визитная карточка любого самостоятельного содержимого контента на приставке. Приставка "взглянув” в этот файл сразу понимает, что именно содержится в данной папке и что с этим нужно делать. Открыть этот файл можно программкой из того же комплекта
PS3 PARAM. SFO Editor. Но для нас он особого интереса пока не представляет.
m4.png
PARAM.PFD – самый тёмный для меня файл. Я глубоко не копал, но как я понял, он содержит в себе информацию о контрольных суммах ключевых файлов в данной папке. Т.е. в нём продублирована информация о том, что именно должно лежать рядом с ним в этой же папке. И если мы модифицируем вручную тот же файл трофеев TROPTRNS.DAT, то изменения должны коснуться и файла PARAM.PFD. Иначе контрольные суммы в этом файле будут отличаться от контрольных сумм реальных файлов, и приставка пошлёт нас на хер.
Благо, процесс модификации файла PARAM.PFD автоматизирован. Так что, нет проблем.
Так где же именно хранятся все установленные трофеи на приставке? А вот где:
/dev_hdd0/home/0000000x/trophy/, где x –порядковый номер профиля пользователя на приставке. На моей приставке всего один пользователь. Другие пользователи не создавались и не удалялись. Поэтому путь будет
/dev_hdd0/home/00000001/trophy/. Если у вас успели установиться какие-нибудь трофеи, то они появятся в данном месте в виде папок с уникальным номером трофеев.
Также в папке trophy появится папка _TROPSYS_. Это общая системная папка трофеев. В ней всего один важный файл TROPSYS.DAT. Этот файл является зашифрованным и представляет собой список установленных на приставке трофеев. Второй файл в этой папке – это служебный файл PARAM.PFD. Его мы рассматривали выше. Странно, что именно эта папка является исключением и не содержит второго системного файла PARAM.SFO.
4. Раскриптовка (расшифровка) файлов. Программа PS3 Bruteforce Save Data
Чтобы понять содержимое зашифрованного файла, его нужно расшифровать. Т.е. перемешать обратно в определённом порядке все его байты. На сегодняшний день есть специализированная программа для этого дела с графическим интерфейсом
PS3 Bruteforce Save Data, входящая в состав пакета PS3Tools. Запускаем её и в первую очередь настраиваем. Нужно в среднем окне нажать правой кнопкой мышки.
m5.png
В глобальных настройках выставляем ключевые параметры:
m6.png
- Profile – один из десяти возможных профилей настройки данной программы. Несколько профилей может понадобиться, если вы работаете с трофеями или сохранениями разных приставок и/или разных пользователей на приставке.
- User ID – идентификатор пользователя. Проще говоря, сюда записываем порядковый номер пользователя на приставке. Мы об этом говорили чуть выше, когда освещали путь сохранения трофеев: /dev_hdd0/home/00000001/trophy/. Хотя я заметил, что этот номер в шифровке/расшифровке файлов участия не принимает. Но лучше поставьте реальный.
- Console ID – идентификационный номер вашей приставки. Смотрим его на приставке в программе Multimen в меню информации о системе. Вводим сюда без дефисов. Как видите, я не побоялся и показал вам реальный номер своей приставки. Она всё равно забанена! Также скажу, что этот номер в шифровке/расшифровке файлов участия не принимает. Но лучше поставьте реальный, чтобы программа не сообщала об ошибке.
Нажав на Close, в папке программы сохранится файл настроек
global1.conf. В нем вы можете увидеть кучу ключей шифрования, благодаря которым у нас есть возможность работать с файлами трофеев и сохранений игр.
;Global settings
[global]
user_id=00000001
console_id=00000001008C000B14028CEFCCDE8654
authentication_id=1010000001000003
syscon_manager_key=D413B89663E1FE9F75143D3BB4565274
keygen_key=6B1ACEA246B745FD8F93763B920594CD53483B82
savegame_param_sfo_key=0C08000E090504040D010F000406020209060D03
trophy_param_sfo_key=5D5B647917024E9BB8D330486B996E795D7F4392
tropsys_dat_key=B080C40FF358643689281736A6BF15892CFEA436
tropusr_dat_key=8711EFF406913F0937F115FAB23DE1A9897A789A
troptrns_dat_key=91EE81555ACC1C4FB5AAE5462CFE1C62A4AF36A5
tropconf_sfm_key=E2ED33C71C444EEBC1E23D635AD8E82F4ECA4E94
fallback_disc_hash_key=D1C1E10B9C547E689B805DCD9710CE8D
Ещё одним важным моментом настройки данной программы является создание общего файла PARAM.SFO, чтобы он мог использоваться при необходимости. Для этого открываем в программе папку с сохранением любой
вашей игры(именно сохранения), подсвечиваем эти сохранения и нажимаем Ctrl + T. Соглашаемся с сообщением на экране.
m7.png
В результате, файл PARAM.SFO из
ваших сохранений скопируется в папку программы под именем
template.sfo и будет использоваться как эталон. Почему нужно брать файл именно из сохранений? Да потому что, в PARAM.SFO трофеев не прописаны все параметры. Нет, например PSID. Я так и не понял, нужен ли он точно, и в чём его отличие от ConsoleID, но лишним он не будет.
Поясню теперь, что такое Account ID. Идентификатор пользователя в сети PSN – это шестнадцатизначный код, присваиваемый вашему профилю на приставке при регистрации в сети PSN. Советую в первую очередь пройти данную регистрацию, чтобы получить данный код. Иначе потом может быть путаница в трофеях и сохранениях: часть их будет с нулевым кодом, а часть с реальным после регистрации. Есть приятная мелочь: пройти регистрацию можно и на забаненной консоли. Вот пример сохранений с нормальным (правда, уже забаненным идентификатором):
m8.png
В случае незарегистрированного в PSN пользователя в поле Account ID будет пустота, или какая-нибудь фигня, типа _00.
Не рекомендую пользоваться функцией Rebug прошивки Fake Data Owner. В этом случае вам будет присвоен идентификатор ffffffffffffffff. Может быть несовместимость трофеев и сохранений при переходе на другие прошивки. Потому что эта функция сама отключится и включить её нельзя будет на тех же прошивках от Rogero. Трофеи будут считаться чужими. Игры не будут запускаться, пока вы полностью не удалите все трофеи. А также вы буквально просите Sony: "Забаньте мою консоль в PSN, пожалуйста…”
Ну и последняя настройка программы. Поставьте галочки так:
m9.png
Ну что, раскриптуем для начала простенький файл TROPSYS.DAT?Он-то простенький, но вот и начинаются нюансы…
Чтобы программа раскриптовала какой-то файл, она должна видеть не только этот один файл, а всю структуру трофеев или сохранений. Поэтому, программа работает с папками, а не файлами. Выбираем папку трофеев в строке Path for SAVEDATA folders. Как пример:
m10.png
Следующий нюанс! При выборе папки программа будет сканировать все подпапки и искать трофеи и сейвы в них. Поэтому ни в коем случае не задайте программе путь, типа C:\. Прога повиснет. Я так и не дождался окончания её процесса сканирования за несколько часов. К моему ужасу, после закрытия программы, как процесса, и повторного её перезапуска, она запомнила последний путь и начала сканировать диск C:\ сначала. Я еле вычислил в реестре данный путь и заменил его вручную на более логичный. Кстати, вот оно где:
- HKEY_CURRENT_USER\Software\VBand VBA Program Settings\Bruteforce Save Data\Settings\
Параметры Path и ActivePath.
На этом нюансы не заканчиваются. Если помните, в папке _TROPSYS_ нет файла PARAM.SFO, а значит, программа не поймёт, с данными какого типа на имеет дело. Поэтому в данном случае нужно помещать папку _TROPSYS_ вместе с любой папкой трофеев. А в программе открывать не саму папку _TROPSYS_, а папку предыдущего уровня, в которой находится и папка _TROPSYS_, и папка с какими-нибудь трофеями. Вот что мы увидим:
m11.png
Подсвечиваем _TROPSYS_ и выделяем внизу нужный нам файл:
m12.png
Нажимаем декрипт текущего файла:
m13.png
Файл быстренько раскриптуется, и можно прямо здесь щёлкнуть по нему двойным щелчком. Файл откроется в HEX редакторе.
Мы видим, что по мере установки трофеев на нашу приставку, они добавляются друг за дружкой в данном файле. В этом примере выделены вторые по списку трофеи:
m14.png
Итак, NPWR01261_00 – это код установленных трофеев от определённой игры.
.аМѕ%nСaл›Ф2BМЕ… – это какая-то цифровая подпись, то ли какая контрольная сумма. В общем, я не совсем понял, но эти значения могут быть одинаковыми для разных трофеев. Как на рисунке сверху. Главное,чтобы это значение совпадало со значением в файлах TROPUSR.DAT и TROPTRNS.DAT.
Дальше нюансы. Если вы переносите трофеи с одного профиля на другой, просто перебрасывая перешифрованные папки с трофеями, то у вас может ничего не заработать по причинам:
- - в файле TROPSYS.DAT отсутствует запись об установленных трофеях, которые вы перебросили;
- - подпись к конкретному трофею в файле TROPSYS.DAT отличается от подписи этих же трофеев в файлах TROPUSR.DAT и TROPTRNS.DAT.
При необходимости можно вручную подправить здесь эту подпись для конкретных трофеев на нужную.
Какой вывод? Сохраняйте свои трофеи на компе всегда вместе с папкой _TROPSYS_. Причём, если вы запустили новую игру на приставке, иона установила новые трофеи, то в этот момент обновились файлы и в папке _TROPSYS_.Нужно заменять данную папку на компе обновлённой с приставки.
При открытии же трофеев в игре, данная папка не обновляется. Запомните! Обновляется только при установке новых трофеев.
Какие ещё есть нюансы… Да, есть. Ну, например, вы запустили на приставке какую-нибудь игру. Она установила свои трофеи. И вот, игра вам совершенно не понравилась. Вы её удалили. И удалили вручную, или через Debug меню, папку её трофеев. Да, всё удалится, но только не запись в файле TROPSYS.DAT. В нём она останется навечно. Вручную у меня удалить запись не получилось, т.к. меняется размер файла, и этот файл ни в какую не принимался приставкой. И что тут такого страшного? Ничего. Всего лишь бан в PSN. Записи о трофеях в TROPSYS.DAT есть, а самих трофеев нет. Только на пиратской приставке такое можно сделать.
Так что, если вы не уверены, что вы оставите на своей приставке трофеи от новой и неизвестной игры, то сохраните на компе папку_TROPSYS_
до первого запуска этой игры. А после удаления папки с трофеями, просто замените назад папку _TROPSYS_.
Ну и ещё один маленький глюк-нюанс самой программы PS3 Bruteforce Save Data: она не позволяет себя закрыть, если есть раскриптованные файлы. Либо зашифруйте их назад, либо откройте другую папку, где нет расшифрованных файлов.
m15.png
Ещё несколько советов и вывод. Снимайте галочку в настройках программы Enable Auto-Backup и отключайте создание бекап-файлов в HEX-редакторе. Ну, или же не забывайте удалять их перед заливкой трофеев назад на приставку. Нечего там делать лишним файлам. Всё это увеличивает шанс вашего бана. Также учтите, что даже при открытии папки _TROPSYS_ в программе PS3 Bruteforce Save Data, в ней создаётся левый файл PARAM.SFO. А ведь его там быть не должно. Не забывайте удалять.
Вывод. В этой главе вы узнали (если до этого не знали) принцип расшифровки файлов и зашифровки их обратно. Это важная манипуляция. Она постоянно будет применяться в будущем.