Wake of Gods Forum | Форум Во Имя Богов

Full Version: Исследование героев
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(16.12.2021 17:40)void_17 Wrote: [ -> ]Например, army::TSampleID.
Image: hex.png
здесь видно константы прямо над названием перечисления. Значение константы лежит по 2 байта слева от нее.
Таким образом, получаем:

Пока как-то больше похоже на гадание на кофейной гуще. Например, army::TSampleID - функция-конструктор, инициализирующая структуру звуков отрядов на поле боя, имена - названия переменных (стековая память), которая потом копируется в структуру _ARMY_ (воговский стиль именования структур, т.к. к нему привыкли за 20 лет), открываем в исходниках WERD, и сразу находим:

Code:
;загруженная копия army::TSampleID
    Загруженный_звук_перемещения dd ?;    170 - WALK_SAMPLE
    Загруженный_звук_атаки dd ?;        174 - ATTACK_SAMPLE
    Загруженный_звук_урона dd ?;        178 - WINCE_SAMPLE
    Загруженный_звук_выстрела dd ?;        17C - SHOOT_SAMPLE
    Загруженный_звук_смерти dd ?;        180 - DIE_SAMPLE
    Загруженный_звук_защиты dd ?;        184 - DEFEND_SAMPLE
    Загруженный_звук_телепорта_вход dd ?;    188 - PRE_WALK_SAMPLE
    Загруженный_звук_телепорта_выход dd ?;    18C - POST_WALK_SAMPLE
    Количество_загруженных_звуков dd ?;    190 - MAX_SAMPLE
;конец копии

Можно компилировать в ассемблере и применять в модах.
Все развивается так быстро, что даже этот гайд устарел. RoseKavalier написал скрипты и сейчас пытается дампать всю эту информацию. AlexSpl обнаружил еще оригинальные названия параметров функций.
Как только RoseKavalier отправит мне дампы, я вручную все обработаю(по-другому к сожалению никае) по сути у нас будут готовы все игровые типы и enum-ы.

И да, я не совсем понял о каком конструкторе идет речь. Может дадите адрес? Дримкаст база и моя база больше соответствуют реальности и могут дать более точный ответ. А вообще, army::TSampleID это именно перечисление(enum). Не путайте с массивом из 8 char*-указателей, enum army::TSampleID это просто перечисление для удобства, не структура. По крайней мере так у NWC.
(16.12.2021 18:40)void_17 Wrote: [ -> ]Отличия оригинальных типов между RoE и HD Edition есть. Пока не могу сказать какие, но точно это связано с интерфейсом.

У дримкаста интерфейс тоже значительно перелопачен по сравнению с ПК. Куча новых юбисофтских функций, некоторые кстати перекочевали с дримкаста в порт 2015 года (что подтверждает гипотизу о том, что разорившийся 3DO не передал исходные коды после покупки, поэтому для HD-переиздания использовали то, что откопали в закромах самого Юбисофта, а именно, исходники RoE 0.99). Более-менее достоверно можно восстановить оригинальные имена игрового кода.
Я знаю об этом. Постоянно сижу в этой самой дримкаст базе, собственно мы этим и занимаемся, что переносим дебажную информацию из дримкаст в "дикий" SoD, некогда воговскую базу. Могу сказать лишь то, что в интерфейсе дримкаста из самих типов не особо поменялось по сравнению с ПК билдом RoE. Говорю просто из опыта работы с базой. Типы не меняются, меняются там лишь аргументы функций да всякие таблицы и прочее.

Кстати есть в дримкасте функции, которых нет в RoE ПК просто из ненадобности. Ну например для переноса камеры на поле боя, так как она не вмещается полностью.
(16.12.2021 18:31)void_17 Wrote: [ -> ]Я скоро восстановлю RoE-вские типы и, впринципе, перед нами уже будет готовый код HD Edition. Можно написать плагин по этому коду, добавить перерисованных нейросетью файлов SoD или даже WoG и кинуть куда надо, чтобы плагин грузил. Как вам идея?

Не имеет смысла. Дополнение Клинок Армагеддона всё равно сложно будет реализовать в HD-переиздании, т.к. там изменений вагон. SoD больше тянет на DLC, изменений там совсем немного (т.к. SoD запланирован не был, тут в дело вмешался издатель с первым намереньем заработать на игроках с минимальными затратами программисто-часов).
Вы не поняли меня. Применяя код HD Edition, сделать плагин для SoD или даже WoG, чтобы работала графика как в HD Edition.
(16.12.2021 21:24)void_17 Wrote: [ -> ]Все развивается так быстро, что даже этот гайд устарел. RoseKavalier написал скрипты и сейчас пытается дампать всю эту информацию. AlexSpl обнаружил еще оригинальные названия параметров функций.
Как только RoseKavalier отправит мне дампы, я вручную все обработаю(по-другому к сожалению никае) по сути у нас будут готовы все игровые типы и enum-ы.

Если это как-то поможет моддерам, то будет замечательно, а если так и останется "на бумаге", тогда смысл? Основная проблема - доступность простым смертным, если они ничего не поймут, тогда что есть, что нет - больше модов от этого не станет. Лично я от RoseKavalier ничего не использую, т.к. он делает слишком много вложений в структурах, что совершенно неудобно при их чтении и анализе, редко его комментарии в самих структурах полезны, т.к. программисткий жаргон мне понимать тяжело, ну а самое главное - я работаю с русифицированными структурами, т.к. английский совершенно не знаю.

До сих пор использую структуры Мастера, замиксованные с разными структурами из параллельных проектов. Самые понятные для меня - наработки по структурам из WoG 3.59, т.к. сделаны явно непрограммистами для непрограммистов. 148

(16.12.2021 21:24)void_17 Wrote: [ -> ]Может дадите адрес? Дримкаст база и моя база больше соответствуют реальности и могут дать более точный ответ. А вообще, army::TSampleID это именно перечисление(enum). Не путайте с массивом из 8 char*-указателей, enum army::TSampleID это просто перечисление для удобства, не структура. По крайней мере так у NWC.

У меня ваша база не открывается, ничего по ней сказать не могу, у меня дримкастный исполняемый файл был диассемблирован IDA 6, с чем потом я пытался работать, потом забросил. Что такое указатели и перечисления - не знаю. Программисткий жаргон не понимаю. 105

В самой игре это просто кусок памяти на 24h байта, адресующийся в виде dword-значений. Просто и понятно, без изысков.
(16.12.2021 21:55)void_17 Wrote: [ -> ]Применяя код HD Edition, сделать плагин для SoD или даже WoG, чтобы работала графика как в HD Edition.

Это ещё дольше и сложнее, чем портирование всех дополнений на HD Edition, т.к. потребуется полностью заменить весь графический движок игры. Да и смысла так же в этом нет, т.к. затраты несоизмеримы с тем, что получится в итоге.
(16.12.2021 22:33)XEPOMAHT Wrote: [ -> ]
(16.12.2021 21:55)void_17 Wrote: [ -> ]Применяя код HD Edition, сделать плагин для SoD или даже WoG, чтобы работала графика как в HD Edition.

Это ещё дольше и сложнее, чем портирование всех дополнений на HD Edition, т.к. потребуется полностью заменить весь графический движок игры. Да и смысла так же в этом нет, т.к. затраты несоизмеримы с тем, что получится в итоге.

Я изначально запостил это в теме, в которой ребята этим по-сути и занимались. Я таким образом хотел им подсказать, мне лично это не надо и неинтересно. Админ перенес пост зачем-то. И да, в HD Edition графика работает по принципу надстройки, т.е. там не очень-то и сложно. Главное алгоритмы понять.


Администратор (igrik): вернул сообщения в надлежащую тему
Я тоже не понимаю, зачем сообщения нужно было отсюда переносить.
Quote:Если это как-то поможет моддерам, то будет замечательно
Понятное дело, что поможет. Разработчики игры оставили информацию о всех типах enum, битовым полям и даже параметрам функций де-факто в открытом доступе. Остается лишь это систематизировать и перед нами.. Рай для моддеров!

Quote:а если так и останется "на бумаге", тогда смысл?
ничего не останется на бумаге. https://handbookhmm.ru/forum/viewtopic.p...&start=330 мы активно работаем, можете наблюдать за процессом.

Quote:Основная проблема - доступность простым смертным, если они ничего не поймут, тогда что есть, что нет - больше модов от этого не станет.

Этим самым "смертным" порой достаточно пару чисел поменять, они уже в шоке от того, что можно менять стартовые ресурсы сложности, им хватает этого вполне. Можно сделать гайд, как это делать. Вот я в вк пытаюсь. Для моддеров тем не менее это невероятно полезная информация, мы сейчас всю работу сделаем и пользуйтесь наздоровье. Моддинг удобнее гораздо станет, ведь вместо безликих sub_XXXXXX и прочего у нас 100% точная информация обо всем прямо от разработчиков игры.

Quote:Лично я от RoseKavalier ничего не использую, т.к. он делает слишком много вложений в структурах, что совершенно неудобно при их чтении и анализе, редко его комментарии в самих структурах полезны

А это здесь причем вообще? Ну я тоже не пользуюсь H3API, тоже она мне не нравится, ну не значит это, что нужно вообще человека бойкотировать. Он с нами в команде работает и приносит только пользу, дампая информацию. Мне остается ее лишь вручную обработать, т.к. скриптов для этого нет.

Quote:т.к. программисткий жаргон мне понимать тяжело, ну а самое главное - я работаю с русифицированными структурами, т.к. английский совершенно не знаю.
До сих пор использую структуры Мастера, замиксованные с разными структурами из параллельных проектов. Самые понятные для меня - наработки по структурам из WoG 3.59, т.к. сделаны явно непрограммистами для непрограммистов.

Я тоже ни разу не программист. Я буквально этой весной не знал как поставить хук и что такое структура и классы. Я вообще на инженера учусь. Мне ничего не мешало изучить по-тихоньку это дело, тем более для моих институтских проектов это мне помогает хорошо, поэтому лично для меня все героями не ограничивается.

Quote:У меня ваша база не открывается, ничего по ней сказать не могу, у меня дримкастный исполняемый файл был диассемблирован IDA 6, с чем потом я пытался работать, потом забросил. Что такое указатели и перечисления - не знаю. Программисткий жаргон не понимаю. 105

А IDA 7.6 у вас не работает? Тогда ничем не могу помочь, кроме как порекоммендовать виндовс обновить хотя бы до 7-ки.
(17.12.2021 07:48)void_17 Wrote: [ -> ]Понятное дело, что поможет. Разработчики игры оставили информацию о всех типах enum, битовым полям и даже параметрам функций де-факто в открытом доступе. Остается лишь это систематизировать и перед нами.. Рай для моддеров!

Смотрел, там каша отладочной информации, у меня просто духу не хватило глубоко разбираться в ней. Моддинг считаю превыше.

(17.12.2021 07:48)void_17 Wrote: [ -> ]https://handbookhmm.ru/forum/viewtopic.p...&start=330 мы активно работаем, можете наблюдать за процессом.

Наблюдаю, кое что беру на карандаш. Спасибо.

(17.12.2021 07:48)void_17 Wrote: [ -> ]Этим самым "смертным" порой достаточно пару чисел поменять, они уже в шоке от того, что можно менять стартовые ресурсы сложности, им хватает этого вполне. Можно сделать гайд, как это делать. Вот я в вк пытаюсь. Для моддеров тем не менее это невероятно полезная информация, мы сейчас всю работу сделаем и пользуйтесь наздоровье. Моддинг удобнее гораздо станет, ведь вместо безликих sub_XXXXXX и прочего у нас 100% точная информация обо всем прямо от разработчиков игры.

Появится у тех, кто сможет открыть базу. Далеко не у всех есть IDA, для многих изменение данных в структурах с помощью UN:C - потолок, поэтому списки имён к функциям с адресами и сами структуры рекомендую всё же публиковать отдельно в текстовом виде, чтобы этими данными мог воспользоваться любой у кого установлен Блокнот на ПК.

(17.12.2021 07:48)void_17 Wrote: [ -> ]А это здесь причем вообще? Ну я тоже не пользуюсь H3API, тоже она мне не нравится, ну не значит это, что нужно вообще человека бойкотировать. Он с нами в команде работает и приносит только пользу, дампая информацию. Мне остается ее лишь вручную обработать, т.к. скриптов для этого нет.

Не бойкотирую, а только намекаю, что у Кавалериста слишком сложно описаны данные, нужно быть проще.

(17.12.2021 07:48)void_17 Wrote: [ -> ]А IDA 7.6 у вас не работает? Тогда ничем не могу помочь, кроме как порекоммендовать виндовс обновить хотя бы до 7-ки.

IDA 6.5 - максимальная версия для Windows 2003. У Windows 7 слишком высокие системные требования.
Удалось дампануть автоматически всю дебажную информацию RoE. Вот, дерзайте. (большой txt файл): https://drive.google.com/file/d/1f33j57Y...sp=sharing
Справка для чтения дампа: https://drive.google.com/file/d/13SoqW6r...sp=sharing

Здесть есть:
! Оригинальные названия функций и методов !
! Оригинальные названия параметров функций !
! Оригинальные названия всех типов !
! Оригинальные названия всех констант перечислений !
и многое другое.

Огромное количество полезной информации, актуальной в т.ч. и для SoD/WoG. Некоторые типы вообще не менялись из версий в версию, некоторые слегка видоизменялись в соответствии с нововведениями.
void_17, спасибо!
void_17, Проблема в том что нужно чем то обработать всю недостающую графику для Wog и Сопряжения - что толку от половины работы?, там нужно еще менять настройки сжатия всех кадров ибо они хранятся в х3 размере, так как нам нужно чтобы отображалось как в оригинальной игре а не как в переиздании в увеличенном размере
(22.01.2022 10:16)suftfree Wrote: [ -> ]void_17, Проблема в том что нужно чем то обработать всю недостающую графику для Wog и Сопряжения - что толку от половины работы?, там нужно еще менять настройки сжатия всех кадров ибо они хранятся в х3 размере, так как нам нужно чтобы отображалось как в оригинальной игре а не как в переиздании в увеличенном размере

Ну у вас же получается Topaz-ом обрабатывать. Я уверен, убейсофт так и делали, чутка подкорректировал в фотошопе.
Осталось изучить код HD Edition, благо там есть сигнатуры и иногда assert-ы с полезной информацией.
Reference URL's