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

0 Membros e 1 Visitante estão vendo este tópico.

Offline ronison

  • Novato
  • *
  • Mensagens: 14
  • Aprovação: +0/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #270 Online: Janeiro 07, 2008, 05:40:56 pm »
Olá Ryan.
Eneris e eu estamos "suando" para fazer o menu de fontes do 5965k - que a Philips tentou matar - funcionar. Fizemos, onde tinha só Standard, aparecer 4 opções para fonte, porém, quando acionadas não fazem nenhuma modificação. Creio que tem mudar algo no código Assembly, e issoé que não sei fazer nada, a não ser que me digam os códigos que inserir.
Estive também tentando mudar os códigos sub_style e sec. para o menu de cores, com os pulos de banco (o que você mensionou numa página anterior), mas não ficou idêntica, mesmo colocando os códigos que são específicos do 5965k.

Mas voltando ao menu de fontes, ele ficou assim:


[O Eneris testou e disse que o menu aparece como está acima, mas não modifica a fonte do filme quando selecionado qualquer uma delas].


[Aqui está os códigos hexadecimais que acrescentei: Os pointers, como o JMaraujo instruiu].

Se puder nos ajudar de alguma forma eu agradeceria. Estou entrando nesse mundo de firmware agora, mas já estou fascinado.

Grande abraço.

O que tentamos fazer está aqui:
http://www.4shared.com/file/29757260/9bab3442/DVP5965K_93mod_Naasom.html?dirPwdVerified=67cd922f

Me corrijam se eu estiver errado, mas o que o naason fez foi apenas adicionar opções ao menu. O próximo passo seria adicionar os novos tipos de fontes (ou usar as que já existem) na área de dados e usar a rotina que altera o tipo de fonte no registrador correspondente.

Um detalhe importante é que este item de menu não parece estar chamando nehuma rotina, pois sua posição 10 está com 0000. Isto está correto? Não seria interessante ele chamar a Sub_Style?

Outro detalhe é que a Font 1 é referenciada por 00-01 (Font[00-01]), Font 2 por 02-04, (Font 2[02-04]), e assim por diante,  no mtkRemaker. Não seria o caso de colocar estes valores: Font1=00, Font 2=02, Fonte 3=05, Font 4=07...

Abraço,
« Última modificação: Janeiro 08, 2008, 01:11:36 pm por ronison »

Offline ronison

  • Novato
  • *
  • Mensagens: 14
  • Aprovação: +0/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #271 Online: Janeiro 08, 2008, 07:43:06 pm »
Senhores, tenho o prazer de anunciar que terminei o firmware do DVP5965K com fontes selecionáveis no Menu! Está 100% funcional. Estou melhorando as fontes e postarei aqui o que fiz para avaliação! (quando chegar em casa eu posto o firmware).

Considerações iniciais:
  • É preciso alterar a subrotina que o Ryan colocou neste post para destravar a fonte 7 (e otimizá-la)
  • É preciso alterar Sub_Style para que a fonte escolhida seja carregada no início (e não apenas quando entrar no setup)
  • É preciso alterar o menu de legendas divx, adicionando as novas opções (podemos ter até 5). Cada item deve conter o valor da respectiva fonte, e não 1, 2, 3... como prefere a Philips  ;) (Esta parte não vou mostrar aqui pois já foi bastante discutido no post)

As alterações:

Primeiro na rotina de seleção das fontes (a BankSw_681_B1_E60B)


B1:E60B             ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B1:E60B
B1:E60B
B1:E60B             BankSw_681_B1_E60B:           ; DATA XREF: B0:B0_BS_681_B1_E60Bo
B1:E60B 7F E2       mov     R7, #0xE2
B1:E60D 7E 07       mov     R6, #7
B1:E60F 12 1B 84    lcall   ARM_GetChar_B1_BS
B1:E612 BF 01 05    cjne    R7, #1, B1_E61A
B1:E615 D2 74       setb    RAM_2E.4
B1:E617 12 1D 1C    lcall   B1_BS_166_B4_ABBB
B1:E61A
B1:E61A             B1_E61A:                      ; Aqui começa o SWITCH-CASE das fontes
B1:E61A 7F 44       mov     R7, #0x44 ; 'D'       ; Pega o valor da epprom selecionada no menu  (que já existe)
B1:E61C 7E 00       mov     R6, #0
B1:E61E 12 1B 90    lcall   Pref_GetChar_B1BS
B1:E621 BF 01 07    cjne    R7, #1, B1_E62B
B1:E624 7F 0B       mov     R7, #0xB              ; Veja que aqui ele coloca, na marra, em R7 o valor da Fonte 7 (0xB)
B1:E626 12 1E D8    lcall   OSD_SetFont_B1_BS
B1:E629 80 27       sjmp    B1_E652
B1:E62B             ; ---------------------------------------------------------------------------
B1:E62B
B1:E62B             B1_E62B:                      ; CODE XREF: BankSw_681_B1_E60B+16j
B1:E62B 7F 44       mov     R7, #0x44 ; 'D'       ; Verifica o valor de "DivX Subtitle" na eeprom (sempre "0")
B1:E62D 7E 00       mov     R6, #0
B1:E62F 12 1B 90    lcall   Pref_GetChar_B1BS
B1:E632 EF          mov     A, R7
B1:E633 70 07       jnz     B1_E63C
B1:E635 7F 0B       mov     R7, #0xB              ; Aqui de novo R7 = 0xB
B1:E637 12 1E D8    lcall   OSD_SetFont_B1_BS
B1:E63A 80 16       sjmp    B1_E652
B1:E63C             ; ---------------------------------------------------------------------------
B1:E63C
B1:E63C             B1_E63C:                      ; CODE XREF: BankSw_681_B1_E60B+28j
B1:E63C 7F 44       mov     R7, #0x44 ; 'D'       ; Verifica o valor de "DivX Subtitle" na eeprom (sempre "0")
B1:E63E 7E 00       mov     R6, #0
B1:E640 12 1B 90    lcall   Pref_GetChar_B1BS
B1:E643 BF 02 07    cjne    R7, #2, B1_E64D
B1:E646 7F 0B       mov     R7, #0xB              ; Aqui de novo R7 = 0xB
B1:E648 12 1E D8    lcall   OSD_SetFont_B1_BS
B1:E64B 80 05       sjmp    B1_E652
B1:E64D             ; ---------------------------------------------------------------------------
B1:E64D
B1:E64D             B1_E64D:                      ; CODE XREF: BankSw_681_B1_E60B+38j
B1:E64D 7F 0B       mov     R7, #0xB              ; Aqui de novo R7 = 0xB - Enfim, numca será outra fonte diferente
B1:E64F 12 1E D8    lcall   OSD_SetFont_B1_BS
B1:E652
B1:E652             B1_E652:                      ; CODE XREF: BankSw_681_B1_E60B+1Ej
B1:E652                                           ; BankSw_681_B1_E60B+2Fj ...

B1:E652 7F 12       mov     R7, #0x12
B1:E654 12 1D 6A    lcall   OSD_Text_Init_B1BS
B1:E657 7F 12       mov     R7, #0x12
B1:E659 02 1D 70    ljmp    B1_BS_180_B3_E9AF
B1:E659             ; End of function BankSw_681_B1_E60B


O que está em vermelho some da rotina (há uma redundancia desnecessária aqui). O que está destacado em verde exeplicita como a Philips fez pra travar na fonte 7 (0xB).
A nova versão da rotina fica assim:


B1:E60B             ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B1:E60B
B1:E60B             BankSw_681_B1_E60B:           
B1:E60B 7F E2       mov     R7, #0xE2
B1:E60D 7E 07       mov     R6, #7
B1:E60F 12 1B 84    lcall   ARM_GetChar_B1_BS
B1:E612 BF 01 05    cjne    R7, #1, B1_E61A
B1:E615 D2 74       setb    RAM_2E.4
B1:E617 12 1D 1C    lcall   B1_BS_166_B4_ABBB
B1:E61A             B1_E61A:               
B1:E61A 7F 44       mov     R7, #0x44
B1:E61C 7E 00       mov     R6, #0
B1:E61E 12 1B 90    lcall   Pref_GetChar_B1BS

B1:E621 12 1E D8    lcall   OSD_SetFont_B1_BS
B1:E624 7F 12       mov     R7, #0x12
B1:E626 12 1D 6A    lcall   OSD_Text_Init_B1BS
B1:E629 7F 12       mov     R7, #0x12
B1:E62B 02 1D 70    ljmp    B1_BS_180_B3_E9AFB
B1:E62E ;-----------------------------------------------------------------------------------------------------------
B1:E62E 00         nop
B1:E62F 00         nop
B1:E630 00         nop
B1:E631 00         nop
B1:E632 00         nop
B1:E633 00         nop
B1:E634 00         nop
B1:E635 00         nop
B1:E636 00         nop
B1:E637 00         nop
B1:E638 00         nop
B1:E639 00         nop
B1:E63A 00         nop
B1:E63B 00         nop
B1:E63C 00         nop
B1:E63D 00         nop
B1:E63E 00         nop
B1:E63F 00         nop
B1:E640 00         nop
B1:E641 00         nop
B1:E642 00         nop
B1:E643 00         nop
B1:E644 00         nop
B1:E645 00         nop
B1:E646 00         nop
B1:E647 00         nop
B1:E648 00         nop
B1:E649 00         nop
B1:E64A 00         nop
B1:E64B 00         nop
B1:E64C 00         nop
B1:E64D 00         nop
B1:E64E 00         nop
B1:E64F 00         nop
B1:E650 00         nop
B1:E651 00         nop
B1:E652 00         nop
B1:E653 00         nop
B1:E654 00         nop
B1:E655 00         nop
B1:E656 00         nop
B1:E657 00         nop
B1:E658 00         nop
B1:E659 00         nop
B1:E659 ;-----------------------------------------------------------------------------------------------------------


A parte destacada em azul é a mais importante. Ela lê da EPPROM o valor selecionado no Menu e o considera como sendo o número real da fonte, passando em seguida para a rotina que faz o resto do trabalho (OSD_SetFont_B1_BS).

Agora vamos à Sub_Style:

B1:D2B6             SUB_Style:                    ; CODE XREF: B1_8883+5Cp
B1:D2B6 EF          mov     A, R7
B1:D2B7 24 FE       add     A, #0xFE ; '¦'
B1:D2B9 60 5B       jz      B1_D316
B1:D2BB 14          dec     A
B1:D2BC 60 58       jz      B1_D316
B1:D2BE 14          dec     A
B1:D2BF 60 61       jz      B1_D322
B1:D2C1 24 03       add     A, #3
B1:D2C3 70 60       jnz     B1_D325
B1:D2C5 E4          clr     A                   
B1:D2C6 FF          mov     R7, A

B1:D2C7 12 1E D8    lcall   B1_BS_240_B3_E9FE
B1:D2CA D2 75       setb    RAM_2E.5
B1:D2CC 7F 12       mov     R7, #0x12
B1:D2CE 12 1D 58    lcall   B1_BS_176_B3_4CF4
B1:D2D1 7F 12       mov     R7, #0x12
B1:D2D3 12 1D 5E    lcall   B1_BS_177_B3_72CE

B1:D2D6 E4          clr     A                     
B1:D2D7 90 FC 1F    mov     DPTR, #XRAM_FC1F      ; OSD_Colors
B1:D2DA F0          movx    @DPTR, A
B1:D2DB A3          inc     DPTR
B1:D2DC 74 02       mov     A, #2                 ; Cor do preenchimento
B1:D2DE F0          movx    @DPTR, A
B1:D2DF 7B 03       mov     R3, #0                ; Define a cor de background. Coloque zero para livrar-se dela
B1:D2E1 E4          clr     A
B1:D2E2 FD          mov     R5, A
B1:D2E3 7F 12       mov     R7, #0x12
B1:D2E5 12 1D 64    lcall   OSD_TextColor_B1_BS_178_B3_C399
B1:D2E8 E4          clr     A
B1:D2E9 FD          mov     R5, A
B1:D2EA 7F 12       mov     R7, #0x12
B1:D2EC 12 1F 3E    lcall   B1_BS_257_B3_E4D7
B1:D2EF 7F 12       mov     R7, #0x12
B1:D2F1 12 1D 6A    lcall   B1_BS_179_B3_58BA
B1:D2F4 7F 12       mov     R7, #0x12
B1:D2F6 12 1D 70    lcall   B1_BS_180_B3_E9AF
B1:D2F9 12 E0 FC    lcall   B1_E0FC
B1:D2FC 7F 19       mov     R7, #0x19
B1:D2FE 7E 00       mov     R6, #0
B1:D300 12 1B BA    lcall   B1_BS_107_B3_B645
B1:D303 74 FF       mov     A, #0xFF
B1:D305 90 FD 77    mov     DPTR, #XRAM_FD77
B1:D308 F0          movx    @DPTR, A
B1:D309 A3          inc     DPTR
B1:D30A F0          movx    @DPTR, A
B1:D30B 90 FD 7E    mov     DPTR, #XRAM_FD7E
B1:D30E F0          movx    @DPTR, A
B1:D30F A3          inc     DPTR
B1:D310 F0          movx    @DPTR, A
B1:D311 C2 74       clr     RAM_2E.4
B1:D313 02 1D 1C    ljmp    B1_BS_166_B4_ABBB
B1:D316             ; ---------------------------------------------------------------------------
B1:D316
B1:D316             B1_D316:                      ; CODE XREF: SUB_Style+3j
B1:D316                                           ; SUB_Style+6j
B1:D316 7F 05       mov     R7, #5
B1:D318 12 1E 36    lcall   B1_BS_213_B6_6CEB
B1:D31B 50 08       jnc     B1_D325
B1:D31D 7F 01       mov     R7, #1
B1:D31F 02 1E 54    ljmp    B1_BS_218_B4_2D0C
B1:D322             ; ---------------------------------------------------------------------------
B1:D322
B1:D322             B1_D322:                      ; CODE XREF: SUB_Style+9j
B1:D322 12 E0 FC    lcall   B1_E0FC
B1:D325
B1:D325             B1_D325:                      ; CODE XREF: SUB_Style+Dj
B1:D325                                           ; SUB_Style+65j
B1:D325 22          ret
B1:D325             ; End of function SUB_Style


Como já é sabido por todos, é no código marcado em vermelho que o tipo da fonte (no caso 0x0) é determinado pela Sub_Style. Como também já foi dito pelo Ryan em outro post, alterando este código por 7F XX (mov R7 XX), onde XX é o tipo da fonte, é possível alterar a fonte da legenda na inicialização.
Pois bem, no caso, o que queremos é que o tipo da fonte seja pego na EEPROM, no endereço usado pelo menu de seleção. Acontece que não temos como adicionar o código necessário nesta rotina sem deslocá-la. Para tanto, o que fiz foi tirar uma parte do código (vermelho + verde) e criei uma sub-rotina (aproveitando para liberar o espaço para a chamada) que realiza o trabalho de pegar o valor na EPPROM e altera o tipo de fonte.

Segue a Sub_Style alterada:

B1:D2B6             SUB_Style:
B1:D2B6 EF          mov     A, R7
B1:D2B7 24 FE       add     A, #0xFE ; '¦'
B1:D2B9 60 5B       jz      B1_D316
B1:D2BB 14          dec     A
B1:D2BC 60 58       jz      B1_D316
B1:D2BE 14          dec     A
B1:D2BF 60 61       jz      B1_D322
B1:D2C1 24 03       add     A, #3
B1:D2C3 70 60       jnz     B1_D325
B1:D2C5 12 F8 DB    lcall   B1_F8DB
B1:D2C8 ;-----------------------------------------------------------------------------------------------------------
B1:D2C8 00         nop
B1:D2C9 00         nop
B1:D2CA 00         nop
B1:D2CB 00         nop
B1:D2CC 00         nop
B1:D2CD 00         nop
B1:D2CE 00         nop
B1:D2CF 00         nop
B1:D2D0 00         nop
B1:D2D1 00         nop
B1:D2D2 00         nop
B1:D2D3 00         nop
B1:D2D4 00         nop
B1:D2D5 00         nop
B1:D2D5 ;-----------------------------------------------------------------------------------------------------------

B1:D2D6 E4          clr     A                     ; Aqui a cor de contorno da legenda é definida como transparente (zero).
B1:D2D6                                           ; É preciso mudar isso, principalmente se você desligar o background
B1:D2D7 90 FC 1F    mov     DPTR, #XRAM_FC1F      ; OSD_Colors
B1:D2DA F0          movx    @DPTR, A
B1:D2DB A3          inc     DPTR
B1:D2DC 74 02       mov     A, #2                 ; Cor do preenchimento
B1:D2DE F0          movx    @DPTR, A
B1:D2DF 7B 03       mov     R3, #3                ; Define a cor de background. Coloque zero para livrar-se dela
B1:D2E1 E4          clr     A
B1:D2E2 FD          mov     R5, A
B1:D2E3 7F 12       mov     R7, #0x12
B1:D2E5 12 1D 64    lcall   OSD_TextColor_B1_BS_178_B3_C399
B1:D2E8 E4          clr     A
B1:D2E9 FD          mov     R5, A
B1:D2EA 7F 12       mov     R7, #0x12
B1:D2EC 12 1F 3E    lcall   B1_BS_257_B3_E4D7
B1:D2EF 7F 12       mov     R7, #0x12
B1:D2F1 12 1D 6A    lcall   B1_BS_179_B3_58BA
B1:D2F4 7F 12       mov     R7, #0x12
B1:D2F6 12 1D 70    lcall   B1_BS_180_B3_E9AF
B1:D2F9 12 E0 FC    lcall   B1_E0FC
B1:D2FC 7F 19       mov     R7, #0x19
B1:D2FE 7E 00       mov     R6, #0
B1:D300 12 1B BA    lcall   B1_BS_107_B3_B645
B1:D303 74 FF       mov     A, #0xFF
B1:D305 90 FD 77    mov     DPTR, #XRAM_FD77
B1:D308 F0          movx    @DPTR, A
B1:D309 A3          inc     DPTR
B1:D30A F0          movx    @DPTR, A
B1:D30B 90 FD 7E    mov     DPTR, #XRAM_FD7E
B1:D30E F0          movx    @DPTR, A
B1:D30F A3          inc     DPTR
B1:D310 F0          movx    @DPTR, A
B1:D311 C2 74       clr     RAM_2E.4
B1:D313 02 1D 1C    ljmp    B1_BS_166_B4_ABBB
B1:D316             ; ---------------------------------------------------------------------------
B1:D316
B1:D316             B1_D316:           
B1:D316 7F 05       mov     R7, #5
B1:D318 12 1E 36    lcall   B1_BS_213_B6_6CEB
B1:D31B 50 08       jnc     B1_D325
B1:D31D 7F 01       mov     R7, #1
B1:D31F 02 1E 54    ljmp    B1_BS_218_B4_2D0C
B1:D322             ; ---------------------------------------------------------------------------
B1:D322
B1:D322             B1_D322:           
B1:D322 12 E0 FC    lcall   B1_E0FC
B1:D325
B1:D325             B1_D325:
B1:D325 22          ret
B1:D325             ; End of function SUB_Style


O que está em Azul é a chamada a sub-rotina que engloba a parte retirada do código e a parte que pega o valor na EPPROM.
Segue a sub-rotina:

B1:F8DB     ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ NOVA S U B R O  T I N A ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦

B1:F8DB 7F 44       mov     R7, #0x44
B1:F8DD 7E 00       mov     R6, #0
B1:F8DF 12 1B 90    lcall   Pref_GetChar_B1BS

B1:F8E2 12 1E D8    lcall   B1_BS_240_B3_E9FE
B1:F8E5 D2 75       setb    RAM_2E.5
B1:F8E7 7F 12       mov     R7, #0x12
B1:F8E9 12 1D 58    lcall   B1_BS_176_B3_4CF4
B1:F8EC 7F 12       mov     R7, #0x12
B1:F8EE 12 1D 5E    lcall   B1_BS_177_B3_72CE
B1:F8F1 22          ret

Percebam aqui de novo a parte em azul que pega na EPPROM o valor da fonte selecionada no menu. Com isto está pronto.

E é isso pessoal, espero a avaliação e os comentários de vocês. Mais tarde coloco o firmware pra download. Quero discutir um pouco das minhas descobertas sobre o bug do "div by 4" das legendas.  8)

Abraços,
« Última modificação: Janeiro 09, 2008, 08:51:42 pm por ronison »

FORUM.RYAN.COM.BR

Re: Firmware MT13x9: Log de Descobertas
« Responder #271 Online: Janeiro 08, 2008, 07:43:06 pm »

Offline doctorxyz

  • Novato Prolixo
  • **
  • Mensagens: 63
  • Aprovação: +4/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #272 Online: Janeiro 10, 2008, 04:12:57 am »
ronison,

Torço para que você consiga postar logo este novo firmware.

Se me permite, uma pergunta:

Você usou base o firmware do naasom (feito com apoio do eneris), postado no HTFORUM sob o título "NOVO FIRMWARE 5965K COM GO-TO!!!" no htforum em 18-12-2007?

Todos,

Humilde sugestão: Sempre que possível, mantenham nos novos firmwares as funções dos firmwares imediatamente anteriores.

Estou estudando como agregar no Philips DVP-5965K/55...
A) Carregamento automático de legenda
 How to - Detalhes a serem traduzidos e colocados no log de descobertas
 (http://tech.groups.yahoo.com/group/mt13x9/message/8340)
B) Nomes longos de arquivos a partir da USB
 Implentação bem sucedida no 5980/12
(http://board.softpedia.com/index.php?s=&showtopic=8736&view=findpost&p=30575)
 Detalhes técnicos a serem traduzidos e colocados no log de descobertas
 (http://tech.groups.yahoo.com/group/mt13x9/messages/8104?threaded=1&m=e&var=1&tidx=1)
 (http://tech.groups.yahoo.com/group/mt13x9/messages/8225?threaded=1&m=e&var=1&tidx=1)

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware MT13x9: Log de Descobertas
« Responder #273 Online: Janeiro 10, 2008, 10:49:08 am »
Gente,

Só estou vindo aqui agora porque recebi um e-mail de Ronison me pedindo para dar uma olhada neste tópico.

Infelizmente, estive "dando um tempo" com firmware porque preciso estudar coisas que são relacionadas com o meu ganha-pão. Talvez eu volte à ativa na próxima semana, mas isso ainda é incerto.

pauloturij,

Não faço a menor idéia agora de onde estão as imagens que você pediu. Lamento.
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 ronison

  • Novato
  • *
  • Mensagens: 14
  • Aprovação: +0/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #274 Online: Janeiro 10, 2008, 02:27:51 pm »
ronison,

Torço para que você consiga postar logo este novo firmware.
Infelizmente, não tive tempo de fazer isso ontem.  De toda forma, estou tentando decifrar o enigma do "div by 4" antes de fechar. O que descobri é que, no firmware baixado do site da Philips esta regra não é atendida, como também não é atendida a regra de inversão das cores da fonte. Outro detalhe importante é que, a Fonte 01 do firmware original possui 279 caracteres, e não 256.

Se me permite, uma pergunta:

Você usou base o firmware do naasom (feito com apoio do eneris), postado no HTFORUM sob o título "NOVO FIRMWARE 5965K COM GO-TO!!!" no htforum em 18-12-2007?

Todos,

Humilde sugestão: Sempre que possível, mantenham nos novos firmwares as funções dos firmwares imediatamente anteriores.
Concordo. E sim, usei a versão do naason.

Estou estudando como agregar no Philips DVP-5965K/55...
A) Carregamento automático de legenda
 How to - Detalhes a serem traduzidos e colocados no log de descobertas
 (http://tech.groups.yahoo.com/group/mt13x9/message/8340)
B) Nomes longos de arquivos a partir da USB
 Implentação bem sucedida no 5980/12
(http://board.softpedia.com/index.php?s=&showtopic=8736&view=findpost&p=30575)
 Detalhes técnicos a serem traduzidos e colocados no log de descobertas
 (http://tech.groups.yahoo.com/group/mt13x9/messages/8104?threaded=1&m=e&var=1&tidx=1)
 (http://tech.groups.yahoo.com/group/mt13x9/messages/8225?threaded=1&m=e&var=1&tidx=1)
Pelo que eu já vi no assembly aqui não está tão difícil fazer o carregamento automático. Será a próxima empreitada.  8)

Offline doctorxyz

  • Novato Prolixo
  • **
  • Mensagens: 63
  • Aprovação: +4/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #275 Online: Janeiro 10, 2008, 10:09:51 pm »
A tabela de tipos de mídia no ARM do Philips DVP5965K/55 possui todos os registros do Proview DVP-858, e também um registro específico para a extensão .DIV:

12 03 44 49 56 00 00 DIV
« Última modificação: Janeiro 10, 2008, 10:37:41 pm por doctorxyz »

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware MT13x9: Log de Descobertas
« Responder #276 Online: Janeiro 11, 2008, 12:09:41 am »
Detalhes técnicos a serem traduzidos e colocados no log de descobertas
 (http://tech.groups.yahoo.com/group/mt13x9/messages/8104?threaded=1&m=e&var=1&tidx=1)
 (http://tech.groups.yahoo.com/group/mt13x9/messages/8225?threaded=1&m=e&var=1&tidx=1)

Se com "traduzir" você quer dizer "explicar de uma maneira mais clara", então OK.

Meras traduções de idioma não devem ser colocadas neste tópico.

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 doctorxyz

  • Novato Prolixo
  • **
  • Mensagens: 63
  • Aprovação: +4/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #277 Online: Janeiro 11, 2008, 09:14:21 pm »
Detalhes técnicos a serem traduzidos e colocados no log de descobertas
 (http://tech.groups.yahoo.com/group/mt13x9/messages/8104?threaded=1&m=e&var=1&tidx=1)
 (http://tech.groups.yahoo.com/group/mt13x9/messages/8225?threaded=1&m=e&var=1&tidx=1)

Se com "traduzir" você quer dizer "explicar de uma maneira mais clara", então OK.

Meras traduções de idioma não devem ser colocadas neste tópico.



Jefferson,

Sim, a idéia é explicar de uma maneira mais clara. Quando conseguir atingir o objetivo "carregamento automático de legendas no DVP5965K/55" faço um passo-a-passo explicando claramente, para que outros colegas possam fazer o mesmo.

Mas antes, gostaria de usar este tópico para compartilhar o que estou descobrindo em termos de tabela de códigos ARM e funções ARM / 8032.

É aqui o local correto para postar isso?

Se sim, mantenha o texto; senão, indique um tópico para eu postar/criar, apague, ou ainda, envie para o lixão ok... Obrigado!

Ronison e pessoal,

Sobre Carregamento automático de legendas no DVP5965K/55

Se alguem já tentou fazer isso lendo...
- Smart Loading of text subtitles in DMF -> http://hej456.fasthoster.de/Smart.Loading.of.subs.in.DMF.zip
- mt13x9 Message Re Doc Autoload subtitles in DMF firmware -> http://tech.groups.yahoo.com/group/mt13x9/message/8340

Saiba que eu também já tentei, mas travei em um determinado ponto.

Bom, descobri onde está a Tabela de tipos de mídia no ARM Code – Philips DVP5965K/55...

ROM:0004A996 12 03 41 56 49 00 00 AVI
ROM:0004A99D 12 03 56 49 44 00 00 VID
ROM:0004A9A4 12 04 44 49 56 58 00 DIVX
ROM:0004A9AB 12 03 44 49 56 00 00 DIV
ROM:0004A9B2 14 03 4D 50 34 00 00 MP4
ROM:0004A9B9 14 03 4D 34 41 00 00 M4A

... a word que indica o endereço de chamada para rotina 8032 Remote_DivxPlayback, após pressionar a tecla subtitle (29) no DVP5965K/55...

B4:5FE8 61 8F                 .word B4_618F
B4:5FEA 29                    .byte 0x29

... e por fim, a rotina 8032 Remote_DivxPlayback propriamente dita, que por sua vez chama a rotina 8032 Subtitle_loading (B4:2C28):

B4:618F             Remote_DivxPlayback:                          ; DATA XREF: B4:5FE8 o
B4:618F
B4:618F             ; FUNCTION CHUNK AT B4:6250 SIZE 00000003 BYTES
B4:618F
B4:618F 12 2C 28              lcall Subtitle_loading
B4:618F
B4:6192 EF                    mov   A, R7
B4:6193 24 FF                 add   A, #0xFF
B4:6195 92 6D                 mov   RAM_2D.5, C
B4:6197 02 62 50              ljmp  B4_6250
B4:6197
B4:6197             ; End of function DivX_Tecla_29
B4:6197

Se alguém me ajudar no que falta, podemos terminar, publicar o firmware, e testar. Daí, estando homologado, publico um passo-a-passo em português.

Lá vão as missões:

Missão 1: Achar a rotina 8032 GetFileType

Na documentação do hej456, logo após a rotina 8032 GetFileType, vem os ponteiros que indicam onde fazer as chamadas quando o tipo de mídia é MPG (byte 09) e quando é AVI (byte 12). Porém, no DVP5965K/55, "parece" que a rotina 8032 GetFileType fica num lugar e os ponteiros em outro.
Achei uma ***SUPOSTA*** GetFyleType, no endereço
B4:4D4D7

Missão 2: Achar os ponteiros (words de 2 bytes) que indicam onde fazer as chamadas quando o tipo de mídia é MPG (byte 09) e quando é AVI (byte 12).

Diante da suposição feita em "Missão 1", tenho três endereços ***SUSPEITOS***:
B3:58FE
B4:5F8B
B4:7AA5

Missão 3: Achar a rotina 8032 Video_play do DVP5965K/55

No DVP5965K/55, parece que a rotina 8032 Vídeo_play foi escrita um pouco diferente, então não dá para localizá-la usando a seqüência apontada por hej456 em
 - Smart Loading of text subtitles in DMF -> http://hej456.fasthoster.de/Smart.Loading.of.subs.in.DMF.zip

Achei uma rotina ***SUSPEITA*** em B1:D2B6 através de uma busca fragmentada de padrões e de suposições; a seqüência de bytes utilizada foi “EF 75 F0 10 A4 24 E5 FF E5 F0 34 08 FE”. É bom olhar código abaixo (do DVP5965K) e CONFIRMAR SE DE FATO ELA É A TAL Vídeo_play...

*** SUPOSTA *** "Rotina Video_play"
 
B1:D2B6            *** SUPOSTA *** Video_Play:                             ; CODE XREF: B1_8883+5C p
B1:D2B6 EF                    mov   A, R7
B1:D2B7 24 FE                 add   A, #0xFE ; '¦'
B1:D2B9 60 5B                 jz    B1_D316
B1:D2B9
B1:D2BB 14                    dec   A
B1:D2BC 60 58                 jz    B1_D316
B1:D2BC
B1:D2BE 14                    dec   A
B1:D2BF 60 61                 jz    B1_D322
B1:D2BF
B1:D2C1 24 03                 add   A, #3
B1:D2C3 70 60                 jnz   B1_D325
B1:D2C3
B1:D2C5 E4                    clr   A
B1:D2C6 FF                    mov   R7, A
B1:D2C7 12 1E D8              lcall B1_BS_240_B3_E9FE
B1:D2C7
B1:D2CA D2 75                 setb  RAM_2E.5
B1:D2CC 7F 12                 mov   R7, #0x12
B1:D2CE 12 1D 58              lcall B1_BS_176_B3_4CF4
B1:D2CE
B1:D2D1 7F 12                 mov   R7, #0x12
B1:D2D3 12 1D 5E              lcall B1_BS_177_B3_72CE
B1:D2D3
B1:D2D6 E4                    clr   A
B1:D2D7 90 FC 1F              mov   DPTR, #XRAM_FC1F
B1:D2DA F0                    movx  @DPTR, A
B1:D2DB A3                    inc   DPTR
B1:D2DC 74 02                 mov   A, #2
B1:D2DE F0                    movx  @DPTR, A
B1:D2DF 7B 03                 mov   R3, #3
B1:D2E1 E4                    clr   A
B1:D2E2 FD                    mov   R5, A
B1:D2E3 7F 12                 mov   R7, #0x12
B1:D2E5 12 1D 64              lcall B1_BS_178_B3_C399
B1:D2E5
B1:D2E8 E4                    clr   A
B1:D2E9 FD                    mov   R5, A
B1:D2EA 7F 12                 mov   R7, #0x12
B1:D2EC 12 1F 3E              lcall B1_BS_257_B3_E4D7
B1:D2EC
B1:D2EF 7F 12                 mov   R7, #0x12
B1:D2F1 12 1D 6A              lcall B1_BS_179_B3_58BA
B1:D2F1
B1:D2F4 7F 12                 mov   R7, #0x12
B1:D2F6 12 1D 70              lcall B1_BS_180_B3_E9AF
B1:D2F6
B1:D2F9 12 E0 FC              lcall B1_E0FC
B1:D2F9
B1:D2FC 7F 19                 mov   R7, #0x19
B1:D2FE 7E 00                 mov   R6, #0
B1:D300 12 1B BA              lcall B1_BS_107_B3_B645
B1:D300
B1:D303 74 FF                 mov   A, #0xFF
B1:D305 90 FD 77              mov   DPTR, #XRAM_FD77
B1:D308 F0                    movx  @DPTR, A
B1:D309 A3                    inc   DPTR
B1:D30A F0                    movx  @DPTR, A
B1:D30B 90 FD 7E              mov   DPTR, #XRAM_FD7E
B1:D30E F0                    movx  @DPTR, A
B1:D30F A3                    inc   DPTR
B1:D310 F0                    movx  @DPTR, A
B1:D311 C2 74                 clr   RAM_2E.4
B1:D313 02 1D 1C              ljmp  B1_BS_166_B4_ABBB
B1:D313
B1:D316             ; ---------------------------------------------------------------------------
B1:D316
B1:D316             B1_D316:                                ; CODE XREF: *** SUPOSTA *** Video_Play+3 j
B1:D316                                                     ; *** SUPOSTA *** Video_Play+6 j
B1:D316 7F 05                 mov   R7, #5
B1:D318 12 1E 36              lcall B1_BS_213_B6_6CEB
B1:D318
B1:D31B 50 08                 jnc   B1_D325
B1:D31B
B1:D31D 7F 01                 mov   R7, #1
B1:D31F 02 1E 54              ljmp  B1_BS_218_B4_2D0C
B1:D31F
B1:D322             ; ---------------------------------------------------------------------------
B1:D322
B1:D322             B1_D322:                                ; CODE XREF: *** SUPOSTA *** Video_Play+9 j
B1:D322 12 E0 FC              lcall B1_E0FC
B1:D322
B1:D325
B1:D325             B1_D325:                                ; CODE XREF: *** SUPOSTA *** Video_Play+D j
B1:D325                                                     ; *** SUPOSTA *** Video_Play+65 j
B1:D325 22                    ret
B1:D325
B1:D325             ; End of function *** SUPOSTA *** Video_Play
« Última modificação: Janeiro 17, 2008, 10:06:09 am por doctorxyz »

Offline doctorxyz

  • Novato Prolixo
  • **
  • Mensagens: 63
  • Aprovação: +4/-0
    • Ver Perfil
Re: Firmware MT13x9: Log de Descobertas
« Responder #278 Online: Janeiro 14, 2008, 10:55:03 pm »
estou tentando decifrar o enigma do "div by 4" antes de fechar. O que descobri é que, no firmware baixado do site da Philips esta regra não é atendida, como também não é atendida a regra de inversão das cores da fonte. Outro detalhe importante é que, a Fonte 01 do firmware original possui 279 caracteres, e não 256.

Ronison

Se eu entendi bem, você está amarrando o "bug" ao número de caracteres: Este tem que ser divisível por 4.

Mas pelo que li (posso estar equivocado), o "bug" está relacionado com largura dos caracteres: Isso sim tem que ser divísivel por 4.

Se meu entendimento está correto, então sugiro que não use o MTKReMaker para montar suas fontes, use o MTKFontCreator pois ele é específico para isso.

Neste link aqui (http://board.softpedia.com/lofiversion/index.php/t3474-50.html) juanma76 cita que fontes de 4 cores são ótimas com aparelhos Philips, mas alerta que você deve se assegurar de que a opção "Widths are div. by 4" está selecionada ou marcada, já que RISCs mais novos aceitam apenas fontes que são múltiplas de 4.
Esta opção, informa otuken, é nas configurações do utilitário "MTKFont Creator".
O MtkFontCreator v0.6.12 é encontrado no site do NA (http://newage.mpeg4-players.info/mt1389/tools/MtkFontCreator_0.6.12.rar)
E a opção está em
Font Creation -> Font Character Generation Options -> Widths are div. by 4.

O MTKFontCreator carregou automático como fonte inicial, a Arial Narrow (minha fonte predileta); note que:
- Com a opção desmarcada (é o valor default), a largura máxima é 22.
- Com a opção marcada, a largura máxima aumenta para 24 (número divisível por 4)!
É só olhar na última linha (linha de status), fique marcando e desmarcando a opção e confira.

Espero ter ajudado.

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 #279 Online: Janeiro 14, 2008, 11:24:05 pm »
Para o problema dos RISC que requerem fontes com largura múltiplo de 4, sugiro que tente o seguinte patch, que apresenta uma solução ao problema, permitindo o uso de fontes de largura livre (bem melhores para legendas). Porém o patch não funciona em todos os RISCs (funcionou no meu do firmware "alternativo": RISC v05.00.05.07).

Funciona comprovadamente nos RISC v05.00.05.07, v05.00.05.09 e v05.00.06.00.

Vou explicar somento o problema mais comun ("tipo1").

Procedimento:

Tipo 1: Somente trocar algums bytes:

Busque:
04 93 01 23 09 9D 10 9A E8 18 40 08 40 06 06 0E 06 96 02 93

Troque por:
09 9D 04 93 E8 1C 80 08 80 06 06 0E 01 23 10 9A 02 93 06 96

O problema "tipo 2" apresentado en algums players (exemplo: Medion MD-80796) e mais complicado. Requer redimensionar os ArmCodes, adicionar código novo em espaço livre e fazer os saltos ao novo código...

Saudações!
Juan M. Araújo


PS: Aclaração...

Neste link aqui (http://board.softpedia.com/lofiversion/index.php/t3474-50.html) juanma76 cita que fontes de 4 cores são ótimas com aparelhos Philips, mas alerta que você deve se assegurar de que a opção "Widths are div. by 4" está selecionada ou marcada, já que RISCs mais novos aceitam apenas fontes que são múltiplas de 4.

O texto: "'Four color' fonts are fine with Philips players... Just be sure that you have the "Widths are div. by 4" selected (activated or marked)..." era em resposta a um usuario que indicava que tinha que se usar as fontes em "old-compatibility mode". Foi um mal entendido, eu achei que ele estava falando da primeira opção: fontes de duas cores. Daí a minha resposta (eu sou "juanma76"  :P) que fontes de quatro cores funcionavam bem...

FORUM.RYAN.COM.BR

Re: Firmware MT13x9: Log de Descobertas
« Responder #279 Online: Janeiro 14, 2008, 11:24:05 pm »