Перейти к содержимому


Фотография

Моддинг LCS и VCS (PSP/PS2)


Сообщений в теме: 783

#761 XEPOMAHT007

XEPOMAHT007

    Активный участник

  • LCSTeam
  • PipPipPip
  • 472 сообщений
  • Пол:Мужчина


Отправлено 10 August 2014 - 14:31

Так вот, я к чему это. Может, соберём все наработки и напишем общий открытый API для работы с ресурсами? Хотя бы в виде документации, в идеале - на плюсах.


Для начала стоит дождаться ведроидных ЛСС и ВСС. Думаю, что по ресурсам они будут сильно отличаться от ПСП и ПС2, т.е. там не будет консольной оптимизации. Поэтому из старых утилит пригодятся разве только конвертер анимации, коллизий, может быть придётся внести изменения в MDL importer, всё остальное нужно будет писать с 0.

a4ea86ab343c.gif
BETA 4.0 COMING SOON


#762 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 10 August 2014 - 17:04

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

Скорее всего, вытащат текстуры и раскидают по отдельным кэшам для каждого видеоускорителя. Судя по VC и SA, они портировали движок так, чтобы минимально затронуть оригинальные ресурсы игры.

#763 XEPOMAHT007

XEPOMAHT007

    Активный участник

  • LCSTeam
  • PipPipPip
  • 472 сообщений
  • Пол:Мужчина


Отправлено 10 August 2014 - 19:17

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


В движок принципиальные изменения вносится не будут. Просто уберут оптимизацию ресурсов игры под ограниченные возможности ПСП, т.е. из исходного состояния все модели сразу бухнут в MDL, текстуры - в кэш аналогично СА например. Двиг сториесов может рендерить карту без всяких WRLD и LVZ (такое впечатление, что их впихали перед самым релизом, т.к. ide и ipl почищены не были), так же точно, как рендерится карта в гта3. Т.е. гастербайтерам как проще, так они и сделают. Хотя может случится наоборот - время покажет.

a4ea86ab343c.gif
BETA 4.0 COMING SOON


#764 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 сообщений
  • Пол:Мужчина


Отправлено 11 August 2014 - 20:40

Котаны, наверное, многие слышали, что в конце выходит LCS на мобильные платформы.

What? Where? When?

#765 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 11 August 2014 - 21:44

Котаны, наверное, многие слышали, что в конце выходит LCS на мобильные платформы.

What? Where? When?

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

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

дык зачем? у них на руках исходники, которые открывают эти ресурсы без проблем, собрать под linux и ARM это можно, так и зачем что-то трогать тут? IDE / IPL они всё равно не трогали, как показали предыдущие части.

#766 XEPOMAHT007

XEPOMAHT007

    Активный участник

  • LCSTeam
  • PipPipPip
  • 472 сообщений
  • Пол:Мужчина


Отправлено 12 August 2014 - 17:00

дык зачем? у них на руках исходники, которые открывают эти ресурсы без проблем, собрать под linux и ARM это можно, так и зачем что-то трогать тут? IDE / IPL они всё равно не трогали, как показали предыдущие части.


Можно, но есть несколько моментов:

1. На ведроидах много оперативы, чтобы fps был выше, разумнее использовать традиционную для гта3 подзагрузку моделей и текстур из одного IMG архива вместо перегрузки всей карты целиком на лету по секторам. Понятно, что подзагрузка нескольких MDL и TEX будет происходить быстрее, чем целого WRLD, при этом нужно ещё очистить память от предыдущего WRLD.

2. IPL и IDE трогать не нужно - они уже есть готовые внутри самой игры. Просто выкидывается код загрузки уровней из WRLD и подставляются модели с текстурами, больше ничего менять не нужно - оно уже есть в игровом коде. Да и зачем им париться, переписывая код загрузки WRLD под linux и ARM, если можно обойтись тем, что у них уже написано, но для предыдущих GTA.

3. Наверняка гастербайтеры всё-таки заменят все 4-х битные урезанные текстуры на нормальные, например из икс-гроб версии гта3. Ибо в слухах о портировании на ведроиды графон обещали подтянуть до уровня десятилетней гта3. Если они оставят все WRLD, то архивы с уровнями будут весить раз в 8 больше, чем в той же гта3 на ведроидах. А игра будет распространяться через сеть, а не диски. И модель распространения - 2 бюджетные игры по цене одной полноценной, как например было с эпизодами. Выкачивать что-то типа коллекции LCS и VCS, а для PS2 это 2 DVD диска, вряд ли кому-нибудь будет особенно приятно при большом размере и маленьком траффике.

Это касается только консольного извращения, сделанного под PSP, я совсем не уверен, что это так же эффективно заработает на ведроидах. Естественно, что например DTZ изменяться не будет, хотя из-за текстур его данные тоже могут оставить не в бинарном виде, а в текстовом, аналогично GTA VC.

a4ea86ab343c.gif
BETA 4.0 COMING SOON


#767 DenielX

DenielX

    Активный участник

  • Пользователи
  • PipPipPip
  • 50 сообщений
  • Пол:Мужчина
  • Интересы:Моддинг GTA Vice City Stories и GTA Liberty City Stories (PSP).Есть оригинальные образы игр,обращаться в лс.


Отправлено 17 August 2014 - 20:25

Касабельно сжатия zlib,основная инфа собранная (не мной) в 1 статью.Узнал несколько новое для себя.Всё в красках.Содержит топ zlib компрессоров,так же нашлась инфа,что можно создавать архивы вообще без сжатия (образы под PPSSPP допустим,модить)ещё по сигнатурам zlib'a-их гораздо больше чем мы думали(возможно несколько лет не видели других возможных архивов внутри GAME.DTZ) и ещё вкусности и нюансы.Сильно не пинать,если для себя ничего нового не нашли и сори за ссылку на народ.https://yadi.sk/d/B8ifaRLm6Jsco


Сообщение отредактировал DenielX: 17 August 2014 - 20:32


#768 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 18 August 2014 - 05:58

в рамках GTA Stories не вижу смысла особо останавливаться на zlib. не думаю, что разработчики досконально вникали в суть работы zlib.

разве что, вместо того, чтобы распаковывать куда-то большие файлы левелов, лучше сразу юзать gzopen / gzread / gzclose и т.д.


алсо, херомант, выложи ты уже Stories WRLD Tool... и скриншот надо пофиксить.

Сообщение отредактировал Lego: 18 August 2014 - 05:59


#769 DenielX

DenielX

    Активный участник

  • Пользователи
  • PipPipPip
  • 50 сообщений
  • Пол:Мужчина
  • Интересы:Моддинг GTA Vice City Stories и GTA Liberty City Stories (PSP).Есть оригинальные образы игр,обращаться в лс.


Отправлено 18 August 2014 - 08:55

Понял,однако просто совет использовать PackZipv.03,он в режиме ультра сжимает офигенно,более лучшего zlib компрессора я не видел.Даже когда сториес ворлд тул недолго был в открытом доступе и я успел там использовать компрессор zlib'а-он далеко от этой проги.SimplyZip,PasZlibFile,DTZ Editor v 0.3 и прочие-отдыхают.Для сравнения приведу запакованный различными компрессорами GAME.DTZ с максимальным уровнем сжатия,доступным для каждого компрессора в отдельности:

SimplyZip-2267442 байта,максимально доступный уровень сжатия-средний

PasZlibFile-2258338 байта,максимально доступный уровень сжатия-максимальный

PackZipv0.3-2196130 байта,максимально доступный уровень сжатия-ультра(максимальный+индивидуально подбираемые словари),однако скорость запаковки 5-10 минут,но оно того стоит.

 

Поправка:PSP не понимает ультра компрессию(а точнее не стандартные словари),но всё равно PackZipv0.3 лидирует:2 208 803 байт запакованный GAME.DTZ.


