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

Full Version: ERA III
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(09.10.2020 10:49)Archer30 Wrote: [ -> ]Latest finding about Revealing the whole XXL map = crash upon loading

XXL-мод давно пора полностью переписать и встроить в era.dll. Например для MoP он когда-то был переписан на 90%, т.к. бинарная версия XXL-мода, которая используется в качестве мода для ERA, по тестам на MoP оказалась довольно багованной и просто недоделанной (сейчас и не вспомню конкретно, дело было года 3 назад...). Тем более часть пачтей XXL-мода заменяется HD-модом (радар, окно обзора королевства) и самой era.dll (патчи на воговские массивы данных, привязанные к размеру карты), поэтому предложение встроить XXL-мод в эру по-прежнему остаётся открытым (меня до сих пор смешит то, что глючный и недоделанный XXL-мод десятилетней давности - по прежнему один из популярных модов для ERA 96 ).
Archer30, thanks for valuable report.

XEPOMAHT, это всё без конкретики.
Berserker, это же стиль подачи инфы у XEPOMAHT'а такой на форуме, ещё не привык?

XEPOMAHT Wrote:меня до сих пор смешит то, что глючный и недоделанный XXL-мод десятилетней давности - по прежнему один из популярных модов для ERA
ну, так он востребован игроками и потому им хоть какой-то, даже с багами, главное чтобы карты создавал
(09.10.2020 13:58)Bes Wrote: [ -> ]ну, так он востребован игроками и потому им хоть какой-то, даже с багами, главное чтобы карты создавал

Да, потому что не критично. Но тех же кнопок для генерации больших размеров по-прежнему на ERA нет (используются текущие id кнопок) и сам код получения размеров использует сложное вычисление размера вместо получения готовых значений (как в оригинале), что замедляет перерисовку окна карты приключений (а она перерисовывается практически постоянно, например в MoP перерисовку по движению мыши я вообще убрал и на моем древнем ПК немного поднялась производительность игры 148 ).
Berserker, если не секрет, можешь вкратце обрисовать дальнейшие свои планы в развитии линейки ERA3 ?
что так сказать в значимых планах файла TODO ?
иногда хочется так сказать испытывать чувство предвкушения (на этом наркотике вся киноиндустрия уж точно нас держит своими трэйлерами) от той или иной реализации или задумки Rolleyes
Bes, выпуск мода на Смешанные Нейтралы 2, Управление циклическими звуками, Автообновление, Lua.
спасибо
ERM2.0 как я понимаю сейчас в окончательном релизе? только дошлифовка мелких огрехов и скрытых багов?
ничего из нового уже не ждать?
Bes, как движок да, конечно.
(09.10.2020 12:02)XEPOMAHT Wrote: [ -> ]XXL-мод давно пора полностью переписать и встроить в era.dll. Например для MoP он когда-то был переписан на 90%, т.к. бинарная версия XXL-мода, которая используется в качестве мода для ERA, по тестам на MoP оказалась довольно багованной и просто недоделанной (сейчас и не вспомню конкретно, дело было года 3 назад...). Тем более часть пачтей XXL-мода заменяется HD-модом (радар, окно обзора королевства) и самой era.dll (патчи на воговские массивы данных, привязанные к размеру карты), поэтому предложение встроить XXL-мод в эру по-прежнему остаётся открытым (меня до сих пор смешит то, что глючный и недоделанный XXL-мод десятилетней давности - по прежнему один из популярных модов для ERA ).
ХЕРОМАНТ, а дай свой код пожалуйста. Я попробую его адаптировать для ERA. Если уже есть готовый продукт, не хотелось бы копать всё заново с нуля.
(10.10.2020 21:11)igrik Wrote: [ -> ]Если уже есть готовый продукт, не хотелось бы копать всё заново с нуля.

Сохранились только сами "раскопки" - разобранный бинарник от AlexSpl и версия Андрея, на основе которых была написана версия под MoP: https://vk.com/doc-118013293_472373462

Из MoP - только диассемблированием (т.к. всё, что встраивается в mop.exe, производится без использования исходных кодов напрямую байткодом). Что не было встроено - только код, который ставит кнопки:

Code:
        mAlloc 68h
        DrawDefButton eax, 0DDh, 81, 41, 33, Экран_опций_карты_!_Кнопка_карты_180х180, RanSize180_def, 0, 1, 0, 0, 2
        call AddItemToArray_MapOpt

        mAlloc 68h
        DrawDefButton eax, 106h, 81, 41, 33, Экран_опций_карты_!_Кнопка_карты_216х216, RanSize216_def, 0, 1, 0, 0, 2
        call AddItemToArray_MapOpt

        mAlloc 68h
        DrawDefButton eax, 12Fh, 81, 41, 33, Экран_опций_карты_!_Кнопка_карты_252х252, RanSize252_def, 0, 1, 0, 0, 2
        call AddItemToArray_MapOpt

        mAlloc 68h
        DrawDefButton eax, 230, 535, 166, 40, Экран_опций_карты_!_Кнопка_меню_выбора_случайной_карты, 683580h, 0, 1, 0, 0, 2
        call AddItemToArray_MapOpt
Ох. Я понял что не всё так просто. В любом случае - спасибо!

PS: не сказать как я ошалел, когда увидел "40A08F E9B4940000; JMP 00413548" и то, что мы втупую прыгаем из одной функции прямо в свитч другой функции. Это вообще нормально?
igrik, если в свитче не используется ранее инициализированных локальных переменных/аргументов и обе функции имеют одно и то же число параметров и размер локальной памяти.
Вот то то и оно. Но в данном случае это совершенно не так...
(11.10.2020 19:43)igrik Wrote: [ -> ]Это вообще нормально?

Не очень нормально, поэтому в MoP просто берётся готовое значение из таблицы и пишется в local.2:

Code:
CPU Disasm
Address   Hex dump                  Command                                  Comments
0040A07F  |.  83F8 07               CMP EAX,7
0040A082  |.  77 22                 JA SHORT 0040A0A6
0040A084  |.  8B1485 585E7000       MOV EDX,DWORD PTR DS:[EAX*4+705E58]
0040A08B  |.  8955 F8               MOV DWORD PTR SS:[LOCAL.2],EDX
0040A08E  \.  EB 1D                 JMP SHORT 0040A0AD
0040A090   .  90                    NOP
0040A091   .  90                    NOP
0040A092   .  90                    NOP
0040A093   .  90                    NOP
0040A094   .  90                    NOP
0040A095   .  90                    NOP
0040A096   .  90                    NOP
0040A097   .  90                    NOP
0040A098   .  90                    NOP
0040A099   .  90                    NOP
0040A09A   .  90                    NOP
0040A09B   .  90                    NOP
0040A09C   .  90                    NOP
0040A09D   .  90                    NOP
0040A09E   .  90                    NOP
0040A09F   .  90                    NOP
0040A0A0   .  90                    NOP
0040A0A1   .  90                    NOP
0040A0A2   .  90                    NOP
0040A0A3   .  90                    NOP
0040A0A4   .  90                    NOP
0040A0A5   .  90                    NOP
0040A0A6  />  C745 F8 00008040      MOV DWORD PTR SS:[LOCAL.2],40800000

Там, где свитч совершенно не нужен, его лучше заменять обычной таблицей (+ освобождаются NOPS).
Berserker, хорошо бы таки поставлять в инсталляторе ERA инфу по идущим с WoG патчам, дабы сразу нуждающиеся в их расшифровке понимали что тот или иной bin (даже из числа *.off) в себе несёт конкретно.
** - на правах пожеланий
Reference URL's