Heroes of Might and Magic II
Автор
AGB
, Jun 15 2005 20:51
Сообщений в теме: 33
#21
Отправлено 18 June 2005 - 14:43
Извините, господа профи!
А эт вообще так делаеца?! Я никогда в жизни ничо не раскодирЫвал... Я по правельному пути вообЩче иду?
Может уже давно сделан похожий скриптик где-то?
А эт вообще так делаеца?! Я никогда в жизни ничо не раскодирЫвал... Я по правельному пути вообЩче иду?
Может уже давно сделан похожий скриптик где-то?
#22
Отправлено 18 June 2005 - 16:56
А что, собственно, объяснять? Ты прекрасно сам справился с одной из разновидностей RLE . Если будет желание, можешь взглянуть исходники конвертера DEF спрайтов из Третьих Героев (тоже, кстати, на Delphi). Там наворочено еще больше, и некоторые типы мне так и не удалось разобрать...
P.S.: Конвертер на PHP это сильно
P.S.: Конвертер на PHP это сильно
#23
Отправлено 18 June 2005 - 22:27
А как работает файл палитры? Я там его где-то уже прилагал в виде ссылки..
#24
Отправлено 18 June 2005 - 22:47
Ну да... Думать надо перед тем, как писать... Вот она:
Я посчитал символы в файле палитры - их оказалось 768. А цветов в Героях вроде 256 и я заметил, что 768/256 - 3! И у РГБ как раз 3 составляющие цвета. Сгруппировал цвета по 3, и вот что получилось. Тока чувствую себя обманутым - там 21 чёрный цвет, т.е. всего в игре не 256 а 236 цветов.... Но теперь я сделал, чтобы палитра из файла грузилась, и больше не надо каждому индексу цвет прописывать.
И ещё - выгодно то, что меняя палитру и картинки меняюца! Т.е. если поменять контрастность в палитре, то и вся игра станет контрастнее.
У АГБ назревает чудовищный план по издевательству над Heroes 2!!! Му-ха-ха!!!
Я посчитал символы в файле палитры - их оказалось 768. А цветов в Героях вроде 256 и я заметил, что 768/256 - 3! И у РГБ как раз 3 составляющие цвета. Сгруппировал цвета по 3, и вот что получилось. Тока чувствую себя обманутым - там 21 чёрный цвет, т.е. всего в игре не 256 а 236 цветов.... Но теперь я сделал, чтобы палитра из файла грузилась, и больше не надо каждому индексу цвет прописывать.
И ещё - выгодно то, что меняя палитру и картинки меняюца! Т.е. если поменять контрастность в палитре, то и вся игра станет контрастнее.
У АГБ назревает чудовищный план по издевательству над Heroes 2!!! Му-ха-ха!!!
#25
Отправлено 19 June 2005 - 00:10
Нет, ну разве это не круто:
Ещё не тестировал с более большими картинками, но теперь всё пойдёт пучком! Скоро будет готов Мега-ПХП-скрипт! от Делфей я кажись пока отказался..
Ещё не тестировал с более большими картинками, но теперь всё пойдёт пучком! Скоро будет готов Мега-ПХП-скрипт! от Делфей я кажись пока отказался..
#26
Отправлено 19 June 2005 - 00:12
Кстати, можете сравнить - на картинках, как и на палитре написаны индексы - они одинаковые ) Во как точно работают Советские Программисты!...гхм...мда.
#27
Отправлено 19 June 2005 - 00:19
Ой, сорру за такой частый флуд, НО! Забыл добавить, что когда делал палитру, и комбинировал по 3 байта, то она на самом-то деле не получилась такой, как на прошлом скрине. В действительносте же мне пришлось зачем-то умнажать всё на 4! А в оригинале она смотрится так:
Зачем она такая тусклая?
Зачем она такая тусклая?
#28
Отправлено 19 June 2005 - 00:22
Ну мне добавить нечего
Да, в этой палитре 256 цветов по 3 составляющей на цвет. Можно только добавить, что в ряде игр палитра может занимать 1024 байта - четверту составляющую пропускать надо... То, что там 20 цветов не хватает, так это, наверное, зарезервированные цвета. Скажем, под цвет расы. Или какие другие цели... Прозрачность, опять же. Полупрозрачность... Над этим думать не надо, раз все сконвертировалось . Надо сказать, тебе крупно повезло, что при разборе изображения можно было сравнивать с тем, что долно получиться. Как правило разбор производится вслепую
Поэтому первое, что я делал, взяв для просмотра игру, это пытался найти картинки поменьше, и искал их в игре . Помнится, выскребал со скриншота Казаков шляпу крестьянина... Помогло
P.S.: По поводу палитры, да, есть и такие Надо домножать...
Да, в этой палитре 256 цветов по 3 составляющей на цвет. Можно только добавить, что в ряде игр палитра может занимать 1024 байта - четверту составляющую пропускать надо... То, что там 20 цветов не хватает, так это, наверное, зарезервированные цвета. Скажем, под цвет расы. Или какие другие цели... Прозрачность, опять же. Полупрозрачность... Над этим думать не надо, раз все сконвертировалось . Надо сказать, тебе крупно повезло, что при разборе изображения можно было сравнивать с тем, что долно получиться. Как правило разбор производится вслепую
Поэтому первое, что я делал, взяв для просмотра игру, это пытался найти картинки поменьше, и искал их в игре . Помнится, выскребал со скриншота Казаков шляпу крестьянина... Помогло
P.S.: По поводу палитры, да, есть и такие Надо домножать...
#29
Отправлено 19 June 2005 - 00:33
Ха! Ну Я же не дурак! Я специально выбирал игру, чтобы сравнивать своё с тем, что должно получится.
На самом деле тоже думаю, что мне очень повезло. Во первых, потому что игрушку как-то выбрал не последней сложности. Да и потом - процентов 80 этого конвертера моего - чистая удача. Вот тока посмотрим, удасца мне эту удачу удержать до конца работы...
<<<ЖДИТЕ СКОРЫХ НОВОСТЕЙ>>>
На самом деле тоже думаю, что мне очень повезло. Во первых, потому что игрушку как-то выбрал не последней сложности. Да и потом - процентов 80 этого конвертера моего - чистая удача. Вот тока посмотрим, удасца мне эту удачу удержать до конца работы...
<<<ЖДИТЕ СКОРЫХ НОВОСТЕЙ>>>
#30
Отправлено 19 June 2005 - 08:54
а чего оставалось делать то? тебе линк на инструменты дали и сё - дальше сам
#31
Отправлено 03 August 2006 - 19:55
Прошел год...
А товарищ AGB так и не порадовал нас распаковщиком. И вдохновленный его примером я решил написать его сам.
Конечно не все его рассуждения были верны , но все равно выражаю ему большое СПАСИБО за проделанный труд, а точннее за то что не поленился горячо и красочно изложить свои мысли, которые оказались очень полезными!!!
http://jtommy.hut2.r...nverter_v10.zip
Программа консольная.
Исходники не выкладываю потому что я скорее диллетант а не программист, и себе дороже копаться в том что я там наворотил
Зато составил описание формата ICN, постарался подробно объяснить алгоритм декомпресси. Надеюсь кому-нибудь пригодится!!!
А товарищ AGB так и не порадовал нас распаковщиком. И вдохновленный его примером я решил написать его сам.
Конечно не все его рассуждения были верны , но все равно выражаю ему большое СПАСИБО за проделанный труд, а точннее за то что не поленился горячо и красочно изложить свои мысли, которые оказались очень полезными!!!
http://jtommy.hut2.r...nverter_v10.zip
Программа консольная.
Исходники не выкладываю потому что я скорее диллетант а не программист, и себе дороже копаться в том что я там наворотил
Зато составил описание формата ICN, постарался подробно объяснить алгоритм декомпресси. Надеюсь кому-нибудь пригодится!!!
#32
Отправлено 27 September 2006 - 15:50
На основе тутора Xexys'a сделал скрипт для Image Hacker
Извиняюсь за длинный пост
Извиняюсь за длинный пост
Код |
var count,Image_W,Image_H,x,y,n,i,j,chislox,byte,out_byte,Shadow_counter:integer; showmessage('Укажите пожалуйтста файл содержащий палитру'); openfileas('*.pal'); for i:=0 to 255 do begin r:=read(1); g:=read(1); b:=read(1); setcolortable(i,rgb(r*4,g*4,b*4)); end; closefile; showmessage('Укажите пожалуйтста файл содержащий рисунок'); openfileas('*.icn'); count:=read(1); setpos(10); width:=read(3); height:=read(3); showmessage('Картинок в файле найдено: '+tostr(count)+'['+tostr(width)+'*'+tostr(height)+']'); setpos(15); offset:=read(3); showmessage(tostr(offset)); setpos(offset+6); setsize(width,height,8); x:=0; y:=0; byte:=read(1); chislox:=byte; repeat if chislox=0 then begin x:=0; n:=y; y:=n+1; end; if chislox<=127 then begin for i:=1 to chislox do begin byte:=read(1); setpixel(x,y,byte); n:=x; x:=n+1; end; end else begin if (chislox>=128)and(chislox<=191) then begin for i:=1 to (chislox-128) do begin setpixel(x,y,0); n:=x; x:=n+1; end; end else if chislox>=192 then begin if chislox=192 then begin byte:=read(1); if (byte mod 4)=0 then begin out_byte:=byte; Shadow_counter:=read(1); end else begin Shadow_counter:=(byte mod 4); n:=(byte mod 4); out_byte:=byte-n; end; byte:=read(1); end else if chislox=193 then begin byte:=read(1); out_byte:=read(1); for i:=1 to byte do begin setpixel(x,y,out_byte); n:=x; x:=n+1; end; end else begin byte:=read(1); for i:=1 to (chislox-192) do begin setpixel(x,y,byte); n:=x; x:=n+1; end; end; end; end; chislox:=read(1); until (chislox=128); savefileas; closefile; |
#33
Отправлено 30 September 2006 - 12:03
Завершил, то что начал AGB - доделал скрипт, который из icn делает png картинку, правда для того чтобы ее сохранить надо щелкнуть на нее правой кнопкой мыши и выбрать "Сохранить изображение как..."
Вот ссылка knikolenko.narod.ru/icnview.php
В папке с скриптом должен лежать файл палитры KB.pal
Еще раз спасибо товарищу Xexys
Вот ссылка knikolenko.narod.ru/icnview.php
В папке с скриптом должен лежать файл палитры KB.pal
Еще раз спасибо товарищу Xexys
#34
Отправлено 20 August 2007 - 13:41
Привет всем!
Мне тоже понадобилось достать ресурсы из heroes2.agg. Распаковщик я нашёл, конвертер icn в bmp тоже, музыка меня пока не интересует, но как быть с остальными файлами, в первую очередь с til? Может кто подскажет, где найти конвертер.
Мне тоже понадобилось достать ресурсы из heroes2.agg. Распаковщик я нашёл, конвертер icn в bmp тоже, музыка меня пока не интересует, но как быть с остальными файлами, в первую очередь с til? Может кто подскажет, где найти конвертер.