Universal Steam Extractor
- impulse666
- Полковник
- Сообщения: 7405
- Зарегистрирован: 08.12.2005
- Откуда: Atman
- Благодарил (а): 2340 раз
- Поблагодарили: 590 раз
:shock:
а теперь сколько памяти это все забирает?
ктонибудь протестте работу GCFScape, GCFExplorer, Андрейловского экстрактора и скажите что быстрей %)
я здесь к сожелению не имею ниодной ГСФешки..
а теперь сколько памяти это все забирает?
ктонибудь протестте работу GCFScape, GCFExplorer, Андрейловского экстрактора и скажите что быстрей %)
я здесь к сожелению не имею ниодной ГСФешки..
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Для Скэйпа показывает 158Мб, на моей проге - 162Мб - виртуальный размер.
Для Скэйпа показывает 20Мб, на моей проге - 50Мб - реальный размер
Мерял через Process Explorer.
Для Скэйпа показывает 20Мб, на моей проге - 50Мб - реальный размер
Мерял через Process Explorer.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Решил возродить тему, тк работа над СИМ-файлами уже закончена, а для ГЦФ осталось сделать только валидацию.
Спросите, почему "Universal Steam Extractor"? А потому, что будут поддерживаться ВСЕ форматы Стима, в том числе и WAD, PAK, XZP.
USE существует в виде ДЛЛки, созданной на Дельфи, поэтому, обладатели С++, обратите на это внимание, тк надо будет писать в Ваших программах так:
, иначе будет ошибка при вызове ;)
Информация о проекте:
Спросите, почему "Universal Steam Extractor"? А потому, что будут поддерживаться ВСЕ форматы Стима, в том числе и WAD, PAK, XZP.
USE существует в виде ДЛЛки, созданной на Дельфи, поэтому, обладатели С++, обратите на это внимание, тк надо будет писать в Ваших программах так:
Код: Выделить всё
void __pascal __stdcall ClosePackage;
Информация о проекте:
- На данный момент готова поддержка всего двух форматов файлов (SIM, GCF);
- В комплект входит программа-распаковщик с минимальным интерфейсом.
- Размер ДЛЛ на данный момент составляет всего 27Кб :Yahoo!:
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Слушайте, а может просто сделать юзербар, типа "UPK|USE RuleZZ"?
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Немного поправил прогу, тк не видела СИМ-файлы ;)
ЗЫ: мне вот интерестно, зашифрованные файлы из СИМов извлекает или нет?
ЗЫ: мне вот интерестно, зашифрованные файлы из СИМов извлекает или нет?
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Итак, принимаю пожелания к работе программы. В частности, какие ошибки обрабатывать, что выводить (опционально ;) ).
На данный момент ввел:
1) проверку на объем свободного места на диске;
2) зашифрован файл или нет (для ГЦФ);
3) прерывание распаковк;
4) опцию, перезаписывать ли файлы при распаковке.
Жду пожеланий....
На данный момент ввел:
1) проверку на объем свободного места на диске;
2) зашифрован файл или нет (для ГЦФ);
3) прерывание распаковк;
4) опцию, перезаписывать ли файлы при распаковке.
Жду пожеланий....
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Сие, честно говоря, странно - Если кто будет писать программу и юзать DLL, то и сам может посмотреть свободное место на HDD, хотя...чем черт не шутит, может и пригодитсяandreil писал(а):1) проверку на объем свободного места на диске
Сделай возможность извлечения конкретного GCF (всмысле, файлов, находящихся в эквивалентном GCF, но ты, думаю, понял :) ) из SID. Я, конечно, не буду использовать эту функцию, но все же
Да, извлекает: опробовано на Source materials.gcf и Source Sounds.gcfandreil писал(а):мне вот интерестно, зашифрованные файлы из СИМов извлекает или нет?
Только, откуда ты ключи расшифровки берешь: в папке с USEextractor.exe GCFFILES.dat не лежит.
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
1) пущай будет ;)$t@t!c_V()1D писал(а):Сие, честно говоря, странно - Если кто будет писать программу и юзать DLL, то и сам может посмотреть свободное место на HDD, хотя...чем черт не шутит, может и пригодитсяandreil писал(а):1) проверку на объем свободного места на диске
Сделай возможность извлечения конкретного GCF (всмысле, файлов, находящихся в эквивалентном GCF, но ты, думаю, понял :) ) из SID. Я, конечно, не буду использовать эту функцию, но все же
Да, извлекает: опробовано на Source materials.gcf и Source Sounds.gcfandreil писал(а):мне вот интерестно, зашифрованные файлы из СИМов извлекает или нет?
Только, откуда ты ключи расшифровки берешь: в папке с USEextractor.exe GCFFILES.dat не лежит.
2) ОК, сделаю.
3) Пока ниоткуда ;) Просто при чтении ключей процедуру пчемуто выбивает на бынальном преобразовании строки в целое число :( Как ни извращался, все равно выбивает, поэтому я пока закоментировал чтение ключей. Следовательно, пока зашифрованные СИМы не поддерживаются.
ЗЫ: Сейчас добавляю чтение свойств Item'а, те его размер, тип и тд.
------------------------
ЗЫЫ: Уже работаю над WAD-файлами. Чтение заголовка уже есть, осталось сделать извлечение файлов. Следующим номером будет PAK-файлы.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Ну, а тогда почему они извлекались? Я же проверил: Source Sounds.gcf и Source materials.gcf - они же в SID'e зашифрованы...бред, блин, какой-то
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Хз, проверь там содержимое файла, может кривое?$t@t!c_V()1D писал(а):Ну, а тогда почему они извлекались? Я же проверил: Source Sounds.gcf и Source materials.gcf - они же в SID'e зашифрованы...бред, блин, какой-то
Пока то да сё, уже сделал PAK-файлы и почти - WAD-файлы Осталось только для WADов разобраться, как из массива пикселей и палитры слепить BMP-картинку.
Заодно Исправил ошибку чтения ключей.
Вес ДЛЛки увеличился на 3Кб :crazy: при добавлении двух форматов файлов :P
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Пока нет, тк еще не разобрался с контрольными суммами :( Там все настолько темно, что ужасfire64 писал(а):будет ли функция редактирования GCF файлов
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Почему моя прога падает сразу после того, как распаковка закончится? Вроде все как у тебя в примере сделал и все равно :( ... Если есть время, то посмотри приаттаченный исходник и пример программы распаковки
P.S.: Вместо запакованной GCF можешь подставить свою (находит по FindFirst).
Компиляция исходников потребует KOL.dcu, err.dcu и USEAPI.dcu - я их не стал включать из-за большого размера.
P.S.: Вместо запакованной GCF можешь подставить свою (находит по FindFirst).
Компиляция исходников потребует KOL.dcu, err.dcu и USEAPI.dcu - я их не стал включать из-за большого размера.
- Вложения
-
- USE.7z
- Те самые исходники :D
- (145.8 КБ) 230 скачиваний
- USE.7z
- Те самые исходники :D
- (145.8 КБ) 230 скачиваний
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Прошелся дебагером - все ОК. Распаковало, дошло до ЕНДа. Ошибка выскакивает ПОСЛЕ захода на функцию ;)$t@t!c_V()1D писал(а):Почему моя прога падает сразу после того, как распаковка закончится? Вроде все как у тебя в примере сделал и все равно :( ... Если есть время, то посмотри приаттаченный исходник и пример программы распаковки
ЗЫ: Что бы запустить ДЛЛку в отладочном режиме надо сделать так:
1) копирем все файлы программы, которая использует эту ДЛЛку в папку, где получается скомпилированная ДЛЛка.
2) В Дельфи выбираем в меню "Run->Parameters...". Там в "Host application" добавлем полный путь к нашей программе (в данном случае это путь к tmp.exe), включая имя самого ЕХЕфайла.
Все, теперь можно в ДЛЛке ставить брэкпоинты и ловить баги ;) Сделай так и увидишь, что USE.dll здесь не причем. Но полюбому, надо после извлечения сделать закрытие ГЦФ-файла процедурой ClosePackage, тебе так не кажется?
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
andreil
Проблема решилась этими 2-мя строками:Но вся проблема в том, что мне не нужно, чтобы программа завершалась сразу после распаковки...В проге (tmp.exe) у меня тоже все абсолютно безглючно - там их в принципе быть не может: всего 4 функции вызова и 1 MessageBox в конце :) . Может, это специфика NSIS?
C ClosePackage все норм (хотя, по-моему, судя по исходникам, при извлечении GCF она не нужна, но я все же её вставил и она отлично проходит). Самое интересное начинается между строкой с "end;" (о чем ты и писал ) и процедурой выдавания ошибки доступа к памяти... :shock: :%) То есть функция, как я понял, пытается выйти, но проваливается и виновато в этом получается приложение, а не DLL... :Search: .
Проблема решилась этими 2-мя строками:
Код: Выделить всё
SendMessage(hwndParent,WM_CLOSE,0,0);
Halt(0);
C ClosePackage все норм (хотя, по-моему, судя по исходникам, при извлечении GCF она не нужна, но я все же её вставил и она отлично проходит). Самое интересное начинается между строкой с "end;" (о чем ты и писал ) и процедурой выдавания ошибки доступа к памяти... :shock: :%) То есть функция, как я понял, пытается выйти, но проваливается и виновато в этом получается приложение, а не DLL... :Search: .
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!