Printable Version of Topic
Click here to view this topic in its original format |
Forums > Аудио и видеотехника > Модифицируем прошивку для DVD плейера (MTK 1389), инструкция от САХ |
Posted by: ivani4 on 15-12-2005, 18:17 |
2cax А не смог бы ты написать свою инструкцию from_A_to_Z на русском? 2ivani4 Я-то могу, но что-то мне подсказывает, что потом ты попросишь и ассемблер на русский перевести Честно говоря, 90% инструкции состоит из фраз "найди такую-то последовательность байтов и замени её на такую-то", и если ты не знаешь английский даже на таком базисном уровне, то как ты сможешь использовать все упомянутые в инструкции программы - ведь у них интерфейс тоже на английском ? 2cax Спасибо что не ответил категорическим отказом.Дело в том что никак не могу я это дело начать.Не получается.Никогда не занимался подобными вещами и к программированию никакого отношения не имею.Очень много не понятного.Так я и подумал,что если бы по русски ,так может удалось бы это дело с места сдвинуть.winhex есть у меня на русском.Так что если бы ты смог ,то я был бы рад ivani4, в этой теме это будет офтопик. Открой новую тему, озаглавленную, например, "Модифицируем прошивку для DVD плейера такого-то" Убедись, что у тебя есть файл с прошивкой для твоего плейера и упомянутые в инструкции программы и другие документации; найди автоматический словарь, который даст тебе подстрочный перевод инструкции на русский, посмотри, стал ли ты понимать больше. Если боишься испортить плейер в процессе проверок изменённых прошивок - спаяй себе специальный кабель для восстановления и научись им пользоваться. Схему я дам. Кстати, hex-редактор я использую XVI32, т.к. он позволяет использовать т.н. joker char, т.е. подстановку любого байта при поиске. После этого, если у меня будет время и настроение, мы в той новой теме откроем "академию". Чем смогу-помогу |
Posted by: cax on 15-12-2005, 18:28 |
Итак, есть ли у тебя файл прошивки от плейера, и как он называется ? |
Posted by: ivani4 on 15-12-2005, 23:18 |
cax Файл прошивки у меня есть.Хотел бы начать с отключения значка зум.В твоей инструкции написано: 3BE42: FF => 08 3BE4D: FF => 08 Я проверил и увидел что в прошивке от Hyundai 3899(верхняя в таблице на твоём сайте)эта процедура была произведена только по адресу 3BE42.А на 3BE4D фигурирует А5 до и после изменений .Этот момент мне как то не понятен. Пытался найти в своей прошивке нужный адрес.Безрезультатно. Не понимаю по каким признакам нужно искать.А если знать адрес ,то как знать какое изменение нужно там сделать? Пытался провести аналогию с твоими работами в АРЕХ-не помогло. R4R5-это я вообще не понял где это и как оно может помочь. А в MTK ReMaker нужная строка у меня 0x0200.Это я нашёл,но пользы от этого я не вижу. |
Posted by: cax on 17-12-2005, 19:15 |
Здесь инструкция действительно недостаточно подробная и требует знаний ассемблера. Я отвечу сюда поподробнее - позже. Кстати, я нигде не писал, что оффсеты совпадают - они не совпадают нигде (кроме одного места). Нужна hex-последовательность. |
Posted by: moroz on 17-12-2005, 21:26 |
ivani4 По-моему в инструкции саха вкралась опечатка: второй адрес не 3BE4D, а 3BE5D. Чтобы в этом убедиться, необходимо работать над файлом не в обычном НЕХ редакторе, а в дизассемблере (например IDA). Тогда видно, что это два очень похожих куска. Кстати, работая таким образом тебе будет гораздо легче обнаружить аналогичные куски в своей прошивке. P.S. Почему-то в IDA нет чипа 8032, я пользовался 8051. |
Posted by: ivani4 on 17-12-2005, 23:28 | ||
moroz
А идой я пользоватся пока не умею да и ассемблер не знаю. А за подсказку и участие спасибо.Попробую поработать с идой. |
Posted by: cax on 18-12-2005, 00:14 |
Значит так. Цитирую сам себя и дополняю заодно. Сперва открываем прошивку в MTK ReMaker и в "Data Part->OSD->OSD Languages2->Language 1[00]" ищем номер текстового сообщения, которое появляется при нажатии на zoom. Допустим, это 0x207. Разбивая на байты, получаем 02 и 07. Если нам повезёт, то эти 2 байта грузятся в регистры 4 и 5 примерно так: 7D 07 mov R5, #7 7C 02 mov R4, #2 и тогда мы сразу найдём нужное место при поиске такой цепочки: 90 xx xx 74 01 F0 A3 74 xx F0 A3 74 xx F0 7B FF 7D 07 7C 02 где хх - любой байт (в XVI32 это называется "joker char", или "wildcard") Далее меняем отмеченный выше FF на 08 и дело сделано. Примечание 1: менять в прошивке надо 2 раза - один раз для режима воспроизведения DivX, второй - для режима DVD. Примечание 2: после каждого изменения нужно переоткрыть прошивку в MTK Remaker, на вопрос "Поправить контрольную сумму ?" ответить "Да", затем сохранить прошивку. ======================================= Но если не повезёт, и регистры грузятся иначе, цепочка не найдётся. Причины: один из байтов - ноль, и получается не загрузкой нуля в регистр, а командой обнуления регистра; или байты одинаковые и грузятся копированием регистра (как в случае, описанном для HU3899) Тогда над искать цепочку покороче: 90 xx xx 74 01 F0 A3 74 xx F0 A3 74 xx F0 7B FF Она найдётся много раз. Какой из них нам подходит - узнаем уже в дизассемблере... |
Posted by: ivani4 on 18-12-2005, 00:17 |
спасибо |
Posted by: ivani4 on 18-12-2005, 00:45 | ||
|
Posted by: cax on 18-12-2005, 10:24 | ||||
А разве длинная цепочка не нашлась ? Если да, то IDA не понадобится. |
Posted by: ivani4 on 18-12-2005, 10:32 | ||
|
Posted by: cax on 18-12-2005, 10:54 | ||
Заодно вставил описание правки зума, аналогичное опубликованному здесь. |
Posted by: ivani4 on 18-12-2005, 11:05 |
В xvi32 есть функция поиска.Что бы найти длинную цепочку нужно,наверное,полностью вписать её в строку поиска.А как быть с теми местами где может быть любой файл(хх)?как записать это в строку поиска?или это не так ищут? |
Posted by: cax on 18-12-2005, 11:11 | ||||
Я ищу hex-редактором XVI32. Подойдёт любой, поддерживающий, как я уже писал выше, так называемый "wildcard"-символ, или "джокер"; говоря по-русски - поддерживающий подстановку любого байта в местах, которые я пометил, как "xx". Теперь объясняю на пальцах: допустим, надо найти все последовательности такого вида: первый байт - 1F, третий - C2, а что посредине нам не важно, т.е. любой. Мы можем найти такие тройки байтов: 1F 00 C2 1F 24 C2 1F C2 C2 1F E4 C2 и т.д. Я это записываю как "1F xx C2", где "xx" - wildcard. Если ты освоишь поиск с подстановками - дальнейшее для тебя будет просто. Дерзай. В XVI32 ты можешь задать joker char,например, "ЕЕ", и в дальнейшем использовать "ЕЕ" вместо моих "хх". |
Posted by: ivani4 on 18-12-2005, 13:07 |
cax Теперь всё понятно.Сходу всё нашёл и переправил.Работает как положено,но с диском двд синий квадрат не убирается.Я где то ошибся или для этого требуется дополнительное действие? И попутно ещё одна проблема возникла.Что бы утвердится в успехе решил проделать данную процедуру ещё с двумя двд от разных производителей.Один прошёл на ура,а во втором значок зума убрался частично.Т.е. только какая то часть от него пропадает через несколько секунд.????????????? В этом двд 0x014F .И если я правильно понял,то: 90 xx xx 74 01 F0 A3 74 xx F0 A3 74 xx F0 7B FF 7D 4F 7C 01 |
Posted by: cax on 18-12-2005, 17:54 | ||
Понял ты всё правильно, но мне ничего в голову не приходит, звыняй. По поводу режимов DivX и DVD: как я писал выше, цепочка байтов встречается в прошивке дважды, и замену FF на 08, соответственно, надо делать 2 раза. ---------------------------------------- Есть, правда, некрасивое альтернативное решение, при котором иконка зума вообще не появится никогда - вытащить из прошивки этот самый Language 1[00] и отредактировать его - затереть соответствующую строчку программой MTK Lang Editor, после чего вставить обратно в прошивку. Зато это работает в 100% случаев |
Posted by: ivani4 on 18-12-2005, 18:17 | ||
|
Posted by: cax on 18-12-2005, 23:04 | ||||
А что за синий квадрат - вообще не понимаю, никогда не видел. |
Posted by: ivani4 on 19-12-2005, 09:07 |
cax Знакомимся с синим квадратом(прямоугольником).Присутствует при активизации функции зум в режиме воспроизведения дисков двд в плеерах на МТК 1379 и 1389. Иконку зума я удалил по твоему рецепту в двух местах.всё отлично работает.но остался этот квадрат.Странно,что ты с ним не знаком.Я видел его во многих аппаратах. Какие будут мысли по поэтому поводу? |
Posted by: cax on 19-12-2005, 10:47 |
Первый раз вижу - наверное потому, что у меня почти нет DVD-дисков. Мыслей никаких. Проехали. Давай дальше патчить, если ещё есть на то желание. |
Posted by: ivani4 on 19-12-2005, 11:17 |
Продолжаем.Хочу сделать две вещи: 1. Убрать отображение времени в DIVX 2. Переключение font page в set up Что проще?Потребуется ли использование IDA? А синий квадрат надо всё же убрать. |
Posted by: cax on 19-12-2005, 12:11 |
Советоваться про синий квадрат не буду, желания и времени у меня на это нет, и вряд ли будет. Начни с того, что попроще - "Убрать отображение времени". Вот фрагмент из моей инструкции: a) Я искал цепочку 90 xx yy E0 FF 13 13 13 54 07. Она нашлась 56 раз, из них 37 раз xxyy = FC4A, 14 раз xxyy=FC60 и 5 раз xxyy=FD0C. Будем считать, что нужный нам адрес - самый часто встречающийся: xxyy = FC4A. б) ищем подпрограмму SUB_SetStyle по цепочке EE F0 A3 EF F0 7F 0E 12 Она заканчивается цепочкой "12 mm nn 22". Здесь мы и будем менять, что именно - смотри ниже. в) В этом же банке памяти ищем где начинается незанятое место - забитое байтами FF, которое продолжается до конца банка. Там мы впишем новую подпрограмму - несколько байт, на которые сошлёмся из места, описанного в пункте (б). У меня это был банк 1 (т.е адреса вида 1xxxx) и свободная зона была 1F2CF-1FFFF. Я решил использовать место с адреса 1F300. Запомним здесь, что pp qq = F3 00 Теперь за работу: 1) в месте, указанном в (б) как "12 mm nn" вписываем взамен 02 pp qq 2) по адресу 1ppqq : 90 xx yy E0 54 C7 F0 02 mm nn (в моём случае я по адресу 1F300 вписал 90 FC 4A E0 54 C7 F0 02 05 B3) Как всегда, не забываем поправить контрольную сумму в MTK ReMaker. |
Posted by: ivani4 on 19-12-2005, 14:32 |
С пунктом а справился легко. В пункте б вознили трудности.Место такое в прошивке я нашёл(EE F0 A3 EF F0 7F 0E 12) а вот что такое SUB_SetStyle я не понимаю.Не знаю что с этим делать. В пункте в я не понял что ты называешь банком памяти. Единственное необычное что я вижу,не далеко от найденого места(EE F0 A3 EF F0 7F 0E 12), это повторяющуюся десять раз комбинацию 00. |
Posted by: cax on 19-12-2005, 15:14 |
А не без разницы ли тебе почему я эту подпрограмму называю SUB_SetStyle ? Называется и называется. В дальнейшем когда я скажу "найди SUB_SetStyle" ты уже будешь знать, как искал её ранее и где нашёл. Твоя задача - найти "EE F0 A3 EF F0 7F 0E 12", и с этого места найти ближайшее "12 mm nn 22". Если тебя интересуют подробности, то "22" - это код команды возврата из подпрограммы, поэтому здесь она и заканчивается. Про банк памяти - читай внимательнее: "банк 1 (т.е адреса вида 1xxxx)". Если ты нашёл SUB_SetStyle по адресу "2хххх", то мы в банке 2 и так далее. Я надеюсь объяснять что такое "адрес" и "байт" не надо ? |
Posted by: ivani4 on 19-12-2005, 19:49 |
cax Вроде бы всё понятно.Предполагаю,что сделал всё как нужно,но почему то не срабатывает.Несколько раз проверял. Продолжать искать ошибку или возможны варианты? |
Posted by: cax on 20-12-2005, 00:12 |
Покажи что сделал, по шагам, с указанием найденных адресов и значений. |
Posted by: ivani4 on 20-12-2005, 00:42 |
ищем 90 xx yy E0 FF 13 13 13 54 07 результат: FC 63 - 38 раз FC 7A - 14 раз FD 14 - 5 раз Выбираем FC 63 SUB_SetStyle начинается с адреса 1D77C ближайшая комбинация 12 mm nn 22 начинается с адреса 1D881 и имеет вид: 12 A1 82 22 свободная зона(FF FF FF.....) начинается с адреса 1F67F Решил использовать место 1F700 Произведенные изменения: Вместо 12 A1 82 22 внёс 02 F7 00 22 По адресу 1F700 вписал 90 FC 63 E0 54 C7 F0 02 A1 82 MTK ReMaker использовал поэтапно для поправки суммы |
Posted by: cax on 20-12-2005, 13:18 |
>SUB_SetStyle начинается с адреса 1D77C >ближайшая комбинация 12 mm nn 22 начинается с адреса 1D881 Подозрительным кажется только это, всё остальное сделано на ура. В известных мне прошивках "12 mm nn 22" находится намного ближе. Давай так: покажи мне все байты с места, где ты нашёл "EE F0 A3 EF F0 7F 0E 12", по место, где ты нашёл "12 mm nn 22". |
Posted by: ivani4 on 20-12-2005, 13:46 |
Сумел сделать это в другом двд. А вот как показать тебе файлы от этого двд я не знаю. Решил сфотографировать.Достаточно? |
Posted by: cax on 20-12-2005, 16:31 |
Я разобрался по фотографии, но проще было сделать так: отмечаешь Shift+стрелками нужные байты и загоняешь в буфер обмена Edit->Clipboard->Copy as hex string (или сокращённо CTRL+H) Затем обычное CTRL+V вставит все отмеченные байты в текстовом виде. Мне кажется, что эта прошивка устроена слегка иначе, чем другие. Попробуй по адресу 1D7D0 заменить 02 06 4F на 02 F7 00 и соответственно по адресу 1F700 вписать 90 FC 63 E0 54 C7 F0 02 06 4F. (разумеется, отмени изменения по адресу 1D881, сделанные ранее). Если это сработает, допишем в инструкцию фразу: если на расстоянии в 0x54 байта от первой цепочки вместо "12 mm nn 22" находится "02 mm nn", то это и есть то, что нам надо. |
Posted by: ivani4 on 20-12-2005, 17:24 |
Маэстро! Получилось! Кажется пора ехать в Модиин с бутылкой. |
Posted by: cax on 20-12-2005, 17:56 | ||
И самое интересное, откуда у тебя столько времени, чтобы этим заниматься ? У меня такое ощущение, что ты работаешь на импортёра плейеров, и тебя послали выведывать профессиональные секреты |
Posted by: ivani4 on 20-12-2005, 18:44 |
Эксперимент проводился одновременно на двух плеерах для того что бы исключить элемент случайности. Свободное время это понятие относительное,просто я азартный.Тема эта меня очень привлекает.А сотрудничество с тобой очень интересно. Будем продолжать? |
Posted by: cax on 20-12-2005, 20:31 | ||
По поводу динамического переключения языка субтитров: это достаточно сложная вещь, и именно поэтому её нет в руководстве. Я пока не придумал как её описать в общем случае - ибо для каждой прошивки это было немного по другому, так что сейчас я не смогу тебе помочь в этом. Что у нас дальше на повестке дня ? Кстати, ты мне так и не сказал, на каких плейерах ты проверяешь. |
Posted by: ivani4 on 20-12-2005, 22:46 |
Возможно сейчас инструкция уже выглядит проще.Но для меня это всё равно несколько сложно.Без твоего перевода и подсказок я не смог бы сдвинуться с места. Файлы которые я тебе послал на фото взяты из прошивки от моего двд. Этот двд почти нигде не обсуждается.Народные умельцы в него не вкладываются.Прошивок на него нет. Второй двд не с Израильского рынка,имени не имеет.Подходит под категорию ивуй иши.Аналога ему найти не удалось.Прошивок соответственно нет. Трудно сказать,что будет следующим номером в нашей программе.Интересующая меня тема закрыта,а всё остальное вроде в порядке. Ограничение 60 снято,длина названий файлов в норме.Руссификация и ивритоизация не очень актуально.Есть что то ещё????? И ещё мне очень сильно мешает синий квадрат.Я думал что он сидит где то в OSD.Для быстроты дела полностью стёр этот раздел,но квадрат всё равно остался.Как бы узнать где он сидит и как его стереть что бы от него не осталось и следа?!!!? А инструкция твоя-вот если бы её всё- таки по русски.И чего ты её по английски пишешь? |
Posted by: cax on 21-12-2005, 10:07 |
Ну не насилуй меня, не буду я искать синий квадрат. А по поводу русских букв, очень важно последним ли идёт шрифт для имён файлов (у него только 128 символов и он занимает 1 номер вместо двух в MTK Remaker). Если да - остальное не очень сложно, если нет - придётся повозиться. Проверь это. |
Posted by: ivani4 on 21-12-2005, 12:52 |
Имеем: больше 128-ми занимает два номера думаю что не последний.нужно проверить. Но я не понял какой вариант легче.Допустим что есть: 128 символов занимает один номер находится последним в списке фонтов Какой вариант легче для переделки? |
Posted by: ivani4 on 21-12-2005, 12:54 | ||
|
Posted by: cax on 21-12-2005, 14:27 | ||||
показ длинных имён файлов (плюс отключение предпросмотра картинок и обрезалка по правому краю), исправление пропадающего слайдера громкости и других сообщений при показе субтитров. Остальное связано с показом русских/ивритских букв в именах файлов. Или я настолько плохо пишу по-английски, что без пересказа ничего не понять ? |
Posted by: cax on 21-12-2005, 14:28 | ||
|
Posted by: ivani4 on 21-12-2005, 15:34 | ||
Обрезалка длиного имени по правому краю при просмотре JPEG? Если правильно понял,то хочу. А по английски ты хорошо пишешь,красиво,да вот только я читать не умею. |
Posted by: cax on 21-12-2005, 15:45 | ||||
|
Posted by: ivani4 on 21-12-2005, 15:52 |
длинное имя заслоняет фотографию. Т.е. нужно что бы при просмотре фото показывалось короткое имя и не налезало на фото Можно? |
Posted by: cax on 21-12-2005, 16:58 | ||
|
Posted by: ivani4 on 21-12-2005, 17:52 |
Уфффф!!!!! Чем ближе к вечеру ,тем тяжелей дышать!!!!!!!!!!!!! Теперь понял. Интересует отключение предосмотра |
Posted by: cax on 21-12-2005, 18:15 | ||
5) Disable image preview (so it won't mess with filenames by appearing under them in filebrowser) Search the following sequence: EF 54 F8 44 01 F0 and replace 01 => 00 to turn off JPEG Preview. This string should be replaced 2 times. |
Posted by: ivani4 on 21-12-2005, 18:55 |
Маэстро! Это было лёгкое задание. А дышать,кстати,стало легче!!!!!!!!!!!!!!!!! |
Posted by: ivani4 on 22-12-2005, 08:22 |
Маэстро! А если взять такой вариант 128 символов занимает один номер находится последним в списке фонтов и сделать русский/иврит в названиях файлов,то тогда после переделки вставив диск на котором есть два файла(один рус,другой ивр) неужели я увижу оба этих имени правильно? |
Posted by: cax on 22-12-2005, 09:38 | ||
Увидишь и русский и иврит, но иврит - наизнанку, т.е. слева направо. Что он сейчас показывает вместо русского - подчерки "_" ? |
Posted by: ivani4 on 22-12-2005, 10:23 |
Мы ведь открыли академию.Ты учитель а я ученик.Так я и подумал,что маэстро звучит красивее.Это я так в плане уважения. У SICKBOY иврит тоже наоборот или он это не делает? А у меня вместо русского не подчерки. Например вместо мадагаскар.avi он пишет <04030A-0@.avi А на иврите вообще ничего не пишет.Только расширение(.avi).Вместо имени пустота. |
Posted by: cax on 22-12-2005, 12:08 | ||
Если вместо русского не подчерки, а каша-малаша из цифр и букв - это ещё лучше, меньше работы будет. Значится так: Если ты ошибёшься - плейер придётся восстанавливать или выкинуть Я предупредил. Дело в том, что если ты напортачишь что-то с именами файлов, то ты не сможешь даже поставить другую прошивку, ибо обновлялка просто не найдёт нужный файл на диске. Я так уже налетел один раз, но у меня, слава богу, есть кабель для восстановления. Поехали. Рассказывать буду по частям, ибо работы много. 1) вынимаем "Code Part->RISC->ARM Codes" (на вопрос "Unpack" - соглашаемся) Далее всё делаем в вытащенном файле ARM. 2) ищем "41 18 10 39 C9 7B" (должен найтись 2 раза !) и запоминаем адреса, где находится каждый "10 39 C9 7B" (позже мы будем менять каждый "10 39 C9 7B" на другие 4 байта). 3) ищем т.н. "сообщения С++ об ошибках" Искать нужно ТЕКСТОМ, и ты найдёшь примерно такие фразы: Interrupt received Illegal address Termination request C++ library exception Найди адрес, где начинаются эти текстовые сообщения, запомни его, и впиши туда подпрограмму перевода букв: 10 39 01 B4 88 7B 04 28 C8 7B 07 D0 88 7B 05 28 C8 7B 0E D0 0E E0 00 00 00 00 00 00 01 28 01 D1 A7 30 04 E0 51 28 01 D1 67 30 00 E0 B0 30 01 E0 00 00 50 38 F9 28 00 D9 F5 38 01 1C 01 BC 70 47 4) из любой прошивки с моего сайта (например, Hyundai) вытащи тот шрифт, где смешаны русские и ивритские буквы (не тот, где где-то 300 с чем-то букв, а тот, в котором 256 символов) и замени им тот самый последний шрифт со 128 символами. 5) Скачай программу BCalc.exe с раздела файлов группы mt13x9 на yahoo Напиши все найденные тобой адреса и жди дальнейших указаний. |
Posted by: ivani4 on 22-12-2005, 12:51 | ||
|
Posted by: ivani4 on 22-12-2005, 12:54 | ||
|
Posted by: ivani4 on 22-12-2005, 12:58 | ||
|
Posted by: ivani4 on 22-12-2005, 14:22 |
Posted by: ivani4 on 22-12-2005, 14:41 |
Вытащил ARM Codes. Получил MTK (ARM Codes).mzh Открываю его в xvi32.Ищу последовательность 41 18 10 39 C9 7B. А её там нет. В оригинальной прошивке от Hyundai 3899 тоже не нашёл |
Posted by: cax on 22-12-2005, 15:02 | ||
1) вынимаем "Code Part->RISC->ARM Codes" (на вопрос "Unpack" - соглашаемся) |
Posted by: cax on 22-12-2005, 15:06 | ||||
(для справки: я её тоже не сам писал, а переделал из готовой подпрограммы по переводу русских букв). |
Posted by: cax on 22-12-2005, 15:07 | ||||
|
Posted by: cax on 22-12-2005, 15:09 | ||||
|
Posted by: ivani4 on 22-12-2005, 15:30 |
Буддисткий не помог.Просветление не наступило. Чувствую что вечером нечем будет дышать. |
Posted by: cax on 22-12-2005, 15:33 |
вынимаем "Code Part->RISC->ARM Codes" (на вопрос "Unpack" - соглашаемся) Подсказка: .lzh - это запакованный файл. |
Posted by: ivani4 on 22-12-2005, 15:47 |
уже нечем дышать |
Posted by: cax on 22-12-2005, 16:11 |
Дыши глубже. Если цепочка не находится - тогда я ничем не могу помочь. В натуре. &%я буду. |
Posted by: ivani4 on 22-12-2005, 16:24 |
10 39 C9 7B начинается с адресов 23В72 23ВА6 ............................................................ Сообщения С++ 27BD8 начинается с фразы Abnormal termination ............................................................ cax Может придумаешь что нибудь с BCalc.exe . Итак дышать нечем .Мне от одной только мысли о том сайте становится дурно. Зря время потратим.Кладезь то он может быть и кладезь,да говорят там не на нашем языке. |
Posted by: cax on 22-12-2005, 19:05 |
Нет проблем, просто вместо академии у нас получится слепое копирование. Я запустил BCalc и сделал расчёты для тебя. 23В72: замени 10 39 C9 7B на 04 F0 31 F8 23ВА6: замени 10 39 C9 7B на 04 F0 17 F8 Я полагаю, что по адресу 27BD8 ты уже вписал ту длинную подпрограмму, байты которой я давал выше, и вставил тот шрифт, который я говорил. Теперь вставь ARM обратно в прошивку (с упаковкой). Скрести пальцы и приготовься хоронить плейер. |
Posted by: ivani4 on 22-12-2005, 20:09 |
cax спасибо что облегчил мне жизнь.Но я не стремился к слепому копированию.Я за академию.Просто хотел программу получить другим путём и сделать всё самостоятельно под твоим чутким руководством.Если есть с твоей стороны такая возможность и желание,то я только за. Процесс я думаю закончить сегодня,но ломать плеер будем завтра т.к. на сегодня запланирован просмотр фильма. |
Posted by: ivani4 on 23-12-2005, 00:41 |
Это то что нам нужно?Если да,так я готов считать. |
Posted by: ivani4 on 23-12-2005, 08:35 |
Posted by: cax on 23-12-2005, 10:23 | ||
|
Posted by: ivani4 on 23-12-2005, 11:17 |
Плеер остался жив.Но желаемый результат не получен.Теперь вместо названий на рус/ивр сплошной подчерк.Проверял несколько раз сделанные изменения.Ошибки не нашёл. ?????????????????????????????????????????????????????????????????????? |
Posted by: cax on 23-12-2005, 23:02 |
То, что у тебя происходит, весьма странно. Подчерки не могут появиться если их не было ранее... Впрочем, давай попробуем разобраться и починить. Поищи-ка в прошивке (не в АРМ) такое: 94 20 40 xx E0 D3 94 7E 40 Напиши, нашёл ли, и если да, то сколько раз и где. |
Posted by: ivani4 on 23-12-2005, 23:38 |
Не нашлось.В целях самоконтроля провел поиск в Hyundai 3899 Servo 02.09 - orig.Так там нашлось два раза 12DA3 15EEB |
Posted by: cax on 24-12-2005, 15:17 | ||
Давай для очистки совести поищем в АРМ вот такое (хотя тоже вряд ли найдётся): 7E 22 20 21 Если найдёшь - попробуй заменить на FF 22 00 21 (ну и, разумеется, после этого вставить АРМ назад в прошивку и т.д.) Кстати, после замены шрифта сколько у тебя букв имени файла влазит на экране ? |
Posted by: ivani4 on 24-12-2005, 15:38 |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Заработало!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ты гений!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Posted by: ivani4 on 24-12-2005, 19:22 | ||
!!!!!!Да тут не плеер хоронить,а памятник тебе при жизни ставить!!!!!! |
Posted by: ivani4 on 24-12-2005, 20:32 | ||
Любопытно что теперь лишнее вылезает за рамки. Значит надо делать то что ты называешь обрезалкой по правому краю? |
Posted by: cax on 24-12-2005, 20:37 | ||
Это не сложно технически, но требует определённой внимательности и аккуратности. Читай вот такую главу: 4) Filename cutter - howto (removes overlapping letters in long filenames that mess with scrollbar) |
Posted by: ivani4 on 24-12-2005, 22:53 |
Тяжеловато по самоучителю будет.Маэстро,я в чём то провинился что меня перевели на заочное отделение? Ну а если серьёзно и по делу,то предположил что нужно начать с поиска в прошивке последовательности FD A3 E0 FE A3 E0 FF 90 XX XX 12 XX XX 90 XX XX E0 FD В Hyundai 3899 нашёл такое дело по адресу 14С63 Нашёл такую цепочку так же в Vertex 312A и в Apex JDP707. А вот в своей прошивке не нашёл ничего. |
Posted by: cax on 25-12-2005, 00:46 |
Значит не будем делать обрезалку. Польза от неё только эстетическая, нужна она редко, а возни много. К тому же мне неясно как тебе помочь с этим. |
Posted by: ivani4 on 25-12-2005, 00:53 |
А может быть нам поможет то,что я нашёл похожую цепочку FD A3 E0 FE A3 E0 FF 90 FB B6 12 21 62 90 FB AE E0 FC по адресу 148D7 Нашлась такая цепочка один раз и разница только в одной последней букве. |
Posted by: cax on 25-12-2005, 01:12 |
Похоже, что ты на верном пути. Завтра гляну. Спокойной ночи. |
Posted by: ivani4 on 25-12-2005, 06:20 |
Спасибо!Жду! А то ,что возни много,так меня это не пугает.На такие дела я не ленивый.Уж очень хочется сделать это красиво,так как положено. Может быть тебе поможет ещё то,что до того как мы ввели поддержку рус/ивр, данное явление не наблюдалось.Проверено. |
Posted by: cax on 25-12-2005, 11:33 | ||
|
Posted by: ivani4 on 25-12-2005, 12:04 |
Хотел было сразу не согласится,но решил ещё раз проверить и оказалось что ты частично прав.Мне приходилось видеть ранее что имя не отображается полностью,но никогда не приходилось видеть что оно вылезает за рамки.Так оказалось что оно начинает вылезать при определенной длине имени.Просто ранее такие длинные имена не поподались.Но тем не менее после введения поддержки рус /ивр некоторые изменения всё таки произошли.Если ранее это вылезало только с правой стороны,то теперь эта не вместившаяся справа часть имеет место быть как с правой так и слевой стороны браузера. |
Posted by: cax on 25-12-2005, 12:29 | ||
1234567_10_234567_20_234567_30_234567_40_234567_50_234567_60_234567_70.avi |
Posted by: ivani4 on 25-12-2005, 13:03 | ||
За рамкой с правой стороны 23 с левой стороны 456 |
Posted by: cax on 25-12-2005, 13:18 | ||
Кстати, что-то я не понял - как ты можешь видеть буквы после 42-й ? Ведь стоит ограничение в 42 символа ? |
Posted by: ivani4 on 25-12-2005, 13:37 |
42-это ограничение на показ субтитров.Это меня и попутало. Я проверил как работала предыдущая прошивка.Оказалось что вместилось 40_23456 При этом ничего не вылезло не справа,ни слева. Только теперь я понял что ограничение-46 знаков.И я знаю где я ошибался.42 я насчитывал в самом названии файла.Точка и три буквы(расширение)не учитывались. Твой фонт шире моего и это ,я думаю,единственная причина вызвавшая эти новые изменения в отображении имени. А может быть у тебя есть другой фонт? |
Posted by: cax on 25-12-2005, 14:20 |
Я перепробовал много разных, они плохо смотрелись, пока не выбрал этот. Ты можешь сделать свой - поУже, но не у всех телевизоров одинаково хорошая чёткость. Проще ограничение с 46 изменить на 40-42. В принципе, 95% времени 40 символов хватает за глаза (раньше было 14 и и ничего, жили ведь ?) На самом деле, ограничение не 46, а 50 - 46 на имя, 4 на точку и расширение. Больше никак нельзя. |
Posted by: ivani4 on 25-12-2005, 14:31 |
Длину названий файлов ограничить до 40. Ограничение на показ субтитров отменить. Можно такое сделать? .............................................. И все таки ,по моему,я имею 46 включая точку и расширение |
Posted by: cax on 25-12-2005, 14:39 |
Что такое "ограничение на показ субтитров" ? Если ты имеешь в виду "проблема, из-за которой текст субтитров обрезаются где-то после 60-го символа", так это не я ограничил, а ошибка в почти всех прошивках от почти всех производителей, и описание её устранения идёт первым номером в моём руководстве. Связи с показом длинных имён файлов нет никакой. Связи с другой проблемой (у файлов длиннее 42 символов в имени не показываются субтитры) тоже нет никакой. |
Posted by: ivani4 on 25-12-2005, 14:42 | ||
|
Posted by: cax on 25-12-2005, 14:43 | ||
Т.е. в файле 12345.... ... .avi ты видишь .. 40 2.avi ???? Не может быть. Ты же сам сказал, что видишь 456. Не путай себя и меня. |
Posted by: ivani4 on 25-12-2005, 15:04 |
Если я буду смотреть фильм с названием САХ,то я увижу на экране CAX.AVI Если мой двд способен отобразить 46 знаков,то 42-имя 1 -точка 3-расширение ............................................. Вот такое название из 46-ти знаков я вижу полностью,но стоит мне добавить еще одну точку,то буквы i в конце я уже не увижу. The Matrix Reloaded. 2003 Cd.2 Dvdrip.Divx.avi ................................................... cax,не надо обрезалку.Я сделал другой фонт. Хочу отправить его тебе.Любопытно твоё мнение. |
Posted by: cax on 25-12-2005, 18:47 | ||
а показ длинных имён файла ты сам делал ? или ты взял эту прошивку у того, кто это сделал ? Теперь к нему добавился ещё один: а почему это у тебя расширения файлов показываются ? Ни на одном из моих плейеров такого нет. Это тоже чья-то модификация ? По поводу самодельного шрифта: ты разобрался как туда вставить и русский и иврит ??? А показывать его мне не надо - достаточно проверить на телевизоре с маленьким экраном (21-25''), если надписи видны с расстояния просмотра фильма - значит всё хорошо. |
Posted by: ivani4 on 25-12-2005, 20:19 |
Показ длинного имени ,расширения и субтитров -так этот двд продаётся.Зум тоже сделан как положено включая тот синий квадрат . С фонтом разобрался.Всё работает. Ну а теперь что?Может быть устраним непоказ субтитров при длине имени более 42 знака? |
Posted by: cax on 25-12-2005, 20:45 |
По поводу непоказа субтитров для файлов с длиной имени 42+, тебе понадобится SubtLength.exe из всё той же группы mt13x9 на yahoo.com Жалобы на английский язык более не принимаются, иди и зарегистрируйся. Даже дети это умеют. Я не верю, что человек, умеющий работать с прошивками, не в состоянии зарегистрироваться на каком-то форуме. |
Posted by: ivani4 on 25-12-2005, 22:17 |
Маэстро,ну зачем так сердится?Сегодня праздничный вечер. Я пробовал.И не один раз.Я был бы рад,но у меня не получилось.Там требуют от меня данные и не знаю о чём речь.Да и на этом сайте я с трудом зарегистрировался. Ты говоришь дети могут?Так дети многое могут что взрослым не под силу. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Ну и если так,то может будем учится бороться с баг 60? |
Posted by: cax on 26-12-2005, 00:38 | ||
Хочешь баг 60 - ищи и скачивай IDA, а я пока отдохну. |
Posted by: ivani4 on 26-12-2005, 00:49 |
А!!!!!!!!!!!!А я то думаю,чего вдруг такой ?Спорит.Сердится. Сначала думал из-за дождя.Потом думал что суфганиёт объелся.А тут вот какое дело.Ну,поздравляю.И сколько это будет два в пятой что бы я уже тоже мог порадоватся? 32-Угадал? ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ida_pro_4.8.0.847 подходит? |
Posted by: cax on 26-12-2005, 09:17 |
Вполне. |
Posted by: ivani4 on 26-12-2005, 09:20 |
там есть idag64.exe и idag.exe.Какой будем использовать? Понял из инструкции что нужно произвести определенные изменения в ARM по четырем адресам.Но как найти эти адреса не понятно.Пробовал использовать иду,но успехов не добился. |
Posted by: cax on 26-12-2005, 17:42 | ||
Но прежде чем ты запустишь Иду, тебе нужно скачать скрипты для неё из группы mt13x9... |
Posted by: ivani4 on 26-12-2005, 17:49 |
Опять засада.Все дороги ведут на yahoo.com. А ты не можешь у себя на сайте все эти дела выложить? |
Posted by: cax on 26-12-2005, 19:24 |
Мы так не договаривались. Я пишу здесь ценные указания, на этом моя миссия заканчивается. |
Posted by: ivani4 on 26-12-2005, 21:12 |
Тогда такое предложение.Пока я разберусь с yahoo,может быть займёмся подарком к Новому Году для хорошего человека?Напомню что речь шла о названиях файлов,но вариант там тяжелее Более 128 символов(256) занимает два номера Возможно находится последним в списке фонтов.Нужно проверить. Сможем сделать? |
Posted by: cax on 27-12-2005, 02:23 | ||
Я не видел оригинальных прошивок, в которых нет шрифта с 128 символами. И проверь насчёт последнего в списке. |
Posted by: ivani4 on 27-12-2005, 09:04 | ||
1. Большинство китайских плееров ,действительно,имеют 128 знаков,но такие двд как Пионер,Филипс,Ямаха-256 знаков. 2. Под занимаемым номером было понято : font 3 занимает один номер font 3-4 занимает два номера 3. Требуемый фонт не является последним в списке. |
Posted by: cax on 27-12-2005, 12:28 |
Я надеюсь, что брендовые прошивки не очень сильно отличаются от китайских и там всё так же... иначе я не смогу ничем помочь. То есть ты хочешь сказать, что фонт для имён файлов содержит 256 символов ? Как ты узнал, что именно он используется для имён ? И как на этом плейере отображаются русские имена файлов ? Какие шрифты идут после него и для чего каждый из них ? Прошивка занимает больше мегабайта или меньше ? |
Posted by: ivani4 on 27-12-2005, 12:53 | ||
|
Posted by: ivani4 on 27-12-2005, 12:59 | ||||
|
Posted by: cax on 27-12-2005, 13:20 |
Не очень понимаю при чён тут font page - этот термин здесь совершенно неприменим. И что значит "имена на русском отображаются никак" ? Прям как у Чехова, где бабулька жалуется на боль в животе и так её описывает, что не понять ни где именно болит, ни как сильно болит - вообще ничего не понять. И снова спрошу: откуда известно, что именно фонт 3-4 используется для показа имён файлов ? |
Posted by: ivani4 on 27-12-2005, 13:31 |
Термин code page подходит?Но я буду писать как ты-фонт. |
Posted by: ivani4 on 27-12-2005, 14:15 | ||
(Решил использовать твою терминологию) |
Posted by: ivani4 on 27-12-2005, 14:20 | ||
|
Posted by: cax on 27-12-2005, 15:11 |
Нумерация начинается с нуля, так что здесь что-то не так. Если они ВСЕ по 256 букв, тогда было бы так: 0-1, 2-3, 4-5, 6-7, 8-9.... |
Posted by: ivani4 on 27-12-2005, 15:23 |
сах,это я к примеру.Начинается конечно с нуля ............................................................................ Получил информацию и почувствовал ,что не получится подарок.Оказывается для показа имён файлов используется фонт 0-1.Содержит 412 символов. Этот фонт используется так же для отображения другой информации(set up/on screen). Засада? |
Posted by: cax on 27-12-2005, 16:58 | ||
|
Posted by: ivani4 on 27-12-2005, 17:04 |
Сделали простую проверку.На место фонта 0-1 поставили китайский фонт и всё стало на китайском включая названия файлов. .......................................................................... Дополнительно проверено.Одни и те же англ. буквы(66-123)используются для OSD и имён файлов. |
Posted by: cax on 27-12-2005, 18:26 |
Тогда я пас. Если у них там всё так сильно поменяли, то я сомневаюсь, что мы найдём в этой прошивке хотя бы одну цепочку байтов. Ты, конечно, можешь попытаться поставить на 0-1 русский фонт и модифицировать АРМ тем же образом, что и в предыдущей прошивке, но мне кажется, что шансы на успех малы. Если хочешь - дерзай. Если вдруг получится - мы откорректируем фонт 0-1 позже. Начни с АРМ. |
Posted by: ivani4 on 27-12-2005, 18:40 |
Спасибо.Обязательно попробую.Извини,что крутил тебе голову весь день.Я должен был подготовится ,всё узнать и тогда обратится к тебе.Учту эту ошибку на будущее. И попутно вопрос.Я знаю что ты баловался с зонами.В прошивке по умолчанию выставлена 2-я зона.Её конечно можно поменять в set up на 0.Но при последующей перепрошивке опять будет 2 и опять нужно менять.Вопрос: можно ли сделать 0 по умолчанию ? |
Posted by: ivani4 on 27-12-2005, 18:51 |
Нашлась цепочка два раза 25А4С 25А80 И сообщения об ошибках тоже нашлись. CAX,пересчитай мне это в BCalc.exe , пожалуйста. |
Posted by: cax on 28-12-2005, 10:22 | ||
|
Posted by: cax on 28-12-2005, 10:30 | ||
Найди в MTK ReMaker такого рода штуку: 26. REGION CODE | REGION CODE 02 0114 0114 01 FF3ACF 0000 - ROM:3AD2 1. No Pic. | REGION CODE | REGION CODE 0010 FFFF 0114 0114 0017 003F 0006 0002 000000 0000 - ROM:3ABA Здесь 0006 - кол-во вариантов, 0002 - вариант по умолчанию. Далее, вроде, надо найти в прошивке всю цепочку и исправить 0002 на 0000. Но, согласись, эта фича - не вещь первой необходимости... А разве эти настройки не сохраняются при перепрошивке ? Странно. |
Posted by: ivani4 on 28-12-2005, 10:39 |
Abnormal Termination 2983C |
Posted by: ivani4 on 28-12-2005, 11:40 |
!!!Получилось с нулевой зоной.Спасибо!!! А установки действительно сохраняются,но при условии что ты работаешь с одной прошивкой.Ну а если есть две прошивки с разными зонами,то тогда при перепрошивке установки изменяются на значение по умолчанию. |
Posted by: cax on 28-12-2005, 12:06 | ||
Вот твои коды, пересчитанные BCalc-ом: код команды вызова подпрограммы 2983C с адреса 25А4С (BL 2983C): 03 F0 F6 FE код команды вызова подпрограммы 2983C с адреса 25А80 (BL 2983C): 03 F0 DC FE |
Posted by: ivani4 on 28-12-2005, 12:24 |
За пересчёт спасибо! По поводу зон ,прошивок спорить не буду.Я описал то что у меня было. А после произведённых,указаных тобой, изменений всё работает отлично.Зона всегда-0. ............................................ Получилось пройти регистрацию на http://groups.yahoo.com/group/mt13x9/ (http://groups.yahoo.com/group/mt13x9/ ,но я не могу найти там нужные нам программы. |
Posted by: cax on 28-12-2005, 15:08 | ||
http://groups.yahoo.com/group/mt13x9/files/PROGRAMS/ (http://groups.yahoo.com/group/mt13x9/files/PROGRAMS/ |
Posted by: ivani4 on 28-12-2005, 17:43 |
BCalc.exe в наших руках. И я даже разобрался как им пользоваться.Но не понятно как знать что в BRANCH нужно выставить BL ? Или для подобного расчёта всегда BL ? .............................................................................. 4) Use SubtLength.exe (from mt13x9 yahoo group) to fix 42-char+ long filenames subtitles bug This results in 1-byte change: 4F0D4: 32 => 78 Вроде не сложная процедура,но не пойму как ты получил 78 ? Закидываю в программу MTK (ARM Code).bin от Hyundai 3899 Servo 02.09 - orig и получаю new value 50. Если ввести new value 120 , то в ARM Code ,по нужному адресу,автоматически произойдёт изменение на 78. Но почему 120?как это делают вообще? ????????????????????????????????????????????? |
Posted by: cax on 29-12-2005, 10:29 | ||
А заменяю я 50 на 120 совершенно от балды. Мне посоветовали 120 - я поставил 120. Если хочешь - поставь побольше. Программа сама вносит байт на нужное место, делать это вручную ещё раз - не надо. В инструкции я всего лишь указывал "какие байты при выполнении операции изменились", а не "какие байты надо самому поменять". Пожалуй ты прав, это место в инструкции написано невнятно. Следует читать: "используя SubtLength, замените значение по умолчанию (50) на , например, 120 или больше. Я ставил 120 и у меня работало" По поводу BCalc: да, в данном месте нам нужна именно команда BL (если не вру, расшифровывается как Branch Long и используется для переходов на большие расстояния. На короткие расстояния можно перейти и другой командой. Короче, если интересно - учи ассемблер) |
Posted by: ivani4 on 29-12-2005, 10:39 | ||
И что мы вообще делаем?Непоказ субтитров при длине имени 42+ ?Отображение длинного имени файла?Или двоих одним ударом? |
Posted by: cax on 29-12-2005, 15:31 | ||
|
Posted by: ivani4 on 29-12-2005, 16:00 |
А длинное имя ? |
Posted by: ivani4 on 29-12-2005, 16:03 | ||
|
Posted by: ivani4 on 29-12-2005, 16:21 |
Победили непоказ субтитров при длине имени 42+ |
Posted by: cax on 29-12-2005, 19:17 | ||
|
Posted by: cax on 29-12-2005, 19:17 | ||||
|
Posted by: ivani4 on 29-12-2005, 19:53 | ||
|
Posted by: cax on 29-12-2005, 20:30 | ||
|
Posted by: cax on 29-12-2005, 20:33 | ||||
|
Posted by: ivani4 on 29-12-2005, 20:34 |
Ну а с длинным именем что ? |
Posted by: cax on 29-12-2005, 20:36 |
mtkFilenameLenPatcherYamadaBellYakumo |
Posted by: ivani4 on 29-12-2005, 20:43 |
Скачал,но он не запускается. |
Posted by: cax on 29-12-2005, 20:47 | ||
|
Posted by: ivani4 on 29-12-2005, 20:51 |
Сложновато будет.Никогда не работал с командной строкой. Пробовал читать инструкцию,но ничего там не понял. |
Posted by: cax on 29-12-2005, 23:56 | ||
Всего делов. |
Posted by: ivani4 on 30-12-2005, 01:58 | ||
Звучит просто ,да не клюёт.
открыл окно "командная строка".В то место которое там было прописано(c:\doc.and set\. ...) положил наши файлы и вписал их в командную строку.Нажал энтер и получил сообщение что никто ничего не может.?????????????? |
Posted by: ivani4 on 30-12-2005, 08:26 |
Posted by: cax on 30-12-2005, 15:05 |
Тебе снова Чехова напомнить ? Я же мысли читать не умею пока... |
Posted by: ivani4 on 30-12-2005, 15:46 |
Не надо Чехова. Мы уже победили!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Posted by: ivani4 on 30-12-2005, 17:38 |
Я только хотел уточнить.А всегда ли нужно использовать именно эту программу?Дело в том,что там есть ещё две ссылки с похожим именем: mtkFilenameLenPatcher.zip mtkFilenameLenPatcherYamadaBell.rar В каких случаях используют эти программы? |
Posted by: moroz on 31-12-2005, 15:23 |
Кажется, удалось обнаружить функцию, ответственную за переворот иврита. "Кажется" - потому что я все-таки не до конца понимаю как она это делает, знаний по ассемблеру катастрофически не хватает, но нутром чую - это ОНА. cax, если заинтересуешься - дай знать: открою новый топик и отпишусь поподробней. |
Posted by: cax on 31-12-2005, 16:42 | ||
|
Posted by: cax on 31-12-2005, 16:46 | ||
|
Posted by: ivani4 on 31-12-2005, 17:44 |
спасибо |
Posted by: moroz on 01-01-2006, 02:44 | ||||
|
Posted by: ivani4 on 01-01-2006, 14:17 |
Маэстро!Мы собирались рассмотреть устранение баг 60.Но кроме этого у меня есть ещё одна просьба.Показ файлов субтитров в списке файлов имеющихся на диске.Можно? |
Posted by: cax on 01-01-2006, 14:40 | ||
|
Posted by: ivani4 on 01-01-2006, 14:53 |
А баг 60? |
Posted by: cax on 01-01-2006, 15:33 |
Дай передохнуть, на работе завал... |
Posted by: ivani4 on 01-01-2006, 20:06 | ||
Маэстро!С баг 60 подождём.Нет проблем. А тут по предыдущему делу есть вопрос
|
Posted by: cax on 01-01-2006, 22:32 |
Не пробовал, но замена ещё какого-нибудь ненужного расширения на SUB по идее должна сработать так же, как и с SRT. |
Posted by: ivani4 on 01-01-2006, 23:02 |
Спасибо! САХ,пожалуйста,будет возможность продолжить занятия в академии ,дай знать! |
Posted by: aleshin on 09-01-2006, 14:34 |
ivani4 пришли пожалуйста bcalc ,хочу тоже одну прошивку исправить, а яхо никак не регистрирует. qwer@ufanet.ru |
Posted by: Rvs on 09-01-2006, 20:55 |
Привет бойцам!!! Примите в свои ряды!!! Также как вы занимаюсь модификацией прошивок, владею ASM, готов поделиться своей информацией, есть много наработок!!! Но есть и вопросы!!! Вопрос к гуру. Модифицирую уже вторую прошивку от NewAge, и в каждой есть засада. В меню изменяю значение по умолчанию, например язык имён файлов (кодовую страницу) с 1250 на 1251, перепрашиваю аппарат, в меню вроде всё ОК, но делаю сброс по умолчанию и значение становиться то которое NewAge установил при создании прошивки, т.е. 1250!!!! Где засада ???? P.S. Хорошая тема!!! |
Posted by: cax on 10-01-2006, 00:48 |
А в подменю, где эта неизвестная мне штука выбирается, какое значение по умолчанию ? |
Posted by: Rvs on 10-01-2006, 11:32 |
Привет сах!!! Спасибо что откликнулся!!! Вот всё меню (укоротил только список стран, чтоб короче топик был), видно что NewAge по умолчанию установил страну Англию (00 23), я сменил на Русский (00 0A), после перепрошивки через кабель или CD в меню появляется Русский (вроде всё ОК), но имена файлов не в той кодировке, и пре сбросе по умолчанию, страна становиться АНГЛИЯ!!!! 7. No Pic. | Filesystem Country | Set Filename Decoding (CP125x) 0008 FFFF 04B3 04B4 0078 0000 002C 0023 FFCBBE 0829 - ROM:CC45 1. Bosnia/Herz. | Bosnia/Herz. | Bosnia/Herz. 04B5 04B5 04B5 00 - ROM:CA83 2. Croatia | Croatia | Croatia 04B6 04B6 04B6 01 - ROM:CA8A 3. Czech | Czech | Czech 04B7 04B7 04B7 02 - ROM:CA91 ................................................................. 9. Bulgaria | Bulgaria | Bulgaria 04BD 04BD 04BD 08 - ROM:CABB 10. Macedonia FYR | Macedonia FYR | Macedonia FYR 04BE 04BE 04BE 09 - ROM:CAC2 11. Russia | Russia | Russia 04BF 04BF 04BF 0A - ROM:CAC9 12. Serbia/Mont. | Serbia/Mont. | Serbia/Mont. 04C0 04C0 04C0 0B - ROM:CAD0 ............................................................................ 35. Switzerland | Switzerland | Switzerland 04D7 04D7 04D7 22 - ROM:CB71 => 36. United Kingdom | United Kingdom | United Kingdom 04D8 04D8 04D8 23 - ROM:CB78 37. United States | United States | United States .......................................................................... 45. Vietnam | Vietnam | Vietnam 04E1 04E1 04E1 2C - ROM:CBB7 |
Posted by: cax on 10-01-2006, 11:38 |
Если ты действительно заменил 0008 FFFF 04B3 04B4 0078 0000 002C 0023 FFCBBE 0829 на 0008 FFFF 04B3 04B4 0078 0000 002C 000А FFCBBE 0829 и оно не работает - тогда я пас. |
Posted by: Rvs on 10-01-2006, 12:38 |
Да так и сделал!!! У меня подозрение что в процедуре обработке пункта меню при сбросе заложено жестко установка языка!!! Попробовал просмотреть, процедуру не совсем разобрался, как ёё вычислить. Вот что я увидел. Не понятно, что за условные переходы по значению регистра А??? Bank2: ROM:0829 90 F8 A2 mov DPTR, #0xF8A2 ROM:082C 02 02 28 ljmp B_BANK0 Bank0: ROM:F8A2 BankSw:224_F8A2: ROM:F8A2 01 B6 ajmp ROM_F8B6 ROM:F8A2 ; End of function BankSw:224_F8A2 ROM:F8B6 ; --------------------------------------------------------------------------- ROM:F8B6 ; START OF FUNCTION CHUNK FOR BankSw:224_F8A2 ROM:F8B6 ROM:F8B6 ROM_F8B6: ; CODE XREF: BankSw:224_F8A2 ROM:F8B6 90 FB 95 mov DPTR, #0xFB95 ROM:F8B9 EE mov A, R6 ROM:F8BA F0 movx @DPTR, A ROM:F8BB A3 inc DPTR ROM:F8BC EF mov A, R7 ROM:F8BD F0 movx @DPTR, A ROM:F8BE A3 inc DPTR ROM:F8BF ED mov A, R5 ROM:F8C0 F0 movx @DPTR, A ROM:F8C1 EF mov A, R7 ROM:F8C2 64 33 xrl A, #0x33 ROM:F8C4 60 50 jz ROM_F916 ROM:F8C6 EF mov A, R7 ROM:F8C7 64 7C xrl A, #0x7C ROM:F8C9 60 32 jz ROM_F8FD ROM:F8CB EF mov A, R7 ROM:F8CC 64 7D xrl A, #0x7D ROM:F8CE 60 2D jz ROM_F8FD ROM:F8D0 EF mov A, R7 ROM:F8D1 64 7E xrl A, #0x7E ROM:F8D3 60 28 jz ROM_F8FD ROM:F8D5 EF mov A, R7 ROM:F8D6 64 7F xrl A, #0x7F ROM:F8D8 60 23 jz ROM_F8FD ROM:F8DA EF mov A, R7 ROM:F8DB 64 89 xrl A, #0x89 ROM:F8DD 60 19 jz ROM_F8F8 ROM:F8DF EF mov A, R7 ROM:F8E0 64 7A xrl A, #0x7A ROM:F8E2 60 1E jz ROM_F902 ROM:F8E4 EF mov A, R7 ROM:F8E5 64 7B xrl A, #0x7B ROM:F8E7 60 19 jz ROM_F902 ROM:F8E9 EF mov A, R7 ROM:F8EA 64 78 xrl A, #0x78 ROM:F8EC 60 19 jz ROM_F907 ROM:F8EE EF mov A, R7 ROM:F8EF 64 88 xrl A, #0x88 ROM:F8F1 60 19 jz ROM_F90C ROM:F8F3 EF mov A, R7 ROM:F8F4 64 8A xrl A, #0x8A ROM:F8F6 60 19 jz ROM_F911 ROM:F8F8 ROM:F8F8 ROM_F8F8: ; CODE XREF: BankSw:224_F8A2+3B ROM:F8F8 12 F9 B7 lcall ROM_F9B7 ROM:F8FB 80 2A sjmp ROM_F927 ROM:F8FD ; --------------------------------------------------------------------------- ROM:F8FD ROM:F8FD ROM_F8FD: ; CODE XREF: BankSw:224_F8A2+27 ROM:F8FD 12 F9 2F lcall ROM_F92F ROM:F900 80 25 sjmp ROM_F927 ROM:F902 ; --------------------------------------------------------------------------- ROM:F902 ROM:F902 ROM_F902: ; CODE XREF: BankSw:224_F8A2+40 ROM:F902 12 F9 BD lcall ROM_F9BD ROM:F905 80 20 sjmp ROM_F927 ROM:F907 ; --------------------------------------------------------------------------- ROM:F907 ROM:F907 ROM_F907: ; CODE XREF: BankSw:224_F8A2+4A ROM:F907 12 FD 01 lcall ROM_FD01 ROM:F90A 80 1B sjmp ROM_F927 ROM:F90C ; --------------------------------------------------------------------------- ROM:F90C ROM:F90C ROM_F90C: ; CODE XREF: BankSw:224_F8A2+4F ROM:F90C 12 FD 15 lcall ROM_FD15 ROM:F90F 80 16 sjmp ROM_F927 ROM:F911 ; --------------------------------------------------------------------------- ROM:F911 ROM:F911 ROM_F911: ; CODE XREF: BankSw:224_F8A2+54 ROM:F911 12 FD 29 lcall ROM_FD29 ROM:F914 80 11 sjmp ROM_F927 ROM:F916 ; --------------------------------------------------------------------------- ROM:F916 ROM:F916 ROM_F916: ; CODE XREF: BankSw:224_F8A2+22 ROM:F916 90 FB 95 mov DPTR, #0xFB95 ROM:F919 E0 movx A, @DPTR ROM:F91A FE mov R6, A ROM:F91B A3 inc DPTR ROM:F91C E0 movx A, @DPTR ROM:F91D FF mov R7, A ROM:F91E A3 inc DPTR ROM:F91F E0 movx A, @DPTR ROM:F920 FD mov R5, A ROM:F921 90 C1 5F mov DPTR, #0xC15F ROM:F924 02 02 58 ljmp B_BANK2 ROM:F927 ; --------------------------------------------------------------------------- ROM:F927 ROM:F927 ROM_F927: ; CODE XREF: BankSw:224_F8A2+59 ROM:F927 ROM:F927 7F 00 mov R7, #0 ROM:F929 22 ret ROM:F929 ; END OF FUNCTION CHUNK FOR BankSw:224_F8A2 |
Posted by: Rvs on 10-01-2006, 15:36 |
Ещё вопрос cax!!! А серво не пробывал менять???? |
Posted by: cax on 10-01-2006, 19:47 |
Научи меня как сделать это правильно - буду пробовать. |
Posted by: aleshin on 11-01-2006, 01:07 |
cax поясните пожалуйста вот этот пункт, а то я не очень "есть понимать" что ,где и чего патчить: 3) Show cyrillics in file browser instead of '_' chars. This patch works together with corresponding patch in ARM section - so you need to apply both of them to see the result. To see all chars in filebrowser patch the following bytes: 12DA4: 20 => 00 12DAA: 7E => FE 15EEC: 20 => 00 15EF2: 7E => FE 7F 06 02 05 9B ---------------------------------------------------------------- Howto: In 8032 code look for ("XX" is a wildcard char): 90 XX XX E0 FF 90 XX XX E0 FE C3 9F 50 05 C3 EF (I found it at 15E9E). Then skip until the following section of code and patch #0x20 and #0x7E: ROM:00015EEB 94 20 subb A, #0x20 ROM:00015EED 40 06 jc ROM_5EF5 ROM:00015EEF E0 movx A, @DPTR ROM:00015EF0 D3 setb C ROM:00015EF1 94 7E subb A, #0x7E ROM:00015EF3 40 10 jc ROM_5F05 This code appears twice: first time for current directory, second time for names of files in the file browser Note: it can be your firmware doesn't check the char boundaries. In this case you cannot and don't need to apply this patch. |
Posted by: Rvs on 11-01-2006, 10:20 |
aleshin а что именно не ясно или всё не ясно!!! Помню делал всё чётко должно работать, cax чётко всё указал!!! |
Posted by: ivani4 on 11-01-2006, 11:58 |
Rvs Может быть ты знаешь как убрать синий квадрат появляющийся в режиме зум при проигрывании дисков двд? |
Posted by: Rvs on 11-01-2006, 16:41 |
aleshin На картинке плохо видно , но кажется догадался кинь прошивку на ruslan(тузик)tiraet.com. Посмотрю |
Posted by: cax on 11-01-2006, 17:05 |
aleshin, а что из указанного мной в "Howto:" ты уже сделал и где не получилось ? В каком месте неувязка ? |
Posted by: aleshin on 11-01-2006, 17:21 |
cax огромное человеческое спасибо за инструкцию, уже разобрался (просто английский не родной).Заруссифицировал прошивку shinco dvp-358 только OSD надо еще поломать (меню на русском неправильное), а так всё пучком. |
Posted by: Rvs on 11-01-2006, 20:02 |
cax Извини за настойчивость. Помоги разобраться с меню!!! Как всё таки найти процедуру обработки пункта меню??? |
Posted by: cax on 11-01-2006, 21:00 |
. |
Posted by: cax on 11-01-2006, 21:03 |
Опять цитирую сам себя: find PREF_GetChar by searching "CD EF CD CC EE CC BC". Let's say, you find it at address 3E9B6. Then look for "90 E9 B6 02 mm nn". You will find it at 0415,10415, 20415, etc. So, the PREF_GetChar address ppqq=0415. Now look for "7F arg 7E 00 12 pp qq" and you will find the code that looks like the following: seg_01:1C586 7F 08 mov R7, #8 seg_01:1C588 7E 00 mov R6, #0 seg_01:1C58A 12 04 15 lcall seg_01_10415 seg_01:1C58D EF mov A, R7 То, что на выходе переписывается из R7 в A - это и есть прочитанное значение выбора в меню. |
Posted by: Rvs on 12-01-2006, 13:47 |
с этим всё понятно, у меня немного по-другому, т.к. есть функция обработчик 0008 FFFF 04B3 04B4 0078 0000 002C 0008 FFCBBE 0865 и в ней вызов функции PREF_GetChar: mov R7, #0x78 ; 'x' mov R6, #0 lcall PREF_GetChar_B1:F237 mov A, R7 mov DPTR, #0xFCD4 movc A, @A+DPTR mov R5, A mov R7, #0x80 ; 'А' mov R6, #0xF mov DPTR, #ARM_PutChar ljmp B_BANK0 а дальше что, исходя из кода вызывается функция ARM_PutChar в банке 0, а что за параметры такие??? И что получается сама функция по обработке значения из меню находиться в ARM-е???? И что если я вместо mov A, R7 напишу mov A, 0А и какие я бы значения в меню не выбирал будет всегда одно и тоже???? |
Posted by: moroz on 15-01-2006, 22:52 |
cax Рассматривал я тут твою прошивку к АПЕКС2102 и нашел рутину, которая добавляет сброс строки после 35-го символа. Фичер сам по себе сомнительный. Так что есть вариант просто его зарубить. Но есть вариант интереснее: по-моему эту рутину легким движением руки можно переделать так, чтобы она отжимала текст к нижней кромке окна, т.е. добавляла пустую строку или две там где это необходимо. Как думаешь, есть у этого дела "общественный интерес"? Если да, я бы рискнул попробовать. |
Posted by: cax on 16-01-2006, 00:40 |
Интереса нет, после 35-го символа я ничего не отсекаю - отрезаю пиксельно после определённого офсета, жесткое ограничение на 42 символа, можно сделать 46. |
Posted by: moroz on 16-01-2006, 22:39 |
Доктор, вы о чем? Я вообще-то о субтитрах в прошивке к АПЕКС2102 серво 18.03.00.00 версия 5.0 |
Posted by: cax on 17-01-2006, 01:51 |
Перечитал. Осознал. Был неправ. Лично мне интересно - дерзай. |
Posted by: moroz on 17-01-2006, 12:42 |
Нет проблем. Начну помолясь. Буду сообщать об успехах (готовься объяснять как паять кабель ) |
Posted by: cax on 17-01-2006, 14:58 |
Слушай, а давай вместе напишем переворачивалку иврита ? Я примерно знаю место в АРМ, где идёт подсчёт длины строки субтитров. План такой - написать аналогичную подпрограмму, в которой 2 поинтера (или индекса), один в начале строки, другой - в конце, движутся друг другу навстречу и обмениваются лежащими под ними байтами, пока не встретятся. Я пытался сам, но у меня от АРМ-ассемблера мозги кипят. Может вдвоём чего сообразим ? |
Posted by: moroz on 17-01-2006, 19:33 |
Чегой-то я не понял. Есть же рутина. Я ж даже топик спциально создавал и докладывал. Проблема ведь не в рутине, а когда ее вызывать. То есть где в общей памяти находится индекс фонта. Кроме того - она шибко длинная (~0х130), но это наверно можно как-то решить. |
Posted by: cax on 17-01-2006, 22:55 |
То, что я предлагаю, это написать свою подпрограмму в пару десятков байт. Кстати, сегодня NewAge из mt13x9 сознался, что уже делал подобное в своей прошивке для Xoro. Можно изучить его работу (я пока не нашёл оригинал, с которым можно сравнить его прошивку - а было бы здорово, в два счёта бы нашёл отличия и разобрался бы...) |
Posted by: moroz on 17-01-2006, 23:14 |
Переворот иврита и простой переворот строки - это не одно и то же. Не забудь что английские вставки переворачивать не надо, цифры - ни в коем случае. Но это еще не все. Попробуй в ноутпаде написать ивритское слово и поставить точку. Она перескочит в начало. Файлы с ивритскими субтитрами расчитаны именно на такое поведение, т.е. вся пунктуация заранее перевернута. Так что парой десятков байтов не обойдешься. А что у тебя есть против прусманской рутины? Что касается NewAge - можно поизучать его творение, классику надо знать. Оригинал не обязателен. Кинь ссылочку. И все-таки: допустим, рутину осилили. Как узнать что выбран ивритский фонт?!! |
Posted by: ivani4 on 18-01-2006, 08:52 |
Предложение от moroz(переворот иврита)-грамотный подход.А вариант от cax(переворот строки) тоже приемлим. Если попробуете написать,то установку и проверку я готов взять на себя(в целях экономии вашего времени). И ещё,может быть вам поможет-у меня есть прошивка где переворот строки происходит при написании: имя фильма.avi имя фильма.heb.sub |
Posted by: cax on 18-01-2006, 09:47 | ||
спасибо, но до тестирования нам ещё далеко moroz: Я слышал, что в прошивке к Апекс 811 есть проблема с переворачиванием английских слов и чисел, т.е. как я понял там тоже не реализован полный BiDi (Bi-directional). Ещё один голос за короткий вариант: свободное место в прошивке (для новых подпрограмм) - не резиновое. Теперь о Xoro с поворотом субтитров - см. страничку NewAge: http://newage.mpeg4-players.info/ (http://newage.mpeg4-players.info/ http://newage.mpeg4-players.info/firmwares/xoro/hsd400pro/NAv2/NAv2.html (http://newage.mpeg4-players.info/firmwares/xoro/hsd400pro/NAv2/NAv2.html Читаем readme, где наряду с кучей других полезных вещей (выбор координат, цвета и прозрачности субтитров) видим новый пункт меню: 6. Text Direction | Set Mpeg4 Subtitle Text Direction 1. Left To Right 2. Right To Left Одна загвоздка: у меня нет оригинальной прошивки для Xoro - это раз, и такое ощущение, что ARM (05.00.05.01) в этом моде не родной, а откуда взят - неизвестно (аналогичный АРМ 05.00.05.01 в Апексе имеет другую длину) Сам автор ничего не комментирует, видимо считая, что другие сами разберутся. |
Posted by: ivani4 on 18-01-2006, 10:07 |
официальные прошивки хоро http://www.xoro-israel.com/service/download.aspx (http://www.xoro-israel.com/service/download.aspx |
Posted by: Rvs on 18-01-2006, 11:22 |
Не поверите!!! У меня как раз Xoro 400 Pro и прошивки от NewAge!!! Вопросы как раз задавл по прошивке от NewAge, судя по всему речь идёт о прошивке RC2 и её мода V2. www.xoro-israel.com а здесь прошивок от NewAge нет!!! Готов помочь!!!! |
Posted by: Rvs on 18-01-2006, 11:47 |
Прочив внимательно увидел!!! Да NewAge это ARM (05.00.05.01) переделал и прикрутил к одной из своих прошивок V1B10 для XORO, с какой целью не ясно молчит, хотя .... !!! И если обратил внимание то там страшный косяк со шрифтами!!! Я это ARM (05.00.05.01) приктрутил к другой прошивке, косяк со шрифтами остался, значит точно изменения в ARM. А ARM (05.00.05.01) от Апекса на какой объём DRAM, расчитан может в этом проблема??? А вообще где его можно скачать?? Прикручу его к NewAge и посмотрю, что получиться!!! |
Posted by: cax on 18-01-2006, 12:31 |
ivani4: спасибо, я знаю где официальные прошивки, но меня интересует не абы какая, а та, которую NewAge взял для своих экспериментов. В любом случае я не видел ни одной прошивки Xoro с АРМ 05.00.05.01, так что похоже она взята из другого плейера и "прикручена" к Xoro. Найти бы такой АРМ до изменений... Rvs: А какие косяки со шрифтами ? Если ты про необходимость задавать их размер кратным 4, то это ерунда. Кстати, не поможешь ли написать реверс или хотя бы найти его в коде NewAge ? Прошивки Апекса лежат на сайте apexdigital.co.il |
Posted by: Rvs on 18-01-2006, 13:54 |
cax Xoro давно забила на обновления, самая последняя официальная около года назад появилась!!! Поэтому нет прошивок с таким ARM-ом. NewAge скорее всего брал за основу как раз это ARM, от апекса или другого аппарата, я еще пока не нашел больше официальных с таким ARM-ом, если есть то скажи какие посмотрю. А чё бы тебе просто не прикрутить его ARM к своей прошивке??? Я нашел твою fm переделанную для апекса 2102, а что ты менял в ARM-е??? Разве в оригинальном ARM-е, нет поддержки длинных имён файлов и кодовых страниц??? И ещё про шрифты не понял, мне их ReMaker показывает в виде набора хаотичных точек, и как тут кратность вяжется???? |
Posted by: cax on 18-01-2006, 14:10 |
Rvs, судя по задаваемым вопросам ты мне помочь не сможешь, а я так надеялся. Я пока не научился прикручивать RISC/ARM (простая замена здесь не работает). Более того, поведение кода NewAge в отсутствие поддержки со стороны меню - непредсказуемо, ввиду отсутствия сброса в начальные значения используемых им ячеек. И я не понимаю, причём здесь имена файлов и кодовые страницы, когда речь о направлении показа текста. Что касается шрифтов, у меня никогда MTK ReMaker не показывал хаотичных точек. Аналогичная проблема на плейере решается использованием шрифтов, созданных в MTK FontCreator при помеченной опции "multiple of 4". |
Posted by: cax on 18-01-2006, 15:52 |
NewAge раскололся: он использовал ZWAD2410.BIN |
Posted by: Rvs on 18-01-2006, 16:08 |
cax Мы наверно о разных вещах говорим!!! В группах на yahoo тему по замене ARM, уже как месяц мусолят, там даже и файл с описанием Ati2 выложил, заменил уже с пяток ARM-ов, замена проходит, менял на прошивке от NA. ARM-ы брал с других аппаратов причём даже с DRAM больше чем у моего Xoro. Аппарат запускался и работал, да есть немного не стыковки (15-20%) с 8032, поэтому и спрашивал по поводу обработчиков функций, что-бы под строить под новый ARM!!! На мой взгляд найти процедуру и вставить к себе можно, но стоит игра свеч, проще всё таки ARM, по богаче прикрутить...!!! А про имена файлов спрашивал как предположения, сравнил твою прошивку с оригинальной, (то что первое бросилось в глаза) увидел смену шрифтов, и модифицированный ARM. Сейчас привинчу к своему и хотел знать чего ждать от изменений в ARM-е и цель изменений!!! А шрифты в прошивке от http://newage.mpeg4-players.info/firmwares/xoro/hsd400pro/NAv2/NAv2.html (http://newage.mpeg4-players.info/firmwares/xoro/hsd400pro/NAv2/NAv2.html Font1, Font2, Font3 в ней измененный. Глянь если не тяжело!!! Факт в том что в итоге надписи на экране нормальные. |
Posted by: ivani4 on 18-01-2006, 18:22 | ||
|
Posted by: moroz on 18-01-2006, 20:34 |
cax, не волнуйся, напишу я функцию. Может быть даже сегодня. Это проще чем кажется. А вот как ты ее будешь использовать - вот в чем вопрос! |
Posted by: moroz on 18-01-2006, 21:16 |
...и даже еще проще .text:00008174 Reverse; CODE XREF: .text:0000819Ep .text:00008174 00 B5 PUSH {LR}; Push registers .text:00008176 07 4B LDR R3, =0x12345678; Load from Memory .text:00008178 07 48 LDR R0, =0x1234567A; Load from Memory .text:0000817A 5B 78 LDRB R3, [R3,#1]; Load from Memory .text:0000817C 19 18 ADD R1, R3, R0; Rd = Op1 + Op2 .text:0000817E 05 E0 B loc_818C; Branch .text:00008180 ; ___________________________________________________________________________ .text:00008180 .text:00008180 loc_8180; CODE XREF: .text:0000818Ej .text:00008180 02 78 LDRB R2, [R0]; Load from Memory .text:00008182 0B 78 LDRB R3, [R1]; Load from Memory .text:00008184 03 70 STRB R3, [R0]; Store to Memory .text:00008186 0A 70 STRB R2, [R1]; Store to Memory .text:00008188 01 30 ADD R0, #1; Rd = Op1 + Op2 .text:0000818A 01 39 SUB R1, #1; Rd = Op1 - Op2 .text:0000818C .text:0000818C loc_818C; CODE XREF: .text:0000817Ej .text:0000818C 88 42 CMP R0, R1; Set cond. codes on Op1 - Op2 .text:0000818E F7 D3 BCC loc_8180; Branch .text:00008190 00 BD POP {PC}; Pop registers .text:00008190 ; ___________________________________________________________________________ .text:00008192 00 00 ALIGN 4 .text:00008194 78 56 34 12 _d DCD 0x12345678; DATA XREF: .text:00008176r .text:00008198 7A 56 34 12 dword_8198 DCD 0x1234567A; DATA XREF: .text:00008178r **************************************************** А вот последовательность: 00 B5 07 4B 07 48 5B 78 19 18 05 E0 02 78 0B 78 03 70 0A 70 01 30 01 39 88 42 F7 D3 00 BD 00 00 78 56 34 12 7A 56 34 12 Понятно, вместо 0х12345678 - адрес субтитров |
Posted by: cax on 18-01-2006, 23:57 | ||||||
|
Posted by: cax on 19-01-2006, 00:01 | ||
И ещё я хочу найти упомянутую прошивку от Апекс 2410. |
Posted by: moroz on 19-01-2006, 00:36 |
А черт, только сейчас обратил внимание... Зачем подпрограмма? Длина лежит во втором байте. Надо только уточнить - включает она ноль или нет. Наверное да. Если это так то у меня баг, ноль перескочит в начало строки. Завтра вечером исправлю. |
Posted by: moroz on 19-01-2006, 07:54 |
cax, колись, как собираешься определять что выбран ивритский фонт? Ведь есть же у тебя какя-то идея, иначе бы ты не начинал. |
Posted by: cax on 19-01-2006, 10:01 |
Ну, где-то на yahoo этот вопрос пробегал, да и я собирался подглядеть у NewAge, для того и ищу прошивку для сравнения... А весь буфер переворачивать нельзя - только текущую строку, т.е. до ближайшего 0x0D/0x0A или (если строка последняя) - до 0. Поэтому сперва нужно найти конец строки (подобно тому, как это делается в SUB_SubtitleTextLineCount или SUB_CalcTextLineWidth) и только потом переворачивать... |
Posted by: Rvs on 19-01-2006, 10:25 |
cax Ок!!! Замечания учёл!!! Если ты про файл ZWAD2410.BIN, то у меня он есть, правда как прошивка к ямаде!!! Могу кинуть!!! Я её уже адаптировал к Xoro, работает нормально, правда CP1251, не понимает!!! |
Posted by: moroz on 19-01-2006, 11:29 | ||
А, дошло. Вот как бывает, когда второпях. Исправим. cax, сколько у нас свободного места? А то у меня запланированы работы по улучшению переворота, вплоть до достижения совершенства. |
Posted by: cax on 19-01-2006, 13:39 |
По поводу прочесть из АРМ значение, заданное в меню - читать здесь: http://groups.yahoo.com/group/mt13x9/message/6676 (http://groups.yahoo.com/group/mt13x9/message/6676 Осталось только понять, о каком загадочном nnnn там говорится. Свободного места есть 0x128 байт, часть я занял под конверсию из юникода, осталось 0xE3 байт. |
Posted by: cax on 19-01-2006, 14:38 | ||
|
Posted by: wallfire on 19-01-2006, 16:12 | ||
есть предложение заменить китайский шрифт на ср1251 и использовать его. |
Posted by: cax on 19-01-2006, 17:30 |
wallfire, решений два: либо определить для чего используются шрифты, идущие после шрифта для имён, и везде где надо подменить номер на новый, который изменится после замены; либо перенести сам шрифт для имён файлов и, соответственно, везде где надо подменить его номер... Кое-что из этого описано у меня, кое-что в недавно опубликованной на mt13x9 инструкции, но в общем случае - задача нетривиальная. В ближайшие месяц-два я вряд ли найду время взглянуть, извини. |
Posted by: aleshin on 19-01-2006, 17:59 |
несколько более глубоких вопросов: 1) как устранить (уменьшить) паузу между треками при проигрывании mp3 (от 3 до 5 секунд),когда привод встает и вновь раскручивается 2)как увеличить диапазон регулировки громкости или это у меня на shinco железная проблема (звук до конца не убавляется - у всех шинок так) 3)как сделать доступной регулировку цветности (её нет) 4)в довесок - не подскажете код кнопки eject уважаемые гуру, поделитесь пожалуйста, если у кого есть какая-то информация , на яху достучатся не могу. |
Posted by: cax on 19-01-2006, 19:56 |
Если вопросы ко мне - то я не знаю ответа ни на один из них. Проблема номер 1, на мой взгляд, вообще неустранима, т.к. открытие файла с компакта берёт время, и судя по твоему описанию происходит каждый раз с самого начала, без кэширования. Проблемы 2 и 3 надо решать пультом от телевизора. |
Posted by: aleshin on 19-01-2006, 20:13 |
wallfire у меня он шел первым номером, и ничего все срослось. А ты в 8032 тоже посмотри и исправь. У меня после правки ARM тоже стали прочерки, а после правки 8032 все стало нормально. Правда последние цифры в двух из трех последовательностей были другими. ROM:00015EEB 94 20 subb A, #0x20 ROM:00015EED 40 06 jc ROM_5EF5 ROM:00015EEF E0 movx A, @DPTR ROM:00015EF0 D3 setb C ROM:00015EF1 94 7E subb A, #0x7E ROM:00015EF3 40 10 jc ROM_5F05 А именно вместо 10 были 06 и 05 если не ошибаюсь, но в целом инструкция права от и до. Еще заменил один двойной неиспользуемый шрифт так как места шрифтов сместились на один вниз после замены на cp1251 и все встало на свои места. |
Posted by: aleshin on 19-01-2006, 20:23 |
cax отвечаю 1)привод то зачем в паузах останавливается, ведь если принудить перейти его на след.трек он просто перепозиционирует головку и не делает такой паузы (практически мгновенно начинает воспроизводить) 2)у меня активная акустика 5.1 без ДУ (бралось не под данный аппарат , но меня более чем устраивает 3) в RGB режиме телевизор регулировать цвет не в состоянии, а качество полного скарта терять не хочется |
Posted by: cax on 19-01-2006, 22:48 | ||
|
Posted by: moroz on 20-01-2006, 00:36 |
Вот, поправил. Теперь переворачивает построчно. К моему ужасу рутина (вернее теперь уже три рутины) разрослась аж до 0х60 байт, а ведь еще и не начал ее "окультуривать". Посмотрим как пойдет дальше. |
Posted by: cax on 20-01-2006, 09:45 |
Какая-то беда с аттачем - не открывается почему-то... |
Posted by: moroz on 20-01-2006, 12:52 |
Действительно... Господа модераторы, ау! Помогите, пожалуйста. А в принципе это промежуточная версия, не страшно. Это я так, в рамках "квартального отчета" В любом случае, вот она в бинарном виде: 00 B5 03 78 0D 2B 03 D9 01 30 03 78 0D 2B FB D8 00 BD 00 00 00 B5 88 42 07 D2 02 78 0B 78 03 70 0A 70 01 30 01 39 88 42 F7 D3 00 BD 30 B5 0B 4D 2A 78 13 06 2C 1C 1B 0E 01 E0 01 34 23 78 0C 2B FB D9 20 1C FF F7 DC FF 05 1C 69 1E 20 1C FF F7 E1 FF 2A 78 00 2A EC D1 30 BD 00 00 78 56 34 12 |
Posted by: Rvs on 20-01-2006, 13:20 |
cax Если не тяжело ссылку на инструкцию на mt13x9??? Поискал там, но ничего не нашел. Тоже есть проблемка по смене шрифтов. Имею: Font 1, Font 2, Font 3 тут в кучу все кодовые таблицы (1250-1251)- меню, браузер. Font 4 - Иконки Font 5, Font 6, Font 7 - опять в кучу 1250-1251 - субтитры Хочу: Font 1 (1251) - меню, браузер. Font 2 - Иконки Font 3 (1251) - субтитры У кого какие идеи??? |
Posted by: Rvs on 20-01-2006, 14:28 |
сах В твоей ARM процедуре UnicodeToCP из описания, где задаётся номер шрифта??? |
Posted by: cax on 20-01-2006, 17:23 |
Rvs, его там нет и быть не может. Процедура всего лишь переводит 2-байтовый код символа в однобайтовый. |
Posted by: Rvs on 20-01-2006, 17:53 | ||
мда... лопухнулся . Я основывался на документе от NewAge "MPEG4 Subtitle Display in ARM (RISC) Code", там у него Font выбирается. LDRB R3, [R0,#1] ; FontID ADD R0, R5, #0 ADD R2, SP, #0x30+var_2C BL OSD_DisplayCharacter Думаю что и в процедуре UnicodeToCP от NewAge тоже выбирается, она сложнее. А как же всё таки найти номер шрифта???
На мой взгляд nnnn выдаёт утилита от NewAgе, примерно вот так: MTK (ARM Codes).bin Version: 05.00.05.07 ADDRESS_1 = 0x0376C400 ADDRESS_2 = 0x0376C800 SHARED MEMORY = 0x0376CC00 CDTEXT BUFFER = 0x0376EC00 ADDRESS_3 = 0x03770000 Additional info (could be wrong): SACD : NO DVD-AUDIO : NO DRAM Size : 8 MB |
Posted by: moroz on 20-01-2006, 22:18 |
Итак, есть много хороших новостей и одна плохая. Хорошие новости: код готов и более-менее отлажен (на РС). Алгоритм учитывает английские вставки и перевернутую пунктуацию в начале и конце строки. Проверен на нескольких файлах субтитров - вроде работает неплохо, за исключением трудных случаев типа скобок и т.п. Плохая новость - как можно видеть, код разросся до 0х119 байт. ***************************************** Болтом отмечена точка входа 00 B5 D0 23 00 06 1B 06 02 0E C0 18 00 0E 09 28 05 D9 13 1C 41 3B 1B 06 1B 0E 19 2B 01 D8 01 20 00 BD 13 1C 61 3B 1B 06 1B 0E 19 2B F7 D9 13 1C 20 33 1B 06 1B 0E 1A 2B F1 D9 00 20 F0 E7 00 00 00 B5 88 42 07 D2 02 78 0B 78 03 70 0A 70 01 30 01 39 88 42 F7 D3 00 BD F0 B5 47 46 80 B4 00 23 2D 4E 98 46 34 78 20 1C FF F7 CA FF 00 28 3D D0 35 1C 0D 2C 3C D9 01 35 28 78 0D 28 FB D8 03 06 00 2B 04 D1 01 23 98 46 01 E0 01 3D 28 78 00 06 00 0E FF F7 B5 FF 00 28 F7 D0 30 1C 29 1C FF F7 CF FF AE 42 19 D2 34 78 20 06 00 28 29 DB 00 0E FF F7 A6 FF 00 28 24 D0 34 1C AC 42 06 D8 23 78 18 06 00 28 16 DB 01 34 AC 42 F8 D9 78 1C 61 1E 66 1C FF F7 B5 FF AE 42 E5 D3 2B 78 00 2B 02 D0 43 46 00 2B BE D0 08 BC 98 46 F0 BD 01 36 B9 E7 30 78 C4 E7 00 0E FF F7 83 FF 00 28 E6 D1 01 34 E2 E7 20 06 00 0E FF F7 7B FF 00 28 00 D0 37 1C 01 36 AE 42 D0 D8 C6 E7 78 56 34 12 |
Posted by: cax on 21-01-2006, 00:21 |
moroz: Я заранее извиняюсь, если задерживаю - ибо у меня сейчас почти нет времени на работу с прошивками, но вскоре я надеюсь заняться встраиванием, проверками и т.д. Восхищён твоей скоростью написания кода, с удовольствием перейму технологию - но позже. |
Posted by: cax on 21-01-2006, 00:23 |
Rvs: все известные мне номера шрифтов задаются в коде 8032, не в АРМ. Взгляни для начала на встроенный в MTK ReMaker патч субтитров - там задаётся номер шрифта для них... |
Posted by: moroz on 21-01-2006, 01:27 |
Боже упаси, спешки нет. А технология настолько тривиальная, что ты наверно будешь разочарован |
Posted by: ivani4 on 21-01-2006, 12:45 | ||
cax
|
Posted by: aleshin on 21-01-2006, 18:28 |
Поделитесь если у кого есть mtkFilenameLenPatcher_ом, плиз. qwer@ufanet.ru. Заранее благодарен |
Posted by: cax on 21-01-2006, 21:47 | ||||
|
Posted by: moroz on 22-01-2006, 14:59 | ||||
|
Posted by: cax on 22-01-2006, 15:15 |
moroz: До недавнего времени я как раз не знал адрес начала общей памяти... но мне уже разъяснили на mt13x9: он идёт почти сразу после т.н. "зоны сообщений об ошибке C++" (искать, например, по стрингу "library"): сперва там идут 4 байта "00 00 00 06", а затем сразу адрес. Так что это я для себя уже уяснил. Что касается офсета - то мы его знаем: в строке меню 6-е число. (напоминаю, что адрес EEPROM для использования из кода 8032 при помощи PREF_GetChar - 5-е число) Вот пример (пометил болдом 6-е): >> ================================================================== >> 3. No Pic. | Screen Saver | Screen Saver >> 0008 FFFF 0099 00AB 0007 0020 0001 0000 FF2F51 07C9 - ROM:2F57 >> => 1. On | Screen Saver On | On >> 0150 00E7 0150 00 - ROM:2F43 >> 2. Off | Screen Saver Off | Off >> 0151 00E8 0151 01 - ROM:2F4A >> =================================================================== Я сегодня игрался с этим и почти уже научился отлавливать установки меню из кода АРМ. Как научусь окончательно - дам знать. |
Posted by: aleshin on 23-01-2006, 14:17 |
сах Довожу прошивку до идеала (для себя). Сделал длинные имена файлов, обрезку, широкий браузер, но при воспроизведении mp3 и wma, когда начинается прокрутка имени файла в правой части строки остаются "артефакты" (т.е. остатки) букв, в далнейшем прокрутка идет только в левой части строки, как и была раньше - короткая прокрутка. Не подскажешь как с этим бороться, можно ли увеличить длину прокручиваемой области или вообще отключить прокрутку имени (длина отображаемой части меня и так устраивает). Можно конечно на это не заморачиваться, но ведь победа так близка!!!!! |
Posted by: cax on 23-01-2006, 15:28 |
aleshin: Извини, но у меня ни на одном из трёх (разных) плейеров при воспроизведении ничего не прокручивается, так что я даже не знаю как это выглядит. Помочь не смогу. |
Posted by: aleshin on 23-01-2006, 16:03 |
сах Ну тогда и заморачиваться не буду. Выглядит прокрутка как бегущая строка, которая сдвигается на один символ примерно раз в секунду. Прошивка от shinco dvp-8811 (dvp-8830). |
Posted by: cax on 23-01-2006, 16:17 | ||
Короче, нужна помощь с интеграцией. Мы уже в двух шагах от цели ! Пы.Сы. Если выкинуть процедуру перевода юникодных букв в именах файлов, то твоя процедура с трудом помещается в свободном месте АРМ. Видимо, мне придётся научиться его "расширять", как это делают мастера в группе Яху. |
Posted by: moroz on 23-01-2006, 18:39 | ||
Aргументов нет. Все что нужно - подставить вместо 12345678 (последнее слово) адрес субтитра + 2, т.е. начало самого текста. Как найти адрес субтитров описано в статье Нью Эйджа. Если некогда возиться - я могу помочь, у меня уже рука набита. Насчет дополнительного свободного места - было бы очень кстати. Я нечеловеческими усилиями сократил размер кода до 0хF0, но этого все равно недостаточно.
|
Posted by: cax on 23-01-2006, 19:04 |
moroz: Идея просмотра в рантайме у меня простая донельзя: при показе имени файла с буквами с кодом > 250 вместо самой буквы показывать любой другой байт, взятый из памяти или ещё откуда. С этим проблем нет, я именно так дебагировал вычитку значений меню. А насчёт подстановки адреса - подскажи как найти адрес субтитра, а то в статье Нью Эйджа я до конца не разобрался. Вызывать твой код собираюсь где-то в начале SUB_Mpeg4SubtitleText_Display Мне достаточно войти в точку входа твоей подпрограммы командой BL, и она сама вернёт меня назад по окончании, верно ? Я бы ещё перед возвращением хотел выполнить те 4 байта команд, которые затираются вышеупомянутой командой BL. Если это нельзя встроить перед возвращением - напишу в обходную (но это съест ещё несколько байт). |
Posted by: moroz on 23-01-2006, 21:12 | ||||
Цитирую:
|
Posted by: ivani4 on 24-01-2006, 09:47 |
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 by: cax on 24-01-2006, 10:27 |
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 by: ivani4 on 24-01-2006, 10:47 |
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 Но это не помогло Как нужно было сделать?????????????????? |
Posted by: cax on 24-01-2006, 13:01 |
1) аттачи почему-то не работают 2) Каким образом это похоже ? Там должно быть "setb", разве нет ? 3) иногда шрифт субтитров задаётся совсем в другом месте - например, в ивритизированных прошивках с переключателем шрифта для Апекс 2102 и 2400. Об этом есть у меня в инстру... ну, ты понял. |
Posted by: ivani4 on 24-01-2006, 13:07 |
сах,нет вроде бы setb.А как и что искать в другом месте я не знаю.Если чувствуешьчто это сложно,то давай оставим это дело.Не удобно тебя напрягать. |
Posted by: cax on 24-01-2006, 14:23 |
Ты прав, давай пока оставим. В качестве альтернативного решения - добавить новый шрифт для имён файлов под номерами 6-7 и поменять его номер там, где он задаётся, но это тоже на пальцах не рассказать... |
Posted by: cax on 24-01-2006, 14:28 | ||||
Странно, почему ты пришёл к такому выводу ? Что же тогда означает офсет 0xEC0 с комментарием "буфер субтитров" ? И откуда тебе известно про 2 байта, в которых хранится длина буфера (или длина текущего субтитра) ? |
Posted by: ivani4 on 24-01-2006, 14:34 |
cax ОК.Оставляем это дело.И я по прежнему жду когда ты освободишься что бы рассмотреть баг 60. |
Posted by: moroz on 24-01-2006, 15:38 |
Исключительно на основе анализа кода. Ошибка крайне маловероята. Если нужны доказательства и цитаты - предоставлю, но это займет какое-то время. |
Posted by: moroz on 24-01-2006, 22:31 |
Ну вот хотя-бы это: Пресловутый пример ограничения субтитра по длине (бывш. баг 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 by: ivani4 on 24-01-2006, 23:06 |
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 Никак не могу сообразить как это ищут?Не знаю с чего начать.Или без знаний ассемблера ничего нельзя сделать? |
Posted by: moroz on 25-01-2006, 08:09 |
сах Поправка. В статье Нью эйджа действительно субтитр находится по офсету ЕС0 в общей памяти. Приношу извинения. Но в АПЕКСе используется прямая ссылка. Короче - самое точное определение: в функции SUB_ClearMpeg4SubtitleParams надо смотреть куда прописываются нули - там и субтитр. ivani4 Боюсь что даже со знанием ассемблера сложновато по такой инструкции (сах - не в обиду). Например если вместо регистра R0 используется R6, как в моем примере, то вся последовательность изменится. Нужно чуть-чуть знать ассемблер и, что хуже, английский, и изучить статью Нью эйджа. |
Posted by: ivani4 on 25-01-2006, 09:44 |
moroz Тем не менее сах считает возможным вдолбить мне это.Но у меня уже нет сил ждать когда он освободится.Я хочу пока сделать,как мне кажется,простую вещь:взять прошивку расматриваемую в инструкции и увидеть в иде то что сах уже нашёл: ROM:0000E884 3C 28 CMP R0, #0x3C ROM:0000E886 01 D9 BLS loc_E88C ROM:0000E888 3C 20 MOV R0, #0x3C Хотя бы это ты можешь мне объяснить? |
Posted by: moroz on 25-01-2006, 10:55 |
Так ищи последовательность, ты же это уже делал: 3C 28 01 D9 3C 20 |
Posted by: ivani4 on 25-01-2006, 11:19 |
moroz Нашёл такую последовательность.А как увидеть такое: ROM:0000E884 3C 28 CMP R0, #0x3C ROM:0000E886 01 D9 BLS loc_E88C ROM:0000E888 3C 20 MOV R0, #0x3C ????????????????????????????????????????????????????????????? |
Posted by: cax on 25-01-2006, 12:42 | ||
Но, как известно, объясняя другим начинаешь сам лучше понимать, так что есть шанс, что я рожу что-то более внятное |
Posted by: moroz on 25-01-2006, 23:16 |
cax, все ли понятно с адресом субтитров? Нужна ли еще какая-то помощь в интеграции? ivani4 По-моему ты сам уже ответил - использовать IDA |
Posted by: ivani4 on 25-01-2006, 23:29 |
moroz.Пойми,я никогда ранее не пользовался идой.Пытаюсь,пока не очень получается.Сегодня удалось разобратся как ищут hex последовательность.Но я никак не могу понять как увидеть информацию в таком виде: ROM:0000E884 3C 28 CMP R0, #0x3C ROM:0000E886 01 D9 BLS loc_E88C ROM:0000E888 3C 20 MOV R0, #0x3C |
Posted by: cax on 26-01-2006, 00:19 |
moroz, спасибо, пока всё ясно. Надеюсь скоро всё проверить. Дам знать. |
Posted by: cax on 26-01-2006, 00:21 | ||
|
Posted by: ivani4 on 26-01-2006, 08:50 | ||
cax.Точно такую цепочку я нигде не нашёл.Была поставлена задача :
Или ты подразумевал поиск такой цепочки в моём двд ? |
Posted by: cax on 26-01-2006, 19:11 | ||
Не хватает совсем чуть-чуть на обвязку... Давай свой самый короткий код, буду тестировать, а с местом потом посмотрим что делать. |
Posted by: moroz on 26-01-2006, 21:21 |
Последнее достижение - длина Е8 Бонус: место для вызова функции уже подготовлено (отмечено красным) 00 B5 00 06 00 0E 2F 28 01 D9 3A 28 0B D3 40 28 01 D9 5B 28 07 D3 60 28 01 D9 7B 28 03 D3 DF 28 03 D9 FB 28 01 D2 01 20 00 E0 00 20 00 BD 00 00 00 B5 88 42 07 D2 02 78 0B 78 03 70 0A 70 01 30 01 39 88 42 F7 D3 00 BD F0 B5 26 4C 00 27 00 E0 01 34 20 78 FF F7 D4 FF 00 28 F9 D0 25 1C 23 78 0D 2B 03 D9 01 35 2B 78 0D 2B FB D8 2B 78 00 2B 02 D1 01 27 00 E0 01 3D 28 78 FF F7 C1 FF 00 28 F9 D0 20 1C 29 1C FF F7 D3 FF AC 42 22 D8 08 E0 20 78 FF F7 B5 FF 00 28 00 D0 26 1C 01 34 AC 42 08 D8 20 78 80 28 F3 D2 FF F7 AA FF 00 28 EF D0 00 E0 01 34 AC 42 06 D8 20 78 80 28 F9 D3 FF F7 9F FF 00 28 F5 D0 70 1C 61 1E FF F7 B1 FF 01 34 AC 42 E6 D9 2B 78 00 2B 01 D0 00 2F B9 D0 XX XX XX XX F0 BD 78 56 34 12 |
Posted by: cax on 26-01-2006, 22:07 |
moroz, гениально ! Я как-то занимался оптимизацией ассемблерного кода, и по себе знаю какая это заморочка. Теперь о моей части. Код проверки выбора в меню выглядит примерно так (вместо R0 можно использовать любой другой регистр): LDR R0, =sharedMemAdr (этот адрес уже находится неподалёку от места, где лежит этот код - что есть хорошо) ADD R0, #offset_of_menu_choice LDRB R0, [R0] CMP R0, #value BNE dont_reverse_and_exit На всё про всё - 5*2=10 байт. Вся эта радость, если будет висеть снаружи, потребует свой PUSH/POP и ещё команду перехода внутрь кода реверсирования. Не будет ли так любезен глубокоуважаемый moroz красиво встроить эти 5 команд или их аналог в свой код ? Похоже, что в конечном итоге мы уложимся в отведённое место. |
Posted by: cax on 26-01-2006, 22:29 |
moroz: И ещё: судя по твоим листингам, похоже я что-то не так делаю, ибо у меня подпрограммы не опознаются (SUB_GetSubLength, SUB_ClearMpeg4SubtitleParams и т.д.) Разве нужно что-то делать в IDA кроме прогона MT1389_ARM_v1.6.idc ? |
Posted by: cax on 26-01-2006, 23:01 | ||
ROM:0000F5C8 loc_F5C8 ROM:0000F5C8 02 98 LDR R0, [SP,#0x30+var_28] ROM:0000F5CA 5C 28 CMP R0, #0x5C ; '\' ROM:0000F5CC 01 D9 BLS loc_F5D2 ROM:0000F5CE 5C 20 MOV R0, #0x5C ; '\' ROM:0000F5D0 02 90 STR R0, [SP,#0x30+var_28] ROM:0000F5D2 ROM:0000F5D2 loc_F5D2 ROM:0000F5D2 02 98 LDR R0, [SP,#0x30+var_28] ROM:0000F5D4 00 24 MOV R4, #0 ROM:0000F5D6 34 54 STRB R4, [R6,R0] ROM:0000F5D8 30 1C ADD R0, R6, #0 и так далее. Хоть убей, не могу найти =Subtitle. |
Posted by: moroz on 26-01-2006, 23:18 | ||
cax, спасибо на добром слове, но хочу пояснить: я ассемблерный код не пишу. Мне даже страшно подумать, сколько времени заняло бы написать такое на ассемблере, даже если бы я его хорошо знал. Для этих дел люди придумали компайлер - вот его-то я и использую. Я предупреждал что ты будешь разочарован. Насчет кода проверки - постараюсь надурить компайлер так чтобы он изготовил желаемый код, но 10 байт не гарантирую. *********************
|
Posted by: moroz on 26-01-2006, 23:22 |
Сколько дать offset_of_menu_choice? |
Posted by: cax on 26-01-2006, 23:23 | ||
Я его (SUB_ClearMpeg4SubtitleParams) не нашёл. Не исключено, что у меня его и нет. На всякий случай: в данный момент работа идёт над прошивкой к Apex JDP707 (YPD701D.BIN) offset_of_menu_choice (1 байт) - какой угодно. Я буду его потом менять сам под конкретный плейер. То же касается и загрузки адреса общей памяти - байткод я буду вычислять сам (один байт - расстояние от команды до числа, делённое на 4, второй - код команды загрузки)
Я уже давно догадался, что ты с оптимизациями кросс-компилятора играешься. А для тестирования компилируешь обычным компилятором под свой PC, верно ? |
Posted by: moroz on 26-01-2006, 23:36 |
Абсолютно Заняло, кстати, 8 байт. Оптимайзер, однако. 00 B5 00 06 00 0E 2F 28 01 D9 3A 28 0B D3 40 28 01 D9 5B 28 07 D3 60 28 01 D9 7B 28 03 D3 DF 28 03 D9 FB 28 01 D2 01 20 00 E0 00 20 00 BD 00 00 00 B5 88 42 07 D2 02 78 0B 78 03 70 0A 70 01 30 01 39 88 42 F7 D3 00 BD F0 B5 28 4C 00 27 28 4B 9B 7A 01 2B 49 D1 00 E0 01 34 20 78 FF F7 D0 FF 00 28 F9 D0 25 1C 23 78 0D 2B 03 D9 01 35 2B 78 0D 2B FB D8 2B 78 00 2B 02 D1 01 27 00 E0 01 3D 28 78 FF F7 BD FF 00 28 F9 D0 20 1C 29 1C FF F7 CF FF AC 42 22 D8 08 E0 20 78 FF F7 B1 FF 00 28 00 D0 26 1C 01 34 AC 42 08 D8 20 78 80 28 F3 D2 FF F7 A6 FF 00 28 EF D0 00 E0 01 34 AC 42 06 D8 20 78 80 28 F9 D3 FF F7 9B FF 00 28 F5 D0 70 1C 61 1E FF F7 AD FF 01 34 AC 42 E6 D9 2B 78 00 2B 01 D0 00 2F B9 D0 FF F7 85 FF F0 BD 78 56 34 12 |
Posted by: cax on 26-01-2006, 23:47 |
Эээээ... зря я тебе сказал "любое число"... LDRB R3, [R3,#0xA] - это, конечно, офигительно, но если там будет что-то поболее 0xA, оно точно закодируется 2-мя байтами, или в этом виде адресации есть ограничение на величину офсета ? Пы.Сы. Если не буду долго отвечать - значит уснул и продолжу, скорее всего, через день-два (или более). |
Posted by: moroz on 27-01-2006, 00:14 |
Ограничение на длину, конечно, есть. Надеюсь нам хватит. А то придется заплатить еще двумя байтами. Спокойной ночи. |
Posted by: moroz on 27-01-2006, 01:46 |
Aдреса мне найти не удалось. Зато вот такая идея: вот наше любимое место ROM:0000F5C8 LDR R0, [SP,#0x30+var_28] ROM:0000F5CA CMP R0, #0x5C ; '\' ROM:0000F5CC BLS loc_F5D2 ROM:0000F5CE MOV R0, #0x5C ; '\' ROM:0000F5D0 STR R0, [SP,#0x30+var_28] ROM:0000F5D2 ROM:0000F5D2 loc_F5D2 ; CODE XREF: SUB_Mpeg4SubtitleText_Display+7Ej ROM:0000F5D2 LDR R0, [SP,#0x30+var_28] ROM:0000F5D4 MOV R4, #0 ROM:0000F5D6 STRB R4, [R6,R0] ROM:0000F5D8 ADD R0, R6, #0 ROM:0000F5DA BL sub_F442 перед вызовом sub_F442 искомый адрес как раз в нулевом регистре. Вместо нее вызвать мой код, а я перед вызовом sub_F442 позабочусь R0 восстановить. Должно сработать. Только вот не знаю, когда теперь дойдут руки, постараюсь не задерживать. |
Posted by: moroz on 27-01-2006, 16:20 |
Дело все больше запутывается, надеюсь что нигде не напорол. Вызывать вместо sub_F442 Максимальный offset_of_menu_choice - 0x1F. Если больше - добавляется двухбайтная команда. 00 B5 00 06 00 0E 2F 28 01 D9 3A 28 0B D3 40 28 01 D9 5B 28 07 D3 60 28 01 D9 7B 28 03 D3 DF 28 03 D9 FB 28 01 D2 01 20 00 E0 00 20 00 BD 00 00 00 B5 88 42 07 D2 02 78 0B 78 03 70 0A 70 01 30 01 39 88 42 F7 D3 00 BD F0 B5 47 46 80 B4 07 1C 84 1C 00 23 98 46 2A 4B 1B 68 DB 7F 01 2B 4C D1 00 E0 01 34 20 78 FF F7 CB FF 00 28 F9 D0 25 1C 23 78 0D 2B 03 D9 01 35 2B 78 0D 2B FB D8 2B 78 00 2B 03 D1 01 23 98 46 00 E0 01 3D 28 78 FF F7 B7 FF 00 28 F9 D0 20 1C 29 1C FF F7 C9 FF AC 42 22 D8 08 E0 20 78 FF F7 AB FF 00 28 00 D0 26 1C 01 34 AC 42 08 D8 20 78 80 28 F3 D2 FF F7 A0 FF 00 28 EF D0 00 E0 01 34 AC 42 06 D8 20 78 80 28 F9 D3 FF F7 95 FF 00 28 F5 D0 70 1C 61 1E FF F7 A7 FF 01 34 AC 42 E6 D9 2B 78 00 2B 02 D0 43 46 00 2B B7 D0 38 1C FF F7 81 FF 08 BC 98 46 F0 BD |
Posted by: cax on 28-01-2006, 18:00 |
Запутывается - не то слово. Первый запуск оказался неудачным. Никакой кабель не понадобился - ведь зависает оно только при попытке показа субтитров, но сдаётся мне, что мы не можем вызывать подпрограмму sub_F442 сами, ибо где-то внутри неё идёт работа со стеком, а мы его подвинули своим PUSH-ем. Давай попробуем ещё разок, но на этот раз: 1) пусть вместо sub_F442 мы затрём идущие перед ним команды F5D6 34 54 STRB R4, [R6,R0] F5D8 30 1C ADD R0, R6, #0 а при входе в подпрограмму первым делом их выполним, после чего уже можно сделать PUSH {R0-R7,LR} Заодно решится проблема с переходом на заключительный POP {R0-R7,PC} (да, есть такой переход) вместо перехода на продублированную затёртую команду (которые теперь будут идти вначале твоего кода) 2) Будь добр, сделай проверку меню на 2 байта длиннее, но чтобы я мог подставить любой байт, а не только до 0x1F Заранее благодарю. |
Posted by: moroz on 28-01-2006, 20:13 | ||
1. Она сама туда "пушнула" (наш случай) 2. Вызывающая функция сунула туда свои аргументы - не наш случай, т.к. перед вызовом sub_F442 пушей нет. Таким образом, работа со стеком локализована в пределах каждой функции. Баг состоит в другом, сейчас я это заметил. sub_F442 возвращает значение в R0, а я его бесстыдно затираю своим. Виноват, исправлюсь. |
Posted by: cax on 28-01-2006, 20:26 |
И всё же, сделай, пожалуйста, как я попросил - 2 команды вначале (даже если мне померещилось, что в недрах вызова подпрограммы идёт снятие значений со стека с индексом, и что выход реализован не совсем корректно) |
Posted by: moroz on 28-01-2006, 21:09 |
Не могу. Компайлер ведь делает пуш самостоятельно, первым делом при входе в функцию. Давай я все-таки сначала починю баг, а? |
Posted by: cax on 28-01-2006, 22:05 |
Как скажешь. |
Posted by: moroz on 28-01-2006, 22:51 |
Попутно нашел еще один баг - при неподходящем значении меню выход происходил без вызова рутины. Может в этом было дело? 00 B5 00 06 00 0E 2F 28 01 D9 3A 28 0B D3 40 28 01 D9 5B 28 07 D3 60 28 01 D9 7B 28 03 D3 DF 28 03 D9 FB 28 01 D2 01 20 00 E0 00 20 00 BD 00 00 00 B5 88 42 07 D2 02 78 0B 78 03 70 0A 70 01 30 01 39 88 42 F7 D3 00 BD F0 B5 47 46 80 B4 80 46 04 1C 00 27 29 4B 1B 68 FF 33 1B 78 01 2B 47 D1 00 E0 01 34 20 78 FF F7 CB FF 00 28 F9 D0 25 1C 23 78 0D 2B 03 D9 01 35 2B 78 0D 2B FB D8 2B 78 00 2B 02 D1 01 27 00 E0 01 3D 28 78 FF F7 B8 FF 00 28 F9 D0 20 1C 29 1C FF F7 CA FF AC 42 22 D8 08 E0 20 78 FF F7 AC FF 00 28 00 D0 26 1C 01 34 AC 42 08 D8 20 78 80 28 F3 D2 FF F7 A1 FF 00 28 EF D0 00 E0 01 34 AC 42 06 D8 20 78 80 28 F9 D3 FF F7 96 FF 00 28 F5 D0 70 1C 61 1E FF F7 A8 FF 01 34 AC 42 E6 D9 2B 78 00 2B 01 D0 00 2F B9 D0 40 46 FF F7 83 FF 08 BC 98 46 F0 BD |
Posted by: kisav on 30-01-2006, 04:24 |
Доброго времени суток. Я думаю что многим здесь на этой ветке это уже не интересно или не актуально но тем не менее... Несколько дней мучаюсь со своим плеером. Но русский он не показывает. Может, откликнется добрая душа и укажет где я ошибся. Пользовался материалом из этой ветки 2) ищем "41 18 10 39 C9 7B" (должен найтись 2 раза !) ---> В моем случае (254AE И 254Е2) и запоминаем адреса, где находится каждый "10 39 C9 7B" (позже мы будем менять каждый "10 39 C9 7B" на другие 4 байта). 3) ищем т.н. "сообщения С++ об ошибках" ---> В моем случае (29280), Искать нужно ТЕКСТОМ, и ты найдёшь примерно такие фразы: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Я запустил BCalc и сделал расчёты для тебя. 23В72: замени 10 39 C9 7B на 04 F0 31 F8 ---> В моем случае: 254AE: 10 39 C9 7B на 03 F0 E7 FE 23ВА6: замени 10 39 C9 7B на 04 F0 17 F8 ---> В моем случае: 254Е2: 10 39 C9 7B на 03 F0 CD FE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Вставил это по адресу 29280 10 39 01 B4 88 7B 04 28 C8 7B 10 D1 08 7C 04 28 C8 7B 03 D0 08 7C 00 28 C8 7B 08 D1 01 28 01 D1 A7 30 04 E0 51 28 01 D1 67 30 00 E0 B0 30 01 E0 00 00 00 00 F9 28 00 D9 F5 38 01 1C 01 BC 70 47 Дальше у меня не сходится с этим примером. У меня в родной прошивке 15 фонтов. Если я понял правилно то самый первый отвечает за OSD и замена его приводит к не правилному отображению OSD. В место пробела у меня появилось это -> @ После вышеуказаных процедур вместо русского одни "_" До были теже пробелы только в перемешку с цифрами. Могу сказать одно, ivani4-у сильно повезло с Маэстро На моем фтп есть оригинальная прошивка. ~ 2mb. (Слил через кабель). Она не поддерживает русский OSD и не отображает название русских имен файлов хотя в одном из фонтов я четко видел русские буквы. (Смотрел через remaker). Если интересно, то милости просим на мой фтп kisav.homeftp.net (\LG 511\Original\original_serial.bin) ftpuser/ftpuser |
Posted by: moroz on 30-01-2006, 07:58 |
cax, что слышно? Как я понимаю, результатов пока нет. Какие планы? |
Posted by: cax on 30-01-2006, 10:45 |
kisav: читай внимательнее - кроме АРМ надо также пропатчить и код 8032, и подчерки заменятся на буквы. Об этом писалось в этой самой теме. moroz: при проверке кода по неизвестной причине я убил 2 плейера. Один оживил сегодня ночью, второй, похоже, умер безвовратно. Слава богу, ребёнку есть на чём мультики смотреть. Дальнейшие эксперименты будут позже. |
Posted by: moroz on 30-01-2006, 11:18 |
Нихрена себе! Вот так код! "Безвозвратно" - в смысле даже через кабель не прошивается? Как же можно дальше эксперементировать? |
Posted by: moroz on 01-02-2006, 00:03 |
Несмотря на полное невежество в делах оживления плеера все-таки не утерпел и рискнул: приладил переворот иврита к прошивке саха к 2102 (без привязки к меню, только попробовать) и перепрошился. И что интересно - мне это сошло с рук! Что могу рассказать? Сам переворот работал нормально. Правда протестить как следует не удалось, т.к. увидеть субтитры удалось только в одном фильме (из 3-х). У меня на каждом CD по нескольку вариантов субтитров, и первым выбирался как раз заранее перевернутый вариант. Так в двух фильмах при переключении субтитры просто исчезли. Интересно, кто-то пользуется этой прошивкой для фильмов с субтитрами? Сплошное разочарование. сах, отсюда возник вопрос (я не вникал в это место в инструкции, заранее извиняюсь): умеем ли мы добавить выбор фонта в меню если его там раньше не было? Я клоню к тому чтобы взять старую прошивку к 2102, в которой нет этой болезни, и сделать ее двуязычной. |
Posted by: cax on 01-02-2006, 11:16 |
Вполне реально. Добавил же я выбор шрифта в такой древний плейер, как Hyundai servo 02.09. Идея несложная: прочесть в коде 8032 выбор языка в меню Subtitles, и по результатам сменить номер фонта в SUB_SetStyle. Места для добавок в 8032 - навалом. Второй шрифт залепляется вместо китайского. Следи, чтобы размер прошивки не вылез за 1 мегабайт. Для примера сравни прошивку для Юндая до и после изменений ( сперва надо натравить на оригинальную прошивку Subtitle Patch из MTK ReMakera, и лишь потом сравнивать) Сейчас у меня серьёзный завал со временем, так что помочь могу только советами. |
Posted by: cax on 01-02-2006, 11:19 | ||
А со старой прошивкой дла Апекса повозимся потом. Что скажешь ? |
Posted by: moroz on 01-02-2006, 19:48 |
Выложить прошивку - суть рекомендовать ее всем честным людям. Как я могу рекомендовать кому-то что-то, чем сам пользоваться не считаю возможным? Когда ты над ней работал и выкладывал, ты еще не знал про пенку с исчезновением субтитров. Но я-то уже знаю! Вообще мой вопрос был скорее "пристрелочный". Я не имел в виду что именно я буду это делать. А если и я, то видимо не скоро, ибо есть несколько причин, по которым не смогу взяться за дело прямо сейчас: 1. С 8082 я практически не знаком. Возьмет время пока освою. 2. Прежде чем я смогу вообще начать мне надо освоить технологию оживления. Плеер у меня один, а мультики так же обязательны как и тебе 3. При дальнейшем тестировании алгоритм переворота оказался далеко небезупречен. Придется с ним еще повозиться. 4. Со свободным временем у меня тоже напряженка, как и у всех. Так что наверно присоединюсь к ivani4: буду ждать пока ты станешь немного посвободнее, а тем временем буду потихоньку продвигаться самостоятельно. Надеюсь на дальнейшее плодотворное сотрудничество |
Posted by: cax on 01-02-2006, 20:05 |
Принимается - до появления более безупречного алгоритма. Что касается "выложить-рекомендовать" - такова прошивка от производителя, и мы лишь её улучшили. Когда будет готов более-менее окончательный вариант твоего кода, дай знать, прицепим к меню вместе (это немного работы и несложно). |
Posted by: ivani4 on 01-02-2006, 22:39 |
Я уже предлагал и поэтому боюсь показатся навязчивым,но я не испугаюсь установить в свой плеер любую вашу разработку для проверки.Это сохранит ваши двд.Если заломаете всё безвозвратно,то как мультики будете смотреть?Вот cax уже один свой плеер грохнул.Кстати,cax,смею напомнить что во втором своём письме я предлагал свою помощь в подобных случаях. А свой плеер я заломать не боюсь и буду рад содействовать. К сожалению это,наверное,единственное чем могу вам помочь.Да и как? Вы ведь даже почему то не захотели помочь мне освоить иду. И ещё ,может вам поможет,у меня есть оригинальная прошивка китайского двд в котором переворот иврита осуществлён по полной программе.Но в меню никаких функций нет. |
Posted by: moroz on 02-02-2006, 00:14 |
cax Лады. Но под твою ответственность |
Posted by: moroz on 02-02-2006, 00:38 |
ivani4, не обижайся, но я понятия не имею, как помочь тебе освоить ИДУ. Ведь там все на английском, или на ассемблере. Каждый ответ на твой вопрос лишь повлечет за собой десять новых. НО НЕ НАДО ПАНИКИ! Я не сидел сложа руки и нашел то что тебе нужно: http://www.cracklab.ru/download.php?action=get&n=Mzcw (http://www.cracklab.ru/download.php?action=get&n=Mzcw Это сборник практических руководств для хаккера, на русском языке. В том числе руководство по ИДЕ в десяти томах. Надеюсь, ты найдешь это полезным. Что касается твоего предложения - не подумай что твоей помощью пренебрегают. Просто отлаживаться по переписке - это иногда довольно затруднительно. Впрочем, буду иметь его в виду и при подходящей возможности воспользуюсь. В любом случае - спасибо. |
Posted by: ivani4 on 02-02-2006, 01:13 |
moroz Спасибо за ссылку.Скачал.Обязательно ознакомлюсь. А что касается иды ,так я не просил чтоб вы меня обучили,я не настолько наглый учитывая вашу занятость и мою тупую голову.Да и не освоить мне её никогда.Это,так скажем,ознакомится.Просто хотел получить ответ на конкретный вопрос.Теперь,учитывая что у нас разный уровень знаний а отсюда и разное восприятие, могу допустить что вопрос был поставлен не грамотно.Поэтому сформулирую эту же просьбу несколько по другому: Выдержки из объяснений от сах: Если нам повезёт, то эти 2 байта грузятся в регистры 4 и 5 примерно так: 7D 07 mov R5, #7 7C 02 mov R4, #2 Но если не повезёт, и регистры грузятся иначе.... Какой из них нам подходит - узнаем уже в дизассемблере ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Я научился искать HEX последовательность в иде и вижу эти байты,но не вижу в какие регистры они загружены. Вопрос:Каким образом вы это видите?Как увидеть информацию типа: ROM:0000E884 3C 28 CMP R0, #0x3C ROM:0000E886 01 D9 BLS loc_E88C ROM:0000E888 3C 20 MOV R0, #0x3C ??????????????????????????????????????????????????????????? moroz,если данная просьба не грамотна или не корректна или же сложна в объяснении,то не затрудняй себя ответом. |
Posted by: cax on 02-02-2006, 14:53 |
ivani4, чтобы увидеть не голые байты, а команды с мнемоникой, надо после загрузки АРМ-файла в IDA (укажи тип процессора ARM) запустить IDC скрипт (File->IDC file). Он пройдёт по файлу и всё пометит. Скрипт берут из раздела файлов группы mt13x9 (последняя версия скрипта, вроде, 1.6) |
Posted by: cax on 02-02-2006, 15:06 | ||
Обидно, что я рискую своими плейерами, а ни один импортёр так и не предложил мне не то что денег за работу, а хотя бы плейер для экспериментов. |
Posted by: ivani4 on 02-02-2006, 15:23 |
cax спасибо за информацию,попробую разобратся с идой. А помощь я предлагал тебе не однократно и в личных письмах(2 шт.) и в открытую на форуме(последний раз вчера). |
Posted by: cax on 02-02-2006, 16:21 |
Дистанционно что-то тестировать очень сложно, именно поэтому я делаю прошивки только для тех плейеров, которые стоят у меня на столе. При продажной стоимости обычных DivX-DVD плейеров в 300-400 шекелей, поставщику они наверняка обходятся ещё дешевле, и если он презентует разработчику прошивок один плейер для тестирования, он уж точно не обанкротится. Тем не менее, насколько мне известно, даже самые гениальные хакеры из группы mt13x9 так и не сумели заработать у импортёров ни копейки. |
Posted by: ivani4 on 02-02-2006, 16:48 |
Скажи мне,Маэстро,ты прочитал вообще два моих письма которые я тебе послал? |
Posted by: cax on 02-02-2006, 18:01 |
Конечно, прочитал. Только что отослал тебе ещё один ответ по e-mail, на всякий случай. |
Posted by: ivani4 on 02-02-2006, 18:19 |
так я тебе уже тоже написал обратно |
Posted by: wallfire on 02-02-2006, 23:09 |
cax ты не мог бы мне ответить на такой вопрос. После руссификации у меня не отображаются буквы кирилицы ы я ь как в названиях файлов так и в osd. Font самодельный 0-256 ср1251 может я что ещё упустил? удели минутку!? |
Posted by: moroz on 03-02-2006, 00:07 |
cax, прими мои соболезнования по поводу плеера. Закон подлости - скончался именно дорогой. Я только не очень понимаю, как перепрошивка может так нагадить. Никогда о таком не слышал. Ты со знатоками советовался? Насчет твоей обиды на экспортера - утешься тем, что мы этим занимаемся не для них, а исключительно для собственного удовольствия, потому что это интересно. А так же для удовольствия и удобства потенциальных пользователей, если выйдет что-то толковое. Алгоритм наконец-то заработал как надо, но хочу пока погонять его немного, вдруг еще что-то всплывет. |
Posted by: cax on 03-02-2006, 11:25 | ||
|
Posted by: moroz on 03-02-2006, 14:54 | ||
|
Posted by: wallfire on 03-02-2006, 16:12 | ||||
cax вот твоя подпрограмма которую я использую
В шрифте (http://img141.imageshack.us/img141/7875/1251specfont507085ul.jpg буквы ъыьэюя я поставил на позиции 6-11 в такой же последовательности, но вместо них только "_" Причём с другой твоей подпрограммой из Patching_HU3899_from_A_to_Z (http://cax.nm.ru/mtk/docs/Patching_HU3899_from_A_to_Z.txt
было тоже самое,
|
Posted by: cax on 03-02-2006, 16:22 | ||||
сперва нам надо: 1) добавить новое сообщение "Hebrew-normal" 2) добавить в меню Mpeg4-Subtitle новый пункт с этим сообщением 3) изменить меню так, чтобы этот выбор сохранялся также в ячейке ARM 4) при в ходе в процедуру переворота проверить содержимое этой ячейки. (1)-(3) я сделаю сам и пришлю, тебе же надо будет добавить и проверить у себя (4). На данный момент я не умею находить в АРМ неиспользованные ячейки. Попробуй пока проверять на 0/1 ячейку 0x33, и тогда включение реверса будет происходить при переключении пункта меню "General->Closed captions" (кстати, а для чего оно ?) И ещё: как у тебя влезла твоя подпрограмма в АРМ ? |
Posted by: cax on 03-02-2006, 16:26 | ||
Если ни в АРМ, ни в коде 8032 нет описанных у меня в руководстве ограничений на код буквы - то я пас. В самом крайнем случае можно забабахать эти буквы где-то между английскими и русскими, и слегка поменять код в АРМ (сейчас там буквы 250-255 переносятся на 6-11, а будут в другое место. Просто надо будет вычесть другую константу вместо F5.) |
Posted by: ivani4 on 03-02-2006, 17:15 |
cax Closed captions-это дополнительные данные в субтитрах ,которые имеются иногда в двд дисках .Отличие от обычных субтитров в том, что субтитры предназначены для людей с нормальным слухом, а эти данные для слабослышащих. Например,субтитры не передают обычные звуковые эффекты, такие как звонок телефона или звук шагов. cax по утру настрочил тебе писмецо.Получил? |
Posted by: ivani4 on 03-02-2006, 17:30 |
wallfire Известен случай решения подобной проблемы размещением букв ъыьэюя дополнительно в местах 27-32.Попробуй,вдруг повезёт. |
Posted by: wallfire on 03-02-2006, 17:50 | ||||
cax а никто не пробовал прикрутить показ MP3 тегов в тех прошивках где их нет?
|
Posted by: moroz on 03-02-2006, 23:42 | ||
cax, не надо никакой свободной ячейки. Все что нужно - это добавить еще одно значение в опцию Mpeg4-Subtitle. Я не очень понял, при чем здесь Closed Caption. Переворот я подвешу на имеющуюся опцию Hebrew, а когда/если добвится Hebrew-normal - она будет выбирать ивритский шрифт но не будет вызывать переворот. Кстати, семантику надо бы доработать, а то не очень понятно: нормальный иврит - это как? Идея проверять это на моем плеере мне не нравится. Если он умрет - оживить его я не умею. Теперь по поводу проверки значений меню из АРМ
|
Posted by: cax on 04-02-2006, 00:16 |
Объясняю. Mpeg4-Subtitle не имеет ячейки в АРМ, и неизвестно когда я подберу свободную. Для тестирования переключателя я предложил тебе ПОКА ЧТО в качестве переключателя попробовать Closed Caption, потом мы её заменим. Остальное, в том числе тестирование (у меня апекс 2102 будет ещё пару дней дома) за мной. Теперь ты объясни. Ты говорил, что встраивал процедуру переворота в прошивку с моего сайта (5.0 ?), но там часть пустого места уже занята. Она и раньше не влезала, так как же она влезла сейчас ?? |
Posted by: moroz on 04-02-2006, 00:37 | ||
|
Posted by: cax on 04-02-2006, 01:27 |
Ладно, давай продолжим по мейлу - borus собака mail.ru, присылай последний вариант. |
Posted by: cax on 05-02-2006, 14:34 |
Посмотрел сегодня на некоторые творения sickboy666. Парень, конечно, молодец, повтыкал ивритский шрифт в десятки плейеров, знает достаточно много - только в ассемблере не рубит, документацию для пользователей пишет, на вопросы отвечает в форуме и т.д., в общем - работает в поте лица. Одно неясно - зачем надо было подписывать мои прошивки для Юндая 02.09 и 07.11 своим именем, если всё, что он в них заменил - это 2 картинки. Впрочем, пусть балуется, он у нас товарисч популярный. sickboy666 - это уже не просто ник, это - марка. |
Posted by: cax on 05-02-2006, 14:40 |
moroz, а что ты думаешь про правильный показ ивритских имён файлов ? Правда, я пока не знаю где там начинается буфер с именем файла (ко мне в Unicode2CP приходит текущая буква), да и буквы там двухбайтовые, но принцип-то тот же. |
Posted by: ivani4 on 05-02-2006, 17:53 | ||
cax баг 60
Или может быть какой угодно регистр? |
Posted by: cax on 05-02-2006, 19:13 |
Теоретически регистры могут быть любые. В этом месте существенно то, что через строку используется один и тот же. И как ты заметил немного ранее, у меня описка - не 0x3C, а 0x3E. Прошу прощения за введение в заблуждение. |
Posted by: ivani4 on 05-02-2006, 20:54 |
cax 1. О.К.Эту мысль я понял .Спасибо. 2. В твоём варианте это дело нашлось в начале АРМ.Так может быть есть условная граница(зона) за которой уже можно не искать?Или это может находится в любом месте в АРМ? |
Posted by: kisav on 05-02-2006, 21:53 | ||||||
|
Posted by: cax on 06-02-2006, 02:12 |
kisav, Там далее по тексту есть такое: ROM:00015EEB 94 20 subb A, #0x20 ROM:00015EED 40 06 jc ROM_5EF5 ROM:00015EEF E0 movx A, @DPTR ROM:00015EF0 D3 setb C ROM:00015EF1 94 7E subb A, #0x7E ROM:00015EF3 40 10 jc ROM_5F05 Попробуй поискать, соответственно, 94 20 40 xx xx xx 94 7E |
Posted by: cax on 06-02-2006, 02:17 | ||
Когда найдёшь - ты легко узнаешь листинг кода, если ознакомишься с предлагаемым в руководстве документом NewAge по субтитрам. Там же посмотри на разные байты до и после, может они тебя наведут на нужное место. В принципе, я свою инструкцию так и составлял: подыскивал характерные цепочки байтов вокруг требуемого места (как видишь, не всегда и не у всех они точно совпадают). 3E 28 xx xx 3E 20 у тебя должно было найтись достаточно легко, а чуть в стороне от него, на расстояниях соизмеримых с расстояниями от этого места в том же Hyundai, должны найтись остальные два 3E. (я имею в виду фрагмент 3Е 28 CMP R0, #0x3Е 01 D9 BLS loc_E88C 3Е 20 MOV R0, #0x3Е) |
Posted by: kisav on 06-02-2006, 04:18 | ||
Вот в твоем Hyundai 3899 Servo 02.09 - orig MTK.BIN я его вижу дважды: 12DA3 15EEB Так это не лечится? |
Posted by: cax on 06-02-2006, 08:40 |
kisav: лечится всё, но в данном случае мои идеи исчерпаны. Звыняй. А что за плейер ? |
Posted by: ivani4 on 06-02-2006, 10:09 |
cax А байт подлежащий изменению обязательно 3E или 3C ? Или может быть другое значение ? |
Posted by: cax on 06-02-2006, 10:26 |
ivani4: Если там что-то другое, то скорее всего там уже нет "баг 60". 0x3E = 62, а с учётом конца строки примерно 60 и получается. |
Posted by: ivani4 on 06-02-2006, 11:35 | ||
cax
А баг 60 присутствует .Это точно. Учитывая что ничего похожего (на мой взгляд) с 3Е(3С) не нашлось,то не подойдет ли нам случайно 05 вместо 3Е(3С)? |
Posted by: cax on 06-02-2006, 14:02 |
То есть, по-твоему субтитры обрезаются не после 60-го символа, а после 5-го ??? |
Posted by: ivani4 on 06-02-2006, 14:35 |
Ну давай смейся,смейся над неграмотным.Тем не менее я думаю что поиск веду правильно.Тренировался на Юндай. Единственное ,что в моём варианте заинтересовало меня: ROM:00021460 3E 2F CMP R7, #0x3E ; '>' ROM:00021462 00 D9 BLS loc_21466 ROM:00021464 3E 27 MOV R7, #0x3E ; '>' Нашлось по адресу 21460 ,но не получается найти к нему те другие добавочные дела типа: ROM:000????? 3Е ?? CMP R?, #0x3Е ROM:000????? ?? ?? BCC loc_ ???? |
Posted by: cax on 06-02-2006, 15:40 |
ivani4, прошивки бывают очень похожие, и бывают очень разные. Скорее всего у тебя именно мало похожая на остальные, а рецептов на все случаи жизни нет. А "CMP R?, #0x3Е" с другими B?? (не BCC) есть в ближнем радиусе поиска от найденного тобой фрагмента ? В крайнем случае заменишь 3E->FF только в найденном фрагменте, и посмотришь что получилось. По идее иногда будет обрезаться, иногда не будет (но уже лучше чем ничего) |
Posted by: ivani4 on 06-02-2006, 15:48 |
Подскажи,пожалуйста,какие бывают B?? |
Posted by: cax on 06-02-2006, 16:59 |
Запусти BCalc, увидишь варианты в селекторе команды перехода. |
Posted by: ivani4 on 06-02-2006, 22:54 | ||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, |
Posted by: cax on 07-02-2006, 00:57 |
ivani4, займись, займись, а то если ты чего пропустил, то нехорошо это. А теперь я прошу внимания других знатоков ! Тому, кто прочитает последние "сводки с полей" группы mt13x9 на yahoo и объяснит мне как 1) сделать, чтобы использовались все файлы субтитров на диске, если одноимённый с фильмом не найден (есть описание, есть даже пример кода, но я не очень врубаюсь) 2) правильно разрулить конфликтные поинтеры в MTK ARM Resizer я буду сердечно благодарен и обещаю пиво, шоколад и другие ништяки. |
Posted by: kisav on 07-02-2006, 06:33 | ||
Был бы очень признателен если б ты мог его посмотреть поближе. Вот сылка на мой фтп kisav.homeftp.net (\LG 511\Original\original(2nd LG 511)-cd.bin) ftpuser/ftpuser Если одним спортивном интузиазмом здесь не прокатывает - намекни |
Posted by: ivani4 on 07-02-2006, 09:28 |
cax,я не знаю что является ближним радиусом поиска относительно адреса 21460,но нашёл похожее на нужное с 3Е в следующих местах, со следующими командами перехода: 3EF7E - BEQ 612C8 - BNE 61728 -BNE Глубже не копал.Нужно ли? Решил, в дополнении к сделаному ранее ,произвести изменения в двух из найденых мест : 612C8 61728 Не знаю стало ли от этого лучше ,но (как мне кажется) не стало хуже. Хотелось бы знать твоё мнение по данному вопросу. |
Posted by: cax on 07-02-2006, 13:37 | ||
далековато от 21460, и это может означать одно из следующего: 1) то, что правлено по адресу 21460 - достаточно 2) то, что правлено по адресу 21460 - недостаточно, но что ещё надо - неизвестно 3) то, что правлено по другим адресам, ничего не нарушило 4) то, что правлено по другим адресам, что-то нарушило, но мы пока не знаем Что есть на самом деле - я не знаю, и не смогу узнать, пока проблема не вылезет сама на каком-нибудь специфическом фильме или субтитре. Надеюсь, что всё и так хорошо. Предлагаю тему "баг 60" считать решённой (до появления возможных проблем) и требующей основательного тестирования. |
Posted by: ivani4 on 07-02-2006, 15:24 |
Маэстро!Я всё понял. Считаю баг 60 условно побежденным. Огромное тебе СПАСИБО за всё!!!!!!!!!!!!! |
Posted by: ivani4 on 12-02-2006, 12:03 |
cax,а какие скрипты с Yahoo нужно использовать для просмотра прошивки(не АРМ)? |
Posted by: cax on 12-02-2006, 12:18 |
Обычно я не пользуюсь дополнительными скриптами - просто иду по нужному мне адресу командой G и нажимаю в этом месте C, что превращает голые байты в команды. Но основной пакет скриптов (устанавливается в каталоги самой Иды) поставить всё же стоит. Как точно называется - не помню, но находится легко. Обычно полагается открывать банки памяти по отдельности, но я как правило открываю весь файл целиком, и выбираю в списке процессоров "intel 51 series: 8051", и в одном из следующих окон "Choose the device name" выбираю MT1389 |
Posted by: ivani4 on 12-02-2006, 12:29 |
cax,спасибо!Я,правда, не очень понял.Но прежде чем мучить тебя дополнительными вопросами попробую что-то с этим сделать. |
Posted by: cax on 16-02-2006, 21:09 | ||
|
Posted by: moroz on 16-02-2006, 22:09 |
Да, похоже. Интересно, как они это делают? |
Posted by: cax on 17-02-2006, 00:29 |
Скорее всего так же, как и центрирование и цвет субтитров, окантовка букв, степень их прозрачности и исчезновение сообщений типа значка зума спустя заданное время - все эти возможности были заложены в самой прошивке изначально, но не активированы. |
Posted by: kisav on 17-02-2006, 08:30 | ||
Извиняй, что надоедаю со своей болячкой. Может посмотришь мою прошивку а если найдешь че, то как альтернативный вариант, решение проблемы можно занести в твой .тхт файл. Я тут просматривал аналогичную ветку на IXBT и могу сказать, что проблема эта не единична. http://forum.ixbt.com/topic.cgi?id=62:4400-25 (http://forum.ixbt.com/topic.cgi?id=62:4400-25 и http://forum.ixbt.com/topic.cgi?id=62:4400-26 (http://forum.ixbt.com/topic.cgi?id=62:4400-26 Может там потребуется мелкое отклонение от твоего .тхт а может нет. Но с уверенностью могу сказать что большОе количество людей будет тебе признательно. |
Posted by: cax on 17-02-2006, 08:34 |
kisa, я и правда не всесилен. Если я говорю, что нет идей - значит так оно и есть. Энди на IXBT меня покруче будет, если он не знает - то и я не сумею. Извини. |
Posted by: moroz on 17-02-2006, 11:28 | ||
; Used for bottom align (bSettings AND 0x01 = 0x01 א bottom align, otherwise top align) SUB_CalcStartPosY PUSH {R3-R7,LR} LDR R7, =SUB_Mpeg4SubtitleParamsRecord LDRH R6, [R7,#2] ; wY1 LDRB R1, [R7,#0xA] ; bSettings LSL R1, R1, #0x1F ; 0x01 << 0x1F = 0x80000000 BPL EXIT ; positive or zero (bSettings AND 0x01 = 0x00) BL SUB_SubtitleTextLineCount ADD R5, R0, #0 LDR R0, =SUB_Mpeg4SubtitleParamsRecord ADD R0, R6, #0 ; R0 = R6 POP {R3-R7} POP {R3} BX R3 Достаточно поднять нулевой бит в байте по оффсету 0хА. "Учите матчасть" называется |
Posted by: ivani4 on 17-02-2006, 12:37 | ||
cax
!!!!!!!!!!!!!!!!!!!!!!!!!!!!Огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Posted by: Rvs on 17-02-2006, 18:42 |
kisav Если я правильно понял ты в нёс изменения в ARM и у тебя теперь подчёрки вместо русских букв???? Если да, то кинь твою прошивку на ruslan(тузик)tiraet.com посмотрю, помогу!!!! |
Posted by: Rvs on 18-02-2006, 13:14 |
kisav нашёл твою процедуру с заменой `_` на русские. Она немного отличается от описаной у сах поэтому и не нешёл ты её. У тебя кабель для прошивки есть??? Что бы ты не нароком DVD не завалил, т.к. есть сомнения, у себя проверить не могу прошивка 2Mb, а у меня 1Mb. |
Posted by: Rvs on 18-02-2006, 14:19 |
kisav Вот так выглядит твоя функция, точнее её часть, она находиться в Bank3, с адреса DBCE и DD21: mov A, R7 xrl A, #0x20 jz ROM_DD5E mov A, R7 xrl A, #0x5F jz ROM_DD5E mov A, R7 jz ROM_DD5E setb C subb A, #0x2B ; '+' jc ROM_DD38 mov A, R7 subb A, #0x3A ; ':' jc ROM_DD5E mov A, R7 setb C subb A, #0x40 ; '@' jc ROM_DD43 mov A, R7 subb A, #0x5B ; '[' jc ROM_DD5E mov A, R7 setb C subb A, #0x60 ; '`' jc ROM_DD4E mov A, R7 subb A, #0x7B ; '{' jc ROM_DD5E попробуй для начала в выделенные команды поставить значение x00 и xFF соответственно. Если не пойдёт, то в понедельник скажу как переписать всё функцию целиком. Но будь внимателен, если кабеля нет, можешь завалить аппарат!!! Ну всё дерзай, удачи, если получиться отпиши обязательно!!!! |
Posted by: cax on 18-02-2006, 14:52 |
Rvs, я к тебе с поклоном и просьбой: научи находить PREF_SetChar. Надо для имплементации сохранения громкости по методу Энди007. |
Posted by: moroz on 18-02-2006, 18:21 | ||
Post Link: APEX DVX - 811//815 (http://netlab.e2k.ru/forum/index.php?showpost=525312 |
Posted by: Rvs on 18-02-2006, 19:47 | ||||
Привет сах!!! Вот так выглядит функция PREF_SetChar в Yamada 6600
а так в моей XORO400Pro:
смысл я думаю понятен, у себя ты должен искать 90 ? ? EE F0 A3 EF F0 A3 ED F0 скорее всего найдуться несколько, но похожая только одна. У процедуры обязательно должен быть Bank Sw и скорее всего расположена в Bank1. До понедельника!!! Удачи!!! Если всё ОК отпиши!!! |
Posted by: cax on 18-02-2006, 19:58 |
moroz, не шуткуй, лучше объясни что я не так делаю. Может скрипты на ИДА 4.8 не работают ? Я получаю сообщение MT1389_Misc.idc 746: Syntax error near <END> |
Posted by: cax on 18-02-2006, 20:08 |
Так, пожалуй, поточнее будет - находится 1 раз, а не десятки. 90 ?? ?? EE F0 A3 EF F0 A3 ED F0 90 ?? ?? E0 FE A3 E0 FF BE FF Теперь ищем, как в случае с PREF_GetChar, 90 xx xx, где xx xx - адрес, с которого начинается приведённая выше последовательность, и находим это дело по одному разу в каждом банке, и каждый раз в том же самом месте. Отлично. Осталась ровно одна непонятка: не факт, что используемая Энди ячейка 0x55 в EEPROM также свободна и в других прошивках. На IXBT я вычитал, что для этого делают разведку боем, а именно подключают кабель и смотрят где в EEPROM прибора есть FF. Стрёмно... |
Posted by: moroz on 18-02-2006, 23:00 | ||
Я не большой знаток скриптов, но одну вещь я про них знаю: это текстовые файлы. Это значит, что если уж совсем тоскливо, то можно посмотреть им в душу и все что нужно про них узнать. Так, если мы заглянем в MT1389_Misc.idc, то увидим, что искомую функцию он ищет по последовательности FF BE FF 05 BF FF 02 D3 22. А заодно прочтем, что перед его запуском нужно прокрутить какие-то другие скрипты. Может, я так и сделал когда им пользовался, убей - не помню... |
Posted by: cax on 18-02-2006, 23:25 |
moroz, посыпаю голову пеплом. Я собирался сделать именно то, что ты сказал - заглянуть в скрипт, но, видимо, торможу. Кстати, последовательность из скрипта приводит в середину подпрограммы, а не в её начало, но это уже ерунда - ищем назад до ближайшего RET (0x22) и со следующего за ним адреса и начинается наша искомая функция. |
Posted by: kisav on 18-02-2006, 23:58 | ||
To RVS Благодарю. Но то че ты написал требует дополнительной разжовки . Шнур есть. Жаль что ждать придется аж до понедельника. To Cax Может ты мне переведешь что написал RVS. Мне обязательно нужна IDA? В xvi32 это можно сделать? Если да то что и где менять? Спасибо всем. Буду ждать. |
Posted by: cax on 19-02-2006, 15:21 |
Получил сегодня из ремонта в сервис-центре STS свой Apex JDP707. Сперва мне позвонили несколько дней назад с предложением поменять весь корпус из-за разбитого крепления крышки за ни много ни мало - 280 шекелей, а это почти треть от стоимости всего аппарата. Я отказался от замены корпуса, но уже был рад, что сам аппарат починили по гарантии и не взяли денег (а ведь на нём ясно были видны следы вскрытия). Но самое поразительное, что крышку мне тоже починили, и опять денег не взяли. Доволен как слон. |
Posted by: moroz on 19-02-2006, 18:22 |
Ну вот и вознаграждение от Прусмана Довольствуемся малым, счастливы от пустяка... А корпус они наверно с самого начала по ошибке починили, а потом решили с тебя содрать |
Posted by: Rvs on 20-02-2006, 18:48 |
kisav Желательно что-бы ты научился пользоваться IDA-ой, иначе мне прийдётся тебе, каждый шаг писать, а у меня не много времени. Так что поробуй IDA-ой открыть Bank3 перейти по адресу что я указал (нажать G), далее С и ты увидиш всю свою функцию и адреса!!! Внесёшь изменения через свой xvi32 по адресу, но уже начинающегося с 3, т.к. Bank3. Дерзай!!! |
Posted by: Rvs on 20-02-2006, 18:54 |
cax Посмотрел внимательно MT1389_Misc.idc, есть интересная процедура SetVolume, не смотрел??? |
Posted by: kisav on 20-02-2006, 19:22 | ||
вот что имею ROM:0270 E5 90 mov A, P1 ; B_BANK3 ROM:0272 54 07 anl A, #7 ROM:0274 B4 03 02 cjne A, #3, ROM_279 ROM:0274 ROM:0277 E4 clr A ROM:0278 73 jmp @A+DPTR ROM:0278 Наверное, не тот банк. Давай по порядку: IDA 4.8. Взял целиком всю прошивку, загнал ее в IDУ. Какие ни будь скрипты нужны? Где переходить в bank3? В 'Names window'? Дай знать, чего я не так делаю. Могу предложить тебе требуемый .idc Я загрузил его ,как раз, вчера. Дай знать если это еще актуально. Спасибо что возишься со мной |
Posted by: cax on 20-02-2006, 19:54 |
kisav, тебя просили сходить по адресам DBCE и DD21 в 3-м банке. Банк - это кусок размером 0x10000, т.е. если ты грузишь всю прошивку, то адреса будут соответственно 0x3DBCE и 0x3DD21, а не 0270. |
Posted by: kisav on 20-02-2006, 20:14 | ||
Cax, Я это есть понимат. Но там есть только вот такое: ROM:0003DBCE 09 .byte 9 ROM:0003DBCF 12 .byte 0x12 ROM:0003DBD0 05 .byte 5 ROM:0003DBD1 7D .byte 0x7D ; } ROM:0003DBD2 90 .byte 0x90 ; Ð ROM:0003DBD3 FB .byte 0xFB ; v ROM:0003DBD4 87 .byte 0x87 ; Ç ROM:0003DBD5 E0 .byte 0xE0 ; ð ROM:0003DBD6 04 .byte 4 а subb A (смотрел по всей прошивке) вааще невидать. Толи не так смотрю толи не тем? |
Posted by: cax on 20-02-2006, 21:35 | ||
надо нажать G, потом адрес, потом C. И так далее жмём C в любом месте, где хотим опознать команды. |
Posted by: kisav on 20-02-2006, 21:44 | ||||
нашел искомое 3DD23 3DD28 ROM:0003DD1E ROM:0003DD21 EF mov A, R7 ROM:0003DD22 64 00 xrl A, #0x20 --> #0 ROM:0003DD24 60 38 jz ROM_DD5D+1 ROM:0003DD24 ROM:0003DD26 EF mov A, R7 ROM:0003DD27 64 FF xrl A, #0x5F --> #0xFF ROM:0003DD29 60 33 jz ROM_DD5D+1 ROM:0003DD29 RVS, update: Заменил в выше указаных местах но все равно вижу одни подчерки jz ROM_DD5D+1 и jz ROM_DD5E одно и тоже? Как быть уверенным что это имено те самые места? Вот тут еще одна похожая комбинация: ROM:0003DB65 EF mov A, R7 ROM:0003DB66 D3 setb C ROM:0003DB67 94 20 subb A, #0x20 ; ' ' ROM:0003DB69 50 F3 jnc ROM_DB5E |
Posted by: cax on 21-02-2006, 12:33 | ||
Без подсказок Энди я вряд ли бы сообразил, что для поиска свободной ячейки в EEPROM надо найти все вызовы PREF_GetChar и построить таблицу используемых ячеек (верхний предел, кажется, 0xC0). Дырки в таблице и есть неиспользованные ячейки. У Энди это была 0x55, у меня же на Юндай заработала 0x77. |
Posted by: ivani4 on 21-02-2006, 13:05 | ||
cax
Или в прошивке для флешки есть информация для EEPROM? |
Posted by: Rvs on 21-02-2006, 13:12 | ||||
kisav В принципе всё правильно, но я делаю немного по другому. 1) ReMaker-ом сохраняю нужный Bank (Page). 2) Открываю его IDA-е. 3) Далее натравливаю скрипты: MT1389_Bank.idc, MT1389_More.idc, MT1389_xCASE.idc, MT1389_Misc.idc, MT1389_PS_x.idc. Для тебя хватит и двух первых!!! 4)Далее переходишь по адресу, но уже без первой цифры, т.е. тот который указал. А изменять значения будешь в своём редакторе, но адрес уже с учётом номера Bank-а, и то что показывает IDA-а.
|
Posted by: cax on 21-02-2006, 14:30 | ||||
Патч работает так: 1) в место в прошивке, где устанавливается громкость в 20 при включении аппарата, вставляется код, который вместо этого читает уровень громкости из ячейки EEPROM и устанавливает его соответственно. 2) в место в прошивке, вызываемое при нажатии Volume, вставяется код, который сохраняет текущую громкость в ту самую ячейку EEPROM. |
Posted by: ivani4 on 21-02-2006, 18:46 |
cax видал? www.divx-israel.cjb.net |
Posted by: cax on 21-02-2006, 19:07 | ||
Свои деньги они берут за подъехать, подключить, установить, и это в принципе копейки - много так не заработать, да и много мороки и временных затрат. Единственное, что мне приходит в голову - это предложить им за деньги добавление в их прошивки переворота иврита, если они сами ещё не научились. Но это тоже обречено на провал - во-первых, они сами имеют копейки и им не с чего платить, а во-вторых мне кажется, что они и сами не дураки |
Posted by: ivani4 on 21-02-2006, 20:22 |
cax А сколько стоит купить у вас переворот иврита? |
Posted by: cax on 21-02-2006, 20:43 | ||
Во вторых, такие вопросы на форуме не решают. И в третьих, разработка ещё не окончена. Задача оказалась далеко не тривиальной. Статистический анализ большой выборки файлов с ивритскими субтитрами показал, что в природе достаточно часто встречаются некорректно созданные файлы субтитров, и moroz прилагает титанические усилия, чтобы переворот и работал правильно во всех случаях, и поместился в прошивке. Попытки китайцев написать свой переворот иврита, как видно из отзывов на форуме LioNetwork, выглядят насмешкой над здравым смыслом - то знаки препинания скачут, то числа и английские надписи переворачиваются. moroz, заранее извиняюсь, если выдал какие-то профессиональные секреты. |
Posted by: ivani4 on 21-02-2006, 21:20 |
cax&moroz А можно ли получить у вас эти некорректно созданные файлы субтитров?Просто у меня есть китаец с перевёрнутым ивритом(я писал об этом раньше). При первом приближении работает нормально.Вот и хотелось бы проверить его с проблематичными файлами. |
Posted by: ivani4 on 21-02-2006, 22:20 | ||
Rvs
И что это есть натравливать? |
Posted by: ivani4 on 21-02-2006, 22:29 | ||
cax
Имею IDA.Pro.v4.8.0. |
Posted by: cax on 22-02-2006, 00:32 | ||||
|
Posted by: kisav on 22-02-2006, 08:15 | ||||||
RVS, Вроде сделал все как ты сказал. Но.... эти ЛыЖи по русски не катят. Небольшая корректировка 2-го адреса: (вместо DBCE использовал 9BCE) Правильно? ROM:9BCE 90 FB 9A mov DPTR, #0xFB9A ROM:9BD1 E0 movx A, @DPTR ROM:9BD2 FF mov R7, A ROM:9BD3 64 20 xrl A, #0x20 ROM:9BD5 60 36 jz ROM_9C0D ROM:9BD5 ROM:9BD7 EF mov A, R7 ROM:9BD8 64 5F xrl A, #0x5F ROM:9BDA 60 31 jz ROM_9C0D Хочешь, вышлю прошивку с последними изменениями а ты может сравнишь со своей (то есть моей но тобой правленой). Если это направление мертвое, то готов идти в другом направлении Вот еще что: Сравнивал твой пост с тем что имею у себя в IDe. Есть отличия (выделены красным). Может я должен в своей прошивке это соответственно откорректиравать? Это не большой фрагмент из моей прошивки: ROM:DD2E D3 setb C ROM:DD2F 94 2B subb A, #0x2B ; '+' ROM:DD31 40 05 jc ROM_DD38 ROM:DD31 ROM:DD33 EF mov A, R7 ROM:DD34 94 3A subb A, #0x3A ; ':' ROM:DD36 40 26 jc ROM_DD5E |
Posted by: kisav on 22-02-2006, 08:37 | ||||||
ivani4, вот этот IDAPro47_CONFIG_2006-01-03.RAR.RAR от сюда http://groups.yahoo.com/group/mt13x9/files/Disassembling/!IDA scripts/ (http://groups.yahoo.com/group/mt13x9/files/Disassembling/%21IDA%20scripts/ Звиняй если ужо не ахтуально. Часовой пояс у нас с тобой разный |
Posted by: ivani4 on 22-02-2006, 08:51 |
kisav |
Posted by: Rvs on 22-02-2006, 11:55 | ||||
kisav
Нет это не отличия, это ты должен был сделать как я написал, причём по двум адресам!!! Будь внимателен, вроде должно было заработать , но я ещё посмотрю как можно переделать, если не пойдёт!!!! ivani4
kisav указал файлы config, всё что внутри архива распихиваешь по нужным папкам с заменой существующих, после этого появиться и окно "Choose the device name", также скачай все скрипты (лишние не помешают) из указанного адреса, также вставь папку idc. После этого в IDA-е File->IDC file..., там увидишь все эти файлы, запускай как я писал. Но перед MT1389_xCASE.idc надо нажать цветок на ToolBar или Shift+F5, далее Insert и если правильно раскидал файлы, то должен появиться список файлов выбери mtk8032. И далее запускай скрипты по списку. Всё должно быть ОК. Надеюсь разжевал!!!! |
Posted by: ivani4 on 22-02-2006, 12:49 |
Rvs&kisav Большое спасибо за помощь |
Posted by: ivani4 on 22-02-2006, 13:25 |
cax http://lionetwork.net/modules.php?name=Forums&showtopic=391441 (http://lionetwork.net/modules.php?name=Forums&showtopic=391441 Видал?Человек просит что бы ты инструкцию написал. |
Posted by: Rvs on 22-02-2006, 15:50 |
cax Может опять туплю, но не догоняю хоть тресни.... Вы с moroz разобрались как передовать значения в ARM и обробатывать их, и вот есть кусок: mov R5, #01 mov R7, #0x80 mov R6, #0x0F lcall ARM_PutChar Если я правильно понимаю смысл такой в SharedMem +0F80 записывается значение R5, т.е. 1. Как найти процедуру в ARM-е которая работает с этой ячейкой?????? Если где ошибся подправь!!!! |
Posted by: cax on 22-02-2006, 16:25 |
Если я правильно понял вопрос, то в ARM вроде бы нет специальной процедуры. В каждом месте, где нужно прочесть ячейку, она просто считывается со своего адреса. Встань на SharedMem, вызови xref (нажми X), и ты получишь список адресов, ссылающихся на него. Выбери один, и аналогично посмотри кто на него ссылается. Так ты придёшь к коду, который читает число из SharedMem. |
Posted by: Rvs on 22-02-2006, 17:39 |
cax Понял!!! Были сомнения насчёт общей процедуры, ушли... Исходя из твоих слов должна быть примерно вот такая последовательность: LDR R0, =ptrSHARED_MEMORY LDR R1, 0x0F80 LDRB R2, [R0,R1] либо LDR R0, =ptrSHARED_MEMORY ADD R0, 0x0F80 LDRB R1, [R0] либо другие вариации на эту тему, но значения 0x0F80, я не где не нашел... Вариант xref возник сразу, но проверить надо около 100 ссылок, проверив с 20-30, похожего не нашел..., думаю и не найду т.к. последовательности 0x0F80 нигде нет, в чём засада не догоняю...., как же всё таки найти. А у меня идея такова. Хочу найти процедуру WriteFileName от NewAge-а, знаю что в эту ячейку он пишет значения для её работы. Значит найдя место где он её читает и находиться процедура, либо её часть. Как идея на твой взгляд тупиковая или нет???? Если есть у тебя идеи на этот счёт поделись пожалуйста!!!! |
Posted by: cax on 22-02-2006, 18:19 |
Я, как и ты, тоже не смог найти нужных мне чтений/записи в общую память в АРМ. Что касается изменения имени файла, я знаю об этом не более, чем требует установка функции Unicode2CP. |
Posted by: Rvs on 22-02-2006, 18:32 |
cax Ещё один тупой вопрос в чём разница этих двух команд: LDR R0,=unk_7E2A0 и LDR R0,=loc_5E354 и как их расчитать???? |
Posted by: moroz on 22-02-2006, 18:38 | ||
|
Posted by: ivani4 on 22-02-2006, 19:01 |
moroz Спасибо за файл. При первом приближении не пугает.Переворот в норме.Цифры в норме.Есть проблема со знаками препинания.Как я вижу, файл создан так ,что ,например ,точка и вопросительный знак стоят в разных концах предложений.Точно так они и отображаются на экране телевизора. А на что нужно ещё обратить внимание?Какую кривость ты имел ввиду? |
Posted by: kisav on 22-02-2006, 19:27 | ||
ROM:DD22 64 00 xrl A, #0x00 и ROM:DD22 64 00 xrl A, #0 одно и тоже? Если в XVI32 меняю #0х20 на #0х00 то после перегрузки файла в IDe вижу просто #0. С этим заморачиваться или ты используешь другую версию IDы? А делать едит прямо в IDe мона? Пока вижу только окно HEX-View. |
Posted by: Rvs on 22-02-2006, 20:05 | ||
kisav
Ну конечно одно и тоже!!!! Я тоже вижу xrl A, #0, но пишу 00 что-бы было меньше вопросов при едите!!! На счёт едита в IDA-е не знаю!!! Уезжаю в командировку до понедельника, так что звыняй. Если не пойдут эти изменения, в понедельник до думаем!!! Дерзай!!! |
Posted by: cax on 22-02-2006, 20:07 |
kisav, в моей версии IDA редактировать нельзя, про другие не знаю. А ноль он и в Африке ноль, не заморачивайся |
Posted by: moroz on 22-02-2006, 21:23 | ||
ivani4
Нет, только это. Просто некоторых (например меня) раздражает, когда вопр. знак стоит в начале строки. |
Posted by: cax on 22-02-2006, 21:29 | ||
|
Posted by: cax on 22-02-2006, 21:46 | ||
И что надо рассчитать ? Тебя научить как построить байткод такой команды ? Если я не вру, то первый байт команды - расстояние между адресом считываемой ссылки на адрес и самой командой, делённое на 4 и , кажется, минус 1. Или в чём был вопрос ? |
Posted by: ivani4 on 22-02-2006, 22:53 |
moroz У меня, правда,получилось наоборот.Вопросительный знак,как положено,в конце,а вот точка в начале.И если это единственная проблема,то я бы уже бил в колокола и трубил победу.moroz,я преклоняюсь перед твоим стремлением создать идеальный продукт и есть у меня в связи с этим вопрос:если этот файл предварительно перевернуть,например,в subfix и использовать затем в двд в котором нет переворота,то всё будет в порядке?Т.е. subfix сумеет упорядочить знаки препинания? ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Дай мне,пожалуйста,если можешь, на проверку случаи со скобками, знаками процента и доллара. |
Posted by: Alex_st on 22-02-2006, 23:52 | ||
DISPLAY_PATCH_SUBMENU = и поставвить значение YES. В меню Edit появится соответствующий пункт. |
Posted by: ivani4 on 23-02-2006, 00:21 | ||
Наконец-то у меня это получилось.Спасибо всем оказавшим мне помощь. |
Posted by: ivani4 on 23-02-2006, 00:29 | ||
!!!!!!!!!!!!!!!!!!! Alex_st !!!!!!!!!!!!!!!!!!!!! |
Posted by: cax on 23-02-2006, 01:06 |
Век живи, век учись. Спасибо Alex_st ! Жаль только ассемблировать он не умеет, только байты/слова правит. |
Posted by: cax on 23-02-2006, 02:17 | ||
Я знаю о двух моделях: Апекс 811/815 и Юндай с серво 07.11, реализовано в обоих случаях по-разному. |
Posted by: kisav on 23-02-2006, 05:11 | ||||
Чудо! малыш заговорил по русски первые слова. Только не выговаривает некоторые буквы. Пока замечены следующие: ы, я, ь и твердый знак. Если смотреть Remaker-ом: 'ы' имеет #252 'ь' имеет #253 'я' имеет #256 Думаю, по анологии, не отображаются с #251 по #256. А вот почему? Есть ыщо одна заморочка. Если диск записан в UDF то вместо русского сплошные теоремы пифагора. (Что-то типа этого: 2>4& =89 и так далее) Это лечится? Особая благадарность тов. CAX и тов. RVS. Без вас не видать мне русского |
Posted by: cax on 23-02-2006, 11:01 |
kisav, если ты встроил Unicode2CP в АРМ, то уже, наверное, знаешь, что последние 6 букв русского алфавита (ъ ы ь э ю я) сидят не только под номерами 250-255, но и дублируются под номерами 5-10. У тебя так ? Если нет, вставь их туда сам или используй шрифт из моих прошивок. Насчёт UDF - видимо это никто не тестировал, вот и не пролечили прошивку всесторонне. Я попробую поспрашивать на yahoo и потестировать на своём аппарате. То, что ты называешь "теоремой Пифагора", я назвал "кашей-малашей". Можно также называть это словом "Джибриш" или "кразкозябры" Впрочем, кракозябры тут как раз ни при чём - обычно кракозябрами зовут европейские буквы с умляутами , которые появляются при неверной транскодировке. |
Posted by: kisav on 23-02-2006, 18:58 | ||
Cax, Вот что было замеченно. - Используя родной шрифт, который кстати, имеет русские буквы то вижу умляуты. (буквы e, i, a с точками на верху) - Используя твой из 'Hyundai 3899 Servo 02.09 Hebrew-Russian v5.0' я получаю русские названия но без этих нескольких букв . А на UDF диске в место русского только символы и цифры. |
Posted by: cax on 23-02-2006, 20:52 |
1) Если ты действительно заменил правильный шрифт, то значит у тебя заблокированы символы с кодами меньше пробела (0x20). Разблокируешь - заработает 2) Это решение описывалось выше. Можно засунуть буквы (ъ ы ь э ю я) в шрифт где-то между английскими и русскими, и поменять константу для вычитания (0xF5) в подпрограмме Unicode2CP, чтобы она превращала 250-255 не в 5-10, а в другой отрезок. |
Posted by: moroz on 23-02-2006, 22:11 | ||
Post Link: Переворот иврита в прошивках МТК (http://netlab.e2k.ru/forum/index.php?showpost=555711 |
Posted by: cax on 23-02-2006, 22:57 | ||
То, что ты называешь "шрифт, который кстати, имеет русские буквы", скорее всего имеет их примерно так: "ЕХПДМЛ" или "ГРОМКСТЬ" , а это значит, что он БЕЗ РУССКИХ БУКВ. В нормальном шрифте они идут по алфавиту. Теперь, когда ты брал мой шрифт, ты брал 0-й, в котором буквы (ъ ы ь э ю я) находятся по адресам 0-5 ? Если да, то их надо передвинуть на позиции 5-10. И после этого будет тебе счастье. |
Posted by: kisav on 24-02-2006, 18:09 | ||||
Так оно и было. Вставил по адресу 6-11 (если смотреть в Remaker-е) эти 6 букв и стало мне счастье. Огромное тебе за подсказку спасибо. Ты для этих целей используешь МTKFont Creator в паре с FonTool? Вот еще один вопрос: Знает ли кто как загнать 'пропатчиную' прошивку, слитую через кабель, на RW диск? (другого источника просто нет). Мы купили несколько одинаковых LG. А с паяльником и отверткой меня к ним не подпускают Решил дабавить следующее: Записал на RW LG_DVD\FIRMWARE\UPGRADE\LG\LV8070261.MIH (имя файла взял с другого LG, c 531) так же пробовал FIRMWARE\UPGRADE\LG\LV8070261.MIH - не катит. Говорит: 'Check disk'. Есть ли возможность подсмотреть в прошивке на какое имя он реагирует? |
Posted by: cax on 24-02-2006, 19:47 | ||
2) Если MTK ReMaker её открывает, ей нужно сделать save в формате для CD (а он умеет читать и писать в обоих форматах - CD и "кабельном") 3) Имя файла видно в поле "File" в MTK ReMaker-е. |
Posted by: kisav on 24-02-2006, 19:58 | ||||
Я так тоже думал. Но место для имени файла пусто. Свое вставить не смог. Похоже оно только для чтения? Размер слитой прошивки 2048. После пересохранения в CD оно уменьшилось до 1858. Я так понял остальная часть была заполнена пробелами. Посмотрел похожую, от 531 модели там имени файла то же нет а размер ровно 2048 ??? Но она предназначина для CD. Знать бы где я не догоняю |
Posted by: cax on 24-02-2006, 21:09 |
Тогда открывай в hex-редакторе и прояви наблюдательность, больше ничего не могу посоветовать. Скорее всего хотя бы расширение .MIH они не поменяли и ты его найдёшь. |
Posted by: kisav on 24-02-2006, 21:29 | ||
Все. Нашел. LT90502631.MIH. Работает . Спасибо еще раз. |
Posted by: ivani4 on 24-02-2006, 21:35 |
cax Благодаря общим усилиям участников форума у меня начали продвигаться дела с идой.Рвусь в бой окрылённый успехами kisav.Вопрос,воможно глупый. Поддержка рус/ивр имён файлов. Не могут ли эти три фрагмента,найденые мной в 8032(5-й банк),подойти для исправления подчерков возникших после соответствующих изменений в АРМ? ////////////////////////////////////////////////////////////////////////////////////////////// ROM:56F0 94 20 subb A, #0x20 ; ' ' ROM:56F2 40 06 jc ROM_56FA ROM:56F2 ROM:56F4 E0 movx A, @DPTR ROM:56F5 D3 setb C ROM:56F6 94 7F subb A, #0x7F ; '' ROM:56F8 40 16 jc ROM_5710 ///////////////////////////////////////////////////////////////////////////////////////////// ROM:5862 94 20 subb A, #0x20 ; ' ' ROM:5864 40 06 jc ROM_586C ROM:5864 ROM:5866 E0 movx A, @DPTR ROM:5867 D3 setb C ROM:5868 94 7F subb A, #0x7F ; '' ROM:586A 40 16 jc ROM_5882 ///////////////////////////////////////////////////////////////////////////////////////// ROM:59D4 94 20 subb A, #0x20 ; ' ' ROM:59D6 40 06 jc ROM_59DE ROM:59D6 ROM:59D8 E0 movx A, @DPTR ROM:59D9 D3 setb C ROM:59DA 94 7F subb A, #0x7F ; '' ROM:59DC 40 16 jc ROM_59F4 //////////////////////////////////////////////////////////////////////////////////////// |
Posted by: kisav on 24-02-2006, 22:19 | ||||
|
Posted by: kisav on 26-02-2006, 00:57 | ||
ivani4, я тут на досуге, пользуясь временным затишьем на этой ветке, собрал всю информацию по интересующему тебя вопросу в единый документ. Если хочешь, пришлю. Ты же любитель тестить . Может, поможет. Там вроде все разложено по кирпичикам. Я тут от скуки пропатчил 3 разные прошивки от плееров, которых не имею. На основании этого по мере надобности вносил в этот документ изменения. Вот только иврит+русский+английский не рассматривал. Может там только в фонте разница. А может нет... CAX его знает |
Posted by: ivani4 on 26-02-2006, 01:06 |
kisav Оказывается мы в одни и те же игрушки играем. ivanov49@yandex.ru |
Posted by: kisav on 26-02-2006, 01:11 | ||
Отпиши если помогло. Если нет то где не совпало с инструкцией. |
Posted by: kisav on 26-02-2006, 03:57 | ||
CAX, У тебя была возможность потестить на своем аппарате? Мой ББК-975 делает то же самое |
Posted by: cax on 26-02-2006, 09:42 |
> Может там только в фонте разница. А может нет... CAX его знает Патч делается из 3-х частей: фонт, процедура перекодировки в АРМ, и патч кода 8032, если требуется. Все части должны присутствовать и содержать нужные штуки. В моей инструкции приведена процедура без иврита, но её легко заменить на поддерживающую и русский и иврит. То же самое с фонтом - надо знать куда какие буквы ставить. Образец можно подсмотреть в моих прошивках. Патч 8032, как мы уже знаем, оказался не везде одинаковым. С удовольствием воспользуюсь собранной kisav информацией для внесения в инструкцию. Самому расписывать лень > У тебя была возможность потестить на своем аппарате? Мой ББК-975 делает то же самое Пока нет, но постараюсь долго не тянуть. |
Posted by: kisav on 26-02-2006, 20:47 | ||||
А вот ыщо и вопрос знатокам: Как быть уверенным что все места где требуется заменить подчерки на русский найдены и обезврежены? С авишками проблем нет а вот с mp3 обнаружилось. Если поставить mp3 диск, браузер несколько изменяется. Делится на две равные части. Полное название файла отображается только в низу, под браузером. Только в нем опять эти самые подчерки в место русского. Как быть? |
Posted by: cax on 26-02-2006, 21:27 |
> Поделись, если не коммерческая тайна Не тайна. Надо найти кодовые таблицы Юникода и перекодировать их в то, как у тебя буквы в фонте сидят. Пишется на АРМ-ассемблере. Это раз. Нужные буквы в нужные места зафигачить - это два. А по поводу три, как ты сам видишь, ещё не все точки над i расставлены. Яка таблиця у Юнiкоду рiдной мовы ? |
Posted by: kisav on 26-02-2006, 23:43 | ||
Час рылся в гугле. Толком ничего не нарыл. Вот линк в котором есть трогательная история как видоизменялся codepage: http://www.brama.com/compute/rustex.html (http://www.brama.com/compute/rustex.html. Для начала они упоминают 3 версии Unicode. 1.0, 1.1 и 2.0. Меня это вогнало в ступр. Знаю только что codepage у русского и украинского один - 1251. (А если так, то может оно уже и так работает? К сожалению, не начем проверить в данный момент) В АРМ-ассемблере обсолютно не рублю. Так что если не разжуешь как с предыдущим ребусом в IDe то я это не потяну P.S. Мне украинский не особо сильно нужен. Но иврита я не знаю. А описать возможность подключения дополнительного языка в своем документе был бы не прочь. |
Posted by: cax on 27-02-2006, 00:02 |
>Для начала они упоминают 3 версии Unicode. 1.0, 1.1 и 2.0 Уже и 4 есть >Так что если не разжуешь Есть вещи, которые мне под силу, но требуют многих часов, чтобы сделать. На это особенно не рассчитывай. >codepage у русского и украинского один - 1251 Если 1251, то он уже есть (хотя я нигде не видел в 1251 буквы i с двумя точками - вот это и выясни). А документ http://groups.yahoo.com/group/mt13x9/files/Documents/ExSport_CP125x.rar (http://groups.yahoo.com/group/mt13x9/files/Documents/ExSport_CP125x.rar ты уже читал ? |
Posted by: ivani4 on 27-02-2006, 00:15 |
час розкидати каміння і час каміння громадити ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Попробовал у себя.Вместо буквы і пишет [ Поправимо.Всё остальное в порядке. kisav А что это за программа fontool?Где её можно взять? |
Posted by: kisav on 27-02-2006, 00:17 | ||||
Щас ознакомимся |
Posted by: kisav on 27-02-2006, 00:31 | ||
Надеюсь модераторы не оштрафуют меня за офтоп и рассовые предрасудки Я тоже fontoоl долго искал. Нашел. И... непользовал. В родном notepad-е все забацал. Copy+paste и все. |
Posted by: kisav on 27-02-2006, 00:59 | ||||
Ivani4, Ты смотрел свой фонт? В нем под #191 нет i ?
A по подробнее можно. [ идет под #91 |
Posted by: cax on 27-02-2006, 01:11 |
>А что это за программа fontool?Где её можно взять? И ещё вопрос до кучи: на кой она сдалась ? Если я ничего не путаю, МТК Font Creator и так умеет всё, что надо. |
Posted by: kisav on 27-02-2006, 01:26 | ||
Загрузил я MtkfontCreator а там есть такое (см картинку) ну я давай искать ее. Изначально думал что будет делать нечто на подобии .ico editor-а... Но пользую, как сказал выше, простым notepad для передвижки букв и их правки. Добавлю что после правки, загоняю .txt обратно в МТК Font Creator и получаю свой .mtf. А есть другой способ. Без notepad-а? Звиняйте за неточность. Исправлю. |
Posted by: cax on 27-02-2006, 01:39 |
Да нет, я именно о ноутпаде и говорил. Импорт-экспорт в MTK Font Creator-e, и всё такое... |
Posted by: ivani4 on 27-02-2006, 06:34 |
Для всього свій час, і година своя кожній справі під небом ,,,,,,,,,,,,,,,,,,,,,,,,,,, kisav Двд переделан по системе сах. Под поправимо подразумевал найти нужный нам [ и вписать вместо него i. [ присутствуют в двух верхних рядах. ,,,,,,,,,,,,,,,,,,,,,,,,,,, Я бачив роботу, що Бог був дав людським синам, щоб трудились над нею |
Posted by: Rvs on 27-02-2006, 14:04 |
kisav Насколько понял всё заработало!!! Но не понял какой из вариантов, последний что-ли?? И что за глюк с MP3?? Не ясно!!! |
Posted by: kisav on 27-02-2006, 20:00 | ||
то что в синем цвете - было сделано в начале. Но подчерки остались. После добавления остальных изменений (красный) - заработало. Если можно, добавь коменты после каждой измененной линии (мол это делает то-то а эта линия енто ). ROM:9BCE 90 FB 9A mov DPTR, #0xFB9A ROM:9BD1 E0 movx A, @DPTR ROM:9BD2 FF mov R7, A ROM:9BD3 64 20 xrl A, #0x20 -->#0 (думаю сдесь ты снимаешь запрет с показа букв с 0 по 32) ROM:9BD5 60 36 jz ROM_9C0D ROM:9BD5 ROM:9BD7 EF mov A, R7 ROM:9BD8 64 5F xrl A, #0x5F -->#0xFF (а сдесь я уже не знаю 5F - это номера, символы, и англ. заглавные ??? а так же порядковый номер '_'. Дальше сочинять не буду. Плохой из меня сказочник ) ROM:9BDA 60 31 jz ROM_9C0D ROM:9BDA ROM:9BDC EF mov A, R7 ROM:9BDD D3 setb C ROM:9BDE 94 2B subb A, #0x2B ; '+' -->#0xFF ROM:9BE0 40 05 jc ROM_9BE7 ROM:9BE0 ROM:9BE2 EF mov A, R7 ROM:9BE3 94 3A subb A, #0x3A ; ':' -->#0x7F ROM:9BE5 40 26 jc ROM_9C0D ROM:9BE5 ROM:9BE7 ROM:9BE7 ROM_9BE7: ; CODE XREF: ROM_9B32+AE j ROM:9BE7 EF mov A, R7 ROM:9BE8 D3 setb C ROM:9BE9 94 40 subb A, #0x40 ; '@' -->#0xA0 ROM:9BEB 40 05 jc ROM_9BF2 ROM:9BEB ROM:9BED EF mov A, R7 ROM:9BEE 94 5B subb A, #0x5B ; '[' -->#0xFF ROM:9BF0 40 1B jc ROM_9C0D ROM:9BF0 Вот перечень всех изменений по bank 3 00009BD4: 20 00 00009BD9: 5F FF 00009BDF: 2B 00 00009BE4: 3A 7F 00009BEA: 40 A0 00009BEF: 5B FF 0000DD23: 20 00 0000DD28: 5F FF 0000DD30: 2B 00 0000DD35: 3A 7F 0000DD3B: 40 A0 0000DD40: 5B FF Теперь об mp3: Вроде обрисовал картину с ними подробно. Но если нет, то вот сама картина |
Posted by: Rvs on 01-03-2006, 18:35 | ||
kisav
Я там занулил целый блок, а у тебя вроде не видно!!! |
Posted by: kisav on 01-03-2006, 20:39 | ||||
А ты не мог бы дать начальный адрес этого блока? Вот вроде нашел сам. Правильно? ROM:DD43 00 nop ROM:DD44 00 nop ROM:DD45 00 ROM:DD47 00 ROM:DD48 00 ...... ROM:DD49 00 ROM:DD4A 00 ROM:DD4C 00 nop ROM:DD4D 00 nop Занулил. В двух местах с 39BF2 по 39BFC с 3DD43 по 3DD4D Изменений не получил Может не там занулил? |
Posted by: Rvs on 02-03-2006, 20:24 | ||||
kisav Смотри сам, имеем в оригинальной процедуре:
Если будешь смотреть на Font, то увидишь какие символы хотели пропустить при печати. Зачем эти лыжники (програмеры из LG), так заморачивались я не знаю. Нам надо убрать ограничение на вывод символов. Вот так выглядит оригинальная процедура у других аппаратов:
Я думаю ясно зачем там вписывается 00 и FF соответственно (смотри описание cax). По идее если вообще занулить весь блок проверки будут проходить все символы. Попробуй у себя занулить с адреса DD21 по DD5D включительно, в другой процедуре тоже. Если не заработает, ну тогда остаётся метод в слепую. А именно поискать для начала такие команды mov R3, #0x5F, и заменить 5F на пример на "*",(вроде в Bank4, есть намёк) если вдруг вместо "_", появиться "*", значит это то место и можно его покопать. Если не найдется тогда искать все значения #0x5F, с любыми регистрами R0, R1,R2,R3,R4,R5 и тоже заменять, для этих целей в IDE Alt+I, заменять только mov. Сложность здесь большая, менять скопом нельзя, т.к. скорее всего повиснет, надо по одной команде и пробовать, либо пропускать анализируя смысл. Если не заработает то может быть в ARM-е что-то намутили, т.к. внешний вид браузера меняется, то вполнереально!!! Найдёшь место укажи адрес посмотрим дальше!!! Дерзай!!! |
Posted by: Rvs on 02-03-2006, 20:27 |
cax А у тебя какие-то вопросы с быстрым стартом DVD, расскажи в чём соль??? Может что знаю!!! |
Posted by: cax on 02-03-2006, 23:50 |
Никакой соли. Воспроизведение кучи разных DVD начинается с неотключаемой рекламы, и есть впособ эту радость вырубить нафиг, только я пока не разобрался как. Rvs, а что ещё ты интересного умеешь ? Вот, например, Энди разобрался, как в старые прошивки добавить переход на следующий/предыдущий MP3 по нажатию на ">>|" и "|<<", ты в этом рубишь ? Или, например, я в своём портативном DVD не могу найти где отрабатывается одна из кнопок на панели, которой нет в таблицах обработки нажатий, сможешь разобраться ? |
Posted by: kisav on 03-03-2006, 05:23 | ||||||
Спасибо за детальный расклад
В xvi32 делал поиск на 7B 5F и заменял на 7B 2A. Так можно было делать или нет? Заменял сразу в каждом BANKе и сразу проверял В Bank 4: нашлось 4 раза. Нет изменений В Bank 3: нашлось 3 раза. Нет изменений В Bank 0: нашлось 3 раза. Нет изменений В Bank 6: нашлось 4 раза. Но это уже вроде за пределами 8032. Зависает
а где ? С 0 по 5 Bank? |
Posted by: Rvs on 03-03-2006, 16:35 | ||
cax По поводу UOPа, я думаю ты это читал http://groups.yahoo.com/group/mt13x9/message/5910 (http://groups.yahoo.com/group/mt13x9/message/5910. Andy007 утверждает что после этих изменений всё нормально!!! у меня в прошивке вот так вкл/выкл Q-Play работает:
Что каксается SKIP в MP3 вопрос интересен и для меня, сейчас переробатываю новый ARM, добавляю функционал. Если подскажешь как найти обработчик клавиш, то разберусь и со SKIPом. Надо ещё попробывать спросить у Andy007, вроде ты его хорошо знаешь в чём проблем??? А ты сейчас с какой версией ARM работаешь???? |
Posted by: Rvs on 03-03-2006, 16:59 | ||
kisav
Да и буть внимателен, т.к. Bank5, заканчивается адресом 5ECD9F, дальше нельзя.... |
Posted by: Rvs on 16-03-2006, 10:49 |
? |
Posted by: ivani4 on 21-03-2006, 12:10 |
cax Фонт создаваемый при помощи MtkFontCreator отображается в MTKRemaker ввиде белых букв с чёрной окантовкой.А каким образом создается фонт с чёрными буквами и белой окантовкой? Пример прилагается. |
Posted by: cax on 21-03-2006, 13:57 |
Наверняка это можно сделать и проще, но я делаю так: 1) создаю белый фонт с чёрной окантовкой 2) пишу его в формат .txt В текстовом редакторе: 3) меняю местами звёздочки и минусы (в три замены: "*"->"%", "-" -> "*", "%"->"-") Иногда ещё надо бывает точки заменить на пробелы. 4) импортирую обратно и конвертирую в .mtf |
Posted by: ivani4 on 21-03-2006, 14:25 |
Идея понятна.Спасибо. |
Posted by: Rvs on 21-03-2006, 18:33 | ||
Привет сах!!! Есть проблемки!!! Суть такова. Создал два пункта меню:
Отображаются всё ок, но .... Стоит нажать кнопку "вниз" или "enter" как сразу выбрасывает из меню в браузер, т.е. двинуться никуда нельзя только назад. Тогда я ради интереса взял скопировал три пункта меню из --General-- в --MPEG4--. При этом в старом месте всё продолжает работать, а в новом перемещаюсь нормально, но при нажать на "enter" опять выбрасывает. Ремакер во всех случаях показывает всё нормально. Подскажи в чём засада??? Вообще можно ли перенести меню из одной прошивки в другую??? |
Posted by: cax on 21-03-2006, 19:49 |
Гм. Просто скопировать меню - недостаточно. Как ты знаешь, в меню также указываются: 1) адрес ячейки EEPROM, где хранится выбранное значение 2) (если не 0) адрес ячейки общей памяти (нужно для процедур в ARM) 3) адрес обработчика меню, вызываемый при выборе пункта (у тебя EB80 в том же банке, где само меню) За всем этим и в 8032, и в АРМ могут стоять какие-то процедуры, читающие выбранные в меню значения. Но если правильно всё подвесить - будет работать. Вот если бы мне кто сказал, где в общей памяти хотя бы одна свободная ячейка... Уже который месяц спрашиваю - никто не отвечает. Наверное, таких нет. |
Posted by: Rvs on 21-03-2006, 20:49 | ||
cax Я копировал уже рабочие пункты меню, т.е. те которые работали и продолжают работать после моих доработок. Я брал банальный Set TV Standartd и вставил его в созданный мной пункт --MPEG4--, конечно подправил таблицу в меню и пункт появился, но дальше....?????? А эти пункты которые я привёл для примера, это созданные с чистого листа, но и они появляться, а дальше....????? Адрес EB80 это я уже экспериментировал думал в нём проблема, переставлял как мог обработчик вплоть просто до указания на RET.
адрес ячейки EEPROM я указал не используемый ни кем, тут вроде всё норма, а вот пункт 2) я не понял. Я всегда считал что там указывается адрес в ARM-е для хранения значения, или не так??? по подробней плиз... У тебя в прошивке 3. No Pic. | Subtitle | Preferred Subtitle Language 0008 FFFF 00C7 011E 000B 0028 0009 0000 FF3267 07DB - ROM:3285 EEPROM = 0028 и ARM = 0009, получается 0009 адрес свободной ячейки общей памяти, как же ты её нашел??? Общая память - это ты имеешь ввиду операцию вида mov DPTR, FBD2 mov A, #0x12 movx @DPTR, A А FBD2 соответственно Общая память??? Брррр что-то я окончательно запутался, разъясни....????? Попробуй в своей прошивке организовать меню так: 1. Настройка - Главная страница | Меню установок 00 008A 026C 07 FFD22E 0001 - ROM:29E4 1. Pic 25 | Общие настройки | Общие настройки 0003 0019 008B 0090 0001 0000 0000 0000 000000 0000 - ROM:2957 2. Pic 26 | Настройка аудио | Страница настройки аудио 0003 001A 01BB 01EB 0009 0000 0000 0000 000000 0000 - ROM:292D 3. Pic 27 | Настройка видео | Настройка видео 0003 001B 014D 01A1 000A 0000 0000 0000 000000 0000 - ROM:296C 4. Pic 28 | Предпочтения | Страница предпочтений 0003 001C 00CE 00D2 0006 0000 0000 0000 000000 0000 - ROM:2996 5. Pic 50 | Настройка субтитров MPEG4 | Страница настройки субтитров MPEG4 0003 0032 04AD 04AE 0018 0000 0000 0000 000000 0000 - ROM:CF85 6. Pic 29 | Установка пароля | Установка пароля 0003 001D 008E 00D1 000B 0000 0000 0000 000000 0000 - ROM:29AB 7. Pic 30 | Выход | Выход из настроек 000E 001E 008F 00D3 0011 0000 0000 0000 000000 0000 - ROM:29C0 Может тогда найдёшь те подводные камни на которые я попал.... Жду с нетерпением ответа..... |
Posted by: Rvs on 28-03-2006, 15:21 |
cax Подскажи как снять дамп EEPROM, для поиска сободных ячеек?? |
Posted by: cax on 28-03-2006, 16:55 |
>3. No Pic. | Subtitle | Preferred Subtitle Language >0008 FFFF 00C7 011E 000B 0028 0009 0000 FF3267 07DB - ROM:3285 >EEPROM = 0028 и ARM = 0009 Промахнулся. Адрес в EEPROM = 000B, адрес в ARM (он же общая память, в которую обычно пишут из 8032, а читают из АRМ) - 0028. В коде АРМ значение достаётся с некоторого адреса плюс 0028. Если в меню стоит 0000, то не используется (как у тебя). А вот то, что вместо 6-значного числа FFxxxx (не помню его назначения - может ссылка на поинтеры опций ?) у тебя везде нули - настораживает. Дамп EEPROM я никогда не делал, но полагаю, что делается он кабелем при помощи MtkTool. |
Posted by: ivani4 on 11-04-2006, 08:35 |
cax В дополнении к тому празднику жизни, который мне устроил Мороз,не могли бы мы внедрить ещё одну твою разработку?Меня интересует одинаковая высота субтитров как в PAL так и в NTSC.Можем мы справится с такой задачей под твоим чутким руководством? |
Posted by: moroz on 11-04-2006, 09:04 | ||
|
Posted by: cax on 11-04-2006, 09:10 |
moroz, скорее всего речь о DVD Premier ivani4, кажется, не на шутку обрадовался выходу твоей прошивки с поддержкой разворота иврита Я угадал ? По поводу PAL/NTSC, возьми в руки MTK Windows и отрегулируй в окне для субтитров его положение и параметр PalDY так же, как в моих прошивках, и будет тебе счастье. |
Posted by: ivani4 on 11-04-2006, 09:31 | ||
|
Posted by: moroz on 11-04-2006, 09:32 |
Всегда к вашим услугам |
Posted by: ivani4 on 11-04-2006, 09:48 |
сах писал: высота субтитров в режимах PAL и NTSC теперь одинакова ............................................................................................. Я понял это как высоту букв.Просто в NTSC буквы более высокие чем в PAL .А как видно из твоего ответа, с советом отрегулировать параметр PalDY ,речь идет о высоте т.е. о местонахождении субтитров на экране TV. Т.е. твоя формулировка была понята мной не правильно. |
Posted by: cax on 11-04-2006, 12:04 |
Да, мне следовало писать "абсолютная высота зоны показа субтитров". А что касается размера букв в PAL/NTSC, посуди сам - если не делать масштабирование, которое искорёжит буквы, и не заводить отдельный шрифт для каждого режима (ни то ни другое мы делать не умеем в любом случае), то буквы получатся разного размера, так как в PAL и NTSC просто-напросто пиксели разной высоты, т.к. резолюция экрана по вертикали у них разная. |
Posted by: ivani4 on 11-04-2006, 16:47 |
cax С этим вопросом всё ясно.А как по поводу этого: - для просмотра субтитров предлагается на выбор 2 разных ивритских и 2 разных русских шрифта (поменьше и побольше), итого 4. Мне не обязательно четыре шрифта.Хотя бы два.Сможем сделать? |
Posted by: cax on 11-04-2006, 17:00 |
Без знаний ассемблера - вряд ли, в противном случае мне придётся всё делать самому. Я весь в ожидании новых версий и толковых разъяснений по поводу тотальной замены всего кода RISC - это позволит добавить поддержку таких вещей, как OGM/OGG, packed bitstream, custom matrixes, непропадание субтитров, форматы sub/ass/txt, Nero Digital, быстрый старт mp3 и т.д. в старые плейеры. Но пока что в новых версиях есть много заморочек - например, не воспроизводятся некоторые виды дисков, проблемы с интерфейсом, отсутствует поддержка DTS passthrough/downmix, наблюдаются зависания, инструкция по замене не совсем ясна, и так далее, так что я пока подожду, что скажет коллективный разум форума mt13x9 на yahoo. |
Posted by: ivani4 on 11-04-2006, 17:10 | ||
|
Posted by: Rvs on 11-04-2006, 17:37 |
cax У меня есть хороший RISC (4Mb) от Pekton, правда маркирован как старый, но просил ребят тестили сказали что есть все вкусности последних, за исключением DIVX Menu. Нет глюка с расинхроном в Mpeg4, плюс заработал DTS в аналог, что небыло даже в заводских прошивках и даже не обещали!!!! Я уже с десяток ARM пересадил, вроде сложностей не было. Единственный минус у меня DRAM 4Mb и Flash 1Mb. А новые почти все под 8-2. Но ребята умудрились увеличить до 16-2. Вот тоже думаю и тогда вопросов не будет. А так без переделки всё работает, но только если запустить фильм с большим битрейтом виснет не хватает память для буфера. Если есть вопросы кидай помогу....!!!! |
Posted by: cax on 11-04-2006, 18:39 |
Rvs, вопросы будут и много Я про этот Peekton знаю, и мне нужно именно для плейеров с 4М DRAM. Увы, но на зависания я не согласен, подожду ещё пока проблему решат. Пусть лучше замедляется или пропускает кадры, но не зависает ! Далее - есть ли известная проблема с именем каталога (не отображается или показано как "uuuuuuuuuuuuuuuu") ? По поводу DTS - как его проверить ? У меня нет ни единого DVD с ним, не подскажешь где образ диска для проверки взять ? И ещё - DTS passthrough (через декодер) и DTS downmix (через аналог) - это разные вещи, что именно работает ? Это после патча, который опубликовали на яху ? Далее, есть ли в нём такие добавки от наших гуру, как чтение субтитров с несовпадающими именами и т.д. ? Есть ли в нём место для добавлений (я имею в виду, увеличивали ли его при помощи MTK ARM Resizer) ? Поддерживает ли он OGM/OGG ? Если я возьмусь за эти операции по трансплантации, подскажешь где и что ? Скажем, в скольких местах в 8032 требуется замена адресов, и нужно ли что-то ещё ? Если я правильно помню, замена идёт в ARM_GetChar, ARM_PutChar, ARM_Unk1-7. Первые два я найду, а как искать остальные ? |
Posted by: moroz on 11-04-2006, 19:07 |
Я знаю ответ на последний вопрос и спешу блеснуть эрудицией - надо запустить IDC скрипты и ИДА сама все найдет (кроме, почему-то, 7-го, а их точно 7?) |
Posted by: Rvs on 11-04-2006, 19:18 |
cax 0)Да она 4Mb!!! 1) Зависаний нет, сам лично смотрел на ней с 10-к, ребята тестиры сказали что точно нет проблем!!!! 2) С 'uuuu' разобрался в 8032 неправильный адрес чтения названия каталога, кажись кто-то специально заложил ошибку К ARM особого отношения нет, если на твоём 8032 отличный скажу правильный адрес и будет всё ок!!! 3) У MTZ есть тестовый avi с DTS, найду ссылку отпишу, не вопрос!!! 4)Идёт DTS в аналог, смотрел "мисис и мистер Смит" в DTS, офигел звук в аналог супер!!!! На мой взгляд DTS downmix это когда только в стерео, а здесь все 5.1 на ура работают, и он ещё разводит и в стерео, делает микс. Сказать тяжело все эти вкусности после патча появились или нет. Т.к. не могу разобраться где ARM оригинальный, а где шаловливые ручки покопались, я с пяток клонов перебрал пока не остановился на этой, вроде все её называют v2. И кажеться её увеличили, уж очень много пустого места!!! 5)Вот субтитрами тяжко, не проверял, т.к. особой надобности не было, но вроде что-то есть хорошое попрошу ребят, проверят отпишу!!! 6)По замене читал несколько файлов поначалу было тяжко, но потом появилась инфа от Ati2 "How to use MTK Risc in BBK firmwares" и всё встало на свои места. Осталось одно два белых пятна, но благо на них не нарывался (в описание третий пункт "если у вас это, то...." у меня не было ни разу). А так ты всё правильно понял замена адресов в этих процедурах и всё работает. В описании от Ati2 нет особых привязок к названиям функций, только сигнатуры, кол-во вхождений и асм что-бы не ошибиться. Разжевал супер. Вот не могу вспомнить где взял, если не найдёшь, вышлю на мыло!!! Иду спать!!! Если какие вопросы то на завтра!!! |
Posted by: ivani4 on 11-04-2006, 21:58 | ||
cax,диски двд с DTS не проблема.Смогу помочь если потребуется . |
Posted by: cax on 15-04-2006, 23:07 |
Rvs, я уже налетел на первые грабли Я попытался сперва искать по сигнатурам Unk_1 - Unk_6 и ARM_GetChar, ARM_PutChar, потом по руководству BBK-MTK. Оказалось, что поиск по сигнатурам документа BBK-MTK даёт на 3 места больше для замены, и все эти 3 места используют ADDRESS_3. Это хорошо, хоть и непонятно в каких процедурах эти 3 места сидят. А непонятки у меня такие (прежде чем я начну баловаться с плейером): 1) ADDRESS_1, ADDRESS_2, ADDRESS_3, SHARED MEMORY используются в заменах, а как дела обстоят с CDTEXT BUFFER ? Я где-то слышал, что его тоже надо как-то патчить (об этом нет в документе) 2) Оба моих плейера весьма старые, и в отличие от более новых имеют слегка другие сигнатуры (пример приведу ниже). Означает ли это, что я должен ещё что-то как-то патчить или так сойдёт ? Пример: Unk_2: Suggested: D3 10 AF 01 C3 C0 D0 E4 2F F5 47 EE 34 ?? F5 46 E4 34 ?? F5 45 E4 33 F5 44 90 F8 60 In HU3899: D3 10 AF 01 C3 C0 D0 E4 2F F5 46 EE 34 ?? F5 45 E4 34 ?? F5 44 E4 33 F5 43 90 F8 60 Та же бодяга в Unk_3, Unk_6 и здесь: ROM:5F66 75 44 F8 mov RAM_44, #0xF8 ROM:5F69 75 43 38 mov RAM_43, #0x38 (в документе сказано искать "75 42 38", а у меня вместо 42 есть 43) Может подскажешь чего ? |
Posted by: cax on 16-04-2006, 07:13 |
Разбрался, отвечаю сам себе: это всё не важно и можно заменять RISC Rvs, поделись своей версией RISC для плейеров с 4Мб DRAM. |
Posted by: Rvs on 17-04-2006, 09:40 |
cax Ты тоже нарвался на mov RAM_44(43)(42), когда я увидел первый раз почесал репу мин. 5 и отправился дальше!!! Уменя плеер на шнурке поэтому сильно не раздумывал!!! Я сразу не обратил внимание, но пропали MP3 тэги. Посмотрев внимательно SHARED MEMORY увидел что вместо символов в памяти находиться '.'. Непонятно. Обрати внимание на это!!!! |
Posted by: Rvs on 17-04-2006, 19:33 |
cax Ты ARM получил??? Ты MP3 тэги не смотрел или у тебя всё в норме???? Вписал к себе функцию из ямады(NewAge) там нормально отображаються, всё равно ноль, где засада.... |
Posted by: cax on 19-04-2006, 00:09 | ||
Можно с этого места поподробнее ? У меня имя каталога то пустое, то только одна буква показывается - короче, ерунда какая-то. Где в коде 8032 и что именно надо проверить и т.д ? MP3-тэгами никогда не занимался, но если скажешь какой именно код надо добавлять в 8032 и как его привязывать к конкретной прошивке - то и я буду уметь. |
Posted by: Rvs on 19-04-2006, 09:30 |
cax Хм... А буква одна, но хоть правильня отображаеться или 'ъ'??? Тогда постепенно будем разбираться... В Bank1, процедура DIR_FileBrowser, а в ней вызов процедуры DIR_DispDirLine. В самом начале процедуры после вызова DIR_DirLineClear, идёт чтение адреса названия каталога из SHARED MEMORY, во тут и собака порылась . У меня заработало если читает из адресов 02 2B; 02 2C; 02 2D; 02 2E. Посмотри какие у тебя??? |
Posted by: cax on 20-04-2006, 11:16 |
У меня так: ROM:6770 ; _______________ S U B R O U T I N E _______________________________________ ROM:6770 ROM:6770 ROM:6770 DIR_DispDirLine: ; CODE XREF: DIR_FileBrowser+70p ROM:6770 ; DIR_FileBrowser+77p ROM:6770 20 44 03 jb RAM_28.4, ROM_6776 ; Display folder name on directory line ROM:6773 02 68 AA ljmp DIR_DirLineClear ; Clear directory line ROM:6776 ; ___________________________________________________________________________ ROM:6776 ROM:6776 ROM_6776: ; CODE XREF: DIR_DispDirLinej ROM:6776 7F 31 mov R7, #0x31 ; '1' ROM:6778 7E 02 mov R6, #2 ROM:677A 12 04 03 lcall BS:47_B0:EEE7 ROM:677D 90 FB 57 mov DPTR, #(ROM_B56+1 - ROM_1000) ROM:6780 EF mov A, R7 ROM:6781 F0 movx @DPTR, A ROM:6782 7F 32 mov R7, #0x32 ; '2' ROM:6784 7E 02 mov R6, #2 ROM:6786 12 04 03 lcall BS:47_B0:EEE7 ROM:6789 90 FB 56 mov DPTR, #(ROM_B56 - ROM_1000) ROM:678C EF mov A, R7 ROM:678D F0 movx @DPTR, A ROM:678E 7F 33 mov R7, #0x33 ; '3' ROM:6790 7E 02 mov R6, #2 ROM:6792 12 04 03 lcall BS:47_B0:EEE7 ROM:6795 90 FB 55 mov DPTR, #(BS:359_B4:A3A1+2 - ROM_1000) ROM:6798 EF mov A, R7 ROM:6799 F0 movx @DPTR, A ROM:679A 7F 34 mov R7, #0x34 ; '4' ROM:679C 7E 02 mov R6, #2 ROM:679E 12 04 03 lcall BS:47_B0:EEE7 ROM:67A1 90 FB 54 mov DPTR, #(BS:359_B4:A3A1+1 - ROM_1000) ROM:67A4 EF mov A, R7 ROM:67A5 F0 movx @DPTR, A Другими словами, ты предлагаешь заменить 31-34 на 2B-2E ? |
Posted by: Andy007 on 20-04-2006, 12:23 |
cax, rvs Посоветуйте арм 8/2 для старых 8032 с фичами: dvd-audio, ogm, nero digital, divx menu, dts sacd и usb не важны. |
Posted by: cax on 20-04-2006, 13:34 |
Для 4 Мб DRAM таких нет, а плейерами с 8Мб я ещё не занимался. Если верить сайту http://hej456.pt.to/ (http://hej456.pt.to/, то самый лучший RISC с упомянутыми фичами - в одной из разновидностей Peekton 6006. Ещё писали о том, что версии 05.00.06.00 и старше вообще не работают в старых 8032, а также в старых 8032 невозможно получит DivX меню даже после замены RISC. |
Posted by: Andy007 on 20-04-2006, 14:02 |
Меню в старых 8032 я умею добавлять - в принципе тоже самое что и skip по mp3:) Осталось найти работоспособный риск. |
Posted by: cax on 20-04-2006, 14:59 |
Andy007, есть вопрос. У меня кнопка pause, будучи нажата во время перемотки, сперва входит в паузу, а если нажать ещё раз - переходит в play. Ты умеешь сделать так, чтобы она сразу в play переходила ? И ещё - насколько сложно mp3-теги прикрутить ? |
Posted by: Andy007 on 20-04-2006, 15:11 |
cax, по поводу паузы - не думал ни разу на эту тему, но мысль вот какая - посмотреть как устроен обработчик ее сейчас - если по этой кнопке выполняются 2 действия по условию играется - не играется, то должна быть проверка shared memory 0x81 на предмет текущего playback mode. Вот тут и надо подкрутить проверку на перемотку. Получится - отпишись Теоретически теги прикрутить не сложно, главное чтобы арм поддерживал - берешь прошивку с тегами берешь оттуда процедуру, перетаскиваешь целиком к себе и заменяешь все используемые адреса переменных и процедур. Ну и добавляешь вызов этой функции. |
Posted by: cax on 20-04-2006, 15:36 |
Rvs, приведённый мной фрагмент встречается 5 раз, и все 5 - в 1-м банке. (7F ? 7E 02 12 ? ? 90 ? ? EF F0 7F ? 7E 02 12 ? ? 90 ? ? EF F0 7F ? 7E 02 12 ? ? 90 ? ? EF F0 7F ? 7E 02 12 ? ? 90 ? ? EF F0) У тебя есть что сказать по этому поводу ? |
Posted by: Andy007 on 21-04-2006, 10:26 |
cax - по твоей последовательности - это получение из shared memory 32битного указателя. Это может быть в принципе что угодно. от тегов до имени директории или файла. надо конкретнее по месту смотреть. |
Posted by: Rvs on 21-04-2006, 11:03 |
cax Извиняюсь за задержку ответа!!! Да всё так. Заменяй везде где находиться, таким образом я заставил говорить прошивку от сюда http://zapata07.pt.to/ (http://zapata07.pt.to/ Andy007 Вроде где-то видел ARM со всеми этими вкусностями, поищу!!! По поводу тэгов. Взял прошивку от NewAge за основу в ней тэги работают нормально, заменил только ARM, больше не трогал ни байта. Причём у ARM-ов адреса одинаковые, поэтому только сменил в ReMaker-е RISC. Залил к себе всё работает, тэги не кажет!!! ARM тэги поддерживает, ни понимаю!!! Подскажи что передается в процедуру PS_B_0x41, я хочу ручками внести значения для всех переменных и посмотреть что произойдёт??? Вообще как она работает что ей передается,что и куда выводит???? Ты говорил что в таблице содержится длина полей тэгов!!! Непонятно 0, 1, 2, 3, 4??? Это длина поля: один, два, три ... байта??? Может это смещение в SHARED MEMORY??? |
Posted by: Rvs on 21-04-2006, 12:06 | ||
cax
Я такие вещи проверяю легко. Вычисляю адрес (SHARED MEMORY + Адр.) ввожу в его в MTKToll в режиме Expert. Снимаю Damp (Byte) 4байта. Не забыть поставить галочку Little endian. Если получившийся 4-х байтовый адрес находиться в пределах SHARED MEMORY, тогда ввожу уже его и снимаю Damp 256 байт. И там уже видно что это такое!!!! |
Posted by: Rvs on 21-04-2006, 12:33 | ||
Andy007 Вот что я нашёл:
|
Posted by: Andy007 on 21-04-2006, 14:20 |
Вот именно - а вот чтобы еще и двд-аудио, такого нет |
Posted by: Andy007 on 21-04-2006, 14:21 |
Ты уверен что тебе надо PS_B_41, а не 47? |
Posted by: cax on 21-04-2006, 15:38 |
Rvs, во-первых, со старым 8032 версии 06.00 и старше не стартуют вообще, а во-вторых, SACD и DVD-Audio имеет смысл только на тех плейерах, которые имеют соответствующие выходы - читать здесь: Post Link: Какой нормальный привод можно купить в Израиле (http://netlab.e2k.ru/forum/index.php?showpost=562640 |
Posted by: Rvs on 21-04-2006, 16:48 | ||||
Andy007
Вот процедура которой пользуеться NewAge в прошивке для Xoro400Pro_RC2_v1b9. По адресу FC79 он вызывает PS_B_0x41, этуже процедуру он вызывает и в прошивке для Ямады 6600. Попробую 47, мало-ли шаманы в бубен настучали!!! Я нашел месагу от NewAge, в ней говорит что по адресу lcall ARM_PutChar -> 0x0241 = 0x01 -> OFF или 0x00 -> ON субтитры. В прошивке где я взял ARM, да действительно вкл. либо выкл. субтитры. А у меня реакции ни какой!!! А ты что-то пишешь туда???
cax Вот не припомню точно но кажеться я на своём запускал прошивки 06.00, не знаю правда старый или нет у меня 8032, но аппарат 4/1!!! А так все входы есть, только DVD-Audio нет, а так интересно!!! |
Posted by: cax on 21-04-2006, 16:56 |
Rvs: показ каталога починился, спасибо огромное. Единственная непонятка - я делал замену в 5 местах, и в 5-м было не 4 адреса 31-34, а 5 адресов - 30-34. Я их заменил на 2А-2Е, но не знаю, правильно ли поступил. Кстати, отпиши о своей находке в mt13x9, а то, похоже, там никто не знает и все мучаются. |
Posted by: Andy007 on 21-04-2006, 17:25 |
Rvs Пробовал я этот RISC. Все нормально, меню работает у дивикса, но двд-аудио нету. В моей прошивке - точно 47 используется. |
Posted by: Rvs on 21-04-2006, 17:45 | ||
cax 5-ть адресов хмм.. интересно..., проанализирую твою прошивку. Но раз работает ок!!! У меня с английским тяжело (плохо в школе учился ), понимать понимаю, но выразить тяжело, несколько раз писал не поняли, так что если не тяжело отпиши сам!!! Andy007
|
Posted by: Rvs on 22-04-2006, 11:41 | ||
cax Моё опущение, по вопросу ‘uuuuu’!!! По мимо твоего варианта, когда чтение происходит, в одной процедуре, я встречал вариант другого типа:
При таком варианте менять надо одно значение, но также 4-5 раз!!! Может поэтому NewAge не понял!!! |
Posted by: cax on 23-04-2006, 12:44 |
Господа хорошие, a что вы знаете про полное пропадание звука при пересадке RISC ? Я видел на mt13x9 описание какого-то "DAC sound patch", где предлагалось в определённом месте поменять 72 на C2, но мне это не помогло. Описание патча: http://groups.yahoo.com/group/mt13x9/message/5760 (http://groups.yahoo.com/group/mt13x9/message/5760 |
Posted by: moroz on 23-04-2006, 21:44 |
Застрял с IDA. Патчу сейчас ARM, наковырял уже приличную базу данных. В какой-то момент ARM был расширен с помощью MtkArmResizer. Я сделал обратно "Reload the input file" и продолжал как ни в чем не бывало. Но теперь, когда я пытаюсь создать пропатченый .bin файл (Create .exe file), он выходит СТАРОЙ длины! Подправил соответствующе длину сегмента ROM - не помогает. Как выйти из положения, чтобы всю работу заново не переделывать?!! |
Posted by: cax on 24-04-2006, 01:02 |
Alt-S (изменить текущий сегмент), указать новый адрес конца сегмента, снова сделать reload. |
Posted by: cax on 24-04-2006, 02:18 | ||
Значит так. Звук не пропал. Вот что есть на самом деле: - мой тестовый видеофайл имел звук типа "PCM audio 8000Hz 64 kb/s (1 chnl) ". Звук из него слышен на оригинальных прошивках и Апекса и Юндая, но после замены RISC на Peekton-овский звука на этом файле больше нет ни на одном из плейеров. - Другие нормальные AVI с MP3 вполне себе воспроизводятся на обоих ДВД и до и после замены RISC. - Апекс на оригинальное прошивке не умел делать DTS downmix, теперь умеет. - Юндай на оригинальное прошивке УМЕЛ делать DTS downmix, теперь НЕТ. - Патч Rvs для имени каталога Апексу не нужен, а Юндаю безразличен. Юндай вообще ведёт себя странно - раз показывает имя каталога верно, другой - неверно, и чаще всего - неверно. - Есть ощущение, что Апекс стал дольше читать DVD-R, но это требует доп. проверки. |
Posted by: moroz on 24-04-2006, 06:50 | ||
|
Posted by: cax on 24-04-2006, 13:45 |
Сделай другой трюк - скопируй невлезающие байты на более младшие адреса, потом восстанови вручную же |
Posted by: Rvs on 25-04-2006, 18:22 | ||
cax
А ты память не пробывал смотреть через MTKTool, что там реально всякий мусор???? |
Posted by: cax on 25-04-2006, 19:59 | ||
Если опишешь поподробнее, с примерами о своём плейере и адресами - типа, вписываю в такое-то окошечко такой-то адрес, жму такую-то кнопочку и т.д., а то я что-то туплю. Там ведь этих видов памяти штук 10, не меньше (у меня MtkTool 1.31). Апдейт. Вроде как нащупал как читать - надо выбрать не "ARM DRAM", а "DRAM (BYTE)", после чего по адресу 0338C400 я вижу знакомое содержимое SHARED MEMORY. Но что-то по адресам 0338C400+022B и 0338C400+0231 и около них не наблюдается никаких поинтеров в SHARED MEMORY. Может покажешь как это у тебя было или другой умный совет дашь ? |
Posted by: Rvs on 26-04-2006, 11:44 |
cax Распишу по подробней: Запускать MTKTool в режиме Expert. Выбрать окошко Memory Dump, поставить точку возле DRAM (Byte). Ввести адрес, указать кол-во байт для считывания и START!!! Например: SHARED MEMORY + Адр. папки => 0338C400 + 022B = 0338C62B. Вводим полученный адрес, и ставим галочку Little endian. Считываем и получаем адрес 033828DC. Теперь вводим этот адрес, убираем галочку Little endian, кол-во байт = 64(хватит и меньше...). И вижу 01 01 08 5C 48 69 74 5F 46 4D 5C => 01 01 08 \Hit_FM\. 08 – Пока не знаю что означает. 01 01 – Папку выводить 00 00 – Папку не выводить Пример для диска с одной папкой в корне и двумя файлами. При нескольких папках в корне, немного сложнее, но в любом случае если войти в папку то она появиться на своём месте по второму адресу. Адрес 033828DC может меняться, в зависимости от диска. Попробуй!!! |
Posted by: moroz on 26-04-2006, 16:46 |
08 - это случайно не длина строки? |
Posted by: Rvs on 26-04-2006, 18:36 |
moroz Да похоже!!! Не проверял пока!!! |
Posted by: awk on 04-05-2006, 09:06 |
Уважаемые cax и ivani4! Прочитал вашу переписку и попробовал русифицировать своего китайца. У меня вместо русского - смесь английских букв и цифр. Все сделал по описанию cax. Вытащил файл ARM, нашел в нем "41 18 10 39 C9 7B" в двух местах, записал адреса, где находится каждый "10 39 C9 7B". Там, где "сообщения С++ об ошибках" вписал подпрограмму 10 39 01 B4 88 7B 04 28 C8 7B 07 D0 88 7B 05 28 C8 7B 0E D0 0E E0 00 00 00 00 00 00 01 28 01 D1 A7 30 04 E0 51 28 01 D1 67 30 00 E0 B0 30 01 E0 00 00 50 38 F9 28 00 D9 F5 38 01 1C 01 BC 70 47. В программу BCalc посчитал адреса, в MTKReMaker заменил ARM. Залил в китайца, CD и DVD читает, MP3 и прошивочный диск не видит. Восстановил старую прошивку через кабель. Проверил, после чего начинается такая бодяга: как только я меняю хотя бы один из "10 39 C9 7B" на посчитанные BCalc адреса. В чем засада? Объясните бестолковому. Может адреса считаю неправильно? У меня так: 23d7a- 04 f0 57 f8 23dae- 04 f0 3d f8 адрес подпрограммы 27e2d |
Posted by: cax on 04-05-2006, 11:33 |
Проверил твои адреса и код, вроде всё сделано правильно. По адресу 23d7a было 10 39 C9 7B, стало 04 f0 57 f8 По адресу 23d7a было 10 39 C9 7B, стало 04 f0 3d f8 По адресу 27e2d были тексты сообщений об ошибках, теперь там подпрограмма. Всё так, я ничего не перепутал ? Если ты вынимал АRM с распаковкой, и если при работе с прошивкой MTK ReMaker ни на что не ругался - тогда я даже не знаю в чём проблема. |
Posted by: Andy007 on 04-05-2006, 12:06 |
Проблема очень проста - твоя инструкция к сожалению не универсальна. WriteFilename2List может быть реализована в разных армах по разному. Встречал уже 3 варианта. |
Posted by: awk on 04-05-2006, 12:31 |
CAX, все именно так, а MTK ReMaker ругается не очень понятно на что. Вроде просто предупреждает о возможных проблемах. Andy007, а нет такой же понятной инструкции по решению проблемы в других ARM? Чтобы через HEX редактор, а не IDA. Об ассемблере я имею крайне слабое представление. |
Posted by: Andy007 on 04-05-2006, 12:57 |
Такой же нет. Особенно без IDA |
Posted by: Rvs on 04-05-2006, 14:10 | ||
Andy007 Помоги разобраться в проблеме, как точно найти обработчик кнопок пульта!!!! В яхе нашел вот это
Ну а дальше что, не догоняю.... Можешь объяснить для примера на кнопке "Пауза" ??? |
Posted by: Rvs on 04-05-2006, 14:15 | ||
awk
|
Posted by: Andy007 on 04-05-2006, 14:45 |
rvs, Ты у себя в прошивке цитируемый кусок нашел или нет? Код паузы если не ошибаюсь - 14 |
Posted by: awk on 04-05-2006, 15:13 |
RVS, ты совершенно прав. MP3 зависает - начинает крутить диск, на экране надпись "ЗАГРУЖАЕТСЯ", и после этого ни на пульт, ни на кнопки не реагирует. И прошивочный диск тоже. А CD и DVD -нормально воспроизводятся. Я так понял CAX именно о такой ситуации как-то раньше писал. |
Posted by: Rvs on 04-05-2006, 16:11 | ||
Andy007 Да нашёл, причём во многих местах и во многих вариациях.... Я предположил что это опрос пульта в разных режимах работы аппарата, прав я или нет???? У меня есть вот такая инфа:
По ней я искал jmp адрес, но особо интересного не нашёл. Например у меня играет MP3, нажимаю паузу, останавливается, нажимаю ещё ни чего, не происходит... А вот в ямаде 6600, продолжается исполнение, с места останова.... Исходя из инфы код 0x87 для паузы, посмотрел и там и там разницы ни какой, значит что-то не то, не могу понять!!! awk Кинь твой измененный вариант на мыло ruslan(тузик)tiraet.com. Посмотрю подскажу!!! |
Posted by: cax on 04-05-2006, 17:28 | ||
Научишься опознавать остальные - расскажешь. |
Posted by: Rvs on 04-05-2006, 17:37 |
awk Вроде всё сделал правильно скорее всего не твоя вина!!! Если в BCalc-е указать адрес From 23D7A и TO 27E2D то результат 04 F0 57 F8, но если указать пару чисел 23D7A и 27E2C, то результат то же.... Тот же результат и при таких парах 23D7A 27E2A и 23D7A 27E2B. Скорее всего невозможно адресовать в этот адрес либо глюк BCalc или я ещё что-то не знаю... Так что перемести процедуру на байт выше, т.е. с адреса 27E2C и всё должно быть хорошо!!!! Если заработает отпиши сюда!!! |
Posted by: Rvs on 04-05-2006, 17:42 |
cax Ба... я и этого не могу, научи хоть этому, может пойму и дальше разберусь!!! Может Andy007 нам обоим растолкует на примере что я привёл???? |
Posted by: cax on 04-05-2006, 20:47 |
Rvs, я узнавал назначение таблиц экспериментально. Например, в одной из таблиц менял местами вправо и влево, в другой - стоп и паузу, или цифру 2 и цифру 3 и т.д., а затем гонял плейер в разных режимах и смотрел где всплывёт какое изменение. |
Posted by: moroz on 04-05-2006, 21:32 |
Обнаружил проблему с субтитрами в арме от Peekton 6002. Во-первых, если загружено больше одного файла с субтитрами, то при прыжке (GoTo) субтитры иногда пропадают (иногда нет, зависит от места куда прыгаешь). И больше не возвращаются, пока не прыгнешь на "удачное" место. Но это еще пол-беды. Так же было и на старом арме (05.00.03.05 к Апекс 2102). И вообще, записывать несколько файлов субтитров - это уже роскошь. Настоящая же беда вот в чем: Если записать на диск только ОДИН файл с субтитрами типа .srt - плеер все равно показывает, что есть два файла (при нажатии на Subtitles вижу 2/2) и начинается вышеуказанная болезнь Что интересно, с файлами .sub ничего подобного не происходит - специально проверил. Грешу на знаменитый фичер "OrgThenAll" У кого какие мысли? |
Posted by: moroz on 04-05-2006, 23:31 |
...И на этот раз солдатская смекалка не подвела бойца... Вырубил под корень этот OrgThenAll (в меню у меня этого пока нет) - и насморка как не бывало |
Posted by: Rvs on 05-05-2006, 10:45 | ||
cax Дааа..... так там ещё и не одна таблица , ладно буду разбирать, есть ещё надежда на Andy007. moroz Если я правильно понял ты говоришь о ARM-е над которым мы сейчас колдуем??? А вообще, какие там заложены возможности по субтитрами??? У меня прошивка от NewAge там он субтитрами может вот что:
А что из этих вкусностей есть в этом ARM-е???? |
Posted by: moroz on 05-05-2006, 11:29 |
На эти вопросы, наверно, сах лучше ответит. Мы с ним в паре работаем. Я со своей стороны добавляю (можно сказать уже добавил) переворот иврита и перенос длинных строк (то, что у тебя, наверно, названо переформатированием) - и для L2R, и для R2L. |
Posted by: Andy007 on 05-05-2006, 13:36 |
Я поступал с этими процедурами совершенно аналогично. Что ты имеешь в виду по еще одной таблицей? Кстати, коды команд в принципе уникальны для плеера. Особенно это касается кодов с номерами больше 3F |
Posted by: awk on 06-05-2006, 07:14 | ||
|
Posted by: Rvs on 06-05-2006, 09:18 |
awk Они должны располагаться в начале шрифта с позиций 0/1/2, у тебя так??? |
Posted by: Rvs on 06-05-2006, 11:59 |
Andy007 Подскажи как найти куда поставить процедуру Show_MP3_TAG????? У меня сейчас стоит в процедуре DIR_FileBrowser в конце, но тэги обновляються тогда когда обновляеться браузер, т.е. на каждый раз. Помоги найти!!! |
Posted by: cax on 07-05-2006, 13:21 | ||
|
Posted by: cax on 07-05-2006, 13:28 | ||
Мы с ним, по большому счёту, минималисты, поэтому вместо пустого украшательства занимаемся действительно важными вещами. Самая главная для местной израильской специфики проблема - правильный показ и перенос иврита, которыми Мороз успешно занимается. Вряд ли тот же NewAge захочет тратить силы на столь непростую задачу, тем более не зная иврита. Большая часть упомянутых "вкусностей" ничто иное, как вынесение функций MTK Windows / Font Creator в меню прошивки. Сделать несложно, но и не нужно, ИМХО |
Posted by: moroz on 07-05-2006, 17:08 |
Ну, я бы не стал так рубить с плеча. Функции, на мой взгляд, полезные. А MTK Windows не каждый обязан уметь пользоваться. Так что если несложно - то давай. Так каждый легко сможет "заточить" прошивку под свой телевизор и свои вкусы. А о вкусах не спорят. Тут один сегодня отколол - просил вернуть серый фон субтитрам А вы говорите... Только все это не имеет, я думаю, отношения к ARMу. Все эти параметры меняются прямо в 8032 и передаются в АРМ. А из субтитровых "вкусностей" в пиктоновском ARMe - это то, что субтитры не пропадают при АС3. Ну и пресловутый OrgThenAll. |
Posted by: cax on 07-05-2006, 17:27 | ||
И куда теперь идти солдату ? |
Posted by: moroz on 07-05-2006, 18:05 |
Если фичу хочется - значит фича будет! Тов. hej456 все сделал культурно. В меню у него добавлен соответствующий пункт, в ARMе проверяется соответствующая ячейка - если не ноль, то фичу обходим. Вот только чего я не понимаю - как эта ячейка может находиться не в общей памяти, а в обычном раме RAMe. Адрес 66СВС после нашей раздвижки. |
Posted by: moroz on 07-05-2006, 18:53 | ||
Ну ничего, сами допишем, не проблема. Вот только все опять упирается в свободную ячейку в общей памяти. Как же нам все-таки ее найти? |
Posted by: cax on 08-05-2006, 19:18 |
Вот автор фичи пишет о ней подробнее: http://groups.yahoo.com/group/mt13x9/message/7786 (http://groups.yahoo.com/group/mt13x9/message/7786 твойя понимайт што имэл ввиду аффтар ? |
Posted by: moroz on 08-05-2006, 20:36 |
Ну, это ты лучше меня знаешь. Аффтар берет флажок из ипрома и перкладывает его в общую память. Потому как знает, что эта ячейка свободна. А вот как он это узнал? |
Posted by: awk on 10-05-2006, 07:35 | ||||
|
Posted by: cax on 10-05-2006, 09:24 |
awk, а они тебе там мешают ? Занимают слишком много места ? Как говорится, работает - не трогай |
Posted by: Rvs on 10-05-2006, 10:14 | ||
cax
Так то оно так!!! Я знаю что и куда и при каком пункте меню NewAge передаёт в ARM, при помощи ARM_PutChar, но .... После MP3 тэгов (я их всё таки победил ), я уже не в чём не уверен, а именно: Да я могу передать туда все эти значения, а что толку если их не кто не читает, т.е. нет обработчика данного флажка или (это если лучше), читает но из другой ячейки.... Ты писал что у тебя много наработок по ARM-у вот и спрашиваю не попадались, ну так случайно эти процедурки....???? А функции действительно полезные, тут у некоторых несколько телевизоров и просят под каждый свой размер, позицию, и т.д. |
Posted by: awk on 10-05-2006, 15:39 | ||
Уважаемые, а нельзя ли поподробнее про MP3 тэги? Мне к моей прошивке их тоже хочется приточить. |
Posted by: Rvs on 10-05-2006, 16:10 | ||
awk
Без знания ассемблера врядли, есть пару моментов надо осознано вносить изменения.... |
Posted by: moroz on 10-05-2006, 17:29 | ||
Rvs
Из другой ячейки - исключено. Тогда вообще не будет субтитров. Теперь по-порядку: 1.Выравнивание по горизонтали субтитров 2.Выравнивание по вертикали субтитров MPEG4 5.Установка межстрочного интервала субтитров 6.Настройка окна субтитров MPEG4 Этими параметрами точно пользуются все известные мне армы 7.Установка цвета фона субтитров MPEG4 8.Настройка прозрачности фона для субтитров 9.Установка цвета окантовки субтитров MPEG4 10.Установка цвета текста субтитров MPEG4 этими - лично не видел, но уверен, что тоже. 3.Переформатирование субтитров если это то, что я думаю (самодельный перенос строки), то эта функция может быть где угодно. Оригинальная медиатековская заложена в арм и работает пахабно. 4.Выбрать страну субтитров (CP125x) Это я не очень понял. Может, имеется в виду выбор фонта? Тогда к арму не имеет отношения. |
Posted by: Rvs on 10-05-2006, 18:38 |
moroz Хммм... Понял попробую отпишу!!! |
Posted by: cax on 11-05-2006, 14:37 |
Гонял вчера до 3-х часов ночи RISC от Peekton-а на Apex-e (с последним кодом Мороза). Имеется одна чертовски неприятная особенность - во-первых, все диски опознаются значительно дольше, на десятки секунд. Во-вторых, если с CD всё ещё более-менее терпимо, то DVD-R (с AVI на нём) читается только, если аппарат только что включили. Попытка открыть лоток и перечитать тот же самый диск, или поставить другой, заканчивается через 2-3 минуты пыхтения надписью "No Disk". Изредка диск, вставленный не первым, всё-таки прочитывается, но всё равно неизбежно зависает в дальнейшем при запуске файлов на нём. Reset to default + выключение из розетки не помогли. После отката на оригинальную прошивку всё снова зачиталось-заработало. Плохи наши дела, видимо что-то не срослось. Мороз, ты ничего подобного не наблюдал, или у тебя нет DVD-R ? Rvs, я так и не отыскал в общей памяти имён файлов и ссылок на них. Если верить последним вестям от NewAge, прошивка использует не более 0xF80-0x1000 байт из shared memory, может быть имеет смысл сделать дамп этих первых 0x1000 байт и поискать в нём ? Как далеко от начала общей памяти ты находил имена файлов ? |
Posted by: Andy007 on 11-05-2006, 15:27 |
Кстати, а каков алгоритм поиска неиспользуемых байт в shared memory? |
Posted by: cax on 11-05-2006, 16:22 |
Как я понял из форума на яху, большинство прошивок использует адреса до 0xF80, значит 0xF81 и выше свободны. На некоторых используются адреса до 0x1000, значит свободные - 0x1001 и выше. Впрочем, ты можешь и сам об этом почитать или спросить NewAge или hej456. |
Posted by: Rvs on 11-05-2006, 16:25 |
cax Мдааа.. задал ты загадку!!! У меня этот ARM, работает супер, не могу нарадоваться!!!! Причём как раз DVD-R/+R с авишками летают лучше чем CD!!! Я на 34 листе давал пример (033828DC), взял прям сейчас посмотрел адрес, сейчас он 03382B70, т.е. получается он находиться не в общей памяти, а выше А что у тебя находиться по адресу 0338C62B??? Я тут посмотрел, если MP3 тэги разрешены, тогда адрес тэгов 033825DC, что тоже не в общей памяти!!! Либо NewAge ошибся либо не то имел ввиду!!! Тогда лучше снять дамп всех 4Mb DRAM, правда займёт часа полтора два, при этом открыть папку с легко узнаваемым именем и попробовать найти. Но я не знаю какой прогой сливать, та что есть (MTK Memory Dumper v0.1b), не уверен в ней надо её проверить!!! Кинь мне на ящик твою прошивку посмотрю, что и как, может ещё и диски прочитает!!! От Hyundai работает, но шумно!!! Andy007 Сами ищем присоеденяйся!!! |
Posted by: cax on 11-05-2006, 18:18 |
>Кинь мне на ящик твою прошивку посмотрю, что и как А что там кидать - возьми у меня на сайте (cax.nm.ru) файл для Апекса - YWVX2102.BIN - и представь, что ты поменял в нём RISC на пиктоновский. |
Posted by: moroz on 11-05-2006, 19:55 | ||
cax
У тебя речь идет о версии 0С.02 с родным 8032? |
Posted by: cax on 11-05-2006, 20:47 |
Пробовал и родной и не родной - результат один. |
Posted by: moroz on 11-05-2006, 20:59 |
Таки плохо |
Posted by: Rvs on 12-05-2006, 09:49 |
cax Взял с сайта прошивку, у меня она заработала, но... проверить ничего не могу ARM, то старый . Я хотел память глянуть посмотреть что до как.... |
Posted by: Rvs on 12-05-2006, 10:09 |
cax Скачал вот эту прошивку http://cax.nm.ru/mtk/fw/Apex (http://cax.nm.ru/mtk/fw/Apex 202102 YWVX Hebrew-Russian v6.0.zip!!! Просматривая прошивку выяснилось что с большой вероятностью в ней есть MP3 тэги и ещё одно ты новый ARM в нё вставлял??? Если да то что менял??? |
Posted by: Rvs on 12-05-2006, 14:32 |
cax Заменил ARM. Папок действительно нет!!! Нашёл адрес папок (03382B70), но их там не оказалось. Снял для надёжности дамп 4Mb. Нашёл только стандартную таблицу размещения файлов. Сложилось впечатление, что отображение папок не включено, по аналогии с MP3 тэгами, если в определенной ячейки shared memory записан 01 тэги выключены, хотя при этом адрес формируется, и по этому адресу находятся значения очень похожие на те, что в теперешнем случае с папками. Попробуй спросить в яше есть такой переключатель или нет??? Буду искать сам!!! У меня читает и CD и DVD с авишками с учётом не родного серво можно сказать нормально, по крайне мере NO Disc не было ни разу!!! |
Posted by: Andy007 on 12-05-2006, 16:59 |
C папками я сталкивался - некоторые армы для типа файла папка используют код не 0x10 а 0x16. Надо в 8032 править процедуру GetFileType. Обычно это С_CCASE в caseах которого идет return 2 return 1 или return 4 + один case со спецобработкой - это и есть фолдер. |
Posted by: Rvs on 12-05-2006, 18:00 |
Andy007 Хмммм... интересно, покопаюсь.... |
Posted by: cax on 12-05-2006, 23:05 |
Andy007 - ты просто кладезь знаний ! Самое смешное, что сегодня я гонял ДВД в хвост и в гриву, но проблема с чтением дисков больше не возвращалась. Видимо, в прошлый раз я что-то налажал. Отбой тревоги ! А фолдеры всё-таки хотелось бы увидеть. Rvs, надеюсь на тебя ! |
Posted by: awk on 15-05-2006, 10:21 |
Глубокоуважаемые гуру! Понимаю что лезу со своими мелкими вопросами в разговор мудрецов, но все же - есть ли на ваших модернизированных аппаратах функция Караоке (это когда микрофон можно подключить и песни в него орать)? Хочется приточить ваши навороты к своему китайцу (а он с этой фичей)! Но те прошивки, которые я скачивал и изучал, без этого караоке. Я проглядел в них эту функцию или ее у вас нет? У меня самого мозгов не хватит перелопатить свою прошивку через ассемблер, а прикрутить свой пульт, VFD и кнопки к неродной суперпрошивке вроде попробовал-получилось. |
Posted by: cax on 15-05-2006, 11:39 |
Думаю, что это не умеет никто. Нужна оригинальная прошивка. А в чём заключается фича ? В меню появляется возможность включать-выключать микрофон, или что-то ещё ? |
Posted by: awk on 15-05-2006, 14:19 | ||
Я в нем с вашей общей помощью русские имена сделал. |
Posted by: Andy007 on 15-05-2006, 15:03 |
C shared memory разобрался. Действительно дампом можно понять где используемые области, где нет. Я вот сейчас какую фичу делаю - чтобы можно было двд-видео в броузере папками показать. Собственно это делать уже научился. Осталось меню прикрутить для этого дела. |
Posted by: cax on 15-05-2006, 16:35 |
awk, а что я с ней делать буду ? У меня, слава богу, есть чем заняться. Это Энди желает странного |
Posted by: cax on 15-05-2006, 20:00 |
Вот пункт выбора русского языка в меню: 2. Russian | Set Preference To Russian | RUS 0059 012D 03C9 18 - ROM:31A2 А вот скажите мне, повелители кабеля, что пишется в EEPROM при выборе языка субтитров (ячейка 0xB) ? 2 байта кода языка ("ru"), или 1 байт выбранного значение пункта меню (0x18), или чего-то ещё ? В своё время после опытов я обнаружил, что выбор русского можно сделать таким кодом: ROM:0001F9C0 7F 0B mov R7, #0xB ROM:0001F9C2 7E 00 mov R6, #0 ROM:0001F9C4 12 06 61 lcall PREF_GetChar ROM:0001F9C7 EF mov A, R7 ROM:0001F9C8 94 17 subb A, #0x17 ROM:0001F9CA 60 02 jz ROM_F9CE ROM:0001F9CC 74 07 mov A, #non-russian font number ROM:0001F9CE ........................ Код работает ! Но откуда берётся это 0x17 ? Это 0x18 из пункта меню минус один ? Как мне определить какое значение соответствует японскому, китайскому и прочим языкам ? |
Posted by: moroz on 15-05-2006, 22:36 | ||
|
Posted by: Andy007 on 16-05-2006, 09:42 | ||
Про shared ram. Смотрю на дамп shared ram и ищу большие области заполненные нулями, причем начинающиеся с круглого числа. С вероятностью близкой к 1 - олбласти не используются. Про русский язык. В eeprom пишется 18. в 8032 есть табличка соответствия этого числа двухбайтовому коду:
В подавляющем большинстве прошивок вместо 18 -> ru идет какая-то хрень или ru отсутствует напрочь! Явно заговор!!!
|
Posted by: cax on 16-05-2006, 11:03 |
> Про русский язык. В eeprom пишется 18. Andy007, я чем тогда ты объяснишь, что в работающем коде используется 0x17 ? У меня этот код во всех прошивках. Проверка на 0x18 не работает. ROM:0001F9C8 94 17 subb A, #0x17 > В подавляющем большинстве прошивок вместо 18 -> ru идет какая-то хрень или ru отсутствует напрочь! И как результат того, что русский отсутствует в таблице, в EEPROM пишется 0x17 ??? Кстати, проверяя shared memory, я заметил, что при выборе русского текстовый код языка выставляется в "en". Надо будет попробовать влепить в таблицу русский вместо, скажем, корейского, может тогда всё будет как у людей ? В прошивке Пионера, кстати, с русским всё пучком. Впрочем, в Пионере и кириллический шрифт имеется |
Posted by: Rvs on 16-05-2006, 11:08 |
cax Andy007 прав у тебя есть обработчик по адресу 2_AC8D, а в нём чтение из таблицы по адресу 3B53. И если я понял то и код и 'ru' пишется в shared. И действительно в прошивках ru нет, я обычно заменяю какой ни будь тайский на ru и всё работает. А код что ты привёл ты сам сделал или... Но Andy007 подскажи в чём проблема если в меню по умолчанию указать русский, то после сброса по умолчанию в меню русский, а работает английский, пока не зайду и не выберу опять русский хотя он уже выбран!!! |
Posted by: Andy007 on 16-05-2006, 11:43 |
Надо смотреть процедуру сброса на дефолт - очень может быть что там тоже какой-то косяк есть. |
Posted by: cax on 16-05-2006, 12:01 |
Похоже, что я полный идиот, и что Carry bit у меня на входе всегда 1, соответственно "subb A, #0x17" даёт ноль при A=0x18 |
Posted by: Andy007 on 16-05-2006, 12:10 |
Вопрос - есть у кого-нибудь карта shared memory ? |
Posted by: Rvs on 16-05-2006, 15:27 |
Andy007 Я думаю что карты не существует, у каждого ARM-а всё это индивидуально, общего мало. Где-то какие то куски одинаковые, но расположены в разных местах, я ищу всё через дамп, сравниваю с тем что нарыли в яше другие. А как найти процедуру сброса по дефолт???? Тот обработчик из меню, что-то маловат!!! И ещё может, кто знает. На MP3 у меня строка состояния (та что в левом верхнем углу), по умолчанию выкл. Где храниться её состояние, что бы она была в состояние "00:00 от начала"???? cax Ты не ответил. Процедуру ты сам сделал или заводская??? Может мне не париться с дефолтом, да подцепить её на обработчик и пусть будет русский!!! |
Posted by: Andy007 on 16-05-2006, 15:44 |
Rvs, можешь привести примеры разных армов? Я пока еще не встречал различий в диапазоне 0x0-0x1000 |
Posted by: cax on 16-05-2006, 17:57 | ||
А вставлена она в Sub_SetStyle вместо статического номера фонта, и теперь его можно менять из меню. |
Posted by: Rvs on 17-05-2006, 16:17 |
Andy007 Я писал что общее есть . А первые 0x1000 байт, это от начала shared memory или от начала DRAM? Если от начала shared memory, то не уверен хотя бы по тому что например, есть ARM-ы с тэгами и без, пресловутый адрес названия папок, и тот в разных местах... cax А пункт 2. Russian | Set Preference To Russian | RUS это ты тоже писал или ты пользуешься Subtitle Language DVD??? Т.е. используешь это значение???? |
Posted by: Rvs on 17-05-2006, 16:43 |
Andy007 Вопрос который уже долго меня мучает, как всё-таки найти SetupDefs_Tab или процедуру инициализации?????? |
Posted by: Andy007 on 17-05-2006, 16:59 |
Если бы я знал как искать со 100% вероятностью, то проблемы эквалайзера бы не стояло |
Posted by: cax on 17-05-2006, 22:27 | ||
|
Posted by: cax on 17-05-2006, 22:51 |
Налетел на такие грабли: если добавляю 10-й фонт [11-12], отрубается показ 0-го, т.е. "всё в пробелах". Добавляя ещё шрифтов можно добиться того, что пропадёт и шрифт для имён файлов. Доктор, это лечится ? Я хочу много-много шрифтов ! |
Posted by: Rvs on 18-05-2006, 09:06 | ||
cax Я думаю закончилось место выделеное под таблицу шрифтов. Как то баловался с ней, точно не помню, но кажеться она не безграничная.... Для экономии можешь совместить несколько шрифтов, например 0 использовать и для меню и для браузера и для MPEG4 субтиров получаеться три в одном, значит экономишь 2 шрифта.
Значит выбирая Subtitle Language для DVD, ты выбираишь язык и для MPEG4??? |
Posted by: Rvs on 18-05-2006, 09:51 |
cax Andy007 Кто то делал что-бы screensaver запускался при воспроизведении MP3??? Вроде подправил прошивку, screensaver стартует, но через 1-1,5 сек. стартует опять и так постоянно из-за этого логотипчик успевает пролетет 5 см. и опять начинает с начала. |
Posted by: cax on 18-05-2006, 10:10 | ||||
Мне бы совместить со шрифтом для иконок "стоп", "перемотка", "зум" и т.д., но я не знаю где упоминается его номер. Впрочем, если ограничение по суммарному размеру шрифтов, мне это не поможет.
Да, а что в этом такого ? |
Posted by: Rvs on 18-05-2006, 11:05 | ||||
cax
Мне казалось что в Languages , там же указываеться номер шрифта и позиция символа. Я таким образом перемещаю этот шрифт по номерам. Если переписать Languages, думаю можно совместить.
Наконец понял мысль!!! |
Posted by: Rvs on 18-05-2006, 11:48 |
cax Andy007 Как поменять значение по умолчанию (на картинке красным прямоугольником). У меня сейчас выкл. хочу что бы было "время от начала трэка" |
Posted by: Rvs on 18-05-2006, 12:52 | ||
Andy007 Вот что я нашёл может будет интересно.
|
Posted by: Andy007 on 18-05-2006, 13:47 |
ага. спасибо. |
Posted by: cax on 18-05-2006, 15:22 |
Я тут уже давно прыгалку на время через меню хочу сделать, т.е. во время воспроизвдения выбираешь в меню "перейти на 30-ю минуту с начала" и оно прыгает. Если получится - можно будет и запоминалку сделать (т.е. перейти на то место, где в последний раз нажал "стоп"). Есть мысли как это реализовать ? |
Posted by: Rvs on 19-05-2006, 15:15 |
cax Насколько я понял ты хочешь, сделать переход в MPEG4, а есть такая функция??!!!??? Что-то не видел ни где!!! А вообще мысль неплохая!!! Andy007 Открыл файл MTK1389locs, там указан DefsTab для ямады. Нашел значение такие же и у себя. И что теперь делать??? Что это за значения, не втыкаю!!!! 00D5000A1BE0007F00E1008100181B80007D00DF0099003C1BA0007E00E000DF00001B80008000E2 Ещё вопрос ко всем!!! Как сделать скип на MP3???? |
Posted by: Rvs on 19-05-2006, 15:41 | ||
Andy007 Я по поводу проблемы cax с папками, ты говорил править функцию DIR_GetFileType, но я не понял что именно!!!
|
Posted by: cax on 19-05-2006, 15:41 |
Это скорее к Andy007, его разработка. Он мне объяснять пытался, но я тупой, не понял. Ниасилил. |
Posted by: Andy007 on 19-05-2006, 15:55 |
Rvs, Это все? больше нет? странно. Для начала попробуй ROM:D66C 7F 01 mov R7, #1 |
Posted by: cax on 19-05-2006, 22:00 |
А самое интересное с папками, что временами они показываются верно, но время от времени опять начинают сходить с ума. Первое, что приходит в голову - это что ARM и 8032 по разному управляют памятью и время от времени кто-то один другому что-то затирает. |
Posted by: Rvs on 24-05-2006, 11:45 | ||
cax Мне попалась прошивка кем-то переделаная в которй нет такого кода :
но при этом все символы отображает!!! Я сравнил её с заводской изменения стандартные, т.е. сделали широкий браузер, правили ARM, и т.д. судя по всему по твоему описанию, но символы отображает!!! Я пропатчил заводскую у меня не появились от ъ до я. В чём проблема не в курсе???? |
Posted by: Andy007 on 24-05-2006, 11:51 |
Проблема в том, что фильтрация может быть не только в 8032 но и в арме |
Posted by: Rvs on 24-05-2006, 12:23 | ||
Andy007 Эта мысль, проскочила сразу!!! Для эксперемента я заменил ARM на новый в обеих прошивках всё осталось как прежде!!! Вот процедура что в правленом ARM-е.
Если я правильно понял то пресловутая проверка это CMP R1, #0xFA, а что тогда за таблица unk_681C1 ????? |
Posted by: Andy007 on 24-05-2006, 12:30 |
Это собственно таблица перекодировки. В данной функции применен табличный способ конвертации. |
Posted by: Rvs on 24-05-2006, 12:56 |
Andy007 бааа точно А по этим вопрос не подскажешь???? Как сделать скип на MP3???? "время от начала трэка"????? |
Posted by: Andy007 on 24-05-2006, 13:32 |
Процедуру для скипа я выкладывал на ixbt - в дух словах - посмотри обработчик в режиме игры двд и для броузера поставь тот же самый вызов. Идея - дернуть в арме setoperationmode |
Posted by: Andy007 on 24-05-2006, 13:32 |
Как время - не знаю |
Posted by: Rvs on 24-05-2006, 17:01 |
Andy007 Перерыл всю прошивку Исходя из описания cax коды клавиш 0x15 и 0x16, встечаються три раза. Сравнивал с прошивкой NewAge где работает нормально отличий нет, не втыкаю Искал твою процедуру на ixbt, бесталковый поиск ничего не нашёл!!! Кинь ссылку или тема хоть какая была!!!!??? Если у тебя в прошивках есть скип, кинь ссылку на прошивку и адресок в самой прошивке где это реализовано!!! |
Posted by: Andy007 on 24-05-2006, 17:27 |
www.bbk985s.com бери последнюю прошивку и смотри Browser_keys процедуру. |
Posted by: Rvs on 24-05-2006, 18:04 |
Andy007 А адрес процедурки Browser_keys ??? |
Posted by: Andy007 on 25-05-2006, 09:02 |
91A1 в первом банке |
Posted by: Rvs on 25-05-2006, 13:08 | ||
Andy007 Мдааа не догоняю, вообще то думал будет проще, нужны объяснения:
|
Posted by: Andy007 on 25-05-2006, 13:42 | ||
Возможно так будет понятнее.
|
Posted by: Rvs on 25-05-2006, 14:04 |
Andy007 Супер!!! Теперь ясно!!!! СПАСИБО!!!!!!!!!!!! |
Posted by: cax on 25-05-2006, 15:18 |
Rvs, как разберёшься и заставишь эту штуку работать - разжуй и для меня, пожалуйста. Желательно по шагам и "для тупых" - "ищем то-то, запоминаем то-то, вставляем туда-то" и так далее. |
Posted by: Rvs on 25-05-2006, 16:01 |
cax ОК!!! Уже провожу эксперименты!!! |
Posted by: Rvs on 26-05-2006, 13:16 | ||||||
Andy007 Нужен твой совет. Процедура Browser_keys у меня выглядит так:
Согласись совсем не так как у тебя, но я решил по любому вставить обработчик в наглую, как думаешь пойдёт или нет???? Из каких соображений брать XRAM_SelectedFile???. У меня процедуры DIR_GetFileType и DIR_GetPosition всегда ходят слетанной парой:
как думаешь если заменить начало на такое пойдёт???
|
Posted by: robert7 on 27-05-2006, 00:23 | ||
1. Взять прошивку 2102 7.0 2. Удалить из нее шрифты Font 8(0D-0E) и Font 9(0F-10) 3. Добавить мой шрифт 3 раза 4. Проверить работает ли Hebrew-big и Hebrew-normal (+ обратить внимание на букву ТАФ). Сам проверить не могу - в своем 811м до сих пор не нашел где спрятан выбор шрифта (наверно гдето в арме) |
Posted by: cax on 27-05-2006, 14:26 |
Фонт интересный - достаточно большой и узкий. Не понял только почему "таф" срезан сверху и добавлен нулевой буквой. В Апексе 2102 прекрасно отображаются все буквы до 255, и перенос кодов не требуется. Что должно произойти после добавления шрифта 3 раза, кроме того, что шрифт для Hebrew-big и Hebrew-normal станет одинаковым, и снова начнётся пропадание всего и везде ? >в своем 811м до сих пор не нашел где спрятан выбор шрифта В Sub_SetStyle ? Или в коде, проверяющем опцию выбранного языка ? Так было в одной из прошивок для Апекса 2102. Как искать - описано в моём руководстве. |
Posted by: robert7 on 27-05-2006, 15:55 |
Sub_SetStyle не нашел, PrefGetChar na Subtitle Language не нету (в upg7 проверяет только нужно вызывать reverse-hebrew или нет, в более старых даже этого нет). Я думал может я не так понял - попробовал на других прошивках - там сразу нашел. таф перекинута в начало чтобы укоротить - теперь этот фонт занимает только 1 номер (а не 2 как все остальные) - если я прав то не будет пропадание всего и везде. Если это сработает - можно будет в ту же прошивку заталкать в 2 раза больше фонтов чем раньше(1 это normal, 3 это big, a 2 можно будет заменить на дополнительный шрифт) - |
Posted by: cax on 27-05-2006, 16:24 |
robert7, если мне не изменяет память, в коде отображения субтиров в АРМ я где-то видел прибавление еденицы к номеру шрифта, т.е. шрифт должен состоять из 2-х номеров. Хотя, может быть я неправ и твоя идея сработает... По поводу upg7 для Апекса 811 - а как ты переключаешь с иврита на русский ? Где-то же эта опция должна прочитываться. Поищи чтение этой ячейки общей памяти из АРМа. |
Posted by: robert7 on 28-05-2006, 00:52 | ||
|
Posted by: cax on 28-05-2006, 01:17 | ||
Хм. Чем-то мне это напоминает мой приём, который я применил в прошивке для Пионера - укороченный пробел, вставленный в фонт чуть ниже нормального пробела... И совмещение выбора языка субтитров для DVD и DivX в одном меню - они раньше так не делали, было меню отдельное... неужели китайцы пытаются слизывать с нас ??? |
Posted by: robert7 on 28-05-2006, 01:34 | ||
Спасибо. Кодгато я и это искал, но запутался - попробую еще раз. edit: ура! нашел Sub_SetStyle, но другим способом: искал mov R7, #4 и mov R7, #6 (номера фонтов) чтобы были близко в 1м банке + сразу после них lcall на ту же функцию И вот почему я запутался: по адрессу 0х28 в общей памяти лежит "IW". Я думал что там должно быть тоже самое как и в EEPROM (номер).
|
Posted by: Andy007 on 29-05-2006, 11:37 |
Rvs, Думаю что стоит попробовать. Скорее всего прокатит. |
Posted by: Rvs on 08-06-2006, 18:16 | ||
Andy007 Занялся в плотную скипом по твоему рецепту, пациент без признаков жизни!!! Нашёл три обработчика с кодами 15 и 16 и только в одном обработчик сложный, а в остальных простой типа:
Сложный обработчик оказался обработчиком в DVD режиме (менял вызовы процедур изменения, происходят), а простые.... Менял в них вызовы процедур на другие, реакции ни какой, подставлял в них обработчик других кнопок, так же ноль. Толи я не нашёл обработчик браузера, толи они обрабатываются в другом месте или как то по другому!!! По большому счёту я даже не нашёл обработчик который обрабатывает браузер!!! Ещё раз пересмотрел прошивку от NewAge, эти обработчики абсолютно одинаковы, что у меня, что у него. Но у него то скип работает!!! Как на твой взгляд что делать???? |
Posted by: Rvs on 09-06-2006, 10:32 | ||
Andy007 Решил занулить все вызовы процедур где присутствуют коды 15 и 16, по идее должно было выключить пульт вообще, но этого не произошло, пульт как работал в браузере, так и продолжает работать. Отсюда следует, что пульт обрабатывается не только процедурах типа:
а как-то ещё??? Что скажешь как вычислить место обработки???? |
Posted by: Andy007 on 15-06-2006, 15:23 | ||||||||
Это скорее похоже на какой-либо другой режим. У тебя вообще в броузере кнопки прев и некст по умолчанию хоть как-то работают? |
Posted by: Andy007 on 15-06-2006, 15:25 |
Просто если они у тебя по умолчанию в броузере не работают вообще, то скорее всего и в обработчике этих кодов просто нет и их надо будет вставлять руками. |
Posted by: Rvs on 16-06-2006, 13:04 |
Andy007 Да они у меня в браузере работают, при нажатии курсор перескакивает на 6 строк. У меня такая последовательность встречается 6 раз. 2 - Bank1, 1 – Bank2, 3 – Bank4. Закомментировав эти процедуры, вычислил: в Bank4 одна точно обрабатывает DVD, другая на половину AVI, а все остальные, даже если закомментированы все сразу влияние ни на DVD, ни на AVI, ни на MP3, не оказывают, всё как работало, так и работает!!! У меня есть прошивка от NewAge, она к этому аппарату только, к старой его версии. Прошивки схожи на 90%, так вот NewAge в этих 6 процедурах ни чего не менял, но при этом скип и пауза правильно работает, как он сделал ума не приложу!!! |
Posted by: Andy007 on 16-06-2006, 17:40 |
Ты прав - в четвертом банке handler для режима DVD. Сейчас ище для броузера. |
Posted by: Rvs on 21-06-2006, 10:29 |
Andy007 Ну как борьба с упрямой прошивкой???? |
Posted by: Andy007 on 21-06-2006, 10:31 |
К сожалению - пока никак. Ничего не понимаю |
Posted by: Al xRaven on 08-10-2006, 10:25 |
Я извиняюсь, я тут первый раз. А кто может рассказать как ARM пересаживать из одной прошивки в другую? Я понимаю что надо корректировать смещения на данные в блоках 8032 если ARM разной длины, может есть готовая методика? С 8051 процессором работал раньше, с IDA тоже. |
Posted by: cax on 14-10-2006, 01:20 |
В группе mt13x9 на Yahoo, в разделе Файлы->Документы есть документ с подробным описанием процесса имплантирования ARM. "How to use MTK Risc in BBK firmwares.rtf" |
Posted by: temskii on 23-10-2006, 12:25 |
Приветствую всех !!! Извините,что встреваю. Уважаемые кодокопатели помогите мне пожалуйста разобраться с IDA. Пытаюсь ИДОЙ дизассемблировать код ARM вытащенный из прошивки MTK Remakerom,но ничего не получается пишет какую то чушь. Пробовал IDA pro 4.7, IDA pro 5.0.0.879. Очень много кто пользуется ИДОЙ, но как ??? Дайте пожалуйста хоть какую нибудь инфу |
Posted by: Andy007 on 23-10-2006, 14:47 |
Temskii, сдается мне что ты не переключаешь режим ARM/THUMB (Виртуальный регистр T 1/0) А вообще-то соответствующий idc скрипт используй. |
Posted by: temskii on 24-10-2006, 06:41 |
Спасибо Andy007. Буду пробовать. |
Posted by: cax on 24-10-2006, 16:17 | ||
|
Posted by: vitsat on 30-10-2006, 00:48 |
http://forum.ixbt.com/topic.cgi?id=62:9631-2 (http://forum.ixbt.com/topic.cgi?id=62:9631-2 |
Posted by: cax on 30-10-2006, 01:45 | ||
|
Posted by: OlegEN on 19-12-2006, 12:36 |
По доке Станислава Борутски (Stanislav "cax" Borutsky (a.k.a borus) Patching_HU3899_from_A_to_Z.txt) Я попытался выполнить: 2) Showing cyrillic letters in file browser Put UnicodeToCP routine at address: 26914 (overrides C++ error messages) UnicodeToCP (sub_26914) routine code: 10 39 01 B4 88 7B 04 28 C8 7B 10 D1 08 7C 04 28 C8 7B 03 D0 08 7C 00 28 C8 7B 08 D1 01 28 01 D1 A7 30 04 E0 51 28 01 D1 67 30 00 E0 B0 30 01 E0 00 00 00 00 F9 28 00 D9 F5 38 01 1C 01 BC 70 47 Put "BL UnicodeToCP" calls at addresses: 234C2: 03 F0 27 FA BL sub_26914 234F6: 03 F0 0D FA BL sub_26914 ---------------------------------------------------------------- Практические рекомендации: a) Как найти свободное пространство для подпрограммы UnicodeToCP: ARM содержит множество сообщений об ошибках как "C++ library exception", "Out of heap memory", и т.д. Ищите эти строки в ARM и используйте пространство, которое они берут. Use UnicodeToCP code AS IS - the code is relocateable. Используйте UnicodeToCP код как есть - код relocateable. -------------------? b ) Как найти место где поместить "BL UnicodeToCP" запросы? Найдите шестнадцатеричную последовательность: "F7 B5 84 B0 20 20 47 5C 21 31". В моем случае я нашел это в 23446 смещениях, и места чтобы исправить были в 234C2 и 234F6 (Вы можете попробовать перейти непосредственно туда, ища "41 18 10 39 C9 7B" - должны появиться дважды), Just follow the code and find the section that looks like this: (but in your case additional patching may be required - see more detailed guide at http://forum.ixbt.com/topic.cgi?id=62:5075-118) (http://forum.ixbt.com/topic.cgi?id=62:5075-118) Только за кодом и находят раздел, который выглядит следующим образом: (но в вашем случае может потребоваться дополнительное внесение исправлений - см. более детализированное руководство в http: // forum.ixbt.com/topic.cgi? Id=62:5075-118) ROM:00023446 F7 B5 PUSH {R0-R2,R4-R7,LR} ROM:00023448 84 B0 SUB SP, SP, #0x10 ROM:0002344A 20 20 MOV R0, #0x20 ; ' ' ROM:0002344C 47 5C LDRB R7, [R0,R1] ROM:0002344E 21 31 ADD R1, #0x21 ; '!' .... ROM:000234BA 02 98 LDR R0, [SP,#0x30+var_28] ROM:000234BC 01 99 LDR R1, [SP,#0x30+var_2C] ROM:000234BE 80 19 ADD R0, R0, R6 ROM:000234C0 41 18 ADD R1, R0, R1 ======================================== Replace - Это я выполнил, разобрался ROM:000234C2 10 39 SUB R1, #0x10 ROM:000234C4 C9 7B LDRB R1, [R1,#0xF] with ROM:000234C2 03 F0 27 FA BL sub_26914 ======================================== Что делать с данным кодом? я не понял куда его записать!? Так-как у меня адреса другие, получается мне надо пересчитать разницу ЭТИХ адресов с моими?! и туда вписать данный код!? Или что мне делать с этим кодом? ROM:000234C6 04 9A LDR R2, [SP,#0x30+var_20] ROM:000234C8 00 06 LSL R0, R0, #0x18 ROM:000234CA 11 55 STRB R1, [R2,R4] ROM:000234CC 01 34 ADD R4, #1 ROM:000234CE 00 0E LSR R0, R0, #0x18 ROM:000234D0 24 06 LSL R4, R4, #0x18 ROM:000234D2 24 0E LSR R4, R4, #0x18 ROM:000234D4 02 90 STR R0, [SP,#0x30+var_28] ROM:000234D6 02 98 LDR R0, [SP,#0x30+var_28] ROM:000234D8 A8 42 CMP R0, R5 ROM:000234DA 14 D2 BCS loc_23506 ROM:000234DC 30 1C ADD R0, R6, #0 ROM:000234DE 03 99 LDR R1, [SP,#0x30+var_24] ROM:000234E0 00 F0 A2 FA BL sub_23A28 ROM:000234E4 32 21 MOV R1, #0x32 ; '2' ROM:000234E6 08 1A SUB R0, R1, R0 ROM:000234E8 A0 42 CMP R0, R4 ROM:000234EA E6 DC BGT loc_234BA ROM:000234EC 0B E0 B loc_23506 ------------------------------------------- ROM:000234EE A8 19 ADD R0, R5, R6 ROM:000234F0 01 99 LDR R1, [SP,#0x30+var_2C] ROM:000234F2 05 06 LSL R5, R0, #0x18 ROM:000234F4 41 18 ADD R1, R0, R1 ======================================== Replace ROM:000234F6 10 39 SUB R1, #0x10 ROM:000234F8 C9 7B LDRB R1, [R1,#0xF] with ROM:000234F6 03 F0 0D FA BL sub_26914 ======================================== ROM:000234FA 04 9A LDR R2, [SP,#0x30+var_20] ROM:000234FC 2D 0E LSR R5, R5, #0x18 ROM:000234FE 11 55 STRB R1, [R2,R4] ROM:00023500 01 34 ADD R4, #1 ROM:00023502 24 06 LSL R4, R4, #0x18 ROM:00023504 24 0E LSR R4, R4, #0x18 c) How to calculate bytecodes for "BL UnicodeToCP" commands ? Что это за команда "BL UnicodeToCP"? Use BCalc utility (from mt13x9 yahoo group) to calculate bytecodes. All you need is to specify "BL" command, from and to addresses in BCalc. d) You also have to create special font with chars [250..255] at [5..10] - see below e) See also (below) how to patch 8032 code so '_' chars won't appear in file browser Объясните пожалуйста, я только новичек в данном вопросе, и мне не все понятно. cax (насколько я понял Вы и есть Станислав Борутский) Я недавно переписывался с вами, и Вы мне посоветовали задавать вопросы в данном форуме... объясните мне пожалуйста. Что у меня есть: XVI32, ida_pro_4.8.0.847_advanced_full, и все остальные проги с финского сайта [/COLOR] |
Posted by: OlegEN on 19-12-2006, 13:17 |
При поиске HEX последовательности "F7 B5 84 B0 20 20 47 5C 21 31" у меня выходит: ROM:00023380 .byte 0xF7 ; ¢ ROM:00023381 .byte 0xB5 ; ¦ ROM:00023382 .byte 0x84 ; Ä ROM:00023383 .byte 0xB0 ; - ROM:00023384 .byte 0x20 ROM:00023385 .byte 0x20 ROM:00023386 .byte 0x47 ; G ROM:00023387 .byte 0x5C ; \ ROM:00023388 .byte 0x21 ; ! ROM:00023389 .byte 0x31 ; 1 а не: ROM:00023446 F7 B5 PUSH {R0-R2,R4-R7,LR} ROM:00023448 84 B0 SUB SP, SP, #0x10 ROM:0002344A 20 20 MOV R0, #0x20 ; ' ' ROM:0002344C 47 5C LDRB R7, [R0,R1] ROM:0002344E 21 31 ADD R1, #0x21 ; '!' может я не правильно настроил IDA? |
Posted by: cax on 19-12-2006, 14:31 |
>Use BCalc utility (from mt13x9 yahoo group) to calculate bytecodes. Вот именно эта утилита - BCalc - скачанная из раздела "файлы" группы mt13x9 на yahoo нам и нужна для пересчёта адресов. А сама эта тема уже содержит описание подобных изменений - советую пролистать её с первых страниц. Разжёвано для чайников - далее некуда. >При поиске HEX последовательности "F7 B5 84 B0 20 20 47 5C 21 31" у меня выходит Ну и пусть себе выходит. Конечно, можно скачать специальные скрипты, запустить их и тогда в IDA всё будет выглядеть замечательно, но моё руководство на 99% расчитано на обычный hex-редактор и, как правило, ни IDA, ни знаний ассемблера не требует. |
Posted by: OlegEN on 20-12-2006, 06:52 |
Просто боюсь испортить проигрыватель, да и знаний не совсем хватает Спасибо, попробую, отпишусь что получилось. Сейчас переписываю Language для проигрывателя MAITE PDVD-704x, если у кого есть такой, пишите поделюсь всем что наработано. |
Posted by: OlegEN on 20-12-2006, 16:51 |
cax, что-то у меня не получилось... как и написано в доке я нашел последовательность "F7 B5 84 B0 20 20 47 5C 21 31" у меня она по адресу 23380 (в доке 23446). Нашел последовательность "41 18 10 39 C9 7B" первая, у меня по адресу 233FA (дока 234С2) вторая, 2342E (234F6) по первому и второму адресам я вписываю: 234C2: 03 F0 27 FA BL sub_26914 только по адресу 233FA 234F6: 03 F0 0D FA BL sub_26914 только по адресу 2342E код: 10 39 01 B4 88 7B 04 28 C8 7B 10 D1 08 7C 04 28 C8 7B 03 D0 08 7C 00 28 C8 7B 08 D1 01 28 01 D1 A7 30 04 E0 51 28 01 D1 67 30 00 E0 B0 30 01 E0 00 00 00 00 F9 28 00 D9 F5 38 01 1C 01 BC 70 47 я вписал по адресу 264AA При помощи BCalc я высчитал: From - 264AA To - 264E9 Branch - BL Opcode - 00 F0 1D F8 куда мне вписывать этот опкод, или что с ним делать? |
Posted by: cax on 20-12-2006, 18:06 |
> 234C2: 03 F0 27 FA BL sub_26914, только по адресу 233FA > 234F6: 03 F0 0D FA BL sub_26914, только по адресу 2342E О ужас, вообще не видно никакого понимания. Не советую вообще ничего делать без кабеля - плейер издохнет при первой же попытке прошить его. Нужно было: 1) записать адреса, по которым находятся "10 39 C9 7B". В нашем случае, если я правильно понял, это 233FC и 23430 2) посчитать в BCalc опкод команд перехода С этих адресов НА адрес, по которому находится наш добавляемый код (264AA) Теперь совет, которого не было в документе: лучше всего новый код размещать по адресу, кратному 4 (например, 264B0). Но об этом писалось дважды на предыдущих страницах этой темы. 3) Теперь вот что делаем: в двух местах , адреса которых мы знаем из пункта 1, вставляем переход на подпрограмму ВМЕСТО того кода, который там был раньше. Это должно быть ясно и из инструкции - ======================================== Replace ROM:000234C2 10 39 SUB R1, #0x10 ROM:000234C4 C9 7B LDRB R1, [R1,#0xF] with ROM:000234C2 03 F0 27 FA BL sub_26914 ======================================== и из многостраничных разъяснений в этой теме (а ведь я просил прочитать тему сначала !) Желаю удачи и не загубить плейер. Ошибки в этом патче мне уже стоили двух походов в гарантийную мастерскую. |
Posted by: OlegEN on 21-12-2006, 07:39 |
cax?Большое спасибо за то что у вас хватает терпения, другой на вашем месте послалбы меня давно ... (в мастерскую...) Сделал я как вы писали, но у меня вместо имен файлов знаки "_" в предыдущих сообщениях вы начали это обсуждать, но почемуто переключились на другую тему... из того что вы там писали... cax То, что у тебя происходит, весьма странно. Подчерки не могут появиться если их не было ранее... Впрочем, давай попробуем разобраться и починить. Поищи-ка в прошивке (не в АРМ) такое: 94 20 40 xx E0 D3 94 7E 40 Напиши, нашёл ли, и если да, то сколько раз и где. У меня нашлось два раза: первый - 117B0 второй - 1653B по этому: cax Давай для очистки совести поищем в АРМ вот такое (хотя тоже вряд ли найдётся): 7E 22 20 21 Если найдёшь - попробуй заменить на FF 22 00 21 такой строчки в АРМе у меня не нашлось И еще у меня почему-то проигрыватель стал тормозным, медленно реагирует на пульт, а на некоторые кнопки перестал реагировать или только при постоянном нажатии... Может это из-за того что у меня RAM - 4 метра? И прошивка у меня ровно 1 метр... Флешка метровая, жду когда приедет 2 метровая и RAM 8 метров, попробую заменить.... Что мне делать? (пока читаю вашу переписку с ivani4) Все сделал, большое спасибо. |
Posted by: cax on 21-12-2006, 18:18 |
>Все сделал, большое спасибо. Хорошо, что я дочитал до конца Значит всё работает ? |
Posted by: OlegEN on 22-12-2006, 06:35 |
Да, все работает... спасибо. что я сделал: 1) Перебил language (сделал вместо китайского, русский) 2) Поменял и кое какие переправил, шрифты. 3) Сделал поддержку русских имен файлов и папок, только с одним приколом.. у меня почемуто не подошли полностью шрифты (которыми отображаются имена файлов) в имени файла "Выдод" вместо "ы" писалась "я". Но это я исправил, перебил шрифт сдвинул "ъыьэюяэё" на 3 позиции (правда еще не проверил на остальных буквах, но "Вяход" стал "Выход"ом) 4) Убрал превью картинок Из странностей: У меня почемуто не отображаются русские имена папок не в браузере, а чуть выше, т.е. в адресной строке... Там вместо имени прочерки. Но я думаю что я что-то или пропустил или не заметил. отпишу подробнее как проверю. И еще хотел убрать таймер при проигравании DivX, но по вашей доке: ----------------------- 1) make Elapsed Time to not appear at the beginning of the playback. Put the following bytes at specified addresses: 1D369: 02 F3 00 1F300: 90 FC 4A E0 54 C7 F0 02 05 B3 ----------------------- не нашел в 8032 описанной вами последовательности "90 xx yy E0 FF 13 13 13 54 07" т.е. её у меня нету И еще вопрос, можно как-то сменить Servo? А то как вы писали у меня довольно старая прошивка... и мне как и любому другому хотелосьбы иметь лучше т.е. я попробую подогнать другие прошивки под себя... Ver 05.00.02.02 Sub 00.00.00.01 8032 05.00.02.02 Servo 01.12.00.00 RISC 05.00.02.02 DSP 03.03.00.33 |
Posted by: cax on 22-12-2006, 16:28 |
>не нашел в 8032 описанной вами последовательности "90 xx yy E0 FF 13 13 13 54 07" т.е. её у меня нету Увы, на скорую руку помочь ничем нельзя. Возможно найдутся добровольцы, которые сделают анализ и поймут в чём дело. >можно как-то сменить Servo ? Servo не меняют, ибо servo - это "генетический код" аппарата. Можно сменить Risc, но это требует нечеловеческих усилий. >не отображаются русские имена папок не в браузере, а чуть выше, т.е. в адресной строке т.е. в имени каталога ? как-то я это исправлял, но как - уже не помню. |
Posted by: robert7 on 25-12-2006, 16:14 |
Прошивка древняя. Субтитры наверно вообще не поддерживает. Может попробывать сначала поискать что нибудь поновее? Там проблем будет меньше. |
Posted by: OlegEN on 26-12-2006, 06:39 |
Да, прошивка древняя... Кто нибудь, подскажите прошивку поновее и по какому принципу можно её подобрать... Насколько я понял к железу привязывается только серво... т.е. у меня серво 01.12.00.00 , и мне необходимо будет найти прошивку поновее с таким серво!? |
Posted by: robert7 on 26-12-2006, 16:54 | ||
Откуда у тебя эта прошивка?
Если нету - servo+remote+DRAM, желательно и VFD. Но все равно есть риск на смерть. У тебя кабель есть? |
Posted by: OlegEN on 26-12-2006, 21:31 |
robert7 Прошивка родная, с проигрывателя MAITE PDVD-7041 _http://www.maite.com.cn/ProductView.asp?ID=25&Ln=En (с виду такойже, отличается только номер модели) Ver 05.00.02.02 Sub 00.00.00.01 8032 05.00.02.02 Servo 01.12.00.00 RISC 05.00.02.02 DSP 03.03.00.33 Пробовал переписываться с заводом изготовителем, но они ответили что данная модель снята с производства... Кабель есть, не проблема... Проблема в том, что необходима прошивка не превышающая 1024 байт. Так-как флешка у меня 1 метр и ОЗУ всего 4 метра... По доке Боруса сделал все что было возможно, русский перевод и шрифты написал и нарисовал Но вот чужой подходящей прошивки пока нету... Думаю заменить/перепаять флешку и ОЗУ нарастить, но пока не могу найти подходящих микрух... ЗЫ. Проиграватель, почти полный клон BBK965S (по крайней мере плата очень похожа). И вопрос, стоит ли искать и "запускать" прошивку с поддержкой USB? Так-как на плате есть разъём, но на корпус он не выведен. Я рассматривал подобный но с USB, там почти ничего не требуется, только выход... Кто знает, что даст мне подключение USB, можно будет подключать винты (УСБшные)? |
Posted by: cax on 26-12-2006, 22:44 |
Ну что тебе даст замена микросхем, если прошивка не пользуется дополнительной памятью ??? Вот если бы ты нашёл прошивку с таким же серво, но для плейера с большим объёмом памяти - тогда это было бы полезно, а так - непонятное мне стремление всё позаменять. > Ver 05.00.02.02 Это - старая версия. Нужна хотя бы 05.00.03.05 или 05.00.05.01, в идеале - 05.00.06.хх >можно будет подключать винты (УСБшные)? А ты прошивку с поддержкой USB и твоим номером servo уже нашёл ? |
Posted by: OlegEN on 27-12-2006, 08:27 | ||
cax
нет, еще не нашел, но спросил на всякий случай... cax вопрос, что из моей прошивки можно повырезать такого лишнего (если есть) и возможно ли мне с моими начальными познаниями пересобрать себе прошивку, ну например с "Версия C965S-8A-0928-m3" с сайта _http://bbk965s.narod.ru/index3.html в этой прошивке нет номера Серво! как это понять, т.е. прошивка на любой тип серво, или это что-то другое? Все мои проблемы от того что у меня на проигрывателе малый объём флеш, и не любую подходящую прошивку я могу залить |
Posted by: robert7 on 27-12-2006, 13:43 |
серво не написан = серво не известен ==>> может оказатся чем угодно. резать можно только DATA PART. Если Code part больше 1МБ - бесполезно. платы во всех ДВД похожие - основное отличие это дисковод если кабель 100% рабочий можно попробывать серво с похожими номерами - есть шанс наткнутся на хороший аналог а какой у тебя REMOTE? по этому коду тоже есть шанс попасть на аналоги |
Posted by: cax on 27-12-2006, 20:42 |
Если я правильно понимаю в диагностике серво, то у этой прошивки C965S-8A-0928-m3 оно что-то типа A8.06.06.xx Код, похожий на запись серво-номера, выглядит так: 78 5C 76 A8 08 76 06 08 F6 AE 5E AD 5D AC 5C 22. Обычно он выглядит так: NFO_ServoVer: (17.05.00.00) ROM_F9D3: mov R0, #0x5A ; 78 5A ROM_F9D5: mov @R0, #0x17 ; 76 17 ROM_F9D7: inc R0 ; 08 ROM_F9D8: mov @R0, #0x05 ; 76 05 ROM_F9DA: inc R0 ; 08 ROM_F9DB: clr A ; E4 ROM_F9DC: mov @R0, A ; F6 ROM_F9DD: inc R0 ; 08 ROM_F9DE: mov @R0, A ; F6 ROM_F9DF: mov R7,REG_5D ; AF5D ROM_F9E1: mov R6,REG_5C ; AE5C ROM_F9E3: mov R5,REG_5B ; AD5B ROM_F9E5: mov R4,REG_5A ; AC5A ROM_F9E7: ret ; 22 |
Posted by: Brait on 29-12-2006, 07:58 |
Вопрос: можно как-нибудь вытащить .BIN файл из .DAT файла? А то скачал обновление для свого Pioneer DVR-440H, оно было в .NGR формате. Залил Nero'й на CD, прошил - все работает. Но хочется бОльшего, есть желание покопаться в прошивке, но нет нормального .BIN'а... |
Posted by: cax on 29-12-2006, 21:17 |
Brait: А плейер этот - он разве на чипсете MTK 1389 ? Насколько мне известно, рекордеры сделаны на совсем других микросхемах, и их "разведка" находится пока в зачаточном состоянии. |
Posted by: b-maksi on 03-01-2007, 22:13 |
cax С Новым Годом!!! О Гуру МТ1389 У меня есть небольшая проблемка,думаю только вы сможете мне помочь. Есть плеер (Trony DVD-DVX 888) у него очень не удобный и не надёжный пульт. По этому я решил попытаться заменить его на другой более подходящий,на мой взгляд. Мне удалось подобрать все коды в блоке (RC_RemoteTab)для другого пульта,все кнопки выполняют свои функции.Коды были взяты из прошивки от пульта плеера донора. Оригинал. 042BDCh: 04FB 154F 5F5D 5C0A 042BE4h: 2E52 0609 0733 5B46 042BECh: 1762 194E 3D63 670F 042BF4h: 1003 FFFF FFFF FFFF 042BFCh: FFFF FFFF FFFF FFFF 042C04h: FFFF FFFF FFFF FFFF 042C0Ch: FFFF FFFF FFFF FFFF 042C14h: FFFF FFFF FFFF FFFF 042C1Ch: FFFF 1650 FFFF 3800 042C24h: 0D0E 3008 0504 2C20 042C2Ch: 0201 2B47 1A29 4260 042C34h: 3941 FFFF FFFF FFFF 042C3Ch: FFFF После замены на коды донора. 042BDCh: 00FF FF2C 5BFF 6739 042BE4h: 38FF 0302 0160 0908 042BECh: 0717 0605 0410 0A00 042BF4h: 2E20 5263 4E5D 0F0D 042BFCh: 0E15 FFFF FFFF FFFF 042C04h: FFFF FFFF FFFF FFFF 042C0Ch: FFFF FFFF FFFF FFFF 042C14h: FFFF FFFF FFFF FFFF 042C1Ch: FFFF 19FF 2B29 FFFF 042C24h: FF47 1B3D FFFF 161D 042C2Ch: 50FF 5FFF FFFF 1A4F 042C34h: FFFF 335C FFFF 4622 042C3Ch: FFFF Но возникла странная проблема.Плеер может выключаться с нового пульта но не включается,зато так и продолжает включатся со старого. Исходно плеер можно было выводить из режима Standby кнопками,(PLAY,ENTER,EJECT,SLEEP)теперь нет. Всё остальное работает нормально. У меня сложилось впечатление что эти команды сидят не в блоке (RC_RemoteTab) а где-то ещё где мне не понятно,может быть(VFD_LedTables)потому что команды с ИК-приемника проходят через драйвер индикатора TP6317 и он уже выдаёт +5вольт(Standby) на блок питания и включает плеер. Может я и ошибаюсь. Вот прошивка и описание значений ячеек кодов.-> http://slil.ru/23680354 (http://slil.ru/23680354 |
Posted by: shemtov on 04-01-2007, 15:31 |
b-maksi В приложенном документе ты писал: ''Эти две первые строчки не трогаем, похоже, что это расшифровка команд пульта'' По сему вопрос: Если собираемся менять пульт,то надо искать такой у которого эти два первых байта совпадают? А если не совпадают,то что делать? |
Posted by: b-maksi on 04-01-2007, 21:29 |
shemtov Совсем не обязательно,просо сразу их переписываешь в начало и всё. Исходно в прошивке доноре это выглядело так.Всё правилось бинарником в WinHexе. 00146Bh: 00FF FF2C 5BFF 3A39 001473h: 38FF 0302 0160 0908 00147Bh: 0717 0605 0410 0A00 001483h: 2E20 5265 4E5D 0F0D 00148Bh: 0E15 19FF 2B29 FFFF 001493h: FF28 1B3D FFFF 161D 00149Bh: 50FF 5FFF FFFF 1A4F 0014A3h: FF2B 615C FFFF 4764 0014ABh: FFFF Прошивка от (Trony DVD-DVX 888) вообще очень странная по составу. Это китайский производитель разного ширпотреба под названием Oriental Qisheng Technology http://www.orientalqisheng.com/product_Show.asp?PhotoID=36 (http://www.orientalqisheng.com/product_Show.asp?PhotoID=36 У плеера ещё есть клон DVTech D530 у того даже 2 пульта в комплекте http://www.reviews.ru/clause/article.asp?id=2273 (http://www.reviews.ru/clause/article.asp?id=2273 A ещё qisheng делает подделки под торговой маркой AKAI. |
Posted by: shemtov on 05-01-2007, 04:39 |
b-maksi Дело в том ,что я пытаюсь сделать то же самое что и ты.Но у меня пульт не начинает работать вообще.Я подумал,что это из за того что два первых байта у этих пультов разные,но ты говоришь,что это не мешает.Может быть тебе известна какая нибудь другая причина которая может на это повлиять? |
Posted by: b-maksi on 16-01-2007, 11:43 |
За время пока мне не отвечал многоуважаемый cax ,провёл ещё один эксперимент забил всю таблицу пульта FF FF FF вставил в прошивку и залил в плеер.Плеер так и продолжает включаться кнопками,(PLAY,ENTER,EJECT,SLEEP) со старого пульта,а нового соответственно не видит. Плиз где поменять значения 5F->5B, 33->60, 63->5D. shemtov У меня такое тоже было но с прошивкой от DAEWOO DV-1200S каие таблицы не ставил не чего не работало. |
Posted by: cax on 16-01-2007, 15:18 |
Спешу обрадовать всех задающих вопросы по таблицам пульта: я в этом разбираюсь даже хуже вас. Так что кроме метода научного тыка порекомендовать ничего не могу. Я в своё время на известные позиции подставлял разные коды, и искал нужные мне методом обычного перебора. Вот и вся наука. |
Posted by: Rvs on 16-01-2007, 19:33 |
b-maksi Я тоже пытался найти обработчики некоторых кнопок, до сих пор не нашёл, просил Andy007 он тоже не смог. Так что шансов мало. Это только тыкаться наугад по всей прошивке в подозрительные места. Я собираюсь этим заняться повторно, так что если что-то отпишусь. |
Posted by: Andy007 on 06-02-2007, 13:31 |
Кстати, все уже в курсе, что в сеть утекли исходники 8032 для 1389? |
Posted by: Rvs on 06-02-2007, 18:11 | ||
Может кто то внятно раскажет как править DTS???? |
Posted by: cax on 06-02-2007, 21:49 |
Читал я-читал последние сообщения на Яхе про DTS, да так и не понял, что в моём случае делать. А делаю я вот что: в прошивке к Apex меняю RISC на совместимый, и после замены у него появляется поддержка DTS, которой раньше у него не было. Теперь я делаю то же самое с Hyundai, у которого поддержка DTS была с самого начала. После замены на всё тот же RISC она пропадает. Первое объяснимо, второе - не понимаю. |
Posted by: Rvs on 07-02-2007, 10:35 |
cax Мдааа ситуация аналогичная. Я даже нашёл ту процедуру, на которую ссылается NewAge. Но как то всё это странно, описывает он её этак, а выглядит на самом деле совсем по другому. И самое интересное что в двух разных RISC-ах, это процедура выглядит одинаково, но при этом один работает другой нет. Попробую ещё раз спросить NewAge, что то он не договаривает... |
Posted by: Rvs on 07-02-2007, 18:03 |
cax А ты при этом правил RISC на DTS или нет? |
Posted by: cax on 08-02-2007, 13:49 |
Ничего не правил, но если DTS заработал в Апексе, то с чего бы ему не работать на Юндае... Это тот самый RISC, о котором мы здесь говорили выше, от Peekton-a. Ты не мог бы глянуть на счёт правки одним глазком на этот самый RISC в моей последней прошивке к Апексу, если не лень ? |
Posted by: Hisoka on 09-02-2007, 17:40 |
Бродил по инету в поисках инфы, и наткнулся на этот форум - имхо тут обитают реально знающие люди и смогут мне объяснить что к чему )) http://cax.nm.ru/mtk/docs/Patching_HU3899_from_A_to_Z.txt (http://cax.nm.ru/mtk/docs/Patching_HU3899_from_A_to_Z.txt прочёл, с английским проблем нету, поэтому некоторые вопросы смог решить сам, но возникли иные проблемы: 1) Поскольку плеер у меня из дебрей Китая, то прошивок в инете равно как и информации по нему я не нашел никакой. Русский язык меню у него был, но отображать русские названия файлов и субтитры он не мог. Приобрёв за 3 у.е. датакабель решил перепрошивать ) Нашел в инете 1 человека с таким же плеером - он смог решить проблему с длинными названиями файлов и русским шрифтом. Проблема субтитров осталась для меня актуальной - с помощью MtkFontCreator и MtkWindows я подобрал хороший шрифт, цвет, и область субтитров. Но субтитры всёравно почему-то обрезаются... Нельзя ли сделать чтобы они переносились по словам если не влазят? После n-ого изменения шрифта 03-04 (я менял шрифт в mtkremaker, никакого редактирования прошивки hex редактором не производил) начались глюки - то текст в опциях не показывает, то картинки - но это думаю решаемо - просто изменить 1 раз дефолтную прошивку... У меня всего 3 шрифта в прошивке, как назначить первый шрифт на отображение файлового меню, а третьего на субтитры?? у меня всё показывается шрифтом 3 (3-4). И ещё вопрос - можно ли каким-нибудь образом модифицировать мою прошивку чтобы плеер понимал формат mkv?? (встроенные субтитры, несколько звуковых дорожек) p.s. Недавно обнаружил в инете прошивку полностью соответствующей моей - видимо этот завод на тех же компонентах выпускал ещё плеер маркой ERISSON. |
Posted by: cax on 09-02-2007, 21:02 |
Ответ на почти все вопросы - найти хакера, который в этом понимает и согласен поработать от нескольких часов до нескольких десятков часов. Ибо сложно очень. Или подобрать уже модифицированную прошивку от другого плейера. Ответ на вопрос про mkv: забудь, этого никто не умеет. |
Posted by: Hisoka on 10-02-2007, 02:06 |
А по каким критериям можно выбирать прошивку? Её ведь надо будет модифицировать как-либо.. чтобы она запустилась хотя бы. А packed bitstream - не есть mkv? ЧИП: MT1389FE FLASH: FUJITSU(MBM29LV800BA/E) ОПЕРАТИВКА: EM636165TS-7 2шт Versio : 12.03.04.01 Sub : 8032 : 05.00.04.04 Servo : 23.07.00.00 RISC : 05.00.04.04 DSP : 03.03.01.00 Firm ID : MTK File : MTK.BIN Remote : 0xF20C (Unknown. Replace with CAUTION !!) Button : 0x1489 (Unknown. Replace with CAUTION !!) VFD bit : Type B (Apex,E-Boda,Fortune,Lenco,Yamada,Xoro,Zensonic) Flash : 800, 16bit Pass : 1,0,0,6,TITLE ShMem : 0x38C400 И насчет субтитров - это действительно так сложно? Как заставить МТК переносить непомещающиеся слова на следующую строку?? P.S. наврятли какой хакер займётся этим... плеер очень раритетный - всего под 2 лэйблами выпускается насколько я знаю - DOWELL и ERISSON. |
Posted by: shemtov on 10-02-2007, 12:22 |
Если не удается переделать прошивку,то проблему с субтитрами ты можешь решить ,например,при помощи программы Subtitle Workshop.Там есть возможность корректировать колличество знаков в строке.Быстро,просто и эффективно.И еще рекомендую обратить внимание на программу AVISUB.Она служит для накладывания субтитров на фильм(встроенные субтитры) .Работает,к сожалению,не со всеми фильмами и поддерживает только SRT а SUB нет. |
Posted by: cax on 10-02-2007, 12:30 | ||
Потребуется только переставить блоки пульта, кнопок и ЖК-дисплея. Кстати, а какая связь между packed bitstream и mkv? |
Posted by: robert7 on 11-02-2007, 23:40 | ||
|
Posted by: robert7 on 11-02-2007, 23:42 | ||||
|
Posted by: Rvs on 12-02-2007, 19:01 | ||
Получаеться в Hyundai 3899 и в Apex DVX-2102 RISC одинаковые?? А какие чипы стоят в аппаратах? |
Posted by: cax on 13-02-2007, 17:33 |
>А какие чипы стоят в аппаратах ? МТ1389DE в обоих. >Получается в Hyundai 3899 и в Apex DVX-2102 RISC одинаковые ?? Rvs, я не понял твоего вопроса. Изначально в обоих аппаратах стоят разные RISC-и, но поскольку по ShMem=0x38C400 и прочим адресам, которые выдаёт утилита ArmAddressInfo, они одинаковы между собой и Peekton-овским RISC-ом, то я посчитал, что могу безболезненно сделать замену. Результаты ты знаешь. |
Posted by: Rvs on 13-02-2007, 18:44 |
cax Глянул ARM. Ну всё так же как и у меня. Исходя из соображений NewAge тебе править надо здесь: 0000110E F2 -> E2 0000111A 92 -> 82 00001130 11 -> 01 000011B8 10 -> 00 Попробуй для начала адрес: 000011B8, если нет тогда все четыре. Должно пойти. И ещё NewAge не однократно ссылался на DSP, но я что-то с английского не догнал, что он имел ввиду. Толи заменить эти блоки, на блоки из других прошивок, толи просто они должны быть не пустыми. Может оказаться и здесь засада. Получаеться Hyundai 3899 на чипе DE и имел заводскую прошивку с DTS??? Если так то теория NewAge может рухнуть, либо вопрос с DTS будет решён однозначно. Если есть дай ссылку на заводскую от Hyundai с DTS, погляжу как они эту функцию реализовали. И отпишись заработало после правки!!! |
Posted by: Rvs on 13-02-2007, 19:28 |
cax Ага с 10-го раза понял, что имел ввиду NewAge So if your player's firmware doesn't have DTS decode then you should search for another DSP Code 0x10 (the first number of DSP version must be the same!! YY.xx.xx.xx where YY must be the same) that is around 9-10KB large. Тогда получается попробуй не править ARM, а взять DSP из заводской прошивки где DTS был. Может заработает... Если да тогда дело не в ARM-е, а в DSP. Вообще попробуй три варианта: 1. Новый ARM + старое DSP 2. Новый ARM + новое DSP + правленый ARM 3. Новый ARM + старое DSP + правленый ARM Жду результата!!! |
Posted by: cax on 14-02-2007, 17:21 |
Не обещаю вскоре проверить, но постараюсь. А заводские прошивки лежат у меня на той же странице, в колонке "Original firmware from manufacturer" |
Posted by: vc12 on 17-02-2007, 15:34 |
Всем, привет Возникли технические вопросы по сабжу. Может ли код 8032 и АРМ выполняться из ОЗУ (а не из флэш) ? Т.е. возможено ли модифиц. прошивку, чтобы могла загружать программный код в ОЗУ (файл с привода) и затем передавала управление этому коду в ОЗУ. Сохранение окружения не нужно. Т.е. код юзает всю ОЗУ под себя (затирая все данные созданные/юзанные прошивкой) и в конце работы делает программный ресет. |
Posted by: robert7 on 17-02-2007, 23:23 |
код АРМ итак выполнается из ОЗУ (после разархивации из флэша). Но функцию загрузки кода из файла еще никто не написал |
Posted by: vc12 on 18-02-2007, 14:40 | ||
умеет ли он из ОЗУ исполняться ? |
Posted by: cax on 18-02-2007, 17:27 | ||
|
Posted by: vc12 on 18-02-2007, 19:42 |
Для игр ещё важна глубина цвета (сколько бит на точку) в OSD. Напр. Зоран 776 , похоже, имеет 8битовый OSD. Плюс несколько бит на прозрачность. Параметры MTK OSD есть на странице производителя: http://www.mtk.com.tw/product-lines.htm (http://www.mtk.com.tw/product-lines.htm |
Posted by: LDZ on 24-03-2007, 18:54 |
Всем привет. Решил своего хорька (400 pro) подправить, а именно прицепить USB. Перепаял RAM, FLASH, залил прошивку от силверкреста. Заменил таблицу пульта, вообщем более-менее все работает - кардридер видит. Засада в том, что не могу переключить DVD-CARD. Нет такой кнопки на пульте. Куда кинуться,- посоветуйте. И еще, реально ли из исходников (например с яхи) собрать свою прошивку (все ли там есть, и чем). За пару дней много чего скачал, - не успеваю пересмотреть все. |
Posted by: cax on 24-03-2007, 21:28 |
>Нет такой кнопки на пульте. Если из прошивки силверкреста понять какой код посылает эта самая кнопка, можно переопределить в таблице одну из существующих кнопок чтобы ентот самый код и посылала. |
Posted by: LDZ on 24-03-2007, 23:27 | ||
...Хотя прокатило. Поменял, все заработало. Либо где-то я ошибаюсь, либо коды (пульты) одинаковые. |
Posted by: Rvs on 05-04-2007, 18:32 |
LDZ Кинь ссылку про прошивку от силверкреста!!! |
Posted by: vboroda on 09-04-2007, 23:15 | ||||||
cax, можно вопрос? Почему вы с своей инструкции (http://cax.nm.ru/mtk/docs/Patching_HU3899_from_A_to_Z.txt в функции, которая конвертирует имя файла из уникода в CP1251, вычитаете 0xF5 из значений символов, которые > 0xF9? Почему не 0xFA?
Я пытаюсь понять, как сделать, чтобы в именах файлов и директорий в моем устройстве (Philips 5960/12) показывались буквы из конца набора ('ъ'..'я'), и поскольку у меня используется ваша функция для конвертации имени файла, я начинаю подозревать, что замени я
на
и пропавшие буквы из конца алфавита будут видны (шрифты у меня "правильные", вроде бы). Или есть какая-то причина, почему не стоит корректировать именно в этом месте, и может быть лучше изменить шрифты, засунув буквы 'ъ'..'я' в позиции 5..10? Спасибо. Update: так, похоже, я не достаточно внимательно прочитал инструкцию. Для файлобраузера "правильные" шрифты, это не те, в которых верхние символы продублированы в самом низу таблицы, а те, в которых они продублированы в позициях 5..10. Но почему? В 5960/37, например, один и тот же шрифт используется (иногда) для показа OSD и субтитров (ошибка у них такая), чтобы задействовать правильный шрифт для субтитров надо вызвать и убрать "System Settings" меню. |
Posted by: cax on 10-04-2007, 07:55 |
Я уже не помню точно, что именно мне мешало разместить символы 250-255 на позициях 0-5 (кажется, в алгоритме некоректно отрабатывался символ с кодом 4), так что для исправления ситуации я их передвинул, от греха подальше, на позиции 5-10. Если это мешает создать фонт, удовлетворяющий одновременно и меню, и списку файлов, и субтитрам (0-5 и 5-10 пересекаются в позиции 5), рекомендую сдвинуть эти 6 букв ещё раз - например, в позиции 6-11, и, соответственно, изменить в коде вычитание на "SUB R0, #0xF4". |
Posted by: LDZ on 10-04-2007, 23:34 | ||
|
Posted by: LDZ on 15-04-2007, 12:59 |
Купил другой диск, все пашет. Есть проблема - отображение названия фильма. Как в досе, шесть знаков нормально, дальше облом. Это и на диске (фат 32), и на карте (фат16). Какие есть мысли по данному облому? Видел здесь посты Andy007. Как в бобике с отображением имен флешки? |
Posted by: Rvs on 17-04-2007, 10:05 |
Дай ссылку откуда скачал прошивку на сильверкрест. Погляжу что и как. У меня тоже хорёк 400Pro наваял уже несколько прошивок, гляну как у них устроено USB и поробую прикрутить к фирмованой. |
Posted by: LDZ on 17-04-2007, 19:59 |
Оригинал здесь http://mtz.softpedia.com/dvd/ (http://mtz.softpedia.com/dvd/ А тут бумажка, если доступ есть. http://f1.grp.yahoofs.com/v1/AO8kRmwdfpxjSW7wosjJgZ7TrwyY...ents/Info%20-%20USB.rtf (http://f1.grp.yahoofs.com/v1/AO8kRmwdfpxjSW7wosjJgZ7TrwyYFp9My1fCMpLVmPBLm4xKADP762uwrlyQFn5dmJ_iCzZvyzjn-QOhn2tBM5Hlf4s/Documents/Info%20-%20USB.rtf Я тоже думаю к оригиналу прикрутить (если ума хватит), только для начала хотелось бы разобраться с этим багом, чтоб уже все готовое вставлять. |
Posted by: Rvs on 18-04-2007, 15:29 | ||
LDZ Опиши в чём баг подробней???
А ты вообще мои прошивки смотрел, у меня нароботок много. Тем более исходники есть проблем не должно быть. |
Posted by: LDZ on 18-04-2007, 19:06 |
Хорек не читает (не понимает?) длинные имена файлов (Long File Names), только короткие (по маске 8.3). Например, вместо Madagascar.avi - MADAGA~1.AVI. Это только на карте (CF-FAT16) или на HDD (FAT32). Я еще вообще ничего не делал. После покупки хорек честно отпахал года три, потом началось, сначала двигло, потом зависать стал. Купил ребенку другой DVDишник а хорька забрал под эксперименты. Передул ОЗУ и флешку - хорек ожил, вот теперь за USB взялся. Опыта нет никакого, отсюда и сомнения. С ассемблером и Си знаком только по баловству с пиками и аврками. Я, вроде на хоботе, мельком прочел будто бы у тебя еще не перепаян хорек? Или уже перепаял? Я к тому, что если чего - вышлю по почте без всяких проблем (Б.У.,правда). |
Posted by: Rvs on 19-04-2007, 09:49 | ||||
LDZ
|
Posted by: LDZ on 19-04-2007, 19:39 |
Руского языка в ней нет, что вообщем то не особо напрягает. Мотор я тоже поменял, но прежде чем я его нашел приходилось временами погонять его постоянкой, - пока щетки вообще не отвалились. Я думал тебе микрухи нужны. У меня переключает кнопка "ANGLE". На яхе бумажка есть, выше ссылка. Там и код кнопки, и где какая функция. Да, кстати, у меня четыре исходника (5048, 5062, 6027, 7043). Скомпилить получилось только одну какую-то, но, как и у тебя какая-то маленькая получилась. Ремакером глянул - нет ни кнопок, ни пульта, ни индикатора. |
Posted by: Rvs on 20-04-2007, 15:20 | ||||
LDZ
|
Posted by: LDZ on 20-04-2007, 17:17 | ||||
Так подписаны были.
|
Posted by: vboroda on 26-04-2007, 05:04 |
На самом деле с поддержкой длинных имен файлов в FAT (16,32) системах совсем не все так просто. Не думаю, что можно самостоятельно реализовать такую поддержку. Скорее всего в MTK используются старые (досовские или опен-сорцевые) драйвера, которые длинных имен файлов в FAT просто не умеют распознавать. Здесь ( http://en.wikipedia.org/wiki/File_Allocation_Table#Directory_table (http://en.wikipedia.org/wiki/File_Allocation_Table#Directory_table ) немного описан алгоритм поддержки LFN в FAT, похоже, что для реализации в MTK прошивках требуются как минимум исходники на C. Длинное имя складывается из нескольких слинкованный специальных фальшивых файловых entries в таблицах директорий. Если есть прошивка с реализованной поддержкой LFN, возможно, эту поддержку можно было бы "поднять" оттуда и перенести на другие плееры. Но есть ли такая прошивка? |
Posted by: Andy007 on 26-04-2007, 14:52 |
Поддержку в LFN я умею. New Age научил Но геморройно очень - десяток функций в арме надо переписывать почти с нуля. Исходники эти компилятся все. Но только 5062 сразу. Для остальных надо долго и вдумчиво править dat файлы для линкера. |
Posted by: Rvs on 26-04-2007, 15:21 |
cax наваял себе skip MP3, спасибо Andy007 за алгоритм, правда я его немного упростил но работает чётко!!! Интересует? |
Posted by: cax on 26-04-2007, 15:32 |
Давай, только если можешь - постарайся дать универсальные указания, чтобы я мог их применить к максимально большему кол-ву плейеров. Впрочем, как я понимаю речь пойдёт о прошивках "прошлого поколения", т.е. версии 05.00.03.06, очень похожих между собой ? |
Posted by: Rvs on 26-04-2007, 16:40 | ||||||||||
cax Я все исправления вносил в Bank1. Первым делом надо найти процедуру по старому DIR_GetPosition по новому wFlGetItemIdx. Её сигнатура есть в файле MT1389_FileBrowser.idc, скрипт её и находит неплохо. У меня она начинается по адресу 1_DE44. Далее ищем такую последовательность 7F 05 12 DE 44 у меня она встретилась один раз. По адресу 1_E522 это и есть процедура fgFlMnOnIrNext.
Далее в свободном месте пишем процедуру скипа.
Правим исходную, таким образом: в начале процедуры вызываем Skip_next, а в конце процедуры Skip_next делаем прыжок на fgFlMnOnIrNext после вызова DIR_GetPosition_wFlGetItemIdx. В итоге имеем:
Аналогично правим и fgFlMnOnIrPrev только теперь ищем 7F 00 12 DE 44 вот готовые процедуры:
Вроде объяснил , если что не понятно спроси!!!
что значит прошлого?? и с версиями не понял?? |
Posted by: cax on 26-04-2007, 17:03 |
По поводу поколений - объясню. В прошивках с версиями 05.00.04.хх и так далее, скип уже реализован изначально, а самые новые плейеры уже укомплектовывают версией 05.00.07.хх, насколько мне известно. Поэтому прошивки без скипа (версии 05.00.03.хх и младше) я назвал "прошлым поколением". За патч - огромное спасибо ! На днях попробую найти время для проверки на Апексе и Юндае и обязательно отчитаюсь. |
Posted by: Rvs on 26-04-2007, 17:21 | ||
cax
ага, а смотреть надо по Version или 8032, а то у меня вот такая инфа: Version : 00.00.00.02 Sub : 8032 : 05.00.04.02 |
Posted by: cax on 26-04-2007, 17:36 |
А вот и первые "непонятки" с Апексом: 1) нашёл DIR_GetPosition по сигнатуре CD EF CD 90 ?? ?? E0 FF 13 13 13 54 0F FF, по адресу DBA8. 2) искал 7F 05 12 DB А8 - тут всё безупречно, найдено 1 раз и то, что надо. А вот найти 7F 00 12 DB А8 мне не удалось, зато E4 FF 12 DB A8 находится целых 6 раз. Какой из них мне нужен ? Ещё нашёл один раз 7F 06 12 DB А8, других 7F xx 12 DB А8 не было. Апдейт: в Юндае та же бодяга. |
Posted by: Rvs on 26-04-2007, 18:16 |
cax У меня в процедуре fgFlMnOnIrPrev то что я привёл в примере есть последовательнось: ROM:ED7F 90 FB 99 mov DPTR, #XRAM_FB99 ROM:ED82 EE mov A, R6 ROM:ED83 F0 movx @DPTR, A ROM:ED84 A3 inc DPTR ROM:ED85 EF mov A, R7 ROM:ED86 F0 movx @DPTR, A ROM:ED87 D3 setb C ROM:ED88 94 05 subb A, #5 ROM:ED8A EE mov A, R6 ROM:ED8B 94 00 subb A, #0 ROM:ED8D 40 27 jc ROM_EDB6 и у тебя она тоже есть по адресу 1_E8CF значит это и есть нужная процедура fgFlMnOnIrPrev = 1_E8CF. Ну дальше по плану |
Posted by: cax on 26-04-2007, 18:34 |
Так и запишем: fgFlMnOnIrPrev искать по сигнатуре E4 FF 12 xx xx 90 ?? ?? EE F0 A3 EF F0 D3 где xx xx - адрес DIR_GetPosition. А если ещё немного поиграться, то получаем, что знать DIR_GetPosition нам и вовсе не надо, а цепочки для next/prev такие: для next - 7F 05 12 ?? ?? 90 ?? ?? EE F0 A3 для prev - E4 FF 12 ?? ?? 90 ?? ?? EE F0 A3 EF F0 D3 Ещё раз спасибо ! Теперь осталось допатчить и проверить, но это уже будет не сегодня. |
Posted by: vboroda on 26-04-2007, 20:26 | ||||
Andy007, а можно, пожалуйста, немного подробнее на этот счет? Я прочитал сообщения NA на эту тему в mt13x9 на Yahoo, о том как искать ф-ции, читающие файловые системы, и далее:
Не уверен, что пользуясь такой инструкцией можно браться за это дело. Есть ли что-то более конкретное - откомментированный дизассемблер хотя бы? Т.е. сам факт того, что LFN прошивка уже собирает, хотя и не использует, обнадеживающий, но как его приложить к моей конкретной прошивке? Ф-цию FAT_FUNC_2 я нашел без особого труда, но она ссылается на десятки других, следовать по всем этим вызовам, пытаясь собрать примерную картину происходящего было бы очень трудоемко. Спасибо! |
Posted by: vboroda on 27-04-2007, 20:09 |
Если можно - несколько вопросов к знатокам. 1) Сколько в ARM коде свободного места для того, чтобы пихать свой код? Иными словами, какого размера функции можно безопасно туда вставлять? UnicodeToCP - функция крошечная, а как насчет, скажем, уникодных таблиц, или дополнительного модуля для поддержки LFN? Я тут начал разбираться в коде New Age для Medion, где он добавил поддержку длинных имен файлов в FAT. Идея примерно ясна, код более-менее понятен (с.б., человек писал, а не компиллятор - но как бы пригодились листинги с комментариями!). New Age добавил несколько килобайт кода и таблиц (а значит, под мою систему - править и править) - безопасно ли вставлять такое количество кода в прошивку? Свой код New Age разместил примерно начиная с того места (сообщения об ошибках C-компиллятора), которое было рекомендовано cax для UnicodeToCP. 2) Существует ли простенький фриварный ARM ассемблер? Замучаешься все бинарные коды вручную составлять (ну BL с помощью BCalc ладно, но все остальное...). 3) Есть ли где-нибудь примерный перечень граблей, на которые лучше не наступать? Я имею в виду, изменяя что и где легче всего заработать плеер, который придется оживлять кабелем (т.е. не способный принимать прошивку с диска)? Кабель из старого нокиевского я сделать смогу, но предпочел бы не тратить на это время. Вопросов на самом деле гораздо больше, но я пытаюсь разбираться самостоятельно. Спасибо! |
Posted by: Rvs on 28-04-2007, 09:32 |
cax ну как результат?? vboroda У NewAge есть утилита для увелечения размера ARM. Насколько я знаю можно лепить сколько угодно большие куски своего кода. Главное что бы место было свободное. NewAge часто если не сказать всегда расширяет ARM, т.к. для его патчей, того места что есть ни когда не хватате. А насчёт кабеля зря ты так. Я себе спаял на двух транзисторах и забыл заморочки с дисками. Заливаеться быстро и в любой момент и если где то накасячу, то даже об этом не задумываюсь. Плюс есть возможность просматривать память, тем более если ты будешь работать с файлами, то результаты работы ты легко увидишь в памяти. |
Posted by: cax on 29-04-2007, 16:48 | ||
Rvs, и последние (я надеюсь) 2 вопроса по теме (для плохо знающих IDA и скрипты).
1) Как найти PREF_GetChar я знаю, а вот как найти ARM_GetChar ? Я прочесал скрипты, но не нашёл. 2) 0x249 - этот адрес верен для любой прошивки ? |
Posted by: Rvs on 03-05-2007, 09:56 |
cax Не смог сразу ответить, на майские праздники ездил отдыхать!!! 1. ARM_GetChar сигнатура есть в файле MT1389_Misc_v3 или MT1389_Misc вот она D3 10 AF 01 C3 C0 D0 8E ? 8F ? 90 F8 60. 2. До последнего момента был уверен, что да, но с появлением исходников нет. Как раз в них другой адрес. Но радует одно, что кроме как в исходниках я разницу и нашёл. А у тебя есть сомнения??? Говори!!! |
Posted by: cax on 03-05-2007, 15:21 | ||
2) Сомнения у меня от того, что я не знаю происхождения этого магического числа. Если б его можно было вычислить по каким-либо признакам из кода самой прошивки - я был бы спокоен. |
Posted by: Rvs on 03-05-2007, 18:09 |
cax 1. У меня тоже находит два раза, но оказываеться в одном случае это ARM_GetChar, а в другом ARM_PutChar у них разные концовки. В скрипте ARM_PutChar ищут по такой сигнатуре ED F0 D0 D0 92 AF 22. 2. Ну это конечно не магическое число в исходниках это SI_MP3_MOD - trick mode. Смысл ячейки ясен, а вот как её найти наверняка.... Я поглядел у себя, косвенно через процедуру fgFlMnOnIrPlay и то через IDA её можно найти, а так сложно.... |
Posted by: cax on 08-05-2007, 10:24 | ||
Rvs, ещё раз спасибо ! Пока проверил только на Юндае, работает безупречно ! Вот "путевой лист": Hyundai 3899 servo 02.09: next/prev mp3 skipping mod.
|
Posted by: Rvs on 08-05-2007, 15:42 |
cax Отлично!!! Думаю будет работать везде. |
Posted by: cax on 13-05-2007, 15:16 |
Выложил у себя на страничке апдейт для Юндая и его брата-близнеца Вертекса. За последние год и 2 месяца я впервые что-то выпускаю, да и то - с твоей подачи, Rvs. Думаю, что на этом всё и закончится, если только мне не подсунут ещё какое-нибудь полезное и готовое HOWTO для плейеров, которые у меня дома и ещё исправны У меня сейчас другое увлечение - портирую эмулятор MSX (про школьные компьютеры Ямаха слышал небось ?) на rockbox. Это такая OS, которая бежит на iPod и других портативных плейерах. Прикольно играть в любимые с детства игры на экранчике, который помещается в нагрудный карман. |
Posted by: Rvs on 15-05-2007, 09:25 | ||
cax
|
Posted by: cax on 15-05-2007, 11:18 |
Ну, эмуляторов MSX есть вагон и маленькая тележка - blueMSX, openMSX, а fMSX - так тот вообще на десятки платформ перенесен. Если тебе интересно как я продвигаюсь, и компьютеры MSX вообще - можешь зайти в форум на http://ru.msx.org (http://ru.msx.org, где я переводчиком. В этой ветке обсуждать MSX будет злостным офтопиком. |
Posted by: Rvs on 16-05-2007, 16:05 |
LDZ Перекинул процедуру USB, но не заработало. Тогда залил прошивку от сильвера, тоже не фига. Вышли если можешь мне на почту ruslan(тузик)tiraet.com твою которая на XORO заработала. |
Posted by: LDZ on 16-05-2007, 19:40 |
Ушло. Ты мне обратным ходом намыль свою, залью посмотрю. Ты чем проверял? ЗЫ. У меня 2 кардридера - один работает, второй не хочет. |
Posted by: vboroda on 18-05-2007, 19:42 |
Ну так что, никаких разъяснений насчет длинных имен на USB не последует? Меня New Age ничему учить, к сожалению, не хочет, а уж очень хочется сделать эту фичу для Philips 5960. Создается впечатление, что некоторые эксперты по тем или иным причинам не хотят делиться всеми своими наработками, либо считают, что если ты не идиот, то сам разберешься (крутым хакерам с "новичками" не интересно?). В какой-то мере это, наверное, справедливо: я вкалывал, а ты теперь хочешь бесплатно пожинать плоды моего труда? Но в результате просто теряется смысл - если моддеры не будут делиться знаниями, то в чем отличие моддера от профессионала, работающего на производителя плееров, который знает все, и мог бы добавить любую фичу за пару часов, имея доступ к исходникам всего кода, но не хочет ничего делать просто потому, что ему лень (или потому что начальство не требует)? Кстати, пока так и не получилось собрать кабель для заливки. Такое впечатление, что что-то не работает на плате - уже 4 мобильниковских кабеля изгадил, и так и не удается ничего считать из памяти - ни MtkTool'ом, ни MtkCom. А очень бы пригодилось для отладки (не столько даже для перезаливки, сколько просто засунуть какое-нибудь число в память, и проверить, проходит ли код нужным путем). |
Posted by: cax on 19-05-2007, 21:24 |
Мобильниковские кабели и мне не помогли. Паяльник я держать не умею, но кабель из одной микросхемы и 5 конденсаторов собрал за 3 часа. |
Posted by: Rvs on 21-05-2007, 17:45 | ||||
vboroda
|
Posted by: vboroda on 21-05-2007, 19:43 | ||
ARM с длинными именами (вернее, вся прошивка для Medion MD81290) у меня есть. Скачал с сайта New Age. Проблема в том, что там столько всего понапихано, что я просто затрахался пытаться выудить из этого какой-либо смысл. Там есть довольно простая ф-ция (вернее, две), которые вытягивают сами длинные имена из структуры и записывают в массив, где хранится короткое имя, после этого самого короткого имени. Это я как бы понял. И это якобы был (согласно постингу NA в Яхе) весь секрет добычи длинных имен. Когда понадобится, дам адреса этих ф-ций. А дальше начинается свистопляска с подстановкой строки по OSD команде 65. И команда эта, похоже, приходит с кучей параметров. Т.е. структура команды 65 мне пока не ясна (хотя ее, возможно, можно будет разобрать из исходников 8032), но главное, непонятно, куда пихать код и все эти жуткие массивы, которые NA аллокирует в нескольких разных местах. У меня в 5960 расширять ARM, похоже, некуда (во всяком случае, программа NA мне в этом не помогла), а свободного места в середине, вокруг USB мессиджей и C++ exceptions тоже не так много - ну, килобайтов 8 от силы. У меня сложилось впечатление, что NA копирует все файловые структуры в какой-то запасной массив (хотя я там не так уж хорошо разобрался, как это на самом деле происходит). В общем, драть его код напрямую я не хочу, без понимания, как и почему это работает. А вот этого самого понимания мне пока и не хватает. Я думал сделать попроще: установить какой-нибудь флаг, если читаем FAT (USB), а потом посмотреть, нельзя ли в 8032 доступиться к этим же массивам (в которых длинное имя следует сразу за коротким), распечатывая имя файла в "файлобраузере". Но без кабеля я эти исследования пока отложил - боюсь убить устройство нафик. |
Posted by: Rvs on 22-05-2007, 16:48 | ||
vboroda Работу ты проделал не малую!!! Ну, давай по очереди: 1. Если ты нашел две процедуры которые заполняют массивы разве в них нет адреса самого массива??? 2. В 8032 браузер только один, значит алгоритм вывода на экран названия папок и файлов тоже один, а самое главное адреса чтения из DRAM тоже один, отсюда следует, что NA заполняет туже самую структуру, что и при чтении FAT, а про неё мы знаем точно как она выглядит и где расположена. Значит можно глянуть, как выглядит массив в не правленом ARM-е и в правленом NA. Если разница есть, значит, ларчик просто открывался. 3. Я видел ARM увеличенный NA на 30Kb - 50Kb, так что я думаю, что не проблема увеличить ARM. 4. А ты не пробовал пересадить ARM NA в свою прошивку, интересно он все изменения сделал только в ARM-е или и в 8032?
Лучше сделай шнурок, а то закончиться плачевно... |
Posted by: vboroda on 22-05-2007, 18:36 |
USB LFN 1. Адрес массива безусловно есть. Если 8032 доступается к этому же самому массиву для доставания имен файлов в своей vFlMnDrawPage (ранее известной как DIR_FileBrowser), то дело должно быть совсем не хитрое. Но без шнурка я проверить не могу. А без конца жечь CD болванки мне тоже жаба не дает. 8032 получает массив пойнтеров. Куда эти пойнтеры пойнтают можно узнать только просмотрев память. 2. А вот здесь ты не совсем прав. Вернее, ARM заполняет структуру, да. Но для FAT она не та же, что для CD/DVD. Почему так по-идиотски сделано - ума не приложу. Может, им не достаточно памяти для полных paths длинными именами, а на CD/DVD структура директорий обычно упрощенная, и там особо много не требуется, в то время как на диске может быть 10 вложенных директорий? В общем, там для всего используется короткое 8.3 имя, а длинное имя может быть сохранено, но просто игнорируется. Трюк NA заключался в том, чтобы записать это имя в тот же 50-байтовый буфер, но по адресу 14. В итоге мы можем увидеть что-то ок. 34-35 символов вместо 8.3. Что касается 8032, то он получает только пойнтеры к именам файлов, в некоем списке, а не пойнтер к общей структуре файлохранилища. Так что теоретически возможно, что ARM дает ему адреса тех самых 50-байтных буферов, в которых за коротким именем следует длинное. Но возможно и то, что ARM сначала копирует все имена в какой-то другой общий список, а потом дает 8032 адреса членов этого списка. 3. Я уверен, что увеличить 5960 ARM можно, я просто не знаю, как это сделать. 4. Я ж не самоубийца - пересаживать чужой ARM в свою прошивку без кабеля. Думаю, что NA не просто хакер, а хакер со смыслом (почти программист ), так что вполне вероятно, что свои изменения для определенной фичи он старается вносить в одну сторону прошивки, а не в обе. Так ему легче переносить фичи с одного устройства на другое: взял ARM и перенес со всеми фичами сразу. Кому как не ему известны все аспекты разделения труда между ARM и 8032. Во всяком случае поддержка LFN вся сделана в ARM. В прошивке NA совершенно офигительное количество изменений 8032 (я сравнил со стандартной), но скорее всего они не имеют отношения к LFN. Интересно, как изменилось мое личное понимание архитектуры MTK за те несколько недель, что я начал с нею знакомиться. Сначала мне казалось, что значительно легче понимать код ARM (THUMB), a 8032 - это тихий ужас. Но разобравшись более менее с исходниками 8032, я теперь на 180 градусов поменял свое мнение. Проблема в том, что в ARM очень трудно искать бинарные строки. Вот ты видишь, например, адрес какой-то переменной в Sh. Mem. - в 8032 все точки обращения к ней находятся элементарно. А в ARM... Совершенно неясно, что и где искать. Ладно, черт с этими длинными именами файлов. Может быть кто-нибудь знает, как добавить DivX resume в ARM? Я вижу, что при нажатии кнопки Play во время загрузки диска 8032 пишет 2 команды в Sh. Mem.: vSetSharedInfo (0x6E0, 0); vSetSharedInfo (0x6FE, 0); А далее непонятно. То ли он получает ответ от ARM, и затем просто инициирует прыжок на определенную точку проигрывания, то ли ARM прыгает самостоятельно, а 8032 только сообщает об успехе (показывает мессидж RESUME PLAY). Мне кажется, очень полезная и нужная фича... Есть ли идеи? |
Posted by: cax on 23-05-2007, 08:35 |
Лично меня устроила бы даже возможность не запоминания, а перехода на фиксированное время, скажем, выбираю я в меню "прыг на 30 минут от начала". Чертовски полезная вещь для портативных плейеров, у которых мало кнопок на корпусе, а таскать везде с собой пульт неудобно. Но я не нашёл как программно сделать "прыг". Что касается запоминания места - для стандартных DVD оно реализовано, осталось раскопать как и повторить для DivX. |
Posted by: Rvs on 23-05-2007, 13:01 | ||||||||||
vboroda
Т.е. упрощёно есть две процедуры, которые преобразовывают, и загоняю в массив имена для 8032 из FAT или CD. Поэтому если верить тому же источнику всё должно выглядеть вот так:
Отсюда и не понятки что это за 50-байтовый буфер, и адрес 14 , уж не пустил ли NA нас по ложному следу. Исходя из этой инфы и я это точно видел у себя на плеере, должна заполняться структура и все имена в кучу. Исходя из того что NA сказал что вначале ARM сам пишет 8.3, а потом его процедура дописывает длинное, получается гон, файлы то идут в кучу промежутков то нет!!!
|
Posted by: vboroda on 23-05-2007, 17:51 | ||||
Rvs Насчет того, что дла FAT информация о файлах запихивается в массив структур, в которых по 50 байт отведено под имя файла, я совершенно уверен. Зря, что ли, 2 недели пялился в NA код? То, что ты описал, имеет отношение к спискам файлов, полученных в файловых системах типа ISO. Для FAT и ISO используются совершенно разные хэндлеры, что более-менее подробно было описано NA еще давным давно. Но вот что происходит с массивами структур после того, как они были считаны функциями поддержки FAT, того я не ведаю. Например, патч cax по пвреводу имени файла из уникода в CP12XX относится только к ISO файлам, и ни коим образом не затрагивает FAT. Насчет NA я, конечно, ничего не знаю и не ведаю, но есть у меня глубокие сомнения насчет того, что ему доступны исходники ARM. Более того, я даже подозреваю, что исходники ARM могут быть доступны только поставщикам SOC МТК. А производители плееров получают исходники 8032, которых более чем достаточно для того, чтобы кастомизировать их продукт. ARM отвечает, как тебе безусловно известно, за аспекты доступа к файловым системам и раскодирования видео и аудио потоков. Весь user interface обеспечивается 8032. Если бы исходники ARM были доступны производителям плееров, китаезы, у которых понятие об интеллектуальной собственности отсутствует просто на генетическом уровне, уже давно выложили бы их в открытый доступ. Если сравнить ARM прошивки NA с официальной прошивкой, то разница хотя и огромная, но совершенно очевидно, что все его изменения сконцентрированны в нескольких четко ограниченных местах (поверх текстовых мессиджей поддержки FAT - до мессиджей C++ exceptions, и в конце, в месте "расширения"). Я думаю, что он действительно пишет свои патчи на С, а потом компиллирует, но при этом устанавливает их вручную. Ассемблер ARM/THUMB (16-битный) меня не слишком угнетает, он как-раз довольно понятен. Проблема в другом: как искать что-то в бинарниках? Приходится пользоваться текстовым поиском, а это головная боль. Например, если ты знаешь, что тебе надо найти в 8032 место, где пишется Sh. Mem. position 0x06E0. Элементарно: ищешь код "7F E0 7E 06 12":
и находишь. А в ARM просто хрен знает как и что искать, если во всех командах immediate числа побитно сдвинуты между байтами.
Здесь ты не прав. Как я и написал, 8032 может только дать UOP команду запомнить, но сам он не отвечает за запоминание. Запоминает точку отключения ARM, причем делает это автоматически. Но где, в каком месте - ума не приложу. Я вообще не понимаю, как найти switch, который отвечает за исполнение UOP команд. |
Posted by: vboroda on 23-05-2007, 18:14 | ||
cax Я вижу, ты серьезно переключился на свой новый проект, даже не следишь за группой на Яге.
Совершенно верно. Но как его найти, а? Потом, не забудь, что ISO диски - это всего лишь коллекции файлов без какого-либо ID. А уж как там подобраться к FAT устройствам, я и вообще в непонятках. Я просто хотел бы реализации простейшего resume - если диск не вынимали, и плеер из сети не выключали, при нажатии кнопки Play во время демонстрации экрана Loading идти на последний проигрывавшийся файл в последнюю проигрывавшуюся точку. Наплевать мне на 5 последних дисков, сохраненных в EPROM. |
Posted by: cax on 23-05-2007, 22:05 |
Если я правильно понял из твоего ЖЖ, ты умеешь программно перейти на любое заданное место фильма. Далее. Энди007 научил меня сохранять громкость в EEPROM, и извлекать её оттуда. Значит мы можем сохранить там же и текущее положение фильма. Что осталось ? Поймать стоп или выключение плейера, и записать текущее положение в фильме. Сможешь ? |
Posted by: Rvs on 24-05-2007, 12:34 | ||
vboroda Толи я не догоняю, толи туплю до ужаса. Как я рассуждаю: 8032 выводит на экран свои, банальные 6-ь имён файлов и 1-н путь. И ему(8032) глубоко наплевать это имена с CD или FAT он тупо их выводит, причём что бы они отобразились они должны располагаться в строго определенной структуре. Понятно, что с CD и FAT читают разные процедуры, так же понятно, что они могут использовать промежуточный буфер но финишем их работы будет та единственная структура. Идём далее если ты знаешь две простые ф-ции которые вытягивают сами длинные имена из структуры и записывают в массив, где хранится короткое имя, после этого самого короткого имени значит дело сделано, это и есть финишный массив. А свистопляска с OSD 65 я так думаю это он следы путает, т.е. если кто то пересадит его правленый ARM то получит в лучшем случае короткие имена в худшем бред. А меняя вызов OSD 65 он как раз подстраивает 8032 на начало длинного имени. Оставлять короткое не имеет ни какого смысла кому оно нужно. Нам надо сделать проще затирать коротки длинными.
так есть уже функция vEepromWriteLastMem(); Description : called from power down она поидее это и делает если же нет то вручную дописать если в С рубишь глянь сам может скорее догонишь, а то я туплю что то!!! |
Posted by: vboroda on 24-05-2007, 22:06 |
Rvs, Вероятно ты таки прав. Потратил сегодня половину рабочего дня в поисках пути к vISOInit, начиная с vPlayerTimer и далее... Докопался в конце концов. Надо подумать, как подставить сюда вызов vSendUopCmd(UOP_PLAY, SV_STOP_PLAY_CHK_LASTMEM, 0, 0); Напрямую делать этого не хочу, хочу добавить проверку флага, чтобы resume проводился исключительно по желанию заказчика (т.е. при нажатии кнопки PLAY во время Loading). В случае по умолчанию - как и сейчас, идти в меню выбора файлов. Авось получится. cax, В какую прошивку ты бы хотел добавить ф-цию GOTO TIME? Если хочешь, могу взглянуть, авось чего и накопаю. Philips'овские прошивки все очень похожи, и там везде практически нужно делать один и тот же патч (из трех частей). Как я понимаю, у тебя прошивки других производителей, возможно и 8032 код совершенно другой, может быть даже другого, предыдущего поколения. Но взглянуть можно. |
Posted by: vboroda on 24-05-2007, 22:26 | ||
Rvs,
И опять я не отрицаю, что ты прав. Просто NA в тех немногих крохах информации, которые он бросил любителям, пишет, что переписывать кототкое имя длинным в функциях, занимающихся чтением FAT, нельзя, т.к. по многим причинам файлы с "длинными именами" проигрываться после подмены не будут (возможно есть еще и другая ф-ция, которая ищет файл по имени, и она-то и не умеет искать по длинному имени?). В общем, я просто не знаю настоящей причины, но уверен, что если бы можно было элементарно подставить длинные имена на место коротких, NA это бы сделал, и не возился бы с OSD 65. Я не думаю, что ему есть какой-то смысл заметать следы таким жутким образом (ты попробуй, почитай его OSD 65 код!), даже если ему очень хочется, чтобы длинные имена на USB были его эксклюзивом. Я не изучал File Browser в исходниках 8032 подробно, поэтому не буду утверждать, что я прав. Но из того, что я просматривал, мне показалось, что ARM по запросу 8032 просто пишет в SDRAM какие-то 6 (в моем случае 4) поинтеров к строкам, и их-то 8032 и воспринимает как имена файлов. Если так, то совершенно неважно, куда эти пойнтеры указывают - м.б. в массив идущих подряд имен файлов, как в случае ISO диска, а может быть на буфера в каком-то списке структур. В принципе, для 8032 это совершенно безразлично. Может быть, если удастся что-то сделать с ISO Resume, попробую изучить проблему длинных имен более подробно. |
Posted by: vboroda on 25-05-2007, 04:16 | ||||
Ну и опять я отвечаю сам себе. Сделал патч, чтобы вызывать
в случае запроса Resume (по флагу в SI_LAST_MEM):
Очевидно, вызывается в таком случае последний проигрывавшийся MPEG (но не MPEG4) , потому что у меня на экране появился бэкграунд файл-браузера, но без списка файлов (т.е. как бы не меню, но и не DivX фильм). Вероятно, нужно каким-то образом при остановке запоминать файл и время, а при восстановлении инициализировать сначала список файлов, потом определенный файл, а потом уже точку в файле. И все это вручную. Ох... В общем, боюсь, маленьким патчиком не отделаться, а большой мне делать не очень хочется. |
Posted by: cax on 25-05-2007, 10:34 |
Я предлагал вещь более простую. Уже находясь внутри проигрываемого файла, умеешь ли ты сделать GOTO ?? Если да, то просто добавь кнопку или пункт меню, который приведёт уже играемый файл в запомненную точку в нём. Оставь выбор файла пользователю. Это устроит практически всех. Что касается моего плейера - большое спасибо за предложение, но ты сперва реализуй это у себя, а там видно будет. |
Posted by: vboroda on 25-05-2007, 18:11 | ||
cax
Ты, как я понял, предлагаешь сделать что-то вроде BOOKMARK - закладки. Нажал кнопочку - запомнил. Нажал другую кнопочку - прыг на закладку. В принципе поддержка таких закладок (и даже не одной, а целого списка) в MTK плеерах существует, хотя в мою прошивку она, к сожалению, не откомпилирована. Дело в том, что такое решение не многим лучше простой GOTO TIME, которая у меня уже есть. Т.е. от юзера требуется некое действие: в одном случае нажать кнопочку, в другом (моем) - запомнить время остановки. Прелесть готового решения для DVD/VCD в том, что юзеру делать ничего не нужно! Вот тебе пример. В плеере существует само-отключение после 20 минут в скрин-сэйвере. Зрительница поставила фильм на паузу, и пошла успокаивать проснувшегося ребенка. Если она в течение 20 минут не вернулась - плеер само-отключился. Что ей теперь делать? Если она смотрела DVD, то все совсем не страшно: при включении, когда появился экран Loading, она нажимает кнопку PLAY, и плеер переходит на то место, где она остановила фильм. А вот если она смотрела DivX программу, и при этом не запомнила время останова, то ей ничего не остается, как поставить фильм на быструю 32x перемотку. Что тоже, разумеется, не конец света... В общем, чтобы решить такую проблему так, как мне хотелось бы, нужно запоминать последний проигрываемый в момент отключения файл + время HH MM SS - скажем, 4 байта. В точке восстановления (которая мною уже идентифицирована) нужно было бы делать: (0) восстановление меню и MPEG4 режима. (1) прыжок на файл - пока не знаю, как. (2) прыжок на время - знаю как. |
Posted by: cax on 25-05-2007, 21:07 |
Похоже, я всё-таки плохо объяснил свою задумку. Попробую ещё раз объяснить, как я вижу реализацию запоминания: 1) при нажатии на паузу/стоп/отключение запоминание времени - автоматическое. 2) Восстановление воспроизведения в запомненном месте: уже после начала воспроизведения файла, нажатием на клавишу или выбором пункта в меню. В таком варианте не придётся выполнять пункты (0) и (1). По поводу "моей" прошивки: разумеется, я буду рад встроить такую возможность во все свои плейеры, просто сейчас нет смысла разбрасываться, пока эта фича не реализована и не обкатана до конца у тебя на твоём аппарате. |
Posted by: Rvs on 26-05-2007, 13:49 | ||||||
vboroda
т.е. через пресловутую структуру. А вот она уже указывает на начало каждой строки. Поэтому указатели могут указывать только на эту структуру. Причём я так понимаю место положение её низменно.
|
Posted by: vboroda on 26-05-2007, 19:13 | ||
Ну я пока накатал пару ф-ций на ассемблере (сохранить и восстановить с прыжком). Как cax посоветовал. Но еще не тестировал. Я не на 100% уверен, что ISO_LAST_MEM сделала бы все, что нам надо. Там еще дело в том, что меняются размеры массивов EEPROM SHADOW, боюсь, как бы это не подвинуло чего-нибудь. Надо разобраться, как это все работает, и сделать по аналогии, мне кажется. |
Posted by: cax on 27-05-2007, 11:49 | ||
Вот очень сырое "руководство" по сохранению громкости, реализованное по наводке и под руководством Энди007 (из него легко понять как читать из/писать в EEPROM). В чём его сырость ? 1) не описывается как найти свободную ячейку EEPROM (вкратце: берём наугад некий адрес - я использовал от 0x55 до 0x99 - и проверяем по всей прошивке, нет ли для него вызовов PREF_GetChar. Если нет - возможно, что он не используется) 2) в 4 из 5 случаев у меня не было свободного места в нужном банке, и мне приходилось размещать дополнительный код в пустом месте другого банка, и, соответственно, использовать "межбанковский" вызов. Боюсь, что для читателей, знакомых лишь с hex-редактором, это будет сложно объяснить (вкратце: вместо обычного 12 zz zz надо использовать 90 zz zz 02 kk kk, где kk kk - подпрограмма вызова кода по адресу zz zz в другом банке памяти) Как всегда, описываю применительно к DVD Hyundai 3899 servo 02.09:
|
Posted by: lill on 28-05-2007, 19:26 |
Люди, извиняюсь за вторжение в вашу высоконоучную дискуссию. Облазил весь e-net - похоже вы глубже всех зарылись в тему, если нет - подскажите где искать.... Аппарат BBK DV966S=DV516S. Проц MTK1389FE. В общем-то притензий к аппарату по большому счёту нет, но главный глюк котрой BBK'ейщики не исправили за 3 года ( и теперь уже вряд ли исправят ) это то что все регулировки: громкость по каналам, эквалайзер, яркость, контрастность, насыщенность, навигация по меню и пр. происходят не плавно ( при длительном удержиании соответствующих кнопок на пульте ) а дискретно - когда чтобы изменить необходимый параметр, например на 10, - нужно десять раз нажать соответствующую кнопку. Задалбливает. Кнопки на пульту скоро до дыр продавятся. У знакомого 965-ый - так там такого глюка нет. Прошивка стоит последняя 966S-4A-427 с официального сайта BBK. Ни кто не сталкивался с таким глюком, не ковырял прошиву на эту тему? Брал пульт от 965-го всё тоже самое - значит проблема не в пульте. Может есть у кого какие мысли в какую сторону копать? . Есть даже 966S-4A-0427-m1 патченная a-ha ( должны знать ) - но проблемма осталсь. Если надо могу приаттачить прошиву. TIA |
Posted by: cax on 29-05-2007, 00:52 |
Слабые попытки сделать "нажатие с удержанием" предпринимались на плейерах Пионер, но и там - только при пролистывании списка файлов. Если я не ошибаюсь, для этого в прошивке должна быть неактивированная поддержка "долгого нажатия", которую нужно включить и подвесить к ней нужную функцию. В общем, я точными знаниями по сабжу не обладаю, а искать нужно, как всегда, если на русском - то в ixbt, а если на английском - то на Яху в группе mt13x9 и разных других форумах. |
Posted by: vboroda on 29-05-2007, 00:52 | ||
cax Прочитал я инструкцию, спасибо. Если бы ты еще называл PREF_GetChar и PREF_PutChar их настоящими названиями bEepromReadByte и fgEepromWriteByte, я бы сразу понял, о чем речь. В общем, похоже что поиск "свободных ячеек" EEPROM осуществляется методом "научного тыка", или лучше сказать, наугад.
Проверить какой-либо адрес на предмет существования вызовов на него PREF_GetChar, просто изучая дизассемблер прошивки, в принципе практически невозможно. Если почитать исходники, станет понятно - почему. Кроме того, что таких мест, где вызывается эта ф-ция (напрямую или через Bank Switch) - несколько сот, во многих местах она вызывается с параметрами, записанными в некоей таблице, в которой в принципе состоят ВСЕ ячейки LAST_MEMORY - от нуля и до последней. Это не значит, что все они используются в каждой прошивке, некоторые могут относиться к опциям, для конкретного железа ничего не значащим (караоке, например), но теоретически каждая из ячеек может использоваться, и на нее существует пусть непрямой, но вызов. Т.е. более правильным подходом в таком случае было бы просто попытаться сделать два дампа EEPROM - до и после того, как ты изменил ВСЕ возможные опции, а заодно и проиграл все возможные виды дисков - и посмотреть, значение каких ячеек не изменилось. В общем, без кабеля я пока не знаю, как действовать. Но думаю, что можно писать я ячейки, следующие за EEPROM_END_POS, т.е. в моем случае где-то после адреса 0x20C в EEPROM. Там, как я понимаю - no man's land - ничего не значащие и не используемые ячейки. Для писания и читания в EEPROM напрямую (а не через Shadow, как PREF_...) можно использовать ф-ции: BOOL fgWrite_EEPROMByteDirect(BYTE bId, BYTE bAddr, BYTE bData) и BOOL fgRead_EEPROMByteDirect(BYTE bDevice, BYTE bData_Addr, BYTE *pbData) А вообще, твоя идея с resume мне понравилась, и я ее уже даже осуществил, хотя пока без сохранения и восстановления из EEPROM. Сделал [пока, в тестовом варианте] так: (1) по нажатию IR_PAUSE (в дальнейшем будет также IR_STOP и IR_POWER) сохраняем в Shared Mem. текущее время. (2) по нажатию кнопки IR_NEXT ( >|| ) если сохраненное время валидно, прыгаем на него, и затираем. Если сохраненное время затерто - отрабатываем кнопку по умолчанию. |
Posted by: lill on 29-05-2007, 06:49 | ||
Да на ixbt я завсегдатай ( оттуда и прошивка от a-ha ), на yahoo grooop тоже есть свой аккаунт - вот уже три года слежу и за cachirulo, mabreacer, Cherry и иже с ними. Но народ почему в основном упёрся в рюшечки типа фонты, картинки, заставки. Я понимаю - хозяин-барин и что эти задачи тоже требуют уйму времени - респект и уважуха им за это, но вот глюк о котором я писал почему-то ни кого не интересует хотя он куда больше доставляет неудобств чем кривые фонты. У самого нет столько времени чтобы с ноля драть прошивку идой - а зацепиться незачто. Ладно...- это крик души Похоже готового решения не найти - предётся возится помаленьку самому. Тем более что чтобы не париться с ISO образами штатно установил в сабж на правой боковой панели разъём RJ-45 для низковольтного COM порт на MAX3232. Получилось аккуратно. Работает без проблем. Лей теперь что хочешь - былобы что. Главное нет инфы в чём проблема - ведь в DV965S нет такого глюка! Что поменялось-то? Железо практически одинаковое. |
Posted by: Rvs on 29-05-2007, 10:51 | ||
vboroda
1. Как нашёл свободное место в Shared Mem? 2. Отобрази твою идею в исходнике, хочу тоже помозговать. |
Posted by: Andy007 on 29-05-2007, 17:40 |
Просто так увеличить это значение - этого мало Посмотри исходники вниманельнее - за границей максимального eeprom начинается зона сохранения положения на диске. Править надо далеко не в одном месте. |
Posted by: vboroda on 29-05-2007, 21:48 | ||||||||
Итак, (1) Где найти свободные ячейки SHMEM. Смотрим исходники. На каждую SI группу отводится 32 байта. В некоторых группах занято почти все, в других - частично. Я решил воспользоваться местом в SI_TIME_INFO_GRP (в исходниках - номер 18, в моей прошивке - 19). После 23 там ничего не используется (хотя насчет ARM я на 100% не уверен, но 8032 явно требует только первые 23 ячейки). Значит, остается 9 свободных ячеек. Мне требовалось 5 байт - 3 для времени и 2 для item ID. (2) Как работает? Нашел (по исходникам, и далее, следуя за дизассемблером) ф-ции, которые выполняются при нажатии определенных кнопок: IR_PAUSE: fgISOPauseKey() IR_STOP: fgISOStopKey() IR_POWER: fgCOMPowerKey() IR_NEXT: fgISONextKey() Каждая из этих ф-ций вызывает vSendUopCmd() для передачи команды ARM. Значит, мы можем сделать один патч для первых трех ф-ций, который сохранит все требуемые данные. Что-то вроде этого:
И функция для восстановления (записываем вызов этой ф-ции в хэндлер IR_NEXT):
Я посмотрел в IDA, какой самый высокий XRAM адрес используется в коде, и для временных переменных занял адреса чуть выше самых высоких:
(3)
Ну, а за зоной сохранения уже ничего не начинается (кажется). Т.е. то, куда пишет vEepromWriteLastMemList, и есть самый конец полезной части EEPROM. В моем случае это 0х20C. Ну хорошо, теоретически там может быть еще MAGIC2 - пропустим еще несколько байт для верности. Остальное, вероятно, не принадлежит никому? Берем простые ф-ции vEepromWriteLastMemList и fgEepromLoadLastMemList, и моделируем на их основе: vEepromSaveShMem (WORD eAddr, WORD shAddr, BYTE len) и fgEepromLoadShMem (WORD eAddr, WORD shAddr, BYTE len) Возможно я ошибаюсь, и так делать нельзя. Я еще не закончил кодировать ассемблер, и тем более - не тестировал. Самое поганое, однако, в том, что даже если я доваяю свой патч, и он будет у меня работать, переносить его на другие прошивки без очень хорошего знания и изучения соответствия между исходниками и реальной имплементацией будет архисложно. Я, разумеется, пока все делаю для Филипс 5960/37, прошивку которого я почти полностью проследил, но даже перенос на почти идентичный 5960/12 будет не совсем тривиален. |
Posted by: cax on 30-05-2007, 15:10 |
vboroda: теперь ты можешь предлагать свои услуги продавцам DVD, которые захотят продвигать на рынке аппараты с более продвинутым функционалом, чем у конкурентов. Поскольку сделать подобную штуку нетривиально даже тем, кто владеет ассемблером, то и все карты тебе в руки. |
Posted by: Andy007 on 30-05-2007, 16:52 |
У NA есть исходники для xoro, medion и для cyberhome. Так что сравнивать в бинарном виде изменения - бесполезно. Не делится потому что подписывал кучу NDA. |
Posted by: vboroda on 30-05-2007, 17:18 | ||
Меня немного раздражает другой аспект этой деятельности: постоянные просьбы что-то сделать. У кого-то похожая прошивка, кому-то хочется, чтобы плеер делал то-то и то-то, третьему срочно требуется, чтобы я поменял в прошивке шрифт. Каждая из этих просьб в отдельности меня бы не затруднила, но когда просьбы поступают с частотой 3 в день... А запортовать мою, скажем, GOTO фичу на похожий плеер Philps 5980 занимает часа три... У меня ведь еще и основная работа имеется, и дети с женой дома требуют внимания. |
Posted by: vboroda on 30-05-2007, 17:37 | ||
Кстати, сохранение в EEPROM (и восстановление) работает. Оттестировал, проблем не увидел. Если вы не возражаете, могу привести листинг ф-ций сохранения и восстановления с комментариями. В принципе, обе процедуры вполне портабельные: нужно только заменить XRAM адреса на те, которые можно использовать в вашей прошивке, и, разумеется, поправить все вызовы других функций (морока еще та). В терминах языка С, параметры такие: void vEepromSaveShMem (WORD eAddr, WORD shAddr, BYTE len); BOOL fgEepromLoadShMem (WORD eAddr, WORD shAddr, BYTE len); Я в своей прошивке вызываю их примерно так:
Таким образом, предложенная cax фича полностью реализована. Ну или почти полностью, т.к. я все еще пытаюсь придумать наиболее оптимальный вариант возобновления игры (сейчас я просто тупо запоминаю точку при останове, а при нажатии >>|, если есть запомненная точка, прыгаю на нее, и затираю. Я просто не уверен, что это не будет раздражать пользователя.) |
Posted by: cax on 30-05-2007, 17:47 |
Если у есть возможность сбросить память (скажем, в Пионере первое нажатие на "стоп" приостанавливает вопроизведение, а второе - останавливает совсем), то раздражать не должно. Лично я бы добавил в меню пункт "Resume", но и с >>| тоже неплохо, как мне кажется. Проверь только, что это не мешает работе обычных DVD. |
Posted by: vboroda on 30-05-2007, 18:09 | ||
Я на 99% уверен, что исходников ARM нет ни у кого, только в Mediatek. Иначе наши китайские друзья уже выложили бы их в открытый доступ. Если у человека есть исходники конкретных прошивок, пусть в пределах 8032 кода, т.е. build environment, то сама по себе деятельность уже совершенно выходит из разряда хобби и хакинга. Если бы я мог просто взять и откомпиллировать мою прошивку, я бы туда столько новых возможностей напихал... Вопрос только в том, почему прошивки NA не распространяют сами производители устройств? Если они подрядили его улучшать их прошивки, почему бы им не рекламировать свои устройства, как улучшенные по методу NA? |
Posted by: Rvs on 30-05-2007, 18:25 |
vboroda Отлично!!! Даже очень!!! есть вопрос: в ф-ях void vEepromSaveShMem (WORD eAddr, WORD shAddr, BYTE len); BOOL fgEepromLoadShMem (WORD eAddr, WORD shAddr, BYTE len); 1. ты одновременно сохраняешь и в EEPROM и в ShMem? 2. XRAM_FE66 BYTE bIdCnt XRAM_FE67 BYTE bAddrCnt и т.д. это то что функция возвращает/передаёт? и что оно означает? не могу понять как это всё вяжеться с saveThePlayTimePatch, а так всё понятно и не сложно. |
Posted by: vboroda on 30-05-2007, 20:01 | ||||||||
Rvs, В ShMem я сохраняю с помощью обычных ф-ций, ранее известных как ARM_PutChar/ARM_GetChar. Новые ф-ции берут len байтов по Shared Memory адресу shAddr, и запихивают их в EEPROM по адресу eAddr. И наоборот. XRAM_ ссылки используются в кач-ве локальных переменных функций. Я передаю параметры в ф-ции только через R6R7, R4R5 и R3. Извините за длиннющий листинг, но я все-таки приведу здесь его ради иллюстрации:
bIdCnt и bAddrCnt - местные переменные ф-ций. Чтобы понять, в чем их смысл, почитай исходники "оригиналов" - vEepromWriteLastMemList, fgEepromLoadLastMemList и т.д. Стыковка такая же, как во всем 8032 софте. Данные хранятся в указанных мною ячейках Shared Memory во время нормальной работы устройства. Когда устройство выключают (уходит в STANDBY mode), вызываются ф-ции сохранения параметров из Shared Memory в EEPROM. Одна из них:
Когда устройство включается, другие ф-ции считывают полезную информацию из EEPROM в Shared Memory. Одна из них вызывает теперь мою вторую ф-цию:
Код патча я уже привел. По сути это вызов C процедуры:
Ну а ф-ции, имеющие дело с сохранением и восстановлением точки запуска, знают только об адресе 0х277 в Shared Mem. Им нет никакого дела до EEPROM. |
Posted by: Rvs on 31-05-2007, 16:09 |
vboroda Блин толково ты всё сделал!!! по больше таких програмеров!!! Буду к себе добавлять, как только так сразу отпишусь!!!! |
Posted by: vboroda on 22-06-2007, 21:38 |
Привет, если эта тема еще дышит. Отправил вопросец в Яху группу MTK, но никакой реакции не последовало, к сожалению. Попробую сформулировать то же самое на родном языке. Имеется прошивка с ARM кодом из трех частей. Аппарат Philips 5960. Распаковал этот ARM код (весь сразу) MTKReMaker'ом. Вроде бы все нормально, но выясняются интересные вещи: многие пойнтеры указывают на адреса, по которым вроде как располагается в распакованном виде исполняемый код. Скажем, делаю патч для UOP removal. Нахожу участок кода. Ба, да буфер UOP_Parameters "расположен" прямо на середине какой-то ф-ции! Здесь, правда, ничего страшного не произошло, т.к. не требовалось создавать никаких новых ф-ций и куда-либо прыгать. Еще пример: попытка поставить P&S патч от fontcreator'a. Ф-цию находим сразу, но размещена она в "высоких" адресах (0х8ХХХХ). У нас еще полно места на C++ мессиджах, расширять код пока не требуется. Попытаемся прыгнуть из "верхней" части кода на место, где располагаются С++ мессиджи. Я попробовал, и получил намертво зависший плеер. В общем, подозреваю, что алгоритм распаковки ARM кода не совсем правильно (или совсем неправильно?) отрабатывает "верхнюю" часть кода, помещая ее в менее высокие адреса, чем те, по которым она на самом деле размещается в работающей системе. Более того, я также не уверен, что алгоритм "расширения" ARM кода, применяемый в программе MtkArmResizer, правильно учитывает расположение "верхней" части кода. Есть ли у кого-то комментарии или советы по этому поводу? Может быть я просто неправильно что-то делаю? Большое спасибо за помощь! |
Posted by: jonia on 30-06-2007, 19:01 | ||
Здравствуйте Владимир, Знаю, что досадно, но что сделать, на днях купил dvp-5980/12, потому что 5960 уже пропал, не продают его... Хотелось бы тоже самое, как на модели 5960/12, если конечно найдется времени на это... ver: 12.07.31.26 sub: 07.08.02.01 8032: 05.00.06.05 servo: 93.77.00.00 risc: 05.00.06.05 DSP: 07.03.00.81 С уважением Джони А! |
Posted by: RanDoM133 on 19-10-2007, 18:38 | ||
Решил проблемку сам |
Posted by: bdk100 on 16-04-2010, 16:38 |
Тема ещё жива? vboroda уже пол года не появляется. Кто-нибудь модернизировал Ymaha S557, подключение USB??? Согласен, что металлолом, но рабочий, очень хотелось бы запустить USB, но прошивки не нашёл, а с программированием - туго. разъём подключил, но реакции никакой. HELP!!! Братья по разуму!!! Может кто-нибудь делал - ПОДЕЛИТЕСЬ прошивкой!!! |
Posted by: bdk100 on 20-04-2010, 16:25 |
Help!!! Ymaha S557, подключение USB? |
Posted by: zazafa on 11-05-2010, 19:09 |
http://master-tv.com/proshivki/dvd/dumps/PHILIPS/PHILIPS%20DVP3360K_51.rar (http://master-tv.com/proshivki/dvd/dumps/PHILIPS/PHILIPS%20DVP3360K_51.rar кто может попробовать отображение руских имен вназваниях исправить.я пробовал,плеер вис после правки арм |