Объявления

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

Редактирование ресурсов и кода игры

Не запускается игра? Проблемы со звуком? Где, в конце концов, взять игру, скачать патчи, приложения и карты? Как установить все это? Все проблемы обсуждаем в этом разделе
offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5547
Зарегистрирован: 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)
Поблагодарили: 2162 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 09 авг 2015, 07:34

Цитата:
Вопрос, а как вы узнали этот адрес? Я понял что 00 это крестьяне, а 27 это кабаны.

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

Цитата:
Я попробовал в Dоs-вском файле Heroes2.exe найтие строку C7 45 DC 00 00 00 00 ее там нет

В общем случае искать точь-в-точь такую же инструкцию в других версиях бессмысленно. Особенно в 16-рязрядном коде :smile2:
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 09 авг 2015, 09:21

AlexSpl писал(а):

Цитата:
Вопрос, а как вы узнали этот адрес? Я понял что 00 это крестьяне, а 27 это кабаны.

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


Я сейчас пробую поставить BP на сообщение при входе в жилище в DosBox 0.74 Debuger нажимаю Alt+Pause
игра останавливается, ни на что не реагирует музыка не играет. Переключаюсь в окно дебагера метка стоит на какой то операции. Я по F9 ставлю BP на соседний или вручную на этот же адрес. Потом нажимаю F5 чтобы игра продолжила исполнение. Игра опять продолжается но как не захожу в другие хижины больше не останавливается, хотя BP установлен. Почему не понимаю. :smile24: Хотя если я ставлю точно также Несколько BP на заставке. И потом жму F5 заставка запускается и тут же останавливается на соседнем BP. А при посещении хижин почему то нет хотя BP я ставлю :smile24:

Изображение

Изображение
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5547
Зарегистрирован: 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)
Поблагодарили: 2162 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 09 авг 2015, 09:43

Для начала скажите, какая у Вас версия Героев 2. У меня из DOS-овских есть только SW 1.0, а судя по скринам IDA, у Вас какая-то другая. Возможно, установлены патчи?
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 09 авг 2015, 10:28

AlexSpl писал(а):

Для начала скажите, какая у Вас версия Героев 2. У меня из DOS-овских есть только SW 1.0, а судя по скринам IDA, у Вас какая-то другая. Возможно, установлены патчи?


В DоsBox у меня сейчас стоит Heroes of Might and Magic 2 Price of Loyality установлена с образа Heroes of Might and Magic Compendium Disk 2

Брал отсуда viewtopic.php?f=40&t=112&start=120#p12727

Вот этот диск https://yadi.sk/d/NLV9m5_dMTngp/Collect ... Compendium

На последнем скрине у меня не IDA а DosBox 0.74 Debuger а IDA у меня 5.0 Free но она чето ругается на досовский файл Heroes2.exe
а запустить досовскую версию Heroes2 на исполнение в Windows XP в VirtualBox у меня не получилось игра вылетает
а в DosBox играет отлично. И в DosBox в самой Ubuntu и в DosBox уставновленном в Windows XP, установленной в VirtualBox, установленной в Ubuntu.
А Буковская версия в Wine глючит все время. А в Windows XP в VirtualBox жутко тормозит :smile7:
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 09 авг 2015, 12:28

И что заметил когда я в IDA загружаю Буковскую версию под виндоуз в IDA появляются кнопки: Запустить, Дебаг и можно игру запустить из IDA, а когда загружаю в IDA досовский Heroes2.exe никакие такие кнопки не появляютcя и запустить досовскиую версию игры из IDA нельзя :smile24:
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5547
Зарегистрирован: 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)
Поблагодарили: 2162 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 09 авг 2015, 13:10

Цитата:
запустить досовскиую версию игры из IDA нельзя

Если бы было можно, не пришлось бы пользоваться виртуальными машинами типа DOSBox :smile1:

Как поставить брейкпоинт на количество существ в DOSBox Debugger.
0. Сделайте сейв, в котором герой стоит в одном шаге от Хижины крестьян. Убедитесь, что у героя есть отряд крестьян в первом слоте.
1. Сделайте дамп памяти: memdumpbin ds:0 1000000
2. Откройте дамп и найдите в нём структуру данных, соответствующую Вашему герою. Искать быстрее всего по имени героя (например, "Lord Kilburn"). Прибавьте к адресу, по которому хранится имя героя (т.е. первый байт имени), число 0x60 (60h). Так Вы получите адрес, по которому хранится численность самого первого (левого) отряда в армии героя. Обозначим этот адрес как Addr
3. Установите брейкпоинт по этому адресу: bplm Addr
4. Теперь посетите героем Хижину крестьян.

Осталось только проанализировать код и изменить команду.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5547
Зарегистрирован: 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)
Поблагодарили: 2162 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 09 авг 2015, 15:14

Короче, в DOS-версии SW 1.0 ID монстров, которые живут во внешних двеллингах, хранятся в виде таблицы (массива). Адрес таблицы, естественно, будет отличаться для разных версий игры. Найти таблицу можно с помощью шестнадцатеричного редактора: ищите в исполняемом файле следующую последовательность: 01 00 00 00 0B 00 00 00 00 00 00 00. Должна быть уникальной. Как видно, ID хранятся в двойных словах (01 - Archers, 0B - Goblins, 00 - Peasants и т.д.). Есть вероятность, что в DOS-версиях PoL ничего не поменялось.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 09 авг 2015, 17:05

AlexSpl писал(а):

Короче, в DOS-версии SW 1.0 ID монстров, которые живут во внешних двеллингах, хранятся в виде таблицы (массива). Адрес таблицы, естественно, будет отличаться для разных версий игры. Найти таблицу можно с помощью шестнадцатеричного редактора: ищите в исполняемом файле следующую последовательность: 01 00 00 00 0B 00 00 00 00 00 00 00. Должна быть уникальной. Как видно, ID хранятся в двойных словах (01 - Archers, 0B - Goblins, 00 - Peasants и т.д.). Есть вероятность, что в DOS-версиях PoL ничего не поменялось.


Есть такая последовательность! :smile21: По адресу 1620AC
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 09 авг 2015, 17:59

Сейчас поменял в файле Heroes2.exe последовательность

01 00 00 00 0B 00 00 00 00 00 00 00 15 00 00 00 15 00 00 00 14 00 00 00 26 00 00 00 0C 00 00 00 1D 00 00 00 2F 00 00 00

На последовательность

09 00 00 00 13 00 00 00 27 00 00 00 1C 00 00 00 1B 00 00 00 23 00 00 00 2E 00 00 00 0E 00 00 00 22 00 00 00 34 00 00 00

И теперь кто у меня только не вербуется в хижинках и кабаны и драконы и титаны и фениксы и циклопы :smile21:

[youtube]http://youtu.be/umSS4yh54wI[/youtube]

Скажите а можно это сделать в виде мода? В смысле чтобы вот мод ставится и сам меняет эту последовательность в Heroes2.exe а потом при удалении сам менял последовательность на оригинальную?
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5547
Зарегистрирован: 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)
Поблагодарили: 2162 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 09 авг 2015, 19:49

Можно пока ограничиться обычным переименованием модифицированного экзешника и запускаться с него. Но если очень хочется, можно создать diff-файл (fc heroes2.exe heroes2_mod.exe > diff.txt) и поискать какой-нибудь бинарный патчер либо написать свой.
Вернуться к началу

Пред.След.

Вернуться в Техническая часть

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

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

cron