Exibir mensagens

Esta seção lhe permite ver todas as mensagens deste membro. Note que você só pode ver as mensagens das áreas às quais você tem acesso.


Mensagens - zeurt

Páginas: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 »
211
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« 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.

   

212
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« 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...

213
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« Online: Fevereiro 05, 2009, 03:32:43 pm »
Oi rictad, vale a pena ler o documento do NewAge: MPEG4 Subtitle Display in ARM (do yahoo group mt13x9). Tem muitas informações lá que podem ajudar a achar o que estamos buscando.
Tirei uma parte de lá:
 
"Let’s see what is passed to ARM:

byte Window ID   : the mpeg4 subtitle window
word X1      : subtitle_rect.left
word Y1      : subtitle_rect.top
word X2      : subtitle_rect.right
word Y2      : subtitle_rect.bottom
byte H_Align   : Horizontal alignment
            0x00: Left
            0x01: Center
            0x02: Right
byte Settings   : Miscellaneous purpose (bits)
            .......0: 0x00 Top alignment
            .......1: 0x01 Bottom alignment
            ....1...: 0x08 display all 256 characters in subtitles
            ...1....: 0x10 only ASCII 0x20..0x7E characters will be displayed
byte Space      : line spacing (space between subtitle lines in pixels)

So to call SetMpeg4SubtitleParams the input parameters must be in.

   Window ID      : R7
X1, Y1, X2, Y2   : global variables in xram
H_Align      : R5
Settings      : R3
Space         : xram"


Nesse Firmware analisado, R3 também é responsável por Settings. Veja que a opção TOP Alignment seria 0x00.

Estou enviando o documento.

214
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« Online: Fevereiro 04, 2009, 01:45:41 am »
Comparando a Rotina do DV397H com as de outros players, chego a conclusão que o tipo de alinhamento vertical pode ser definido em (destacado em verde):
B2:DAC4 7B 08                       mov     R3, #8
B2:DAC6 7D 81                       mov     R5, #0x81 ; 'ü'
B2:DAC8 7F 09                       mov     R7, #9

rictad, como você observou que o tipo de alinhamento vertical do DV397H é MIDDLE-BOTTOM, enquanto o do DV256K é MIDDLE-TOP, talvez mudar isso possa corrigir o problema dos caracteres cortados. O curioso é que no LG DV256K esse parametro não é definido nesse trecho (como disse alguns post atrás R3 não é usado).
De acordo com as observações do Ryan, nas rotinas que ele descreveu, mov R3,#8 nesses trechos pode definir não apenas o tipo de alinhamento vertical, como também o suporte a todos os caracteres (256 caracteres). Teria que testar outros valores para ver o que acontece. Você tem razão: nas rotinas dos outros firmwares, a distância entre as linhas é enviada junto com os 3 parametros acima (R3, R5 e R7).
Não sei se você está com disposição para insistir com isso tudo, considerando o problema que aconteceu com o seu player, mas caso estiver, está aqui mais uma sugestão...

215
LG DV256K / Re: LG DV256K - Dúvidas
« Online: Fevereiro 03, 2009, 08:34:45 pm »
Olá amigos!
..mas não consegui achar a resposta p/ o problema das legendas sumirem de uma hora pra outra...enquanto assisto o filme.

Ainda não se sabe a causa desse problema, nem a solução...

216
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« Online: Fevereiro 03, 2009, 06:31:30 pm »
Então eu segui as rotinas até a chamada a uma função que o IDA chama de ARM_GetChar, que deve ser familiar a vocês.
ARM_GetChar serve para o 8032 ler conteúdo da memória em determinado endereço do ARM.
Para maiores detalhes veja esse site - tópico MTK FIRMWARE ARM.

Sem querer fugir muito do assunto do tópico, alguém já viu isso acontecer? Uma alteração no firmware pode danificar a saída HDMI do player ou a entrada HDMI da TV?
Que pena esse efeito colateral que você teve... :( Os maiores danos que eu já ouvi falar, relacionados a modificações e atualizações de firmware foram na maioria devido a atualização mal-sucedida, seguida de tentativas intempestivas de soldagem do cabo, o que danificava a placa e/ou a porta serial, inutilizando o aparelho. Já no seu caso foi algo estranho que nunca ouvi falar. Talvez outros colegas do forum possam opinar com mais propriedade...

217
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« Online: Fevereiro 02, 2009, 12:48:46 am »
Estou enviando a Rotina Equivalente do LG DV256K (que não apresenta esse problema dos caracteres cortados):

B2:D767             ; =============== S U B R O U T I N E =======================================
B2:D767
B2:D767
B2:D767             BankSw_447_B2_D767:                     ; CODE XREF: B2_B940+110p
B2:D767                                                     ; DATA XREF: B0:B0_BS_447_B2_D767o ...
B2:D767 90 FC DD                    mov     DPTR, #XRAM_FCDD
B2:D76A E0                          movx    A, @DPTR
B2:D76B FF                          mov     R7, A
B2:D76C 13                          rrc     A
B2:D76D 13                          rrc     A
B2:D76E 54 3F                       anl     A, #0x3F
B2:D770 20 E0 03                    jb      ACC.0, B2_D776  ; Accumulator
B2:D773 02 D8 1A                    ljmp    B2_D81A
B2:D776             ; ---------------------------------------------------------------------------
B2:D776
B2:D776             B2_D776:                                ; CODE XREF: BankSw_447_B2_D767+9j
B2:D776 7F 02                       mov     R7, #2
B2:D778 12 04 F9                    lcall   B2_BS_88_B4_CE62
B2:D77B D2 2B                       setb    RAM_25.3
B2:D77D 7F 09                       mov     R7, #9
B2:D77F 12 04 BD                    lcall   B2_BS_78_B4_4CAB
B2:D782 7F 09                       mov     R7, #9
B2:D784 12 04 C3                    lcall   B2_BS_79_B4_47CF
B2:D787 90 FB EB                    mov     DPTR, #XRAM_FBEB
B2:D78A 74 0B                       mov     A, #0xB
B2:D78C F0                          movx    @DPTR, A
B2:D78D A3                          inc     DPTR
B2:D78E 74 07                       mov     A, #7
B2:D790 F0                          movx    @DPTR, A
B2:D791 E4                          clr     A
B2:D792 FB                          mov     R3, A
B2:D793 FD                          mov     R5, A
B2:D794 7F 09                       mov     R7, #9
B2:D796 12 04 E1                    lcall   B2_BS_84_B4_D9E6
B2:D799 E4                          clr     A
B2:D79A 90 FB 39                    mov     DPTR, #XRAM_FB39
B2:D79D F0                          movx    @DPTR, A
B2:D79E A3                          inc     DPTR
B2:D79F F0                          movx    @DPTR, A
B2:D7A0 90 FB 3B                    mov     DPTR, #XRAM_FB3B
B2:D7A3 F0                          movx    @DPTR, A
B2:D7A4 A3                          inc     DPTR
B2:D7A5 F0                          movx    @DPTR, A
B2:D7A6 90 FB 3E                    mov     DPTR, #XRAM_FB3E
B2:D7A9 74 02                       mov     A, #2
B2:D7AB F0                          movx    @DPTR, A
B2:D7AC A3                          inc     DPTR
B2:D7AD 74 BB                       mov     A, #0xBB ; '+'
B2:D7AF F0                          movx    @DPTR, A
B2:D7B0 90 FB 42                    mov     DPTR, #XRAM_FB42
B2:D7B3 E4                          clr     A
B2:D7B4 F0                          movx    @DPTR, A
B2:D7B5 A3                          inc     DPTR
B2:D7B6 74 87                       mov     A, #0x87 ; 'ç'
B2:D7B8 F0                          movx    @DPTR, A
B2:D7B9 D2 30                       setb    RAM_26.0
B2:D7BB E4                          clr     A
B2:D7BC 90 FB EB                    mov     DPTR, #XRAM_FBEB
B2:D7BF F0                          movx    @DPTR, A
B2:D7C0 FB                          mov     R3, A
B2:D7C1 FD                          mov     R5, A
B2:D7C2 7F 09                       mov     R7, #9
B2:D7C4 12 04 CF                    lcall   B2_BS_81_B4_DA67
B2:D7C7 E4                          clr     A
B2:D7C8 FD                          mov     R5, A
B2:D7C9 7F 09                       mov     R7, #9
B2:D7CB 12 04 C9                    lcall   B2_BS_80_B4_EE7F
B2:D7CE 7F 09                       mov     R7, #9
B2:D7D0 12 04 D5                    lcall   B2_BS_82_B4_EF6F
B2:D7D3 90 FB 39                    mov     DPTR, #XRAM_FB39
B2:D7D6 E4                          clr     A
B2:D7D7 F0                          movx    @DPTR, A
B2:D7D8 A3                          inc     DPTR
B2:D7D9 74 28                       mov     A, #0x28 ; '('
B2:D7DB F0                          movx    @DPTR, A
B2:D7DC 90 FB 3B                    mov     DPTR, #XRAM_FB3B
B2:D7DF E4                          clr     A
B2:D7E0 F0                          movx    @DPTR, A
B2:D7E1 A3                          inc     DPTR
B2:D7E2 74 04                       mov     A, #4
B2:D7E4 F0                          movx    @DPTR, A
B2:D7E5 90 FB 3E                    mov     DPTR, #XRAM_FB3E
B2:D7E8 74 02                       mov     A, #2
B2:D7EA F0                          movx    @DPTR, A
B2:D7EB A3                          inc     DPTR
B2:D7EC 74 94                       mov     A, #0x94 ; 'ö'
B2:D7EE F0                          movx    @DPTR, A
B2:D7EF 90 FB 42                    mov     DPTR, #XRAM_FB42
B2:D7F2 E4                          clr     A
B2:D7F3 F0                          movx    @DPTR, A
B2:D7F4 A3                          inc     DPTR
B2:D7F5 74 88                       mov     A, #0x88 ; 'ê'
B2:D7F7 F0                          movx    @DPTR, A
B2:D7F8 7D 81                       mov     R5, #0x81 ; 'ü'
B2:D7FA 7F 09                       mov     R7, #9
B2:D7FC 12 0B CB                    lcall   B2_BS_379_B4_C12B
B2:D7FF D2 70                       setb    RAM_2E.0
B2:D801 7F 8D                       mov     R7, #0x8D ; 'ì'
B2:D803 7E 00                       mov     R6, #0
B2:D805 12 04 5D                    lcall   B2_BS_62_B0_EBE6
B2:D808 BF 08 0D                    cjne    R7, #8, B2_D818
B2:D80B 90 FB 35                    mov     DPTR, #XRAM_FB35
B2:D80E E0                          movx    A, @DPTR
B2:D80F 64 11                       xrl     A, #0x11
B2:D811 60 05                       jz      B2_D818
B2:D813 7F 08                       mov     R7, #8
B2:D815 12 7D A3                    lcall   BankSw_112_B2_7DA3
B2:D818
B2:D818             B2_D818:                                ; CODE XREF: BankSw_447_B2_D767+A1j
B2:D818                                                     ; BankSw_447_B2_D767+AAj
B2:D818 C2 70                       clr     RAM_2E.0
B2:D81A
B2:D81A             B2_D81A:                                ; CODE XREF: BankSw_447_B2_D767+Cj
B2:D81A 22                          ret
B2:D81A             ; End of function BankSw_447_B2_D767
B2:D81A
B2:D81B


Ainda não analisei com muito cuidado, mas já notei algumas coisas diferentes:

a-)Aqui não tem mov R3,#8:
B2:D7F4 A3                          inc     DPTR
B2:D7F5 74 88                       mov     A, #0x88 ; 'ê'
B2:D7F7 F0                          movx    @DPTR, A
B2:D7F8 7D 81                       mov     R5, #0x81 ; 'ü'
B2:D7FA 7F 09                       mov     R7, #9
B2:D7FC 12 0B CB                    lcall   B2_BS_379_B4_C12B

b-)Os valores de wX1 e wY2 são diferentes (na segunda parte, já que na primeira parte são iguais).





218
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« Online: Fevereiro 02, 2009, 12:27:44 am »
Tá certo gente, falei besteira...  :dashhead1:

219
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« Online: Fevereiro 01, 2009, 11:39:31 pm »
Certo, zeurt! Bom saber que há espaço no final do bloco. Aproveitando sua dica de modificação, fiz uma parecida:
Código: [Selecionar]
B2:DA87 74 20        mov     A, #14   ; Tentativa de aumento da distância entre as linhas (20 em decimal)
B2:DA89 02 FE D9     ljmp B2_FED9
B2:DA8C FB           mov     R3, A
B2:DA8D FD           mov     R5, A
B2:DA8E 7F 09        mov     R7, #9
B2:DA90 12 05 D7     lcall   B2_BS_125_B5_B94D;  ?
...........
...........
...........
B2:FED9  90 FC 03    mov     DPTR, #XRAM_FC03
B2:FEDC  F0          movx    @DPTR, A
B2:FEDD  E4          clr   A
B2:FEDE  02 DA 8C    ljmp B2_DA8C

A única coisa que mudou foi aparecer novamente um background listrado na primeira fala de legenda, o qual sumiu depois.

Temos que ser bem detalhistas nesse negócio... Só uma dúvida: acho que teria que colocar CLR A antes de MOV A,#14. Pois, caso contrário, A ficará com um valor muito alto podendo corromper esse trecho...
(olhando a rotina, A ficaria com o valor de  #87 + #14). Ontem eu também esqueçi disso e enviei a sugestão sem esse detalhe (hoje cedo corrigi).

220
Problemas que encontrei... e como corrigí-los... ou pelo menos tentar...

1- As primeiras legendas de um arquivo não aparecem na tela e as subsequentes passam a aparecer fora de sincronia.
Descobri que isso ocorre quando o TEMPO de início da primeira legenda é 00:00:00. Basta mudar para 00:00:01 por exemplo, para resolver o problema. Vale a pena conferir isso no MaestroSBT (etapa 6 do Tutorial), logo antes de clicar em Generate: vá em Edit and Preview (verifique e corrija o tempo da primeira legenda caso necessário).

2- Legendas que param de ser exibidas sempre nos mesmos pontos; nesse caso há duas possibilidades: a-) as legendas desaparecem, ou b-) uma legenda fica  sendo exibida continuamente na tela (não desaparece) e as outras subsequentes não aparecem.
Se o player apresenta a função Resume-MPEG4, basta pressionar STOP e em seguida PLAY para as legendas voltarem a aparecer (na maioria das vezes).
Descobri que esse problema é causado por legendas sobrepostas na linha do tempo (Overlapping Subtitles). Sorte nossa que isso pode ser facilmente corrigido com o Subtitle Workshop (etapa 5 do Tutorial). Antes de salvar a legenda .ssa, vá em Tools> Information and Errors> Information and Errors e verifique se há alguma ocorrência de Overlapping Subtitle. Se houver, clique em Fix Errors para corrigir não apenas esse, como também outros tipos de erros. É possível corrigir os erros um a um, ou também mexer nas configurações do programa para que seja corrigido apenas o que interessar.

3- Legendas que param de ser exibidas em pontos variados (cada vez num ponto diferente); a interrupção é semelhante a descrita para o ítem 2.
Descobri que esse tipo de interrupção das legendas tem relação direta com o DVD player usado: por exemplo, fiz os testes em 3 players: LG DV256K, Proview DP-816, e Philips HTS-3011, todos Mediatek. Nesse quesito, o que se saiu melhor foi o Proview: praticamente não ocorreu esse tipo de interrupção nesse player. Em segundo lugar ficou o LG (com um número médio de interrupções, que acabam incomodando). Em último lugar ficou o Philips (com um número maior de interrupções que incomodam bastante). Fiz inúmeros testes, mexi nas mais variadas configurações para tentar entender ou resolver o problema nos players problemáticos mas ainda não consegui. Se descobrir algo novo, atualizarei este post.

4- Artefatos lineares abaixo das legendas: pode aparecer algo semelhante a um sublinhado abaixo da janela de exibição das legendas.
Isso também depende do player: aparece no Proview e no LG, e não aparece no Philips. Normalmente, com a posição vertical usual escolhida para as legendas, esse artefato fica escondido pelo Overscan da TV. Mesmo assim, para não ter dúvida é melhor evitar esse problema: no Maestro SBT, em Rendering não se esqueça de marcar a opção Don't Clip Bitmaps (o arquivo gerado ficará maior, mas o problema estará resolvido).

5- Quando se utiliza o Outline (de qualquer largura), dependendo da Fonte, do Tamanho, e da Posição das Legendas, e também dependendo do DVD-Player, pode existir um achatamento de alguns caracteres (na parte de cima, na parte de baixo, ou em ambas), em uma ou mais linhas de legenda (por exemplo: as vezes o achatamento ocorre apenas na parte de cima dos caracteres da segunda linha de legenda).
Esse achatamento é discreto e pode ser visto mais facilmente em caracteres arredondados como “o” ou “c”.
A única maneira que descobri para resolver isso foi: após ter escolhido a Fonte desejada (ex: Arial Narrow), fazer tentativas, modificando a posição e o tamanho, até obter o resultado ideal. Por exemplo: Arial Narrow com Bold, tam 28, com Bottom Margin 45, fica ótimo no LG DV256K e no Proview DP-816. Já no Philips HTS-3011, descobri que tinha que mudar o tamanho da fonte para 27 e também mudar a Bottom Margin. Portanto fazendo pequenas mudanças (para cima ou para baixo) desses 2 parametros (Tamanho da Fonte e Bottom Margin) acaba se chegando a um bom resultado. Daí é só manter sempre essas configurações.
Obs: Fiz todos os testes em TV CRT (não sei isso também ocorre em LCD/Plasma, já que me parece ser algo relacionado com a resolução da tela).

6- Colocar uma legenda .srt na mesma pasta de um par .idx/.sub pode confundir alguns DVD-players. Foi o que ocorreu com o Proview DVP-816, que muitas vezes não exibia a .idx/.sub nessa situação (apenas a .srt). Já com o LG e com o Philips isso não ocorreu.

7- Pode ocorrer um travamento (crash) do player sempre no mesmo ponto do filme quando se usa legendas .idx/.sub pelo processo descrito no tutorial.
Isso ocorreu em poucos filmes que testei, mas mesmo assim, considerei este problema como o mais grave e desagradável que detectei nesses testes. Quando ocorre o problema, o player trava sempre no mesmo ponto, e então é necessário desligá-lo da tomada e ligá-lo novamente para resolver. Quando se passa pelo ponto crítico com a legenda .idx/.sub desligada não ocorre nenhum problema. Não depende do player, pois ocorreu nos 3 aparelhos que testei.
Estou confiante que com a utilização do Son2Vobsub 1.0 Mod 4b isso deixe de acontecer (já atualizei o tutorial disponibilizando essa versão). Os testes iniciais que fiz foram com o Son2Vobsub 1.0 Mod3. Até agora, com a última versão do programa, o problema não se manifestou em nenhum teste... Qualquer novidade, eu atualizo este post.
Editado (13/04/2009): Infelizmente, após alguns testes, constatei que o uso do Son2VobSub 1.0 Mod 4 não resolve o problema do crash que ocorre em alguns arquivos.

Páginas: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 »