User Tag List

Страница 3 из 8 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 77

Тема: Архиватор с самым быстрым распаковщиком

  1. #21

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    А поделишься? Распаковщик попробую выдрать сам если не найдется у тебя в закромах.
    Вот нашел дискету с исходником, которой сам пользовался для запаковки.

    Краткая аннотация:
    Выбор файла курсор джойстиком (8, 9), упаковка - клавиша 'C'. Файл сам упакуется и запишется обратно на диск. Клавишу '0' не нажимать, она отмечает файлы, как файловом менеджере, но это не используется. Упаковщик достаточно быстрый, хотя работает алгоритмом 'в лоб', простым поиском одинаковых фрагментов без всяких деревьев и т.д. Зато очень сильно оптимизирован по скорости. При упаковке файл загружается в конец 48кб-памяти, а упакованный файл пишется с начала памяти. Если они встретятся на середине... то файл не упаковался) Иными словами, очень большие файлы, упаковать нельзя. И еще, даже в финальной версии упаковщика нашел один баг из-за которого иногда(!) самый последний байт упаковывался неправильно. Не было времени и/или усидчивости с этим разобраться, и просто напросто записывал один лишний байт в конец исходного файла, или же после распаковки проверял, если файл совпадает с исходным, значит упаковалось правильно.

    Краткая история:
    Летом 1995 года, когда Софтстар предложил сделать Great Codemasters Collection, я решил сделать из этого конфетку, и помимо восстановления и обработки всех игр, сделать еще очень быстрый, но эффектный распаковщик. Чтобы раз - и игра очень быстро загрузилась и мгновенно распаковалась, в противовес набирающим тогда моду медленным депакерам с нудной надписью 'decrunching, please wait...'. На это и делался упор. В итоге, по тому времени (а может и до сих пор) это был самый быстрый распаковщик, а качество сжатия не меньше, а может и чуть больше, чем у популярного тогда архиватора Сендецкого LZSS. Так же следует преобразовать графику по столбцам, что дает максимальное сжатие, что так же сделано было в Great Codemasters Collection.
    Кому интересно, можете загрузить любую игру из этой коллекции и посмотреть, как быстро она распакоывается, хотя после загрузки сперва идет распаковка, потом преобразование ВСЕЙ графики в игре из столбцового типа в нативный для конкретной игры формат.



    p.s.: Как пользоваться TASM'ом 3.0:
    C - каталог
    W - загрузка файла (PROBA18)
    A - ассемблирование
    E - редактирование
    R - запуск

    p.p.s.: Исходник депакера не нашел, может он есть внутри исходника пакера, не листал. Но, в любом случае, он масенький и может быть найдет в любой моей игре после лета 1995 года.
    Вложения Вложения

  2. #22

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Да, декомпрессор есть внутри.

    ---------- Post added at 03:10 ---------- Previous post was at 03:07 ----------

    Кстати, из декомпрессора можно совершенно безболезненно выкинуть одну команду, при этом он будет работать так же. Подсказал в свое время Ивамото. Кто найдет, тому респект)

  3. #23

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    p.p.s.: Исходник депакера не нашел, может он есть внутри исходника пакера, не листал. Но, в любом случае, он масенький и может быть найдет в любой моей игре после лета 1995 года.
    Он всегда использовался отдельно или были прецеденты приклеивания в начало сжатого блока (типа hrust/hrum etc)?

  4. #24

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Он всегда использовался отдельно или были прецеденты приклеивания в начало сжатого блока (типа hrust/hrum etc)?
    В основном отдельно, т.к. блоков для распаковки обычно бывало много, зачем хранить несколько копий распаковщика. А так можно сперва интро распаковать, потом картинку, потом игру. И все одним распаковщиком.

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

  5. #25

    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,551
    Спасибо Благодарностей отдано 
    205
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    83 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, а за счет чего распаковщик такой быстрый?

    Результат оптимизации кода или данных?

  6. #26

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    Titus, а за счет чего распаковщик такой быстрый?

    Результат оптимизации кода или данных?
    Результат оптимизации как кода распаковщика, так и самого формата хранения данных, чтобы он был наиболее оптимален для быстрого извлечения из потока.

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

    А уже после распаковщика и утверждения формата данных был написан упаковщик.

  7. #27

    Регистрация
    17.01.2005
    Адрес
    Gorno-Altaysk
    Сообщений
    82
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    M6:
    and #c0
    xor 2
    просто на
    and #c2?

  8. #28

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Hrumer Посмотреть сообщение
    M6:
    and #c0
    xor 2
    просто на
    and #c2?
    А я не помню) Надо восстановить смысл декомпрессора, подписать комменты к исходнику, тогда станет понятно)

  9. #29

    Регистрация
    17.01.2005
    Адрес
    Gorno-Altaysk
    Сообщений
    82
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  10. #30

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Hrumer Посмотреть сообщение
    А можно и по другому - скомпилить, если на тестовых файлах, чем больше, тем лучше - пройдет, значит, возможно и да.
    Это метод 'на авось', это не наши методы)

Страница 3 из 8 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. архиватор LZX.COM ( CP/M ).
    от Error404 в разделе Зарубежные компьютеры
    Ответов: 18
    Последнее: 12.11.2009, 15:23

Ваши права

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