Перейти к содержанию

Text.dll 2025 (мой неоффициальный апдейт на современный лад)


ksteel

Рекомендуемые сообщения

Всем привет. Решил я тут поиграть в старый добрый Морровинд, установить Фуллрест репак, интегрировать нейросеть в него и т.д. (ну вы понимаете игры Тес без моддинга в наше время никуда, а возможностей сейчас куча). И вот что я заметил, старый добрый https://www.fullrest.ru/files/russian_text_input#6235 text.dll имел ряд недостатков(по моему мнению😞)

1. Переключение раскладки на ScrollLock. Не очень удобно, особенно если вы пользуетесь и консолью в игре, и создаете зелья/заклинания. Постоянно переключаться через СкроллЛок не очень удобно, он находится далековато (а у пользователей ноутбуков он вообще через Fn работает). Что я сделал? Я переназначил клавишу переключения раскладки на LAlt путем смены значения с DIK_Scroll на DIK_LAlt:

 image.png.5aa6b63372e5e85b366e4deba461a472.png
2. Наличие слепого пятна в переводе клавиш с английского на русский (расскажу максимально подробно, насколько я смогу, тапками не кидайтесь): при использовании английской раскладки, если вы нажимали клавишу "/?.," (клавиша между буквой "ю" и правым Shift) то печатались символы "/ и ?" (? - с зажатой клавишей Shift), при переключении раскладки на русскую ПО ЛОГИКЕ должны были печататься знаки препинания ". и ," ( , (запятая) с нажатой клавишей Shift). НО этого не происходило, и печатались стандартные английские "/ и ?". Это происходило потому что в "таблице перевода, назначении клавиш" стояла пустота (0х00) вместо правильных значений. Я же внёс значения для этих клавиш ( 0х2Е для "." и 0х2С для ",") и как бы "перевёл" их для движка игры:

image.png.844f382866c3a39b0af562fe31a529b8.png

3. При использовании MCP патча (Morrowind Code Patch) у оригинального Morrowind.exe менялся цифровой отпечаток. Из-за чего старенький text.dll не понимал что это за новый такой Morrowind.exe и выдавал ошибку "Unknow Morrowind.exe". Потому что он знал только оригинальный Морровинд с его цифровым отпечатком, либо Морровинд+Трибунал, либо Морровинд+Трибунал+Бладмун. И для каждой версии он задавал координаты в оперативной памяти (очень сложно объяснять это на пальцах). Проще говоря если была непонятная версия —  неверные координаты ломали память игры и соответственно ничего не работало (хотя ошибка Unknow Morrowind.exe и не давала этого сделать). Что сделал я - я добавил настройку в Angel.ini, которая выглядит следующим образом: 

image.png.5c5d12bef97d6f3f73a2b2cf2a297d04.png

Теперь при установке этого Text.dll (с прилагаемым к нему Angel.ini), сначала надо выставить ту версию игры, которую используете ВЫ. Если этого не сделать (запустить версию с бладмуном, а в строке будет MT), то вам выдаст ошибку, потому что я ввёл безопасную валидацию (Я БЕРЕГУ ТВОЙ МОРРОВИНД! ТЫ ЕГО НЕ ДОЛЖЕН(НА) СЛОМАТЬ!😞)

image.png.1d9e3e42115c7be84fd9e2db390f3b86.png

Я думаю, итак, понятно что после слов Version="СЮДА НАДО ВПИСАТЬ СВОЮ ВЕРСИЮ, УБРАВ КАВЫЧКИ КАК НА СКРИНШОТЕ". Я почти уверен, что 99% игроков играют в версию МТВ, так что ничего менять не нужно в Angel.ini, эта настройка стоит там по умолчанию.

А если вы всё же играете без какого-либо дополнения, я бы хотел у вас спросить следующее: "....кто вы?"

Также этот text.dll должен быть (по крайней мере мои локальные тесты показали, что это так) универсальным и подходить к любой версии Morrowind.exe. Главное соблюдайте соответствие в строке Version= (M/MT/MB/MTB) и всё у вас будет хорошо. И да, с этим text.dll вам не нужно будет скачивать или искать оригинальный образ диска (потому он и тяжелее (241 кб) немного (~ на 70 кб), в отличие от старенького text.dll (~170 кб)). 

02/10/2025 UPD: Обновил Text.dll, а именно:

1. Главное дополнение — теперь, клавишу можно переназначить через Angel.ini! Для этого в Angel.ini был добавлен следующий блок:image.thumb.png.3df8864028dcbcffea361a3ddc2f81c2.png

Вопрос: "Как добавить свою клавишу и можно ли это сделать вообще?"

Ответ: да, добавить можно:

  1. Идёте на https://learn.microsoft.com/en-us/previous-versions/windows/desktop/bb321074(v=vs.85), где ищете нужную вам клавишу.
  2. Меняете значение в строке ToggleLayout = (ставите сюда значение клавиши без скобок)
  3. Играете.

Как было реализовано?

  1. "Создал память" для клавиши, внеся строку: image.png.1e5409ad40af7d9bf51c1b95b2968c18.png
  2. Заставил читать Angel.ini внеся в "void InitMWKeyboard" следующую строкуimage.png.5b837c228a6977439ddf3102cea1eab8.png
  3. Заменил фиксированную клавишу на переменную из "памяти":                                                                  image.png.09d641fdf64dd71388a1fce2db298829.png
  4. Добавил "пульт управления" в Angel.ini:                                                                                                                                                                                                         image.png.4d22043b9ba57ac18015a54b6a10cf43.png

2. Небольшие фиксы слепых пятен: 

  • верхний ряд цифр (клавиша 2) при русской раскладке, при сочетании клавиш Shift+2 теперь правильно переводится в символ " " " (верхние двойные кавычки), Shift+2 в английской раскладке всё также даёт "@" (собака).
  • верхний ряд цифр (клавиша 4) при русской раскладке, при сочетании клавиш Shift+4 теперь правильно переводится в символ " " (точка с запятой), Shift+4 в английской раскладке всё также даёт " $ " (доллар).
  • верхний ряд цифр (клавиша 6) при русской раскладке, при сочетании клавиш Shift+6 теперь правильно переводится в символ " " (двоеточие),  Shift+6 в английской раскладке всё также даёт " ^ " (не помню как называется символ 😄)
  • верхний ряд цифр (клавиша 7) при русской раскладке, при сочетании клавиш Shift+7 теперь правильно переводится в символ " ? " (знак вопроса), Shift+7 в английской раскладке даёт " & " (амперсанд).

НЕ БЫЛО ПОФИКШЕНО: верхний ряд цифр (клавиша 3) при русской раскладке, при сочетании клавиш Shift+3 должна переводится в символ " № ", но вместо него она упорно писала цифру 1. Сначала я добавил этот символ № в алфавит DialogueEngine.cpp - игра всё ещё писала цифру 1. Потом я удалил из Алфавита Большой твердый знак "Ъ", влепил на его место символ "№". Игра стала писать пустое место или "пробел". Я предполагаю, что это из-за шрифта (даже нового), не стал заморачиваться и вернулся к тому, что и англ и русская раскладка при Shift+3 пишут символ "#". Если уж писать символ "№", то можно это сделать и английской N просто не так красиво =( . 

Также прилагаю таблицу "обновленных" данных в таблице (с уже изменёнными):
image.png.3604244cfae868327aa175cee7899577.png

Всем спасибо за внимание, в особенности пользователю Angel Death за труд: 

 image.png.d4a5054a771e2edc44d38922c3ce3058.png

из далёкого 2005 года.

Исходники text.dll взяты с ГитХаб https://github.com/angeld29/morr_text_dll

Text.dll angel.ini

 

Изменено пользователем ksteel
апдейт основного файла text.dll, фикс оформления темы.
Ссылка на комментарий
Поделиться на другие сайты

Ого, русский морр без виртуального диска, революция свершилась!

Кстати, ProcessPriority=1 за что отвечает?

Всю жизнь было 0

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Dagot_Prolaps сказал:

Ого, русский морр без виртуального диска, революция свершилась!

Кстати, ProcessPriority=1 за что отвечает?

Всю жизнь было 0

Насколько я понял, text.dll не просто какой-то руссификатор. Это целый комплексный патч, на уровне памяти игры(фиксит бездоспешный бой и т.д. и т.п). Но также он расширяет консоль, вносит в неё команды новые по типу: 

o    .help: Показывает список всех этих новых команд.

o    .version: Показывает точную версию .dll файла.

o    .priority: Позволяет на лету менять приоритет процесса Морровинда в Windows (Normal, High, Realtime). (Скорее всего эта команда и связано со строкой ProcessPriority=1. Смею предположить, что в 2004-2005 годах были всё ещё проблемы со "сворачиванием игры" по альт-таб, потому эту функцию впихнули. Если нет, то для чего менять приоритет процесса игры через консоль - я пока не могу понять).

o    .fps max: Позволяет установить лимит максимального FPS в игре.

o    .dump: Мощная отладочная команда для разработчиков, позволяющая "заглядывать" в память игры.

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте еще бы средство от вылетов так как не играю больше из за этого в оригинальный morrowind пришлось перейти на OpenMW

Ссылка на комментарий
Поделиться на другие сайты

ProcessPriority=0

Когда-то ранее было обсуждение оного...

Вроде для повышения ускорения загрузки, но на слабых ноутах от этого звук отрубался.

Так что ну его в баню, не стоит ставить более нуля.

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Kronis сказал:

Здравствуйте еще бы средство от вылетов так как не играю больше из за этого в оригинальный morrowind пришлось перейти на OpenMW

Вы просите "одно лекарство" от всех болезней 😃 
Увы такого не существует. Движок старенький, на костылях работает. Советую играть в фуллрест репак, он более-менее стабильный. Этот файл text.dll, он оперирует с памятью игры. Но увы я не знаю какой блок памяти за что отвечает. Проще говоря - это очень мощный инструмент, но технологий для его использования "на полную катушку" у меня нет. 

Ссылка на комментарий
Поделиться на другие сайты

Ого! Интересно.

 

В 9/28/2025 в 2:28 AM, ksteel сказал:

клавишу переключения раскладки на LAlt путем смены значения с DIK_Scroll на DIK_LAlt:

Чревато конфликтами с некоторыми MWSE-Lua модами, задействующими левый Альт.

Ссылка на комментарий
Поделиться на другие сайты

6 часов назад, Марк К. Марцелл сказал:

Ого! Интересно.

 

Чревато конфликтами с некоторыми MWSE-Lua модами, задействующими левый Альт.

Да, вы правы. Я об этом тоже думал, но, как правило, если в Lua моде есть какой-то хот-кей, то, скорее всего, его можно через мсм переназначить? Это явно проще чем заново перекомпилировать text.dll 😃даже если нет хот-кея, то можно его сделать для этого мода 😃

Изменено пользователем ksteel
Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, ksteel сказал:

если в Lua моде есть какой-то хот-кей, то, скорее всего, его можно через мсм переназначить?

Если разработчик заложил такую опцию. Что бывает не всегда.

3 часа назад, ksteel сказал:

даже если нет хот-кея, то можно его сделать для этого мода

В принципе, да. Мне, например, проще подправить луа-мод, чем перекомпилить ДЛЛ. Ну а тому, кто просто решил поиграть в Морру и нашёл в интернете инфу, что язык переключается по СкроллЛок, одинаково сложно будет и то, и другое. :-)

Ссылка на комментарий
Поделиться на другие сайты

В 28.09.2025 в 11:13 AM, Dagot_Prolaps сказал:

Ого, русский морр без виртуального диска, революция свершилась!

Вичановкий Толки Моррошинд это давно делал

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, ksteel сказал:

Да, вы правы. Я об этом тоже думал, но, как правило, если в Lua моде есть какой-то хот-кей, то, скорее всего, его можно через мсм переназначить? Это явно проще чем заново перекомпилировать text.dll 😃даже если нет хот-кея, то можно его сделать для этого мода 😃

Имхо оптимальным тут был бы вынос хоткея в инишник, если это возможно 

Ссылка на комментарий
Поделиться на другие сайты

В 30.09.2025 в 1:15 PM, Siberian Crab сказал:

Имхо оптимальным тут был бы вынос хоткея в инишник, если это возможно 

Что-то я не подумал об этом совсем 😃 сегодня как освобожусь - попробую это сделать

Ссылка на комментарий
Поделиться на другие сайты

В 30.09.2025 в 1:15 PM, Siberian Crab сказал:

Имхо оптимальным тут был бы вынос хоткея в инишник, если это возможно 

сделал обновление, спасибо за идею 😃

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, ksteel сказал:

сделал обновление, спасибо за идею 😃

С настройкой горячей клавиши это прям тема. А как Morrowind Code Patch относится к этой версии text.dll? не ругается ни на что?

Изменено пользователем Pirate443
Ссылка на комментарий
Поделиться на другие сайты

51 минуту назад, Pirate443 сказал:

С настройкой горячей клавиши это прям тема. А как Morrowind Code Patch относится к этой версии text.dll? не ругается ни на что?

Данный text.dll должен быть совместим c любой версией morrowind.exe оригинального движка (goty, обычный MTB или же модифицированный через MCP) 😃

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, ksteel сказал:

Данный text.dll должен быть совместим c любой версией morrowind.exe оригинального движка (goty, обычный MTB или же модифицированный через MCP) 😃

MCP ругается при установке на несовместимый Text.dll а после этого и морровинд при запуске, игра в результате запускается но без MWSE, по крайней мере кнопки MCM просто нет.
update со второй попытки заработало, MCP по прежнему ругается на файл, но игра вроде нормально заработала.


 image.thumb.jpeg.ce380ecc7013c513922f47ba1f91e0b3.jpeg

Изменено пользователем Pirate443
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Pirate443 сказал:

MCP ругается при установке на несовместимый Text.dll а после этого и морровинд при запуске, игра в результате запускается но без MWSE, по крайней мере кнопки MCM просто нет.
update со второй попытки заработало, MCP по прежнему ругается на файл, но игра вроде нормально заработала.


 image.thumb.jpeg.ce380ecc7013c513922f47ba1f91e0b3.jpeg

попробуй сначала пропатчить морровинд, а потом  закинуть мой text.dll
видимо в самом mсp есть проверка crc ключей, которые он сопоставляет с text.dl

Изменено пользователем ksteel
Ссылка на комментарий
Поделиться на другие сайты

А возможно он ругается на вес dll (отличия моего 241 кб и оригинального 170кб) cуммы не совпадают. Если бы у меня были исходники MСP, я бы смог посмотреть в чём проблема. Но я их найти не могу, к сожалению. А так да, судя по логам MCP патчи ставятся. MCP и MGE видны при загрузке  и в главном меню игры. Использовал Fullrest Repack последней версии со всеми аддонами.

Screenshot_3.png

Screenshot_2.png

Screenshot_4.png

Изменено пользователем ksteel
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   2 пользователя онлайн

×
×
  • Создать...