![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() |
-=CHE@TER=- |
![]()
Сообщение
#1
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,371 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 318 раз(а) ![]() |
Итак, начнём.
Я тут увидел, что многие программы, которые я выкладываю на сайте - уже есть в XENTAX WIKI Grafs. Так что, я думаю, что имеет смысл делать распаковщики и выкладывать описания форматов, которых нет там. А то, как-то тупо получается - тут я выкладываю формат, который раскопал сам, в то время как он уже готовенький лежит там. Ну, вот этого формата я там точно не видел: QUOTE Формат: .WD Игра: Earth 2140 4 байта - количество файлов в архиве (обозначим их как TF) далее следует блок описания такого формата: 4 байта - абсолютное смещение файла относительно начала архива 4 байта - размер файла 8 байт - зарезервированно - всегда 0-ли (в том архиве, который мне давал когда-то Siberian GRemlin для написания распаковщика - "FONT.WD") 4 байта - какая-то контрольная сумма - у всех файлов разная 4 байта - смещение имени файла в списке имён (NOfs) - см. дальше Блок описания нужно повторить TF раз. 4 байта - размер списка имён Затем идёт сам список имён файлов: NAME1\0NAME2\0 и т.д. т.е. просто TF штук ASCIIZ-строк друг за другом. Если прочитать список имён в отдельную переменную-указатель, то через NOfs в качестве побайтового индекса, мы получим указатель на начало ASCIIZ-строки, с именем нужного нам файла. Имя файла может содержать относительный путь, с использованием символа слэш "/" в качестве разделителя. |
![]() ![]() |
-=CHE@TER=- |
![]()
Сообщение
#2
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,371 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 318 раз(а) ![]() |
Обновил программы. Для Total Overdose ещё раз переписал программу, чтобы она была по аналогии с той что для Alpha Prime (не буду никакие блоки пропускать). Выяснилось также, что в .NAZ архивах старый формат ZIP Data Description block (без сигнатуры) - что удивительно, так это то что даже родной WinZIP не понимает такие блоки, хотя в документации об этом прямо сказано (см. комментарии в исходных кодах к naztozip - я там детально описал что к чему), поэтому при глубоком тестировании архива, возможны сообщения об ошибках, хотя сами файлы распаковываются без каких-либо проблем или предупреждений. Вообще, интересно, чем разработчики в оригинале файлы упаковывали, потому что помимо этого мне также непонятно что это за байт 0x88 / 0x89 в extra field (как я уже писал, там должно быть минимум 4 байта - два на id и два на размер).
|
![]() ![]() |
Упрощённая версия | Сейчас: 30th April 2025 - 20:51 |