motofan logo
2 страниц V < 1 2        
> 

6 шрифтов!, Подробный мануал по их созданию

Dimka
сообщение 23.7.2007, 23:43 Закрепленное сообщение!


МотоКовырятель
******

Группа: Разработчики
Сообщений: 707
Регистрация: 21.3.2005
Из: Волгоград
Пользователь №: 39 255

Рейтинг: 1029



Методика

Смысл методики заключается в том, что все языки разбиты на 6 групп (вообще 7, но одна не задействована): LATIN (все основные языки); ARABIC; HEBREW; CHINESE; CYRILLIC (не используется и не возможно задействовать); THAI; VIETNAMESE. И для каждой группы определен свой шрифт в лэнге. Например, для группы LATIN определен шрифт под номером $01 в лэнге. В группу LATIN входят ВСЕ языки кроме языков $2D $08 $04 $05 $0B $0C. Вот получается, что можно добавить в лэнг языки из других групп, в эти языки загрузить русские строки и назначить на эти языки дополнительные шрифты, которые конечно нужно добавить в лэнг. В кодовой группе CG15, т.е. DRM находится таблица, в которой находятся указатели на шрифты для каждой группы языков. Получается, необходимо создать специальный лэнг с дополнительными шрифтами, отредактировать DRM и создать патч для переназначения языков группам. Теперь обо всем по порядку.

Создание лэнга

На данном этапе необходимо создать лэнг, в котором будут 6 шрифтов и 6 русских языков, только с разными ID. Редактирование будет происходить естественно через мою программу Moto Lang Editor v2.2 от 7.07.07 и немного через HEX редактор.

Для начала выберем языки, которые будем использовать для замены на русские. Выбрать надо 5 языков, они должны быть редкие и есть еще один нюанс, который я объясню в конце. Я советую брать языки: $0011 – CROATIAN; $0012 – CZECH; $0017 – GREEK; $0018 – HUNGARIAN; $0028 – TURKISH. Лучше выписать языки на листочке, чтоб потом было проще.

Теперь необходимо выбрать 5 не используемых шрифтов в лэнге, которые будут заменены на необходимые нам. Первый – это естественно будет шрифт $02, т.к. это дубль основного шрифта, который не используется. Только с ним связан один нюанс. Это не просто дубль шрифта, а он даже ссылается на основной шрифт $01 и моя программа не дает изменить данный шрифт. Но я специально переделал программу и добавил возможность редактирования данного шрифта, поэтому обязательно необходимо скачать последнюю версию программы 2.2. Для того, чтобы при сохранении в лэнге шрифт $02 сохранился – в этой версии необходимо поставить галочку Separate 1 & 2 font:
Изображение

Далее выбор остальных 4 шрифтов зависит от конкретных лэнгов, в разных не используются разные шрифты. Еще, если в лэнге меньше 16 шрифтов, то можно добавлять свои, в программе для этого есть соответствующая функция (т.е. можно добавлять свои, пока номер шрифта не превысит $0F):
Изображение

Например, во всех лэнгах можно заменять шрифт $06 – этот шрифт служит для подписей софт клавиш, но на моделях с экраном 176*220 он не используется, а на моделях с меньшим экраном, если заменять на шрифт высотой 15 пикселей, т.к. мелкий, то все будет нормально. Еще, во всех лэнгах можно заменять шрифты $0B – это тайские символы и $0C – он вроде вообще нигде не используется. Последний шрифт уж выбирайте сами, например, для прошивок R365 я добавлял 2 шрифта, а на R373 еще $08, т.к. на данной платформе он не используется.

Подробно процесс редактирования шрифта описывать не буду, т.к. это можно прочесть в темах Moto Lang Editor v2.2 от 7.07.07 и Создание Шрифтов . Скажу только, что для замены шрифтов, номер которых больше $02 необходимо иметь шрифты в отдельном файле формата MFF. Чтобы потом, выбрав шрифт – заменить его, нажав в программе Load Font в меню Font. Для того, чтобы получить шрифт в формате MFF надо редактировать два основных шрифта $01 и $02, а потом сохранять их в файл через функцию Save Font в том же меню Font программы Moto Lang Editor v2.2 от 7.07.07 . Это делается для того, чтобы шрифты, которые мы будем сами добавлять, имели тот же набор символов, что и основной шрифт.

Шрифты готовы, теперь необходимо добавить языки, которые будут использованы для назначения на них этих языков. Только добавлять их будем не через программу Moto Lang Editor v2.2 от 7.07.07 , а вручную в HEX редакторе, при чем физически добавлять их даже не будем, а просто в заголовке будем делать ссылку на русский язык. Лучше всего после того, как шрифты сделаны, в лэнге еще удалить все не нужные языки и оставить только русский и естественно английский. К слову, английский язык вообще нельзя удалять, потому что в нем есть информация, которая используется во всех других языках и он является базовым. Удалить языки можно на вкладке Strings кнопкой Delete Language:
Изображение

После удаления языков лэнг необходимо сохранить в программе и открыть его через любой удобный для вас HEX редактор, я использую WinHEX.

Начиная со смещения $000018 идет описание языков, по 48 байт на язык. Например, вот описание английского языка:
Изображение

Первый байт – это номер языка. Вообще размер этой таблицы 12 DWord'ов. Кроме первого байта – это адреса, указатели на определенные таблицы. Еще, кроме первого байта, нас будет интересовать 5-й DWord – это указатель на iTAP таблицу. Значит, теперь задача заключается в том, чтобы следующие 12 DWord'ов за английским языком, которые начинаются с байта $23 (русский язык) скопировать дальше еще 5 раз, при чем 5-й DWord у них убрать, чтоб в этих других языках не было iTAP. Должно получиться следующее:
Изображение

Но сейчас мы получили 6 русских языков, что нам совершенно не нужно, поэтому теперь необходимо сменить ID 5 языков на ID, которые мы выбрали раннее. Т.е. Необходимо первые байты в описании языков заменить на $11 $12 $17 $18 $28. И еще, кроме этого теперь необходимо в заголовке сменить количество языков в лэнге. Если вы до этого удалил все языки кроме английского и русского, как я посоветовал, то теперь у нас будет 2 + 5 = 7 языков в лэнге. Количество языков в лэнге хранится по смещению $000014, т.е. этот байт надо заменить на $07. В итоге должно получиться следующее:
Изображение

Все, лэнг полностью готов, сохраните его.

Редактирование DRM

Сначала необходимо найти таблицу в DRM, которую будем редактировать. В заголовке DRM по смещению $000070 или $00006С находится указатель на эту таблицу. Найти ее не сложно, потому что она имеет характерный вид:
Изображение

На скрине выделенный текст – это вся таблица, а рамкой выделен ее кусок, который мы будем редактировать. Размер этой таблицы – 16*7=112 байт, т.е. на скрине одна строка – это одна запись в таблице. Каждая запись – это описание одной группы языков. Как видно их семь, но 5-я строка – это та самая группа CYRILLIC, которая не задействована в прошивке, поэтому, получается, сделать только 6 шрифтов, а не 7. Редактировать будем 1-е 4 байта в каждом описании. 2 байта – это описание основного шрифта, а следующие 2 байта – это описание шрифта для софт клавиш. При чем каждый байт разделен на 2 части, первые 4 бита это размер, что трогать мы не будем и другие 4 бита – это указатель на номер шрифта в лэнг, его мы и будем менять на те, что сделали в лэнге. Т.е. необходимо у каждой записи в первых 4 байтах заменить вторую часть байта на указатели новых шрифтов. При чем первую часть байта не трогать, если она совпадает с первой часть в первой записи, а если не совпадает, то изменить на нее, но это бывает редко, обычно ее вообще не надо трогать. В итоге должно получиться примерно следующее:
Изображение

Следует еще сделать небольшую оговорку. На моделях с экраном шириной 128 пикселей лучше использовать шрифты высотой 15 пикселей или не менять указатели на шрифты к подписям софт клавиш, чтоб не было глюков.

Создание патча

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

Вот паттерна для поиска данного кода: 2802D003282CD001282D
И вот для старых моделей с 16 метровыми флэшками: 28026809D003282CD001282D
В этой паттерне $02 меняем на ID первого, выбранного нами языка, т.е. на $12; затем ищем дальше по коду первое появление байта $08, по идее оно будет через 16 байт и меняем на $18; затем ищем байт $04 через 8 байт и меняем его на $28; затем байт $0B через 12 байт меняем на $11; и байт $0C через 8 байт меняем на $17. Например, для R373…49R я получил следующий патч:
Код
[Patch_Info]
Firmware=R373_G_0E.30.49R
Description=Патч для реализации 6 шрифтов.
Author=Dimka
[Patch_Code]
5EA65D: 12
5EA66D: 18
5EA675: 28
5EA681: 11
5EA689: 17

В прошивке – это выглядит следующим образом:
Изображение

Весь код выделен, а байты, которые редактировались, помечены красным цветом. Подробно описывать процесс создания самого патча я тоже не буду, т.к., если вы взялись за это дело, то явно это умеете. wink.gif

Завершающий этап – имена шрифтов

Теперь, если прошить сделанные лэнг и DRM и применить патч, то все должно работать. Но в списке языков будут сплошные Русский, Русский и т.д. Поэтому необходим завершающий штрих, а именно названия языков. Делать это необходимо через пользовательский языковой пакет, т.е. через DNP.PRF во всем известной программе Language_Editor от Random. Номер строки, в которой хранится название языка - $0525, поэтому содержимое DNP.PRF должно выглядеть, например, следующим образом:
Изображение

Еще стоит отметить небольшой нюанс. Со всеми языками, кроме реально русского языка будет небольшая недоработка, в справочнике не будет работать поиск по первой букве, т.к. TAP раскладки, которые хранятся в CG1 будут не правильные. Для исправления этого глюка по моей просьбе и с моей поддержкой GandjaFuzz сделал патч. А Мачо написал небольшой мануальчик по конвертации данного патча на другие платформы (мануал в прикрепленном архиве). Этот патч будет работать только, если точно следовать мануалу, т.е. брать те же языки, что я предложил и т.д.

З.Ы. Хочу обратить внимание, чтоб данный материал абсолютно уникален, выкладывается впервые и данная методика разработана полностью мной. Поэтому выкладывание на других форумах и ресурсах только при указании на первоисточник, и с указанием моего Ника! cool.gif

Сообщение отредактировал Dimka - 15.10.2007, 11:45
Прикрепленный файл 6_fonts_manual.rar   ( 34.27 килобайт ) Кол-во скачиваний: 818
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
WhiteHotIce
сообщение 10.9.2007, 13:08


Мастер
****

Группа: Пользователи
Сообщений: 178
Регистрация: 2.1.2007
Из: vrn
Пользователь №: 114 357
Модель телефона: Samsung GT-S5620
Прошивка: E0R_RB_вся_в_патчах

Рейтинг: 137



Как говорится.."дело было вечером, делать было нечего" =)
Так как я, патчи портировать почти разучился, решил сделать 6 шрифтиков=)
Я не претендую на звание гуру =)) сделала так, "чисто поржать" =))
Вроде получилось, есть мелкие глюки, вы их сами найдете, а в целом все работает хорошо. Правда запариллся портировать патч на ACR_RB =))))

Использовал шрифты:
-GOST by Shevc00f
-Kashmir by снова я =)
-Harry_27_Digital
-мелкий, не знаю названия, by Dimka
-L7_Sity_Lang_Wolf рукописный
-LangPack_ZazuLi_by_P1xEt
кому не нравятся, я не виноват=))

Короче, можете использовать мой ленг для своих эксперементов =)
Интсрукция по установке:
Прилагается архив, в нем содержится:
-Ленг в формате smg, как прошивать,надеюсь, все знают =)
-2 патча FPA к CG1, как применять тоже,надеюсь, знаете =)
-EXE патч к дрму (сравнивал много дрмов, везде нужные смещения одинаковы, так что подойдет...точно...) как применять разберетесь=)

вот собсно и все, если есть вопросы то 2-308-150

Добавлено позже (10.9.2007, 17:26):
Вот уже замечены глючки, но это наверное из-за самих ленгов =)
Например при шрифте Wolf, не отображаются часы в статус строке.
Еще пара мелочей =)

Добавлено позже (10.9.2007, 17:41):
Кстати...патч ТОЛЬКО для ACR_RB!

еще раз пардон=)) но я неправельно портанул патч для ACR_RB, обновил архив, терь правельно=)))

Сообщение отредактировал Shevc00f - 10.9.2007, 14:19
Прикрепленный файл 6_shriftov_shevc00f.rar   ( 198.03 килобайт ) Кол-во скачиваний: 194
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
WhiteHotIce
сообщение 11.9.2007, 16:49


Мастер
****

Группа: Пользователи
Сообщений: 178
Регистрация: 2.1.2007
Из: vrn
Пользователь №: 114 357
Модель телефона: Samsung GT-S5620
Прошивка: E0R_RB_вся_в_патчах

Рейтинг: 137



Сделал еще один пак из 6 шрифтов.

