Объявления

Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Как создать плагин для HD мода

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: Как создать плагин для HD мода

Сообщение void_17 » 06 ноя 2021, 16:13

Меня уже доканал этот реверсинг. Ковыряться бесконечно как глист. Из-за этого дерьма меня уже просто тошнит от героев. Я завтра выложу свою базу, надеюсь кому-то она будет полезна и кто-нибудь продолжит мое дело по изучению игру по моему " вектору" — восстановлению оригинальных сигнатур и систематизации и приведения в порядок баз игры(я технарь до мозга костей, меня такой беспорядок не устраивает совсем), потому что воговская база это какой-то адский черновик.. И больше в это дерьмо не вернусь!
 
(я про реверсинг, а вы, ребята, просто прекрасное коммьюнити, наилучшее, что я видел в интернете, честно, я крепко пожал бы руку каждому из вас, от ХЕРОМАНТа и Берсеркера до RoseKavalier-a и AlexSpl; такой энтузиазм это просто невероятно, ТАК любить игру и свое дело — это действительно заслуживает уважения.)
А лично у меня уже просто сил нет этим заниматься. Лучше буду продолжать заниматься насущными делами. Завтра создам тред в нескольких форумах, где объясню, как продолжать мною начатое дело. Первое время буду отвечать на вопросы.
Фух. Извините, накипело.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 06 ноя 2021, 18:00

Я не думаю, что воговская база единственная. Она просто доступна и широкоизвестна. Думаю, у каждого реверсера есть свои. Я тоже пытался как-то делать, но мне неинтересен реверс ради реверса. Если возникает какая-то конкретная задача, изучаю связанный с ней код. А так, было бы удобно, конечно, иметь под рукой что-то лучше воговской базы.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: Как создать плагин для HD мода

Сообщение void_17 » 06 ноя 2021, 18:10

Слишком разобщенно реверсеры работают, вот в чем дело. Нужно работать сообща, вместе базу сделать общую, систематизировать все. United we stand, divided we fall.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 06 ноя 2021, 18:16

Есть такое. Но нужен координатор. Наверняка у команды HotA самая разобранная база, но проект закрытый. Думаю, следом идут базы Берсеркера и RoseKavalier, но я как-то не особо интересовался, есть ли они в свободном доступе (не было нужды).
Вернуться к началу

offlineRoseKavalier  
Мастер
Мастер
 
Сообщения: 331
Зарегистрирован: 23 сен 2017, 17:00
Пол: Не указан
Поблагодарили: 234 раз.

Re: Как создать плагин для HD мода

Сообщение RoseKavalier » 06 ноя 2021, 18:47

The person with the source code will likely never be able to release it due to impending litigation from Ubisoft, it would be so obvious they are responsible for the leak.

It is a pretty large task to reverse everything, even with partial symbols.
Projects that have done complete reversal (e.g. Diablo, GTA) are far and few and they had the benefit of having symbols that match the version they were working with whereas heroes3 specifically reverse engineers SoD 3.2 with (now) symbols from an unreleased RoE Dreamcast version :smile5: They also had pretty big groups collaborating together to achieve the same goal, which doesn't seem to be very sought out in heroes3. Other projects that have done partial reverse engineering (e.g. project Ironfist) reversed part of the code and then simply left the rest as assembly / IDA output. searchArray is also present in Homm2 however nobody knows how it works exactly.

My approach has been to pick one function, find its equivalent and then just poke around that area and put in the appropriate names for functions contained within there. It is not simple due to inlining but mostly due to differences between RoE and SoD which added a lot of code in specific areas. For instance, game::save has an entirely different prelude.
I am slowly modifying h3api to use the correct names, given it's already a pretty decent coverage it's mostly changing some names and defining functions correctly.
For uniformity's sake I allow myself some creativity (e.g. type_point -> Point, NewfullMap -> FullMap, NewmapCell -> Tile) to make up for NWC's inconsistency in naming. In heroes4 the naming is much more standard, everything is t_class_name, alas we are stuck with many prefix variants:
 
type_ (e.g. type_point)
t_ (e.g. t_abstract_random_generator << from mapeditor btw)
T (e.g. TDialogBox)
C (e.g. CSprite)
S (e.g. SCampaign)
(none) + snake_case (e.g. hero)
(none) + PascalCase (e.g. NewfullMap)
(none) + camelCase (e.g. advManager)
...probably forgetting some.


You have to take your time, progress will not happen overnight especially for non-programmer such as myself - can't speak for others. Maybe one day there will be enough interest to take on complete reversal of the game but at the moment the skilled persons in heroes3 are all doing their own project.
Вернуться к началу

offlineliziwen  
имя: ziwen
 
Сообщения: 4
Зарегистрирован: 14 окт 2021, 07:30
Пол: Мужчина
Поблагодарили: 0 раз.

Re: Как создать плагин для HD мода

Сообщение liziwen » 07 ноя 2021, 03:40

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

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: Как создать плагин для HD мода

Сообщение void_17 » 07 ноя 2021, 04:42

Цитата:
My approach has been to pick one function, find its equivalent and then just poke around that area and put in the appropriate names for functions contained within there. It is not simple due to inlining but mostly due to differences between RoE and SoD which added a lot of code in specific areas. For instance


RoseKavalier, that's pretty much my strategy, but a bit more complicated.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 07 ноя 2021, 12:49

Цитата:
Всем привет! Я хочу разработать подключаемый модуль, поддерживающий китайский язык. Мой уровень недостаточен. Я не могу найти точку входа в программу. Если возможно, используя векторные шрифты для отображения текста, будет ли эффект лучше?

Если я правильно понял вопрос и китайская локализация поддерживает Юникод (должна, если умеет отображать иероглифы), то, когда работаете с текстом, используйте wide-character версии функций: например, sprintf() -> swprintf().

Я, признаюсь, только однажды сталкивался с китайской версией. Там игра запускается через специальный Launcher, который, в том числе, отвечает за корректное отображение иероглифов.

У нас на форуме есть очень старая, но рабочая версия этого лоунчера: https://handbookhmm.ru/forum/download/file.php?id=985

Так, сорри, это прога для записи реплеев, но я точно видел скрины китайской версии Героев 3 где-то. Вот тут - heroescommunity.com/viewthread.php3?TID=44669 - можно почитать. У меня, правда, не запускается, в отличие от старой версии, даже в режиме совместимости с Windows XP.

Если у Вас запускается и Вы видите корректные китайские иероглифы, то всё, что нужно сделать в коде плагина для перевода на китайский, - это заменить строки char* на wchar_t* и использовать соответствующие функции для работы с Юникодом.
Вернуться к началу

offlineRoseKavalier  
Мастер
Мастер
 
Сообщения: 331
Зарегистрирован: 23 сен 2017, 17:00
Пол: Не указан
Поблагодарили: 234 раз.

Re: Как создать плагин для HD мода

Сообщение RoseKavalier » 07 ноя 2021, 13:43

There is a plugin made by gu7979gu in Pascal a long time ago, it uses GBK which is a multi-byte encoding.
Apparently the source code was lost in time, but Bersy had a copy.
Вложения
WoG CN.zip
(2.24 МБ) Скачиваний: 220
Вернуться к началу

offlineliziwen  
имя: ziwen
 
Сообщения: 4
Зарегистрирован: 14 окт 2021, 07:30
Пол: Мужчина
Поблагодарили: 0 раз.

Re: Как создать плагин для HD мода

Сообщение liziwen » 07 ноя 2021, 14:16

Спасибо Ответ! Этот плагин очень старый, и в новой версии HD MOD легко ошибиться. WOG также имеет плагин, который поддерживает китайский язык, что лучше, чем это, но из-за множества штрихов китайских иероглифов, эффект отображения точечно-матричного шрифта не ясен. Если вы можете использовать векторный шрифт. Он идеален. Насколько я знаю, VCMI использовал векторные шрифты и, конечно, поддерживает Unicode. Я хотел бы реализовать его на HD MOD , но я даже не могу найти точку входа крючка.
Вернуться к началу

Пред.След.

Вернуться в Общий раздел

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5