Death or Glory/DAT: различия между версиями
(Новая страница: «== Директория "DATEN" == Разобраны файлы "EN*", "INT.DAT", "START.DAT" и другие, но пока не описаны. == Директория "TEXT" == ==== Файлы "DEATH*.DAT" ==== Определяют тексты предсмертных фраз лидеров. Номер в наименовании файлов привязан к идентификаторам персонажей, определенных в фа...») |
(Добавлено описание файлов изображений портретов и фоновых рисунков полей боя.) |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
== Директория "DATEN" == | == Директория "DATEN" == | ||
==== Файлы "EN*.DAT" и "START.DAT" ==== | |||
Файлы содержат описания игровых персонажей: | |||
* EN_L*.DAT: Лидеры игровых уровней - противники и союзники, находящиеся сразу и появляющиеся при выполнении каких-то условий (по восемь на каждый). Номер файла соответствует порядковому номеру уровня в игре. | |||
* EN16_*.DAT: Появляющиеся лидеры шестнадцатого (последнего) уровня основной кампании (по три на каждый). Номер файла соответствует порядковому номеру призываемой волны противников (происходит после усмирения всех предыдущих призванных). | |||
* START.DAT: Шесть основных управляемых лидеров (Raven, Cerano, Armitas, Berettar, Nyana и Xhor) и два вспомогательных лидера шестнадцатого (последнего) уровня основной кампании. | |||
Каждый файл грубо делится на две части: | |||
* описание персонажа лидера; | |||
* описание отряда лидера. | |||
Примечания: | |||
* В файлах "EN_L*.DAT" предусмотрено описание до восьми персонажей. Союзников и противников может быть меньше и при этом на месте описаний недостающих лидеров часто попадает описания лидеров из файла предыдущего уровня, хотя оно и не используется. | |||
* Описание отрядов пока не разобрано. | |||
Описание каждого лидера всегда начинается с фразы "LEAD" (4 байта) и укладывается в 242 байта включительно. | |||
Все персонажи описываются последовательно без каких-либо разрывов в значениях байтов. | |||
{| class="wikitable" | |||
! Смещение | |||
! Длина | |||
! Комментарий | |||
|- | |||
| 0x0000 | |||
| 4 | |||
| Значение LEAD (4C 45 41 44h). | |||
|- | |||
| 0x0004 | |||
| 2 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x0006 | |||
| 2 | |||
| Текущее значение LE (ОЖ, очки жизни). | |||
|- | |||
| 0x0008 | |||
| 2 | |||
| 01 00 - ход сделан, 00 00 - ход не сделан. | |||
|- | |||
| 0x000A | |||
| 2 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x000C | |||
| 2 | |||
| Идентификатор лидера на общей карте уровня (09 00 - Raven, 0A - Cerano, 14 - Armitas...). | |||
|- | |||
| 0x000E | |||
| 8 | |||
| Назначение байтов пока не разобрано (скорее всего не используется). | |||
|- | |||
| 0x0016 | |||
| 6 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x001C | |||
| 16 | |||
| Наименование бойца отряда лидера. | |||
|- | |||
| 0x002C | |||
| 2 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x002E | |||
| 2 | |||
| AP бойца (АТ, нападение). | |||
|- | |||
| 0x0030 | |||
| 2 | |||
| VP бойца (ЗЩ, защита). | |||
|- | |||
| 0x0032 | |||
| 2 | |||
| BW бойца (ОД, очки движения, скорость). | |||
|- | |||
| 0x0034 | |||
| 8 | |||
| Назначение байтов пока не разобрано (скорее всего не используется). | |||
|- | |||
| 0x003C | |||
| 2 | |||
| AN лидера (ЛИ, краткое наименование лидера). | |||
|- | |||
| 0x003E | |||
| 2 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x0040 | |||
| 2 | |||
| Номер класса лидера (союзные начинаются с "64 00" (Raven, Prinz), как минимум картинка на карте). | |||
|- | |||
| 0x0042 | |||
| 20 | |||
| Наименование класса лидера. | |||
|- | |||
| 0x0056 | |||
| 2 | |||
| Принцип перемещения (0A 00 - левитация, 01 00 - кавалерия (не стены, не вода), 00 00 - пешеход). | |||
|- | |||
| 0x0058 | |||
| 14 | |||
| Имя лидера. | |||
|- | |||
| 0x0066 | |||
| 2 | |||
| AP лидера (АТ, нападение). | |||
|- | |||
| 0x0068 | |||
| 2 | |||
| VP лидера (ЗЩ, защита).. | |||
|- | |||
| 0x006A | |||
| 2 | |||
| BW лидера (ОД, очки движения, скорость). | |||
|- | |||
| 0x006C | |||
| 8 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x0074 | |||
| 1 | |||
| Номер первой амуниции (только наименование, номер по списку, смещение 0x700EA в файле "DOG.EXE", начиная с 0). | |||
|- | |||
| 0x0075 | |||
| 1 | |||
| Номер второй амуниции. | |||
|- | |||
| 0x0076 | |||
| 2 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x0078 | |||
| 2 | |||
| Прибавление к AP (АТ, нападение) для лидера, значение "+N". | |||
|- | |||
| 0x007A | |||
| 2 | |||
| Прибавление к VP (ЗЩ, защита) для лидера, значение "+N". | |||
|- | |||
| 0x007C | |||
| 2 | |||
| Текущее значение MP лидера (ОМ, очки маны). | |||
|- | |||
| 0x007E | |||
| 2 | |||
| Полная, максимальное значение MP лидера (ОМ, очки маны). | |||
|- | |||
| 0x0080 | |||
| 4 | |||
| Заклинания, битовая маска по два бита, определяющие уровень (?, ?, Heilen (Лечение), ?, ?, ?, ?, ?, ?, ?, ?, ?, Rakete (Снаряд), ?, ?, ?). | |||
|- | |||
| 0x0084 | |||
| 38 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x00AA | |||
| 2 | |||
| Значение номера файла "INFO*.DAT", используемый для вывода информации о лидере. | |||
|- | |||
| 0x00AC | |||
| 2 | |||
| Значение номера файла "DEATH*.DAT", используемый для вывода диалога умирающего лидера. | |||
|- | |||
| 0x00AE | |||
| 26 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
| 0x00C8 | |||
| 2 | |||
| EP лидера (ОП, текущий набранный опыт). | |||
|- | |||
| 0x00CA | |||
| 40 | |||
| Назначение байтов пока не разобрано. | |||
|- | |||
|} | |||
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления. | |||
==== Файлы "FGT*.DAT" и портреты ==== | |||
Файлы содержат игровые изображения: | |||
* размер 4797 байт: портрет игрового персонажа, горизонтальный размер 64 точки. | |||
* FGT*.DAT, размер 11052 байт: фоновый рисунок половины поля битвы, горизонтальный размер 128 точек. | |||
* FGTHG*.DAT, размер 21165 байт: фоновый рисунок всего поля битвы, горизонтальный размер 256 точек. | |||
Каждый файл грубо делится на две части: | |||
* определение набора используемых цветов (палитра); | |||
* последовательность точек изображения. | |||
Примечание: | |||
* Цвет в палитре с номером 255 (FF) не определён. | |||
* Байты точек изображения идут последовательно слева направо и сверху вниз в соответствии с горизонтальным размером изображения. | |||
{| class="wikitable" | |||
! Смещение | |||
! Длина | |||
! Комментарий | |||
|- | |||
| 0x0000 | |||
| 717 | |||
| Каждые три байта определяют один цвет в соответствии с правилами [[VGA-палитра|VGA-палитры]] (всего доступно 255 цветов). | |||
|- | |||
| 0x02FD | |||
| N | |||
| Байты, определяющие точки изображения и их цвета в соответствии с палитрой. | |||
|- | |||
|} | |||
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления. | |||
==== Файл "ITM.DAT" ==== | |||
Файл содержит изображения предметов амуниции. | |||
Набор используемых цветов (палитра) предположительно задаётся файлом "MENUE.DAT" и полностью не определён. | |||
Изображение каждого предмета всегда начинается с набора байтов "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40" (18 байтов) и укладывается в 257 байтов включительно. Размер изображения 16*15 точек, без правой нижней точки. Всего 239 точек, каждую из которых задаёт один байт. | |||
{| class="wikitable" | |||
! Смещение | |||
! Длина | |||
! Комментарий | |||
|- | |||
| 0x0000 | |||
| 18 | |||
| Значение "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40". | |||
|- | |||
| 0x0012 | |||
| 239 | |||
| Байты, определяющие точки изображения первого предмета и их цвета в соответствии с палитрой. | |||
|- | |||
| 0x0101 | |||
| 18 | |||
| Значение "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40". | |||
|- | |||
| 0x0113 | |||
| 239 | |||
| Байты, определяющие точки изображения второго предмета и их цвета в соответствии с палитрой. | |||
|- | |||
| 0x0202 | |||
| ... | |||
| Далее последовательность повторяется. | |||
|- | |||
|} | |||
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления. | |||
== Директория "TEXT" == | == Директория "TEXT" == | ||
| Строка 22: | Строка 275: | ||
| 0x0002 | | 0x0002 | ||
| 39 | | 39 | ||
| Содержимое первой строки ( | | Содержимое первой строки (завершается нулевым значением байта). | ||
|- | |- | ||
| 0x0029 | | 0x0029 | ||
| Строка 30: | Строка 283: | ||
| 0x002A | | 0x002A | ||
| 39 | | 39 | ||
| Содержимое второй строки ( | | Содержимое второй строки (завершается нулевым значением байта). | ||
|- | |- | ||
| 0x0051 | | 0x0051 | ||
| Строка 61: | Строка 314: | ||
| 0x0002 | | 0x0002 | ||
| 39 | | 39 | ||
| Содержимое первой строки ( | | Содержимое первой строки (завершается нулевым значением байта). | ||
|- | |- | ||
| 0x0029 | | 0x0029 | ||
| Строка 69: | Строка 322: | ||
| 0x002A | | 0x002A | ||
| 39 | | 39 | ||
| Содержимое второй строки ( | | Содержимое второй строки (завершается нулевым значением байта). | ||
|- | |- | ||
| 0x0051 | | 0x0051 | ||
| Строка 100: | Строка 353: | ||
| 0x0002 | | 0x0002 | ||
| 39 | | 39 | ||
| Содержимое первой строки ( | | Содержимое первой строки (завершается нулевым значением байта). | ||
|- | |- | ||
| 0x0029 | | 0x0029 | ||
| Строка 108: | Строка 361: | ||
| 0x002A | | 0x002A | ||
| 39 | | 39 | ||
| Содержимое второй строки ( | | Содержимое второй строки (завершается нулевым значением байта). | ||
|- | |- | ||
| 0x0051 | | 0x0051 | ||
| Строка 155: | Строка 408: | ||
| 0x0010 | | 0x0010 | ||
| 39 | | 39 | ||
| Содержимое первой строки текста фразы ( | | Содержимое первой строки текста фразы (завершается нулевым значением байта). | ||
|- | |- | ||
| 0x0037 | | 0x0037 | ||
| Строка 183: | Строка 436: | ||
| 0x0002 + 14 + 40*N + 14 | | 0x0002 + 14 + 40*N + 14 | ||
| 39 | | 39 | ||
| Содержимое первой строки текста фразы ( | | Содержимое первой строки текста фразы (завершается нулевым значением байта). | ||
|- | |- | ||
| 0x0002 + 14 + 40*N + 53 | | 0x0002 + 14 + 40*N + 53 | ||
Текущая версия от 16:44, 14 декабря 2025
Директория "DATEN"
Файлы "EN*.DAT" и "START.DAT"
Файлы содержат описания игровых персонажей:
- EN_L*.DAT: Лидеры игровых уровней - противники и союзники, находящиеся сразу и появляющиеся при выполнении каких-то условий (по восемь на каждый). Номер файла соответствует порядковому номеру уровня в игре.
- EN16_*.DAT: Появляющиеся лидеры шестнадцатого (последнего) уровня основной кампании (по три на каждый). Номер файла соответствует порядковому номеру призываемой волны противников (происходит после усмирения всех предыдущих призванных).
- START.DAT: Шесть основных управляемых лидеров (Raven, Cerano, Armitas, Berettar, Nyana и Xhor) и два вспомогательных лидера шестнадцатого (последнего) уровня основной кампании.
Каждый файл грубо делится на две части:
- описание персонажа лидера;
- описание отряда лидера.
Примечания:
- В файлах "EN_L*.DAT" предусмотрено описание до восьми персонажей. Союзников и противников может быть меньше и при этом на месте описаний недостающих лидеров часто попадает описания лидеров из файла предыдущего уровня, хотя оно и не используется.
- Описание отрядов пока не разобрано.
Описание каждого лидера всегда начинается с фразы "LEAD" (4 байта) и укладывается в 242 байта включительно.
Все персонажи описываются последовательно без каких-либо разрывов в значениях байтов.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 4 | Значение LEAD (4C 45 41 44h). |
| 0x0004 | 2 | Назначение байтов пока не разобрано. |
| 0x0006 | 2 | Текущее значение LE (ОЖ, очки жизни). |
| 0x0008 | 2 | 01 00 - ход сделан, 00 00 - ход не сделан. |
| 0x000A | 2 | Назначение байтов пока не разобрано. |
| 0x000C | 2 | Идентификатор лидера на общей карте уровня (09 00 - Raven, 0A - Cerano, 14 - Armitas...). |
| 0x000E | 8 | Назначение байтов пока не разобрано (скорее всего не используется). |
| 0x0016 | 6 | Назначение байтов пока не разобрано. |
| 0x001C | 16 | Наименование бойца отряда лидера. |
| 0x002C | 2 | Назначение байтов пока не разобрано. |
| 0x002E | 2 | AP бойца (АТ, нападение). |
| 0x0030 | 2 | VP бойца (ЗЩ, защита). |
| 0x0032 | 2 | BW бойца (ОД, очки движения, скорость). |
| 0x0034 | 8 | Назначение байтов пока не разобрано (скорее всего не используется). |
| 0x003C | 2 | AN лидера (ЛИ, краткое наименование лидера). |
| 0x003E | 2 | Назначение байтов пока не разобрано. |
| 0x0040 | 2 | Номер класса лидера (союзные начинаются с "64 00" (Raven, Prinz), как минимум картинка на карте). |
| 0x0042 | 20 | Наименование класса лидера. |
| 0x0056 | 2 | Принцип перемещения (0A 00 - левитация, 01 00 - кавалерия (не стены, не вода), 00 00 - пешеход). |
| 0x0058 | 14 | Имя лидера. |
| 0x0066 | 2 | AP лидера (АТ, нападение). |
| 0x0068 | 2 | VP лидера (ЗЩ, защита).. |
| 0x006A | 2 | BW лидера (ОД, очки движения, скорость). |
| 0x006C | 8 | Назначение байтов пока не разобрано. |
| 0x0074 | 1 | Номер первой амуниции (только наименование, номер по списку, смещение 0x700EA в файле "DOG.EXE", начиная с 0). |
| 0x0075 | 1 | Номер второй амуниции. |
| 0x0076 | 2 | Назначение байтов пока не разобрано. |
| 0x0078 | 2 | Прибавление к AP (АТ, нападение) для лидера, значение "+N". |
| 0x007A | 2 | Прибавление к VP (ЗЩ, защита) для лидера, значение "+N". |
| 0x007C | 2 | Текущее значение MP лидера (ОМ, очки маны). |
| 0x007E | 2 | Полная, максимальное значение MP лидера (ОМ, очки маны). |
| 0x0080 | 4 | Заклинания, битовая маска по два бита, определяющие уровень (?, ?, Heilen (Лечение), ?, ?, ?, ?, ?, ?, ?, ?, ?, Rakete (Снаряд), ?, ?, ?). |
| 0x0084 | 38 | Назначение байтов пока не разобрано. |
| 0x00AA | 2 | Значение номера файла "INFO*.DAT", используемый для вывода информации о лидере. |
| 0x00AC | 2 | Значение номера файла "DEATH*.DAT", используемый для вывода диалога умирающего лидера. |
| 0x00AE | 26 | Назначение байтов пока не разобрано. |
| 0x00C8 | 2 | EP лидера (ОП, текущий набранный опыт). |
| 0x00CA | 40 | Назначение байтов пока не разобрано. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Файлы "FGT*.DAT" и портреты
Файлы содержат игровые изображения:
- размер 4797 байт: портрет игрового персонажа, горизонтальный размер 64 точки.
- FGT*.DAT, размер 11052 байт: фоновый рисунок половины поля битвы, горизонтальный размер 128 точек.
- FGTHG*.DAT, размер 21165 байт: фоновый рисунок всего поля битвы, горизонтальный размер 256 точек.
Каждый файл грубо делится на две части:
- определение набора используемых цветов (палитра);
- последовательность точек изображения.
Примечание:
- Цвет в палитре с номером 255 (FF) не определён.
- Байты точек изображения идут последовательно слева направо и сверху вниз в соответствии с горизонтальным размером изображения.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 717 | Каждые три байта определяют один цвет в соответствии с правилами VGA-палитры (всего доступно 255 цветов). |
| 0x02FD | N | Байты, определяющие точки изображения и их цвета в соответствии с палитрой. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Файл "ITM.DAT"
Файл содержит изображения предметов амуниции.
Набор используемых цветов (палитра) предположительно задаётся файлом "MENUE.DAT" и полностью не определён.
Изображение каждого предмета всегда начинается с набора байтов "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40" (18 байтов) и укладывается в 257 байтов включительно. Размер изображения 16*15 точек, без правой нижней точки. Всего 239 точек, каждую из которых задаёт один байт.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 18 | Значение "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40". |
| 0x0012 | 239 | Байты, определяющие точки изображения первого предмета и их цвета в соответствии с палитрой. |
| 0x0101 | 18 | Значение "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40". |
| 0x0113 | 239 | Байты, определяющие точки изображения второго предмета и их цвета в соответствии с палитрой. |
| 0x0202 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Директория "TEXT"
Файлы "DEATH*.DAT"
Определяют тексты предсмертных фраз лидеров.
Номер в наименовании файлов привязан к идентификаторам персонажей, определенных в файлах "START.DAT" и "EN*", размещенных в директории "DATEN".
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 2 | Количество строк в тексте. |
| 0x0002 | 39 | Содержимое первой строки (завершается нулевым значением байта). |
| 0x0029 | 1 | Нулевое значение байта (00h). |
| 0x002A | 39 | Содержимое второй строки (завершается нулевым значением байта). |
| 0x0051 | 1 | Нулевое значение байта (00h). |
| 0x0052 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Файлы "INFO*.DAT"
Определяют тексты описаний лидеров.
Номер в наименовании файлов привязан к идентификаторам персонажей, определенных в файлах "START.DAT" и "EN*", размещенных в директории "DATEN".
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 2 | Количество строк в тексте. |
| 0x0002 | 39 | Содержимое первой строки (завершается нулевым значением байта). |
| 0x0029 | 1 | Нулевое значение байта (00h). |
| 0x002A | 39 | Содержимое второй строки (завершается нулевым значением байта). |
| 0x0051 | 1 | Нулевое значение байта (00h). |
| 0x0052 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Файлы "PROLOG*.DAT"
Определяют тексты подробных описаний глав (уровней) игры.
Номер в наименовании файлов на единицу меньше номера главы игры, к которому привязан пролог. Такое допущение вероятно связано с отображением содержимого (описания следующего уровня) сразу поле победы на текущем уровне.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 2 | Количество строк в тексте. |
| 0x0002 | 39 | Содержимое первой строки (завершается нулевым значением байта). |
| 0x0029 | 1 | Нулевое значение байта (00h). |
| 0x002A | 39 | Содержимое второй строки (завершается нулевым значением байта). |
| 0x0051 | 1 | Нулевое значение байта (00h). |
| 0x0052 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
В игре строки отображаются с центрирование по середине экрана и, если весь текст не умещается по вертикале на одном экране, отображение выполняется на нескольких последовательных.
Файлы "STSEQ*.DAT"
Определяют игровые диалоги, включая тексты фразы и ссылки на портреты участников.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 2 | Количество фраз в диалоге. |
| Первая фраза. | ||
| 0x0002 | 2 | Идентификатор лидера, определенный в файлах "START.DAT" и "EN*". |
| 0x0004 | 10 | Назначение байтов пока не разобрано (выглядят неиспользуемыми). |
| 0x000E | 2 | Количество строк в тексте фразы (далее N). |
| 0x0010 | 39 | Содержимое первой строки текста фразы (завершается нулевым значением байта). |
| 0x0037 | 1 | Нулевое значение байта (00h). |
| 0x**** | ... | Последовательность строк фразы повторяется N раз. |
| Вторая фраза. | ||
| 0x0002 + 14 + 40*N | 2 | Идентификатор лидера, определенный в файлах "START.DAT" и "EN*". |
| 0x0002 + 14 + 40*N + 2 | 10 | Назначение байтов пока не разобрано (выглядят неиспользуемыми). |
| 0x0002 + 14 + 40*N + 12 | 2 | Количество строк в тексте фразы (далее M). |
| 0x0002 + 14 + 40*N + 14 | 39 | Содержимое первой строки текста фразы (завершается нулевым значением байта). |
| 0x0002 + 14 + 40*N + 53 | 1 | Нулевое значение байта (00h). |
| 0x0002 + 14 + 40*N + 54 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Идентификаторы лидеров влияют на отображаемый в диалоге портрет и на перемещение курсора на соответствующего персонажа перед отображением его фразы. При отсутствии последнего курсор будет перемещен куда-то, а портрет отсутствовать.