Использовал шрифты:

LangPack_MicraDi_by_P1xEL
Courier_Lang_vic66_port_by_Harry_27
Decor_N_Lang_vic66_port_by_Harry_27
Iron_Maiden_Lang_vic66_port_by_Harry_27
Minor_vic66_Lang
GOST by Я =)

для acr_rb, все без иТапа

Можно использовать мой ленг как основу, только меняя сами шрифты.

Сообщение отредактировал Shevc00f - 11.9.2007, 16:51
Прикрепленный файл 2__6_shriftov_shevc00f.rar   ( 199.89 килобайт ) Кол-во скачиваний: 231
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
WhiteHotIce
сообщение 14.9.2007, 17:34


Мастер
****

Группа: Пользователи
Сообщений: 178
Регистрация: 2.1.2007
Из: vrn
Пользователь №: 114 357
Модель телефона: Samsung GT-S5620
Прошивка: E0R_RB_вся_в_патчах

Рейтинг: 137



В 6 шрифте глюк, независимо от выбранной для замены группы - не отображается шрифт в ежедневнике.

Автопатч удаляет 6 щрифт, применять к 2GOSt+5.smg =))

Сообщение отредактировал Shevc00f - 14.9.2007, 17:35
Прикрепленный файл 5_fontsrar.rar   ( 14.32 килобайт ) Кол-во скачиваний: 305
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Штирлиц2
сообщение 15.11.2007, 6:38


Интересующийся
**

Группа: Пользователи
Сообщений: 53
Регистрация: 9.11.2007
Пользователь №: 153 326
Модель телефона: Razr V3
Прошивка: R374_G_0E.42.17R

Рейтинг: 5



Dimka,
Всё заработало на Razr V3 R374_G_0E.42.17R как выразить респект (сказать спасибо) не знаю, может у меня мало сообщений? Тема здесь
clap.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Movesilenthunter
сообщение 6.3.2008, 12:04


Мастер
****

Группа: Пользователи
Сообщений: 238
Регистрация: 22.11.2007
Из: Украина
Пользователь №: 154 712
Модель телефона: Е398, L2
Прошивка: Своя

Рейтинг: 35



Хочу обратить внимание всех ковырятелей, что для L2/L6 адреса немного отличаются от приведенных в мануале. Так что прямим руки и вперед.
Dimka не могу найти патерну указаную в мануале, не поможешь?

Dimka:
Хм, в единственной имеющейся у меня прошивке для Л6 (R3511_G_0A.53.15R) сразу нашел данную паттерну по адресу $00618E0C. Так что пробуй. wink.gif

Сообщение отредактировал Dimka - 11.3.2008, 21:53
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Movesilenthunter
сообщение 24.3.2008, 22:12


Мастер
****

Группа: Пользователи
Сообщений: 238
Регистрация: 22.11.2007
Из: Украина
Пользователь №: 154 712
Модель телефона: Е398, L2
Прошивка: Своя

Рейтинг: 35



Dimka,
Собственно я разрабатываю 3443, а в 3511 не пробовал. Посмотрю.
Собственно есть вробе пропатченный флэш, но шрифт не меняется. Причина?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
P1xEL
сообщение 31.3.2008, 14:30


Интересующийся
**

Группа: Пользователи
Сообщений: 49
Регистрация: 19.7.2007
Из: Ekaterinburg
Пользователь №: 141 878
Модель телефона: L7/L9
Прошивка: LifeStyle

Рейтинг: 14



LangPack 5 in 1 for V3r by P1xEL (R4515_G_08.D3R)

Изображение

Сообщение отредактировал P1xEL - 31.3.2008, 14:30
Прикрепленный файл CG4.rar   ( 417.13 килобайт ) Кол-во скачиваний: 161
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XoneX
сообщение 2.7.2008, 12:17


Новичок
*

Группа: Пользователи
Сообщений: 16
Регистрация: 25.3.2007
Пользователь №: 128 427
Модель телефона: L6
Прошивка: 65BR

Рейтинг: 7



Кстати, можно добавить в мануал, что для телефонов l6/l2 в ДРМе необходимо менять не 7 первых строк, а семь последних по той же системе.
Также нельзя использовать 6 группу шрифтов как General – тут как раз именно она отвечает за софт кнопки.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
6 шрифтов!, Подробный мануал по их созданию · Шрифты и языковые пакеты · Forum
 

2 страниц V < 1 2
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 14.5.2024, 9:49

Форум живёт: