Firmware MT13x9

MTK Firmware : FAQ de Desenvolvimento

publicado em 12/08/2007

Como regra geral, tenha em mente que Engenharia Reversa é algo muito complicado e não sou especialista nisso (não sou especialista em PN). Eu preciso me basear em documentação e/ou exemplos pré-existentes. Se já não existe um aparelho que faça o que você quer, existem boas chances de que eu não possa fazer. Não é exatamente assim, porque eu conheço aparelhos e firmwares que muitos de vocês não conhecem, mas usem isso como regra geral.

E mesmo que exista um aparelho que faz, isso pode ter sido conseguido com o auxílio do código-fonte (e não por Engenharia Reversa), podendo ser extremamente complicado de duplicar.

A maioria das questões abordadas neste FAQ tem resposta “não” e “talvez”, porque o que tem resposta “SIM” já foi implantado ou está devidamente documentado em algum lugar no meu blog ou no meu fórum.

Este FAQ não se aplica apenas ao Proview DVP-858.

Dá para corrigir o problema do Packet Bitstream em XviD?
Dá para dar suporte a multisessão em mídia -R/+R?

Muito complicado. Ainda não existe um modo de resolver isso que não seja usando partes do firmware de outro aparelho. Além de ser naturalmente complicado emendar partes do firmware de aparelhos diferentes, quando funciona geralmente provoca efeitos colaterais. Eu só pretendo dar atenção a esses assuntos quando tiver notícia de que algum hacker conseguiu resolver o problema modificando diretamente o código.

É possível fazer um ZOOM mais “fluido”?
É possível dar ZOOM Out a um aparelho que não tem a função?

Não existe nenhuma documentação sobre como funciona o ZOOM, nem tenho qualquer notícia de alguém que tenha conseguido isso por Engenharia Reversa.

É possível dar suporte a tags ID3 a um aparelho que não tem?

Talvez. Existe documentação sobre isso e já analisei o problema no Proview DVP-858, mas dá muito trabalho. Envolve implantar muito código, descobrir muitos endereços livres (ou pelo menos “usáveis”) de memória, requer bastante espaço sobrando no banco certo do firmware, etc. E não temos nem mesmo a certeza de que todo o trabalho vai dar resultado, por isso não é uma tarefa que qualquer um vá abraçar à toa.

É possível fazer a seleção de legendas com nome diferente do filme, direto por escolha no browser?

Talvez. Mas não existe documentação nem qualquer precendente.

É possível fazer com que o aparelho suporte a carga de legendas em mídia diferente da do filme, como ocorre no Philips DVP642?

Em primeiro lugar, é bom ter em mente que o DVP642 provavelmente consegue fazer isso por acaso. É um “efeito colateral” da forma como foi programado. Uma programação mais cuidadosa certamente apagaria a memória toda vez que a mídia fosse trocada. E como o programador do DVP642 não teve esse cuidado o usuário acabou ganhando esse recurso extra.

Tendo isso em mente, talvez seja possível implantar isso em um firmware Mediatek. Mas antes disso é necessário conseguir fazer com que as legendas sejam selecionáveis no browser, como no DVP642. Depois se certificar de que a mudança de mídia não apague as regiões de memória que contém a legenda ou apontam para ela. E desligar a carga de arquivos de legenda com mesmo nome que o filme. Não existe documentação sobre como isso pode ser feito, mas é algo que parece viável. Porém tudo isso é feito no código ARM, com o qual eu ainda tenho familiaridade ZERO.

Dá para ter suporte a outros codecs?

Primeiro, vamos usar a terminologia correta: não existem codecs em um DivX player. O que existe é um decodificador. Tendo estabelecido isso: do ponto de vista eletrônico, não é razoável crer que o decodificador seja atualizável por firmware. Acredita-se que toda decodificação esteja fisicamente implantada no chip.

É possível dar suporte a outros containers, como o Matroska?

Talvez. Porém ainda não se sabe como funciona a extração dos streams de audio e video de um container no firmware (é toda feita no código ARM) por isso não há nenhuma indicação clara de que o suporte a um novo container seja possível. Ainda assim, continuará sendo obrigatório que os streams de áudio e vídeo dentro do container sejam suportados.

Dá para quebrar a proteção (HDCP, Macrovision, etc)?

Não existe documentação sobre isso e mesmo que houvesse colocaria o meu trabalho em terreno perigoso. Não pretendo trabalhar com nada disso.

Tem como fazer o aparelho ser compatível com DivX HD (qualquer coisa maior que 720×576)?

Não. Isso requer processadores mais poderosos e mais memória.

A legenda em DivX está boa, mas a dos DVDs é diferente!

Ao contrário da legenda externa DivX, cuja aparência é determinada pelo aparelho, a aparência das legendas de um DVD-Video é deteminada pela produtora do filme e não pode ser alterada por nenhum hack no aparelho.

Eu estou com o problema X, que mesmo tendo instalado a versão Y do firmware Z não foi resolvido!

Era para ser? Está na lista de melhorias divulgada pelo desenvolvedor do firmware?

A versão X do firmware alternativo possui a característica Y?

Se essa é uma característica ausente no firmware oficial no qual o autor do firmware se baseou e este autor não colocou-a na lista de novidades, não. Se você não sabe o que o firmware oficial faz ou não, instale, teste e compare.

Dá para você portar a modificação que você fez no aparelho X para o aparelho Y?

Se eu tenho o aparelho Y, vai depender do meu tempo e das condições oferecidas pelo firmware do aparelho para suportar as mudanças. Se eu não tenho o aparelho Y, esqueça. Já é suficientemente complicado e demorado desenvolver modificações tendo o aparelho para testá-las.

Quando…?
Você tem previsão…?

Deixe para fazer esse tipo de pergunta a quem você estiver pagando. Quem trabalha de graça não gosta de ouvir essas questões (eu fico indignado com elas).

(copyright 2007 – Jefferson Ryan)

Esta página foi visualizada vezes desde desde 12/08/07

DivX Players

DivX player LG DK194g

[12/03/07] Exemplos de legendas. Teste de contraste e de quebra de linhas.

[12/03/07] como fazer o desbloqueio de região e foto do controle remoto.

[15/02/07] como entrar na tela de serviço e nova versão do mtkremaker

Este review está longe de estar completo.

OS JOGOS

Uma característica única deste aparelho são os 5 jogos simples que podem ser acessados pelo Setup. Segundo as especificações e pelo que pode ser garimpado na internet, os únicos similares são os russos LG DGK-688X e LG DGK-684X.

O único modo de entrar no menu de jogos é por aqui:

Todos os jogos estão fixos em inglês e vão aparecer assim mesmo que o resto do player esteja configurado para outra língua.

Imagem armazenada no firmware
Uma seta aparece para selecionar o jogo
Para voltar daqui para a operação normal do player, pressione o botão Return

CHESS

Imagem de introdução do jogo (armazenada no firmware)

Imagem de background do jogo (armazenada no firmware)

captura de tela durante o jogo

ACORN

Imagem de introdução do jogo (armazenada no firmware)

Imagem de background do jogo (armazenada no firmware)

captura de tela durante o jogo

BATTLE HOOLA

Imagem de introdução do jogo (armazenada no firmware)

Imagem de background do jogo (armazenada no firmware)

captura de tela durante o jogo

Imagem armazenada no firmware (ainda não vi no jogo)

Imagem armazenada no firmware (ainda não vi no jogo)

BLACK JACK II

imagem de introdução do jogo (armazenada no firmware)
Um “PRESS ENTER” aparece piscando

Imagem de background do jogo (armazenada no firmware)

captura de tela durante o jogo

OTHELLO II

Imagem de introdução do jogo (armazenada no firmware)
Um “PRESS ENTER” aparece piscando

Imagem de background do jogo (armazenada no firmware)

captura de tela durante o jogo

Para sair de qualquer jogo, basta o apertar o botão Return do remoto

Imagens do interior. Clique para ver ampliado
Canto esquerdo inferior: placa Karaoke.

Flash chip: MX29LV320T (4M)

DRAM chip: EM638165TS (8M)

Como entrar na tela de serviço

  • Certifique-se de que não há disco no aparelho. Apertar EJECT basta;
  • No remoto, aperte Setup;

Vá até “Tela” ou “Display”, mova o cursor para a direita e selecione “16:9” ou “Widescreen”

Com o teclado numérico, digite a seguinte seqüência: 1,3,9,7,1,3,9 e “Enter”

Se ao aperta ENTER nada acontecer, volte a pôr o seleção sobre “16:9” e repita o processo mais rápido ou mais devagar até conseguir. Às vezes é difícil acertar.

Isso deve te levar à tela de serviço do LG.

É exatamente isto que é apresentado no LG DK194g, quando você está usando o firmware original:

Para sair, aperte Setup.

As mesmas informações em modo texto, se você quiser copiar e colar (e para permitir que o Google ache esta página):

MODEL LV10B02207D
CHIP ID. MT 1389 E
SERVO VER. : b268
MICOM VER. : V1.1201
PROM OPTION : 42 52 02 46 02 55 f6 ff

FACTORY RESET . . DONE .

Preste atenção à mensagem da última linha. Ao entrar nessa tela você está dando um reset no aparelho para as configurações de fábrica e isso inclui colocar o player de novo na região 4. Por isso você vai ter que destravar o aparelho novamente. A linguagem dos menus também passa a ser a default do firmware que você estiver usando (Inglês, no caso do firmware original)

Este procedimento também com todos os aparelhos das séries 8xxx e 9xxx. Se bem que nestes aparelhos parece não ser necessário que o aparelho esteja sem disco.

Nota: Eu tentei usar essa informação para construir o CD de upgrade, como é feito nos LGs 8xxx e 9xxx, mas o DK194g não reconhece o disco.

Legendas DivX Externas

Teste padrão de constraste

O LG DK 194G se saiu muito bem no meu teste de contraste. Isso é raro com firmware original.

Teste de quebras de linha

Testes feitos com o filme “The Second Renaissance, part I” baixado legalmente do site http://www.intothematrix.com/ em modo ZOOM de 400% para reforçar o teste de contraste (o filme é widescreen).

38
00:04:13,122 –> 00:04:17,751
Os manifestantes foram se encontrar
com os esquadrões das forças de defesa no centro do motim.

52
00:06:26,630 –> 00:06:31,218
As máquinas e sua inteligência artificial
puderam ser vistas em cada lugar da sociedade humana…

57
00:06:59,288 –> 00:07:04,126
….. a habilidade de sustentar um vôo
normal em um evento de falha múltipla dos motores.

Já a legenda abaixo foi “inventada” por mim.

Sabe, todo mundo acha que astrologia é um monte de bobagens.
E eu tendo a concordar em gênero, número e grau com eles!

Aparentemente, no máximo 35 caracteres são permitidos na primeira linha. E menos caracteres são permitidos ns segunda. Se uma linha tiver mais caracteres que isso, é quebrada, mas não hifenizada.

Outra teoria: O firmware não quebra as linhas após um determinado número de caracteres. Ele divide as linhas pela metade, quando possível, respeitando regras básicas de divisão das sílabas.

Ainda bem que o firmware aceita até quatro linhas de legenda, do contrário perderíamos falas, como ocorre no Samsung P366.

Controle Remoto

O controle remoto (modelo 6711R1P089B) é, tecnicamente, exatamente o mesmo remoto usado no LG DK8321N (modelo 6711R1P070C), porém menor. Os comandos são exatamente os mesmos. Se você sabe o que é LIRC / WINLIRC, achará interessante saber que este arquivo de configuração tem todos os comandos desse remoto.

Na foto, o controle remoto do LG DK8xxx em cima, seguido pelo controle remoto do DK194g. A curvatura do controle de cima é um efeito de distorção “barreling” da câmera.

Desbloqueio de Região

Este procedimento é praticamente o mesmo usado em diversos outros aparelhos LG.

O procedimento funciona com a bandeja aberta ou fechada, com ou sem disco. Se houver disco, certifique-se de que esteja parado (aperte STOP).

Aperte em seqüência [PAUSA][3][1][4][1][5][9]

Deverá aparecer o seguinte:

Agora basta escolher a região. Se quiser liberar todas, aperte [0]

Aperte [PAUSA] para sair.

Se acontecer (é só um palpite) do aparelho esquecer a região ajustada e ficar voltando para a anterior, siga o mesmo procedimento, desligando o aparelho pelo controle remoto logo em seguida.

Nem é preciso de uma TV conectada para fazer o procedimento, porque a região selecionada aparece no display do aparelho.

O firmware

Eu instalei um cabo e extraí o firmware. download aqui

Problemas:

O firmware não foi testado ainda. Devido a um conjunto de fatores preocupantes, estou esperando que Umbanda Violento (que está com um DK194g morto) confirme que fez a recuperação do seu aparelho com o firmware acima. Até lá, não instale o firmware no seu aparelho. Está disponível para download apenas para os testes de hack. Os testes de checksum confirmam que o firmware foi extraído corretamente, mas é melhor se precaver.

O firmware do DK194g é muito incomum. O problema começa pelo fato de ser um firmware de 4MB, quando quase todos os firmwares Mediatek tem no máximo 2MB. Mas o problema não termina aí.

Para editar este firmware você precisa da versão 0.23b3 do mtkRemaker ou posterior.

O ZOOM da LG

O ZOOM funciona tanto em DVD-Video quanto em MPEG4.

É idêntico ao ZOOM do LG DK8321N, mudando apenas onde aparece o ícone, que no 8321N é no canto superior direito.

Imagem “normal” Da primeira vez que você aperta o botão de ZOOM, apenas ativa-se o modo ZOOM, mas nenhuma ampliação ocorre.
Apertando a segunda vez, entramos no modo 400%. O retângulo amarelo no símbolo do ZOOM mostra que região da imagem estamos vendo ampliada. Com as setas do controle remoto, é possível escolher a região que queremos ver. Veja que o retângulo amarelo acompanha.
Terceira vez na tecla ZOOM. Modo 1600%. Qual a utilidade disso? Quarta vez na tecla ZOOM. A imagem volta ao normal e o ícone mostra que entramos no modo de expandir altura apenas.
Usando a tecla de seta para cima. Note que a altura da imagem aumentou um pouco, mas a largura permanece a mesma. Mais uma vez apertando a seta para cima. A imagem preenche quase toda a tela. Note que isso são capturas, por isso em uma TV normal a imagem estaria preenchendo toda a tela devido ao overscan, como mostra o ícone.
Quinta vez na tecla ZOOM. Imagem volta ao normal. O ícone sumirá em alguns segundos.

Para quem não gosta de assistir em widescreen (hereges, todos), o modo ideal é o de expansão da altura. O zoom “normal” é exagerado demais e se perde muita coisa da imagem. No modo de expansão a imagem fica distorcida, mas nada se perde.

Não importa em que modo você deixar a imagem. O ícone desaparecerá da tela depois de alguns segundos.

Como se pode notar, não há zoom reverso.

Outros

Executando um CD de áudio. Do lado esquerdo ficam as faixas na ordem real. Do lado direito, sua programação. Você pode escolher entre executar na ordem ou como programado. O pequeno ícone de uma nota musical mostra que faixa está sendo executada. Infelizmente o aparelho não é compatível com CD Text.

Outras informações (desorganizadas)

  • Se o FourCC não for suportado, o filme roda com som apenas. O aparelho só olha o segundo descritor.
  • É irritante que ao entrar em uma pasta que só tem JPG e você está no modo filme, apertar Title joga você para a raiz do disco em vez de continuar na pasta onde está.. também acontece com o firmware Bromax.
  • Todas as vezes que você sai de uma pasta, volta para a primeira pasta do diretório anterior. Isso é irritante, mas também acontece com o firmware Bromax
  • Não tem o bug de supressão da última palavra quando o nome da pasta tem pontos
  • Legendas Unix são carregadas, mas fica embaralhado se for SRT e provoca problemas de exibição do próprio filme se for SUB. Isso não é surpresa, porque em geral os aparelhos esperam mesmo por legendas no formato DOS.
  • No aparelho, só liga pela tecla Power. Mas pelo remoto liga também pelas teclas open/colose e play.
  • Quando você chega ao primeiro item do browser, o cursor passa para o último e vice versa.
  • O ícone do ZOOM desaparece depois de alguns segundos.
  • ZOOM em DivX muito exagerado. Tem passos de 400% (4X) e 1600% (16X). Um Zoom de 3X já é suficiente para fazer um filme widescreen ocupar toda a tela. Práticamente inútil porque muita informação é perdida. Para não perder tanto, você precisa usar o modo de ZOOM ajustável, que alonga a imagem verticalmente em passos mais discretos.
  • Tem avanços de x2, x4, x16 e x100. A x100 avança 560s em 33s (16X reais) . A x16 leva 50s (11,2X reais).
  • As legendas DivX são exibidas durante o avanço, mas só em 2X.
  • A legenda DivX continua sendo exibida durante uma pausa.

Esta página foi visualizada vezes desde 07/02/2007

Firmware MT13x9

Firmwares Mediatek : Escolhendo Cores

Texto publicado em 05/07/2007 e ainda em rascunho

A explicação que vou dar a seguir é um dos fundamentos necessários para se implementar cores de fontes selecionáveis pelo setup. Mas também é importante quando você quer simplesmente corrigir alguns problemas de cores “amarradas” (muda a cor da legenda e bagunça a cor do texto no browser).

Eu uso como exemplo o firmware do Proview DVP-858, mas por comparação você poderá encontrar as rotinas necessárias na maioria dos outros firmwares. A provável exceção são LG e Pionneer, que são muito diferentes do “normal”.

O conceito de janelas

Um firmware MT13x9 tem a tela loteada em “janelas”. Todo desenho, seja de gráficos ou texto, é sempre feito tendo como alvo uma janela e não a tela. Isso provavelmente é feito para simplificar o posicionamento de objetos, porque você desenha tudo dentro da janela, com coordenadas relativas a ela e não às coordenadas físicas da tela. Aí você consegue reposicionar blocos inteiros de objetos simplesmente mudando as coordenadas da janela, sem precisar mexer nas coordenadas dos objetos.

Você pode ver todas as janelas definidas em um firmware com o software mtkWindows.

Falarei mais sobre janelas um outro dia.

Excetuando os vídeos, a cor de tudo o que é exibido em um firmware Mediatek MT13x9 (ou seja, tudo o que é desenhado pelo processador) depende de palettes (paletas). Cada janela é associada a uma e apenas uma palette (mas várias janelas podem usar a mesma palette). Você pode ver e alterar as palettes abrindo o firmware com o mtkWindows.

No mtkWindows as cores são numeradas de 0 a 15, mas tenha em mente que no firmware a numeração é hexadecimal, de 0x0 a 0xF.

Para evitar ambigüidades, eu vou chamar daqui em diante cada uma das 16 cores da palette de “célula”.

“Used by” mostra que janelas usam esta mesma palette.

Idealmente, cada janela deveria ter sua própria palette, mas nos firmwares Mediatek é comum que várias janelas compartilhem a mesma. Isso só é problema quando você quer trocar a cor de uma das 16 células da palette, porque a mudança tem resultados difíceis de prever. Na maioria das vezes a janela não usa todas as células da palette. Talvez, por exemplo, a janela 0x11 use apenas as células 2 e 3, enquanto a janela 0x0E usa apenas as céluals 4 e 5, mas não conte com isso. Às vezes duas ou mais janelas usam as mesmas células, sem necessidade. Se você pensar bem, verá que no caso de cada janela usar células diferentes da palette, isso justifica várias células com a mesma cor.

Para desenhar qualquer coisa, o firmware nunca diz explicitamente com que cor vai ser feito o desenho. Ele diz quais células vai usar.

Mudando as cores de uma operação

A forma mais básica de se fazer isso é clicando duas vezes sobre a célula cuja cor você quer mudar e selecionando uma nova cor. Mas como essa mudança afeta tudo o que é desenhado na janela e pode ter efeitos indesejáveis em outras janelas ou até mesmo em outros objetos na mesma janela (como é o caso dos ícones e do texto no browser), às vezes é necessáio mudar as células que uma operação de desenho específica usa. É isso que eu vou explicar como é feito.

O Proview DVP-858 usa os endereços XRAM_FC07 e XRAM_FC08 para armazenar as células que serão usadas para exibir um determinado texto. Esses endereços não são os mesmos de firmware para firmware.

A ordem das cores, pelo menos no firmware do Proview, é:

  • XRAM_FC07: Contorno
  • XRAM_FC08: Preenchimento

Para mudar as células, você precisa mudar os valores armazenados em XRAM_FC07 e XRAM_FC08 antes da rotina de desenho (OSD_TextColor) ser chamada.

As listagens abaixo são da versão 20.07 do firmware!

É aqui que são definidas as cores do texto do browser no DVP858.

B1:A502
B1:A505
B1:A507
B1:A508
B1:A509
B1:A50A
B1:A50B
B1:A50C
B1:A50D
B1:A50E
B1:A510
90 FC 07
74 02
F0
A3
04
F0
E4
FB
FD
7F 10
12 1D E0
mov DPTR, #XRAM_FC07
mov A, #2 ; Célula #2 – Contorno
movx @DPTR, A
inc DPTR
inc A ; Célula #3 – Preenchimento
movx @DPTR, A
clr A
mov R3, A
mov R5, A
mov R7, #0x10 ;Janela 0x10
lcall OSD_TextColor
Janela de exibição da duração de MP3, contagem de arquivos, etc
B1:6370
B1:6373
B1:6375
B1:6376
B1:6377
B1:6378
B1:6379
B1:637A
B1:637B
B1:637C
B1:637E
90 FC 07
74 03
F0
A3
14
F0
E4
FB
FD
7F 0F
12 1D E0
mov DPTR, #XRAM_FC07
mov A, #3 ; Célula #3 – Contorno
movx @DPTR, A
inc DPTR
dec A ; Célula #2 – Preenchimento
movx @DPTR, A
clr A
mov R3, A
mov R5, A
mov R7, #0xF ;Janela 0x0F
lcall OSD_TextColor
E agora um trecho de sub_style, onde é definida a cor da legenda:
B1:DCB1
B1:DCB4
B1:DCB6
B1:DCB7
B1:DCB8
B1:DCB9
B1:DCBA
B1:DCBB
B1:DCBC
B1:DCBD
B1:DCBF
90 FC 07
74 03
F0
A3
14
F0
E4
FB
FD
7F 13
12 1D E0
mov DPTR, #XRAM_FC07
mov A, #3 ; Célula #3 – Contorno
movx @DPTR, A
inc DPTR
dec A ; Célula #2 – Preenchimento
movx @DPTR, A
clr A
mov R3, A
mov R5, A
mov R7, #0x13 ;Janela 0x13
lcall OSD_TextColor

Perceba que as três janelas usam as mesmas células, mas o browser usa as cores invertidas. Note que a primeira célula declarada é a 2 e não a 3, como nos casos restantes.

Para fazer com que o browser deixe de ser invertido, basta mudar a primeira célula e trocar a instrução INC A por uma DEC A

B1:A505 mov A, #3
B1:A507 movx @DPTR, A
B1:A508 inc DPTR
B1:A509 DEC A

Você também pode experimentar usar células diferentes, mas perceba que por causa da forma como o assembly é otimizado você está preso a usar células adjacentes. Por exemplo, a mudança abaixo faz o browser usar as células 14 e 13

B1:A505 mov A, #0x0E
B1:A507 movx @DPTR, A
B1:A508 inc DPTR
B1:A509 DEC A

Usar células não-adjacentes é possível, mas requer a criação de novas sub-rotinas.

Como é possível usar essa informação para ter cores selecionáveis no setup?

Como eu disse no início do texto, esta é apenas uma das coisas que você precisa saber. Em resumo: depois de criar um novo menu para permitir a escolha da cor e gravar os valores selecionados na eeprom, você vai ter que mudar a rotina Sub_Style para em vez de usar números de células fixos usar números lidos da eeprom.

A criação de menus fica para um outro tutorial, depois que eu tiver aprendido, claro…

Esta página foi visualizada desde 5/07/07.

Firmware MT13x9

Firmwares Mediatek – Controle Remoto

Este texto tem status de rascunho – publicado em 30/06/2007

Algumas coisas que você precisa ter em mente para entender o texto desta página

  • O disassemblador usado pelos programadores do grupo MT13x9 é o IDA. O IDA não é indispensável, mas ajuda muito a localizar código e entender o que se passa. Você precisa do IDA e dos scripts criados pelo grupo MT13x9, que formatam o código de uma forma “legível” (se é que se pode dizer isso de assembly);
  • Você não pode modificar código no IDA. Para editar o arquivo você ainda precisa de um editor hexadecimal;
  • Examinando os arquivos de script (*.idc) você pode aprender coisas interessantes, incluindo qual a seqüência de bytes usada para localizar determinadas rotinas. Quando uma determinada rotina não é detectada automaticamente você pode examinar a seqüência no script e buscando por partes dela pode acabar determinando a seqüência usada no seu firmware;
  • Na notação usada pelos programadores do MT13x9, “B4:13C4” significa “offset 13C4 da página (bloco) 4 do código”. Em alguns lugares você também vai ver “B4_13C4”, que significa a mesma coisa;
  • A notação hexadecimal usual para um técnico em eletrônica (pelo menos foi essa que eu aprendi) consiste em colocar o sufixo ‘h’ (ex: 22h). Neste texto eu vou usar a forma usada por programadores C, que consiste em colocar o prefixo ‘0x’ (ex: 0x22), porque esta é a notação usada no IDA e pelos programadores do grupo MT13x9;
  • “XRAM” é a memória externa do 8032. Ela é usada como rascunho e para transferir valores entre rotinas.

As tabelas de controle remoto

Usualmente, um firmware Mediatek contém duas grandes tabelas que definem o que é feito quando cada tecla do controle remoto é pressionada. Uma tabela é exclusiva para DVD-Video e a outra para *.avi/*.mpg. Para simplificar, vamos chamar essas tabelas de “DVD” e “ISO” (esse é o termo usado no código-fonte).

O formato da tabela segue a estrutura de uma grande instrução CASE. Com um endereço de 16 bits (o endereço da função a executar) seguido por um valor de 8 bits (o código da respectiva tecla do remoto).

É importante notar que esse código nada tem a ver com o código transmitido pelo remoto, que pode ser completamente diferente. Esse código já é o resultado da função que decodifica o sinal do remoto e nesse ponto geralmente são os mesmos, não importando o aparelho ou remoto usado. Não é possível usar um outro controle remoto mexendo nos valores destas tabelas.

Você encontra uma relação completa dos códigos-padrão para teclas da Mediatek no arquivo IR.CFG do mtkTools 2.42 e no arquivo keydef.h do código-fonte. Nenhuma das duas tabelas bate 100% com os aparelhos que testei, mas a keydef.h é a mais próxima.

Outra coisa que vale a pena notar é que em todos os firmwares que olhei, o buffer do controle remoto sempre está no endereço XRAM_FB00. Basta procurar por menções a esse endereço no firmware para localizar todos os pontos onde o controle remoto é verificado.

Como diferenciar a tabela DVD da tabela ISO.

Em todos os firmwares que verifiquei, os códigos 0x22 e 0x23 sempre estão presentes na tabela DVD, apontando para endereços distintos. E quando estão presentes na tabela ISO, apontam para o mesmo endereço. Esses botões devem ser TITLE e MENU (no DVP-858, certamente são), que não tem função precisa quando você não está vendo um DVD-Video.

Exemplo de Tabela
B4:4F76 .word B4_501F
B4:4F78 .byte 0
B4:4F79 .word B4_501F
B4:4F7B .byte 1
B4:4F7C .word B4_501F
B4:4F7E .byte 2
B4:4F7F .word B4_501F
B4:4F81 .byte 3
B4:4F82 .word B4_501F
B4:4F84 .byte 4
B4:4F85 .word B4_501F
B4:4F87 .byte 5
B4:4F88 .word B4_501F
B4:4F8A .byte 6
B4:4F8B .word B4_501F
B4:4F8D .byte 7
B4:4F8E .word B4_501F
B4:4F90 .byte 8
B4:4F91 .word B4_501F
B4:4F93 .byte 9
B4:4F94 .word B4_501F

B4:4F96 .byte 0xA
B4:4F97 .word B4_5027
B4:4F99 .byte 0xD
B4:4F9A .word B4_5027
B4:4F9C .byte 0xE
B4:4F9D .word B4_5027
B4:4F9F .byte 0xF
B4:4FA0 .word B4_5027
B4:4FA2 .byte 0x10

B4:4FA3 .word B4_502F
B4:4FA5 .byte 0x11
B4:4FA6 .word B4_5037
B4:4FA8 .byte 0x12
No exemplo ao lado temos o início de uma tabela, como visto no IDA. Os códigos de 0x0 a 0xA (geralmente, as teclas numéricas) retornam o endereço B4:501F e os códigos 0xD a 0x10 (geralmente as quatro setas) retornam o endereço B4: 5027

Note que esse é um padrão que serve para identificar esse bloco como uma tabela de controle remoto: A sequëncia de bytes de 0 a 9 intercalada por uma seqüência de words idênticas, seguida por uma seqüência de 0xD a 0x10 que também é intercalada por uma certa word, diferente da anterior.

A partir desse ponto, cada tecla tem geralmente sua própria função. Só os blocos numéricos e de setas compartilham o mesmo endereço.

Para localizar as tabelas

No IDA, procure por: ? ? 00 ? ? 01 ? ? 02 ? ? 03 ? ? 04 ? ? 05 ? ? 06 ? ? 07

No XVI32, procure por: E2 E2 00 E2 E2 01 E2 E2 02 E2 E2 03 E2 E2 04 E2 E2 05 E2 E2 06 E2 E2 07

Como eliminar possibilidades

Você pode sobreescrever uma parte do banco com FFFF e depois testar todas as teclas. As teclas que deveriam funcionar e passarem a apresentar o sinal de proibido estão na parte que você sobreescreveu.

Mas sobreescreva endereço e código. Senão você poderá travar o aparelho ao apertar uma tecla cujo endereço foi sobreescrito.

Dissecando as tabelas do Proview DVP-858

Abaixo, eu fiz uma tabela que agrupa as duas tabelas de remoto do Proview DVP-858. Células em preto significam que o Proview não tem uma atribuição para a respectiva tecla. Linhas inteiras em preto são códigos saltados. Células coloridas de uma mesma cor são células que apontam para a mesma rotina. Eu testei cada um dos códigos para confirmar suas funções, porque no dia do teste eu sequer sabia da existência de IR.CFG e keydef.h.

Códigos sem um “Botão Existente” são funções que poderiam ser usadas se o controle remoto tivesse as respectivas teclas.

A tabela ISO do Proview vai de B4:453F a B4:45C3 e a DVD vai de B4:4F76 a B4:501E

Código
Botão Existente
ISO DVD
Observações
0x00
0
B4:45C4
B4:501F
0x01
1
B4:45C4
B4:501F
0x02
2
B4:45C4
B4:501F
0x03
3
B4:45C4
B4:501F
0x04
4
B4:45C4
B4:501F
0x05
5
B4:45C4
B4:501F
0x06
6
B4:45C4
B4:501F
0x07
7
B4:45C4
B4:501F
0x08
8
B4:45C4
B4:501F
0x09
9
B4:45C4
B4:501F
0x0A
_/__
B4:45C4
B4:501F
0x0D
UP
B4:45CF
B4:5027
0x0E
LEFT
B4:45CF
B4:5027
0x0F
RIGHT
B4:45CF
B4:5027
0x10
DOWN
B4:45CF
B4:5027
0x11
B4:45CF
B4:502F
0x12
Play
B4:45DA
B4:5037
0x13
Pause
B4:45E5
B4:503F
0x14
Stop
B4:460D
B4:5047
0x15
Next >>|
B4:4618
B4:504F
0x16
Prev |<<
B4:4623
B4:5057
0x17
Repeat
B4:462E
B4:505F
0x18
B4:4660
B4:5067
Não identifiquei
0x19
FF
B4:466B
B4:506F
0x1A
REW
B4:4693
B4:5077
0x1B
Slow Forward
B4:46BB
B4:507F
0x1C
B4:5087
DVD: Slow Rewind
0x1D
B4:46C6
B4:508F
DVD/ISO: STEP Forward
0x1E
B4:46D1
B4:5097
DVD: STEP Rewind. DivX:Não identifiquei
0x20
A-B
B4:46DC
B4:509F
0x22
Title
B4:46E7
B4:50A7
0x23
Menu
B4:46E7
B4:50AF
0x24
B4:4656
B4:50B7
Não identifiquei
0x25
B4:50BF
Não identifiquei
0x26
B4:50C7
Não identifiquei
0x28
Audio
B4:473E
B4:50CF
0x29
Subtitle
B4:4749
B4:50D7
0x2B
Angle
B4:4754
B4:50E7
0x2C
Display
B4:475F
B4:50EE
0x2E
GOTO
B4:4787
B4:50F5
0x2F
Bookmark
B4:4791
B4:50FE
0x31
B4:5105
Não identifiquei
0x32
Browse
B4:479B
B4:510C
0x33
Prog
B4:47A5
B4:5113
0x34
B4:47AF
B4:511A
ISO: A mesma função da tecla Repeat. DVD:Shuffle
0x35
Virtual
B4:5121
0x39
B4:5128
Alterna entre Normal/PS, Normal/LB e Widescreen
0x3D
Zoom
B4:47D2
B4:512F
0x3E
B4:47F4
B4:5136
ISO/DVD: Zoom Out
0x41
B4:513D
DVD: Parece a mesma função da tecla Audio
0x42
B4:5144
Não identifiquei
0x57
B4:514B
DVD: Não acontece nada. Nem mesmo o sinal de proibido.
0x68
B4:5152
DVD: Aparece:”Digitar Senha ” na tela, com um campo para digitação de seis dígitos.
0x69
B4:5159
DVD:Exibe “Senha do Disco” na tela e aguarda às cegas um número e PLAY
0x70
Skip
B4:50DF

Teclas cujos códigos não constam da tabela acima, porque são tratadas em outros lugares:

  • MUTE
  • VOL+
  • VOL-
  • POWER
  • EJECT
  • SETUP
  • VIDEO
  • P/N
  • HDMI
  • USB/CARD

Como mudar o comportamento das teclas

Se todas as teclas envolvidas estiverem na tabela, é simples. Basta trocar os respectivos endereços de salto.

Por exemplo, vamos fazer com que as teclas de direção façam o papel das teclas teclas NEXT, PREV, FF e REW. O exemplo abaixo mostra os saltos originais:

Código
Botão
ISO DVD
Observações
0x0D
UP
B4:45CF
B4:5027
0x0E
LEFT
B4:45CF
B4:5027
0x0F
RIGHT
B4:45CF
B4:5027
0x10
DOWN
B4:45CF
B4:5027
0x15
Next >>|
B4:4618
B4:504F
0x16
Prev |<<
B4:4623
B4:5057
0x19
FF
B4:466B
B4:506F
0x1A
REW
B4:4693
B4:5077

Agora, com a modificação:

Código
Botão
ISO DVD
Observações
0x0D
UP
B4:4618
B4:504F
Agora faz o mesmo que NEXT
0x0E
LEFT
B4:4693
B4:5077
Agora faz o mesmo que REW
0x0F
RIGHT
B4:466B
B4:506F
Agora faz o mesmo que FF
0x10
DOWN
B4:4623
B4:5057
Agora faz o mesmo que FWD
0x15
Next >>|
B4:4618
B4:504F
Inalterado
0x16
Prev |<<
B4:4623
B4:5057
Inalterado
0x19
FF
B4:466B
B4:506F
Inalterado
0x1A
REW
B4:4693
B4:5077
Inalterado

Note que eu não mexi no comportamento das teclas originais NEXT, PREV, FF e REW, mas se eu quisesse que elas assumissem o comportamento original das telas UP, LEFT, RIGHT e DOWN, teria sido só uma questão de usar os endereços que sobreescrevi. Note também que eu mudei o comportamento ao mesmo tempo para ISO e DVD, mas poderia ter mudado apenas um dos dois.

Outro exemplo: Ativar uma das funções ocultas do aparelho.

Como você pode ver na minha tabela, a função STEP forward do DVP-858 existe, mas não está atribuída a tecla alguma. Vamos fazer com que ela funcione quando usarmos a tecla ANGLE em modo ISO

Original:

0x1D
B4:46C6
B4:508F
DVD/ISO: STEP Forward
0x2B
Angle
B4:4754
B4:50E7

Modificado

0x2B
Angle
B4:46C6
B4:50E7
Em DVD a tecla vai continuar a agir da mesma forma, mas em ISO será STEP Forward

A tabela em outros aparelhos

Philips DVP 5965K/55 – ISO

B4:5F6D ; ---------------------------------------------------------------------------
B4:5F6D
B4:5F6D BankSw_625_B4_5F6D:                     ; DATA XREF: B0:B0_BS_625_B4_5F6Do
B4:5F6D                                         ; B1:B1_BS_625_B4_5F6Do ...
B4:5F6D                 clr     RAM_2D.5
B4:5F6F                 lcall   BankSw_550_B4_975A
B4:5F72                 jnc     B4_5F7C
B4:5F74                 mov     DPTR, #XRAM_FB00
B4:5F77                 mov     A, #0xFF
B4:5F79                 movx    @DPTR, A
B4:5F7A                 clr     C
B4:5F7B                 ret
B4:5F7C ; ---------------------------------------------------------------------------
B4:5F7C
B4:5F7C B4_5F7C:                                ; CODE XREF: B4:5F72j
B4:5F7C                 mov     DPTR, #XRAM_FB00
B4:5F7F                 movx    A, @DPTR
B4:5F80                 mov     R7, A
B4:5F81                 clr     C
B4:5F82                 subb    A, #0x71 ; 'q'
B4:5F84                 jc      B4_5F87
B4:5F86                 ret
B4:5F87 ; ---------------------------------------------------------------------------
B4:5F87
B4:5F87 B4_5F87:                                ; CODE XREF: B4:5F84j
B4:5F87                 mov     A, R7
B4:5F88                 lcall   B4_?C?CCASE
B4:5F88 ; ---------------------------------------------------------------------------
B4:5F8B                 .word B4_600A
B4:5F8D                 .byte 0
B4:5F8E                 .word B4_600A
B4:5F90                 .byte 1
B4:5F91                 .word B4_600A
B4:5F93                 .byte 2
B4:5F94                 .word B4_600A
B4:5F96                 .byte 3
B4:5F97                 .word B4_600A
B4:5F99                 .byte 4
B4:5F9A                 .word B4_600A
B4:5F9C                 .byte 5
B4:5F9D                 .word B4_600A
B4:5F9F                 .byte 6
B4:5FA0                 .word B4_600A
B4:5FA2                 .byte 7
B4:5FA3                 .word B4_600A
B4:5FA5                 .byte 8
B4:5FA6                 .word B4_600A
B4:5FA8                 .byte 9
B4:5FA9                 .word B4_6015
B4:5FAB                 .byte 0xD
B4:5FAC                 .word B4_6015
B4:5FAE                 .byte 0xE
B4:5FAF                 .word B4_6015
B4:5FB1                 .byte 0xF
B4:5FB2                 .word B4_6015
B4:5FB4                 .byte 0x10
B4:5FB5                 .word B4_6020
B4:5FB7                 .byte 0x12
B4:5FB8                 .word B4_602B
B4:5FBA                 .byte 0x13
B4:5FBB                 .word B4_6053
B4:5FBD                 .byte 0x14
B4:5FBE                 .word B4_605E
B4:5FC0                 .byte 0x15
B4:5FC1                 .word B4_6069
B4:5FC3                 .byte 0x16
B4:5FC4                 .word B4_6074
B4:5FC6                 .byte 0x17
B4:5FC7                 .word B4_60A6
B4:5FC9                 .byte 0x18
B4:5FCA                 .word B4_60B1
B4:5FCC                 .byte 0x19
B4:5FCD                 .word B4_60D9
B4:5FCF                 .byte 0x1A
B4:5FD0                 .word B4_6101
B4:5FD2                 .byte 0x1B
B4:5FD3                 .word B4_610C
B4:5FD5                 .byte 0x1D
B4:5FD6                 .word B4_6117
B4:5FD8                 .byte 0x1E
B4:5FD9                 .word B4_6122
B4:5FDB                 .byte 0x20
B4:5FDC                 .word B4_612D
B4:5FDE                 .byte 0x22
B4:5FDF                 .word B4_612D
B4:5FE1                 .byte 0x23
B4:5FE2                 .word B4_609C
B4:5FE4                 .byte 0x24
B4:5FE5                 .word B4_6184
B4:5FE7                 .byte 0x28
B4:5FE8                 .word B4_618F
B4:5FEA                 .byte 0x29
B4:5FEB                 .word B4_619A
B4:5FED                 .byte 0x2B
B4:5FEE                 .word B4_61A5
B4:5FF0                 .byte 0x2C
B4:5FF1                 .word B4_61CD
B4:5FF3                 .byte 0x2E
B4:5FF4                 .word B4_61D7
B4:5FF6                 .byte 0x2F
B4:5FF7                 .word B4_61E1
B4:5FF9                 .byte 0x32
B4:5FFA                 .word B4_61EB
B4:5FFC                 .byte 0x33


B4:5FFD                 .word B4_61F5
B4:5FFF                 .byte 0x34
B4:6000                 .word B4_6218
B4:6002                 .byte 0x3D
B4:6003                 .word B4_623A
B4:6005                 .byte 0x3E
B4:6006                 .byte    0
B4:6007                 .byte    0
B4:6008                 .word B4_6244
B4:600A ; ---------------------------------------------------------------------------

Philips DVP 5965K/55 – DVD

B4:7A9C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B4:7A9C
B4:7A9C
B4:7A9C BankSw_626_B4_7A9C:                     ; DATA XREF: B0:B0_BS_626_B4_7A9Co
B4:7A9C                                         ; B1:B1_BS_626_B4_7A9Co ...
B4:7A9C
B4:7A9C ; FUNCTION CHUNK AT B4:787B SIZE 00000004 BYTES
B4:7A9C ; FUNCTION CHUNK AT B4:7880 SIZE 00000026 BYTES
B4:7A9C ; FUNCTION CHUNK AT B4:78E0 SIZE 00000003 BYTES
B4:7A9C
B4:7A9C                 clr     RAM_2D.5
B4:7A9E                 mov     DPTR, #XRAM_FB00
B4:7AA1                 movx    A, @DPTR
B4:7AA2                 lcall   B4_?C?CCASE
B4:7AA2 ; ---------------------------------------------------------------------------
B4:7AA5                 .word B4_7B36
B4:7AA7                 .byte 0
B4:7AA8                 .word B4_7B36
B4:7AAA                 .byte 1
B4:7AAB                 .word B4_7B36
B4:7AAB ; End of function BankSw_626_B4_7A9C
B4:7AAB
B4:7AAD                 .byte 2
B4:7AAE                 .word B4_7B36
B4:7AB0                 .byte 3
B4:7AB1                 .word B4_7B36
B4:7AB3                 .byte 4
B4:7AB4                 .word B4_7B36
B4:7AB6                 .byte 5
B4:7AB7                 .word B4_7B36
B4:7AB9                 .byte 6
B4:7ABA                 .word B4_7B36
B4:7ABC                 .byte 7
B4:7ABD                 .word B4_7B36
B4:7ABF                 .byte 8
B4:7AC0                 .word B4_7B36
B4:7AC2                 .byte 9
B4:7AC3                 .word B4_7B3E
B4:7AC5                 .byte 0xD
B4:7AC6                 .word B4_7B3E
B4:7AC8                 .byte 0xE
B4:7AC9                 .word B4_7B3E
B4:7ACB                 .byte 0xF
B4:7ACC                 .word B4_7B3E
B4:7ACE                 .byte 0x10
B4:7ACF                 .word B4_7B46
B4:7AD1                 .byte 0x11
B4:7AD2                 .word B4_7B4E
B4:7AD4                 .byte 0x12
B4:7AD5                 .word B4_7B56
B4:7AD7                 .byte 0x13
B4:7AD8                 .word B4_7B5E
B4:7ADA                 .byte 0x14
B4:7ADB                 .word B4_7B66
B4:7ADD                 .byte 0x15
B4:7ADE                 .word B4_7B6E
B4:7AE0                 .byte 0x16
B4:7AE1                 .word B4_7B76
B4:7AE3                 .byte 0x17
B4:7AE4                 .word B4_7B7E
B4:7AE6                 .byte 0x18
B4:7AE7                 .word B4_7B86
B4:7AE9                 .byte 0x19
B4:7AEA                 .word B4_7B8E
B4:7AEC                 .byte 0x1A
B4:7AED                 .word B4_7B96
B4:7AEF                 .byte 0x1B
B4:7AF0                 .word B4_7B9E
B4:7AF2                 .byte 0x1C
B4:7AF3                 .word B4_7BA6
B4:7AF5                 .byte 0x1D
B4:7AF6                 .word B4_7BAE
B4:7AF8                 .byte 0x1E
B4:7AF9                 .word B4_7BB6
B4:7AFB                 .byte 0x20
B4:7AFC                 .word B4_7BBE
B4:7AFE                 .byte 0x22
B4:7AFF                 .word B4_7BC6
B4:7B01                 .byte 0x23
B4:7B02                 .word B4_7BCD
B4:7B04                 .byte 0x24
B4:7B05                 .word B4_7BD4
B4:7B07                 .byte 0x28
B4:7B08                 .word B4_7BDB
B4:7B0A                 .byte 0x29
B4:7B0B                 .word B4_7BE2
B4:7B0D                 .byte 0x2B
B4:7B0E                 .word B4_7BE9
B4:7B10                 .byte 0x2C
B4:7B11                 .word B4_7BF0
B4:7B13                 .byte 0x2E
B4:7B14                 .word B4_7BF9
B4:7B16                 .byte 0x2F
B4:7B17                 .word B4_7C00
B4:7B19                 .byte 0x31
B4:7B1A                 .word B4_7C07
B4:7B1C                 .byte 0x32
B4:7B1D                 .word B4_7C0E
B4:7B1F                 .byte 0x33
B4:7B20                 .word B4_7C15
B4:7B22                 .byte 0x34
B4:7B23                 .word B4_7C1C
B4:7B25                 .byte 0x39
B4:7B26                 .word B4_7C23
B4:7B28                 .byte 0x3D
B4:7B29                 .word B4_7C2A
B4:7B2B                 .byte 0x3E
B4:7B2C                 .word B4_7C31
B4:7B2E                 .byte 0x57
B4:7B2F                 .word B4_7C38
B4:7B31                 .byte 0x68
B4:7B32                 .byte    0
B4:7B33                 .byte    0
B4:7B34                 .word B4_7C3F
B4:7B36 ; ---------------------------------------------------------------------------

Lenoxx DV-406 – ISO

B4:13FC ; ---------------------------------------------------------------------------
B4:13FC
B4:13FC BankSw_485_B4_13FC:                     ; DATA XREF: B0:B0_BS_485_B4_13FCo
B4:13FC                                         ; B1:B1_BS_485_B4_13FCo ...
B4:13FC                 clr     RAM_27.4
B4:13FE                 mov     DPTR, #XRAM_FB00
B4:1401                 movx    A, @DPTR
B4:1402                 mov     R7, A
B4:1403                 xrl     A, #0x2B
B4:1405                 jz      B4_1410
B4:1407                 mov     A, R7
B4:1408                 xrl     A, #0x3D
B4:140A                 jz      B4_1410
B4:140C                 mov     A, R7
B4:140D                 cjne    A, #0x29, B4_1424 ; ')'
B4:1410
B4:1410 B4_1410:                                ; CODE XREF: B4:1405j B4:140Aj
B4:1410                 mov     R7, #2
B4:1412                 lcall   B4_BS_45_B1_9285
B4:1415                 jnc     B4_1424
B4:1417                 mov     R3, #4
B4:1419                 mov     R5, #0x39 ; '9'
B4:141B                 mov     R4, #0
B4:141D                 mov     R7, #2
B4:141F                 mov     R6, #7
B4:1421                 lcall   B4_BS_101_B3_6B05
B4:1424
B4:1424 B4_1424:                                ; CODE XREF: B4:140Dj B4:1415j
B4:1424                 lcall   B4_BS_405_B1_7B1E
B4:1427                 jnc     B4_142B
B4:1429                 clr     C
B4:142A                 ret
B4:142B ; ---------------------------------------------------------------------------
B4:142B
B4:142B B4_142B:                                ; CODE XREF: B4:1427j
B4:142B                 mov     DPTR, #XRAM_FB00
B4:142E                 movx    A, @DPTR
B4:142F                 mov     R7, A
B4:1430                 clr     C
B4:1431                 subb    A, #0x84 ; 'ä'
B4:1433                 jc      B4_1436
B4:1435                 ret
B4:1436 ; ---------------------------------------------------------------------------
B4:1436
B4:1436 B4_1436:                                ; CODE XREF: B4:1433j
B4:1436                 mov     A, R7
B4:1437                 lcall   B4_?C?CCASE
B4:1437 ; ---------------------------------------------------------------------------
B4:143A                 .word B4_14B0
B4:143C                 .byte 0
B4:143D                 .word B4_14B0
B4:143F                 .byte 1
B4:1440                 .word B4_14B0
B4:1442                 .byte 2
B4:1443                 .word B4_14B0
B4:1445                 .byte 3
B4:1446                 .word B4_14B0
B4:1448                 .byte 4
B4:1449                 .word B4_14B0
B4:144B                 .byte 5
B4:144C                 .word B4_14B0
B4:144E                 .byte 6
B4:144F                 .word B4_14B0
B4:1451                 .byte 7
B4:1452                 .word B4_14B0
B4:1454                 .byte 8
B4:1455                 .word B4_14B0
B4:1457                 .byte 9
B4:1458                 .word B4_14BB
B4:145A                 .byte 0xD
B4:145B                 .word B4_14BB
B4:145D                 .byte 0xE
B4:145E                 .word B4_14BB
B4:1460                 .byte 0xF
B4:1461                 .word B4_14BB
B4:1463                 .byte 0x10
B4:1464                 .word B4_14C6
B4:1466                 .byte 0x12
B4:1467                 .word B4_14D1
B4:1469                 .byte 0x13
B4:146A                 .word B4_14F9
B4:146C                 .byte 0x14
B4:146D                 .word B4_1544
B4:146F                 .byte 0x15
B4:1470                 .word B4_1583
B4:1472                 .byte 0x16
B4:1473                 .word B4_15C2
B4:1475                 .byte 0x17
B4:1476                 .word B4_15EA
B4:1478                 .byte 0x18
B4:1479                 .word B4_15F5
B4:147B                 .byte 0x19
B4:147C                 .word B4_1652
B4:147E                 .byte 0x1A
B4:147F                 .word B4_16AF
B4:1481                 .byte 0x1B
B4:1482                 .word B4_16BA
B4:1484                 .byte 0x1D
B4:1485                 .word B4_16C5
B4:1487                 .byte 0x1E
B4:1488                 .word B4_16D0
B4:148A                 .byte 0x20
B4:148B                 .word B4_16F2
B4:148D                 .byte 0x28
B4:148E                 .word B4_1714
B4:1490                 .byte 0x29
B4:1491                 .word B4_171F
B4:1493                 .byte 0x2B
B4:1494                 .word B4_172A
B4:1496                 .byte 0x2C
B4:1497                 .word B4_1787
B4:1499                 .byte 0x2E
B4:149A                 .word B4_1792
B4:149C                 .byte 0x2F
B4:149D                 .word B4_17BA
B4:149F                 .byte 0x32
B4:14A0                 .word B4_17DC
B4:14A2                 .byte 0x33
B4:14A3                 .word B4_1803
B4:14A5                 .byte 0x34
B4:14A6                 .word B4_1834
B4:14A8                 .byte 0x3D
B4:14A9                 .word B4_1851
B4:14AB                 .byte 0x3E
B4:14AC                 .byte    0
B4:14AD                 .byte    0
B4:14AE                 .word B4_185B
B4:14B0 ; ---------------------------------------------------------------------------

Lenoxx DV-406 – DVD

B4:2D01 ; ---------------------------------------------------------------------------
B4:2D01
B4:2D01 BankSw_486_B4_2D01:                     ; DATA XREF: B0:B0_BS_486_B4_2D01o
B4:2D01                                         ; B1:B1_BS_486_B4_2D01o ...
B4:2D01                 clr     RAM_27.4
B4:2D03                 mov     DPTR, #XRAM_FC17
B4:2D06                 movx    A, @DPTR
B4:2D07                 anl     A, #0xFD
B4:2D09                 movx    @DPTR, A
B4:2D0A                 mov     DPTR, #XRAM_FB00
B4:2D0D                 movx    A, @DPTR
B4:2D0E                 lcall   B4_?C?CCASE
B4:2D0E ; ---------------------------------------------------------------------------
B4:2D11                 .word B4_2DA5
B4:2D13                 .byte 0
B4:2D14                 .word B4_2DA5
B4:2D16                 .byte 1
B4:2D17                 .word B4_2DA5
B4:2D19                 .byte 2
B4:2D1A                 .word B4_2DA5
B4:2D1C                 .byte 3
B4:2D1D                 .word B4_2DA5
B4:2D1F                 .byte 4
B4:2D20                 .word B4_2DA5
B4:2D22                 .byte 5
B4:2D23                 .word B4_2DA5
B4:2D25                 .byte 6
B4:2D26                 .word B4_2DA5
B4:2D28                 .byte 7
B4:2D29                 .word B4_2DA5
B4:2D2B                 .byte 8
B4:2D2C                 .word B4_2DA5
B4:2D2E                 .byte 9
B4:2D2F                 .word B4_2DAD
B4:2D31                 .byte 0xD
B4:2D32                 .word B4_2DAD
B4:2D34                 .byte 0xE
B4:2D35                 .word B4_2DAD
B4:2D37                 .byte 0xF
B4:2D38                 .word B4_2DAD
B4:2D3A                 .byte 0x10
B4:2D3B                 .word B4_2DB5
B4:2D3D                 .byte 0x11
B4:2D3E                 .word B4_2DBD
B4:2D40                 .byte 0x12
B4:2D41                 .word B4_2DC5
B4:2D43                 .byte 0x13
B4:2D44                 .word B4_2DCD
B4:2D46                 .byte 0x14
B4:2D47                 .word B4_2DD5
B4:2D49                 .byte 0x15
B4:2D4A                 .word B4_2DDD
B4:2D4C                 .byte 0x16
B4:2D4D                 .word B4_2DE5
B4:2D4F                 .byte 0x17
B4:2D50                 .word B4_2DED
B4:2D52                 .byte 0x18
B4:2D53                 .word B4_2DF5
B4:2D55                 .byte 0x19
B4:2D56                 .word B4_2DFD
B4:2D58                 .byte 0x1A
B4:2D59                 .word B4_2E05
B4:2D5B                 .byte 0x1B
B4:2D5C                 .word B4_2E0D
B4:2D5E                 .byte 0x1C
B4:2D5F                 .word B4_2E15
B4:2D61                 .byte 0x1D
B4:2D62                 .word B4_2E1D
B4:2D64                 .byte 0x1E
B4:2D65                 .word B4_2E25
B4:2D67                 .byte 0x20
B4:2D68                 .word B4_2E2D
B4:2D6A                 .byte 0x22
B4:2D6B                 .word B4_2E35
B4:2D6D                 .byte 0x23
B4:2D6E                 .word B4_2E3D
B4:2D70                 .byte 0x24
B4:2D71                 .word B4_2E45
B4:2D73                 .byte 0x28
B4:2D74                 .word B4_2E58
B4:2D76                 .byte 0x29
B4:2D77                 .word B4_2E5F
B4:2D79                 .byte 0x2B
B4:2D7A                 .word B4_2E66
B4:2D7C                 .byte 0x2C
B4:2D7D                 .word B4_2E6D
B4:2D7F                 .byte 0x2E
B4:2D80                 .word B4_2E76
B4:2D82                 .byte 0x2F
B4:2D83                 .word B4_2E7D
B4:2D85                 .byte 0x31
B4:2D86                 .word B4_2E84
B4:2D88                 .byte 0x32
B4:2D89                 .word B4_2E8B
B4:2D8B                 .byte 0x33
B4:2D8C                 .word B4_2E92
B4:2D8E                 .byte 0x34
B4:2D8F                 .word B4_2E99
B4:2D91                 .byte 0x39
B4:2D92                 .word B4_2EA0
B4:2D94                 .byte 0x3D
B4:2D95                 .word B4_2EA7
B4:2D97                 .byte 0x3E
B4:2D98                 .word B4_2E4C
B4:2D9A                 .byte 0x51
B4:2D9B                 .word B4_2EAE
B4:2D9D                 .byte 0x57
B4:2D9E                 .word B4_2EB5
B4:2DA0                 .byte 0x7F
B4:2DA1                 .byte    0
B4:2DA2                 .byte    0
B4:2DA3                 .word B4_2EBC
B4:2DA5 ; ---------------------------------------------------------------------------

Philips DVP3040K/55 – ISO

B1:48EB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B1:48EB
B1:48EB
B1:48EB BankSw_483_B1_48EB:                     ; DATA XREF: B0:B0_BS_483_B1_48EBo
B1:48EB                                         ; B1:B1_BS_483_B1_48EBo ...
B1:48EB                 clr     RAM_27.5
B1:48ED                 lcall   BankSw_603_B1_879C
B1:48F0                 jnc     B1_48FA
B1:48F2                 mov     DPTR, #XRAM_FB00
B1:48F5                 mov     A, #0xFF
B1:48F7                 movx    @DPTR, A
B1:48F8                 clr     C
B1:48F9                 ret
B1:48FA ; ---------------------------------------------------------------------------
B1:48FA
B1:48FA B1_48FA:                                ; CODE XREF: BankSw_483_B1_48EB+5j
B1:48FA                 mov     DPTR, #XRAM_FB00
B1:48FD                 movx    A, @DPTR
B1:48FE                 mov     R7, A
B1:48FF                 clr     C
B1:4900                 subb    A, #0x71 ; 'q'
B1:4902                 jc      B1_4905
B1:4904                 ret
B1:4905 ; ---------------------------------------------------------------------------
B1:4905
B1:4905 B1_4905:                                ; CODE XREF: BankSw_483_B1_48EB+17j
B1:4905                 mov     A, R7
B1:4906                 lcall   B1_?C?CCASE
B1:4906 ; ---------------------------------------------------------------------------
B1:4909                 .word B1_497F
B1:490B                 .byte 0
B1:490C                 .word B1_497F
B1:490E                 .byte 1
B1:490F                 .word B1_497F
B1:4911                 .byte 2
B1:4912                 .word B1_497F
B1:4914                 .byte 3
B1:4915                 .word B1_497F
B1:4917                 .byte 4
B1:4918                 .word B1_497F
B1:491A                 .byte 5
B1:491B                 .word B1_497F
B1:491D                 .byte 6
B1:491E                 .word B1_497F
B1:4920                 .byte 7
B1:4921                 .word B1_497F
B1:4923                 .byte 8
B1:4924                 .word B1_497F
B1:4926                 .byte 9
B1:4927                 .word B1_498A
B1:4929                 .byte 0xD
B1:492A                 .word B1_498A
B1:492C                 .byte 0xE
B1:492D                 .word B1_498A
B1:492F                 .byte 0xF
B1:4930                 .word B1_498A
B1:4932                 .byte 0x10
B1:4933                 .word B1_4995
B1:4935                 .byte 0x12
B1:4936                 .word B1_49A0
B1:4938                 .byte 0x13
B1:4939                 .word B1_49C8
B1:493B                 .byte 0x14
B1:493C                 .word B1_49D3
B1:493E                 .byte 0x15
B1:493F                 .word B1_49DE
B1:4941                 .byte 0x16
B1:4942                 .word B1_49E9
B1:4944                 .byte 0x17
B1:4945                 .word B1_4A11
B1:4947                 .byte 0x18
B1:4948                 .word B1_4A1C
B1:494A                 .byte 0x19
B1:494B                 .word B1_4A44
B1:494D                 .byte 0x1A
B1:494E                 .word B1_4A6C
B1:4950                 .byte 0x1B
B1:4951                 .word B1_4A77
B1:4953                 .byte 0x1D
B1:4954                 .word B1_4A82
B1:4956                 .byte 0x1E
B1:4957                 .word B1_4A8D
B1:4959                 .byte 0x20
B1:495A                 .word B1_4A98
B1:495C                 .byte 0x28
B1:495D                 .word B1_4AA3
B1:495F                 .byte 0x29
B1:4960                 .word B1_4AAE
B1:4962                 .byte 0x2B
B1:4963                 .word B1_4AB9
B1:4965                 .byte 0x2C
B1:4966                 .word B1_4AE1
B1:4968                 .byte 0x2E
B1:4969                 .word B1_4AEB
B1:496B                 .byte 0x2F
B1:496C                 .word B1_4AF5
B1:496E                 .byte 0x32
B1:496F                 .word B1_4AFF
B1:4971                 .byte 0x33
B1:4972                 .word B1_4B09
B1:4974                 .byte 0x34
B1:4975                 .word B1_4B2C
B1:4977                 .byte 0x3D
B1:4978                 .word B1_4B4E


B1:497A                 .byte 0x3E
B1:497B                 .byte    0
B1:497C                 .byte    0
B1:497D                 .word B1_4B58
B1:497F ; ---------------------------------------------------------------------------

Philips DVP3040K/55 – DVD

B1:5F9E ; ---------------------------------------------------------------------------
B1:5F9E
B1:5F9E BankSw_484_B1_5F9E:                     ; DATA XREF: B0:B0_BS_484_B1_5F9Eo
B1:5F9E                                         ; B1:B1_BS_484_B1_5F9Eo ...
B1:5F9E                 clr     RAM_27.5
B1:5FA0                 mov     DPTR, #XRAM_FB00
B1:5FA3                 movx    A, @DPTR
B1:5FA4                 lcall   B1_?C?CCASE
B1:5FA4 ; ---------------------------------------------------------------------------
B1:5FA7                 .word B1_6038
B1:5FA9                 .byte 0
B1:5FAA                 .word B1_6038
B1:5FAC                 .byte 1
B1:5FAD                 .word B1_6038
B1:5FAF                 .byte 2
B1:5FB0                 .word B1_6038
B1:5FB2                 .byte 3
B1:5FB3                 .word B1_6038
B1:5FB5                 .byte 4
B1:5FB6                 .word B1_6038
B1:5FB8                 .byte 5
B1:5FB9                 .word B1_6038
B1:5FBB                 .byte 6
B1:5FBC                 .word B1_6038
B1:5FBE                 .byte 7
B1:5FBF                 .word B1_6038
B1:5FC1                 .byte 8
B1:5FC2                 .word B1_6038
B1:5FC4                 .byte 9
B1:5FC5                 .word B1_6040
B1:5FC7                 .byte 0xD
B1:5FC8                 .word B1_6040
B1:5FCA                 .byte 0xE
B1:5FCB                 .word B1_6040
B1:5FCD                 .byte 0xF
B1:5FCE                 .word B1_6040
B1:5FD0                 .byte 0x10
B1:5FD1                 .word B1_6048
B1:5FD3                 .byte 0x11
B1:5FD4                 .word B1_6050
B1:5FD6                 .byte 0x12
B1:5FD7                 .word B1_6058
B1:5FD9                 .byte 0x13
B1:5FDA                 .word B1_6060
B1:5FDC                 .byte 0x14
B1:5FDD                 .word B1_6068
B1:5FDF                 .byte 0x15
B1:5FE0                 .word B1_6070
B1:5FE2                 .byte 0x16
B1:5FE3                 .word B1_6078
B1:5FE5                 .byte 0x17
B1:5FE6                 .word B1_6080
B1:5FE8                 .byte 0x18
B1:5FE9                 .word B1_6088
B1:5FEB                 .byte 0x19
B1:5FEC                 .word B1_6090
B1:5FEE                 .byte 0x1A
B1:5FEF                 .word B1_6098
B1:5FF1                 .byte 0x1B
B1:5FF2                 .word B1_60A0
B1:5FF4                 .byte 0x1C
B1:5FF5                 .word B1_60A8
B1:5FF7                 .byte 0x1D
B1:5FF8                 .word B1_60B0
B1:5FFA                 .byte 0x1E
B1:5FFB                 .word B1_60B8
B1:5FFD                 .byte 0x20
B1:5FFE                 .word B1_60C0
B1:6000                 .byte 0x22
B1:6001                 .word B1_60C8
B1:6003                 .byte 0x23
B1:6004                 .word B1_60CF
B1:6006                 .byte 0x24
B1:6007                 .word B1_60D6
B1:6009                 .byte 0x28
B1:600A                 .word B1_60DD
B1:600C                 .byte 0x29
B1:600D                 .word B1_60E4
B1:600F                 .byte 0x2B
B1:6010                 .word B1_60EB
B1:6012                 .byte 0x2C
B1:6013                 .word B1_60F2
B1:6015                 .byte 0x2E
B1:6016                 .word B1_60FB
B1:6018                 .byte 0x2F
B1:6019                 .word B1_6102
B1:601B                 .byte 0x31
B1:601C                 .word B1_6109
B1:601E                 .byte 0x32
B1:601F                 .word B1_6110
B1:6021                 .byte 0x33
B1:6022                 .word B1_6117
B1:6024                 .byte 0x34
B1:6025                 .word B1_611E
B1:6027                 .byte 0x39
B1:6028                 .word B1_6125
B1:602A                 .byte 0x3D
B1:602B                 .word B1_612C
B1:602D                 .byte 0x3E
B1:602E                 .word B1_6133
B1:6030                 .byte 0x57
B1:6031                 .word B1_613A
B1:6033                 .byte 0x68
B1:6034                 .byte    0
B1:6035                 .byte    0
B1:6036                 .word B1_6141
B1:6038 ; ---------------------------------------------------------------------------

JTEC MTK 7000 – ISO

B4:3C40 ; ---------------------------------------------------------------------------
B4:3C40
B4:3C40 BankSw_505_B4_3C40:                     ; DATA XREF: B0:B0_BS_505_B4_3C40o
B4:3C40                                         ; B1:B1_BS_505_B4_3C40o ...
B4:3C40                 clr     RAM_27.4
B4:3C42                 lcall   B4_BS_428_B1_7B99
B4:3C45                 jnc     B4_3C49
B4:3C47                 clr     C
B4:3C48                 ret
B4:3C49 ; ---------------------------------------------------------------------------
B4:3C49
B4:3C49 B4_3C49:                                ; CODE XREF: B4:3C45j
B4:3C49                 mov     DPTR, #XRAM_FB00
B4:3C4C                 movx    A, @DPTR
B4:3C4D                 mov     R7, A
B4:3C4E                 clr     C
B4:3C4F                 subb    A, #0x6D ; 'm'
B4:3C51                 jc      B4_3C55
B4:3C53                 clr     C
B4:3C54                 ret
B4:3C55 ; ---------------------------------------------------------------------------
B4:3C55
B4:3C55 B4_3C55:                                ; CODE XREF: B4:3C51j
B4:3C55                 mov     A, R7
B4:3C56                 lcall   B4_?C?CCASE
B4:3C56 ; ---------------------------------------------------------------------------
B4:3C59                 .word B4_3CD2
B4:3C5B                 .byte 0
B4:3C5C                 .word B4_3CD2
B4:3C5E                 .byte 1
B4:3C5F                 .word B4_3CD2
B4:3C61                 .byte 2
B4:3C62                 .word B4_3CD2
B4:3C64                 .byte 3
B4:3C65                 .word B4_3CD2
B4:3C67                 .byte 4
B4:3C68                 .word B4_3CD2
B4:3C6A                 .byte 5
B4:3C6B                 .word B4_3CD2
B4:3C6D                 .byte 6
B4:3C6E                 .word B4_3CD2
B4:3C70                 .byte 7
B4:3C71                 .word B4_3CD2
B4:3C73                 .byte 8
B4:3C74                 .word B4_3CD2
B4:3C76                 .byte 9
B4:3C77                 .word B4_3CD2
B4:3C79                 .byte 0xA
B4:3C7A                 .word B4_3CDD
B4:3C7C                 .byte 0xD
B4:3C7D                 .word B4_3CDD
B4:3C7F                 .byte 0xE
B4:3C80                 .word B4_3CDD
B4:3C82                 .byte 0xF
B4:3C83                 .word B4_3CDD
B4:3C85                 .byte 0x10
B4:3C86                 .word B4_3CE8
B4:3C88                 .byte 0x12
B4:3C89                 .word B4_3CF3
B4:3C8B                 .byte 0x13
B4:3C8C                 .word B4_3D1B
B4:3C8E                 .byte 0x14
B4:3C8F                 .word B4_3D26
B4:3C91                 .byte 0x15
B4:3C92                 .word B4_3D31
B4:3C94                 .byte 0x16
B4:3C95                 .word B4_3D3C
B4:3C97                 .byte 0x17
B4:3C98                 .word B4_3D64
B4:3C9A                 .byte 0x18
B4:3C9B                 .word B4_3D6F
B4:3C9D                 .byte 0x19
B4:3C9E                 .word B4_3D97
B4:3CA0                 .byte 0x1A
B4:3CA1                 .word B4_3DBF
B4:3CA3                 .byte 0x1B
B4:3CA4                 .word B4_3DCA
B4:3CA6                 .byte 0x1D
B4:3CA7                 .word B4_3DD5
B4:3CA9                 .byte 0x1E
B4:3CAA                 .word B4_3DE0
B4:3CAC                 .byte 0x20
B4:3CAD                 .word B4_3DEB
B4:3CAF                 .byte 0x28
B4:3CB0                 .word B4_3DF6
B4:3CB2                 .byte 0x29
B4:3CB3                 .word B4_3E01
B4:3CB5                 .byte 0x2B
B4:3CB6                 .word B4_3E0C
B4:3CB8                 .byte 0x2C
B4:3CB9                 .word B4_3E34
B4:3CBB                 .byte 0x2E
B4:3CBC                 .word B4_3E3E
B4:3CBE                 .byte 0x2F
B4:3CBF                 .word B4_3E48
B4:3CC1                 .byte 0x32
B4:3CC2                 .word B4_3E52
B4:3CC4                 .byte 0x33
B4:3CC5                 .word B4_3E5C
B4:3CC7                 .byte 0x34
B4:3CC8                 .word B4_3E7F
B4:3CCA                 .byte 0x3D
B4:3CCB                 .word B4_3EA1
B4:3CCD                 .byte 0x3E
B4:3CCE                 .byte    0
B4:3CCF                 .byte    0
B4:3CD0                 .word B4_3EAB
B4:3CD2 ; ---------------------------------------------------------------------------

JTEC MTK 7000 – DVD

B4:4293 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B4:4293
B4:4293
B4:4293 BankSw_506_B4_4293:                     ; DATA XREF: B0:B0_BS_506_B4_4293o
B4:4293                                         ; B1:B1_BS_506_B4_4293o ...
B4:4293                 clr     RAM_27.4
B4:4295                 mov     DPTR, #XRAM_FB00
B4:4298                 movx    A, @DPTR
B4:4299                 lcall   B4_?C?CCASE
B4:4299 ; ---------------------------------------------------------------------------
B4:429C                 .word B4_4333
B4:429E                 .byte 0
B4:429F                 .word B4_4333
B4:42A1                 .byte 1
B4:42A2                 .word B4_4333
B4:42A4                 .byte 2
B4:42A5                 .word B4_4333
B4:42A7                 .byte 3
B4:42A8                 .word B4_4333
B4:42AA                 .byte 4
B4:42AB                 .word B4_4333
B4:42AD                 .byte 5
B4:42AE                 .word B4_4333
B4:42B0                 .byte 6
B4:42B1                 .word B4_4333
B4:42B3                 .byte 7
B4:42B4                 .word B4_4333
B4:42B6                 .byte 8
B4:42B7                 .word B4_4333
B4:42B9                 .byte 9
B4:42BA                 .word B4_4333
B4:42BC                 .byte 0xA
B4:42BD                 .word B4_433B
B4:42BF                 .byte 0xD
B4:42C0                 .word B4_433B
B4:42C2                 .byte 0xE
B4:42C3                 .word B4_433B
B4:42C5                 .byte 0xF
B4:42C6                 .word B4_433B
B4:42C8                 .byte 0x10
B4:42C9                 .word B4_4343
B4:42CB                 .byte 0x11
B4:42CC                 .word B4_434B
B4:42CE                 .byte 0x12
B4:42CF                 .word B4_4353
B4:42D1                 .byte 0x13
B4:42D2                 .word B4_435B
B4:42D4                 .byte 0x14
B4:42D5                 .word B4_4363
B4:42D7                 .byte 0x15
B4:42D8                 .word B4_436B
B4:42DA                 .byte 0x16
B4:42DB                 .word B4_4373
B4:42DD                 .byte 0x17
B4:42DE                 .word B4_437B
B4:42E0                 .byte 0x18
B4:42E1                 .word B4_4383
B4:42E3                 .byte 0x19
B4:42E4                 .word B4_438B
B4:42E6                 .byte 0x1A
B4:42E7                 .word B4_4393
B4:42E9                 .byte 0x1B
B4:42EA                 .word B4_439B
B4:42EC                 .byte 0x1C
B4:42ED                 .word B4_43A3
B4:42EF                 .byte 0x1D
B4:42F0                 .word B4_43AB
B4:42F2                 .byte 0x1E
B4:42F3                 .word B4_43B3
B4:42F5                 .byte 0x20
B4:42F6                 .word B4_43BB
B4:42F8                 .byte 0x22
B4:42F9                 .word B4_43C3
B4:42FB                 .byte 0x23
B4:42FC                 .word B4_43CB
B4:42FE                 .byte 0x24
B4:42FF                 .word B4_43D3
B4:4301                 .byte 0x28
B4:4302                 .word B4_43DA
B4:4304                 .byte 0x29
B4:4305                 .word B4_43E1
B4:4307                 .byte 0x2B
B4:4308                 .word B4_43E8
B4:430A                 .byte 0x2C
B4:430B                 .word B4_43EF
B4:430D                 .byte 0x2E
B4:430E                 .word B4_43F8
B4:4310                 .byte 0x2F
B4:4311                 .word B4_43FF
B4:4313                 .byte 0x31
B4:4314                 .word B4_4406
B4:4316                 .byte 0x32
B4:4316 ; End of function BankSw_506_B4_4293
B4:4316
B4:4317                 .word B4_440D
B4:4319                 .byte 0x33
B4:431A                 .word B4_4414
B4:431C                 .byte 0x34
B4:431D                 .word B4_441B
B4:431F                 .byte 0x35
B4:4320                 .word B4_4422
B4:4322                 .byte 0x39
B4:4323                 .word B4_4429
B4:4325                 .byte 0x3D
B4:4326                 .word B4_4430
B4:4328                 .byte 0x3E
B4:4329                 .word B4_4437
B4:432B                 .byte 0x57
B4:432C                 .word B4_443E
B4:432E                 .byte 0x68
B4:432F                 .byte    0
B4:4330                 .byte    0
B4:4331                 .word B4_4445
B4:4333 ; ---------------------------------------------------------------------------

Textos Relacionados

Esta página foi visualizada vezes desde 30/06/07.

DivX Players

DVD/DivX/MPEG4 Player Proview DVP-858

Review publicado em 13/06/2007 e não está finalizado ainda.

Histórico de edições.
Para encontrá-las no texto, procure pelas datas entre colchetes (por exemplo, procure por “[12/07]”)

  • [14/09/08] Adicionei a seção Por Dentro;
  • [09/08/07] Falo sobre a versão 3 do firmware eneris e senhas para os menus ocultos;
  • [29/07/07] Pequenos acréscimos;
  • [22/07/07] Pequena atualização sobre o “bug do OFF” e sobre a nova versão do firmware eneris. Também coloquei um exemplo da diferença que faz o contorno da fonte na versão 20.07;
  • [12/07/07] Revisão geral, com a inclusão do novo firmware oficial, comentários sobre os firmwares alternativos, etc.;
  • [14/06/07] Adicionei a contribuição de jmaraujo ao texto sobre zoom;
  • [14/06/07] Indiquei o ponto de correção do Subtitle Timing Bug no firmware;

Quase todo este review, como é regra nos meus reviews, tem informações que não são encontradas no manual.

Eu não tenho TV com porta HDMI, por isso não testei esse recurso, ainda.

Como sempre, a Tabela Comparativa é parte deste review. Eu não pretendo repetir aqui o que já está lá, mas gostaria de destacar os seguintes pontos positivos:

  • Suporte a audio AAC – É o primeiro DivX player brasileiro, pelo que sei;
  • Suporte a audio OGG – Até agora, só os Pioneer tinham esse suporte;
  • Suporte ao container OGM – Muito raro nos Divx Players;
  • Suporte ao container MP4 – Isso não significa que vai rodar todo .mp4 da Internet, mas é algo desejável. Arquivos .mp4 criados por celulares devem funcionar, desde que os codecs sejam compatíveis;
  • Suporte ao container 3GP – 3GP é uma versão simplificada do container MP4 e o player reconhece a extensão .3gp. Muitos celulares criam vídeos nesse formato, mas é preciso que os codecs sejam compatíveis. O TREO 650 e o Sony Ericsson Z530i, por exemplo, criam videos .3gp com codec de vídeo compatível, mas o áudio é “AMR-NB”, que o DVP-858 não reconhece;
  • Suporte a Nero Digital – Roda vídeos criados com o Nero Recode com o profile “standard”. Não significa que vai rodar qualquer arquivo Nero Digital, mas nem isso os outros aparelhos conseguem fazer;
  • Suporte a PAL-M – Pelo que sei é o segundo aparelho Mediatek do mundo a ter suporte (o primeiro foi o Lenoxx DV-406);

A partir daqui você vai encontrar uma grande quantidade de pontos negativos em destaque porque é neles que eu me concentro inicialmente nos meus reviews. E muitas coisas que eu considero positivas não ganham destaque. Não conte os pontos negativos para determinar que o aparelho não presta. Leia o review e a Tabela Comparativa com atenção para poder concluir se o aparelho serve para você ou não, principalmente levando em conta o preço.

Eu comprei meu aparelho por R$169 no Extra, via Internet, em 10x “sem juros”. Mesmo com o frete não passou dos R$190. O preço no Extra oscila, chegando a mudar duas ou três vezes em um mesmo dia. Você também pode encontrá-lo em lojas físicas da rede de supermercados e em outras lojas, mas é geralmente no Extra que você vai encontrar mais barato.

Por exemplo, no mesmo dia em que estava custando R$199 no site do Extra, estava custando R$259 nas Americanas. O motivo da diferença absurda de preço? Não faço a menor idéia.

Eu não precisava de outro DivX player, mas o DVP-858 me atraiu por reportadamente ser capaz de fazer upscaling em Video Componente (a maioria só faz por HDMI) e eu tenho uma HDTV há seis meses (CINEOS 29pt8422) e nunca pude apreciar isso. Nesta primeira edição do review não vou comentar o assunto ainda.

O aparelho é supostamente fabricado pela chinesa Malata. As pistas para isso são que o aparelho da Malata é igualzinho por fora e tem o mesmo código de modelo: Malata DVP-858

O logotipo da Proview vem gravado em baixo relevo na tampa. Uma personalização que ameniza o caráter xing-ling do aparelho. O fundo do aparelho se destaca por duas coisas: Não há nenhum orifício para ventilação (o que não é novidade nesses aparelhos) e a alavanca de ejeção de emergência não está acessível.

Visão traseira completa

As conexões: É difícil reclamar do DVP-858 nesse quesito, porque ele tem de tudo. É um raro exemplar de aparelho Mediatek com conexão VGA, e suas conexões de áudio analógicas vão agradar aos usuários que não tem condições de (ou não querem) investir em um Home theater/receiver com entrada digital.

Mesmo que você seja um entusiasta do áudio digital tem a opção de comprar um aparelho desses mais um Home Theather analógico desses de menos de R$200 e montar um sistema surround razoável para o quarto das crianças.

Grande inconveniente para mim: A Proview é uma das raras empresas do mercado a colocar lacre de garantia. E o lacre é do tipo VOID, como já foi constatado por usuários que já o violaram. Eu tive que mandar para o espaço a garantia do meu aparelho para fazer meus testes, mas depois disso dois proprietários disseram que bastou aquecer com cuidado o selo com um secador de cabelos que ele descolou. É tarde para mim.

Detalhe da parte frontal direita do aparelho, mostrando a porta do leitor de cartões.

Close nas logomarcas. Note a ausência do logotipo da DivX, que não afeta em nada a compatibilidade com DivX do aparelho. A ausência do logotipo apenas poupa a Proview de obter uma certificação DivX, que no fim das contas tem pouca ou nenhuma utilidade para o consumidor. Note também a ausência do logo DTS Digital OUT, do qual falarei mais adiante neste review.

A porta USB e o leitor de cartões expostos. O aparelho suporta Memory Stick, Secure Digital e Multimedia Card. Dos formatos populares, só faltou o CompactFlash, mas isso pode ser contornado com um leitor de cartões USB, como explicado neste review.
A bandeja é de plástico flexível e transparente, do tipo comumente associado a aparelhos vagabundos. Note que o disco não sai inteiramente.

A iluminação do aparelho é de LED azul.

Você pode desligar pelo setup apenas a parte completamente desnecessária, que é a do loader.

Apesar da forte luminosidade, a legibilidade poderia ser melhor. Comparando o aparelho com um Philips DVP5960 ficou claro que no display do Philips os caracteres ficam muito melhor definidos à distância. O display do DVP-858 fica um tanto “borrado”.

O background inicial é simples, mas bonito.

Por Dentro

A fonte (110-220V) é exatamente a mesma usada no modelo mais recente, DVP-801. O modulador PWM é um DH321 que pode chavear até 12W. Esse CI também está presente nas fontes dos Philips DVP3040 (apenas K/78) e DVP5960. Segundo alguém nesta página o CI pode ser conseguido em autorizadas Britania e Philco. A fonte fornece apenas +5V, +12V e -12V.

O loader é modelo DVD-M03B. Exatamente o mesmo usado no DVP-801. E a unidade óptica é SONY KHM313A, que pode ser encontrada em diversos outros aparelhos.

A CPU. Passe o mouse para ver a identificação de alguns dos componentes.

Lista parcial de componentes:

  • MT1389DE – SOC;
  • MT1392E – Responsável pela saída HDMI;
  • Burr Brown / Texas Instruments PCM1606 – 24-Bit 192kHz Sampling 6-Ch Enhanced Multilevel Delta-Sigma D/A Converter;
  • 4558 – Amp Op duplo de uso geral – Cada um deles é responsável por um par de saídas analógicas de áudio;
  • CX1117 – 3.3 – Regulador de voltagem 3.3V x 1A, low dropout;
  • AM1117 – Provavelmente o mesmo que o CX1117, mas de outro fabricante;
  • IC42S16400 – Memória SDRAM de 64Mb (8MB);
  • KH29LV160CBTC – Memória flash de 16Mb (2MB), conhecida como “29LV160”. Segundo esta página, pode ser compatível com os modelos AT49BV1604, AT49BF1614, AM29LV160, MBM29LV160TE / BE, SST39VF160, SST39LF160 e M29W160.
  • AT24C04 – Memória EEPROM serial de 4Kb (512B) – Provavelmente tem somente os parâmetros de operação da porta HDMI;
  • AT24C16 – Memória EEPROM serial de 16Kb (2KB) – Provavelmente é a EEPROM principal onde são armazenadas todas as perferências do usuário;

Por baixo. O cabo soldado na parte inferior é o cabo serial que eu instalei.

Controle Remoto

O controle remoto de 48 teclas é alvo de muitas críticas por seu aspecto “infantil”, mas eu gosto dele 🙂

[27/08] Já vi alguns relatos de pessoas que receberam o controle remoto sem funcionar e o problema era o ressonador cerâmico solto. Bastou abrir o remoto e soldar os terminais do ressonador para resolver o problema.

Se bem que seria muito melhor se a Proview tivesse colocado as teclas Pause/Step, Slow e Stop no lugar onde estão Virtual, Setup e Menu.

Destaques:

  • P/N – Alterna a saída de vídeo entre PAL-M, PAL-N, NTSC e Auto. Como de costume, não é recomendável que você deixe em Auto. Selecione o padrão que sua TV suporta melhor e deixe assim.Também pode ser configurado pelo setup;
  • Video – Alterna entre VGA, RGB, YUV e desligado. Se você estiver usando Video Composto, não vai notar diferença alguma. [14/06] Se estiver usando a saída YPbPr, ficará sem imagem em “Desligado” e “VGA” e com imagem rosada em RGB. Deixe em “YUV”. Também pode ser configurado pelo setup;
  • HDMI – Alterna entre os modos 480i (“desligado”), 480p, 720p e 1080i. Apesar do nome, também afeta a saída Video Componente. Se você estiver usando Video Composto, não vai notar diferença alguma. Também pode ser configurado pelo setup;
  • USB/Card – Alterna entre o loader, a porta USB e o leitor de cartões;
  • Bookmark – Manda o arquivo selecionado no browser para a “playlist” que é acessada pelo botão PROG (não está no manual);
  • PROG – Quando você está com um DVD-Video carregado, permite a programação de capítulos a executar. Quando você está no browser, alterna entre:
    • Pasta – Exibe os arquivos organizados por pastas do jeito que o disco foi gravado (default),
    • List. Arquivos – A organização por pastas desaparece e todos os arquivos são misturados na raiz;
    • Playlist – Exibe apenas os arquivos que você selecionou previamente apertando o botão bookmark;

Note que a presença de algumas dessas teclas é problemática, porque muda a configuração do aparelho. Se o usuário não souber para que as teclas servem e os sintomas, vai achar que o aparelho está defeituoso. Já para os usuários avançados elas se tornam convenientes.

Eu capturei todas as 48 teclas com o Winlirc e o arquivo de configuração está aqui. O controle não usa “Repeat Codes” tornando fácil simulá-lo em um “learning remote” ou palmtop com essa função.

O coração do controle é o chip Princeton Technologies PT2222-001

A tecla display e o browser

Quando o browser está sendo exibido, se você pressionar a tecla display, a seção superior do browser exibirá em que modo de exibição o browser está (definido com a tecla PROG)

Este é o modo normal de exibição do browser. Note o indicador vermelho de volume na seção superior. Aperte a tecla display e perceba a mudança
Agora aperte o botão PROG e veja como a linha superior muda para mostrar em que modo de exibição você está. Os números da segunda linha mudam para indicar sua posição no total de arquivos. Note que o aparelho diz que eu tenho 415 arquivos no disco. Compare com as duas imagems anteriores que mostram um total de 33, que é a contagem da pasta. Se você apertar a tecla PROG outra vez e existir algum arquivo na playlist, esta será exibida e a primeira linha mostrará isso.

Em todos os casos, a segunda linha sempre exibe “pasta”. Não sei ainda para que serve e em que situação isso muda.

A tecla virtual

Esta tecla funciona apenas com DVD-Video e exibe um controle remoto virtual na tela. Todas as funções do remoto virtual podem ser acessadas usando apenas as teclas de direção e a tecla PLAY do remoto. O único propósito que consigo enxergar para ter tanto trabalho para poder controlar a execução com poucas teclas (5 teclas, mais a tecla Virtual) é se você for usar um controle remoto programável. Nesse caso o uso do remoto virtual poupa você do trabalho de programar várias teclas.

Esse remoto virtual existe em outros aparelhos Mediatek, mas é a primeira vez que eu coloco as mãos em um aparelho com essa função.

O Manual

O manual do DVP-858 tem uma qualidade gráfica surpreendente para um xing-ling e é bem detalhado, mas os elogios terminam aí. A tradução é muito ruim, parecendo feita por algum tradutor automático e mal revisada. Há parágrafos que eu leio duas, três vezes e não consigo entender o que querem dizer. Tirando esse problema, que ocorre em quase todo o manual, ainda existem os erros grosseiros de adaptação, mostrando que o manual foi (mal) adaptado do manual de um outro modelo. Por exemplo:

  • Pag. 33 – A tela exibida é de um player baseado em chip Sunplus, completamente diferente da real;
  • Pag. 29 – Fala em volume do microfone. Esse aparelho não tem entrada para microfone;
  • Pag. 37 – Diz que existe uma opção “restaurar” no meu, mas no aparelho aparece “última memória

Isso sem contar os erros nas páginas 14, 19, 21, 22 e 23, que exibem o modelo DVP-816. Mas no caso deste erro o meu manual impresso veio com uma folha de errata.

YPbPr/YCbCr/YUV, RGB e VGA

nota: Minha experiência é pequena com as diferenças entre sinais RGB, por isso ainda podem haver erros nesta seção

O manual do DVP-858 faz uma confusão danada com esses termos e mais atrapalha do que ajuda. A explicação dada nas páginas 49-50, por exemplo, não faz sentido.

  • YUV: Escolha esta opção se o DVD Player estiver conectado a uma TV com cabo de vídeo Y, Cb, Cr.
  • RGB: Escolha esta opção se o DVD Player estiver conectado a uma TV com cabo de vídeo componentes.
  • VGA: Escolha esta opção se o DVD Player estiver conectado a uma TV ou monitor com cabo de vídeo VGA.

Primeiro, tenha em mente os seguintes pontos básicos:

  • YPbPr, YCbCr e YUV são, rigorosamente falando, diferentes. Mas quando se trata de um DVD player podemos tratar os três termos como a mesma coisa. Vou usar o termo “YUV” quando estiver falando do tipo de sinal de vídeo e “YPbPr” quando estiver me referindo às três saídas RCA correspondentes na traseira do aparelho.
  • YUV, VGA e RGB são três formas de “Video Componente”

Daí, é uma grande besteira da Proview colocar no manual que “RGB” é para usar com “cabo Video Componente” e YUV é para usar com “cabo YCbCr”. De modo geral, são o mesmo cabo. Seria mais apropriado o manual dizer que “RGB” é para usar com o cabo “VGA”, como explico adiante.

O DVP-858 suporta dois cabos de “Video Componente”:

  • O “comum” que usa três plugues RCA e que quase todo mundo associa ao termo “Video Componente”. É mais apropriado chamar esse cabo de “cabo YPbPr”;
  • O cabo que se pluga ao conector “VGA”. Como eu disse antes, o cabo “VGA” transporta uma forma de Video Componente.

No conector chamado de “VGA” você pode escolher os tipos de sinal “VGA” e “RGB”.

VGA transmite o vídeo no formato que monitores de computador entendem:

  • 3 fios separados para Vermelho, Verde e Azul
  • fios separados para os sinais de sincronismo horizontal e vertical;

Denominação correta desse tipo: “RGBHV

RGB transmite o vídeo da forma que alguns projetores esperam:

  • 3 fios separados para Vermelho, Verde e Azul;
  • Os sinais de sincronismo juntos, transmitidos pelo fio que carrega o sinal verde

Denominação correta desse tipo: “RGsB” ou “SoG” (de “Sync on Green”)

Dá para notar que o DVP-858 usa SoG porque a imagem no monitor VGA fica verde se você selecionar RGB. Isso acontece quando você coloca um sinal RGB SoG em um monitor que não entende isso.

É importante frisar que ambos são Video Componente e ambos são RGB.

Resumindo:

  • Para ligar o DVP-858 pelo cabo de Video Componente YPbPr (RCA), ajuste para YUV;
  • Para ligar o DVP-858 pela porta “VGA” a um monitor de computador, ajuste para VGA;
  • Para ligar o DVP-858 pela porta VGA a qualquer coisa que não seja um monitor de computador, talvez seja necessário ajustar para RGB

Podem existir exceções que eu não conheço. Nunca lidei com projetores ou displays high-end e correções são bem vindas. É possível que algum desses equipamentos suporte RGB usando o cabo “comum” de Video Componente. Nesse caso o DVP-858 precisaria colocar nessa saída um sinal Sync on Green (SoG).

Uma boa fonte de referência:
http://en.wikipedia.org/wiki/Component_video Nota: Se o aparelho detectar um monitor VGA conectado, pode entrar em modo RGB, mesmo na conexão YPbPr (ficará tudo esverdeado). Para voltar a YUV você precisa desconectar o monitor, que a cor voltará ao normal automaticamente. Isso ocorreu uma vez, com um determinado monitor, e depois não se repetiu, com o mesmo monitor.

[12/07] Infelizmente, a conexão VGA só funciona em 480p. Eu testei com três monitores CRT, de 15″ a 19″ (um LG Flatron com menos de um ano de uso) e nada feito. Os sintomas variam entre monitores. Entretanto, eu não acho que vá fazer diferença usar 720p ou 1080i em um monitor CRT de computador, se a fonte (o DVD-Video) não passa de 480p (em NTSC). Isso poderia ser interessante ao conectar o DVP-858 a um monitor LCD de computador que só tenha porta VGA, porque nesse caso temos o problema da resolução nativa do monitor. Se você quer conectar o DVP-858 a um monitor, é melhor que este tenha conexão DVI, para que você possa usar um adaptador HDMI-DVI (isso ainda não foi testado por mim).

Legendas DivX Externas

Meu teste padrão de contraste

Exemplo do firmware original 20.06

Para uma comparação com outros aparelhos, veja minha comparação de legendas DivX.

[22/07] A versão 20.07 usa exatamente a mesma fonte, mas desta vez com o contorno ativado. Mas a Proview não se limitou a melhorar as legendas dando um contorno e também aumentou bastante a posição vertical.

Isso é facilmente corrigivel (mtkWindows) se você achar que ficou alto demais. De qualquer forma, já existe um mod meu que permite mudar a posição da legenda pelo setup.

Teste de quebras de linha

Testes feitos com o filme “The Second Renaissance, part I” baixado legalmente do site http://www.intothematrix.com/ em modo ZOOM de 2X para reforçar o teste de contraste (o filme é widescreen).

O DVP-858 não faz quebra de linha automática. Enquanto que para a maioria dos aparelhos com esse problema basta se certificar que as linhas de legenda não passem de “n” caracteres que vai estar tudo bem, o caso do DVP-858 é mais grave porque o corte das legendas ocorre depois de um número aparentemente aleatório de caracteres.

[12/07] O DVP-858 faz quebra desde a versão oficial 20.07, mas ainda é feito de um jeito capenga, sem nenhum respeito pela divisão silábica e sem concatenação com outras linhas, quando conveniente. Os exemplos abaixo ainda são da versão original.

38
00:04:13,122 –> 00:04:17,751
Os manifestantes foram se encontrar
com os esquadrões das forças de defesa no centro do motim.

Por que o corte no meio de “forças” se ainda havia espaço?

52
00:06:26,630 –> 00:06:31,218
As máquinas e sua inteligência artificial
puderam ser vistas em cada lugar da sociedade humana…

Essa é ainda mais difícil de explicar.

57
00:06:59,288 –> 00:07:04,126
….. a habilidade de sustentar um vôo
normal em um evento de falha múltipla dos motores.

Novamente o ponto de corte na segunda linha não tem explicação.

Note que o corte na primeira linha segue um padrão. Só o da segunda não faz sentido.

[editado] Graças ao Roberto, que se deu ao trabalho de contar os caracteres, pude identificar esse como sendo o famigerado “60 chars bug”. Notem que a soma dos caracteres exibidos nas duas linhas não passa de 60. Esse bug já vem sendo documentado pelos hackers do MT13x9 desde 2004, por isso existe uma chance de que possa ser consertado.

Se a primeira linha tiver 60 caracteres ou mais, a segunda nem sequer é exibida.

Kenshin Battousai também notou que a primeira linha sempre é cortada com menos de 40 caracteres.

[12/07] Esse problema já foi corrigido desde as primeiras versões do firmware eneris. E também foi corrigido na nova versão oficial da Proview.

Mais sobre o suporte a legendas externas do DVP-858

  • Tem o bug das legendas que desaparecem rápido demais, o “subtitle timing bug”. Isso só está corrigo nos firmwares alternativos;
  • Ignora capitalização ao buscar o nome da legenda;
  • Se houver mais de uma legenda no mesmo diretório e elas começarem exatamente com o mesmo texto, o aparelho pode carregar todas achando que são do mesmo filme. Isso depende do comprimento da parte idêntica dos nomes;
  • Carrega a legenda mesmo que a extensão esteja errada;
  • Suprime as tags de itálico;
  • Não tem o bug das quebras de linha SUB;
  • Suporta legendas com quebra de linha UNIX, mas apenas se for SUB

Você pode minimizar o problema com as legendas se usar legendas embutidas DMF.

USB

Para ativar um dispositivo USB qualquer é necessário apertar a tecla USB do remoto. Simplesmente inserir não é suficiente, mesmo que não haja disco no loader.

Já o oposto é automático. Ao retirar o dispositivo USB ou cartão, qualquer disco no loader é iniciado.

HDDs alimentados pela porta USB

O DVP-858 não suportou meus HDDs de notebook na porta USB. Eu testei quatro HDDs diferentes em quatro cases com três chipsets diferentes. Nenhum deles funcionou. Em um caso o LED do case acende, mas o HDD nem tenta decolar. Em outro caso o HDD fica “batendo cabeça” mas não decola. Em todos os casos o problema é o mesmo: o HDD nem sequer decola.

HDDs usados no teste:

Hitachi Travelstar IC25N040ATMR04-0 4200rpm 5V / 1A 40GB
Toshiba MK6015MAP 5V / 0.7A 6GB
Hitachi HTS428060F9AT00 4200RPM 5V / 0,5A 60GB
Hitachi Travelstar IC25N030ATCS04-0 4200rpm 5V / 1A 30GB

Eu repeti o teste no Philips DVP5960 e apenas o HDD Toshiba funcionou.

[editado] Isso ocorre muito provavelmente porque o DVP-858 não fornece energia suficiente para o HDD. Isso poderia ser contornado por um mod de hardware, mas talvez não valha a pena ter esse trabalho, enquanto não for resolvido o próximo problema:

HDDs USB com alimentação própria

[12/07] Eu ainda não refiz esse teste desde que saiu a versão 20.07 do firmware.

Mesmo sem depender da fonte interna, o DVP-858 tem problemas para lidar com HDDs na USB. Quando o HDD é conectado, exibe imediatamente a indicação “USB” na tela, mas se o disco tiver conteúdo válido, depois que você aperta o botão USB no remoto o DVP-858 fica aparentemente congelado por algum tempo:

  • Para um HDD de 20GB com 3 arquivos: 20s
  • Para um HDD de 20GB com 505 arquivos: 27s
  • Para um HDD de 20GB com 4657 arquivos (373 pastas): desisti após esperar 20 minutos (duas vezes) com a mensagem “esperando” na tela e descobri que tinha travado. O mesmo HDD, no mesmo adaptador, ficou acessível em menos de 1 segundo no DVP5960;
  • Para um HDD de 120GB com 2249 arquivos variados: 3m45s

Como se vê acima, o tempo depende da quantidade de arquivos no disco, mas não apenas disso. O tipo de arquivo e a organização no disco pode interferir, porque a diferença de tempo entre 505 arquivos e 2249 arquivos foi muito grande.

E, no mínimo, a espera é de 20 segundos.

Se o disco estiver formatado com NTFS, ou em FAT32 mas sem nenhum arquivo válido, exibe a mensagem: “Disco s/ suporte”.

Testei com um HDD de 120GB com duas partições FAT32. Aparece “USB” na tela, teclar USB no remoto faz o display do aparelho piscar mas aparentemetne nada acontece. Se você esperar, verá a mensagem “esperando” na tela, mas não consegue acessar nenhuma das partições. Depois de algum tempo o display do aparelho acusa “No Disc”.

No meu teste, não fez diferença se o HDD estava configurado como Master ou Slave, mas isso pode depender exclusivamente do adaptador usado.

Só por curiosidade, testei um drive de DVD IDE no adaptador USB-IDE, mas este não foi reconhecido.

Leitores de cartão na porta USB

O DVP-858 tem seu próprio leitor de cartões, mas não suporta todos os tipos de cartão do mercado e de qualquer maneira eu precisava saber se havia alguma diferença com relação aos outros aparelhos com USB mas sem leitor de cartões.

No fim, constatei que o funcionamento e a compatibilidade reproduziram o resultado do meu teste com o Philips DVP5960. Se você já leu o resultado do meu teste com ele, pode pular essa parte, porque é idêntica.

Nos meus testes, usei os seguintes cartões:

  • CompactFlash (CF) de 128MB
  • Secure Digital (SD) de 1GB
  • Secure Digital (SD) de 2GB
  • Multimedia Card (MMC) de 16MB
  • Memory Stick (MS) de 16MB
  • USB 1.1;
  • Vendido como “6 in 1 card reader” da Dazzle, mas aparece como “eUSB Orca Quad Reader” no XP. Se você procurar essa expressão no Google irá encontrar vários clones;
  • OK com cartões SD-2GB, SD-1GB, MMC-16MB, CF-128MB e MS-16MB.
  • USB 1.1;
  • Aparece como quatro drives no XP, apesar de ser fisicamente apenas um leitor MMC/SD, sem requerer drivers próprios;
  • Reconheceu meus cartões: MMC-16MB, SD-1GB e SD-2GB.
  • Desnecessário, porque o DVP-858 tem leitor SD próprio;
  • Modelo “UCR-61SCB“;
  • Somente o meu cartão CF-128MB funcionou.

Suporta nomes longos na USB. São exibidos tantos caracteres quanto couber no frame esquerdo do browser (uns 16), mas sob circunstâncias ainda não esclarecidas, ele às vezes trunca o nome do arquivo ou pasta para o formato xxxxxxx~x.

Outro problema é que às vezes o arquivo simplesmente não aparece na lista.

[12/07] Aparentemente esse truncamento não ocorre mais na versão 20.07, mas arquivos continuam sumindo.

Como comparação, o Philips DVP596x sempre exibe no formato xxxxxxx~x, que só tem 6 carateres úteis;

ZOOM

Sempre avisando a quem não me conhece ainda: Eu não uso zoom e acho que assistir a um filme com zoom ativado é uma heresia 🙂

É importante ter em mente que eu fiz esses snapshots com uma placa de captura, que não tem overscan. As barras pretas que você vê aqui são maiores do que as que normalmente aparecem em uma TV com overscan.

O zoom em DVD-Video tem o problema de não ocupar a tela toda e ainda exibir uma guia de Pan&Scan

[14/06] Jmaraujo chamou minha atenção para o fato de que esse é um problema do filme e não do aparelho! Eu testei o mesmo filme no Philips DVP3040K e no Lenoxx DV-406 e o problema é o mesmo.

Imagem original em widescreen
Zoom 2X. Até aqui, nada de anormal. Perceba que a distância do topo da cabeça até a margem superior parece a mesma.
Zoom 3X. Opa! Ainda há espaço na tela, mas está cortando na altura também!
Zoom 4X. A faixa de imagem permanece do mesmo tamanho e mais imagem é perdida.
Note que o aparelho tem Zoom Out, mas como é costume na maioria dos DivX players este é exagerado e tem níveis completamente inúteis.

1/2x pode ser útil para contornar o problema de Overscan (embora seja um exagero), mas para que os níveis 1/3x e 1/4x?

Já no caso de .avi/.mpg, o zoom funciona como esperado.

Imagem original em widescreen
Zoom 2X.
Zoom 3X. Nesse nível já existe perda na altura se sua TV fizer overscan.
Zoom 4X. Este nível tem um claro desperdício de imagem na altura.
Apesar da guia de pan&Scan não ser exibida para avi./.mpg, as teclas de direção do remoto também movem a imagem.

O Zoom Out funciona do mesmo jeito que em DVD-Video.

Nos dois casos, a mensagem de zoom permanece na tela até o zoom ser desativado. Isso pode ser mudado alterando o firmware.

[12/07] Desde as primeiras versões do firmware eneris já é possível se livrar tanto da guia de Pan&Scan quanto do ícone do zoom (desaparece após alguns segundos);

O SETUP

O setup do DVP-858 é o de maior número de opções de configuração que eu já vi em um aparelho desses. Eu não vou abordar cada uma das opções aqui, até mesmo porque metade do manual é sobre o setup. Só algumas que vale a pena destacar.

Última memória (esta opção não aparece no manual)

Esta opção aparentemente funciona apenas com DVD-Video. Se estiver ativada, mesmo que você ejete o disco ou desligue o aparelho, ao colocar o disco de volta ou ligar o aparelho a execução começa do ponto onde parou. Mas só funciona para um disco: o último.

A opção no setup. No manual aqui está a opção “restaurar”. Se a opção estiver ligada, o aparelho avisa com esta mensagem ao reiniciar o DVD-Video

SPDIF e HDMI : O bug

Esse problema só afeta quem tem TV Progressive Scan e receiver com entrada digital.

Mesmo que você configure a saída SPDIF do aparelho para RAW, todas as vezes que você usar a tecla HDMI e passar por 480p, o áudio automaticamente passará a PCM. A passagem pelos outros modos não afeta o áudio durante o uso do aparelho, mas se você desligar o DVP-858 com o aparelho configurado para qualquer coisa que não seja 480i, quando ligar o aparelho a configuração estará resetada para PCM novamente.

Ou seja: se você tem um TV Progressive Scan e um receiver digital, vai ter que configurar o áudio todas as vezes que ligar o DVP-858

[12/07] Esse problema foi corrigido na versão 20.07 do firmware oficial.

DTS

O logotipo DTS Digital Out está presente na caixa e no manual, mas o aparelho não passa o áudio para a saída digital (DTS Passthrough). A Proview já está ciente desse bug porque já recebeu inúmeras reclamações a respeito. Estamos aguardando por um novo firmware que corrija isso.

[12/07] Esse problema foi corrigido na versão 20.07 do firmware oficial. Agora o DTS Passthrough funciona

Para mim é irrelevante porque eu não noto diferença entre Dolby Digital e DTS. Isso depende do seu ouvido e do seu equipamento.

É importante salientar que a licença “Digital OUT” só permite passar o áudio inalterado para a saída digital do aparelho, para que seja decodificado em um receiver compatível com DTS. O aparelho não pode e não poderá, mesmo depois de uma atualização oficial de firmware, decodificar DTS e jogar para as saídas analógicas, porque isso requer pagamento de mais royalties à DTS. Para ter suporte a decodificar DTS, o logotipo exibido deveria ser este:

Um problema relacionado mas à parte é o fato de que AVIs com áudio DTS são explicitamente não suportados. Acusa “Codec de Audio não suportado” e o filme roda sem som. Não há nenhuma garantia de que ativar o suporte DTS Digital Out no firmware resolva esse problema também. São problemas distintos.

[12/07] O novo firmware 20.07 também trouxe suporte a AVIs com áudio DTS.

Firmware

O firmware original, versão 20.06, extraído por mim via cabo serial, está aqui.

O firmware tem vários bugs bestas, provocados por desleixo, como a corrupção de vários ícones. Um deles é o ícone para arquivos 3gp. Se você entrar em uma pasta que tenha um arquivo 3gp, o aparelho se atrapalha ao tentar exibir o ícone corrompido e coisas estranhas aparecem na tela, como na imagem ao lado. Esse problema é fácil de resolver editando o firmware.

[12/07] No dia 2 de julho a Proview lançou um firmware corrigindo vários bugs:

Versão oficial 20.07

  • Agora com DTS passthrough e suporte a DTS em AVI;
  • Aparentemente vários bugs da USB foram corrigidos. Dispositivos que antes não eram reconhecidos, como iPODs, agora são. Mas ainda existem bugs;
  • Corrigido o “60 chars bug”;
  • Agora a legenda “de fábrica” já tem um contorno;
  • Quebra de linha automática nas legendas externas. Mas sem nenhum respeito por regras de divisão silábica. E como existe um limite máximo de três linhas na exibição de legendas, se a primeira linha quebrar, a segunda (se houver) não poderá quebrar e será cortada;
  • Corrigido o bug da saída SPDIF passando sozinha para PCM

A Proview conseguiu se distinguir de quase todos os outros fabricantes ao liberar este firmware. A empresa tinha uma obrigação legal de corrijir o problema do DTS, mas não com os outros problemas. Fabricantes maiores como a Samsung e a Philips tem um histórico de dar muito menos atenção ao consumidor e demorar muito mais tempo para apresentar soluções, quando apresentam alguma.

Mas continuam os problemas de corrupção de ícones e, não sei o motivo, a Proview mexeu no banco de linguagem e piorou diversos textos exibidos no OSD.

BUG: na versão 20.07, se você deixar um AVI (não acontece com DVD-Video) pausado, depois de 35 minutos o aparelho vai desligar automaticamente (até aí, normal), mas ficará travado exibindo a mensagem OFF no display. Para destravar é preciso desligar da tomada. Não adianta desligar a Proteção de Tela no Setup. O problema não pôde ser reproduzido na versão 20.06. Esse problema ainda não pôde ser corrigido nos firmwares alternativos.

[22/07] O problema também se manifesta se você colocar um MP3 para tocar, colocar em pausa e desligar o aparelho. Não é preciso esperar 35 minutos.

[09/08]Senhas para os menus ocultos

Para ver a página de versão

  • Tecle SETUP 9596

Para acessar a página de mudança de região

  • Tecle SETUP
  • Vá até a página de Preferências
  • Tecle 8343

Firmware Alternativo

Desde antes da Proview lançar sua correção, já vinham sendo lançados firmwares alternativos corrigindo problemas. Neste momento eu estou trabalhando na criação de novos menus com opções de cor e altura para as legendas, entre outras coisas. Os novos firmwares baseados na versão oficial 20.07 corrigem vários problemas deixados (ou criados) pela Proview.

Você pode ver algumas das versões já disponíveis aqui. ou seguindo os links abaixo:

Lista das mudanças e aperfeiçoamentos dos firmwares alternativos:

  • O ícone do Zoom agora desaparece após três segundos (eu não aprovo isso, mas muita gente se incomoda com o danado);
  • Guia de Pan & Scan removida;
  • Mudança na posição vertical das legendas;
  • Agora legendas com contorno (deixou de ser importante com a versão 20.07);
  • Opção de cores para a legenda (branca ou amarela) e de até oito fontes, selecionáveis pelo menu do setup;
  • Escolha de região no menu do setup;
  • Agora a fonte do browser é independente da fonte das legendas;
  • Agora não é mais necessário que a cor da fonte no browser seja o inverso da cor da fonte nas legendas;
  • Indicador de volume movido para o canto superior esquerdo (necessário por causa da mudança nas legendas);
  • Mais caracteres exibidos no browser (até 23). O firmware oficial exibe até cerca de 16;
  • Corrigidos os ícones corrompidos;
  • Image Preview desligado (ou ligado, depende da versão);
  • Novas imagens de fundo;

[22/07] A versão 2.2 do firmware eneris faz o desligamento automático da mensagem de tempo decorrido ao executar um AVI, sugerida por evb62 e confirmada por mim;

Tenha em mente que o firmware alternativo “herda” todas as virtudes e problemas do firmware oficial em que ele se baseia. Você precisa ler a lista de novidades publicada com cada firmware para saber que problemas foram corrigidos e quais possivelmente (e sabidamente) foram criados pelo firmware alternativo. Não desperdiçe seu tempo e o do desenvolvedor perguntando se o problema “tal” foi corrigido. Se não está nas listas (incluindo as listas publicadas com as versões anteriores), ninguém fez!

[09/08] Firmware eneris v3

[informações e download]

A primeira coisa a chamar atenção no novo firmware é a escolha de imagens, de muito bom gosto, feita por eneris.

Eneris adotou os ícones de Laza Design, que eu já tinha usado na versão A do meu firmware experimental.

E incorporou as melhorias demonstradas por mim no meu firmware experimental e explicadas aqui. A única diferença visível é que ele escolheu fontes diferentes para as posições 1 e 2.

Com o mtkremaker você pode mudar qualquer uma das oito fontes por uma fonte à sua escolha. Veja meu tutorial.

O problema dos endereços de eeprom

Isso só afeta o meu firmware experimental e o eneris v3.

Do meu texto sobre meu firmware experimental:

Agora, além do endereço EEPROM 0x06 (Country Region) estou usando irregularmente o 0x71 (Dolby Pro Logic);

Para armazenar as opções do usuário, é preciso usar a memória eeprom do aparelho. O problema é encontrar endereços que já não estejam sendo utilizados e que funcionem (são dois problemas distintos). Como demos ao DVP-858 a capacidade de selecionar fontes e cor das legendas, precisamos de dois endereços. O “atalho” foi usar os dois endereços pouco usados (pelo menos por mim eles não são) que armazenam as opções de “Dolby Pro Logic” e “Country Region”. Essa limitação que criei foi mantida no firmware eneris, porque ele também não conseguiu encontrar opções melhores.

O efeito colateral disso é que você não vai poder usar Dolby Pro Logic (não confundir com Dolby Digital, porque é algo completamente distinto) ao mesmo tempo que assiste a um filme MPEG4 com legendas externas. Porque toda vez que mexer na configuração de um, vai bagunçar a configuração do outro. No caso de “Country Region” eu não creio que seja uma opção importante (tem relação com Parental Guidance, que eu acho que nem mesmo é usada no Brasil).

Quando eu incorporar as opções de fixar ou não a mensagem de ZOOM e posicionamento das legendas pelo menu, a coisa vai ficar ainda mais complicada.

Como instalar o firmware

O DVP-858 pôs vários outros aparelhos no chinelo nesse quesito. É o primeiro aparelho que eu conheço a aceitar o arquivo de upgrade em um pen drive ou cartão de memória. Outros aparelhos, mesmo com porta USB e leitor de cartões, continuam exigindo que o arquivo esteja em um CD;

Para atualizar, simplesmente nomeie o arquivo “MTK BIN” (ou MTK.bin) e grave em um CD com o rótulo “MEDIATEK”. Se for usar pen drive ou cartão o rótulo não é necessário.

A partir deste ponto, você pode seguir o procedimento genérico de upgrade Mediatek;

Ao instalar por cartão/USB, você pode ter um pequeno problema: ao apertar a tecla USB/Card do remoto o conteúdo do cartão é exibido, em vez da tela de upgrade. Para contornar, basta apertar rapidamente o botão USB/Card voltando para o loader e em seguida para o cartão.

Diversos

Esta seção é um rascunho.

  • Tem o mesmo bug de áudio identificado em alguns firmwares do DVP5100;
  • A aparelho tem Time Search/GOTO. Para acessar a função, basta apertar duas vezes o botão GOTO;
  • Se o arquivo não tiver áudio dá a mensagem “Esse arquivo não tem áudio”;
  • [27/08] Se não sair som na sua TV quando usando HDMI, experimente configurar o SPDIF para PCM;
  • Alguns aparelhos fazem um ruído mais alto que o normal ao abrir e fechar a bandeja. Isso ocorre porque a bandeja arrasta na fenda;
  • Se tiver GMC de 3 pontos dá a mensagem “Video GMC não suportado”;
  • Tem o bug dos nomes de pasta com ponto. Tudo após o último ponto não será exibido;
  • Se o aparelho estiver em um processo de LOAD e você entrar no setup, quando o processo acabar você vai sair do setup automaticamente;
  • Sempre exibe o indicador de tempo decorrido ao iniciar um DivX. Se isso te incomoda você precisa desligar sempre com a tecla display;
  • [12/07] Testei com legendas com nome de arquivo até 70 caracteres e houve a carga.
  • Tem indicador de tempo restante;
  • [22/07] Tanto na versão 20.06 quanto na versão 20.07 o firmware não exibe corretamente o número de canais de áudio em um AVI com áudio AC3 quando apertamos a tecla audio. Sempre exibe “AC3 2CH” mesmo que o filme tenha mais canais de áudio. Mas o aparelho passa o áudio corretamente para o receiver (não testei nas analógicas, mas como ninguém reclamou até agora…);
  • Um usuário do HTFORUM reportou que o controle remoto interfere com o CCE HT-3100;

Solução de Problemas

Esta seção é experimental e se baseia em informações do review

Sem imagem na saída YPbPr – Aperte o botão Video do remoto até a imagem aparecer. Você só tem imagem em YPbPr quando o setup está em YUV ou RGB e o controle remoto faz isso por você;

Leu tudo com atenção e ainda tem uma dúvida? Use o blog ou a seção de comentários desta página (preferível).

Esta página usa a biblioteca javascript freeware overlib

Esta página foi visualizada vezes desde desde 13/06/2007

Firmware MT13x9

Editando Firmwares Mediatek : O ícone do ZOOM

Texto publicado em 07/06/2007

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:

  • Considero que assistir qualquer coisa com o zoom (IN) ativado é um sacrilégio 🙂
  • Meu cérebro filtra imagens estáticas na tela. Depois de um curto intervalo de tempo eu deixo de notar a mensagem.

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:

  1. Expanda a árvore até selecionar Language 1 (00);
  2. Clique na primeira mensagem e depois com as setas do teclado vá rolando as mensagens até…
  3. … o ícone que representa o zoom ser exibido na seção inferior. Esta mensagem é a mensagem de zoom.

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

Esta página foi visualizada vezes desde desde 07/06/2007

DivX Players

Review Philips DVP5960 e DVP5965K

Review publicado em 24/04/2007

Este review foi realizado com um DVP5960/37, vendido nos EUA. As diferenças conhecidas entre este aparelho e o DVP5965K, vendido no Brasil, são as seguintes:

DVP5960/37 DVP5965K/55
Loader bandeja slot
Alimentação 110V 110~220V (automático)
Karaokê Não Sim

O aparelho foi enviado para mim por Fernando Pires, de São Paulo, para recuperação do firmware. Chegou com o laser DVD pifado. Por isso para que esse review pudesse ser realizado eu precisei localizar um substituto. Com meus testes, descobri que tanto o Philips DVP5100 quanto o Lenoxx DV-406 tem pickups inteiramente compatíveis. Isso está sendo discutido com o jmaraujo neste tópico do meu fórum.

Este aparelho tem HDMI, mas neste review eu não vou testar esse recurso porque não tenho uma TV compatível!

Como em todos os meus reviews, é imprescindível consultar a Tabela Comparativa para ficar ciente da maioria dos meus testes no aparelho. Eu não vou repetir aqui o que coloquei na tabela a não ser que seja relevante.

  • Manual do Usuário em Inglês;
  • Manual de Serviço;
  • Pasta no site de suporte, onde você vai encontrar fotos publicitárias, manuais e firmware original.

Algumas palavras que vou usar no texto e podem confundir você

  • OSD: On Screen Display – Sistema de mensagens que são exibidas na tela; Inclui o menu de setup.
  • Browser – o menu onde se escolhem arquivos;
  • HDD – O que a maioria das pessoas chama de “HD”. Disco rígido.

POR DENTRO

A fonte não parece ter nada de especial, embora teoricamente ela deva ser capaz de suprir pelo menos 500mA a mais que uma fonte “normal”, por causa da porta USB. Eu precisaria ver a fonte de um DVP5965K para poder determinar se seria fácil converter o DVP5960 para 110/220V. No mínimo, é necessário trocar o fusível, dois varistores e o grande capacitor eletrolítico. O coração da fonte é o CI Fairchild FSDH321, que trabalha com até 230V x 17W e que aparentemente também é usado no DVP3040.

A fonte é também fisicamente parecida com a fonte do Philips DVP5100 e fornece as mesmas tensões, embora os componentes (em especial o CI controlador), sejam diferentes. Como até o conector é o mesmo, pode ser que seja possível substituir uma fonte de DVP5960/DVP5965 por uma fonte de DVP5100 com mínimo esforço, sempre lembrando da variável do consumo da porta USB. Mas o FSDH321 tem proteção contra sobrecarga, assim como o CI do DVP5100. E o problema pode ser minimizado se você não usar o loader ao mesmo tempo.

Abaixo, a placa CPU. Passe o mouse para mais informações. Clique na imagem para abrir uma muito maior, com 2332×2280 (500KB), onde é possível ver toda a placa em detalhes.

Memória EEPROM 24LC16B

Além do CI MT1392, responsável pela HDMI, ainda existe uma memória eeprom a mais, que é usada por ele.

Porta USB

O slideshow com música de fundo funciona inclusive pela USB.

Apesar do que o manual sugere (os manuais Philips são notóriamente incorretos) é possível executar filmes pela USB.

Se não houver disco no loader, o aparelho abre o que estiver na porta USB. Se houver disco, acesse a USB apertando a tecla USB no remoto.

Se o seu dispositivo USB for “múltiplo” e for reconhecido assim pelo DVP5960, ele te dará a opção de alternar entre as mídias disponíveis. Basta para isso apertar repetidamente a tecla USB.

Na imagem acima, note que “USB” e “2” estão destacados, indicando que é o dispositivo USB2 que você está visualizando no browser.

Em algumas situações, o aparelho vai solicitar que você aperte a tecla USB para ativar o dispositivo

Não suporta a exibição de nomes maiores que oito caracteres pela porta USB. Todos são truncados com sufixo “~x” (na prática, seus nomes longos ficam com seis caracteres úteis), seguindo as regras de compatibilidade do sistema de arquivos FAT32.

Aparentemente isso se deve ao fato de que a Microsoft detém uma patente necessária para o acesso a nomes longos em FAT32.O hacker New Age (também conhecido como “Cherry” e “NA”) já estudou a possibilidade de dar suporte a nomes longos via USB e constatou que embora possível, não é fácil, como explicado aqui.

Tenha em mente as seguintes “regras” de compatibilidade da porta USB:

  • Nem todo dispositivo vai ser reconhecido. Até mesmo um dispositivo que é imediatamente reconhecido pelo Windows XP sem instalação de drivers pode ser completamente ignorado pelo DVP5960;
  • Se seu dispositivo é múltiplo e só uma parte dele é reconhecida pelo XP sem precisar de drivers, então só essa parte tem chance de ser reconhecida pelo DVP5960;
  • Se seu dispositivo é alimentado pela porta USB, a porta do DVP5960 pode não ter energia suficiente para alimentá-lo. Isso é especialmente verdade com cases USB para HDDs de notebook, mas dificilmente vai acontecer com um pen drive. Tenha em mente que a máxima capacidade de fornecimento de uma porta USB dentro do padrão é 500mA (2,5W em 5V).

Leitores de cartões

Apesar do DVP5960 não ter nenhum leitor de cartão, isso não chega a ser um problema, porque você pode usar leitores de cartão USB nele.

Nos meus testes, usei os seguintes cartões:

  • CompactFlash (CF) de 128MB
  • Secure Digital (SD) de 1GB
  • Secure Digital (SD) de 2GB
  • Multimedia Card (MMC) de 16MB
  • Memory Stick (MS) de 16MB
  • USB 1.1;
  • Vendido como “6 in 1 card reader” da Dazzle, mas aparece como “eUSB Orca Quad Reader” no XP. Se você procurar essa expressão no Google irá encontrar vários clones;
  • OK com cartões SD-2GB, SD-1GB, MMC-16MB, CF-128MB e MS-16MB.
  • USB 1.1;
  • Aparece como quatro drives no XP, apesar de ser fisicamente apenas um leitor MMC/SD, sem requerer drivers próprios;
  • Reconheceu meus cartões: MMC-16MB, SD-1GB e SD-2GB
  • USB1.1;
  • Supostamente é da SOYO. Não há designador de modelo. Fabricado para uso em uma baia de floppy do gabinete, mas facilmente adaptável para uso externo.
  • Aparece como quatro drives no XP, mas apenas a entrada CF funciona com o driver genérico do XP (que aparece como “IC-USB Storage-CFC”). Para ter acesso aos outros slots é preciso instalar o driver específico;
  • Somente o meu cartão CF-128MB funcionou.

Por sorte, a lista do que funciona parece ser maior do que a do que não funciona. Veja aqui

Outra coisa que você precisa ter mente é que ao retirar um cartão do leitor, o DVP5960 vai imediatamente verificar se existe um disco no loader. Você nota porque a mensagem “loading” aparece na tela quando você puxa o cartão. Se você inserir outro cartão neste intervalo, ele poderá não ser reconhecido. Aguarde a mensagem “No disc” aparecer na tela.

HDDs USB

Para ligar um HDD na porta USB deste aparelho, valem as mesmas regras que para quase todos os outros players com porta USB do mercado:

  • Se o seu HDD USB for alimentado pela porta USB (não tem fonte própria), o que ocorre geralmente com cases USB para HDD de notebook, pode não funcionar porque o DVP5960 pode não ser capaz de fornecer a energia necessária. Tenha em mente que o DVP5960 tem apenas uma porta USB e portanto o artifício de conectar o case a duas portas não vai funcionar aqui. Se o aparelho desligasse a porta USB completamente enquanto o loader estivesse sendo usado e vice-versa, isso não seria problema, mas pelo menos no DVP5960 tanto o loader quanto o HDD de notebook alimentado pela USB ficam energizados ao mesmo tempo, quando você está usando o loader. Se quiser reduzir o estresse na fonte, desconecte o HDD USB quando não estiver usando;
  • A formatação precisa ser FAT32. No DVP5960 uma partição NTFS sempre aparecerá como vazia;

Se você usa Windows XP e seu HDD for maior que 32GB poderá ter dificuldades, porque o XP só formata drives maiores que 32GB em NTFS, mas essa não é uma limitação da FAT32. Eu uso HDDs de 40 a 160GB e todos são formatados com FAT32 (não sou fã de NTFS).

Se houver mais de uma partição, apenas a primeira aparecerá.

Para formatar uma unidade maior que 32GB como FAT32:

  • 9x – Para discos até 137GB, atualize o FDISK, porque ele não sabe lidar com drives maiores que 64GB. Drives maiores que 137GB não são suportados;
  • 9x, 2K, XP – Você pode usar o Partition Magic;
  • 9x, 2K, XP – Você pode usar o freeware Swissknife;
  • 9x, 2K, XP – Você pode usar o freeware Avel LinkFormatter. Este é o meu preferido para esta aplicação porque formata direto pela USB (e apenas por ela), é rapidíssimo, tem apenas 112KB (ZIP) e não requer instalação. Porém só faz uma partição.

Controle Remoto

O remoto é o RC-2012 (confirmado pela etiqueta)
Compatibilidade com remoto DVP642/DVP5100
Pause não funciona, mas é porque o DVP5960 usa o botão Play como Pause também, o remoto não tem botão específico.

Angle não funciona.

A tecla Mute do DVP642 equivale à tecla USB do DVP5960. Assim, você pode comandar inteiramente um DVP5960 com o controle remoto do DVP5100 e ainda sobram teclas.

Apesar do DVP5960 não ter Karaoke, o aparelhos responde às teclas Karaoke e Vocal do remoto com mensagens na tela.

Firmware

Procedimento para saber a versão do firmware instalada.

  • Aperte [setup]
  • Estando na página General, digite 1379

É mais ou menos isto que deve aparecer. Note que o primeiro número de “version” é o número do sub-modelo. No caso, DVP5960/37.

O firmware mais recente no site da Philips para o DVP5960/37 é a versão 37.06.42.29. O ZIP é datado de 29/01/2007 e o .bin é datado de 10/08/2006.

A Philips também tem um modelo /37b no site, mas o firmware é exatamente o mesmo.

Diferenças entre o firmware do DVP5965K/55 e o DVP5960/37

Eu comparei os firmwares seção por seção via CRC32 e encontrei o seguinte:

  • ARM – O mesmo;
  • 8032 – Todos os seis blocos são diferentes;
  • OSD – Diferença nos blocos “Language” e “Font”

Procedimento para mudança de região (Region Hack)

  • Abra a bandeja;
  • Aperte [setup];
  • Vá até a página Preference;
  • Digite 138931

A região atual é exibida na tela. Mude com as setas para cima e para baixo. 0=todas.

Procedimento de RESET

Isto carrega as configurações de fábrica para o modelo. Progressive Scan é desligado, a língua do OSD será o inglês e o sistema de vídeo será NTSC (DVP5960/37), entre outras coisas.

Quando ressuscitei o bicho, todo o OSD entrou em chinês (ou uma língua similar). Foi necessário localizar a opção de reset no menu com a ajuda do manual para fazer o aparelho exibir tudo em inglês. O procedimento é mais ou menos o seguinte.

  • Abra a bandeja;
  • Aperte Setup;
  • Vá até a página Preference (a quarta e última, antes da saída);
  • Com a seta para baixo, vá até o último item do menu. No meu menu isso requer apertar a tecla 9 vezes. Cuidado, porque o menu “rola” e você passa automaticamente para o primeiro item;
  • Aperte a tecla de seta para direita;
  • Aperte OK.

Se você estava no item certo, o aparelho deve ter carregado as configurações de fábrica e você saiu automaticamente do setup

Imagens diversas da tela

Tocando um CD Text. A mensagem “Reading Index” aparece às vezes quando você executa um AVI. A contagem vai até 100. Isso até agora só ocorreu com filmes com “non-square pixels”

Outras informações (esta seção é um rascunho)

Leitura da flash (EN29F002N) espantosamente rápida.

Só é necessário que o aparelho esteja plugado na tomada para que a comunicação funcione.

A Philips também tem um modelo /37b no site, mas o firmware é exatamente o mesmo.

Só liga pelo botão power.

Trava constantemente, quando você tenta mudar de diretórios (quando você dá OK nos “..”) ignornaod os comandos de seta e OKI, mas responde aoi EJECT e ao SETUP

Filmes com resolução acima da máxima acusam “Video Resolution Not Supported” e só roda o áudio.

Sem o loader, o aparelho acusa “Tray Error” e não funciona nem pela USB. É preciso pelo menos que o conector CN2 esteja no lugar. Isso pode ser facilmente simulado, entretanto.

Apesar da porta USB não ser 2.0, não cheguei a notar problemas sérios, mesmo com filme AC3 de alta bitrate. Mas eu notei algumas “travadas” rapidíssimas.

Só faz upscale pela porta HDMI. Para quem não tem HDMI, então, o 5960 é um DivX player com USB “normal”.

Se você não estiver obtendo audio DTS pela saída digital coaxial, certifique-se de que “Digital Output” esteja em “All”

Com o firmware do DVP5965 e o loader do DVP5100, não funciona de jeito nenhum. Mesmo que o loader já seja conectado com um disco inserido, este é ejetado. Se você tentar inserir, o loader começa a tracionar e pára completamente a 1/3 do curso. O aparelho fica o tempo todo exibindo “LOAD” no display e tentando focalizar um disco que não está lá. Aparentemente os sensores de dvp5965 são invertidos em relação com os do dvp5100.

Diferenças entre os loaders DVP5960 e DVP5965

A ligação do motor de tracionamento é invertida

Problemas com sensores Load/Eject, que devem ter acionamento completamente distinto.

Conexão de dados e controle do pickup é exatamente a mesma

Esta página foi visualizada vezes desde 28/04/2007.

DivX Players

DVD/DivX/MPEG4 Player : Samsung P366

Review publicado em 12/03/2007

Links

Sempre que for adequado farei comparações com outros aparelhos que eu também já analisei, incluindo o primeiro DivX player Samsung brasileiro: o P240K.

Agradeço ao meu amigo Júnior, por ter me emprestado seu aparelho novinho por semanas, para que eu pudesse realizar este review.

O resultado de meu teste com o P366 foi tão surpreendentemente ruim que eu acho que meu aparelho deve estar defeituoso. Eu juro que procuro os pontos positivos, gente. Mas parece que só nos monitores a Samsung consegue fazer as coisas direito.

Como de costume, você vai precisar consultar minha tabela comparativa para ficar a par de muita coisa que o aparelho pode ou não fazer. Dificilmente vou repetir aqui o que coloquei lá, a menos que haja algo importante a relatar, que não cabe na tabela.

Segundo este press release da Samsung, o P366 foi lançado em 18/04/2006 no mercado brasileiro.

O Manual

O manual tem uma tradução ridícula, incompatível com uma empresa do porte da Samsung. Já vi produto “no-name” com manual mais “legível”.

Infelizmente não havia um manual em inglês que eu pudesse olhar, porque chamar a proteção de tela (screen saver) de “protetor de mensagem” (pág.15) é o fim…

Pior: em uma mesma página (pág. 4), “Progressive Scan” é chamado de “leitura progressiva”, “busca progressiva” e “scan progressivo”. E as três versões estão erradas! O correto é “varredura progressiva”.

Como ler um manual assim me incomoda, eu não li. Por isso não sei se é informativo ou não.

O P366 por dentro

Close na placa CPU. O aparelho é baseado em um processador Zoran como é regra na Samsung. Desta vez é um Zoran Vaddis 882 (o P240K usa um Vaddis 778). Note como a placa aparentemente é a mesma usada para o modelo P260K, que não é vendido no Brasil.

Clique para ver em alta resolução (2389×2404 – 780K)

Estas são todas as saídas disponíveis. Só falta a saída de áudio 5.1 analógica, mas são raros os aparelhos que tem uma.
O display é de LED de 7 segmentos (o primeiro que já vi em DivX player). Apesar de bem limitado no número de informações que pode mostrar, é bem visível à distância.

Controle Remoto

Para você que sabe o que é LIRC / WINLIRC, eu montei este arquivo de configuração com todos os comandos desse remoto.

O problema do Remoto

O controle remoto poderia ser melhor. Enquanto os controles Philips e LG funcionam até apontados para as paredes (incluindo a parede oposta) ou o teto, o controle do P366 só funciona mais ou menos apontado para o aparelho (em certas posições aceita um ângulo de uns 45 graus), e mal. Muitos comandos falham e fica ainda pior por causa do problema da lentidão citado mais adiante.

Relatos que confirmam o problema:[1] [2] [3]

A maior parte do problema é causada por erro de posicionamento do sensor infravermelho.

O problema é que idealmente o sensor deve ficar tão próximo quanto possível da janela na fachada do aparelho por onde ele “vê”. Mas além de posicionar o sensor muito recuado, a Samsung ainda criou um “túnel” ao redor dele. Á direita, o display. À esquerda, o mecanismo de acionamento do botão OPEN/CLOSE.

O mecanismo de acionamento não é visível aqui porque ele fica montado na frente plástica do aparelho. Mas cria uma parede do lado esquerdo. Note como o display fecha a visão lateral do sensor

O efeito dos obstáculos é representado abaixo:

Esse é o ângulo horizontal de visão do sensor. Verticalmente não existem obstáculos extras, mas aí entra a pequena altura da janela transparente por onde o sensor enxerga. Daí o ângulo de visão vertical acaba sendo igual ao horizontal. O sensor do P366 enxerga através de um “funil”.

As alternativas

  • Se você usar o aparelho sem a frente plástica, o sensor só vai ter uma certa dificuldade para enxergar um sinal emitido diretamente pelo lado direito, por causa do display, mas passa a enxergar normalmente o sinal refletido em paredes ou no teto. No geral, o controle passa a funcionar como deveria. É claro que não é uma solução elegante.
  • Remover o sensor de onde está, conectá-lo à placa por três fios e colá-lo na janela transparente, por dentro. Se você usar três fios rígidos, poderá projetar o sensor à frente dispensando a cola e vai ficar mais confiável e limpo. Você vai precisar fazer mesmo um serviço limpo, porque vai precisar desmanchar e deixar como novo caso precise acionar a garantia.
  • Colar uma pequena lente plástica do lado de fora da janela, exatamente à frente do sensor, que faça a convergência da luz. Isso é apenas téórico, porque não sei onde conseguir ou como confeccionar tal lente. Você pode ter uma idéia do que estou falando observando a janela de um Philips DVP5100, onde apesar do sensor ficar bem próximo à janela, ainda existe uma lente moldada diretamente à sua frente..

Ejeção Manual

Em geral, aparelhos de CD ou DVD, seja de computador ou de mesa, dispõem de um recurso manual para ejetar o disco caso o aparelho de alguma forma não permita mais a ejeção motorizada. Assim você pode mandar o aparelho para a Assistência sem o seu disco ter que ir junto.

Em geral, os fabricantes tem o cuidado de colocar esse mecanismo acessível sem que seja necessário abrir o equipamento. Num drive de CD ou DVD ROM, por exemplo, o pequeno furo na frente do drive tem essa finalidade. Basta introduzir com firmeza e em linha reta um arame de clipe de papel pelo orifício que a bandeja do drive se abrirá. No caso dos DVD players de mesa o dispositivo de ejeção fica acessível por baixo do aparelho.

Nota: Tentar remover o disco puxando a bandeja vai quebrar alguma coisa. O fechamento da bandeja automaticamente trava o disco mecânicamente no motor principal. Só o procedimento correto vai abrir a bandeja sem quebrar nada.

Esse mecanismo é geralmente chamado de “Ejeção de Emergência”, mas no caso do P366 o termo mais adequado é “Ejeção Manual” mesmo. Não existe abertura visível sob o loader que permita a ejeção.

O dispositivo de ejeção só é acessível depois de uma desmontagem parcial. Você precisa remover a tampa metálica e a frente plástica para ter acesso à engrenagem:

Basta girar a engrenagem com o dedo no sentido da seta que a bandeja se abrirá.

Os LGs também não tem mecanismo de ejeção acessível externamente, mas os Philips costumam ter.

Firmware

Para saber qual a versão do firmware no seu aparelho, abra a bandeja e aperte info no remoto. A versão aparecerá assim:

062806.01.36iVXEXAZ

A primeira seqüência de números parece uma data: 28/06/2006. Eu presumo que o resto seja a versão: 1.36.

Como é regra no caso da Samsung, não existe atualização de firmware disponível para esse aparelho. Eu vejo muita gente ingenuamente declarar em fórums que vai comprar “tal” aparelho Samsung por causa da declaração formal que a empresa faz no manual a respeito de disponibilizar updates. No caso do manual do P366, está na página 29:

A Samsung normalmente oferece suporte à atualização de software para melhorar o desempenho desta unidade ao máximo, por meio do site da Samsung na Internet (www.samsung.com).

É difícil acreditar nisso, porque na prática a única ocasião em que a Samsung liberou um update para DivX player foi no caso do P240K e seu grave bug de acentuação. E isso porque o problema era tão grosseiro e evidente que qualquer comprador podia devolver o aparelho e exigir o dinheiro de volta alegando “vício de fabricação”. Isso ocorreu em fevereiro de 2005 e de lá para cá (dois anos) eu não vi mais nenhum update.

O manual até inclui uma explicação de página inteira de como fazer a atualização que não existe. Como qualquer possível atualização viria óbviamente acompanhada de instruções, colocar uma página inteira sobre isso no manual tem cheiro e cor de jogada de marketing.

Eu procurei hoje (12/03/2007) por updates para todos os DVD players de mesa listados no site da Samsung e o resultado foi o seguinte:

DVD-511/XAA Não
DVD-611 Não
DVD-HD841 Não
DVD-HD850 Não
DVD-HD860 Não
DVD-P240K Sim
DVD-P243N Não
DVD-P250K Não
DVD-P255K Não
DVD-P355K Não
DVD-P355KC Não
DVD-P366 Não
DVD-V4600 Não
DVD-VR300 Não

Ou os aparelhos Samsung são perfeitos…

Como é com outros grandes fabricantes:

  • A LG não disponibiliza firmware em seu site (até para disponibilizar um manual a LG age como se fosse um favor), mas os usuários geralmente se viram com firmwares alternativos;
  • A Philips já deve ter lançado uma dúzia de updates para os players DVP642, DVP5100 e DVP3040 nestes dois anos. Não resolvem muita coisa, mas os firmwares alternativos resolvem o resto.

Nenhuma das duas declara que “normalmente oferece suporte à atualização de software

Não existem firmwares alternativos para aparelhos baseados em Zoran Vaddis. Então você depende da (inexistente) boa vontade da Samsung.

É Incrívelmente lento na montagem dos menus e browser. A seqüência de duas imagens a seguir mostra o browser sendo desenhado após dar um STOP em um filme. Nunca vi nada parecido. Tenha em mente que eu não filmei isso para extrair os quadros. Eu simplesmente capturei essas duas imagens clicando no botão “snapshot” de minha placa de captura.

Primeiro a imagem escurece e o browser começa a ser desenhado na tela. O browser ainda está sendo desenhado e o background aparece.

O browser pronto.

Essa lentidão torna o uso dos menus do setup “quase” irritante.

Outras imagens da tela

A tela de abertura é exatamente a mesma do P240K O P366 aproveita melhor o espaço do browser que o Philips DVP5100 com firmware original. Cabem sete arquivos de uma vez contra quatro do Philips. Mas ainda assim há desperdício de espaço.
A Samsung é um dos poucos “grandes” que fabrica players com suporte a PAL-M.
Como de costume na maioria dos DVD players “S-Video” refere-se também a Video Composto (na prática o Video Composto é derivado diretamente do S-Video). E os modos I-SCAN e P-SCAN se aplicam somente à saída de Vídeo Componente
O P366 não tem carga automática de legendas. Se ele detecta a presença de algum arquivo na mesma pasta com uma extensão que sugira legenda, abre um menu para a escolha, mesmo que não seja mesmo uma legenda.

Desbloqueio de Região

Fonte: dvddemystifiziert.de

O procedimento da Samsung envolve digitar um código que é diferente para cada região possível. Assim se você tiver um aparelho região 4 e programá-lo com esse procedimento para a região 2, quando você quiser mudar a região novamente o código a digitar será outro. Tenha isso em mente para não se atrapalhar;

Eu poderia dizer que isso é “coisa de alemão” e criticar a Samsung por isso, mas desta vez não tem cabimento criticar a empresa. O procedimento de desbloqueio em tese nem deveria estar ao alcance dos usuários. Ainda mais ser fácil…

  • Ligue o aparelho sem nenhum disco;
  • Aperte o botão REPEAT por cinco segundos (nada aparecerá na tela); Nota: no meu teste, não foi necessário apertar por 5 segundos. Bastou que a mensagem “No Disc” desaparecesse da tela;
  • Digite a combinação correspondente à sua região atual conforme a seguinte tabela (em negrito, a região de fábrica):
  • Região 1 2, 9, 3, 3, 4
    Região 2 3, 8, 7, 6, 7 (ou 5, 7, 5, 3, 8)
    Região 3 5, 6, 7, 3, 2
    Região 4 7, 6, 8, 8, 4
    Região 5 5, 3, 8, 1, 4
    Região 6 2, 4, 4, 6, 2
  • O número da região aparecerá no canto superior esquerdo. Se não aparecer, ou você não seguiu o procedimento corretamente ou o aparelho não está configurado para a região que você imagina. Repita com cada um dos outros códigos até que um número apareça;
  • Aperte o botão correspondente à região que você quer dar ao aparelho (9 = liberar todas);
  • Aperte OPEN;
  • Desligue o aparelho;

Veja que existe um problema: Como não há código para a “região 9”, uma vez que você desbloqueie parece não haver meio de selecionar uma região novamente. Isso pode criar problemas com discos protegidos com a proteção RCE, que não tocam em aparelhos desbloqueados; Enquanto não for conhecido um meio de re-selecionar uma região, aconselho você a ficar alternando entre as regiões específicas que deseja e não fazer o desbloqueio.

O mesmo procedimento supostamente funciona também para os seguintes modelos:

Samsung DTB-D700F / DVD-709 / DVD-711 / DVD-811 / DVD-839 / DVD-909 / DVD-1010 / DVD-1011 / DVD-A500 / DVD-E137A / DVD-E137B / DVD-E138A / DVD-E138B / DVD-E232 / DVD-E234 / DVD- E235 / DVD-E237 / DVD-E317 / DVD-E335 / DVD-E337K / DVD-E338K / DVD-E435 / DVD-E437K / DVD-E537K / DVD-H40A / DVD-H40E / DVD-HD40 / DVD-HD745 / DVD-HD747 / DVD-HD748 / DVD-HD935 / DVD-HD937 / DVD-HD945 / DVD-HD948 / DVD-HD950 / DVD-HR720 / DVD-HR725 / DVD-M103 / DVD-M104 / DVD-M105 / DVD-M403 / DVD-MC20 / DVD-N504 / DVD-N505 / DVD-P142 / DVD-P144 / DVD-P241 / DVD-P243N / DVD-P245 / DVD-P249M / DVD-P250K / DVD-P255K / DVD-P347 / DVD-P350K / DVD-P355 / DVD-P433 / DVD-P450 / DVD-R100 / DVD-R120 / DVD-R121 / DVD-R122 / DVD-R125

ZOOM

O Zoom do P366 tem uma caracteristica única que não me lembro de ter visto em qualquer outro aparelho. Enquanto você estiver em ZOOM, as teclas esquerda e direita do remoto permitem que você desloque lateralmente a imagem, para que você veja o que você perde nas laterais.

23/03/07: Essa funcionalidade existe em outros aparelhos. Eu é que nunca havia notado.

Tirando isso, acho a implementação ZOOM do P366 irritante (ainda bem que eu nem gosto de zoom). Enquanto todos os aparelhos normais alternam entre os modos de zoom a cada vez que você aperta a tecla ZOOM do remoto, no P366 para entrar em modo ZOOM você tem que apertar a tecla ZOOM e dentro de três segundos apertar a tecla ENTER. Se conseguir apertar o ENTER no prazo (eu errei umas três vezes antes de pegar o jeito), pode alternar entre os modos de ZOOM: 2X, 4X, 2X e normal (ao chegar a 4X reverte). Se quiser continuar alternando terá que começar de novo, porque o ZOOM é cancelado automaticamente quanto você volta ao modo normal.

O ZOOM 4X do P366 equivale ao ZOOM 3X do Lenoxx DV-406

EZVIEW

4:3Pan&Scan: tem o mesmo efeito do Zoom de 2X Screen Fit. Largura do original e esticada na altura.
Zoom FIT. Tem o mesmo efeito do ZOOM de 4X

Resumo: Embora a Samsumg dê um nome próprio à coisa como se fosse algo especial, os divx players LG tem a mesma funcionalidade, e sem distinguir DVD-Video de MPEG4

Compatibilidade com mídias

Hoje (10/03/2007) estou testando ao mesmo tempo o Lennox DV-406, o Samsung P366 e o LG DK-194G. O Samsung é o único aparelho que está tendo problemas com meu DVD de testes, um DVD+RW arranhado que já foi gravado dezenas de vezes. A execução está com diversos problemas: “soquinhos” na imagem, breves interrupções, artefatos estranhos e a legenda do filme rapidamente sai de sincronismo. O mesmo disco e o mesmo filme rodam “lisos” no Lenoxx e no LG. Fui obrigado a gravar o filme em outra mídia para poder terminar o teste, porque mesmo usando a função GOTO eu não estava conseguindo chegar ao ponto que queria com a legenda ainda sincronizada.

Relatos que confirmam o problema: [1] [2] [3] [4] [5] [6] [7] [8]

Considerando que existem produtos similares do mercado (até entre os mais antigos) altamente tolerantes, ignorando sujeira e riscos completamente, eu acho que “gravar em outra mídia” não é solução aceitável.

Por exemplo, estas são declarações reais sobre o obsoleto Philips DVP624K:

  • “lê até CD de areia!”
  • “lê até tampa de goiabada!”

Legendas DivX Externas

Meu teste padrão de contraste

Para que você entenda como poderia ser, veja a mesma cena no Lenoxx DV-406 com firmware original:

E agora o LG DK194G com firmware original:

Para uma comparação mais extensa, veja minha comparação de legendas DivX.

Aqui um proprietário afirma que a legenda do P366 é exatamente igual à do P355K

Teste de quebras de linha

O P366 faz quebra automática de linha por volta dos 46 caracteres, mas como não suporta mais que duas linhas de legenda, se isso ocorrer e existir uma segunda linha para ser exibida, esta não aparecerá.

Testes feitos com o filme “The Second Renaissance, part I” baixado legalmente do site http://www.intothematrix.com/ em modo ZOOM de 4X para reforçar o teste de contraste (o filme é widescreen).

38
00:04:13,122 –> 00:04:17,751
Os manifestantes foram se encontrar
com os esquadrões das forças de defesa no centro do motim.

52
00:06:26,630 –> 00:06:31,218
As máquinas e sua inteligência artificial
puderam ser vistas em cada lugar da sociedade humana…

57
00:06:59,288 –> 00:07:04,126
….. a habilidade de sustentar um vôo
normal em um evento de falha múltipla dos motores.

Já a legenda abaixo foi “inventada” por mim.

Sabe, todo mundo acha que astrologia é um monte de bobagens.
E eu tendo a concordar em gênero, número e grau com eles!

Note a quebra mal feita e como a segunda linha está ausente.

Os exemplos parecem ser difíceis de ler? É porque a fonte é deficiente mesmo! Veja a diferença nos meus reviews do Lenoxx DV-406 e do LG DK194G.

A Seleção de Legendas Externas

A desnecessária limitação de 15 caracteres na exibição dos nomes de legendas cria situações complicadas quando você tem vários arquivos de nomes similares no DVD, como os episódios de uma série:

Qual a legenda certa? Perceba que há espaço para exibir mais de 40 caracteres.

E além das quatro que você está vendo, ainda existem outras nove. Todas com o mesmo nome de 15 caracteres. A tela rola automaticamente quando você chega à última. Eu testei com até 13 legendas no menu. Note que o mesmo problema vai ocorrer com um filme dividido em duas ou três partes na mesma pasta. E piora se cada parte tiver legendas em duas ou mais línguas (eu costumo gravar com legendas em inglês e português sempre que possível).

E ainda existem outras “características” que reunidas se tornam um desastre:

  • O único jeito de selecionar uma outra legenda no P366 é dar STOP e depois PLAY. O menu vai se abrir de novo para que você escolha outra legenda (apertar subtitle durante a execução só funciona com legendas embutidas). Um incômodo menor se as legendas forem poucas (duas ou três). Mas se você der STOP não para selecionar outra legenda, mas para ir até a cozinha, quando você voltar e der PLAY o menu vai se abrir de novo e você vai precisar saber qual a legenda correta. Nesse ponto você poderia imaginar “então eu uso PAUSE, ué…” mas os engenheiros da Samsung parecem ter previsto essa esperteza do usuário e o aparelho entra em STOP automático depois de 5 minutos de pausa. Você vai ter que se apressar…
  • O outro problema é que você tem 10 segundos para fazer a escolha. Se o tempo se esgotar e você ainda estiver contando legendas, a opção “OFF” será escolhida por você. O erro da Samsung aqui é que o timer deveria ser desligado quando o aparelho recebesse o primeiro sinal de que você está escolhendo ou que a contagem reiniciasse cada vez que fosse recebido um comando do remoto. Dessa forma você não seria pego de surpresa por um aparelho que parece achar que o tempo dele é mais importante que o seu.
  • Quando termina um filme o P366 inicia automaticamente o próximo (ou a segunda parte do mesmo) na mesma pasta. Se existirem legendas, ele abre o menu de seleção. É melhor que você esteja atento e seja rápido com o controle remoto, porque senão o filme vai começar sem legendas.

Com 13 legendas mais a lentidão no controle remoto, quase não dá tempo de chegar à 13a legenda antes do tempo acabar.

Nota: A tela de seleção também rola ao contrário. Logo se você sabe quantas legendas são, pode começar pela última e contar regressivamente.

Para contornar esse problema:

  • Usar legendas embutidas (DMF) – Preferível, já que resolve também os problemas de quebra de linha e legibilidade;
  • Use nomes curtos;
  • Coloque a numeração de temporada-episódio à frente do nome do seriado;
  • Divida o conteúdo em pastas

Nenhuma das opções ajuda se seu disco já está gravado. Em muitos casos você poderá não sentir o problema, porque várias séries atuais tem nomes bem curtos (Monk, Lost, Heroes, etc.).

Como eu acredito que é o aparelho que tem que se adaptar ao usuário e não o usuário que tem que se adaptar ao aparelho, fica muito difícil para mim sentir simpatia pelas idiossincrasias do P366.

Legendas DivX Embutidas (DMF)

Investigando o motivo de alguns usuários reportarem não conseguir que as legendas DMF sejam exibidas, eu fiz dois testes:

Com um filme de 25fps (PAL) montado no SuB2DivX

  • Ignorou o posicionamento horizontal – A legenda sempre fica centralizada, mesmo que você configure mais à esquerda ou mais à direita. Isso só seria um problema se o P366 não centralizasse corretamente, mas centraliza, por isso é irrelevante.
  • Legendas posicionadas em uma posição vertical “normal” não são exibidas porque o P366 se confunde e joga-as muito para baixo. Eu consigo ver a ponta superior delas na minha placa de captura, mas por causa do overscan de uma TV o usuário não vai ver coisa alguma. É preciso configurar uma posição mais para cima.

Com um filme de 23.976fps (NTSC) montado no SuB2DivX

  • Ignorou o posicionamento horizontal
  • Posicionamento vertical OK

Nota: O posicionamento vertical feito no AviSUB 1.8 não funciona em nenhum player. É um problema no software. Se o seu filme for PAL, use o Sub2DivX para posicionar as legendas.

Nota: O Philips DVP642 tem o mesmo bug, porém menos acentuado. Eu incluí esse teste na Tabela Comparativa (na seção de legendas DMF) para ser mais fácil encontrar os aparelhos que não tem o bug.

Eu testei o aparelho com um filme com uma legenda embutida (com o AVISUB) e uma legenda externa, para ver se ele “se perdia”. O P366 abre o menu perguntando se você quer carregar a legenda externa e mesmo que eu escolha “external subtitles OFF” a legenda embutida é exibida e para desligá-la é necessário usar o botão subtitle do remoto. Esse é o comportamento correto e esperado.

Outras Impressões

  • Quando fiz minha primeira conexão à minha CINEOS pelo cabo de Video Componente levei um susto: cadê a imagem? Então coloquei também um cabo de vídeo composto e a imagem apareceu na entrada correspondente da TV. Fui no setup do P366 e escolhi a opção I-SCAN. Aí sim a imagem apareceu na saída de vídeo componente e na saída de video composto. Deve ser o primeiro DivX player que testo a ter essa “frescura” de requerer as duas ligações para o setup inicial.
  • Ao sair de uma pasta volta para a raiz da anterior. Mesmo problema irritante dos LGs.
  • Só avança ou retrocede no máximo a 8X.
  • O avanço de 8X está mais para 3,5X. No meu teste o P366 levou um minuto para avançar apenas 3,5 minutos em 8X. Conclusão: é melhor usar o recurso GOTO para chegar aonde você deseja. Com o mesmo disco, LG e Lenoxx alcançam 11,5X reais.
  • Para tentar compensar o problema acima, use as teclas SKIP do controle remoto. Elas fazem o AVI avançar ou retroceder 5 minutos de cada vez.
  • Mas por causa desse uso peculiar das teclas SKIP, se você quiser pular para o próximo fillme tem que dar STOP para ir ao menu e selecionar o filme manualmente ou dar SKIP várias vezes para de cinco em cinco minutos chegar ao próximo filme.
  • Não exibe legendas DivX quando avaçando ou retrocedendo, mesmo a meros 2X;
  • Nem o avanço nem o retrocesso são fluidos. Ocorrem como se fosse um slideshow;
  • Carrega legendas com extensão incorreta;
  • Não tem o bug das quebras de linha SUB;
  • Liga pelos botões POWER, PLAY e OPEN/CLOSE, tanto do aparelho quanto do remoto.
  • às vezes, quando ligo pelo botão EJECT do aparelho, a bandeja não abre em seguida. Preciso apertar de novo;
  • O receptor do controle remoto aceita repetição. Se segurarmos uma tecla no browser ela se repete;
  • Não sei se foi impressão minha, mas parece que se eu deixar o P366 desplugado da tomada, ele passa sozinho a ficar configurado para TVs widescreen;
  • Se você der um STOP em um filme, como o P366 tem um recurso de Resume, o tempo exato onde o filme foi parado é exibido no relógio do menu. Não é a coisa mais útil, mas é mais informação do que a dada por todos os outros aparelhos com Resume que já testei (nenhuma).
  • Se você desligar o aparelho com um .avi em modo Resume, ao ligar o aparelho novamente o mesmo .avi é executado automaticamente do ponto onde parou. Nunca vi isso em outro aparelho;
  • O mesmo “Resume estendido” também vale para MP3;
  • Se chegar ao fim da lista no browser, volta para o primeiro item e vice versa.

Esta página foi visualizada vezes desde desde 12/03/2007

DivX Players

DivX player LG DK194g

This is an english version of a brazilian portuguese page

The only way to enter the game menu is from here

The games are hard-coded in english. I think that all the text is pictures-based as all the game images are.

Firmware stored image
An arrow appears to select the game.
To return to normal DVD player operation, just press the Return remote button

CHESS

Game introduction image

Game background image

in-game screenshot

ACORN

Game introduction image

Game background image

in-game screenshot

BATTLE HOOLA

Game introduction image

Game background image

in-game screenshot

Firmware stored image

Firmware stored image

BLACK JACK II

Game introduction image
A flashing “PRESS ENTER” message appears

Game background image

in-game screenshot

OTHELLO II

Game introduction image
A flashing “PRESS ENTER” message appears

Game background image

in-game screenshot

To leave any game, just press the Return remote button

Images from inside. Click to enlarge.
Bottom left: Karaoke board. This player has no USB or card readers.

Esta página foi visualizada vezes desde 31/01/2007.

Firmware MT13x9

Firmwares Mediatek : Como criar suas próprias fontes

atualizado em 06/06/2007

Neste texto (e em qualquer texto onde eu estiver falando de um DivX player) quando eu falar em browser estou falando de file browser (o “menu” onde se escolhem arquivos) e não de Internet Browser, que é o que a maioria das pessoas associa à palavra “browser”.

Este procedimento está longe de ser completo. Ele funciona com vários aparelhos, incluindo fazer as fontes de browser para o Lenoxx DV-406 e as fontes de legendas para o DVP5100/DVP5965. Possivelmente ocorrerão problemas não abordados aqui na hora de escolher fontes que serão usadas para outros propósitos e/ou em outros aparelhos. Parte dos problemas podem ser resolvidos usando outro software do Cherry: o mtkWindows, mas ainda não entendi realmente como a coisa funciona.

Este procedimento explica como remover o fundo translúcido dos firmwares Philips. São dois passos distintos: a remoção do fundo e a remoção da transparência .

Este procedimento cria uma fonte branca com contorno preto. Se você quiser outra cor, provavelmente vai ter que mexer com o mtkWindows.

O melhor tutorial que já encontrei foi este aqui. Porém acho muito confuso, talvez por ter sido mal traduzido do francês para o Inglês. E não aborda os problemas de cor e fundo. Talvez você tenha mais sorte com ele do que eu 🙂

Agora que eu já dominei (ou assim penso) esta fração do processo, talvez fique mais fácil descobrir nas próximas semanas como funciona o processo inteiro de criação de fontes.

Programas necessários:

Você pode escolher a fonte que quiser, mas algumas evidentemente serão mais “eficientes” que outras. Este tutorial vai usar a fonte Impact, por ser razoávelmente visível, bonita e compacta (cabem mais caracteres na tela); O resultado, quando a fonte for aplicada ao file browser, ficará parecido com este (na seção onde está a barra laranja):

Nem sempre uma fonte que alcance ótima legibilidade no browser vai ficar igualmente boa nas legendas DivX e vice-versa. Por sorte, na maioria dos firmwares as fontes são independentes .

Passo 1 – Criando uma fonte compatível

Execute o MtkFontCreator. Se ele fizer a solicitação abaixo, indique o arquivo mtkfontcreator.ini (no mesmo diretório onde está o .exe) e clique em “abrir”.

  1. Para exibir todos os caracteres acentuados da lingua portuguesa, é preciso selecionar a Windows Code Page 1252 aqui;
  2. Você pode escolher a fonte que quiser. Este tutorial vai usar a fonte Impact, por ser razoávelmente visível, bonita e compacta (cabem mais caracteres na tela). É importante frisar aqui que é perda de tempo tentar escolher a cor da fonte, porque isso será ignorado;
  3. O tamanho da fonte é crítico. Será 16 neste exemplo, mas você poderá escolher outros valores, tendo em mente que quanto maior a fonte, menos caracteres caberão na tela;
  4. Para assegurar a legibilidade quando a imagem sob o texto tiver a mesma cor que a fonte, é necessário que exista um contorno (outline). Este exemplo usará um contorno de apenas um ponto;
  5. Em alguns firmwares (o DVP5100 é um exemplo) é imprescindível que “widths are div. by” esteja marcada e que o valor seja “4”, senão o texto será corrompido na tela, como no exemplo abaixo:
  6. Isso é inteiramente opcional. Desmarcar esta opção deixa o texto um pouco mais compacto;
  7. Mande salvar o arquivo. O nome sugerido pelo mtkFontCreator descreve os parâmetros usados para criar a fonte. É aconselhável que você salve como sugerido.

Passo 2 – Substituindo no firmware

Abra o firmware que você deseja modificar com o mtkRemaker e expanda a árvore como indicado até chegar em “Fonts”

Você sempre vai encontrar “Fonts” no mesmo lugar, mas a quantidade de fontes (no exemplo são 5) varia de firmware para firmware. Também não existe uma regra geral que permita saber qual o papel de cada fonte (na verdade, nem dá para saber quais estão mesmo sendo usadas), por isso para determinar qual fonte dever ser trocada você tem dois métodos básicos:

  • Seguir a dica de alguém que já descobriu;
  • Testar uma por uma

Se você tiver que apelar para o segundo método, pelo menos pode tentar chutar de uma forma mais ou menos inteligente. Aproveite-se do fato de que o mtkRemaker exibe a aparência de cada fonte para tentar descobrir qual a fonte certa por comparação com o que é visto na tela quando o aparelho está em funcionamento. Não se anime, porque isso pode ser mais difícil do que parece e talvez você só consiga eliminar as alternativas “absurdas”, como as fonte que mostram caracteres exclusivamente orientais.

Neste tutorial, vamos substituir a fonte 4, que é a fonte do browser no Lenoxx DV-406.

Clique com o botão direito no nome da fonte e escolha “Replace”

Uma caixa de seleção de arquivos vai se abrir. Selecione o arquivo que você criou com o mtkFontCreator.

A nova aparência da fonte já deverá aparecer

Salve o firmware modificado

Passo 2.1

Se a fonte original tem transparência, a modificada também ficará transparente. Para tornar a fonte opaca, você precisa agora abrir o firmware no mtkWindows, selecionar a janela de legenda (é a 0x11 para firmwares Philips e 0x12 para o Lenoxx) e colocar blend=3.

[06/06/07] Para os Philips DVP5960 e DVP5965 a janela é a 0x12.

Salve e teste no DivX player.

As pedras no caminho

Se você já tinha seguido o procedimento de troca das imagens de background antes, provavelmente vai achar que a troca das fontes, do jeito que descevi, é ainda mais fácil. Infelizmente, em muitos casos você vai ter que pegar desvios entre os passos 1 e 2.

Para Lenoxx DV-406 – Estude o passo 1.5
Para Philips –
Estude os passos 1.5 e 1.6

Passo 1.5 – Inverter a cor da fonte

Se você seguir o procedimento exatamente do jeito descrito acima para a fonte do browser no Lenoxx DV-406, o resultado não vai ser bem o que você esperava:

Não era para a fonte ser branca com contorno preto?

Você não precisa ler isto aqui.

Infelizmente, é o programa no firmware que decide como tratar cada cor da fonte. E o programa do Lenoxx diz que a cor exibida será o inverso da que realmente está lá.

Eu apanhei muito tempo com esse problema, bem antes de ter o Lenoxx. Se existe opção no mtkFontCreator para salvar com a cor invertida, eu não a encontrei. Eu fiz duas tentativas de aprender como se criava fontes ao longo do último ano e desisti quando esbarrava nesse problema de não conseguir acertar a cor da fonte.

Até que na semana passada eu esbarrei em um post na Softpedia de um cara explicando como se resolvia, pelo menos para alguns aparelhos (como o Lenoxx). Basta usar um editor de imagens para inverter as cores da fonte. Mas como usar um editor de imagens se a fonte salva pelo mtkFontCreator não é uma imagem?

Aí é que está… ela é, se você quiser. mtkFontCreator permite a você exportar como BMP, fazer a alteração no editor de imagens, importar de volta o BMP alterado e salvar como fonte Mediatek.

Minha primeira experiência foi usando a ferramenta Color Replacement Pen do Ulead PhotoImpact (UPI). Foi um sucesso, mas o processo é um saco para fazer e ainda mais chato para criar um tutorial. Além disso, eu tenho o UPI, mas a maioria dos meus leitores provavelmente usa outro programa e o menor demo que você pode baixar da Ulead tem dezenas de megabytes e emporcalha seu HD (os softwares novos da Ulead estão parecendo com os drivers da HP). Depois de procurar por algumas horas por um freeware que desse conta do recado, sem êxito, decidi verificar se dava para criar um programa só para fazer isso, em Delphi.

Foi mais fácil (e muito mais divertido) que procurar o freeware 🙂

Prepare a fonte no mtFontCreator e exporte como BMP de arquivo único, usando o botão indicado

Abra a fonte no mtkSwapColors. Você a verá como uma “tira”, pois é assim que o arquivo é salvo.

[02/06/2007] Se você quer fazer uma fonte para Philips, sem o fundo translúcido, pule para o passo 1.6

Clique em Processar. O resultado da inversão já aparecerá na tela.

Passo 1.6 – Remover o fundo

Se você está criando uma fonte de legendas (não se aplica ao browser) para um aparelho Philips, ainda há um passo a mais antes de salvar, se você quiser se livrar do fundo translúcido que a Philips coloca por trás da legenda.

Para isso é necessária a versão 0.12 de mtkSwapColors. Clique no botão “Converter para Philips…”. A fonte deverá ficar parecida com isto:

[06/06/2007] A versão do mtkSwapColors disponível online hoje, apesar de indicar “0.12”, é diferente. Eu me enrolei em algum momento quando a cópia no drive 4shared foi apagada e eu tive que fazer o upload de uma nova cópia. Com ela, se for um firmware Philips, você deve clicar direto em “converter…” sem clicar em “processar” antes.

Salve o arquivo.

Abra o arquivo no mtkFontCreator, usando o botão de importação de BMP indicado

Se tudo correu bem, a fonte já deverá aparecer invertida. Se a fonte não aparecer, algo deu errado no processo. Repita com atenção.

Salve como uma fonte Mediatek

Agora você pode inserir a fonte no firmware, seguindo o passo 2 deste tutorial.

Apêndice

Que fonte mudar?

Lenoxx DV-406

Fonte 1 Legendas DivX, seções 1 e 2 do browser e no Setup
Fonte 2 nula
Fonte 4 Seção 3 do browser (lista de arquivos)
Fonte 3 Diversos ícones
Fonte 5 Existe uma fonte, mas não sei se ou onde é usada

Philips DVP5100

Fonte 1 browser
Fonte 2 caracteres orientais
Fonte 3 caracteres orientais
Fonte 4 caracteres orientais
Fonte 5 caracteres árabes ?
Fonte 6 Diversos ícones
Fonte 7 Legenda DivX 1
Fonte 8 Legenda DivX 2

Philips DVP5965K

Fonte 1 Legendas DivX (segundo um leitor)
Fonte 2 Caracteres orientais
Fonte 3 Caracteres orientais
Fonte 4 Caracteres orientais
Fonte 5 Caracteres ??
Fonte 6 Diversos ícones
Fonte 7 browser ?

Textos Relacionados

Esta página foi visualizada vezes desde desde 14/01/07.