Em vários
firmwares Mediatek (mas não em todos) quando você seleciona
um nível de zoom, o ícone de zoom fica na tela permanentemente,
junto com um texto indicando o nível de zoom escolhido (vamos
chamar isso de "mensagem de zoom").
Eu acho
que esse é o comportamento correto e desejável, porque
eu quero saber a qualquer momento que a imagem que está na tela
não é a "normal" do filme. Porém algumas
pessoas consideram a presença da mensagem na tela terrívelmente
incômoda. Eu não tenho problemas com isso por dois motivos:
De qualquer
forma, este texto explica como modificar o firmware para que a mensagem
de zoom desapareça após cerca de 5 segundos. É
baseado no Proview DVP-858, mas a técnica é a mesma para
outros aparelhos, mudando apenas alguns valores.
Nota:
Este patch/hack só desliga a mensagem de zoom. No DVP-858, apenas
em DVD-Video, também é exibido um guia de Pan&Scan
no canto direito inferior que vai permanecer na tela enquanto o zoom
estiver ativado. Veja o exemplo abaixo:

A
imagem é de um DVD-Video widescreen com um zoom de 4X no DVP-858
(a imagem deveria estar ocupando a tela toda na altura, mas falarei
sobre esse problema no review do aparelho). A mensagem de zoom é
a branca superior. O guia de Pan&Scan é o quadrado translúcido
branco com um quadrado translúcido azul interno. Esse guia não
é removido pelo patch.
A explicação
de como o patch é feito foi dada pelo hacker Stanislav "cax"
Borutsky (a.k.a borus) no documento Patching_HU3899_from_A_to_Z.txt.
O trecho que nos interessa é este aqui:
The hex sequence we are going to search appears twice:
once for DivX/MPG mode, another for DVD playback.
After the sequence there should be code that loads into registers R4,R5
number of zoom message in "Data Part->OSD->OSD Languages2->Language 1[00]" (MTK ReMaker).
The number is a 2-byte long value HHLL (for example, 0x207 means HH=0x02, LL=0x07)
You can read more about it in the "Info - OSD Text Initialization.rtf" document.
Usually loading of HHLL into R4,R5 looks like the following:
7D LL mov R5, LL
7C HH mov R4, HH
and the sequence you should use in this case is:
90 xx xx 74 01 F0 A3 74 xx F0 A3 74 xx F0 7B FF 7D LL 7C HH
(xx is "any byte can be here" wildcard)
What to patch in it: 7B FF => 7B 08
|
Neste texto
eu vou traduzir a explicação de borus de um jeito mais
didático. :)
No final,
você também terá aprendido uma ou duas coisas sobre
firmwares Mediatek que serão úteis em outros hacks.
Números
de mensagem
Cada mensagem
exibida na tela tem um número. Para podermos localizar no firmware
os pontos onde a mensagem de zoom é exibida, primeiro precisamos
saber o número da mensagem de zoom. Isso pode ser feito facilmente
com o mtkremaker:
No exemplo,
o número que procurávamos é 0229h
"\3d"
é uma variável. Em seu lugar é exibido 2X, 3X,
4X, 1/2X, 1/3X, 1/4X... dependendo do nível de zoom escolhido
No firmware
existem dois pontos onde a mensagem de zoom é exibida: um para
DVD-Video e outro para avi/.mpg. Nos dois pontos precisamos mudar o
tempo de exibição. Devemos procurar pela seguinte sequëncia
de bytes:
90
xx xx 74 01 F0 A3 74 xx F0 A3 74 xx F0 7B FF 7D
LL 7C HH
Onde "xx"
é um coringa que quer dizer "qualquer valor" e "LL
HH" é o número da mensagem de zoom, com os bytes
invertidos. Como determinamos que para esse firmware o número
é 0229, a seqüência que devemos procurar é:
90
xx xx 74 01 F0 A3 74 xx F0 A3 74 xx F0 7B FF 7D
29 7C 02
Procurando
a seqüência de bytes no firmware
O trecho
que procuramos sempre estará na seção 8032 do firmware.
Como a seção 8032 não é armazenada comprimida,
como acontece com a seção ARM, você pode procurar
diretamente com um editor hexa no firmware. Porém é sempre
recomendável que você trabalhe apenas com a seção
8032, para não acabar alterando outras seções por
acidente. Para fazer isso, use o mtkremaker para salvar a seção
8032 inteira em um arquivo separado.
Se
você sabe usar um editor hexadecimal qualquer, use-o. Aqui eu
vou explicar como é feito no freeware XVI32,
que permite a busca fácil de seqüências hexa com caracteres
coringa.
Abra
a seção 8032 do firmware no XVI32

Certifique-se
de que o editor está no modo overwrite

Clique
em Search - Find para abrir o diálogo de busca:

Certifique-se
de que tudo está selecionado como acima.
Você
vai preencher com a string:
90
2E 2E 74 01 F0 A3 74 2E F0 A3 74 2E F0 7B FF 7D
29 7C 02
Note
que essa é a mesma string da qual falamos antes, com os coringas
substituídos por "2E"
90
xx xx 74 01 F0 A3 74 xx F0 A3 74 xx F0 7B FF 7D
29 7C 02
porque
este é o "coringa" (joker) default do XVI32:

Na
imagem acima, a seqüência começa com "90".
O "9" não coube na tela.
O
XVI32 vai se posicionar no início da primeira ocorrência:

clique
sobre o primeiro "FF" e digite "08"

Tecle
F3 para procurar a próxima ocorrência e repita a edição
(lembre-se de que existe uma ocorrência para DVD-Video e outra
para .avi/.mpg)
Atenção:
se a string aparecer mais de duas vezes, algo está errado.
Se
a string não for encontrada, seu caso é mais complicado
que o padrão.
Salve
a seção 8032
Com
o mtkRemaker, substitua a seção 8032 original pela que
você acabou de modificar.
Teste
o novo firmware no aparelho.
Esta página
usa a biblioteca javascript freeware overlib