SAU (Sprite and Archive Utility)
#1
Отправлено 02 April 2012 - 11:24
http://phrozenkeep.h...php?f=7&t=58786
в верхнем посте ссылки на исходники распаковщика (на С), который по идее поддерживает много вкусных форматов из известных игрушек. Поскольку в программировании я ни бум-бум, прошу помощи - не скомпилирует ли кто поиски готовой программы ничего не дали, все упоминания ведут на тему по ссылке и пару похожих, того же автора. Полагаю, многим пригодится, да и описания некоторых форматов кодерам наверняка будут интересны...
#2
Отправлено 02 April 2012 - 17:01
Во-первых, megaupload.com сдох, а на uploading.com постоянно занято - "приходите завтра".
Во-вторых, собрать эту хрень под Windows ещё надо постараться, потому что, как выяснилось, под Windows НЕТ нормального make'а.
Кое-как собрал, но не гарантирую что оно будет работать правильно так как мне не на чем проверить.
sau12w32.zip
Официальный сайт утилиты: http://sym.at.ua/load/sau_v1_1/1-1-0-4
Версия 1.2 (2014.10.27):
- исходные коды обновлены с официального сайта с версии 0.3 до 1.1
- исправлен размер извлекаемых файлов для игры Helbreath:
// fmt_pak.с int S; // CXTP-1.2 <...> //writeFile(0, E[I].Len, Tmp, M+E[I].Off + sizeof(spriteHeader) + SH->NFrames*sizeof(frame)); S = sizeof(spriteHeader) + SH->NFrames*sizeof(frame); // CXTP-1.2 writeFile(0, E[I].Len - S, Tmp, M + E[I].Off + S);- добавлена подсказка при ошибке распаковки архивов и копирайты
#3
Отправлено 03 April 2012 - 09:02
Divine Divinity - работает (неверно задавал командную строку)
Age of Wonders 1-2 - работает
Myth of Soma - работает
надо так полагать, работает и с прочими заявленными играми и форматами. Так что тему можно закрывать, ценную утилитку брать на заметку и пользовать
#4
Отправлено 25 October 2014 - 12:14
Да спасибо. Я нашёл программу. Но, если с другими вашими программами у меня небыло проблем, то с распаковкой файлов Divine Divinity у меня проблема. К примеру у меня файл CPackedi.3c Что я должен написать, чтобы он распаковался. Пишу sau CPackedi.3c и ничего не происходит. Пишу sau CPackedi.3c и любое слово, то программа пишет What is '3c'? Подскажите пожалуйста.
Сообщение отредактировал Lord_Draconis: 25 October 2014 - 16:54
#5
Отправлено 25 October 2014 - 16:59
sau.exe divinity=CPackedi.3c tga=CPackedi.tga
И, вообще, без параметров программа выводит справку по использованию:
sau.exe >sau_help.txt
Читаем и просвещаемся.
#6
Отправлено 25 October 2014 - 18:06
Я сделал как вы написали divinity=CPackedi.3c tga=CPackedi.tga и мне пишет, что не может сконвертировать. Я даю ссылку на файл. Может взгляните, почему у меня не выходит.
P.S. Заранее спасибо.
#7
Отправлено 25 October 2014 - 18:44
Но у меня оно падает, т.к. нет файла CPackedb.1c, который программа пытается открыть (похоже что i- и b-файлы связаны).sau.exe divinity=./CPackedi.1c dir=.
#8
Отправлено 25 October 2014 - 19:57
Сделал как вы написали, открыл сразу два файла и распаковщик выдаёт ошибку.
Вот ссылка на 2 файла CPackedi.3c и CPackedb.3c
Если надо, то скину ещё файлы.
Вот пример ошибки. Я обвёл красным.
#9
Отправлено 26 October 2014 - 08:22
Для танкистов: в моём сообщении выше ничего менять не нужно было, кроме имени входного файла:
CPackedi.1c
CPackedi.2c
и т.д.
Напоминаю, что для каждого i-файла, рядом должен лежать соответствующий ему b-файл (потому что они связаны: без (i)ndex'ного не будет распаковываться (b)inary'ный и наоборот):
CPackedi.1c и CPackedb.1c
CPackedi.2c и CPackedb.2c
и т.д.
У меня всё работает на файлах CPackedi.3c и CPackedb.3c из последнего архива.
#10
Отправлено 26 October 2014 - 11:35
Попробовал распаковать графику из игры Helbreath. В итоге распаковывает паки не до конца. К примеру из 15 файлов в паку он сконвертировал 14 в jpeg, а 15-ый не смог.
Вот файл, проверте
http://rghost.ru/58723455
#11
Отправлено 26 October 2014 - 19:23
Размер извлекаемых данных из .PAK архивов игры Helbreath неверно вычислялся (с учётом заголовка - больше чем нужно) - все файлы извлекались с мусором в хвосте, а последний рушил программу из-за попытки чтения данных после конца архива.
Ссылку на программу во втором сообщении этой темы обновил.
#12
Отправлено 27 October 2014 - 20:02
И опять объясните для тех кто в танке ... т.е для меня. Игра Black Moon Chronicles. Не получается распаковать спрайты. Что именно нужно написать, чтобы пошла распаковка.
Вот пример графики:
#13
Отправлено 28 October 2014 - 07:11
Для того чтобы узнать правильный тип архива - рекомендую всё же прочитать справку к программе (выше уже писал как). Я, кстати, теперь даже сообщение об ошибке поправил - оно теперь носом тычет в то, что программа хочет увидеть в качестве выходного формата.
На файлах из архива Dragons.zip у меня всё распаковывается без проблем.
#14
Отправлено 29 October 2014 - 15:06
Кстати, ваша прога распаковывает и игру Beyond Divinity, от тех же создателей, что и Divine Divinity. Но есть небольшой косячок. Шесть архивов распаковалось, а на седьмом на половину распаковки останавливается и неправильно распаковывает последние файлы. Скидываю архив седьмого файла. Если хотите поправить сою прогу.
#15
Отправлено 30 October 2014 - 10:09
2) Сам автор пишет в комментариях к исходным кодам у формата Divinity, что там достаточно много битых файлов, а один архив так, вообще, программно запрещён для распаковки (видимо, программа с ним падает).
3) Ковыряться и искать можно ли это обойти и как, честно говоря, мне не интересно.
#16
Отправлено 07 February 2016 - 11:09
Приветствую. Какую команду нужно написать для извлечения игры Myth of Soma?
#17
Отправлено 07 February 2016 - 14:00
sau.exe obm=./filename.ext dir=.
sau.exe spl=./filename.ext dir=.
#18
Отправлено 07 February 2016 - 16:22
Не получается. Вот пример одного файла. Посмотрите пожалуйста http://rghost.ru/8pGvHjJcF
Я в программирование не понимаю. Но и логики не вижу, почему к разным играм разные команды. Для одних 2 файла нужны для распаковки, я понимаю это и команду эту понял, но почему где один файл приходиться писать по разному. Ладно. На этот вопрос можно не отвечать, это мои мыли в слух.
#19
Отправлено 17 February 2016 - 11:27
Потому что выложенный файл хоть и называется .OBM, но, на самом деле, нифига не .OBM, а .SPL внутри.
sau.exe, увы, не умеет определять форматы по сигнатурам (подозреваю из-за того что не у всех форматов они есть), так что пытается конвертировать то, что указали в качестве входного формата, а когда форматы не совпадаются - получаем ошибку.
Так что если sau.exe поддерживает несколько разных форматов из какой-то игры - пробуем по очереди их все (независимо от расширения файла) - может на каком-то сработает.
Кстати говоря, вот ещё какой-то редактор для .SPL есть (не пробовал, к тому же .NET 4 Framework у меня не установлен (и, нет, я не собираюсь его ставить), так что с вопросами, если не взлетит, ко мне не приставать):
SomaVision 3 SPL Viewer and Editor for Myth of Soma