1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Противостояние - военная хроника 1997г

Тема в разделе "Мастерская", создана пользователем jack7277, 24 фев 2013.

  1. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Ничего умнее не нашел, как находить соответствие байтов в IDA (открываю файл \data\addplr.daw как 32 битный файл) и адресами что выдает дебагер досбокс.

    В ида поиск байт (alt+b, search sequence of bytes), прописываю штук 5-8 байт в hex через пробел, нахожу первое вхождение, по идее дальше таких соответствий не должно быть.

    Крайне медленный и дебильный способ, прочитал о нем здесь:
    http://wiki.scummvm.org/index.php/HOWTO-Reverse_Engineering

    omg, omg
    start.exe запускает \data\addplr.daw, который 32 bit dos dpmi, который запускает один из 4!!! .ехе LE 32 bit dos dpmi файлов, которые упакованы в \data\overlay.daw (последнее смещение = размеру файла overlay.daw)
    holy crap.

    f2b53b5e35384f44acb2f7b92f4e36e6.png
     
    Последнее редактирование: 29 апр 2013
  2. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Пошел по другому пути, на диске в файле
    CD:\DATA\MISSIONS\73\UNITS.DAT
    (14 миссия, доп. опаленный снег, игра за немцев)

    [DEUTCHE]
    [TIGER]
    6,80,3,50,100,0,142

    Информация о юнитах на карте:
    - Первые два числа через запятую - это координаты X и Y юнита, ноль начинается в левом-верхнем углу. Максимум равен 128, размер карты 128х128, вроде бы фиксированный; целое число, 0-128
    - Третье число - спрайт поворота юнита, в 8 направлениях должны быть + поворот башни тоже анимирован; целое число 0-7. Башня повернута по направлению взгляда юнита.
    - Четвертое число - количество жизни юнита, целое число 0-100, похоже в процентах от максимума каждого юнита;
    - Пятое число - количество боеприпасов, похоже в процентах от максимума. 0-100.
    - Последние два не понял что за числа, менял на 1, 142 и на 2, 12, в юните ничего не изменилось. Не атака/защита, проверил. (шестой, предпоследний - у вражеских юнитов обозначает видимость, 0 - не виден игроку, 1 - видим)
    - Последнее седьмое число пока хз. Похоже как-то связано с патрулированием, от начала игры ездят по разному танки вражеские. Похоже на скрипт поведения, по номеру. От 0 до хз 255

    Отредактировал этот файл сохранил в образ через ultraiso.
    Можно еще смонтировать как CD-ROM, каталог на винте.
    Тогда редактировать карту станет легче.
    mount x: c:\games\cdwar -t cdrom

    в cdwar каталог скопировал содержимое диска, затем создал диск X с содержимым cdwar,
    subst x: c:\games\cdwar
    и в setup.exe указал путь до диска - X.

    Добавил себе танков побольше, застрял на 14 миссии )))

    PS: Обновляю пост.
    Для домов параметры следующие:
    [DOMES]
    29,33,70,100,1

    1) Тип здания, значения от 0 до 35.
    2,3) Координаты X, Y левого верхнего начала здания, рисуется вправо и вниз. Значения примерно от 1 до 128.
    4) Количество "жизней" здания, в %. 0-100. Пробовал и 1000%, тогда здание можно уничтожить с 6 динамитами, вместо 2х за обычное большое.
    5) Условие, нужно ли уничтожить здание, чтобы победить в миссии. 1 - обычное здание, за уничтожение нет бонусов, 2 - здание необходимо уничтожить для победы в миссии.

    А еще, например, если играешь за немцев, ветку описаний ИСов кладешь под своим описанием, под [DEUTCHE], то все ИСы становятся под твой контроль.

    ЗЗЫ: Кому лень читать, прикладываю картину маслом - "Дружба народов". Тяжелые танки русский ИС и немецкий Тигр едут вместе на врага.
    95ea6f76d7b766e4ab14ae6ff591f859.png

    ЗЗЗЫ:
    Запилю описание юнитов из файла units.dat
    [RUSSIAN] - Ветка описания русских юнитов, раздел
    [RBTANK] - Советский Т34, средний танк, d8d855c4957470b520f20a81d4a30269.png
    [RLTANK] - Легкий танк, не узнаю. f8d4e7f6936a566518a5652d495059e5.png
    [RGUN] - русская пушечка против пехоты и танков, ee91f6c02768ac82480da00530b0eb3c.png
    [RTROOP] - русская пехота, 4b3cefbed10699f8857ff83df12d29c5.png
    [RSAMO] - русская пт, типа су100
    [IS] - тяжелый русский танк ИС
    [BAT] - Скорострельная пушка, d7405f976a8dd69ab1db0f2dd0fc7550.png
    [RGAUB] - русская управляемая гаубица
    [KATYA] - катюша ^_^
    [RBTR] - пулеметная бтр, маленькая машинка
    [RFURG] - грузовик для пехоты
    [TOWER] - башня с пулеметом
    [RZENIT] - русская зенитка против самолетов
    [CAR] - машина с vip персоной
    [RMZ] - Русская передвижная машина с зениткой против самолетов

    [DOMES] - Описание зданий, раздел

    [DEUTCHE] - ветка описания немецких юнитов, раздел
    [DGUN] - немецкая пушечка
    [DLTANK] - немецкий легкий танк
    [DBTANK] - немецкий средний танк
    [TIGER] - Тигр
    [DBIKE] - мотоциклетка
    [DTROOP] - пехота
    [RFURG] - фургон-грузовик, русский, можно захватывать или использовать как свой.
    [DBTR] - пулеметная бтр-машинка
    [DSAMO] - немецкая пт, типа фердинанда
    [DGAUB] - немецкая управляемая гаубица
    [ART] - Скоростная, точная пушка, которой можно управлять. 71920fad5400eab079f89fe86b413aed.png
    [DZENIT] - Зенитные орудия против самолетов, ac4bbe9828f0bb14ac79a775c1bdd444.png
    [DMZ] - Передвижная зенитка против самолетов, 8e33c6e597885416daedea4a269c3f94.png
    [STIG] - Немецкий убер-танк с мощной пушкой и слабой броней, 5793f9bbd93976507c667d53a6b67716.png

    Кажется это все юниты, может быть что-то пропустил, дополню если что.
     
    Последнее редактирование: 7 май 2013
    bvedargh нравится это.
  3. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Лулз-мод-хак, 14 миссия, опаленный снег.
    Как сюда видео вставить не понял.



    Экспериментирую с экспортом спрайтов в bmp, везде пишут, что палитра 1024 байт, BGR+1, то есть 4*256, а у меня палитра RGB, то есть 3*256. Вот думаю что и как делать.
    Плюс еще как программно сделать "Shift+2" непонятно.

    Товарищ steelrat подсказывает, что "для каждого байта из палитры: byte = byte << 2;", перфекто!
    Непонятно, что делать при переполнении.
    Его там не должно быть)
     
    Последнее редактирование модератором: 12 июн 2015
    compart нравится это.
  4. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    Не будет переполнения. Если очень боишься, что что-то испортишь - делай проверку на значение каждого байта, если больше 63 - выдавай пердупреждение. Но их не будет.
     
    jack7277 нравится это.
  5. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    С палитрой не разберусь никак, не понимаю.
    Вот есть файл палитры, 768 байт.
    Данные там хранятся вроде как RGBRGBRGB и так далее 256 раз.

    А дальше что, как из этих данные получить цвет точки?
    Пробовал так - читаю файл сырых значений самой картинки.
    (уж простите за делфи, кстати)
    buf_raw - массив сырых значений из ресурсов игры
    buf_pal - загруженная из файла палитра
    Картинку я вижу, но с цветами беда ))
    Изображение размером 122х60, 256 цветов.

    for i:=0 to 59 do
    for j:=0 to 121 do
    begin
    tmp1:=buf_raw[k];
    tmp1:=buf_pal[tmp1*3]+buf_pal[(tmp1*3)+1]+buf_pal[(tmp1*3)+2];
    Bitmap.Canvas.Pixels[j, i] := tmp1;
    Inc(k);
    end;

    62534206ab21773f0153ba850591c93a.png
    62e5f220d44a5cf6b39b063629957aa2.png
     
    Последнее редактирование: 8 май 2013
  6. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
  7. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    Как и любая другая. В умелых руках. =)
     
  8. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Доделал, гуглил полдня, нашел как правильно.
    Функция RGB, передаем ей 3 параметра красный, зеленый, синий как раз из палитры.
    В сыром виде хранятся числа - это номер цвета в палитре, который задан 3 компонентами. Вот теперь кажется разобрался с палитрой.
    Теперь еще сделать осветвитель сдвигом и тада, все спрайты в bmp.
    Правда еще заморочка, разработчики безумны, каждый файл имеет различия в структуре, надо под каждый файл свой распаковщик делать.

    k:=0;
    for i:=0 to 59 do
    for j:=0 to 121 do
    begin
    tmp1:=buf_raw[k];
    tmp1:=RGB(buf_pal[(tmp1*3)+0],buf_pal[(tmp1*3)+1],buf_pal[(tmp1*3)+2]);
    Bitmap.Canvas.Pixels[j, i] := tmp1;//buf_raw[k];
    Inc(k);
    end;
    Bitmap.SaveToFile('test.bmp');

    PS: Не получается яркость сдвигом отрегулировать, всё высветляется и информация теряется.
     
    Последнее редактирование: 8 май 2013
  9. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    Если это так, то должны быть идентификаторы алгоритмов.


    Попробуй BGR, т.е. так:
    Код:
    tmp1:=buf_raw[k] * 3;
    tmp1:=RGB(buf_pal[tmp1+2],buf_pal[tmp1+1],buf_pal[tmp1]);
     
  10. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Steel Rat, bgr я сразу попробовал. В проге gbs я выбирал тип палитры rgb и галочку на шифт и все было ровно а тут чего косяк.
     
    Последнее редактирование: 9 май 2013
  11. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    jack7277, кстати, в какой-то из версий GBS был косяк, что RGB отображалось именно как GBR. И я не уверен, что не эта версия сейчас в файловом архиве сайта. Но раз ты уже пробовал, значит не то.
     
  12. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Всё, доделал, с праздником всех!

    Вот из GBS:
    62e5f220d44a5cf6b39b063629957aa2.png

    а это из моей проги:
    5c34ad5c70a29017c942ef4f4df35fce.png

    На выходных доделаю декодер и автоматом получу в bmp все изображения из игры, красота.
     
    Последнее редактирование: 9 май 2013
    Porphyric, compart, kreol и 2 другим нравится это.
  13. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Промежуточный итог.
    Хочется передать лучи поноса и ненависти разработчикам. В одном файле могут находится в одной куче звуки, спрайты, палитры. Причем! Картинки могут быть с rle сжатием, а могут быть и без него. У некоторых спрайтов первые 4 байта - это разрешение картинки, но! У некоторых идут координаты x,y, а у некоторых наоборот - y,x. Некоторые картинки без указания разрешения.
    Я сперва думал так быстренько ща доделаю и так бодренько меня обломали. В итоге костыль на костыле. Разобрал только 2 файла ресурсов - это adddata.adw и textes.daw

    PS: о, великий будда, начал разбирать adddata.daw, спрайты из летней и зимней кампании все в куче вперемежку. Непонятно пока что же мне делать с over 9000 спрайтами ))) Их там несколько тысяч!
     
    Последнее редактирование: 11 май 2013
    compart, kreol, SAS и ещё 1-му нравится это.
  14. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Распаковывает файлы из версии "военная хроника".
    http://www.old-games.ru/forum/showthread.php?t=34633

    ADDDATA.ADW
    GOAL.ADD
    GOAL.RUS
    TEXTES.DAW

    Эти файлы положить рядом с exe файлом и палитрами.
    На английской версии еще не проверял, но должно работать (неа не работает, надо особенности смотреть).

    PS: новая версия ниже
     
    Последнее редактирование: 19 май 2013
    007007, compart, kreol и 2 другим нравится это.
  15. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Немного картинок для расслабления. Оригинальные, без фильтров, тру.
    Эти картинки нарисованы справа на панели, когда выбираешь юнита.

    1cc184c96b6528c2e109d932bf81fe3f.bmp_.jpg e854821c9adeda46c9e11d0f58ced7d6.bmp_.jpg fe1d84a5a7cfc5fac191f9254007586b.bmp_.jpg 5444ff2f400c8c7ca13c57ae918a9bd0.bmp_.jpg
    6cc73cae327e6e27d6c3bc92c0912a0a.bmp_.jpg b9933a848d3f72a48e7c5f7ea3b9c0ca.bmp_.jpg 317b869aae8b68cee1bf5a04a228e345.bmp_.jpg 2d2747fee0c325afaf1afcf0c09f19ec.bmp_.jpg
    0976d433dda7bd804029d30e171e4a57.bmp_.jpg d2646fbda0da7b75f04df4c43cc17ed1.bmp_.jpg 5c06ac6029eabfd9b80c3b82e0b19f21.bmp_.jpg 5d18ca86076f627e4b08c7b57b602747.bmp_.jpg
    1952fb12def3edce6e81811f0c873d71.bmp_.jpg ced921fbca02d90fac16e9da7331c5f3.bmp_.jpg da9626a4f5693dece7de9582a6befa66.bmp_.jpg 974229de2e4182d27c19fbbb0b8e3759.bmp_.jpg
    ee683d56429e44bc70728d41bc89399a.bmp_.jpg 96b83ae7b1b58e88c117a742f173d557.bmp_.jpg e1b65a349ca7f96e2573a33ebc525f8e.bmp_.jpg 6736b8d52ffd204628dcfc2721fca75c.bmp_.jpg
    b7a0b0bd60ff143244ca0c3becdd7e92.bmp_.jpg 585a8b4a1dfb182bae4393db8e9ffcb0.png 815e369d780fea3b3e22c6357c2be64f.bmp_.jpg 27a57bc07f9889f07e18dc2a9d4764f0.bmp_.jpg
    3b11b07ef2e6ea8bb90d92d5e82422e6.bmp_.jpg 79740b55ecb1705b7ac264bf7d7f724a.bmp_.jpg 6d9e73d7fd77036838e40540bf875a9c.bmp_.jpg 64a15cd050811e7f80f80e7564705a05.bmp_.jpg
    33c4dae72cae2fa5032a19f28e4b7804.bmp_.jpg
     
    Последнее редактирование: 18 май 2013
    bvedargh, Porphyric и compart нравится это.
  16. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Запутался в своем говнокоде, вчера сел, переписал всё с нуля, пошел по другому пути. По шагам. В итоге удачно, хоть и с багами, распаковал adddata.daw, в котором хранятся спрайты ландшафта, домов, по 8 (4 направления и 4 диагнонали, поворот на 45 градусов) спрайтов юнитов без башни, плюс 8 с подбитой левой гусеницей, плюс 8 спрайтов с подбитой правой гусеницей, плюс отдельно по 16! поворотов башни на каждый юнит (по 22.5 градуса на каждый поворот). Плюс башни/юниты с разной степенью тяжести повреждений.
    Спрайты рисуются слоями. Слой танк без башни, затем башня. В заголовке файла башни координаты x,y слева сверху куда крепить башню, затем 4 байта разрешение картинки.
    Так. Все спрайты с разным разрешением. Чтобы их склеить ровно и нужны похоже первые два x,y корректировочные числа.
    То есть разработчики сознательно пошли на разные усложнения типа этого и rle сжатия, чтобы сэкономить памяти. Похвально, конечно, но. Ловите ка от меня еще один лучик ненависти.
    Неужели сложно было сделать редактор карт и другие инструменты?

    Я всего-то хотел послушать музыку и отключить туман войны. А да и еще картинки вынуть из предыдущего поста. Они такие клевые.
     
    Последнее редактирование: 18 май 2013
    Neitan и Bato-San нравится это.
  17. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Движок бы какой готовый найти, чтобы самому собрать аналог игры с готовыми спрайтами. Чтоб попроще ))
     
  18. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Версию с исходниками выложу позже, пока просто распаковщик. Распаковывает где-то процентов 80-90 графики, сразу в BMP.
    Доделал к выходным, но через 2 недели, вот лол.
    Некоторые из распакованных raw файлов это звуки, нужно слушать.

    Распаковывает графику из файлов "военной хроники":
    ADDDATA.ADW
    ADDDATA.DAW
    GOAL.ADD
    GOAL.RUS
    MAINDATA.ADW
    MAINDATA.DAW
    PLRDEU.DAW
    PLRRUS.DAW
    TEXTES.DAW
     

    Вложения:

    • pack.7z
      Размер файла:
      155,7 КБ
      Просмотров:
      112
    Последнее редактирование: 19 май 2013
    bvedargh, Porphyric, compart и ещё 1-му нравится это.
  19. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Хотя зачем потом, причесать хотел, а потом подумал, а и всё равно )))
     

    Вложения:

    bvedargh нравится это.
  20. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    jack7277, если есть повторяющийся кусок кода - выноси его в функцию, даже если там три строки. Все константы объявляй в начале файла, в коде не должно быть непонятных чисел, называются они magic number
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление