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

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

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

Исходные коды конвертеров графики

Тема в разделе "Мастерская", создана пользователем zaryanius, 2 сен 2012.

  1. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Здрасти! Я публикую большой архив описаний формат файлов + исходные коды корнвертеров графики из PC и консольных игр:
    http://www.filedropper.com/sau-10
    http://www5.zippyshare.com/v/71076865/file.html

    Скомпилированный под Винду бинарник здесь: http://www.old-games.ru/forum/showpost.php?p=959366&postcount=25
    Конвертеры от Д. Грошева теперь здесь: http://svn.old-games.ru/listing.php.../projects/&#a9e9d2de77b127402dc9499cf0ca48cb3
    tags/метки: sprites,converters,graphics,extractors

    Большинстве игр изометрические с "пиксельарт" графикой. Вот неполный список включённых форматов
    Код:
    Sprite and Archive Utility v1.0 by SNV
    
    Usage: sau <InputFormat>=<InputFile> <OutputFormat>=<OutputFile>
           sau <InputFile> <OutputFile> (guess format from extension)
    Example: sau dir=./Input mpq=Output.mpq
             sau ./Input Output.mpq
    
    Formats Supported:
      adf: Amiga Disk File
      agg: Heroes of Might & Magic 1-2
      bdx: Chronicles of Inotia: Legend of Feanor Graphics
      bmc: Black Moon Chronicles, Persian Wars (use on *.SPR files)
      bmp: BMP images (Microsoft Windows)
      bor: Beats of Rage archives (use on *.pak files)
      box: Beasts & Bumpkins archives
      brig: Brigandine
      btb: Beyond the Beyond (use on CHR/DAT/BIN files)
      bytes: treat input/output as a plain stream of bytes
      c2e: Chronicles of Inotia 2: Wanderer of Luone Sprites
      cam: Cyberlore Library Manager (Majesty, Playboy, etc..)
      cc: Kings Bounty and Might & Magic 3/4/5 archives
      cel: Diablo sprites
      cl2: Diablo sprites
      cmp: Divine Divinity Archive
      darkseal: Dark Seal 2: Wizard Fire (use on folder mas00-09 files)
      dat: Tibia.dat from Tibia MMORPG
      dc6: Diablo 2 sprites
      dcc: Diablo 2 sprites
      dds: Direct Draw Surface (many games)
      def: Heroes of Might & Magic 3 sprites
      df2: Heroes of Might & Magic 4 sprite archives
      dir: Specifies directory as input/output
      divinity: Divine Divinity sprite archive (use on CPackedi.*c files)
      dom: Dominus (use on *.rm, *anm, *.4pp, *.dat, files)
      dsa: Realms of Arkania 2 (use on *.DAT files)
      epf: East Point File System
      flx: Ultima 7, 8 and Crusader No Remorse archives
      fox: Furcadia Sprite
      frames: Specifies directory of PCX images as a sprite
      gif: Saves/Loads GIF files as sprites
      gor: Myth Fallen Lords Archives and Tagged Files
      group: Stonekeep groupXX archives
      grp: Starcraft sprites
      h: Convert <bytes> to a C/C++ header
      h4r: Heroes of Might & Magic 4 archives
      heimdall: Heimdall (use on *.bin and *.dat files)
      hrs: Faery Tale Adventure 2 and Dinotopia archives
      idx: Jinyong Qunxia Zhuan archives
      ilb: Age of Wonders 1-2 image archives
      imp: Lords of Magic sprites
      key: Infinity Engine Directory (Baldur's Gate, Icewind Dale)
      lbm: LBM/PBM images (Deluxe Paint)
      lbx: Master of Magic archives
      lg: Lunar: Genesis / Dragon Song (use on *.dat files)
      lib: Cyberlore Library (Al-Qadim, Entomorph)
      lod: LOD archives (Might & Magic 6-8, Heroes of Might & Magic 3)
      maj: Majesty for IPhone/IPad (use on *.group.bin files)
      mon: Stonekeep sprites (MON, MSP, POJ, WPN, GXX)
      mpq: Blizzard MPQ archives (Warcraft 2, Diablo, Starcraft, Lords of Magic)
      mqdb: Disciples: Sacred Lands (use on DBI, FF and WDB)
      mul: Ultima Online Archive
      nds: Nintendo Nitro Filesystem and Formats (use on NDS roms)
      obm: Myth of Soma images
      p10: Popolocrois Archive (use on p00/p10/p99 files)
      pak: Helbreath sprite archives
      pal: Loads/saves raw palettes
      pck: X-Com 1/2/3 sprites
      pcx: PCX images (ZSoft Paintbrush)
      png: PNG images
      pvr: PowerVR textures (many iOS games)
      pzx: Zenonia sprite
      raw: Saves image as a raw array of pixels
      remap: Remaps target image to palette of source. Both must be in PCX
      res: Rage of Mages 1-2 (Allods) archives
      rgmystus: Mystic Towers (rgmystus.dat)
      rnc: RNC/EPF/CRU files (also handle Darkmere sprites)
      scan: Scans any file for known format patterns
      snd: SND archives (Might & Magic 6-8, Heroes of Might & Magic 3)
      spl: Myth of Soma sprites
      spr: Magic & Mayhem sprites
      tga: TGA images (Truevision Graphic Array)
      tgw: Kohan: Immortal Sovereigns archives
      tim: Playstation Sprite
      tlb: SSI Tileset (Al-Qadim, Entomorph, Unlimited Adventures, Gold Box games)
      tm2: PSP Sprite
      uop: Ultima Online Mythic Package
      vh: Vandal Hearts (use on DAT files)
      vid: VID archives (Might & Magic 6-8, Heroes of Might & Magic 3)
      vsr: Lemmings Paintball
      war: Warcraft 1 and 2 archives
      whizz: Whizz tiles and sprites (use on DOSBox memory dumps)
      xua: Original Mulan archives (use on XUA/XUB/JUN/MAA/JUS/FAN files)
    


    ---------- Сообщение добавлено в 11:20 ---------- Предыдущее сообщение размещено в 11:16 ----------

    Архив так же включает раритетную коллекцию конвертеров графики за авторством некого Дмитрия Грошева. За что ему большая благодарность.
    Код:
    Resource extractors and viewers for computer games, with binaries and
    technical information on russian.
    
    Written by Dmitry Groshev, supplied by Ghaaroth
    
    Supported games:
    
    Realms of Arkania 1, 2
    Anvil of Dawn
    Archon Ultra
    The Elder Scrolls: Arena
    Duke Nukem 3D
    Golden Axe
    Eye of the Beholder 1, 2, 3
    Dragon Strike
    Dark Legions
    Dungeon Master 2
    Disciples of Steel
    Dark Sun 1, 2
    Heroes of Might & Magic 1, 2
    Master of Orion
    Master of Magic 
    Legacy
    Lands of Lore
    Might & Magic 3, 4, 5, 6
    Bloodstone
    Magic Candle 2, 3
    Spelljammer
    Menzoberranzan
    Ravenloft 1, 2
    Project Nomad
    Norton Screen Saver
    Privateer
    Shadowcaster
    Stronghold
    The Summoning
    Thunderscape
    UFO: Enemy Unknown
    Wizardry 7
    WAD format
    Yendorian Tales
    Shadow of Yserbius
    
    Executables are mostly extractors/unpackers, while .com files are mostly
    viewers.
    
    The Summoning stuff should also work with Veil of Darkness
    The Eye of the Beholder 3 stuff also works with Dungeon Hack
    EOB3 .bmp viewer also works with Dark Sun 1 and some files of Dark Sun 2
    
    ...Experiment to find out more.
    
     
    Последнее редактирование модератором: 28 ноя 2013
    Verok, Corak, SAS и 18 другим нравится это.
  2.  
  3. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    «Исходные коды конвертеров графики» было бы куда более подходящим названием для темы, думается мне.
     
  4. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Как переименовать тему?
     
  5. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.659
    zaryanius, а где инициализируется класс format? Не получается пока откомпилировать под MSVC6.0, но работа впечатляет! Вас не интересует развитие проекта в рамках нашего SVN?
     
  6. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Массив структур "format" инициализируется автоматически в Makefile, учитывая все исходники вида fmt_*.c

    Большинство кода в GPL. Можете делать с ним что хотите. Касаемо конвертеров Дмитрия Грошева, лучше наверное спростить его самого.
     
    Dimouse и Bato-San нравится это.
  7. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.659
    Вроде разобрался, но всё равно не компилируется под MSVC6.0 :) Ну да ладно, наш спец - MisterGrim - скомпилировал.

    По вашей программе:
    я имею в виду, интересно ли вам продолжать разработку и использовать при этом наш SVN? Код-то положить можно, но было бы гораздо лучше, если бы туда свежий код коммитился:)

    По программам Дмитрия Грошева:
    нет ли у вас, случайно, его контактов? Поискал в гугле, есть только очень древние фидошные записи (оно и понятно).
     
  8. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Собственно, при компиляции в MinGW возникает только одна проблема: отсутствие функции strndup() (вызываемой из fmt_hrs.c). Пока решил в лоб, просто добавив её в начало этого файла:
    Код:
    char *
    strndup(const char *str, size_t n)
    {
    	size_t len;
    	char *copy;
    
    	for (len = 0; len < n && str[len]; len++)
    		continue;
    
    	if (!(copy = malloc(len + 1)))
    		return (NULL);
    	memcpy(copy, str, len);
    	copy[len] = '\0';
    	return (copy);
    }
    (взял в гугле).
     
    Dimouse нравится это.
  9. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Можете коммитить. Ломать DOS-игры очень просто, особенно с DOSBox:
    1. цепляете к DOSBox смотрелку памяти, интерпретирующие произвольные байты как изображение
    2. находите куда игра распаковывает графику
    3. смотрите с каких адресов происходит запись туда
    4. дизассемблируете функции по этим адресам с помощью IDA

    Альтернативно можно посмотреть с каких адресов происходит запись на 0A000h (зона вывода графики).

    Чтобы открыть в IDA dos4gw экзешник, достаточно в шестнадцатиричном редакторе удалить все байты вплоть до четвёртого "MZ" (это 16-битный загрузчик, переводящий процессор в 32-битный режим).

    Нет. Архив с его исходниками я нашёл на http://frua.rosedragon.org/pc/misc/
     
    Corak, AxXxB и Dimouse нравится это.
  10. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.659
    zaryanius,
    Вопрос был - будете ли вы продолжать этим заниматься? Потому как, если мы будем коммитить у себя, а вы делать отдельно свою версию - то это неочень логично. Кроме того, нам было бы очень интересно сотрудничество с таким квалифицированным специалистом, который в одиночку сделал то, что мы делали командой много лет. Дело в том, что большинство из игр, которыми мы занимаемся, и которые есть в вашем проекте, нами уже альтернативно разобраны. А вот другие, для которых еще есть нерешенные технические вопросы, у вас отсутствуют. Часть можно посмотреть здесь: http://www.old-games.ru/forum/showthread.php?t=51375
    Или, например, игра A Nightmare on Elm Street, в которой формат вествудовский, похожий на Dragon Strike и Eye of the Beholder - уже несколько лет всё не доходят руки разобрать...

    Ну значит выложим как есть, добавив копирайт.
     
    Corak нравится это.
  11. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.659
    Залил утилиты от Дмитрия Грошева на SVN: http://svn.old-games.ru/revision.php?repname=Old-Games.RU+Translate+bureau&isdir=1&

    Теперь они разбиты по каждой игре (или играм) отдельно, у каждого есть свое небольшое описание. Если кто-то желает что-то дополнить, пишите здесь.

    P.S. Описания буду постепенно добавлять на Вики.
     
    Последнее редактирование: 12 сен 2012
    Чёрный Думер, Butz, kreol и 2 другим нравится это.
  12. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
  13. zubuzu

    zubuzu

    Регистрация:
    15 сен 2009
    Сообщения:
    26
    А разве эти утилитки не к Амиговским версиям игрушек относятся?
     
  14. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Амижные оригиналы могут быть лучше PC портов.

    Например, http://ru.wikipedia.org/wiki/Hold_and_modify на PC не было.
     
    zubuzu нравится это.
  15. Gamerun

    Gamerun

    Хелпер

    Регистрация:
    13 июн 2010
    Сообщения:
    8.368
    Но и возможность распаковать\посмотреть ресурсы версий для PC тоже ничего.
     
  16. StaticZ

    StaticZ

    Регистрация:
    6 янв 2013
    Сообщения:
    185
    Выглядит потрясающе!!!, но отсутствие уже скомпилированного кода немного удручает. Попробовал скомпелили fmt_pzx - получил какую-то чушь, а не картинку. Глянул код, какая-то ахинения - считывают заголовок, ищут первое вхождение двух байт 0x9C78, затем распаковывает поток байт через zlib и сохраняет результат. Получившийся поток байт рандомен, без всякой шапки и конечно же не является ни одним известным форматом. Даже четность получившегося файла плавает, так что и на дамп битмапа не похоже...

    fmt_uop - выглядит похожим на правду (сам ковырял его, так что имею представление об его устройстве)

    остальное пока не смотрел...

    ---------- Сообщение добавлено в 03:54 ---------- Предыдущее сообщение размещено в 03:19 ----------

    fmt_mul - немного устарел, формат давно уже немного поменялся... так что если кто этим занимается, то стоило бы пометить что для старых версий до 7.0.х (кстати опять же - unpackStatic, возвращает поток байт, вообщем-то правильно но смысла в нем нет, т.к. там храниться не графика а объекты на карте)

    за fmt_pck и fmt_flx особое спасибо - давно искал способ дернуть арт из ультимы8 и x-com3, позже попробую... Еще бы из Jagged Alliance найти....
     
    Последнее редактирование: 26 янв 2013
    Чёрный Думер, Dimouse и Bato-San нравится это.
  17. Geryon

    Geryon

    Регистрация:
    13 май 2008
    Сообщения:
    1.228
    Выслал тебе его контакты в личку. Я вообще с трудом могу пройти мимо возможности деанонимизировать человека :spiteful: Полчаса ушло на поиск в google, ну и пять минут на то, чтобы позвонить ему и удостовериться, что я не ошибся. Он сказал, что ответит на вопросы по конвертерам.
     
    Последнее редактирование: 29 янв 2013
    Dimouse нравится это.
  18. Roman2211

    Roman2211

    Регистрация:
    5 фев 2013
    Сообщения:
    161
    Как и чем их скомпилировать? что надо делать? если можно - поподробнее, плиз
     
  19. StaticZ

    StaticZ

    Регистрация:
    6 янв 2013
    Сообщения:
    185
    Компилятор, если надо - то разберетесь 0)) А разбираться придется т.к. там все к большому сожалению под линукс, так что либо ставить студию и разбираться либо линукс. Для тех кто не дружит с линуксом советовал бы первый вариант, хотя если С\С++ не знаете то будет очень тяжко править код. В принципе я не думаю что вам нужен конвертор 120 форматов, а в 1-2 разобраться не сложно.
     
  20. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Я вроде выше писал... или не писал? для сборки придётся переписать всего лишь одну функцию.
     
  21. StaticZ

    StaticZ

    Регистрация:
    6 янв 2013
    Сообщения:
    185
    Угу в MinGW, в студии куда больше проблем, вплоть до неизвестных системных хедеров. А MinGW как и gcc распространены только среди линуксойдов, в виндах доминирует Visual C вместе с студией. Поэтому и писал что хорошо бы было бы выложить бинарники, в то многим очень напряжно самим это компилировать.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление