Внизу архив с шрифтом. Надо просто запустить батник и появятся распакованные файлы. 88 символов в .bmp (не .tga). Нужен наш алфавит, латиница и знаки, которые были в Казуи. Должно хватить, ещё и останется.
Дата: Воскресенье, 30.03.2014, 19:29 | Сообщение # 2
Зора
Группа: Пользователи
Сообщений: 379
Статус: Оффлайн
Карта ресурсов Казуи. Чуть позже будет и для Туи. Вдруг кто расширялку с нарезалкой(без распаковки) напишет. ) + Карты (BK, BT, CBFD) хакера Coolboyman отсюда.
---------- Добавлено 31.03.14
Упаковщик GNU zip, на макс сжатии -9 пакует идентично оригиналу. GEDecompressor пакует чуть хуже, хотя вроде использует тот же gzip. Т.е. нужно модифицировать gzip под формат заголовков rare, в Казуи 1172[4 байта - размер фала]data. С возможностью вкл/выкл выравнивания байтом AA до кратности 8, выбором степени сжатия и формата заголовка и окончания архива. И будет нормальный консольный пакер. Ну и код там же, если кто вдруг плагин к круптару захочет написать. А вот Туи GEDecompressor'у пока чем-то не нравится... Но текст же я как-то достал... Странно всё это. Хотя всё равно в Туи всё несколько сложнее. )
$IMAGE4$ $IMAGE5$ добавил немножко нулей к заголовку для наглядности.
Ну и с Туи аналогично, только заголовок короче(только идентификатор(размер файла, дополненного до кратности 16 при необходимости и делённый на 16 (или просто необходимое количество строк по 16 байт) видимо такой изврат с заголовком и указателями разрабы замутили в целях экономии места, странная библиотека этот zlib который пока неясно как формируется) и выравнивание до кратности 8. $IMAGE6$
1. GEDecompressor корректно работает только с американским Туи: 11105 файлов извлекает. Так что придётся это исправлять. 2. Карта ресурсов Туи составлена, файловые указатели разобраны, формат архивов тоже ясен, не смотрел только криптованые (1А), но их немного и вроде GED их умеет паковать, так же не искал текстовые указатели (интересно есть ли они тутв текстовых файлах и живут, если получится сложить перевод европейской версии в американскую (это про Казуи)не получилось,то и с Туи почти всё получится,экзекутор, как я понимаю, в обоих частях RC4 криптован). Шрифт тоже разобран (4 байта пока не ясны (допустим, что это пробел?)), текст найден. Bonus: Тут в последнем сообщении ссылка на скрипты распаковщика в змее. ---------------------- Добавлено 5.04.14
Zlib окзалась в любом порядочном языке (Ц). И вообще очень распространённый в этих ваших тырнетах алгоритм. В том числе и Object Pascal (aka Delphi умеют с ним работать, причём в 7 не оч. хорошо). Т.е. запаковка распаковка проблемы не представляет. Надо писать плагин и составлять проект, но хотелось бы нарезалку и разобраться как же находятся архивы на которые нет указателейдля Туи разобрался... Может оказаться, что нужен не плагин а именно расширялка... )
P.S. GEDecompressor корректно работает только с американским Белкой. _________________ Добавлено 16.04.14 Удалил лишнее. Идея настолько глупа, банальна и наляписта, но...(Ц)
Сообщение отредактировал FoX_XoF - Воскресенье, 21.04.2019, 18:45
Обновил карты, добавил шрифт. Вытащил второй шрифт. Пока всё. Осталось разобраться с тем как находить архивы на которые указатели не ссылаются, в Туи их довольно много. Дальше нужны нарезалка и плагин.
$IMAGE1$
+ маленький трюк, который может оказаться полезным при поиске графики. склеит все файлы формата *.bin в один 0000.bin по порядку. + Рабочая версия пакера на Дельфи в Zlib, тут было и без заголовков. Нужно два байта заголовка заменять на свои(два, три, четыре, шесть и т.д. ) и отрезать при необходимости CRC32. +Сжатие не всегда максимальное, возможно степень сжатия меняется в соответствии с идентификатором (надо проверить). Сделал таки консольную версию, теперь надо придумать как и какие параметры добавлять. +Дебагером копаться тоже таки понадобится. ) Идея настолько глупа, банальна и наляписта, но...(Ц)
Сообщение отредактировал FoX_XoF - Воскресенье, 21.04.2019, 18:46
В тырнетах меня нет, но работа идёт. Прога Midwaydec в скриптовом языке оказалась написанной Zoinkityи делает всё, чтомне было необходимо от универсальной нарезалки и даже чуть больше (нет только собирания, но его батником можно сделать), для работы необходим Пернатый версии 3.3.0 или выше. С Круптаром и n64rawgfx это позволяет работать со множеством Ром'ов N64. Так, что теперь нарезаются/распаковываются все файлы многих игр при разборе указателей. Змей, Midwaydec. Карты с разбором первых указателей и поглощёнными картами Coolboyman's, и файллисты и извлечение/вставление шрифтов прилепил, Туи не поместился, он тут. Т.е. остаётся только плагин к Круптару. +Vip им. Э.С.
+ Обновились карты и соответственно файл листы, ещё не полные, но по ним уже можно ходить. Идея настолько глупа, банальна и наляписта, но...(Ц)
Сообщение отредактировал FoX_XoF - Воскресенье, 21.04.2019, 18:46
Может и получится. Я не пробовал. у PacoChan'a перепутаны местами цвета синий с красным, и формат там RGBA16 бит кроме размеров, а в Туи intensity 4 и 8 в зависимости от версии. А вообще к чему это я?
Помню, хотел я когда-то на исходники поглядеть программки PacoChana, на письмо он не ответил. Но так как ищущий всегда обретает, именно то что ищет. Правда не все и не всегда знают, что нужно конкретно им и удивляются потом.
Предоставлю результаты рефлексии по этому поводу: Рефлектор + плагин если вдруг кому интересно. Результат работы: $IMAGE1$ $IMAGE2$ $IMAGE3$ Т.е. программы на dotNet aka VB, C# и прочее по умолчанию идут с исходником, если автор не предполагал иного. На первом скрине видно всё, что хотелось узнать о Банджо, на втором показано как работает на примере Cutter'a. Т.е. можно считать, что ресурсы разобраны полностью, в Рюкзачке для Казуи и RC4 снимали. Т.е. здесь остаётся только работа программиста. А про третий скрин... даже не знаю к чему он тут. А вот Scroll'ы для Маски и Окарины ваяли в gcc и автор, в своё время, не проникся подобным. Так, что в данном конкретном случае к памяти вопросы ещё имеются.
Добавлено 4.08.14 ----------------------- + Запаковщики для Туи и Казуи. Какими их вижу. Т.к. программить не умею, отдельно каждый и без параметров. Может когда и улучшатся. Для текстов подходят точно.
Код
program ZlibCompressBK; {$APPTYPE CONSOLE} uses SysUtils, ZLib, Classes;
function SwapMe2(V: Word): Word; asm xchg al,ah end;
function SwapMe4(V: LongWord): LongWord; asm bswap eax end;
var SStream, DStream: TStream; MemStream: TMemoryStream; CStream: TCompressionStream; FileName: String; bytecount: Integer; B: byte; begin if ParamCount < 1 then Halt; FileName := ParamStr(1); Write('Compressing ',FileName,' ... '); SStream := TFileStream.Create(FileName,fmOpenRead OR fmShareDenyWrite); MemStream := TMemoryStream.Create; CStream := TCompressionStream.Create(clMax, MemStream); CStream.CopyFrom(SStream,SStream.Size); CStream.Free; DStream := TFileStream.Create(FileName+'.bkzip',fmCreate); bytecount := SwapMe2(4466); DStream.Write(bytecount, 2); bytecount := SwapMe4(SStream.Size); DStream.Write(bytecount, 4); MemStream.Seek(2, soBeginning); DStream.CopyFrom(MemStream,MemStream.Size-6); SStream.Free; MemStream.Free; B := $AA; while DStream.Size mod 8 >0 do DStream.Write(B, 1); DStream.Free; Writeln('Done') end.
Код
program ZlibCompressBT; {$APPTYPE CONSOLE} uses SysUtils, ZLib, Classes;
function SwapMe2(V: Word): Word; asm xchg al,ah end;
var SStream, DStream: TStream; MemStream: TMemoryStream; CStream: TCompressionStream; FileName: String; bytecount: Integer; B: byte; begin if ParamCount < 1 then Halt; FileName := ParamStr(1); Write('Compressing ',FileName,' ... '); SStream := TFileStream.Create(FileName,fmOpenRead OR fmShareDenyWrite); MemStream := TMemoryStream.Create; CStream := TCompressionStream.Create(clMax, MemStream); CStream.CopyFrom(SStream,SStream.Size); CStream.Free; DStream := TFileStream.Create(FileName+'.btzip',fmCreate); if SStream.Size mod 16 >0 then bytecount := 1 + SStream.Size div 16 else bytecount := SStream.Size div 16; bytecount := SwapMe2(bytecount); DStream.Write(bytecount, 2); MemStream.Seek(2, soBeginning); DStream.CopyFrom(MemStream,MemStream.Size-6); SStream.Free; MemStream.Free; B := $AA; while DStream.Size mod 8 >0 do DStream.Write(B, 1); DStream.Free; Writeln('Done') end.
Да есть такое дело. Объективно, Паскаль устраивает, но пока не понял как круптар работает с массивом файлов в каждом из которых текст и указатели. Мы и Николай II в курсе. Идея настолько глупа, банальна и наляписта, но...(Ц)
В этом недостаток Круптара, что для каждого файла нужен отдельный проект. Правда, автор, не так давно выложил исходники свой проги и пригласил всех желающих её доработать, как будет душе угодно.
Цитата
https://bitbucket.org/magicteam_net/kruptar/ можно склонировать через git используя sourcetree или скачать справа где написано Size 1.0 MB (download)
https://bitbucket.org/kusharami/mylib также понадобятся библиотеки Kusharami (00:12:09 13/05/2014) ещё самостоятельно нужно скачать и установить Tnt Unicode Controls и возможно что-то ещё. если будут проблемы, пишите
6. Немножечко покурить, попить кофе или захватить мир и т.п. Это зависит от индивидуальных особенностей личности.
$IMAGE7$
7. Проверить результат работы.
$IMAGE8$
8. Забрать текст.
$IMAGE9$
P.S. Profit.
ЦитатаMefistotel ()
... при наличии пояснения по пойнтерам и другим особенностям.
Все известные мне пояснения и особенности в файлах экселя, порезанных калибром 5.25 из-за особенностей форуматеперь можно по 2 метра пилить. ________________ Добавлено позже...
+ Была возможность добавить ещё файл, поэтому разберём и формат текста, в меру способностей естественно...
$IMAGE10$ + оставшиеся файловые указатели разобрались, адреса для американки 01E899B0-01E8A784, указывают на первый файл 16 байт размером, а идут файлы парами, т.е. чтобы распаковать всё, надо ещё h10 прибавлять... 851 архивчик и столько же хитрых строчек перед ними
+ в европейке 01E8DA70-01E8E83B, 845 архивов и столько же хитрых строчек перед ними. теперь осталось выяснить сколько файлов перед указателями получилось и можно карты и файллисты немножечко обновить и картинки заодно. Обновил листы и картинки.
P.S. Это я таки попробовал сложить Перевод Казуи в американку версии 1.1. 20 килобайт разницы с оригинальным текстом, однако... На пятую часть больше, видимо не судьба. Полагаю, что и тут целесообразно взять европейку. Идея настолько глупа, банальна и наляписта, но...(Ц)
Сообщение отредактировал FoX_XoF - Воскресенье, 21.04.2019, 18:47