Страница 2 из 2 ПерваяПервая 12
Показано с 21 по 27 из 27
  1. #21
    Аватар для Smich
    Регистрация: 20.12.2011
    Адрес: Минск
    Сообщений: 117
    Карма: 465 (Сила кармы 3)
    Опубликовано подсказок420Получено «Спасибо»420
    Гарнитура:  Гарнитуры нет
    PlayStation Network (скрытый профиль)


    Повысить карму сообщения Понизить карму сообщения

    По умолчанию

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

    Не взирая на предыдущие высказывания пользователей форума, язык трофеев не зависит от региона игры и не зависит от языка меню приставки. Эти 2 фактора скорее следствие. Язык трофеев зависит только от разработчиков, которые реализовали эти языки в наборе трофеев или нет.
    Немного истории. Изначально системы трофеев не было, и игры, выходившие под прошивки до 2.40, не имели трофеи. Но после появления этой системы в новых играх стали появляться дополнительные папки TROPDIR, в которых находилась подпапка с уникальным номером набора трофеев, например NPWR04043_00. Ну а в ней уже был файл набора трофеев TROPHY.TRP. Всю эту структуру можно увидеть, если вставить игровой BD-ROM в BD-привод компьютера.
    Система трофеев накрыла огромное количество пользователей, которые начали ставить себе целью заработать как можно больше трофеев, отбрасывая на второй план основное предназначение игр - развлечение. Добыча трофеев превратилась для них в титанический труд. Некоторые старые, но продвинутые игры, решили не отставать от моды и обзавелись наборами трофеев, которые появлялись на приставке вместе с патчами обновления этой игры. Как пример Uncharted: Drake’s Fortune.

    Давайте рассмотрим детальнее файл TROPHY.TRP. Как это не удивительно, но формат файла TROPHY.TRP один и тот же для систем PS3, PSVita и PS4. Здесь Сони решила не заморачиваться и почти ничего не менять с выходом новых систем. Если взять мультиплатформенную игру, например, Another World, то во всех трёх вариациях игры файл трофеев TROPHY.TRP будет одним и тем же. Файл TROPHY.TRP имеет весьма простую структуру. Информация в нём не зашифрована и не сжата. Открыв этот файл в HEX редакторе, мы увидим в его структуре список файлов, входящих в него, и адреса (смещения), с которых эти файлы начинаются. Извлечь все входящие в него файлы можно даже вручную, копируя и сохраняя в файл все области друг за другом. Но можно прибегнуть и к автоматизации с помощью сторонних программ.
    Первым файлом всегда идёт файл TROPCONF.SFM. В нём в понятном формате, похожем на HTML, описаны все трофеи в данном наборе:
    <trophyconf version="1.1" policy="freemium">
    <npcommid>NPWR04043_00</npcommid>
    <trophyset-version>01.01</trophyset-version>
    <parental-level license-area="default">0</parental-level>
    <trophy id="000" hidden="no" ttype="B" pid="-1"/>
    <trophy id="001" hidden="no" ttype="B" pid="-1"/>
    <trophy id="002" hidden="no" ttype="S" pid="-1"/>
    <trophy id="003" hidden="no" ttype="B" pid="-1"/>
    <trophy id="004" hidden="no" ttype="B" pid="-1"/>
    <trophy id="005" hidden="no" ttype="S" pid="-1"/>
    <trophy id="006" hidden="no" ttype="B" pid="-1"/>
    <trophy id="007" hidden="no" ttype="B" pid="-1"/>
    <trophy id="008" hidden="no" ttype="B" pid="-1"/>
    <trophy id="009" hidden="no" ttype="G" pid="-1"/>
    <trophy id="010" hidden="no" ttype="B" pid="-1"/>
    <trophy id="011" hidden="no" ttype="S" pid="-1"/>
    </trophyconf>

    Как мы видим, нет никакого даже намёка на язык трофеев. Трофеи имеют только порядковый номер. Всё потому, что приставке язык и не нужен. Язык нужен нам, людям, чтобы мы понимали, что нам делать.
    Далее идёт файл TROP.SFM с языковым описанием трофеев на языке по умолчанию. Язык по умолчанию не всегда английский. Он может быть и японский, как например в игре Catherine. Вот фрагмент содержимого файла TROP.SFM одной из игры:
    <trophyconf version="1.1" policy="freemium">
    <npcommid>NPWR04043_00</npcommid>
    <trophyset-version>01.01</trophyset-version>
    <parental-level license-area="default">0</parental-level>
    <title-name>Spartacus Legends Trophies</title-name>
    <title-detail>Spartacus Legends</title-detail>
    <trophy id="000" hidden="no" ttype="B" pid="-1">
    <name>Well-Versed in Weaponry</name>
    <detail>Win at least 1 match with each style (including unarmed).</detail>
    </trophy>
    <trophy id="001" hidden="no" ttype="B" pid="-1">
    <name>Hardened for Battle</name>
    <detail>Defeat an Opponent of Threat 100 or higher.</detail>
    </trophy>
    ************************************************** **

    Как мы видим в данном случае, язык по умолчанию у нас английский. Но это нигде не указано! Мы просто узнали этот язык. И в некоторых играх других языков в трофеях больше и нет. Как пример Double Dragon Neon. Так что не важно, какого региона у нас игра и какой язык выбран на приставке. Если в наборах трофеев заложен только один язык, то никакой другой и не появится.
    Дальше могут идти файлы других языков в виде TROP_00.SFM, TROP_01.SFM, TROP_02.SFM,.... На сегодняшний день их поддерживается около 20-ти. Формат этих файлов аналогичен формату файла TROP.SFM и отличается только тем, что названия и описания трофеев идут на других языках. Но опять же, в самом файле не указано, что это за язык. А Блокнот вам кроме латиницы ничего не покажет. Здесь на помощь может придти Word, который правильно определяет кодировку, или специализированная программа от Сони для работы с наборами трофеев. Но про неё в другой раз. Понять, какой язык соответствует какому файлу можно по номеру файла: TROP_00 - японский, TROP_01 - английский США, TROP_02 - французский, TROP_03 - испанский, TROP_04 - немецкий, TROP_05 - итальянский, TROP_06 - нидерландский, TROP_07 - португальский, TROP_08 - русский, TROP_09 - корейский, TROP_10 - китайский традиционный, TROP_11 - китайский упрощённый, TROP_12 - финский, TROP_13 - шведский, TROP_14 - датский, TROP_15 - норвежский, TROP_16 - польский, TROP_17 - португальский Бразилия, TROP_18 - английский Великобритания, TROP_19 - турецкий. Количество поддерживаемых языков увеличивается. И трофеи от некоторых игр включают в себя новые языки. Например так было с игрой God of War HD, когда после выхода патча обновления в трофеях появился русский язык.
    Ну и дальше по списку идут картинки к трофеям. На них мы акцентировать внимание не будем. Скажу только, что принцип схож. Если имя файла имеет номер, типа ICON0_02.PNG, то эта картинка адаптирована для определённого языка, согласно номеру.

    Если вам интересно продолжение темы, то в следующий раз я могу рассказать, как происходит установка трофеев на приставку, как не обложаться и не установить себе трофеи на левом языке, и почему на сайтах, посвещённым трофеям, не всё так гладко.
    Последний раз редактировалось Smich; 24.11.2018 в 12:19.
    Смыч — это круто!

  2. #22
    Аватар для Shark-hardcore
    Регистрация: 21.12.2011
    Адрес: планета Хелган, система Альфа Центавра
    Сообщений: 4 380
    Карма: 57320 (Сила кармы 10)
    Опубликовано подсказок123Получено «Спасибо»155
    Гарнитура: Гарнитура есть
    PlayStation Network sergynshik


    Повысить карму сообщения Понизить карму сообщения
    0

    По умолчанию

    Smich, познавательно!
    Моя ненависть умрет вместе с вами!

  3. #23
    Аватар для Slink
    Регистрация: 25.06.2014
    Адрес: Москва
    Сообщений: 1 643
    Карма: 12111 (Сила кармы 10)
    Опубликовано подсказок225Получено «Спасибо»223
    Гарнитура: Гарнитура есть
    PlayStation Network Real_Slink


    Повысить карму сообщения Понизить карму сообщения
    0

    По умолчанию

    По моим наблюдениям, трофеи выпадают на том языке, который установлен у вас на консоли на основном акке.

    Т.е. если у вас по умолчанию идёт русский язык на консоли и у игры имеется русская локализация, то они будут выпадать на русском, даже если диск у вас, к примеру, европейской версии, в котором нет русской локализации.

    У меня так было в паре игр, это Принц персии Забытые пески и Ретчет КьюФорс у меня были английские версии, но трофеи падали на русском.

    В ином случае, скорее всего, падает по умолчанию по региону и установке языка по умолчанию в игре, т.е. англ. Либо если сама игра рус, то и трофеи рус, если они были переведены.

  4. #24
    Аватар для Smich
    Регистрация: 20.12.2011
    Адрес: Минск
    Сообщений: 117
    Карма: 465 (Сила кармы 3)
    Опубликовано подсказок420Получено «Спасибо»420
    Гарнитура:  Гарнитуры нет
    PlayStation Network (скрытый профиль)


    Повысить карму сообщения Понизить карму сообщения

    По умолчанию

    Так а продолжение хотите?

  5. #25
    Аватар для palec10
    Регистрация: 28.03.2012
    Адрес: Ленинградская область
    Сообщений: 1 212
    Карма: 3132 (Сила кармы 10)
    Опубликовано подсказок55Получено «Спасибо»103
    Гарнитура:  Гарнитуры нет
    PlayStation Network palec10


    Повысить карму сообщения Понизить карму сообщения
    0

    По умолчанию

    Smich, ну а как же!

    ---------- Сообщение добавлено в 22:54 ---------- Оригинальное сообщение отправлено в 22:46 ----------

    По сути любой разработчик к любой своей игре (лицензии естессно) может наработать и скинуть патч с любым не достающим игре языком призов, если конечно захочет))? Если это для них так просто (чуть ли в Ворлде делается) так почему они некоторые не делают этого хотя бы в переизданиях своих игр, ну типа Resident Evil 4, 5 хотя бы

    Chevrolet Camaro, 2014, 6.2 AТ, Купе 405 л.с.

  6. #26
    Аватар для Smich
    Регистрация: 20.12.2011
    Адрес: Минск
    Сообщений: 117
    Карма: 465 (Сила кармы 3)
    Опубликовано подсказок420Получено «Спасибо»420
    Гарнитура:  Гарнитуры нет
    PlayStation Network (скрытый профиль)


    Повысить карму сообщения Понизить карму сообщения

    По умолчанию

    Хорошо. Распишу сегодня процесс установки трофеев на приставку.
    После запуска игры в памяти приставки расшифровывается исполнительный файл EBOOT.BIN и, после всех проверок его на валидность, передаётся на него управление. В итоге в памяти, начиная с адреса 0x00010000 располагается в открытом и расшифрованном виде ELF файл нашей игры. Где-то в коде этого файла будет обязательно прописан уникальный номер трофеев, которые должны будут быть установлены на приставку. Установка трофеев (если это первый запуск игры) или проверка уже установленных трофеев - процедура обязательная. Если на этом этапе возникает ошибка, то игра просто закроется с сообщением о невозможности установки призов. Как пример, залапаный BD-ROM и невозможность достоверно считать файл с трофеями TROPHY.TRP. Если же всё в порядке и набор трофеев присутствует и проходит проверки на валидность - управление по установке набора трофеев передаётся на специальные модули (типа службы в фоновом режиме), которые устанавливают трофеи на приставку. Система сравнивает текущий язык меню приставки с наборами языков в файле трофеев TROPHY.TRP, и если такой язык в наборе трофеев имеется, то из файла TROPHY.TRP извлекаются файлы, относящиеся только к этому языку и общие файлы. Остальные файлы игнорируются. Если же искомый язык отсутствует в наборе трофеев - устанавливается язык по умолчанию (в 90 случаях- английский).
    Всё извлекаемое содержимое располагается в специальных директориях в зависимости от платформы. Также система создаёт системные файлы под текущего пользователя, в которых прописывает дату установки данных трофеев и их список по порядковым номерам. После этого создаются файлы контрольных сумм для будущих проверок. При каких-либо сбоях в работе файловой системы могут возникнуть непроизвольные изменения в файлах трофеев. В этом случае следующая проверка на валидность данных трофеев не пройдет и весь установленный набор трофеев будет считаться повреждённым и вместо него будет создан новый набор.
    Процедуры по удалению трофеев для простого пользователя нет. Только с удалением профиля можно удалить и все трофеи. Ну или более радикальных мер, таких как восстановление приставки до заводских настроек или форматирование HDD. Поэтому ошибки в трофеях в виду ошибок файловой системы, ошибки при попытке синхронизации трофеев или просто невнимательность пользователя, установившего трофеи на ненужном для него языке - большая проблема для пользователя.

    В следующий раз я расскажу, что именно происходит при получении трофеев и какие неприятные моменты могут ждать неосведомлённого пользователя.

    palec10
    Не всё зависит от разработчика игры. Весь контроль у Сони. Обновлённые трофеи может подписать и разместить в базе своих трофейных серверов только Сони. Сам патч подписать и разместить на серверах обновления - тоже Сони. А если между ними уже закончился контракт? А если с ценой не договорились? Вот почему мы видим и орфографические ошибки в трофеях, и логические (получение трофеев перепутано за разные достижения в игре STEALTH INC 2: A GAME OF CLONES), и, доходящие до абсурда, ошибки, когда трофей получить вообще не возможно (европейская версия игры Syberia 2).
    Последний раз редактировалось Smich; 29.11.2018 в 01:09.

  7. #27
    Аватар для Smich
    Регистрация: 20.12.2011
    Адрес: Минск
    Сообщений: 117
    Карма: 465 (Сила кармы 3)
    Опубликовано подсказок420Получено «Спасибо»420
    Гарнитура:  Гарнитуры нет
    PlayStation Network (скрытый профиль)


    Повысить карму сообщения Понизить карму сообщения

    По умолчанию

    Сегодня я расскажу, что происходит на приставке при получении трофея.
    Но сначала может быть кого-то удивлю. Все ваши установленные трофеи продублированы на приставке. В одном файле хранятся пользовательские трофеи, в другом - сетевые (PSN-овские). Пользовательские трофеи вы видите, когда просматриваете их в меню. Также система во время игры смотрит на пользовательские трофеи и понимает, какие трофеи уже выданы - какие нет. Сетевые трофеи предназначены только для синхронизации с серверами Сони. Увидеть их до синхронизации нельзя. А после синхронизации они перекочуют в пользовательские трофеи и будут светиться в сети.
    Также может для кого-то будет новостью, что на приставке тикают сразу двое часов. Это также пользовательские (системные) и сетевые. Пользовательские мы можем настроить вручную или синхронизировать с Интернетом. Сетевые - только с Интернетом. Это сделано для того, чтобы пользователь не отматывал дату и не играл в просроченную игру.
    И так, во время игры сама игра отслеживает, выполнили ли вы условие получения трофея. Если да - то на системную службу трофеев посылается команда открыть определённый номер трофея. И помимо ласкающего душу "Дзынь!" в оба файла трофеев записывается информация о полученном номере трофея, его достоинстве и времени получения. Время получения прописывается сразу из двух часов приставки. При просмотре трофеев вы будете видеть пользовательское время получения. При синхронизации будет использовано сетевое время и оно заменит собой пользовательское. Дата и время записываются в своеобразном формате с точностью до микросекунды (одна миллионная часть секунды). Счёт начался с рождества Христова, а закончится весной 584 942 года. Так что вероятность получения трофея в абсолютно одинаковое время с кем-то ещё практически равна нулю. Также замечу, что время записывается по Гринвичу. И уже на приставке прибавляется или отнимается несколько часов, в зависимости от настройки часового пояса.
    После синхронизации в сетевом файле трофеев прописывается информация, какие трофеи уже синхронизированы. Это служит для ускорения последующих синхронизаций. Эти трофеи будут просто пропускаться.
    К сожалению, система трофеев далека от идеала. На эту тему можно написать целую статью. Но я здесь укажу 2 факта.
    Первый. Мы никак не можем понять, какое сейчас сетевое время в приставке. Даже если мы синхронизировали часы, но установили в настройках неправильный часовой пояс, то трофеи будут регистрироваться с неправильным временем. Также будет неприятный сюрприз, когда сетевое время вообще не установлено. Ваши трофеи будут синхронизированы с неизвестной датой и временем получения. Такая история произошла со мной, когда я поехал на дачу с приставкой PSTV. В ней не предусмотрена батарейка на материнской плате и она забывает дату и время через минуту после отключения питания. При включении приставки она сразу попросила ввести дату и время. В Интернет на даче было не выйти и я ввёл всё точно вручную. Спокойно играл на выходных и получал трофеи. Трофеи зарабатывались с правильными датой и временем. А приехав домой и синхронизировав их, я с ужасом обнаружил кучу трофеев с крестами вместо даты и времени. Картинка и хронология трофеев была испорчена навсегда!..
    Второй. Как сказал Энштейн, время - величина относительная. И система трофеев это подтверждает. Например, начнём играть в новую игру и пройдём её наполовину. К этому времени у нас будет половина трофеев. Сохраняем игру, записываем сохранения на USB и удаляем свой профиль с приставки. Создаём нового пользователя с этим же профилем. Заливаем на приставку сохранения с USB и проходим вторую половину игры, зарабатывая вторую половину трофеев. Потом начинаем играть заново и зарабатываем трофеи с первой половины игры. Синхронизируесмя... Можно заморочиться ещё больше с количеством сохранений и получить все трофеи в обратном хронологическо-логическом порядке. Вы это сможете сделать вполне легально, но на любом "трофейном" сайте будете уличены в читерстве и получите бан. И можете потом даже не доказывать свою правоту.
    Последний раз редактировалось Smich; 29.11.2018 в 20:55.

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •