Autor Tópico: Firmware MT13x9: Log de Descobertas  (Lida 272647 vezes)

0 Membros e 5 Visitantes estão vendo este tópico.

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware MT13x9: Log de Descobertas
« Responder #300 Online: Fevereiro 07, 2008, 06:37:11 pm »
O MTKWindows (0.8.3.) não "suporta" janelas de 256 cores... Estou modificando o firmware (quero liberdade para escolher as cores do ícones) e o MTK Windows mostra isto (somente 20 cores):

Antes de comentar sobre esse assunto eu preciso perguntar: Como você chegou a essa janela com 20 células? :blink:

Antes que nada, esclareço que somente estou fazendo experimentos... Ainda há outras coisas a solucionar, como por exemplo: ¿Cómo faço um bitmap de 256 cores? ¿Um bitmap indexado de 256 cores serve? ¿Ou o bitmap, ao igual que os de 16 cores, é um tipo especial de arquivo?

Faz tempo (mais de um ano) que não tocava o tema das janelas no firmware... Bem, vamos ao que interessa:

Tenho lido e escutado sobre referencias no código fonte a 4/16/256/truecolor OSD bitmaps. (Aclaro que não chequei no código fonte).

No firmware do DVP5100, banco 3, temos a tabela (mais conhecida como OSD_AddrTable) das WB, ou White Boards, que é como as Windows IDs são chamadas no código fonte:
ROM:3BE7             OSD_AddrTable
ROM:3BE7 FF                    .byte 0xFF
ROM:3BE8 38 7A                 .word 0x387A                  ; Ventana 0x00
ROM:3BEA FF                    .byte 0xFF
ROM:3BEB 38 9C                 .word 0x389C                  ; Ventana 0x01
ROM:3BED FF                    .byte 0xFF
ROM:3BEE 38 8B                 .word 0x388B                  ; Ventana 0x02
...
ROM:3C11 FF                    .byte 0xFF
ROM:3C12 39 77                 .word 0x3977                  ; Ventana 0x0E
   <-- Link WB 0x0E

Seguindo o link da janela 0x0E:
ROM:3977             Ventana 0x0E
ROM:3977 00 34                 .word 0x34                    ; x1 = 52
ROM:3979 00 76                 .word 0x76                    ; y1 = 118
ROM:397B 02 A0                 .word 0x2A0                   ; x2 = 672
ROM:397D 01 AF                 .word 0x1AF                   ; y2 = 431
ROM:397F 00 30                 .word 0x30                    ; Pal DY (diferencia PAL-NTSC=DY)
ROM:3981 0E                    .byte  0xE                    ; Ventana 0x0E
ROM:3982 02                    .byte    2                    ; Cantidad de colores (1=4, 2=16)
ROM:3983 02                    .byte    2                    ; Transparencia
ROM:3984 00                    .byte    0                    ; ? ? ? ?
ROM:3985 FF                    .byte 0xFF                    ; Pointer byte
ROM:3986 39 44                 .word 0x3944                  ; Pointer a paleta de colores

Agora trocamos:
ROM:3982 02                    .byte    2
por
ROM:3982 08                    .byte    8

e...
ROM:3986 39 44                 .word 0x3944
por
ROM:3986 FA C2                 .word 0xFAC2

Abrindo o firmware com o MTK Windows obtem-se o resultado anteriomente descrito... Trocando as células visíveis e reanalizando o firmware com o IDA agora temos:



ROM:FAC2             Paleta de 256 colores - Ventana 0x0E
ROM:FAC2 5B D2                 .word 0x5BD2                  ; Color #00
ROM:FAC4 2E F1                 .word 0x2EF1                  ; Color #01
ROM:FAC6 8D D8                 .word 0x8DD8                  ; Color #02
ROM:FAC8 9C 49                 .word 0x9C49                  ; Color #03
ROM:FACA FF FF                 .word 0xFFFF                  ; Color #04 - FFFF=Magenta
ROM:FACC 85 F4                 .word 0x85F4                  ; Color #05
ROM:FACE E2 40                 .word 0xE240                  ; Color #06
ROM:FAD0 FF FF                 .word 0xFFFF                  ; Color #07 - FFFF=Magenta
ROM:FAD2 97 25                 .word 0x9725                  ; Color #08
ROM:FAD4 FF FF                 .word 0xFFFF                  ; Color #09 - FFFF=Magenta
ROM:FAD6 1D BF                 .word 0x1DBF                  ; Color #0A
ROM:FAD8 94 45                 .word 0x9445                  ; Color #0B
ROM:FADA 94 45                 .word 0x9445                  ; Color #0C
ROM:FADC 49 2A                 .word 0x492A                  ; Color #0D
ROM:FADE FF FF                 .word 0xFFFF                  ; Color #0F - FFFF=Magenta
ROM:FAE0 FF FF                 .word 0xFFFF                  ; Color #10 - FFFF=Magenta
ROM:FAE2 22 56                 .word 0x2256                  ; Color #11
ROM:FAE4 FF FF                 .word 0xFFFF                  ; Color #12 - FFFF=Magenta
ROM:FAE6 97 25                 .word 0x9725                  ; Color #13
ROM:FAE8 FF FF                 .word 0xFFFF                  ; Color #14 - FFFF=Magenta
ROM:FAEA FF FF                 .word 0xFFFF
ROM:FAEC FF FF                 .word 0xFFFF
ROM:FAEE FF FF                 .word 0xFFFF
ROM:FAF0 FF FF                 .word 0xFFFF
...

UPDATE: Se comparar as cores escritas no firmware pelo MTK Windows, com o MTKColorSpace que você sugeriu, vai ver que elas são exatamente as mesmas... ¡as 20 visíveis!


Se tudo o que você precisa é saber o valores, basta usar outro programa do New Age: MtkColorSpace.

Legal, vou tentar. UPDATE: Já testei, era exatamente o que eu procurava. Obrigado.

Aumentar o tamanho da janela, sim.
Colocar mais células, talvez.
Fazer com que o programa use essas células, não.

O programa usa as células... O problema é que eu somente posso modificar as células visíveis. Eu chequei o firmware após usar o programa e todas as 20 cores tinham sido corretamente trocadas...

Por outro lado, tentei agrandar a janela com os dois programas sugeridos no tópico do MTK Patcher (ResourceHacker e XNResourceEditor), mas nenhúm deles funciona corretamente com o arquivo executável do MTK Windows.
« Última modificação: Fevereiro 07, 2008, 06:51:13 pm por jmaraujo »

Offline ronison

  • Novato
  • *
  • Mensagens: 14
  • Aprovação: +0/-0
    • Ver Perfil
Re: PUOs - Prohibited User Operations
« Responder #301 Online: Fevereiro 07, 2008, 08:41:43 pm »
Legal Ronison,

Que bom que você já está conseguindo se virar com esta área.

Desabafo: Como ARM é bem mais complicado que 8051 hein!

Será que a gente conseguiria neste espaço alocar (no Philips 5965K/55) nomes longos a partir da USB + Word Wrap (algoritmo Danny Moroz) sem perder nenhuma funcionalidade (principalmente o HDMI)?

Bom, vou seguir a minha pesquisa sobre MtkArmResizer em paralelo, pode ser útil em algum momento para nós (ou para alguém da comunidade).

Estou querendo contribuir e documentar o Word Wrap com algoritmo Danny Moroz para a comunidade.

Temos, seguramente, 369 bytes de espaço nesta área. Existe uma área suspeita e o espaço pode aumentar para ~7,7K.

Não sei ainda o do USB, mas o algoritmo do wrodwrap usa 356 bytes.

Caso seu word wrap seja Danny Moroz, esteja pronto e você tenha tempo (e não seja um incômodo) poderia disponibilizar as dicas no tópico específico que abri para isso neste fórum, dentro da seção Philips 5965K/55?

Obrigado

Ainda não está ok. Assim que eu tiver um tempinho coloco aqui o estado atual.

Abraço,
« Última modificação: Fevereiro 07, 2008, 11:09:59 pm por ronison »

FORUM.RYAN.COM.BR

Re: PUOs - Prohibited User Operations
« Responder #301 Online: Fevereiro 07, 2008, 08:41:43 pm »

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware MT13x9: Log de Descobertas
« Responder #302 Online: Fevereiro 07, 2008, 10:43:08 pm »
O programa usa as células... O problema é que eu somente posso modificar as células visíveis. Eu chequei o firmware após usar o programa e todas as 20 cores tinham sido corretamente trocadas...

Ahhhhhhhhh...

Isso ocorre porque o NewAge programou a criação dinâmica das células em um loop baseado no número de cores. Ele não esperava por mais de 16 cores, mas o loop continua criando as células às cegas.

Por outro lado, tentei agrandar a janela com os dois programas sugeridos no tópico do MTK Patcher (ResourceHacker e XNResourceEditor), mas nenhúm deles funciona corretamente com o arquivo executável do MTK Windows.

O MTKWindows, assim como os meus programas, está comprimido com UPX. Antes de usar um resource editor qualquer você precisa descomprimir.

No caso, baixe o UPX e use o comando upx.exe -d mtkwindows.exe

Só que você vai encontrar um pequeno problema com o mtkWindows: aumentar o tamanho da janela não adianta. NewAge decide o tamanho da janela por programação, todas as vezes em que selecionamos a aba "Windows" do programa.

Mas existe um modo de contornar isso.

Abra o programa já descomprimido no Resource Hacker



Mude a palavra bsToolWindow, destacada em verde, para bsSizeToolWin Editado: Não adianta procurar no Help do programa. Para saber o que precisa ser mudado e pelo que, você precisa estar familiarizado com a VCL da Borland (Delphi, C++ Builder, etc).

Não adianta mudar ClientHeight e ClientWidth (em vermelho). Adiantaria, se New Age não estivesse definindo as dimensões da janela por programação.

Clique em Compile Script e salve

Execute o mtkWindows. Aparentemente, nada mudou. Mas mova o mouse sobre a borda da janela de palette e você irá poder redimensioná-la temporariamente para o tamanho que quiser.

« Última modificação: Fevereiro 08, 2008, 08:41:50 pm por Jefferson »
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware MT13x9: Log de Descobertas
« Responder #303 Online: Fevereiro 07, 2008, 11:12:24 pm »
Quando um executável Windows qualquer não funcionar com um Resource Editor, analise-o com o ExeInfo PE. Esse programa é capaz de identificar vários tipos de compressão e dá dicas de como lidar com elas.
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware MT13x9: Log de Descobertas
« Responder #304 Online: Fevereiro 07, 2008, 11:16:52 pm »
Obrigado. Agora ficou assim:



Na verdade, não sei nem para que servem estas mudanças (se é que funcionam). Agora, apos ter feito as mudanças, não acho muita utilidade em ter uma janela de 256 cores que vai ocupar 512 bytes que poderíam fazer falta no futuro.

Offline ronison

  • Novato
  • *
  • Mensagens: 14
  • Aprovação: +0/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #305 Online: Fevereiro 07, 2008, 11:23:23 pm »
jmaraujo,

   Lembro que você falou sobre o uso de caracteres acentuados no filebrowser a um tempo atrás. Pois bem, estou com este problema. Caracteres especiais estão sendo substituídos por "_". Já vi muita coisa aqui e fiquei com uma dúvida: o UnicodeToCP (ARM) descrito no documento "Patching_HU3899_from_A_to_Z.txt" resolve este problema nos philips? Complementando, não encontrei na rotina Dir_FileNameFilter, no 8052, qualquer definição de limites dos caracteres possíveis.

PS: Infelizmente estou sem ter como testar pois meu player está na assistência.  :-[

Abraço,
« Última modificação: Fevereiro 07, 2008, 11:30:10 pm por ronison »

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware MT13x9: Log de Descobertas
« Responder #306 Online: Fevereiro 07, 2008, 11:25:05 pm »
Só para complementar, existe um modo, um tanto deselegante, de passar por cima da definição do tamanho da janela feita por New Age.

Mude os valores de ClientWidth e ClientHeight
Apague a linha OnShow = FormShow

Você verá que, antes de carregar qualquer firmware as duas novas dimensões são respeitadas, mas a altura é redefinida automaticamente quando é carregado um firmware. É possível que na sua versão experimental com mais células a altura acompanhe o número de células (eu acho difícil), mas isso é algo que você mesmo precisa testar.
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware MT13x9: Log de Descobertas
« Responder #307 Online: Fevereiro 07, 2008, 11:53:12 pm »
Caracteres especiais estão sendo substituídos por "_". Já vi muita coisa aqui e fiquei com uma dúvida: o UnicodeToCP (ARM) descrito no documento "Patching_HU3899_from_A_to_Z.txt" resolve este problema nos philips?
O CP125x que eu estou usando é bem simplezinho, mas não é a solução ao seu problema. O meu patch o que faz e trocar os carateres 250-255 por 0-5 (Há uma explicação técnica do Mabreaker sobre o porqué os carateres 250-255 não são lidos, o que não vem ao caso).

O seu problema é o filtro dos caracteres, então o mais fácil é mudar esse filtro.

¿O que o tal filtro faz? Ele verifica se o caractere pasado ao Arm é menor do que '20' (espaço), ou maior do que '7E' (~). Se for menor do que 20, ou maior do que 7E, o caracter e sustituido por um '_'.

O que você tem que fazer e mudar o '20' por '00', e o '7E' por 'FF', desse jeito ele vai buscar por carateres menores que 00 ou maiores que FF, o que claro, não existem.

Procedimento: Busque no bloco ArmCode completo a seqüencia "7E 22 20 21". No meu firmware (os valores já foram trocados):
ROM:0000DCF4 FF 22                       MOV     R2, #0xFF
ROM:0000DCF6 00 21                       MOV     R1, #0

Isso é tudo.

Só para complementar, existe um modo, um tanto deselegante, de passar por cima da definição do tamanho da janela feita por New Age.

Mude os valores de ClientWidth e ClientHeight
Apague a linha OnShow = FormShow

Você verá que, antes de carregar qualquer firmware as duas novas dimensões são respeitadas, mas a altura é redefinida automaticamente quando é carregado um firmware. É possível que na sua versão experimental com mais células a altura acompanhe o número de células (eu acho difícil), mas isso é algo que você mesmo precisa testar.
Não, as células seguem na mesma posição. Mas não se preocupe, estou desistindo de experimentar as mudanças no player...

Offline ronison

  • Novato
  • *
  • Mensagens: 14
  • Aprovação: +0/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #308 Online: Fevereiro 08, 2008, 12:05:20 am »
Caracteres especiais estão sendo substituídos por "_". Já vi muita coisa aqui e fiquei com uma dúvida: o UnicodeToCP (ARM) descrito no documento "Patching_HU3899_from_A_to_Z.txt" resolve este problema nos philips?
O CP125x que eu estou usando é bem simplezinho, mas não é a solução ao seu problema. O meu patch o que faz e trocar os carateres 250-255 por 0-5 (Há uma explicação técnica do Mabreaker sobre o porqué os carateres 250-255 não são lidos, o que não vem ao caso).

O seu problema é o filtro dos caracteres, então o mais fácil é mudar esse filtro.

¿O que o tal filtro faz? Ele verifica se o caractere pasado ao Arm é menor do que '20' (espaço), ou maior do que '7E' (~). Se for menor do que 20, ou maior do que 7E, o caracter e sustituido por um '_'.

O que você tem que fazer e mudar o '20' por '00', e o '7E' por 'FF', desse jeito ele vai buscar por carateres menores que 00 ou maiores que FF, o que claro, não existem.

Procedimento: Busque no bloco ArmCode completo a seqüencia "7E 22 20 21". No meu firmware (os valores já foram trocados):
ROM:0000DCF4 FF 22                       MOV     R2, #0xFF
ROM:0000DCF6 00 21                       MOV     R1, #0

Isso é tudo.

Isso tudo eu tinha entendido. Agora ficou meio confuso o que você falou. O filtro deve estar no 8052, certo? Pois bem, como eu falei não existe a definição dos limites (20 e 7E) neste código. Entretanto, você fala em buscar no ARM Code uma sequência? O filtro então estaria no ARM Code?

Abraço,

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware MT13x9: Log de Descobertas
« Responder #309 Online: Fevereiro 08, 2008, 12:15:00 am »
O filtro deve estar no 8052, certo? Pois bem, como eu falei não existe a definição dos limites (20 e 7E) neste código. Entretanto, você fala em buscar no ARM Code uma sequência? O filtro então estaria no ARM Code?
Não, você está confundindo. O filtro está no ArmCodes.

Os firmwares Philips não tem o filtro no 8032. Caso tivessem, voçê tería que fazer o patch nos dois lugares: ArmCode e 8032.

Se quiser estar seguro, busque no 8032 por "90 ? ? E0 FF 90 ? ? E0 FE C3 9F 50 05 C3 EF", mas -como eu disse- nos firmwares Philips não tem ese filtro.

Saudações!

PS: Se quiser checar o filtro nos meus ArmCodes, olhe no endereço ROM:DCF4.

FORUM.RYAN.COM.BR

Re: Firmware MT13x9: Log de Descobertas
« Responder #309 Online: Fevereiro 08, 2008, 12:15:00 am »