Warhammer 40k Dawn Of War
Автор
Hunter
, Mar 12 2007 19:30
Сообщений в теме: 32
#21
Отправлено 08 May 2007 - 21:44
А без подсчета хешей игра принимает архивы? Попробуй разный порядок байтов, может поможет.
Вот что люди с Relic Forums пишут про подсчет md5:
Вот что люди с Relic Forums пишут про подсчет md5:
Цитата | ||||
MD5 Checksums Note: the full seed strings are not given here due to possible legal reasons, to find out how to get the full seed string, follow the link attached to the seed string. Both MD5 checksums have a seed string which is given to the MD5 algorithm before any data. Even though the seed strings look like MD5 checksums, pass them to the algorithm as NULL terminated ASCII string. The header MD5 is an MD5 of the seed string “DFC9nnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn” followed by the data from byte 180 and of length specified by the data header size:
The data MD5 is an MD5 of the seed string “E015nnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn” followed by the data from byte 180 to the end of the file:
|
#22
Отправлено 09 May 2007 - 09:54
Да, мне оттуда уже помогли.
Плагин готов, работает со всеми описанными в спецификации версиями.
Есть окошко настроек для выбора версии и сжатия.
Но тестировался плагин только на Dawn of War.
Скачать можно здесь http://ex-ve.ucoz.ru/files/xsga.rar
Если хотите, можете выложить на этом сайте.
jTommy, спасибо за спецификацию, но там надо поправить некоторые вещи.
Плагин готов, работает со всеми описанными в спецификации версиями.
Есть окошко настроек для выбора версии и сжатия.
Но тестировался плагин только на Dawn of War.
Скачать можно здесь http://ex-ve.ucoz.ru/files/xsga.rar
Если хотите, можете выложить на этом сайте.
jTommy, спасибо за спецификацию, но там надо поправить некоторые вещи.
Код |
Signature : array[0..07] of ANSIChar; // Сигнатура, всегда равна "_ARCHIVE" Version : cardinal; // Версия архива HeadMD5 : array[0..15] of byte; // MD5 хеш данных заголовка ArchName : array[0..63] of WideChar; // Имя архива (Unicode) DataMD5 : array[0..15] of byte; // MD5 хеш всего архива HeadSize : cardinal; // Размер всех заголовков и TOC'ов DataOffset: cardinal; // Смещение данных первого файла |
Сначала должно идти DataMD5, а потом HeadMD5 - это во всех версиях. В первой версии только DataMD5.
Код |
TSGATOCInfo = packed record RootDir : array[0..63] of ANSIChar; // Имя корневого каталога TOC (ASCIIZ строка) TOCName : array[0..63] of ANSIChar; // Имя TOC (ASCIIZ строка) FirstDir : word; // Номер первого каталога, относящегося к этой TOC LastDir : word; // Номер последнего каталога, относящегося к этой TOC FirstFile : word; // Номер первого файла, относящегося к этой TOC LastFile : word; // Номер последнего файла, относящегося к этой TOC Unknown : word; // Неизвестно (всегда равно 0x00) end; |
Здесь LastDir и LastFile тоже - 1
Код |
TSGAFileInfoV4 = packed record NameOffset: cardinal; // Смещение имени файла [+TSGAHeader.NamesOffset] DataOffset: cardinal; // Смещение данных файла [+TSGAMainHeader.DataOffset] PackSize : cardinal; // Размер сжатых данных DataSize : cardinal; // Размер распакованых данных CRC32 : cardinal; // Возможно CRC-32 или хеш-значение IsPacked : word; // Флаг компрессии end; |
Здесь не CRC32, а время модификации файла FileTime. Но формат нестандартный.
Код |
Для версий 1 и 2 (IC, HW2 и DoW): TSGAFileDataV2 = packed record Name : array[0..255] of ANSIChar; // Имя файла (без пути) Unknown: int64; // Две CRC-32 или хеш-значение Data : pointer; // Данные файла end; |
Вместо "Unknown: int64" должно быть:
FileTime: Cardinal; //Время модификации файла, тоже в нестандартном формате.
CRC32b: Cardinal; //Контрольная сумма (именно CRC32b) файла в распакованном виде
Код |
Для версии 4 (CoH): TSGAFileDataV4 = packed record Name : array[0..255] of ANSIChar; // Имя файла (без пути) Unknown: cardinal; // CRC-32 или хеш-значение Data : pointer; // Данные файла end; |
Здесь тоже вместо Unknowm должно быть CRC32b.
#23
Отправлено 10 May 2007 - 15:15
Ох. Всё таки не так как надо работает упаковка - когда много папок в архиве, появляются баги. Буду исправлять.
#24
Отправлено 11 May 2007 - 11:32
#25
Отправлено 20 May 2007 - 15:47
JTommy, можешь сделать автоматический конвертер (типа to waw?)
А то у меня руки не оттуда растут
А вообще-то просто времени нет разбираться - скоро защита диплома, а у меня он готов процентов на 70
А то у меня руки не оттуда растут
А вообще-то просто времени нет разбираться - скоро защита диплома, а у меня он готов процентов на 70
#26
Отправлено 20 May 2007 - 18:35
Xasha666, извини, что долго не отвечал. Спасибо за исправления в спецификации, но есть вопросы.
Цитата |
Сначала должно идти DataMD5, а потом HeadMD5 - это во всех версиях. В первой версии только DataMD5. |
Это точно? Потому что на форуме RelicNews было наоборот. Кстати, ты справился с подсчетом хеш-значений?
Цитата |
Вместо "Unknown: int64" должно быть: FileTime: Cardinal; //Время модификации файла, тоже в нестандартном формате. CRC32b: Cardinal; //Контрольная сумма (именно CRC32b) файла в распакованном виде |
А что значит "b" и известно ли тебе начальное значение при подсчете crc32?
Hunter, всмысле "автоматический конвертер"?
Hunter, всмысле "автоматический конвертер"?
#27
Отправлено 20 May 2007 - 18:45
В прямом (или не очень)!! To Wav Кто делал? Там файлик bat`овский был: кликаешь по нему и прога конвертит всё, что может! Или нет? В общем файл назывался convAll.bat Для какой именно игры я его использовал не помню, но то что с DOS`ом не мучался эт точно.
Вопрос не по теме: как создать бат файл с помощью которого можно было бы запустить 2 приложения: сначала одно, потом другое (без закрытия при этом первого)? А то у меня возникла небольшая проблемка
Вопрос не по теме: как создать бат файл с помощью которого можно было бы запустить 2 приложения: сначала одно, потом другое (без закрытия при этом первого)? А то у меня возникла небольшая проблемка
#28
Отправлено 20 May 2007 - 19:48
Hunter:
Цитата |
To Wav Кто делал? Там файлик bat`овский был: кликаешь по нему и прога конвертит всё, что может! |
Его Xplorer делал. Я надеюсь ты не хочешь таким образом запускать плагин товарища Xasha666?
Вообщем иди на мой сайт (вон кнопка внизу этого сообщения), там найдешь распаковщик SGA архивов.
По поводу второго вопроса ничего не скажу - не знаю.
Вообщем иди на мой сайт (вон кнопка внизу этого сообщения), там найдешь распаковщик SGA архивов.
По поводу второго вопроса ничего не скажу - не знаю.
#29
Отправлено 21 May 2007 - 17:15
Hunter!
Читай справку по команде "start" и будет тебе счастье:
start /?
Читай справку по команде "start" и будет тебе счастье:
start /?
#30
Отправлено 24 May 2007 - 19:14
Я же только музыку хочу конвертнуть, чтоб слушать можно было!!! С SGA разобрался довольно давно, Я музыку конвертнуть не могу!!! Потому, как программированием не увлекался, а из DOS`а могу только хард форматнуть, либо дефраг сделть!!! И специальность уменя с програмированием не пересекается
#31
Отправлено 25 May 2007 - 02:22
Цитата | ||
Это точно? Потому что на форуме RelicNews было наоборот. |
Да, это точно. Проверено.
Код |
0x000000 - Identifier ASCII String (8) 0x000008 - Version (4) 0x00000C - Data MD5 (16) 0x00001C - Archive Type UNICODE String (128) 0x00009C - Header MD5 (16) 0x0000AC - Data Header Size (4) 0x0000B0 - Data Offest (4) |
Цитата |
Кстати, ты справился с подсчетом хеш-значений? |
Мне помогла библиотека HashLib.
Цитата | ||
А что значит "b" и известно ли тебе начальное значение при подсчете crc32? |
В той же библиотеке есть и подсчёт CRC32b - это просто модификация CRC32, для неё не нужно начальное значение.
#32
Отправлено 25 May 2007 - 16:10
Xasha666, спасиб, эта инфа пригодится в будушем.
Hunter, как ты заметил, тут шел разговор об SGA, поэтому я и подумал, что ты о том же...
У тебя проблема только с Dark Crusade или с другими играми тоже?
А в игре музыка есть? Может у тебя пиратская урезанная версия.
Ранее, в этой теме, я давал тебе bat-файл, ты все сделал правильно? Точно правильно?
Hunter, как ты заметил, тут шел разговор об SGA, поэтому я и подумал, что ты о том же...
У тебя проблема только с Dark Crusade или с другими играми тоже?
А в игре музыка есть? Может у тебя пиратская урезанная версия.
Ранее, в этой теме, я давал тебе bat-файл, ты все сделал правильно? Точно правильно?
#33
Отправлено 15 June 2007 - 08:59
у меня полная русская версия от буки
что имеено я делал с Бат файлом - не помню - давно это было...
что имеено я делал с Бат файлом - не помню - давно это было...