Сообщение отредактировал DenielX: 18 August 2014 - 09:28


#770 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 18 August 2014 - 18:18

>в рамках GTA Stories не вижу смысла особо останавливаться на zlib

так-то да. но куча игр на пс2 псп его юзает, и инфа, что пишет DenielX - реально полезна. 



#771 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 19 August 2014 - 03:43

SimplyZip-2267442 байта,максимально доступный уровень сжатия-средний
PasZlibFile-2258338 байта,максимально доступный уровень сжатия-максимальный
PackZipv0.3-2196130 байта,максимально доступный уровень сжатия-ультра(максимальный+индивидуально подбираемые словари),однако скорость запаковки 5-10 минут,но оно того стоит.

хорошо бы ещё сравнить с обычным zlib'ом с разными параметрами.
у этих программ есть API? можно было бы их заюзать.
 

в рамках GTA Stories не вижу смысла особо останавливаться на zlib

так-то да. но куча игр на пс2 псп его юзает, и инфа, что пишет DenielX - реально полезна.

это интересно только на конечном этапе, когда нужно вместить в файл новые данные, а размер файла - фиксирован.

Сообщение отредактировал Lego: 19 August 2014 - 03:47


#772 DenielX

DenielX

    Активный участник

  • Пользователи
  • PipPipPip
  • 50 сообщений
  • Пол:Мужчина
  • Интересы:Моддинг GTA Vice City Stories и GTA Liberty City Stories (PSP).Есть оригинальные образы игр,обращаться в лс.


Отправлено 19 August 2014 - 20:55

У двух из трёх открытый исходный код со всем прилагаемым барахлом)-PasZlibFile и PackZipv.03.Классы для сжатия задействовать можно.Прилагаю.

Прикрепленные файлы



#773 DenielX

DenielX

    Активный участник

  • Пользователи
  • PipPipPip
  • 50 сообщений
  • Пол:Мужчина
  • Интересы:Моддинг GTA Vice City Stories и GTA Liberty City Stories (PSP).Есть оригинальные образы игр,обращаться в лс.


Отправлено 21 August 2014 - 15:04

Утилита Offset file unzipper v0.3.5 

Автор: Luigi Auriemma 

Уникальная утилита для извлечения и распаковки ZIP-данных (в том числе и Zlib/gZip/Deflate), которые могут находиться внутри файлов (исполняемых, DLL, архивах, изображениях и прочих). Программа выполняет поиск Zip/Zlib/gZip/Deflate архивов в указанном файле по всем известным сигнатурам с заданного смещения. При нахождении блока с архивными данными, сохраняет их в отдельные файлы с именами смещений, по которым они были найдены, и при необходимости распаковывает архивы.

 

1372065721-333.jpg

Синтаксис команд следующий: 
 

offzip [параметры] <имя_файла> <папка_сохранения> <смещение>

