Current time: 25.11.2024, 05:00 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Исследование героев
» туториал(ы)
Author Message
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #766

(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
;конец копии

Можно компилировать в ассемблере и применять в модах.
(This post was last modified: 16.12.2021 21:15 by XEPOMAHT.)
16.12.2021 21:05
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 39
Post: #767

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

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


IDA-База HOMM 3 Discord Server
(This post was last modified: 16.12.2021 21:27 by void_17.)
16.12.2021 21:24
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #768

(16.12.2021 18:40)void_17 Wrote:  Отличия оригинальных типов между RoE и HD Edition есть. Пока не могу сказать какие, но точно это связано с интерфейсом.

У дримкаста интерфейс тоже значительно перелопачен по сравнению с ПК. Куча новых юбисофтских функций, некоторые кстати перекочевали с дримкаста в порт 2015 года (что подтверждает гипотизу о том, что разорившийся 3DO не передал исходные коды после покупки, поэтому для HD-переиздания использовали то, что откопали в закромах самого Юбисофта, а именно, исходники RoE 0.99). Более-менее достоверно можно восстановить оригинальные имена игрового кода.
16.12.2021 21:30
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 39
Post: #769

Я знаю об этом. Постоянно сижу в этой самой дримкаст базе, собственно мы этим и занимаемся, что переносим дебажную информацию из дримкаст в "дикий" SoD, некогда воговскую базу. Могу сказать лишь то, что в интерфейсе дримкаста из самих типов не особо поменялось по сравнению с ПК билдом RoE. Говорю просто из опыта работы с базой. Типы не меняются, меняются там лишь аргументы функций да всякие таблицы и прочее.

Кстати есть в дримкасте функции, которых нет в RoE ПК просто из ненадобности. Ну например для переноса камеры на поле боя, так как она не вмещается полностью.


IDA-База HOMM 3 Discord Server
(This post was last modified: 16.12.2021 21:44 by void_17.)
16.12.2021 21:39
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #770

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

Не имеет смысла. Дополнение Клинок Армагеддона всё равно сложно будет реализовать в HD-переиздании, т.к. там изменений вагон. SoD больше тянет на DLC, изменений там совсем немного (т.к. SoD запланирован не был, тут в дело вмешался издатель с первым намереньем заработать на игроках с минимальными затратами программисто-часов).
16.12.2021 21:50
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 39
Post: #771

Вы не поняли меня. Применяя код HD Edition, сделать плагин для SoD или даже WoG, чтобы работала графика как в HD Edition.


IDA-База HOMM 3 Discord Server
(This post was last modified: 16.12.2021 21:55 by void_17.)
16.12.2021 21:55
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #772

(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 22:15
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #773

(16.12.2021 21:55)void_17 Wrote:  Применяя код HD Edition, сделать плагин для SoD или даже WoG, чтобы работала графика как в HD Edition.

Это ещё дольше и сложнее, чем портирование всех дополнений на HD Edition, т.к. потребуется полностью заменить весь графический движок игры. Да и смысла так же в этом нет, т.к. затраты несоизмеримы с тем, что получится в итоге.
16.12.2021 22:33
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 39
Post: #774

(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): вернул сообщения в надлежащую тему
Я тоже не понимаю, зачем сообщения нужно было отсюда переносить.


IDA-База HOMM 3 Discord Server
(This post was last modified: 17.12.2021 07:51 by void_17.)
17.12.2021 07:38
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 39
Post: #775

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-ки.


IDA-База HOMM 3 Discord Server
17.12.2021 07:48
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #776

(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 слишком высокие системные требования.
17.12.2021 10:41
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 39
Post: #777

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

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

Огромное количество полезной информации, актуальной в т.ч. и для SoD/WoG. Некоторые типы вообще не менялись из версий в версию, некоторые слегка видоизменялись в соответствии с нововведениями.


IDA-База HOMM 3 Discord Server
(This post was last modified: 17.12.2021 13:17 by void_17.)
17.12.2021 12:29
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #778

void_17, спасибо!


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
17.12.2021 21:20
Find all posts by this user Quote this message in a reply
Suft Offline

Posts: 1095
Post: #779

void_17, Проблема в том что нужно чем то обработать всю недостающую графику для Wog и Сопряжения - что толку от половины работы?, там нужно еще менять настройки сжатия всех кадров ибо они хранятся в х3 размере, так как нам нужно чтобы отображалось как в оригинальной игре а не как в переиздании в увеличенном размере


ERA HD Edition 0.7.3: ENG-RU
Сooperative no bugs: Yandex / Google

(This post was last modified: 22.01.2022 10:17 by Suft.)
22.01.2022 10:16
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 39
Post: #780

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

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


IDA-База HOMM 3 Discord Server
23.01.2022 12:45
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group