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

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 сказал:

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

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

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

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

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

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

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

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

Войти

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

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

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...