Объявления

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

Альтернативный перевод Heroes III

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineАватара пользователя
leiz  
Подмастерье
Подмастерье
 
Сообщения: 185
Зарегистрирован: 15 сен 2018, 07:58
Пол: Не указан
Поблагодарили: 95 раз.

Re: Альтернативный перевод Heroes III

Сообщение leiz » 13 май 2023, 01:30

Спрошу заодно, пользуясь случаем. Играю без фильтрации, максимум удвоенное разрешение для HoMM1-2, поэтому GLWrapper мне нужен только из-за патчей на ColdCPU. Может кто-нибудь здесь знает, какие адреса в *.exe править для снятия 100% загрузки ядра. Интересуют в первую очередь английские TSW 1.3, PoL 1.3, RoE 1.1 и 1.2, AB 2.1 и 2.2, SoD 3.2, но лучше все :) Для mm6 тоже было бы неплохо (mm7-8 еще не пробовал, не знаю есть ли в них такая проблема).
На GoG в теме по PS:T один парень написал:
Цитата:
in your interested in why it is running at 100 percent try googling info about Message Pumps,
PeekMessage vs GetMessage in games

Но я не программист и мне это ничем не помогает. Пока приходиться лочить fps bandicam/RTSS и тормозить BES/NtSleep. Для JA2 враппер cnc-ddraw отлично помогает с его опций "maxgameticks=", но он не панацея для всех старых игр (для mm6 не снимает нагрузку).
Если проблема "100% cpu load in oldgames" не только меня волнует, то можно и отдельную тему создать. У Intel процессоры живучие и 100% нагрузки долго могут выдерживать, на крайний случай потротлятся, а вот VRM на матплате и прочие комплектующие (особенно в ноутах) совсем не такие выносливые, а систему каждый год менять не всем по карману.
Вернуться к началу

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

Re: Альтернативный перевод Heroes III

Сообщение AlexSpl » 13 май 2023, 04:37

Решение через правку исполняемого файла в шестнадцатеричном редакторе хотя и возможно, но получится довольно громоздким. Основная идея - увеличить точность таймера через timeBeginPeriod(1); и вставить Sleep(1); в цикл сообщений (см., например, здесь). Быстрее всего такой трюк делается с помощью плагина.
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1031
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 614 раз.

Re: Альтернативный перевод Heroes III

Сообщение Владимир » 29 май 2023, 09:10

AlexSpl писал(а):

Я имею в виду в распакованную карту в шестнадцатеричном редакторе вписать поверх старого названия и не забыв байт 00 в конце. Запаковывать для тестов не нужно. Суммарная длина не должна превышать 17 символов, считая 0. Длиннее название не получится сделать из-за ограничения длины строки в самом формате карт.
...
Что ж, получилось :smile18:

Несколько дней проведя... не совсем в безделье, но не за редактором карт Героев 3 - наконец привёл "Небесный Мандат" в нужный вид. Названия двух городов получились как раз по 16 символов (в игре точно есть ограничение в 16 символов + нуль-байт, или всё же нет? Т. е. что-то вроде char name[17]?).
В процессе обнаружилась ещё одна особенность редактора: если вписывание названия вручную и "импортировать текст" ограничивает нас 12 символами, то "сохранить карту" обрезает все названия на 14. Пришлось вписывать названия уже после всех простых операций в редакторе карт.

На карте интересные дела с обелисками. Всего их 13 (в MM6 - 15), и рядом с ними расположены события с текстами, как на обелисках MM6. Нумерация обелисков другая.
 
MM6:
Код: Выделить всё
1  4  7  10  13
2  5  8  11  14
3  6  9  12  15

Герои 3:
Код: Выделить всё
7   10   9    11  12
8   6    4    5*  2
13  нет  нет  3   1

*у обелиска не обозначен номер, но текст у него от 5-го.
Тексты случайно, или намеренно испорчены NWC при переносе в Герои: другое количество пробелов, первая буква l как L-малое, а не как i-большое.
Нумерацию оставил как в Героях, тексты вписал из буковского перевода загадки. Переводить MM6 впридачу в мои планы не входило.
Удивительно, что в самой MM6 обелискам не дали случайную нумерацию.
Вернуться к началу

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

Re: Альтернативный перевод Heroes III

Сообщение AlexSpl » 29 май 2023, 10:41

Цитата:
Несколько дней проведя... не совсем в безделье, но не за редактором карт Героев 3 - наконец привёл "Небесный Мандат" в нужный вид. Названия двух городов получились как раз по 16 символов (в игре точно есть ограничение в 16 символов + нуль-байт, или всё же нет? Т. е. что-то вроде char name[17]?).

Нет, там не null-terminated строки точно. В HxD, например, есть функция вставки (не замены) байт по нужному адресу. Так что можно теоретически не ограничивать длины названий городов (главное, чтобы в игре все символы в окошко помещались).

Цитата:
На карте интересные дела с обелисками. Всего их 13 (в MM6 - 15), и рядом с ними расположены события с текстами, как на обелисках MM6. Нумерация обелисков другая.

У обелисков есть внутриигровая нумерация. Можно посмотреть (например, с помощью LMOracle), совпадают ли эти номера с номера в сообщениях.
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1031
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 614 раз.

Re: Альтернативный перевод Heroes III

Сообщение Владимир » 29 май 2023, 11:39

Я сравнивал положение обелисков на карте Героев 3 и в тех же местах в регионах MM6 ( http://mm6world.ru/6_useful.htm#obelisk и http://mm6world.ru/6_gal1.htm ). Карта-то по сути одна и та же.
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1031
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 614 раз.

Re: Альтернативный перевод Heroes III

Сообщение Владимир » 17 июн 2023, 05:38

Владимир писал(а):

Часть зависящих от времени событий в ней просто расставлены в неправильном порядке (более раннее ссылается на более позднее).

Внутренняя нумерация событий, общих для всей карты, совпадает с порядком их срабатывания в игре (номер дня, порядок в пределах одного дня).
Нумерация событий в городах первоначально определяется порядком их создания. Если какое-то из них удалить, произойдёт простой сдвиг. Если поменять местами два события одного дня (сдвинуть вверх/сдвинуть вниз) - поменяются только номера этих двух событий.
Пример: в городе последовательно созданы события A (1-й день), B(1-й день), C(2-й день), D(1-й день), E(2-й день). Порядок, в котором они сохранятся в файле карты: ABCDE; порядок срабатывания: ABDCE. Если меняем местами B и D, получаем ADCBE в файле и ADBCE при игре. Меняем дни срабатывания: A(3), B(2), D(2). Получаем ADCBE в файле и DCBEA в игре.

Используя инструменты экспортировать/импортировать текст, мы получаем городские события в виде беспорядочной "каши". Видимо, так и произошло с картой "Myth and Legend", которую явно делали не в один приём.
Вернуться к началу

Пред.

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

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

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