Как починить шрифты в Stronghold HD

Как-то на днях решил запустить Stronghold и был весьма удивлён, что вместо текста в игре стали отображаться точки, хотя игра ещё год назад на этой же машине игра работала отлично.

Суть проблемы
Суть проблемы

Погуглив, так я ничего толком на эту тему и не нашёл. Окромя идеи накатить какой-то там руссификатор поверх английской версии. Поковырявшись немного в игре, выяснилось, что русская версия, в отличии от английской использует шрифты WinGDI. Английская же использует текстуры букв из своих ресурсов.

Первое, что нужно - это скачать какой-то старый шрифт Arial Unicode MS, именно он захардкожен в русской версии игры.

Далее нужно пропатчить exe-файл игры. Я использовал OllyDbg. Находим где используется этот шрифт (Arial Unicode MS), и правим параметр вызова функции WinGDI CreateFontA. Нас интересует параметр iCharSet, нужно поменять значение с OEM_CHARSET (255) на ANSI_CHARSET (0).

И результат:

После фикса
После фикса

Проверил, проблем вроде нигде нет. Даже справка в игре нормально отображается.

В exe-файле шрифт Arial Unicode MS, скорее всего, можно тоже переопределить на какой-нибудб стандартный. Я этого делать не стал.

Если кому нужно, могу скинуть пропатченный exe-шник.

PS. Я не очень разбираюсь в разработке под винду, т.к. так что может что-то напутал, извиняйте)

1.2K1.2K показов
214214 открытия
11 комментариев

Комментарий недоступен

Ответить

Так эта проблема как раз в Stronghold HD

Ответить