Описание: 
------------ 

  • offzip - имя исполняемого файла утилиты (offzip.exe); 
    <имя_файла> - полный путь к файлу, в котором необходимо выполнить поиск Zip/Zlib/gZip/Deflate архивов. Если в строке пути имеются пробелы, то её необходимо заключить в двойные кавычки; 
    <папка_сохранения> - полный путь к папке, в которую необходимо сохранить/извлечь/распаковать все найденные архивные данные. Если в строке пути имеются пробелы, то её необходимо заключить в двойные кавычки; 
    <смещение> - адрес смещения, с которого следует начать поиск архивных данных в исследуемом файле; 
    [параметры] - параметры сканирования, поддерживаются следующие команды: 
    ..................-s - поиск всех Zip/Zlib/gZip/Deflate данных. 
    .........................После нахождения первого архива сканирование завершается. 
    .........................Параметр <папка_сохранения> игнорируется, поэтому можете указать любые данные; 
    ..................-S - все тоже самое, что и команда -s, но сканирование продолжается 
    .........................(на экран выводится список смещений всех найденных архивов); 
    ..................-a - распаковка содержимого всех найденных архивов в указанную папку <папка_сохранения>
    .........................Имена файлов будут содержать адреса смещений, где были найдены архивы; 
    ..................-A - извлечение всех найденных архивов в указанную папку <папка_сохранения>
    .........................Имена файлов будут содержать адреса смещений, по которым были найдены архивы; 
    ..................-1 - этот параметр используется совместно с командами -a/-A и позволяет 
    .........................генерировать одно уникальное имя файла вместо нескольких; 
    .........-m SIZE - размер блока ZIP-данных, который подтверждает достоверность архивов. 
    .........................По умолчанию используется значение 32 (-m 32). 
    .........................Используйте большие значения для уменьшает числа ложных срабатываний утилиты и 
    .........................меньшие значения для, например 16 (-m 16), для выявления очень маленьких архивов; 
    ...........-z NUM - величина выделенной памяти (windowBits) для сжатых данных. 
    .........................По умолчанию используется значение 15
    .........................Значения от -8 до -15 используются для поиска RAW Deflate данных. 
    .........................Значения от 8 до 15 используются для поиска Zlib данных; 
    ..................-q - отключение каких-либо сообщений об ошибках; 
    ..................-r - не удалять поврежденные архивы, полученные при помощи команд -a/-A
    ..................-x - вывод данных о размерах сжатых/распакованных данных в шестнадцатеричном формате; 
    ..........-L FILE - сохранение отчета с результатами сканирования в указанный файл (FILE). 
  • Более подробно о проге здесь:http://www.wylek.ru/forum/3-572-2   (эта тема собрала в себе почти все практические данные по zlib )
  • Скачать тут:http://hl.altervista...oolz/offzip.zip   (нажать на "qui")

P.S.Скоро выложу листинги VCS/LCS PSP версий на асме и c++.С последним проблемы,т.к. pspdecompiler надо скомпилировать в рабочий декомпилятор,а Dev-cpp меня с бубном заставляет танцевать.Никто не хочет помочь скомпилить?


Сообщение отредактировал DenielX: 21 August 2014 - 15:09


#774 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 21 August 2014 - 19:47

P.S.Скоро выложу листинги VCS/LCS PSP версий на асме и c++.С последним проблемы,т.к. pspdecompiler надо скомпилировать в рабочий декомпилятор,а Dev-cpp меня с бубном заставляет танцевать.Никто не хочет помочь скомпилить?


Прикрепленный файл  pspdecompiler.zip   240.69К   117 загрузок
собирал компилятором 2008-й студии (т.е. для работы нужена msvcr90.dll) из вот этого репо, exe запускается, но на работоспособность не проверял.

Сообщение отредактировал Lego: 21 August 2014 - 19:48


#775 DenielX

DenielX

    Активный участник

  • Пользователи
  • PipPipPip
  • 50 сообщений
  • Пол:Мужчина
  • Интересы:Моддинг GTA Vice City Stories и GTA Liberty City Stories (PSP).Есть оригинальные образы игр,обращаться в лс.


Отправлено 21 August 2014 - 20:10

Спасибо Лего!А другого домена,где размещён pspdecompiler и нету)Он 1 на весь интернет)Указанную дллку у меня на компе не нашёл,теперь знаю в чём дело.



#776 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 21 August 2014 - 20:16

Указанную дллку у меня на компе не нашёл,теперь знаю в чём дело.

VS 2008 Redistributable x86

#777 majestic

majestic

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 27 August 2014 - 22:06

 

дык зачем? у них на руках исходники, которые открывают эти ресурсы без проблем, собрать под linux и ARM это можно, так и зачем что-то трогать тут? IDE / IPL они всё равно не трогали, как показали предыдущие части.


Можно, но есть несколько моментов:

