Autor Tópico: Firmware do LG DV397H  (Lida 299703 vezes)

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

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #80 Online: Fevereiro 11, 2009, 05:07:33 pm »
Bom, consegui! ;D A documentação recomendada pelo zeurt foi fundamental.
O problema está no ARM. No DV397H, a distância entre linhas é definida de forma absoluta (não depende do tamanho da fonte e nem de um "offset" externo) na rotina do ARM responsável por processar a legenda na tela. Isso deu trabalho para descobrir. Depois de extrair os códigos ARM no MTKRemaker, achei a seguinte rotina:
Código: [Selecionar]
ROM:0003FB1A             sub_3FB1A                               ; CODE XREF: sub_29CE2+4BC_p
ROM:0003FB1A 02 78                       LDRB    R2, [R0]
ROM:0003FB1C 4E 49                       LDR     R1, =unk_9EB88
ROM:0003FB1E 0A 72                       STRB    R2, [R1,#8]
ROM:0003FB20 83 78                       LDRB    R3, [R0,#2]
ROM:0003FB22 42 78                       LDRB    R2, [R0,#1]
ROM:0003FB24 1B 02                       LSLS    R3, R3, #8
ROM:0003FB26 1A 43                       ORRS    R2, R3
ROM:0003FB28 0A 80                       STRH    R2, [R1]
ROM:0003FB2A 03 79                       LDRB    R3, [R0,#4]
ROM:0003FB2C C2 78                       LDRB    R2, [R0,#3]
ROM:0003FB2E 1B 02                       LSLS    R3, R3, #8
ROM:0003FB30 1A 43                       ORRS    R2, R3
ROM:0003FB32 4A 80                       STRH    R2, [R1,#2]
ROM:0003FB34 83 79                       LDRB    R3, [R0,#6]
ROM:0003FB36 42 79                       LDRB    R2, [R0,#5]
ROM:0003FB38 1B 02                       LSLS    R3, R3, #8
ROM:0003FB3A 1A 43                       ORRS    R2, R3
ROM:0003FB3C 8A 80                       STRH    R2, [R1,#4]
ROM:0003FB3E 03 7A                       LDRB    R3, [R0,#8]
ROM:0003FB40 C2 79                       LDRB    R2, [R0,#7]
ROM:0003FB42 1B 02                       LSLS    R3, R3, #8
ROM:0003FB44 1A 43                       ORRS    R2, R3
ROM:0003FB46 CA 80                       STRH    R2, [R1,#6]
ROM:0003FB48 42 7A                       LDRB    R2, [R0,#9]
ROM:0003FB4A 4A 72                       STRB    R2, [R1,#9]
ROM:0003FB4C 82 7A                       LDRB    R2, [R0,#0xA]
ROM:0003FB4E 8A 72                       STRB    R2, [R1,#0xA]
ROM:0003FB50 C0 7A                       LDRB    R0, [R0,#0xB]
ROM:0003FB52 C8 72                       STRB    R0, [R1,#0xB] ; deveria ser o espaço entre linhas!!!!
ROM:0003FB54 70 47                       BX      LR
ROM:0003FB54             ; End of function sub_3FB1A

Segundo o documento indicado por zeurt (MPEG4 Subtitle Display in ARM, do NewAge) esta rotina é idêntica a SUB_FillMpeg4SubtitleParamsRecord do Yamada6700v1. Ela processa os parâmetros enviados pela SetMPE4SubtitleParams do 8032. A penúltima linha guarda o parâmetro que normalmente é responsável pela distância entre linhas. No caso do firmware do DV256K, as duas últimas linhas não existem. Isso já era esperado, já que o DV256K faz o espaçamento "automaticamente". Mas no DV397H elas estão lá. Então tentei setar o registrador R0 diretamente na rotina para ver se fazia alguma diferença:
Código: [Selecionar]
....................
....................
ROM:0003FB4E 8A 72                       STRB    R2, [R1,#0xA]
ROM:0003FB50 C0 7A                       MOVS    R0, #08
ROM:0003FB52 C8 72                       STRB    R0, [R1,#0xB] ; deveria ser o espaço entre linhas!!!!
ROM:0003FB54 70 47                       BX      LR
ROM:0003FB54             ; End of function sub_3FB1A

Mas não obtive resultado (fazendo esse "gato" com o parâmetro imediatamente anterior, responsável pelo alinhamento vertical, obtemos resultado). Lendo mais a documentação do NewAge, observamos que a distância entre linhas é definitivamente calculada na rotina de impressão dos caracteres como função da posição da linha anterior + delta Y. Já o delta Y é calculado pela rotina SUB_CalcNewLineDeltaY, sendo a soma do tamanho da fonte com o offset guardado na rotina acima. Mas SUB_CalcNewLineDeltaY não existe no DV397H. E na rotina de impressão, enorme por sinal, e diferente da apresentada pelo NewAge, consegui achar o valor de distância entre linhas, que é fixo:
Código: [Selecionar]
0348             ; =============== S U B R O U T I N E =======================================
ROM:00040348
ROM:00040348
ROM:00040348             sub_40348                               ; CODE XREF: sub_408FC:loc_4092E_p
ROM:00040348
ROM:00040348             var_68          = -0x68
ROM:00040348             var_64          = -0x64
ROM:00040348             var_60          = -0x60
ROM:00040348             var_5C          = -0x5C
ROM:00040348             var_58          = -0x58
ROM:00040348             var_54          = -0x54
ROM:00040348             var_4C          = -0x4C
ROM:00040348             var_48          = -0x48
ROM:00040348             var_44          = -0x44
ROM:00040348             var_42          = -0x42
ROM:00040348             var_40          = -0x40
ROM:00040348             var_3C          = -0x3C
ROM:00040348             var_38          = -0x38
ROM:00040348             var_34          = -0x34
ROM:00040348             var_30          = -0x30
ROM:00040348             var_2C          = -0x2C
ROM:00040348             var_28          = -0x28
ROM:00040348             var_24          = -0x24
ROM:00040348             var_20          = -0x20
ROM:00040348             var_1C          = -0x1C
ROM:00040348             var_18          = -0x18
ROM:00040348
ROM:00040348 35 48                       LDR     R0, =unk_9AE62
ROM:0004034A F0 B5                       PUSH    {R4-R7,LR}
ROM:0004034C 03 78                       LDRB    R3, [R0]
ROM:0004034E 95 B0                       SUB     SP, SP, #0x54
ROM:00040350 34 49                       LDR     R1, =SHAREMEM_ADDR
ROM:00040352 02 93                       STR     R3, [SP,#0x68+var_60]
ROM:00040354 08 68                       LDR     R0, [R1]
ROM:00040356 BB 22 52 01                 MOVLS   R2, 0x1760
ROM:0004035A 82 18                       ADDS    R2, R0, R2
ROM:0004035C 12 78                       LDRB    R2, [R2]
ROM:0004035E 00 2A                       CMP     R2, #0
ROM:00040360 01 D1                       BNE     loc_40366
ROM:00040362 04 22                       MOVS    R2, #4
ROM:00040364 00 E0                       B       loc_40368
.........................................
......................................... essa rotina é enorme, então tive que saltar linhas
.........................................
 loc_406D2                               ; CODE XREF: sub_40348+366_j
ROM:000406D2 20 1C                       ADDS    R0, R4, #0
ROM:000406D4 FF 30                       ADDS    R0, #0xFF
ROM:000406D6 04 9A                       LDR     R2, [SP,#0x68+var_58]
ROM:000406D8 00 06                       LSLS    R0, R0, #0x18
ROM:000406DA 00 0E                       LSRS    R0, R0, #0x18
ROM:000406DC 02 9B                       LDR     R3, [SP,#0x68+var_60]
ROM:000406DE 1E 32                       ADDS    R2, #0x1E                        ; distancia entre linhas
ROM:000406E0 00 25                       MOVS    R5, #0
ROM:000406E2 5F 49                       LDR     R1, =unk_9E868
ROM:000406E4 01 33                       ADDS    R3, #1
ROM:000406E6 0F 93                       STR     R3, [SP,#0x68+var_2C]
ROM:000406E8 11 92                       STR     R2, [SP,#0x68+var_24]
ROM:000406EA 10 90                       STR     R0, [SP,#0x68+var_28]
ROM:000406EC 0E 91                       STR     R1, [SP,#0x68+var_30]
ROM:000406EE C1 E0                       B       loc_40874
................................................
................................................ continua!
................................................

Alterando a distância para #25 já é suficiente para suportar fonte Arial Narrow 23. Estou tentando agora bolar um jeito de deixar isso em função do tamanho da fonte, pois com fontes menores o espaço fica muito grande (o espaço é fixo).
Não consegui encontrar a correspondência para isso no DV256K, mas pelo menos naquele player a distância entre linhas parece funcionar corretamente. Já o DV397H, apesar de possuir a rotina SUB_FillMpeg4SubtitleParamsRecord completa, com todos os parâmetros, não possui um espaçamento entre linhas funcional, que utilize o parâmetro que seria reservado a isso. Parece um firmware feito às pressas, com retalhos de rotinas.

Nota: o MTKRemaker extrai os códigos ARM, mas não está me permitindo trocá-los pelos modificados (não sei se é problema da versão ou porque não suporta o firmware do DV397H). Então eu usei o MTKReplacer.
   



Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #81 Online: Fevereiro 11, 2009, 07:58:25 pm »
Bom, consegui! ;D
Parabéns rictad!!  :clapping:

E na rotina de impressão, enorme por sinal, e diferente da apresentada pelo NewAge, consegui achar o valor de distância entre linhas, que é fixo...
Alterando a distância para #25 já é suficiente para suportar fonte Arial Narrow 23. Estou tentando agora bolar um jeito de deixar isso em função do tamanho da fonte, pois com fontes menores o espaço fica muito grande (o espaço é fixo).
Eu estava fazendo toda essa investigação também (apenas no LG DV256K por enquanto), e realmente fiquei perdido com essa rotina enorme e bem diferente daquela do documento do NewAge. Também tentei encontrar o ponto responsável pela distância entre as linhas, mas não achei. No DV256K, provavelmente a distância entre as linhas é definida apenas pela altura da fonte, enquanto que no DV397H a distância é fixa e não depende da altura da fonte... Muito legal você ter encontrado finalmente o ponto chave!  :laugh:

Não consegui encontrar a correspondência para isso no DV256K, mas pelo menos naquele player a distância entre linhas parece funcionar corretamente. Já o DV397H, apesar de possuir a rotina SUB_FillMpeg4SubtitleParamsRecord completa, com todos os parâmetros, não possui um espaçamento entre linhas funcional, que utilize o parâmetro que seria reservado a isso. Parece um firmware feito às pressas, com retalhos de rotinas.
Acho que vale a pena continuar tentando decifrar essas rotinas (tanto do DV256K como do DV397H, e também dos LGs 8xxx e 9xxx originais e modificados pelo br0max e pelo xypro respectivamente, isso porque eles modificaram vários pontos dessas rotinas do ARM, implementando quebra de linha inteligente com reformatação, e muitas outras melhorias).
Quanto ao firmware parecer ter sido feito as pressas, com retalhos de rotinas, fico com a impressão que isso acaba se evidenciando em alguns pontos de praticamente todos os firmwares de Divx players que existem...

Nota: o MTKRemaker extrai os códigos ARM, mas não está me permitindo trocá-los pelos modificados (não sei se é problema da versão ou porque não suporta o firmware do DV397H). Então eu usei o MTKReplacer
Isso também ocorre comigo (com todos os firmwares que testei) e não sei muito bem porque. Também uso o MTK Replacer...
« Última modificação: Fevereiro 12, 2009, 12:34:45 am por zeurt »

FORUM.RYAN.COM.BR

Re: Firmware do LG DV397H
« Responder #81 Online: Fevereiro 11, 2009, 07:58:25 pm »

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #82 Online: Fevereiro 12, 2009, 05:02:53 pm »
Bom, consegui! ;D
Parabéns rictad!!  :clapping:

Obrigado zeurt! Bom, logo postarei um firmware com essa alteração e com 6 tipos de fontes selecionáveis, do jeito que você ensinou no tópico do DV256K. Já está quase pronto. Mas estou tentando agora fazer o file browser mostrar os caracteres acentuados. Alterei o filtro no ARM (caracteres no intervalo 20 a 7E) e aqueles dois no 8032 que são iguais aos do DV256K (20 a 5F). Mas não funciona. Continua mostrando "_" no lugar dos caracteres acentuados. Também alterei a fonte do filebrowser, que no DV391H é a número 14 e não possui acentos, mas de nada adiantou. Eu não entendi direito se só isso foi suficiente no DV256K, ou ainda foi necessário implementar a rotina de conversão Unicode.

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #83 Online: Fevereiro 12, 2009, 07:10:08 pm »
Mas estou tentando agora fazer o file browser mostrar os caracteres acentuados. Alterei o filtro no ARM (caracteres no intervalo 20 a 7E) e aqueles dois no 8032 que são iguais aos do DV256K (20 a 5F). Mas não funciona. Continua mostrando "_" no lugar dos caracteres acentuados. Também alterei a fonte do filebrowser, que no DV391H é a número 14 e não possui acentos, mas de nada adiantou. Eu não entendi direito se só isso foi suficiente no DV256K, ou ainda foi necessário implementar a rotina de conversão Unicode.

É necessário:
1- Modificar os 2 filtros do 8032 como expliquei aqui: http://ryan.com.br/smf/index.php?topic=232.msg9175428#msg9175428
2- Implementar a Rotina de Conversão Unicode. Ver a introdução aqui: http://ryan.com.br/smf/index.php?topic=232.msg9175252#msg9175252. Seguir os passos:
a-) Encontrar os 2 pontos que chamarão a nova rotina.
b-) Usei a Rotina de Conversão Unicode criada pelo br0max para os LGs8xxx. Estou enviando essa rotina abaixo:

Código: [Selecionar]
ROM:0000FD98             ; =============== S U B R O U T I N E =======================================
ROM:0000FD98
ROM:0000FD98
ROM:0000FD98             sub_FD98                                ; CODE XREF: sub_24258+132p
ROM:0000FD98                                                     ; sub_24258+166p
ROM:0000FD98 01 B4                       PUSH    {R0}
ROM:0000FD9A 10 39                       SUBS    R1, #0x10
ROM:0000FD9C 88 7B                       LDRB    R0, [R1,#0xE]
ROM:0000FD9E C9 7B                       LDRB    R1, [R1,#0xF]
ROM:0000FDA0 21 28                       CMP     R0, #0x21 ; '!'
ROM:0000FDA2 03 D1                       BNE     loc_FDAC
ROM:0000FDA4 22 29                       CMP     R1, #0x22 ; '"'
ROM:0000FDA6 01 D1                       BNE     loc_FDAC
ROM:0000FDA8 99 21                       MOVS    R1, #0x99 ; 'Ö'
ROM:0000FDAA 19 E0                       B       loc_FDE0
ROM:0000FDAC             ; ---------------------------------------------------------------------------
ROM:0000FDAC
ROM:0000FDAC             loc_FDAC                                ; CODE XREF: sub_FD98+Aj
ROM:0000FDAC                                                     ; sub_FD98+Ej
ROM:0000FDAC 20 28                       CMP     R0, #0x20 ; ' '
ROM:0000FDAE 11 D1                       BNE     loc_FDD4
ROM:0000FDB0 18 29                       CMP     R1, #0x18
ROM:0000FDB2 03 D3                       BCC     loc_FDBC
ROM:0000FDB4 19 29                       CMP     R1, #0x19
ROM:0000FDB6 01 D8                       BHI     loc_FDBC
ROM:0000FDB8 79 31                       ADDS    R1, #0x79 ; 'y'
ROM:0000FDBA 11 E0                       B       loc_FDE0
ROM:0000FDBC             ; ---------------------------------------------------------------------------
ROM:0000FDBC
ROM:0000FDBC             loc_FDBC                                ; CODE XREF: sub_FD98+1Aj
ROM:0000FDBC                                                     ; sub_FD98+1Ej
ROM:0000FDBC 1A 29                       CMP     R1, #0x1A
ROM:0000FDBE 01 D1                       BNE     loc_FDC4
ROM:0000FDC0 82 21                       MOVS    R1, #0x82 ; 'é'
ROM:0000FDC2 0D E0                       B       loc_FDE0
ROM:0000FDC4             ; ---------------------------------------------------------------------------
ROM:0000FDC4
ROM:0000FDC4             loc_FDC4                                ; CODE XREF: sub_FD98+26j
ROM:0000FDC4 39 29                       CMP     R1, #0x39 ; '9'
ROM:0000FDC6 01 D1                       BNE     loc_FDCC
ROM:0000FDC8 8B 21                       MOVS    R1, #0x8B ; 'ï'
ROM:0000FDCA 09 E0                       B       loc_FDE0
ROM:0000FDCC             ; ---------------------------------------------------------------------------
ROM:0000FDCC
ROM:0000FDCC             loc_FDCC                                ; CODE XREF: sub_FD98+2Ej
ROM:0000FDCC 3A 29                       CMP     R1, #0x3A ; ':'
ROM:0000FDCE 05 D1                       BNE     loc_FDDC
ROM:0000FDD0 9B 21                       MOVS    R1, #0x9B ; 'ø'
ROM:0000FDD2 05 E0                       B       loc_FDE0
ROM:0000FDD4             ; ---------------------------------------------------------------------------
ROM:0000FDD4
ROM:0000FDD4             loc_FDD4                                ; CODE XREF: sub_FD98+16j
ROM:0000FDD4 01 28                       CMP     R0, #1
ROM:0000FDD6 01 D0                       BEQ     loc_FDDC
ROM:0000FDD8 02 28                       CMP     R0, #2
ROM:0000FDDA 01 D1                       BNE     loc_FDE0
ROM:0000FDDC
ROM:0000FDDC             loc_FDDC                                ; CODE XREF: sub_FD98+36j
ROM:0000FDDC                                                     ; sub_FD98+3Ej
ROM:0000FDDC 01 48                       LDR     R0, =unk_280B0
ROM:0000FDDE 41 5C                       LDRB    R1, [R0,R1]
ROM:0000FDE0
ROM:0000FDE0             loc_FDE0                                ; CODE XREF: sub_FD98+12j
ROM:0000FDE0                                                     ; sub_FD98+22j ...
ROM:0000FDE0 01 BC                       POP     {R0}
ROM:0000FDE2 70 47                       BX      LR
ROM:0000FDE2             ; End of function sub_FD98
ROM:0000FDE2
ROM:0000FDE2             ; ---------------------------------------------------------------------------
ROM:0000FDE4 B0 80 02 00 off_FDE4        DCD unk_280B0           ; DATA XREF: sub_FD98:loc_FDDCr
ROM:0000FDE8 00                          DCB    0
ROM:0000FDE9 00                          DCB    0
ROM:0000FDEA 00                          DCB    0
ROM:0000FDEB 00                          DCB    0
ROM:0000FDEC 00                          DCB    0
ROM:0000FDED 00                          DCB    0
ROM:0000FDEE 00                          DCB    0
ROM:0000FDEF 00                          DCB    0
ROM:0000FDF0 00                          DCB    0
ROM:0000FDF1 00                          DCB    0
ROM:0000FDF2 00                          DCB    0
ROM:0000FDF3 00                          DCB    0
ROM:0000FDF4 00                          DCB    0
ROM:0000FDF5 00                          DCB    0
ROM:0000FDF6 00                          DCB    0
ROM:0000FDF7 00                          DCB    0
ROM:0000FDF8 00                          DCB    0
ROM:0000FDF9 00                          DCB    0
ROM:0000FDFA 00                          DCB    0
ROM:0000FDFB 00                          DCB    0
ROM:0000FDFC 00                          DCB    0
ROM:0000FDFD 00                          DCB    0
ROM:0000FDFE 00                          DCB    0
ROM:0000FDFF 00                          DCB    0
ROM:0000FE00 00                          DCB    0
ROM:0000FE01 00                          DCB    0
ROM:0000FE02 00                          DCB    0
ROM:0000FE03 00                          DCB    0
ROM:0000FE04 00                          DCB    0
ROM:0000FE05 00                          DCB    0
ROM:0000FE06 00                          DCB    0
ROM:0000FE07 00                          DCB    0
ROM:0000FE08 00                          DCB    0
ROM:0000FE09 00                          DCB    0
ROM:0000FE0A 00                          DCB    0
ROM:0000FE0B 00                          DCB    0
ROM:0000FE0C 00                          DCB    0
ROM:0000FE0D 00                          DCB    0
ROM:0000FE0E 00                          DCB    0
ROM:0000FE0F 00                          DCB    0
ROM:0000FE10

ROM:000280B0 5F          unk_280B0       DCB 0x5F ; _            ; DATA XREF: ROM:off_FDE4o
ROM:000280B0                                                     ; sub_256B0+10o
ROM:000280B1 5F                          DCB 0x5F ; _
ROM:000280B2 C3                          DCB 0xC3 ; +
ROM:000280B3 E3                          DCB 0xE3 ; Ò
ROM:000280B4 A5                          DCB 0xA5 ; Ñ
ROM:000280B5 B9                          DCB 0xB9 ; ¦
ROM:000280B6 C6                          DCB 0xC6 ; ã
ROM:000280B7 E6                          DCB 0xE6 ; µ
ROM:000280B8 5F                          DCB 0x5F ; _
ROM:000280B9 5F                          DCB 0x5F ; _
ROM:000280BA 5F                          DCB 0x5F ; _
ROM:000280BB 5F                          DCB 0x5F ; _
ROM:000280BC C8                          DCB 0xC8 ; +
ROM:000280BD E8                          DCB 0xE8 ; Þ
ROM:000280BE CF                          DCB 0xCF ; ¤
ROM:000280BF EF                          DCB 0xEF ; ´
ROM:000280C0 D0                          DCB 0xD0 ; ð
ROM:000280C1 F0                          DCB 0xF0 ; ­
ROM:000280C2 5F                          DCB 0x5F ; _
ROM:000280C3 96                          DCB 0x96 ; û
ROM:000280C4 97                          DCB 0x97 ; ù
ROM:000280C5 5F                          DCB 0x5F ; _
ROM:000280C6 5F                          DCB 0x5F ; _
ROM:000280C7 5F                          DCB 0x5F ; _
ROM:000280C8 CA                          DCB 0xCA ; -
ROM:000280C9 EA                          DCB 0xEA ; Û
ROM:000280CA CC                          DCB 0xCC ; ¦
ROM:000280CB EC                          DCB 0xEC ; ý
ROM:000280CC 93                          DCB 0x93 ; ô
ROM:000280CD 94                          DCB 0x94 ; ö
ROM:000280CE 84                          DCB 0x84 ; ä
ROM:000280CF 5F                          DCB 0x5F ; _
ROM:000280D0 86                          DCB 0x86 ; å
ROM:000280D1 87                          DCB 0x87 ; ç
ROM:000280D2 95                          DCB 0x95 ; ò
ROM:000280D3 5F                          DCB 0x5F ; _
ROM:000280D4 5F                          DCB 0x5F ; _
ROM:000280D5 5F                          DCB 0x5F ; _
ROM:000280D6 85                          DCB 0x85 ; à
ROM:000280D7 5F                          DCB 0x5F ; _
ROM:000280D8 5F                          DCB 0x5F ; _
ROM:000280D9 5F                          DCB 0x5F ; _
ROM:000280DA 5F                          DCB 0x5F ; _
ROM:000280DB 5F                          DCB 0x5F ; _
ROM:000280DC 5F                          DCB 0x5F ; _
ROM:000280DD 5F                          DCB 0x5F ; _
ROM:000280DE 5F                          DCB 0x5F ; _
ROM:000280DF 5F                          DCB 0x5F ; _
ROM:000280E0 89                          DCB 0x89 ; ë
ROM:000280E1 5F                          DCB 0x5F ; _
ROM:000280E2 5F                          DCB 0x5F ; _
ROM:000280E3 5F                          DCB 0x5F ; _
ROM:000280E4 5F                          DCB 0x5F ; _
ROM:000280E5 5F                          DCB 0x5F ; _
ROM:000280E6 5F                          DCB 0x5F ; _
ROM:000280E7 5F                          DCB 0x5F ; _
ROM:000280E8 5F                          DCB 0x5F ; _
ROM:000280E9 C5                          DCB 0xC5 ; +
ROM:000280EA E5                          DCB 0xE5 ; Õ
ROM:000280EB 5F                          DCB 0x5F ; _
ROM:000280EC 5F                          DCB 0x5F ; _
ROM:000280ED BC                          DCB 0xBC ; +
ROM:000280EE BE                          DCB 0xBE ; ¥
ROM:000280EF 5F                          DCB 0x5F ; _
ROM:000280F0 5F                          DCB 0x5F ; _
ROM:000280F1 A3                          DCB 0xA3 ; ú
ROM:000280F2 B3                          DCB 0xB3 ; ¦
ROM:000280F3 D1                          DCB 0xD1 ; Ð
ROM:000280F4 F1                          DCB 0xF1 ; ±
ROM:000280F5 5F                          DCB 0x5F ; _
ROM:000280F6 5F                          DCB 0x5F ; _
ROM:000280F7 D2                          DCB 0xD2 ; Ê
ROM:000280F8 F2                          DCB 0xF2 ; =
ROM:000280F9 5F                          DCB 0x5F ; _
ROM:000280FA 5F                          DCB 0x5F ; _
ROM:000280FB 5F                          DCB 0x5F ; _
ROM:000280FC 5F                          DCB 0x5F ; _
ROM:000280FD 5F                          DCB 0x5F ; _
ROM:000280FE 5F                          DCB 0x5F ; _
ROM:000280FF 5F                          DCB 0x5F ; _
ROM:00028100 D5                          DCB 0xD5 ; i
ROM:00028101 F5                          DCB 0xF5 ; §
ROM:00028102 5F                          DCB 0x5F ; _
ROM:00028103 5F                          DCB 0x5F ; _
ROM:00028104 C0                          DCB 0xC0 ; +
ROM:00028105 E0                          DCB 0xE0 ; Ó
ROM:00028106 5F                          DCB 0x5F ; _
ROM:00028107 5F                          DCB 0x5F ; _
ROM:00028108 D8                          DCB 0xD8 ; Ï
ROM:00028109 F8                          DCB 0xF8 ; °
ROM:0002810A 8C                          DCB 0x8C ; î
ROM:0002810B 9C                          DCB 0x9C ; £
ROM:0002810C 5F                          DCB 0x5F ; _
ROM:0002810D 5F                          DCB 0x5F ; _
ROM:0002810E AA                          DCB 0xAA ; ¬
ROM:0002810F BA                          DCB 0xBA ; ¦
ROM:00028110 8A                          DCB 0x8A ; è
ROM:00028111 9A                          DCB 0x9A ; Ü
ROM:00028112 DE                          DCB 0xDE ; Ì
ROM:00028113 FE                          DCB 0xFE ; ¦
ROM:00028114 8D                          DCB 0x8D ; ì
ROM:00028115 9D                          DCB 0x9D ; Ø
ROM:00028116 5F                          DCB 0x5F ; _
ROM:00028117 5F                          DCB 0x5F ; _
ROM:00028118 5F                          DCB 0x5F ; _
ROM:00028119 5F                          DCB 0x5F ; _
ROM:0002811A 5F                          DCB 0x5F ; _
ROM:0002811B 5F                          DCB 0x5F ; _
ROM:0002811C 5F                          DCB 0x5F ; _
ROM:0002811D 5F                          DCB 0x5F ; _
ROM:0002811E D9                          DCB 0xD9 ; +
ROM:0002811F F9                          DCB 0xF9 ; ¨
ROM:00028120 DB                          DCB 0xDB ; ¦
ROM:00028121 FB                          DCB 0xFB ; ¹
ROM:00028122 5F                          DCB 0x5F ; _
ROM:00028123 5F                          DCB 0x5F ; _
ROM:00028124 5F                          DCB 0x5F ; _
ROM:00028125 5F                          DCB 0x5F ; _
ROM:00028126 5F                          DCB 0x5F ; _
ROM:00028127 5F                          DCB 0x5F ; _
ROM:00028128 5F                          DCB 0x5F ; _
ROM:00028129 8F                          DCB 0x8F ; Å
ROM:0002812A 9F                          DCB 0x9F ; ƒ
ROM:0002812B AF                          DCB 0xAF ; »
ROM:0002812C BF                          DCB 0xBF ; +
ROM:0002812D 8E                          DCB 0x8E ; Ä
ROM:0002812E 9E                          DCB 0x9E ; ×
ROM:0002812F 5F                          DCB 0x5F ; _
ROM:00028130 5F                          DCB 0x5F ; _
ROM:00028131 5F                          DCB 0x5F ; _
ROM:00028132 5F                          DCB 0x5F ; _
ROM:00028133 5F                          DCB 0x5F ; _
ROM:00028134 5F                          DCB 0x5F ; _
ROM:00028135 5F                          DCB 0x5F ; _
ROM:00028136 5F                          DCB 0x5F ; _
ROM:00028137 5F                          DCB 0x5F ; _
ROM:00028138 5F                          DCB 0x5F ; _
ROM:00028139 5F                          DCB 0x5F ; _
ROM:0002813A 5F                          DCB 0x5F ; _
ROM:0002813B 5F                          DCB 0x5F ; _
ROM:0002813C 5F                          DCB 0x5F ; _
ROM:0002813D 5F                          DCB 0x5F ; _
ROM:0002813E 5F                          DCB 0x5F ; _
ROM:0002813F 5F                          DCB 0x5F ; _
ROM:00028140 5F                          DCB 0x5F ; _
ROM:00028141 5F                          DCB 0x5F ; _
ROM:00028142 5F                          DCB 0x5F ; _
ROM:00028143 5F                          DCB 0x5F ; _
ROM:00028144 5F                          DCB 0x5F ; _
ROM:00028145 5F                          DCB 0x5F ; _
ROM:00028146 5F                          DCB 0x5F ; _
ROM:00028147 5F                          DCB 0x5F ; _
ROM:00028148 5F                          DCB 0x5F ; _
ROM:00028149 5F                          DCB 0x5F ; _
ROM:0002814A 5F                          DCB 0x5F ; _
ROM:0002814B 5F                          DCB 0x5F ; _
ROM:0002814C 5F                          DCB 0x5F ; _
ROM:0002814D 5F                          DCB 0x5F ; _
ROM:0002814E 5F                          DCB 0x5F ; _
ROM:0002814F 5F                          DCB 0x5F ; _
ROM:00028150 5F                          DCB 0x5F ; _
ROM:00028151 5F                          DCB 0x5F ; _
ROM:00028152 5F                          DCB 0x5F ; _
ROM:00028153 5F                          DCB 0x5F ; _
ROM:00028154 5F                          DCB 0x5F ; _
ROM:00028155 5F                          DCB 0x5F ; _
ROM:00028156 5F                          DCB 0x5F ; _
ROM:00028157 5F                          DCB 0x5F ; _
ROM:00028158 5F                          DCB 0x5F ; _
ROM:00028159 5F                          DCB 0x5F ; _
ROM:0002815A 5F                          DCB 0x5F ; _
ROM:0002815B 5F                          DCB 0x5F ; _
ROM:0002815C 80                          DCB 0x80 ; Ç
ROM:0002815D 5F                          DCB 0x5F ; _
ROM:0002815E 5F                          DCB 0x5F ; _
ROM:0002815F 5F                          DCB 0x5F ; _
ROM:00028160 5F                          DCB 0x5F ; _
ROM:00028161 5F                          DCB 0x5F ; _
ROM:00028162 5F                          DCB 0x5F ; _
ROM:00028163 5F                          DCB 0x5F ; _
ROM:00028164 5F                          DCB 0x5F ; _
ROM:00028165 5F                          DCB 0x5F ; _
ROM:00028166 5F                          DCB 0x5F ; _
ROM:00028167 5F                          DCB 0x5F ; _
ROM:00028168 5F                          DCB 0x5F ; _
ROM:00028169 5F                          DCB 0x5F ; _
ROM:0002816A 5F                          DCB 0x5F ; _
ROM:0002816B 5F                          DCB 0x5F ; _
ROM:0002816C 5F                          DCB 0x5F ; _
ROM:0002816D 5F                          DCB 0x5F ; _
ROM:0002816E 5F                          DCB 0x5F ; _
ROM:0002816F 5F                          DCB 0x5F ; _
ROM:00028170 5F                          DCB 0x5F ; _
ROM:00028171 5F                          DCB 0x5F ; _
ROM:00028172 5F                          DCB 0x5F ; _
ROM:00028173 5F                          DCB 0x5F ; _
ROM:00028174 5F                          DCB 0x5F ; _
ROM:00028175 5F                          DCB 0x5F ; _
ROM:00028176 5F                          DCB 0x5F ; _
ROM:00028177 A1                          DCB 0xA1 ; í
ROM:00028178 5F                          DCB 0x5F ; _
ROM:00028179 5F                          DCB 0x5F ; _
ROM:0002817A 5F                          DCB 0x5F ; _
ROM:0002817B 5F                          DCB 0x5F ; _
ROM:0002817C 5F                          DCB 0x5F ; _
ROM:0002817D 5F                          DCB 0x5F ; _
ROM:0002817E 5F                          DCB 0x5F ; _
ROM:0002817F 5F                          DCB 0x5F ; _
ROM:00028180 5F                          DCB 0x5F ; _
ROM:00028181 5F                          DCB 0x5F ; _
ROM:00028182 5F                          DCB 0x5F ; _
ROM:00028183 5F                          DCB 0x5F ; _
ROM:00028184 5F                          DCB 0x5F ; _
ROM:00028185 5F                          DCB 0x5F ; _
ROM:00028186 5F                          DCB 0x5F ; _
ROM:00028187 5F                          DCB 0x5F ; _
ROM:00028188 A2                          DCB 0xA2 ; ó
ROM:00028189 FF                          DCB 0xFF
ROM:0002818A 5F                          DCB 0x5F ; _
ROM:0002818B B2                          DCB 0xB2 ; ¦
ROM:0002818C 5F                          DCB 0x5F ; _
ROM:0002818D BD                          DCB 0xBD ; ¢
ROM:0002818E 5F                          DCB 0x5F ; _
ROM:0002818F 5F                          DCB 0x5F ; _
ROM:00028190 5F                          DCB 0x5F ; _
ROM:00028191 5F                          DCB 0x5F ; _
ROM:00028192 5F                          DCB 0x5F ; _
ROM:00028193 5F                          DCB 0x5F ; _
ROM:00028194 5F                          DCB 0x5F ; _
ROM:00028195 5F                          DCB 0x5F ; _
ROM:00028196 5F                          DCB 0x5F ; _
ROM:00028197 5F                          DCB 0x5F ; _
ROM:00028198 5F                          DCB 0x5F ; _
ROM:00028199 5F                          DCB 0x5F ; _
ROM:0002819A 5F                          DCB 0x5F ; _
ROM:0002819B 5F                          DCB 0x5F ; _
ROM:0002819C 5F                          DCB 0x5F ; _
ROM:0002819D 5F                          DCB 0x5F ; _
ROM:0002819E 5F                          DCB 0x5F ; _
ROM:0002819F 5F                          DCB 0x5F ; _
ROM:000281A0 5F                          DCB 0x5F ; _
ROM:000281A1 5F                          DCB 0x5F ; _
ROM:000281A2 5F                          DCB 0x5F ; _
ROM:000281A3 5F                          DCB 0x5F ; _
ROM:000281A4 5F                          DCB 0x5F ; _
ROM:000281A5 5F                          DCB 0x5F ; _
ROM:000281A6 5F                          DCB 0x5F ; _
ROM:000281A7 5F                          DCB 0x5F ; _
ROM:000281A8 5F                          DCB 0x5F ; _
ROM:000281A9 5F                          DCB 0x5F ; _
ROM:000281AA 5F                          DCB 0x5F ; _
ROM:000281AB 5F                          DCB 0x5F ; _
ROM:000281AC 5F                          DCB 0x5F ; _
ROM:000281AD 5F                          DCB 0x5F ; _
ROM:000281AE 5F                          DCB 0x5F ; _

Como se pode ver, essa rotina usa uma tabela com 256 bytes (acho que tem relação com os caracteres, mas eu nem cheguei a procurar entender com detalhes o funcionamento disso).

c-) Agora é necessário encontrar espaço para colocar a rotina e a tabela. Encontrei 2 áreas de erros no DV256K, e coloquei a rotina em uma, e a tabela na outra. Para encontrar as rotinas de erros, de uma olhada nesses 2 trechos do DV256K para depois achar os equivalentes no DV397H: 270F6 e 298B4.

d-) Observação: Usar o BCalc, para calcular o salto entre os 2 pontos que chamarão a rotina e o local que você decidiu colocá-la.

e-) Não é necessário mexer em nehum filtro do ARM, nem alterar nehuma fonte.

   
« Última modificação: Abril 01, 2009, 12:42:03 am por zeurt »

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #84 Online: Fevereiro 13, 2009, 12:03:50 am »
e-) Não é necessário mexer em nehum filtro do ARM, nem alterar nehuma fonte.

Dei uma olhada nas fontes do DV397H. Se a fonte usada pelo FileBrowser for realmente a 14, você tem razão: ela tem que ser trocada. Sugiro que você a troque pela fonte 1 do DV256K (essa fonte é CP-1252).
Editado: Eu esqueçi de dizer que eu eliminei os caracteres acima de 256 dessa fonte (não sei se isso é realmente necessário: fiz essa alteração no início da investigação e depois deixei assim mesmo...).
« Última modificação: Fevereiro 13, 2009, 12:14:24 am por zeurt »

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #85 Online: Fevereiro 13, 2009, 02:35:53 pm »
e-) Não é necessário mexer em nehum filtro do ARM, nem alterar nehuma fonte.

Dei uma olhada nas fontes do DV397H. Se a fonte usada pelo FileBrowser for realmente a 14, você tem razão: ela tem que ser trocada. Sugiro que você a troque pela fonte 1 do DV256K (essa fonte é CP-1252).
Editado: Eu esqueçi de dizer que eu eliminei os caracteres acima de 256 dessa fonte (não sei se isso é realmente necessário: fiz essa alteração no início da investigação e depois deixei assim mesmo...).

É a fonte 14 sim. Eu troquei a 14 pela 1 e ao menos as tags mp3 passaram a ser acentuadas, sem necessidade de implementar a rotina ou modificar os 2 filtros do 8032. Os nomes dos arquivos (que são da mesma fonte, pois eu já troquei por uma Arial 23 só para testar) continuaram sem acentos. Bom, ainda não implementei a rotina, mas acabei de localizar os 2 pontos de chamada. Vou implementar agora.

Nota: Nos 2 filtros do 8032, alterei a instrução MOV R3, #5F para que fosse colocado outro caractere no lugar do "_", apenas para testar. Coloquei "a". Mas os nomes dos arquivos continuaram com "_". Estou achando que apesar de existirem os filtros no código 8032, eles não são usados da mesma forma que no DV256K. Quando implementar a rotina posto as novidades.

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #86 Online: Fevereiro 13, 2009, 10:13:20 pm »
Consegui! :yahoo!: Estou enviando um novo firmware modificado.

A implementação da rotina não resolveu a acentuação no filebrowser, o que era esperado após os testes anteriores. Novamente havia algo de diferente no DV397H (e novamente estava no ARM). Com a troca da fonte 14 pela fonte 1, os acentos apareceram nas tags, mas não nos nomes dos arquivos. Como é a mesma fonte, só poderia ser um filtro para o filebrowser. Procurando no ARM, descobri um filtro um pouco diferente do normal. Ele filtra caracteres abaixo de #18 (ainda não tenho certeza) e acima de #80 (certeza absoluta). Então alterei o #80 para #FE (não precisamos de caracteres abaixo de #20, pois são de controle, e nem do 255).

Código: [Selecionar]
ROM:0002C53E             ; =============== S U B R O U T I N E =======================================
ROM:0002C53E
ROM:0002C53E
ROM:0002C53E             sub_2C53E                               ; CODE XREF: sub_297F0+38E_p
ROM:0002C53E                                                     ; sub_297F0+41C_p ...
ROM:0002C53E F8 B5                       PUSH    {R3-R7,LR}
ROM:0002C540 0C 1C                       ADDS    R4, R1, #0
ROM:0002C542 8D 49                       LDR     R1, =SHAREMEM_ADDR
ROM:0002C544 15 1C                       ADDS    R5, R2, #0
ROM:0002C546 5D 22                       MOVS    R2, #0x5D ; ']'
ROM:0002C548 09 68                       LDR     R1, [R1]
ROM:0002C54A 92 01                       LSLS    R2, R2, #6
ROM:0002C54C 8A 18                       ADDS    R2, R1, R2
ROM:0002C54E D2 78                       LDRB    R2, [R2,#3]
ROM:0002C550 00 2A                       CMP     R2, #0
ROM:0002C552 32 D1                       BNE     loc_2C5BA
ROM:0002C554 89 4A                       LDR     R2, =off_1750
ROM:0002C556 8A 18                       ADDS    R2, R1, R2
ROM:0002C558 93 7A                       LDRB    R3, [R2,#0xA]
ROM:0002C55A FF 2B                       CMP     R3, #0xFF
ROM:0002C55C 65 D0                       BEQ     loc_2C62A
ROM:0002C55E 92 7A                       LDRB    R2, [R2,#0xA]
ROM:0002C560 87 4E                       LDR     R6, =unk_9AE61
ROM:0002C562 13 2A                       CMP     R2, #0x13
ROM:0002C564 32 70                       STRB    R2, [R6]
ROM:0002C566 01 D0                       BEQ     loc_2C56C
ROM:0002C568 18 2A                       CMP     R2, #0x18       ; ?filtro caracteres abaixo de #18 (duvida)??
ROM:0002C56A 0B D1                       BNE     loc_2C584
ROM:0002C56C
ROM:0002C56C             loc_2C56C                               ; CODE XREF: sub_2C53E+28_j
ROM:0002C56C 83 4B                       LDR     R3, =off_1750
ROM:0002C56E 20 33                       ADDS    R3, #0x20 ; ' '
ROM:0002C570 C9 18                       ADDS    R1, R1, R3
ROM:0002C572 89 7B                       LDRB    R1, [R1,#0xE]
ROM:0002C574 01 29                       CMP     R1, #1
ROM:0002C576 05 D1                       BNE     loc_2C584
ROM:0002C578 FA 28                       CMP     R0, #0xFA ; '·'
ROM:0002C57A 01 D2                       BCS     loc_2C580
ROM:0002C57C
ROM:0002C57C             loc_2C57C                               ; CODE XREF: sub_2C53E+4C_j
ROM:0002C57C 13 1C                       ADDS    R3, R2, #0
ROM:0002C57E 11 E0                       B       loc_2C5A4
ROM:0002C580             ; ---------------------------------------------------------------------------
ROM:0002C580
ROM:0002C580             loc_2C580                               ; CODE XREF: sub_2C53E+3C_j
ROM:0002C580 53 1C                       ADDS    R3, R2, #1
ROM:0002C582 14 E0                       B       loc_2C5AE
ROM:0002C584             ; ---------------------------------------------------------------------------
ROM:0002C584
ROM:0002C584             loc_2C584                               ; CODE XREF: sub_2C53E+2C_j
ROM:0002C584                                                     ; sub_2C53E+38_j
ROM:0002C584 01 0A                       LSRS    R1, R0, #8
ROM:0002C586 03 D1                       BNE     loc_2C590
ROM:0002C588 80 28                       CMP     R0, #0x80 ; 'Ç' ; filtro caracteres acima de #80 (certeza)
ROM:0002C58A F7 D3                       BCC     loc_2C57C
ROM:0002C58C 13 1C                       ADDS    R3, R2, #0
ROM:0002C58E 7C E0                       B       loc_2C68A
..................................
..................................   continua
..................................
Substituindo o CMP R0, #0x80 por CMP R0, #0xFE, o problema foi resolvido (além de ter que substituir a fonte 14). Não foi necessário implementar a rotina de conversão e nem modificar nenhum filtro no 8032.

O novo firmware que envio inclui:
  • As modificações anteriores feitas pelo Viper3M (correção do time bug e legendas em cor amarela).
  • Espaçamento entre as linhas da legenda aumentado para poder comportar fontes maiores.
  • 6 tipos de fontes selecionáveis, conforme a implementação que o zeurt fez para o DV256K. Para selecionar as fontes, deve-se pressionar a tecla "subtitle" por 3 segundos.
  • Suporte a acentuação e caracteres especiais nos nomes de arquivos mostrados no filebrowser, bem como nas ID3 tags.

A seleção de fontes segue a seguinte correspondência:
1. Arial NB    --->  Arial Narrow Bold 23
2. Arial N      --->  Arial Narrow 23
3. Impact     --->  Impact 21
4. CourierNB  --->  Courier New Bold 21
5. CourierNB  --->  Courier New Bold 21
6. Verdana    --->  Verdana 22
7. Original     --->  Original do DV397H

As fontes são todas cp1252 (suporte às línguas européias ocidentais de alfabeto latino) e substituem as demais codificações (no firmware original, ao apertar por 3 segundos a tecla "subtitle", muda-se a codificação das legendas). Portanto, se você usa legendas em outras codificações (alfabeto cirílico, grego, hebreu, árabe etc) não deve atualizar o firmware, pois perderá o suporte a esses sistemas.

A fonte Courier New Bold 21 aparece duas vezes pois foi incluída no lugar da fonte cp1255, a qual possui dois subsistemas (1255-1 e 1255-2 usam a mesma fonte).

O que ainda pretendo estudar para incluir no futuro:
1. Incluir a seleção de cor da legenda no setup.
2. Aumentar o campo que informa o nome da fonte, para poder apresentar o nome completo da fonte.
3. Excluir a chamada para cp1255-2, o que excluiria uma das duas fontes Courier repetidas.

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #87 Online: Fevereiro 13, 2009, 11:07:03 pm »
Consegui! :yahoo!: Estou enviando um novo firmware modificado.

Parabéns de novo rictad!!  :clapping:
Só por curiosidade: uma coisa que descobri quando tentei implementar caracteres acentuados no FileBrowser foi que isso podia ser feito pelo menos por 2 modos diferentes: o FallenAngel implentou para o LG9xxx sem a Rotina de Conversão (provavelmente só alterando filtros), enquanto o xypro (seguindo  o br0max) chegou ao mesmo resultado usando a Rotina de Conversão e o filtro do 8032...
 
O que ainda pretendo estudar para incluir no futuro:
1. Incluir a seleção de cor da legenda no setup.
2. Aumentar o campo que informa o nome da fonte, para poder apresentar o nome completo da fonte.
3. Excluir a chamada para cp1255-2, o que excluiria uma das duas fontes Courier repetidas.

1. Já sei como fazer isso (todas as etapas). Só não fiz ainda (e enviei) por preguiça...  :-[ Pretendo enviar um pequeno roteiro mostrando como fazer isso nos LGs.
2. Não sei como fazer (não pesquisei).
3. Não sei, mas gostaria de saber (não pesquisei o suficiente).

Gostaria de fazer agora uma lista do que eu descobri que PODE ser implementado nos LGs (já que já foi implementado nos LGs8xxx e 9xxx, os quais tem estrutura com várias semelhanças com os LGs mais recentes):
1. Seleção da Posição (vertical) das legendas pelo menu.
2. Seleção do Tipo de Alinhamento (vertical) pelo menu.
3. Possibildade de reconhecimento de legendas externas com nomes diferentes dos arquivos .avi.
4. Possibilidade de seleção da Palete de cores (RGB ou YUV) para legendas .idx .sub
5. Implementação de TEMPO RESTANTE.
6. Quebra de linhas inteligente (que respeita os espaços entre as palavras), e balanceada (com a linha superior com tamanho o mais próximo possível da linha inferior).

É possível identificar os trechos dos Firmwares br0max e xypro responsáveis por cada uma dessas modificações. Porém, essa é uma tarefa muito demorada e que exige paciência. Deve-se fazer estudos comparativos entre as várias versões desses firmwares, e também com os originais. Não consegui encontrar todas as versões (as mais antigas sumiram). Além disso, uma versão mais recente de firmware alternativo as vezes é baseada numa versão mais recente de firmware original, impedindo que se compare diretamente uma versão recente com uma antiga. Outras peculiaridades: o xypro usa o ARM modificado do br0max (LG8xxx) para o seu firmware alternativo LG9xxx, e mantém o 8032 do LG9xxx.

Offline sedm

  • Novato
  • *
  • Mensagens: 11
  • Aprovação: +0/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #88 Online: Fevereiro 14, 2009, 01:42:20 pm »
Rictad,

Atualizei com seu firmware e correu tudo bem, as legendas melhoraram,
os únicos problemas que eu percebi, foram que as legendas do primeiro segundo do filme não aparecem e quando a legenda tem uma linha somente, ela fica na posição que ela ficaria se tivesse duas linhas, o normal é ela descer para a segunda linha, mas acho que esses problemas já tinham no firmware original.

Também achei que as legendas ficaram um pouco altas na tela e que poderiam ser maiores ainda, fonte 24 ou 25 e com o outline maior.

Mesmo assim já está ótimo, muito obrigado.

Sérgio

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Firmware do LG DV397H
« Responder #89 Online: Fevereiro 14, 2009, 02:46:39 pm »
Rictad,

Atualizei com seu firmware e correu tudo bem, as legendas melhoraram,
os únicos problemas que eu percebi, foram que as legendas do primeiro segundo do filme não aparecem e quando a legenda tem uma linha somente, ela fica na posição que ela ficaria se tivesse duas linhas, o normal é ela descer para a segunda linha, mas acho que esses problemas já tinham no firmware original.

É verdade, isso já acontecia antes. O problema da primeira linha não ficar mais para baixo é devido ao tipo de alinhamento. Estamos tentando mudar isso :). Como zeurt escreveu acima, a seleção do alinhamento vertical pelo menu seria ideal.


Também achei que as legendas ficaram um pouco altas na tela e que poderiam ser maiores ainda, fonte 24 ou 25 e com o outline maior.

A janela de legendas teve que ser aumentada para poder comportar o novo espaçamento entre linhas mantendo a quantidade de linhas em 4. Isso é normal. Mas a sensação de legendas mais altas se dá devido ao alinhamento citado anteriormente, que joga as primeiras linhas mais para cima do que para baixo. Se eu conseguir arrumar isso, a legenda ficará alinhada de baixo para cima.

zeurt, consegui criar o seguinte submenu dentro do menu display:

  1. SRT@Subtitle@Color
     00 01A6 0014 002B 04 00 01 FFFEE2 0C3D - ROM:2E4D
    1. White
       0020 00 - ROM:FED3
 => 2. Gray
       0021 01 - ROM:FED6
    3. Cyan
       0022 02 - ROM:FED9
    4. Yellow
       0023 03 - ROM:FEDC
    5. Gold
       0024 04 - ROM:FEDF

Os valores ainda são provisórios (bem como os nomes das cores). Mas como consigo saber ou determinar em qual endereço de memória o valor selecionado foi capturado? Parece que no formato de menus usado nos LGs essa informação não fica clara.

Das mudanças que você pretende fazer, a mais importante que eu acho no momento é a do alinhamento vertical. Isso ia ajudar muito na estética das legendas.
« Última modificação: Fevereiro 14, 2009, 04:07:48 pm por rictad »

FORUM.RYAN.COM.BR

Re: Firmware do LG DV397H
« Responder #89 Online: Fevereiro 14, 2009, 02:46:39 pm »