NetLab · Rules · Torrent Tracker · Have a problem? · Eng/Rus | Help Search Members Gallery Calendar |
Welcome Guest ( Log In | Register | Validation ) | Resend Validation Email |
Pages: (52) < 1 2 3 .. 6 .. 9 .. 12 .. 15 16 [17] 18 19 .. 21 .. 24 .. 27 .. 30 .. 33 .. 36 .. 39 .. 42 .. 45 .. 48 .. 51 52 > ( Show unread post ) |
Модифицируем прошивку для DVD плейера (MTK 1389), инструкция от САХ |
|
Posted: 23-01-2006, 16:17
(post 241, #534514)
|
||
Pro Member Group: Members Posts: 738 Warn:0% |
Я через пень-колоду научился кое-как читать из АРМ заданные в меню значения, теперь хочу испытать твою процедуру. Поясни, пожалуйста, какие аргументы она принимает, и если знаешь, то как получить адрес буфера субтитров. Я опять запутался. Короче, нужна помощь с интеграцией. Мы уже в двух шагах от цели ! Пы.Сы. Если выкинуть процедуру перевода юникодных букв в именах файлов, то твоя процедура с трудом помещается в свободном месте АРМ. Видимо, мне придётся научиться его "расширять", как это делают мастера в группе Яху. |
||
|
Posted: 23-01-2006, 18:39
(post 242, #534603)
|
||
Member Group: Members Posts: 134 Warn:0% |
Aргументов нет. Все что нужно - подставить вместо 12345678 (последнее слово) адрес субтитра + 2, т.е. начало самого текста. Как найти адрес субтитров описано в статье Нью Эйджа. Если некогда возиться - я могу помочь, у меня уже рука набита. Насчет дополнительного свободного места - было бы очень кстати. Я нечеловеческими усилиями сократил размер кода до 0хF0, но этого все равно недостаточно.
У меня тут появилась идея как просматривать из АРМ любую память, в т.ч. общую, в рантайме. Если интересно - можно заняться. |
||
|
Posted: 23-01-2006, 19:04
(post 243, #534628)
|
||
Pro Member Group: Members Posts: 738 Warn:0% |
moroz: Идея просмотра в рантайме у меня простая донельзя: при показе имени файла с буквами с кодом > 250 вместо самой буквы показывать любой другой байт, взятый из памяти или ещё откуда. С этим проблем нет, я именно так дебагировал вычитку значений меню. А насчёт подстановки адреса - подскажи как найти адрес субтитра, а то в статье Нью Эйджа я до конца не разобрался. Вызывать твой код собираюсь где-то в начале SUB_Mpeg4SubtitleText_Display Мне достаточно войти в точку входа твоей подпрограммы командой BL, и она сама вернёт меня назад по окончании, верно ? Я бы ещё перед возвращением хотел выполнить те 4 байта команд, которые затираются вышеупомянутой командой BL. Если это нельзя встроить перед возвращением - напишу в обходную (но это съест ещё несколько байт). |
||
|
Posted: 23-01-2006, 21:12
(post 244, #534712)
|
||||||||
Member Group: Members Posts: 134 Warn:0% |
Цитирую:
pARM_Shared_Memory - это и есть субтитр. Первые два байта - длина, дальше строка. Вот адрес строки и надо подставить.
Очень на это надеюсь...
Не вижу никаких препятствий. Добавь перед последним ***************************
Моя идея - задавать желаемый адрес в файле субтитра, а при показе подставлять область памяти за этим адресом. Можно показывать 32 байта в каждом субтитре, т.е. возможности практически неограниченые. This post has been edited by moroz on 24-01-2006, 07:56 |
||||||||
|
Posted: 24-01-2006, 09:47
(post 245, #535115)
|
||
Member Group: Members Posts: 184 Warn:0% |
cax Маэстро!Может быть у тебя найдётся возможность помочь. Делаю поддержку ивр/рус имён файлов.Расклад такой: Font 0-1 set up/menu Font 2 иконки(значки) Font 3 имена файлов Font 4-5 субтитры После замены Font 3 ситуация изменилась так: Font 0-1 Font 2 Font 3-4 Font 5-6 Субтитры теперь не отображаются. Не смотря на это произвёл нужные изменения в АРМ и с именами файлов всё получилось. А как востановить субтитры? |
||
|
Posted: 24-01-2006, 10:27
(post 246, #535120)
|
||
Pro Member Group: Members Posts: 738 Warn:0% |
ivani4: Если MTK ReMaker позволяет выполнить Patch->Subtitle, сменить там номер шрифта для субтитров на 5. При этом где-то в Code Part->8032->Page? появится "SUB_Style (Patched)" с таким фрагментом: 01D339: 7F05 mov R7, #05 01D33B: 1205AD lcall #05AD 01D33E: D245 setb RAM_XX.Z Если MTK ReMaker не позволяет - искать схожий фрагмент самому и самому его менять. |
||
|
Posted: 24-01-2006, 10:47
(post 247, #535130)
|
||
Member Group: Members Posts: 184 Warn:0% |
cax MTK ReMaker не позволяет выполнить Patch->Subtitle. А как искать схожий фрагмент и менять его я не совсем понял,но сделал так: На мой взгляд похожее место в SUB_Style: 01E37B: 7F04 mov R7, #04 01E37D: 120583 lcall #0583 01E380: 7F02 mov R7, #02 Решил что нужно переправить по адресу 1E37C 04 на 05. Получил: 01E37B: 7F05 mov R7, #05 01E37D: 120583 lcall #0583 01E380: 7F02 mov R7, #02 Но это не помогло Как нужно было сделать?????????????????? This post has been edited by ivani4 on 24-01-2006, 11:51 Attached File ( Number of downloads: 62 ) MTK _SUB_Style_.txt |
||
|
Posted: 24-01-2006, 13:01
(post 248, #535201)
|
||
Pro Member Group: Members Posts: 738 Warn:0% |
1) аттачи почему-то не работают 2) Каким образом это похоже ? Там должно быть "setb", разве нет ? 3) иногда шрифт субтитров задаётся совсем в другом месте - например, в ивритизированных прошивках с переключателем шрифта для Апекс 2102 и 2400. Об этом есть у меня в инстру... ну, ты понял. |
||
|
Posted: 24-01-2006, 13:07
(post 249, #535204)
|
||
Member Group: Members Posts: 184 Warn:0% |
сах,нет вроде бы setb.А как и что искать в другом месте я не знаю.Если чувствуешьчто это сложно,то давай оставим это дело.Не удобно тебя напрягать. This post has been edited by ivani4 on 24-01-2006, 14:27 |
||
|
Posted: 24-01-2006, 14:23
(post 250, #535230)
|
||
Pro Member Group: Members Posts: 738 Warn:0% |
Ты прав, давай пока оставим. В качестве альтернативного решения - добавить новый шрифт для имён файлов под номерами 6-7 и поменять его номер там, где он задаётся, но это тоже на пальцах не рассказать... |
||
|
Posted: 24-01-2006, 14:28
(post 251, #535233)
|
||||
Pro Member Group: Members Posts: 738 Warn:0% |
Странно, почему ты пришёл к такому выводу ? Что же тогда означает офсет 0xEC0 с комментарием "буфер субтитров" ? И откуда тебе известно про 2 байта, в которых хранится длина буфера (или длина текущего субтитра) ? |
||||
|
Posted: 24-01-2006, 14:34
(post 252, #535237)
|
||
Member Group: Members Posts: 184 Warn:0% |
cax ОК.Оставляем это дело.И я по прежнему жду когда ты освободишься что бы рассмотреть баг 60. This post has been edited by ivani4 on 24-01-2006, 16:15 |
||
|
Posted: 24-01-2006, 15:38
(post 253, #535271)
|
||
Member Group: Members Posts: 134 Warn:0% |
Исключительно на основе анализа кода. Ошибка крайне маловероята. Если нужны доказательства и цитаты - предоставлю, но это займет какое-то время. |
||
|
Posted: 24-01-2006, 22:31
(post 254, #535589)
|
||
Member Group: Members Posts: 134 Warn:0% |
Ну вот хотя-бы это: Пресловутый пример ограничения субтитра по длине (бывш. баг 60) из прошивки к АПЕКС811. У меня вместо "pARM_Shared_Memory" искомый адрес называется просто "Subtitle". Длина субтитра берется из первого байта (нулевой просто игнорируется, видимо длина больше 256 просто не укладывается в голове). Дальше она сравнивается с 0х78, если больше - меняется на 0х78 и по этому офсету в строку прописывается ноль. КСТАТИ Вызывать мой код надо после этого куска. Боюсь что иначе не будет нуля, а я его ищу. SUB_Mpeg4SubtitleText_Display ... ROM:0000D6A8 BL SUB_GetSubLength ROM:0000D6A8 ROM:0000D6AC ADD R6, R0, #0 ROM:0000D6AE CMP R6, #0x78 ROM:0000D6B0 BLS loc_D6B4 ROM:0000D6B0 ROM:0000D6B2 MOV R6, #0x78 ROM:0000D6B4 ROM:0000D6B4 loc_D6B4; CODE XREF: ROM:0000D6B0j ROM:0000D6B4 MOV R1, #0 ROM:0000D6B6 ADD R0, R6, #0 ROM:0000D6B8 BL SUB_SetChar_R1_At_R0_Offset ... ROM:0000D2EC SUB_GetSubLength; ROM:0000D2EC 000 LDR R0, =Subtitle ROM:0000D2EE 000 LDRB R0, [R0,#1] ROM:0000D2F0 000 BX LR ROM:0000D2F0 ; End of function SUB_GetSubLength ROM:0000D2FA SUB_SetChar_R1_At_R0_Offset; ROM:0000D2FA 000 LDR R2, =Subtitle ROM:0000D2FC 000 ADD R0, R2, R0 ROM:0000D2FE 000 STRB R1, [R0,#2] ROM:0000D300 000 BX LR ROM:0000D300 ; End of function SUB_SetChar_R1_At_R0_Offset |
||
|
Posted: 24-01-2006, 23:06
(post 255, #535616)
|
||
Member Group: Members Posts: 184 Warn:0% |
moroz Учитывая что господин cax сильно занят,решил обратится к тебе. Скачал кучу книг по иде и ассемблеру,пытался разобратся самостоятельно,но безрезультатно. Инструкция от сах начинается с баг 60 : Try to find the code that looks like this: ROM:0000E884 3C 28 CMP R0, #0x3C ROM:0000E886 01 D9 BLS loc_E88C ROM:0000E888 3C 20 MOV R0, #0x3C Никак не могу сообразить как это ищут?Не знаю с чего начать.Или без знаний ассемблера ничего нельзя сделать? This post has been edited by ivani4 on 25-01-2006, 07:52 |
||
Pages: (52) < 1 2 3 .. 6 .. 9 .. 12 .. 15 16 [17] 18 19 .. 21 .. 24 .. 27 .. 30 .. 33 .. 36 .. 39 .. 42 .. 45 .. 48 .. 51 52 > |