1. На ведроидах много оперативы, чтобы fps был выше, разумнее использовать традиционную для гта3 подзагрузку моделей и текстур из одного IMG архива вместо перегрузки всей карты целиком на лету по секторам. Понятно, что подзагрузка нескольких MDL и TEX будет происходить быстрее, чем целого WRLD, при этом нужно ещё очистить память от предыдущего WRLD.

 

Ну уж если какая то ПСП с этим справляется - андроиды и подавно. Так что не факт, что быстрее, а что нет. Тем более большинство ресурсов находятся в LVZ в загруженном виде, а из IMG подгружается/выгружается ну где то 10-20 ресурсов, поэтому эти подгрузы на PSP особо не видны. Вспомни китайские войны для ПСП и IOS - по части форматов моделей и архивов - почти все то же самое, только формат текстур другой.



#778 XEPOMAHT007

XEPOMAHT007

    Активный участник

  • LCSTeam
  • PipPipPip
  • 472 сообщений
  • Пол:Мужчина


Отправлено 28 August 2014 - 17:35

Ну уж если какая то ПСП с этим справляется - андроиды и подавно. Так что не факт, что быстрее, а что нет. Тем более большинство ресурсов находятся в LVZ в загруженном виде, а из IMG подгружается/выгружается ну где то 10-20 ресурсов, поэтому эти подгрузы на PSP особо не видны. Вспомни китайские войны для ПСП и IOS - по части форматов моделей и архивов - почти все то же самое, только формат текстур другой.


На китайских войнах как раз идёт выборка по моделям и текстурам из game.pak, как из единого хранилища всех игровых ресурсов. Там есть единая таблица расположения всех объектов на карте. В сториесах карта каждый раз перезагружается с нуля, каждый раз по новому списку ресурсов из нового WRLD. По принципу прочитал большой файл - отрендерил - выгрузил. Работает быстро, но это очень большая нагрузка на шины, по которым идут данные (всё время идёт считывание и передача данных с накопителя данных на графический процессор), разработчики компенсировали это через кэширование часто повторяющихся ресурсов в LVZ. А под ведроиды нет конкретной узкоспециализированной технической составляющей, игровые ресурсы может обрабатывать совершенно разное железо, так же как на ПК. Так же как GTA5 на PS3 и PS4 может отличаться как небо и земля в плане организации ресурсов, так же могут отличаться и сториесы, которые изначально не являются мультиплатформенными и их нормальное портирование без эмуляции будет возможно только если сами разработчики переделают их под мультиплатформенность.

a4ea86ab343c.gif
BETA 4.0 COMING SOON


#779 DenielX

DenielX

    Активный участник

  • Пользователи
  • PipPipPip
  • 50 сообщений
  • Пол:Мужчина
  • Интересы:Моддинг GTA Vice City Stories и GTA Liberty City Stories (PSP).Есть оригинальные образы игр,обращаться в лс.


Отправлено 12 October 2014 - 17:53

В PSP текстурах есть флаг swizzling'a?Или просто все текстуры в swizzling'е(кроме текстур и мипмапов 32х64 и менее)?Кстати мне кажется или GTASTE неправильно отображает размеры мипмапов?



#780 majestic

majestic

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 24 October 2014 - 19:48

1) Насчет WRLD/LVZ могу сказать точно - все под свиззлингом. В CHK возможны некие флаги, но мне лично в PSP версии текстуры без свиззлинга не встречались.

2) В отличии от PS2, в PSP если индексы пикселов текстуры по ширине занимают менее 16 байт то остальные байты заполняются рандомными числами (возможно, ограничение платформы, хз), а индексы следующего ряда находятся в начале следующих 16 байт данных и.т.д. Программно лишние байты можно пропустить очень просто, но в STE сделано отображение всех 16 байт (т.е мипмапы для 4bpp ниже 32 пикселов имеют ширину 32 для всех последующих мипмапов, у 8биток, соответсвенно, 16 пикселов) и из-за этого вот такое несоответствие.





Ответить



  


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных