Список форумов shedevr.org.ru shedevr.org.ru
Группа перевода приставочных игр "ШЕДЕВР"
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Кодировка Лемпела-Зива

 
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Базовый ромхакинг
Предыдущая тема :: Следующая тема  
Автор Сообщение
Virtual_Killer



Зарегистрирован: 25.03.2004
Сообщения: 610
Откуда: Чекагинск

СообщениеДобавлено: Сб Окт 30, 2004 4:22 am    Заголовок сообщения: Кодировка Лемпела-Зива Ответить с цитатой

Тему удалили :(


Axel писал(а):
(заодно почитай, что такое DTE...)

Что такое DTE я прекрасно знаю.

Нужен более явный пример - будет:
Сравним двухбайтовую MTE и LZSS.

1) Двухбайтовая MTE кодировка устроена так:
В тексте чередуются символы/спецсимволы и двухбайтовые MTE коды. Этот MTE код выглядит примерно так (пример из FF3US): XXXXXXYY YYYYYYYY (количество X битов может олличаться), где X биты - означают, что это MTE код, а Y биты - кодируют слово.

2) LZSS выглядит примерно так (по книге):
В тексте чередуются символы/спецсимволы и указатели.
Причём символ и указатель различаются битом.
Например:
0XXXXXXX - символы и спецсимволы.
1XXXXXXX - начало указателя, то есть укказатель состоит из нескольких байтов (2-х в частности), например: 1XXXXXXX XXXXYYYY
Где X биты - кодируют смещение, а Y биты - длинну дублируемого текста (может включать в себя другие указатели).

Итак: и в том и в другом случае "особые" данные кодируются двумя байтами, отличие их (случаев) в том, что в 1-м случае эти пары "особых" байт кодируют - слово из словаря, а во 2-м случае - слово (любой набор символов) из самого текста.
Странно, я думал, что это и так очевидно, но пришлось вам всё разжевывать. Confused

P.S.: Во многох hex-редакторох (например, в GoldFinger'е) есть поддержка двухбайтовой MTE кодировки.
_________________
Не поймите меня правильно
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
SergeyK



Зарегистрирован: 02.12.2003
Сообщения: 1278

СообщениеДобавлено: Сб Окт 30, 2004 9:55 am    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Virtual_Killer писал(а):
Странно, я думал, что это и так очевидно, но пришлось вам всё разжевывать. Confused


Здесь тебя никто не просил это разжевывать. Все, кому надо, и без тебя это прекрасно знают.
Не нужно пытаться казаться самым умным.
Ты напорол в той теме фигни и теперь пытаешься опять увести разговор в другое русло.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
АнС
RRC2008
RRC2008


Зарегистрирован: 08.11.2003
Сообщения: 2818

СообщениеДобавлено: Сб Окт 30, 2004 2:37 pm    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Virtual_Killer писал(а):
Что такое DTE я прекрасно знаю.

Нужен более явный пример - будет:
Сравним двухбайтовую MTE и LZSS.

Итак: и в том и в другом случае "особые" данные кодируются двумя байтами, отличие их (случаев) в том, что в 1-м случае эти пары "особых" байт кодируют - слово из словаря, а во 2-м случае - слово (любой набор символов) из самого текста.


Ну ты, блин, теоретик! Very Happy Давай, объясню наконец, в чём твоя ошибка, и хватит тормозить, а то уже совсем лицо потерял.

Иногда, чтобы увидеть явную (для опытных людей) ошибку, нужно ПРОСТО ПОЭКСПЕРИМЕНТИРОВАТЬ.

В данном случае ошибка в неправильном определении подхода.
DTE и MTE - это оптимизация, а LZ - сжатие. Разные вещи, между прочим.

Например, когда из целой картины мы выбираем только неповторяющиеся тайлы, и пишем карту тайлов, это называется оптимизация. Мы же не говорим, что графика пожата, если картинка просто разбита на тайлы, которые упорядочены в соответствии с картой. По внешнему виду картинки, найдя нужный набор тайло, мы можем запросто определить вид карты тайлов, и изменять её, как угодно. Это просто оптимизация, а до настоящего сжатия ей далеко. И ЭТО следует относить к базовому ромхакингу.
А когда мы просто берём ВСЕ байты этой картины и сжимаем одним из алгоритмов упаковки (который, в отличие от оптимизации, годится для любых типов данных, так как он нечувствителен к особым закономерностям сжимаемого объекта, он не знает, что картинку можно было бы сжать лучше, если бы использовать конкретно под неё заточенный алгоритм, нет - он сжимает всё под одну гребёнку), то на выходе мы получаем зачастую совершенно нечитаемый массив данных. И этот массив будет примерно одинаковым как для сжатой музыки, так идля сжатого еткста, так и для графики - это уже совсем не то, что было до сжатия. Так вот, ЭТО экстремальный ромхакинг, а тема находится в базовом, поэтому я не собираюсь здесь разжёвывать суть LZ в проложении к ромхакингу.

Улавливаешь разницу между MTE и LZ? При оптимизации содержание инфы остаётся тем же, меняется только форма. При сжатии меняется содержание (если раньше это был текст, то после сжатия - непонятный набор байт). Философия рулит. ;)

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

Поэтому, сколько не "декомпресссируй весь РОМ" Smile Smile Smile - сжатых данных ты не отыщешь. Или будешь продолжать доказывать? :lol2:

Ну чтобы стало уже предельно понятно, поясню на твоём же примере.
Для MTE ты сможешь составить таблицу и вытащить текст из РОМа.
А какую таблицу ты будешь составлять для LZ? Very Happy Заренее определить невозможно, так как в зависимости от предыдущего текста это смещение XXXXXXX будет указывать на разные слова/слоги. Кроме того, нужно точно знать начало запакованных данных, так как если начать распаковывать не с начала, то выйдет полная чушь.
И вообще, ещё раз говорю - работа с сжатыми данными - это совсем иной уровень. Если разобрался в MTE (получил основные навыки в базовом ромхакинге), это не значит, что можно на основе тех знаний строить какие-то бредовые алгоритмы работы на качественно новом уровне. Причём, даже не опробовав на деле.

Короче, чувак, больше так не тормози. (а то Джин разочаруется и выперет тебя из MarioTeam Wink)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
gottax



Зарегистрирован: 16.11.2003
Сообщения: 588
Откуда: Курск

СообщениеДобавлено: Сб Окт 30, 2004 3:24 pm    Заголовок сообщения: Ответить с цитатой

АнС, я с тобой согласен, но есть одно "НО"Wink
Визуально можно определить, где в роме сжатая графика, где сжатый текст, а где сжатый звук. При этом используется метод подобия, то есть подразумевается, что ты уже видел, как выглядит подобная информация в пожатом виде и ты точно знаешь, что она являлась графикой/текстом/звуком.
При этом не так уж и важно, какой алгоритм используется - если наловчиться, ты уже будешь машинально визуально выделять нужные структуры.;)

Например, я открыл MP3-файл (т. е. я заранее знал, что в нём используется алгоритм сжатия MP3) в графическом редакторе, запомнил его структуру и особенности (всё визуально, учти). Потом открыл любую игру, в которой используется подобное сжатие и - оп-ля! - нашёл расположение сжатого звука! Тут надо уточнить, что в этом методе всегда присутствует погрешность (она зависит от размера рома), и чтобы определить точное положение массива сжатых данных, нужно открыть ром в хекс-редакторе и посмотреть на соседних адресах. И более того, действуя таким образом, я даже смог обнаружить звуковые данные в другом роме, в котором используется совершенно другой алгоритм сжатия звука!

Аналогично определяется местонахождение сжатой графики.

А вот с текстом гораздо сложнее (из-за малого размера сжатых текстовых данных) поэтому такой способ к поиску сжатого текста, увы, практически не подходит:(

Насчёт ненаходимости сжатого текста стандартными способами ты тоже не совсем прав, АнС. Например, текст, сжатый алгоримами Лемпеля-Зива ищется довольно легко (почему - понятия не имею, наверное из-за особенностей самого алгоритма). Сжатый по этому алгоритму текст, кстати, выглядит очень похожим на оптимизированный текст с помощью MTE/DTE, только вот изменить его хрен получится.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
АнС
RRC2008
RRC2008


Зарегистрирован: 08.11.2003
Сообщения: 2818

СообщениеДобавлено: Сб Окт 30, 2004 6:04 pm    Заголовок сообщения: Ответить с цитатой

gottax писал(а):
Насчёт ненаходимости сжатого текста стандартными способами ты тоже не совсем прав, АнС. Например, текст, сжатый алгоримами Лемпеля-Зива ищется довольно легко (почему - понятия не имею, наверное из-за особенностей самого алгоритма). Сжатый по этому алгоритму текст, кстати, выглядит очень похожим на оптимизированный текст с помощью MTE/DTE, только вот изменить его хрен получится.


ТУт дело ещё вот в чём. Если текст не удаётся сжать (ну такой он, что нет никаких закономерностей), то алгоритм LZ просто копирует его в несжатом виде, и вот как раз в таких случаях тебе повезло найти его непожатым. С графикой такое уже не выйдет. И с другими алгоритмами запаковки (а также более усложнынными разновидностями LZ, не тем, что описал Virtual_Killer) тоже такой халявы не будет (так как они даже тот текст, что не могут сжать, преобразуют в другую последовательность байт, иногда выходит даже длиннее, чем несжатый). Кстати, что-то я не помню, чтобы ты когда-либо ломал алгоритм LZ! Confused ;)

А определить "на глаз" по мешанине байт, текст это или графика, можешь разве что только ты. Smile Ты сначала этот свой метод визуального распознавания задокументируй, чтобы можно было понять, что ты вообще имеешь в виду. Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Virtual_Killer



Зарегистрирован: 25.03.2004
Сообщения: 610
Откуда: Чекагинск

СообщениеДобавлено: Вс Окт 31, 2004 4:37 am    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

АнС писал(а):
DTE и MTE - это оптимизация, а LZ - сжатие. Разные вещи, между прочим.

Вот тут ты не прав.
Цитирую по книге (про словарные методы):
Цитата:
Словарный кодировщик добивается сжатия заменой групп последовательных символов (фраз) индексами некоторого словаря. Словарь есть список таких фраз, которые, как ожидается, будут часто использоваться. Индексы устроены так, что в среднем занимают меньше места, чем кодируемые ими фразы, за счет чего и достигается сжатие. Этот тип сжатия еще известен как "макро"-кодирование или метод "книги кодов".

Так что MTE - это сжатие. Wink
Из той же книги (название раздела):
Цитата:
3.4 Адаптированные словарное кодирование: метод Зива-Лемпела.

То есть LZ кодировка - это тоже словарный метод сжатия.
Далее в этом разделе:
Цитата:
Раскодирование сжатого текста осуществляется напрямую - происходит простая замена указателя готовой фразой из словаря, на которую тот указывает.

То есть мы можем просто заменять эти указатели, на слова и получить нормальный текст. :wink:

P.S.: Это книга валяется здесь:
http://www.codenet.ru/progr/packing/modeling/intro.php
Я уже давно её скачал. Very Happy
_________________
Не поймите меня правильно
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
АнС
RRC2008
RRC2008


Зарегистрирован: 08.11.2003
Сообщения: 2818

СообщениеДобавлено: Вс Окт 31, 2004 4:36 pm    Заголовок сообщения: Ответить с цитатой

Тааак..... я попытался объяснить товарищу, в чём его ошибка, и почему невозможно
Цитата:
декомпрессировать РОМ
, а он начал искать ошибки в моих словах.

Ещё раз для диких. Словарные методы бывают радикально разные. Да, все они ориентированы на то, чтобы уменьшить размер данных. Но MTE - это совсем не то же самое, что LZ.
LZ - это сжатие в его классическом понимании, MTE - это не сжатие, а именно оптимизационный приём, который НЕ ВЕЗДЕ РАБОТАЕТ. MTE может "сжать" (а на самом деле нельзя так говорить) только текст.

И хватит уже теоретических изысканий и ссылок на разные посторонние источники. Вместо всей этой болтовни мог бы просто проверить всё на практике, как это делаем все мы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
АнС
RRC2008
RRC2008


Зарегистрирован: 08.11.2003
Сообщения: 2818

СообщениеДобавлено: Вс Окт 31, 2004 8:18 pm    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Virtual_Killer писал(а):
P.S.: Это книга валяется здесь:
http://www.codenet.ru/progr/packing/modeling/intro.php
Я уже давно её скачал. Very Happy


Хм, вообще, книга полезная. Но не для всех.
В этой статье своя терминология, слегка отличающаяся от той, что используется при ромхакинге. Там понятие оптимизация не выделяется в отдельный процесс, сжатием (а ещё и кодированием, что, по-моему, вообще не будет верным) они называют любой алгорит, уменьшающий размер исходных данных. При таком подходе и карту тайлов можно назвать сжатием. Если тебе нравится использовать чуждую терминологию - твои проблемы, но нечего навязывать её другим. Можешь сжатием называть хоть Byteswap. Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Axel
Советник


Зарегистрирован: 14.11.2003
Сообщения: 680

СообщениеДобавлено: Пн Ноя 01, 2004 9:40 am    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Virtual_Killer писал(а):

Итак: и в том и в другом случае "особые" данные кодируются двумя байтами, отличие их (случаев) в том, что в 1-м случае эти пары "особых" байт кодируют - слово из словаря, а во 2-м случае - слово (любой набор символов) из самого текста.

...и фигли толку ? Smile
ты с какого места весь ROM будешь разжимать ?


EDIT:
Virtual_Killer писал(а):
Так что MTE - это сжатие.

тогда, что такое UTF-8 (или xx-JIS) разжатие ? Laughing
_________________
Всех их вместе переведём!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Amorpho[US]
БесФорменный


Зарегистрирован: 16.12.2003
Сообщения: 161
Откуда: Воронеж

СообщениеДобавлено: Вт Ноя 02, 2004 3:47 am    Заголовок сообщения: Ответить с цитатой

АнС писал(а):
А определить "на глаз" по мешанине байт, текст это или графика, можешь разве что только ты. Smile Ты сначала этот свой метод визуального распознавания задокументируй, чтобы можно было понять, что ты вообще имеешь в виду. Wink
Я тоже такое могу. Но документировать не стану - know how. Wink
_________________
Я вернулся!!! ...ну почти. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Virtual_Killer



Зарегистрирован: 25.03.2004
Сообщения: 610
Откуда: Чекагинск

СообщениеДобавлено: Вт Ноя 02, 2004 4:23 am    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Axel писал(а):
ты с какого места весь ROM будешь разжимать ?

Да хоть с самого начала РОМа (хотя в LZ - начало текста ищется очень легко).
Можно и с начала текста, но так как конец текста довольно трудно найти, можно интерпретировать/декомпреснуть (кому как нравитсяSmile) с запасом.
Ты влюбом слечае ты будешь заменять пары байт. И без разницы чем: словами из словаря (MTE) или словами, находащимися на определённом смещении (некоторые LZ). И в том и в дрегом случае (MTE и LZ) случае, в конечном итоге, при "замене" этой пары байт, компьютер (или консоль) будет искать точный адрес закодированного слова и его длинну.

АнС писал(а):
И хватит уже теоретических изысканий и ссылок на разные посторонние источники. Вместо всей этой болтовни мог бы просто проверить всё на практике, как это делаем все мы.

Как говорит один лектор: "Теория без практики - слепа, практика без теории - невозможна." :wink:

Да, было бы неплохо опробовать мой метод на практике. Но я знаю только один РОМ с LZ кодировкой - Phantasy Star 4.
Там ТАК наворотили - кошмар. Sad
Хотя... мне нужно всего лишь разобраться как устроены там указатели и почему некоторые из них (находящиеся в середине предложения) определяют текст в самом конце предложения.
Ладно, сегодня помучаю. Very Happy
_________________
Не поймите меня правильно
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Amorpho[US]
БесФорменный


Зарегистрирован: 16.12.2003
Сообщения: 161
Откуда: Воронеж

СообщениеДобавлено: Вт Ноя 02, 2004 5:00 am    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Virtual_Killer писал(а):
Да хоть с самого начала РОМа (хотя в LZ - начало текста ищется очень легко).
Можно и с начала текста, но так как конец текста довольно трудно найти, можно интерпретировать/декомпреснуть (кому как нравитсяSmile) с запасом.
Что-то здешние смайлики не выражают всей той картины эмоций, которая возникает при прочтении подобных фраз в десятый раз.
(Здесь должен быть смайлик "ОХ..ТЬ Б..Я".)
_________________
Я вернулся!!! ...ну почти. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
SergeyK



Зарегистрирован: 02.12.2003
Сообщения: 1278

СообщениеДобавлено: Вт Ноя 02, 2004 10:42 am    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Virtual_Killer писал(а):
Да хоть с самого начала РОМа (хотя в LZ - начало текста ищется очень легко).
Можно и с начала текста, но так как конец текста довольно трудно найти, можно интерпретировать/декомпреснуть (кому как нравитсяSmile) с запасом.


Ты опять несешь хрень.
Тебе сказали - МТЕ - это оптимизация текста, а LZ - полноценный алгоритм компрессии.

И Аморфус прав - после того, как читаешь твои посты, в которых ты с упрямством повторяешь бредовые мысли (да еще их и развиваешь), становится смешно.

Virtual_Killer писал(а):
Да, было бы неплохо опробовать мой метод на практике. Но я знаю только один РОМ с LZ кодировкой - Phantasy Star 4.
Там ТАК наворотили - кошмар. Sad


Так давай, раскомпрессуй его ВЕСЬ. Ну, или, хотя бы, три четверти :)

Я тебе еще раз повторяю - разберись, чем метод компрессии отличается от метода оптимизации текста и почему нельзя декомпрессовать ВЕСЬ ром.

Еще парочка твоих подобных постов и лично я тебя буду считать упрямым %*?№*!", который не понимает очевидных вещей, не хочет в них разобраться и несет ахинею....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Axel
Советник


Зарегистрирован: 14.11.2003
Сообщения: 680

СообщениеДобавлено: Вт Ноя 02, 2004 12:35 pm    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Virtual_Killer писал(а):
Да, было бы неплохо опробовать мой метод на практике. Но я знаю только один РОМ с LZ кодировкой - Phantasy Star 4.

чтобы уже закрыть, эту бестолковую тему
и объяснить тебе, что такое заголовки Smile
предлагаю тебе вот, что -

www.shedevr.org.ru/temp/axeltmp/lzss_file.bin

в этом файле сжаты (lzSS) ДВА блока текста,
я намеренно забил заголовки этих блоков нулями (00h)...
кодировка, для упрощения задачи - windows-1251.

если ты сможешь сочинить такую прогу, которая
развернет весь файл (весь ROM Smile ), не зная,
длинну каждого блока и смещения откуда начинается
второй блок данных можешь смело поставить себе
памятник нерукотворный... Cool

а пока не можешь, лучше в этой теме своих "мудрых"
мыслей не высказывай...
_________________
Всех их вместе переведём!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
SergeyK



Зарегистрирован: 02.12.2003
Сообщения: 1278

СообщениеДобавлено: Вт Ноя 02, 2004 12:43 pm    Заголовок сообщения: Ответить с цитатой

Аксель, 5 баллов!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
АнС
RRC2008
RRC2008


Зарегистрирован: 08.11.2003
Сообщения: 2818

СообщениеДобавлено: Вт Ноя 02, 2004 2:07 pm    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Virtual_Killer писал(а):
Как говорит один лектор: "Теория без практики - слепа, практика без теории - невозможна."


Blind Killer.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Virtual_Killer



Зарегистрирован: 25.03.2004
Сообщения: 610
Откуда: Чекагинск

СообщениеДобавлено: Ср Ноя 03, 2004 3:59 am    Заголовок сообщения: Re: Кодировка Лемпела-Зива Ответить с цитатой

Axel писал(а):
в этом файле сжаты (lzSS) ДВА блока текста,
я намеренно забил заголовки этих блоков нулями (00h)...
кодировка, для упрощения задачи - windows-1251.

ОК, попробую.
_________________
Не поймите меня правильно
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
CaH4e3



Зарегистрирован: 21.01.2004
Сообщения: 195

СообщениеДобавлено: Чт Ноя 04, 2004 3:20 pm    Заголовок сообщения: Ответить с цитатой

Хыхы... Пожалуй пора приниматься за последнюю часть доки по ромхакингу, а то сжатие я оставил на потом, хотя, как погляжу. зря... ;)

Не слышал, что тут было раньше, и о чем вообще спор, но...
Киллер, ты не учел один момент: в МТЕ кодировке весь словарь известен заранее, тоесть по найденному в тексте индексу словаря можно вставить любой недостающий кусок. С LZ дело обстоит иначе, индекс ссылается на часть распакованных до сих пор данных, а в блоке запакованных данных этого куска просто нет... Ты не сможешь распаковать данные с любого места, не зная как выглядят распакованные данные до этого места, а только с самого первого байта закодированных данных, найти который - не такая тривиальная задача...

Честно говоря, до сих пор мне не попадалось чистого LZ алгоритма сжатия текста или других данных, все они были как-либо усложнены, а цена усложнения в том, что в запакованных данных нет "незапакованных данных"... Тоесть, это не чередования несжатых кусков с кодами сжатия, а набор ТОЛЬКО одних кодов сжатия, как бы они не выглядели. Исправив один лишь байт даже в тех данных, что кажутся несжатыми, мы рискуем изменить КОД для декомпрессора, тем самым изменив ход всей дальнейшей распаковки...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
CaH4e3



Зарегистрирован: 21.01.2004
Сообщения: 195

СообщениеДобавлено: Чт Ноя 04, 2004 3:54 pm    Заголовок сообщения: Ответить с цитатой

Хыхы... Аксель, жутко знакомый алгоритм ;) В HM&M для GBC используется точно такой же, с разницей в том, что в указателях на повторные данные старший и младший байты поменяны местами и увеличены на 1. :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Axel
Советник


Зарегистрирован: 14.11.2003
Сообщения: 680

СообщениеДобавлено: Чт Ноя 04, 2004 5:22 pm    Заголовок сообщения: Ответить с цитатой

CaH4e3 писал(а):
Хыхы... Аксель, жутко знакомый алгоритм Wink В HM&M для GBC используется точно такой же, с разницей в том, что в указателях на повторные данные старший и младший байты поменяны местами и увеличены на 1. Smile

я упаковывал высказывания V_Killer'а сжималкой по алгоритму
GBA LZSS, хотя не думаю, что Нинтенда меняет алгоритмы
распаковки встроенные в биос её приставок...
просто видимо сказалось, что GBA big endian а у GBC, видимо little endian архитектуры...

EDIT:
кстати, в сети можно найти .dll'ку под названием lunar (un)compress...
познавательная, однако штучка...
(правда, я не её использовал)
_________________
Всех их вместе переведём!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
CaH4e3



Зарегистрирован: 21.01.2004
Сообщения: 195

СообщениеДобавлено: Чт Ноя 04, 2004 6:35 pm    Заголовок сообщения: Ответить с цитатой

Алгоритм, кстати, несколько отличается... Возможно, смещение назад от текущего байта кодируется другим количеством бит - для GBC окно адапивного алгоритма равнялось двум килобайтам, так что перекрывало всю nametable RAM... Я упаковывал те же самые тексты своим запаковщиком по GBC'шному алгоритму, они сжимаются чуть хуже ;) Даже если размер окна прежний, скорее всего он увеличен на пару байт, за счет самых ближних битов, кодировать которые не имеет смысла (расстояние до которых меньше чем три байта)... ;)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Базовый ромхакинг Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group