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


Dageron

Регистрация: 20 Dec 2008
Offline Активность: 18 Dec 2012 09:57
*****

Мои сообщения

В теме: Исполняемый файл Vice City 10th Anniversary Edition

08 December 2012 - 15:42

Поправил название темы, чтобы не путать с этой.

В теме: GTA Vice City 10th Anniversary Edition

08 December 2012 - 06:51

Перевод снова новый, не с официального российского издания 1С/SoftClub? По скриншотам только про шрифт можно сказать, что он не оригинальный, а так очень на издание 2010 года похоже. И довольно интересно, какова миссия с игрушечным вертолетом?) Планирую брать телефон с Android, так что наверное тоже удастся посмотреть игру...

В теме: Моддинг LCS и VCS (PSP/PS2)

28 November 2012 - 17:53

Очень хорошо, что по текстурам так продвинулись).
С тем, как текстуры в циклический список с указателями выстраиваются, вы тоже разобрались?
(это в LCS/VCS на обеих платформах так)

Да, и вот, если что, чтение параметров на PSP (фрагмент кода из Stories Texture Explorer):
WorkFile.Read(iBPP, 1);
WorkFile.Seek(WorkFile.Position-1, 0);
iBPP:=iBPP and $0F;
iMipMaps:=iMipMaps shr 4;
WorkFile.Read(iWidth,1);
WorkFile.Seek(WorkFile.Position-1, 0);
WorkFile.Read(iHeight,1);
iWidth:=GetParam(iWidth shr 4);
iHeight:=GetParam(iHeight and $0F);
{функция GetParam - возведение 2 в степень аргумента}

В теме: Моддинг LCS и VCS (PSP/PS2)

28 November 2012 - 07:48

DenielX
Внимательно прочитал ваши публикации).

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

Переписав алгоритм zlib и самостоятельно подобрав все параметры (коды и деревья Хаффмана, словари и т.д.), вряд ли удастся сделать сжатие более оптимальным. Обычно для таких целей все же используются готовые реализации и стандартные библиотеки (я, например, в своих программах использую zlib-функции Delphi, этого вполне достаточно; за редким исключением по тестам SILENT_Pavel-а через одну другую программку можно добиться на пару-тройку байт меньше, но это обычно опять-таки учитываем). Поэтому никогда не задумывался над тем, где заканчиваются запакованные zlib-ом данные, достаточно оффсета начала.

В итоге вы пришли к тому же выводу, который в общем-то еще был сделан ~ в 2009 году, - логично, что чем больше повторяющихся байт в незапакованном файле, тем меньше будет файл запакованный. Мы, например, использовали этот вполне очевидный нюанс в наших локализациях для упаковки шрифтов и меню (иногда имеет смысл адаптировать изображения так, чтобы они имели больше "заполненных одним байтом" областей), используем и в *.wrld/*.lvz.

Пара вопросов:
1.Кто нибуть разбирал .chk от PSP?(желательно LCS)
2.Как быть на PSP с альфа-слоем?

Ну структура *.chk разобрана достаточно, чтобы извлекать и заменять текстуры. Из неразобранного остается только логика построения таблицы оффсетов в заголовке, применяемая для более экономичного распределения памяти на консолях (что-то вроде relocation table), но ее и менять-то не слишком нужно. Вам нужно описание или подробно про что-то конкретно? Сжатия там никакого нет, равно как и чего-либо похожего на словарь, применяемый при сжатии.

На PSP альфа-слой такой же, как и на PS2, с тем лишь отличием, что максимальное значение альфы не 0x80, а 0xFF.

В теме: Скриптинг в LCS и VCS (PSP/PS2)

28 October 2012 - 06:07

Нашли комбинацию, активирующую еще одну debug-функцию:
HOLD L1 + Down - включить отладочный режим (обязательно!)
HOLD L1 + Select - убрать пешеходов и автотранспорт (дороги будут пустыми)
Ссылка на main.scm старая.