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

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

Offline fabianr

  • Novato
  • *
  • Mensagens: 9
  • Aprovação: +0/-0
    • Ver Perfil
Re: Firmware: log de descobertas
« Responder #200 Online: Agosto 22, 2007, 12:52:47 am »
Já testei.

Instalado via cabo o firmware de 1.5MB funciona sem problema aparente. Instalado via CD dá vários problemas. É possível até que a rotina de upgrade por CD esteja lendo apenas 1MB, dos 1,5MB do arquivo.

Vou estudar uma maneira de resolver isso. Mas pode demorar.

Hmmm... pensando en voz alta... Si ya han encontrado la referencia al nombre del archivo de firmware, ahi debe estar la subrutina que carga el firmware.....  y si hay una limitacion del tamaño que lee deberia estar ahi...  :)   Tengo que estudiar un poco del assembler de estos equipos....

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #201 Online: Agosto 22, 2007, 12:54:43 am »
Eneris,

Tem como dar isso tudo ao DVP5965, fazendo algumas modificações no menu original. Eu sei como trabalhar com menus, mas ensinar é muito complicado.

No caso dos Philips, que já tem menus "cheios", é mais prático criar um gancho para uma nova página (você pode ter até oito) e construi-la toda no espaço livre do mesmo banco. É quase a mesma coisa que fiz no Proview, mas como o Proview já tinha uma página quase vazia, a mudança no código original dos menus foi mínima. Para Philips é consideravelmente mais complicado, mas ainda é mais razoável do que tentar enxertar opções nos menus existentes.

Eu já tenho na fila os menus do DVP5960, DVP5980, DVP3040 e do Lenoxx DV-406. Posso fazer também do DVP5965, mas vai demorar.

Jefferson

 
http://jefferson-ryan.blogspot.com
http://ryan.com.br

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

FORUM.RYAN.COM.BR

Re: Firmware: log de descobertas
« Responder #201 Online: Agosto 22, 2007, 12:54:43 am »

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware: log de descobertas
« Responder #202 Online: Agosto 22, 2007, 02:14:29 am »
Eneris,

Se entendí bem (não estou familiarizado com o firmware do DVP5965), para o menú de fontes já existe um menú de seleção, então não é preciso uma nova página. O mais fácil é aumentar o número de items do menú:

  8. No Pic. | Divx Subtitle | Divx Subtitle
     0008 FFFF 0505 0505 0059 0000 0001 0000 FF365A 0000 - ROM:3660
 => 1. Standard | Standard | [00]
       04BE 04BE 0561 00 - ROM:364C
    2. Cyrillic | Cyrillic | [00]
       0507 0507 0561 01 - ROM:3653


01 = número de items-1 (ou seja se quiser 6 items, 6-1=5 então 01 -> 05
365A = Pointer a pointer dos ítems de menú.

A primeira coisa e trocar o número de ítems (em vermelho). A segunda coisa e mudar o endereço dos pointers de ítems (em azul).

No exemplo, em ROM:365A temos os seguintes datos: FF 36 4C FF 36 53 (ou seja dois pointers, apontando a ROM:364C e ROM:3653).

Mude o pointer FF365A para, por exemplo, FFFA00. Em ROM:FA00 coloque todos os pointers para os items de menú. Asumindo que vamos manter as opções 1 y 2 e adicionar 4 opções novas: FF 36 4C FF 36 53 FF aa aa FF bb bb FF cc cc FF dd dd, onde aaaa, bbbb, cccc e dddd são os pointers para as novas definiçoes de idioma e valor de escolha da opção do menú.

  8. No Pic. | Divx Subtitle | Divx Subtitle
     0008 FFFF 0505 0505 0059 0000 0005 0000 FFFA00 0000 - ROM:3660
 => 1. Standard | Standard | [00]
       04BE 04BE 0561 00 - ROM:364C
    2. Cyrillic | Cyrillic | [00]
       0507 0507 0561 01 - ROM:3653
    3. Opcão 3 | Opcão 3 | [00]
       ???? ???? 0561 ? - ROM:aaaa
    4. Opcão 4 | Opcão 4 | [00]
       ???? ???? 0561 ? - ROM:bbbb
    5. Opcão 5 | Opcão 5 | [00]
       ???? ???? 0561 ? - ROM:cccc
    6. Opcão 6 | Opcão 6 | [00]
       ???? ???? 0561 ? - ROM:dddd


Espero que fique comprensivel... Jefferson tem razão, é mais fácil entender como funcionan os menús do que explicar.

Um abraço.
« Última modificação: Agosto 22, 2007, 02:16:18 am por jmaraujo »

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware: log de descobertas
« Responder #203 Online: Agosto 22, 2007, 02:39:47 am »
Eneris,

Assim fica a mudança em um editor hexadecimal:

  8. No Pic. | Divx Subtitle | Divx Subtitle
     0008 FFFF 0505 0505 0059 0000 0001 0000 FF365A 0000 - ROM:3660


Em ROM:3660 está contida a linha a modificar:

Modificar pointer e número de opções de menú:
Antes:
00003660h: 00 08 FF FF 05 05 05 05 00 59 00 00 00 01 00 00
00003670h: FF 36 5A 00 00 02 60 00 9F 02 60 00 02 5C 00 9E


Depois:
00003660h: 00 08 FF FF 05 05 05 05 00 59 00 00 00 05 00 00
00003670h: FF FA 00 00 00 02 60 00 9F 02 60 00 02 5C 00 9E


Pointer a novas opções de menú:
0000fa00h: FF 36 4C FF 36 53 FF aa aa FF bb bb FF cc cc FF
0000fa10h: dd dd FF FF FF FF FF FF FF FF FF FF FF FF FF FF


É preciso adicionar também (em ROM:aaaa, ROM:bbbb... etc.) os bytes das definições de idioma e escolha de opção.

Os endereços no seu firmware são diferentes mas o procedimento é o mesmo.

Offline eneris

  • Novato Prolixo
  • **
  • Mensagens: 85
  • Aprovação: +2/-0
  • The Cranberries em Recife Outubro/2010 Eu Vou!
    • Ver Perfil
    • ENERIS Online :: No Need To Argue
Re: Firmware: log de descobertas
« Responder #204 Online: Agosto 22, 2007, 01:22:17 pm »
Ryan e Jmaraujo, obrigado pelas super dicas, vou tentar hoje a noite, qualquer coisa eu posto aqui.
The Cranberries - em Recife Outubro/2010
Estarei la colado! Ta perto.

Offline eneris

  • Novato Prolixo
  • **
  • Mensagens: 85
  • Aprovação: +2/-0
  • The Cranberries em Recife Outubro/2010 Eu Vou!
    • Ver Perfil
    • ENERIS Online :: No Need To Argue
Re: Firmware: log de descobertas
« Responder #205 Online: Agosto 23, 2007, 02:49:32 am »
Jmaraujo, quem são os bytes das definições de idioma e escolha de opção?

Este é o menu existente no 5965.

8. No Pic. | Divx Subtitle | Divx Subtitle
     0008 FFFF 0447 0447 0044 0000 0000 0000 FF3EA6 0000 - ROM:3EA9
 => 1. Standard | Standard | [00]
       0401 0401 051E 00 - ROM:3E91


Agradeço.

The Cranberries - em Recife Outubro/2010
Estarei la colado! Ta perto.

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware: log de descobertas
« Responder #206 Online: Agosto 23, 2007, 04:14:06 am »
8. No Pic. | Divx Subtitle | Divx Subtitle
     0008 FFFF 0447 0447 0044 0000 0000 0000 FF3EA6 0000 - ROM:3EA9
 => 1. Standard | Standard | [00]
       0401 0401 051E 00 - ROM:3E91


Vermelho = Definição 1 (no seu caso: "Standard")
Azul = Definição 2 (no seu caso: "Standard")
Verde = Definição 3 (no seu cazo: vazío) - Os firmwares Philips geralmente não usam a def.3 na escolha de opções.
Laranja = Opção a escolher

Veja no MTK Remaker, na parte "Languages", que 0x0401=Standard.
Faça novas definições de idioma para as novas opções.

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #207 Online: Agosto 28, 2007, 06:47:35 am »
Como localizar Dir_Disp_DirLine

(também chamada de DirDispDirLine e DDDL)

Para refrescar a memória, essa rotina é responsável pela exibição da linha que mostra o diretório (pasta) onde você está:



Procure por:
EF 70 ? D2 ? 12 ? ? 80

Esta string não encontra a rotina, mas uma chamada para ela. Apenas um ponto será encontrado, parecido com este:

B1:9468 EF          mov     A, R7
B1:9469 70 07       jnz     B1_9472
B1:9469
B1:946B D2 43       setb    RAM_28.3
B1:946D 12 68 89    lcall   DirDispDirline


Como você pode ver, a primeira lcall é para DDDL

Funciona com:

  • Philips DVP5960
  • Philips DVP5965
  • Philips DVP5980
  • Philips DVP5100
  • Philips DVP3040
  • Philips DVP5140
  • Punktal PK-DV246
  • Proview DVP-858
  • Lenoxx DV-406
  • JTEC MTK7000

Não funciona com
  • Philips PET 725

Para esse, use a string:
80 02 c2 ? 12 ? ? 90


DDDL é importante por algumas razões:

  • É nela que você faz o patch que corrige o número de caracteres exibidos na linha de diretório, como explicado por mim váaarios posts atrás;
  • Ela sempre tem tem duas chamadas a OSD_SetFont, uma chamada para OSD_TextColor e termina com uma chamada para ClearRect. De uma tacada só você descobre os endereços dessas rotinas e mais a janela usada pelo browser.

DDDL sempre inicia mais ou menos assim:

B1:6889             DirDispDirline:               ; CODE XREF: B1_93FD+70p
B1:6889                                           ; B1_93FD+77p
B1:6889 20 43 03    jb      RAM_28.3, B1_688F
B1:6889
B1:688C 02 69 B4    ljmp    Dir_DirLineClear


Dir_DirLineClear sempre é emendada ao final de DDDL, assim você sempre saberá onde a rotina termina

Este conhecimento está sendo incorporado ao MTK Patcher, para que este no futuro possa permitir a escolha da fonte usada na DirLine e corrigir seus bugs.
 
« Última modificação: Agosto 28, 2007, 06:59:44 am por Jefferson »
http://jefferson-ryan.blogspot.com
http://ryan.com.br

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

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #208 Online: Agosto 28, 2007, 10:08:45 am »
O tamanho da flash do DVP3040

Eu pesquisei o assunto, mas a melhor informação que obtive (praticamente a única), foi este post de Lisa_tv.

Citar
First about flash size, U can read it in the firmware, 8032 part
block 0:

first 3 bytes is a jump to Startup1 label: (example from 6700 fw)

ROM:0000 start:
ROM:0000 02 22 7B ljmp Startup1

At this label:

ROM:227B Startup1:
ROM:227B mov DPTR, #0xF86C
ROM:227E movx A, @DPTR
ROM:227F anl A, #0xF0

This 0xF0 ends with 4 zeroes, so number of address bits for flash =
4 + 16 = 20 bits -> 1MB flash

In 6600 fw:

ROM:22B2 Startup1:
ROM:22B2 mov DPTR, #0xF86C
ROM:22B5 movx A, @DPTR
ROM:22B6 anl A, #0xE0

this is a 0xE0, has 5 zeroes at the end, flash address is 5 + 15 =
21 bits -> 2 MB flash

I think this is true for all mt1389 firmwares.


Mas isso só serviu para tornar a coisa ainda mais confusa, porque o ponto indicado no firmware do DVP3040 é este:

B0:2294             B0_Start_Handler:             ; CODE XREF: FLASH_Reset:B0_Startj
B0:2294 90 F8 6C    mov     DPTR, #BIM_IODOM
B0:2297 E0          movx    A, @DPTR
B0:2298 54 E0       anl     A, #0xE0
B0:229A F0          movx    @DPTR, A
B0:229B 90 F8 69    mov     DPTR, #BIM_IOENM
B0:229E E0          movx    A, @DPTR
B0:229F 44 1F       orl     A, #0x1F
B0:22A1 F0          movx    @DPTR, A
B0:22A2 90 F8 66    mov     DPTR, #BIM_PCTL1      ; Pin Control 1 Register
B0:22A5 E0          movx    A, @DPTR
B0:22A6 44 30       orl     A, #0x30
B0:22A8 F0          movx    @DPTR, A
B0:22A9 C2 90       clr     P1.0                  ; Port 1
B0:22AB C2 91       clr     P1.1                  ; Port 1
B0:22AD C2 92       clr     P1.2                  ; Port 1
B0:22AF 90 F8 66    mov     DPTR, #BIM_PCTL1      ; Pin Control 1 Register
B0:22B2 E0          movx    A, @DPTR
B0:22B3 54 F8       anl     A, #0xF8
B0:22B5 F0          movx    @DPTR, A
B0:22B6 74 24       mov     A, #0x24 ; '$'
B0:22B8 90 F8 25    mov     DPTR, #AUD_IECCFG     ; IEC958 Configuration
B0:22BB F0          movx    @DPTR, A
B0:22BC 78 7F       mov     R0, #0x7F ; ''
B0:22BE E4          clr     A
B0:22BF
B0:22BF             B0_22BF:                      ; CODE XREF: FLASH_Reset-CD40j
B0:22BF F6          mov     @R0, A
B0:22C0 D8 FD       djnz    R0, B0_22BF
B0:22C2 75 A0 F9    mov     P2, #0xF9 ; '¨'       ; Port 2
B0:22C5 75 81 AE    mov     SP, #WMKEY            ; Stack Pointer
B0:22C8 02 23 06    ljmp    B0_2306
B0:22C8             ; END OF FUNCTION CHUNK FOR FLASH_Reset


E0 = flash de 2MB


já no firmware do DVP5140...


B0:2294             B0_Start_Handler:                       ; CODE XREF: FLASH_Reset:B0_Startj
B0:2294 90 F8 6C              mov   DPTR, #BIM_IODOM
B0:2297 E0                    movx  A, @DPTR
B0:2298 54 F0                 anl   A, #0xF0
B0:229A F0                    movx  @DPTR, A
B0:229B 90 F8 69              mov   DPTR, #BIM_IOENM
B0:229E E0                    movx  A, @DPTR
B0:229F 44 0F                 orl   A, #0xF
B0:22A1 F0                    movx  @DPTR, A
B0:22A2 90 F8 66              mov   DPTR, #BIM_PCTL1        ; Pin Control 1 Register
B0:22A5 E0                    movx  A, @DPTR
B0:22A6 44 10                 orl   A, #0x10
B0:22A8 54 DF                 anl   A, #0xDF
B0:22AA F0                    movx  @DPTR, A
B0:22AB C2 90                 clr   T2                      ; T2
B0:22AD C2 91                 clr   P1.A17                  ; A17
B0:22AF C2 92                 clr   P1.A18                  ; A18
B0:22B1 90 F8 66              mov   DPTR, #BIM_PCTL1        ; Pin Control 1 Register
B0:22B4 E0                    movx  A, @DPTR
B0:22B5 54 F8                 anl   A, #0xF8
B0:22B7 F0                    movx  @DPTR, A
B0:22B8 74 24                 mov   A, #0x24 ; '$'
B0:22BA 90 F8 25              mov   DPTR, #AUD_IECCFG       ; IEC958 Configuration
B0:22BD F0                    movx  @DPTR, A
B0:22BE 78 7F                 mov   R0, #0x7F ; ''
B0:22C0 E4                    clr   A
B0:22C0
B0:22C1
B0:22C1             B0_22C1:                                ; CODE XREF: FLASH_Reset-CD3Ej
B0:22C1 F6                    mov   @R0, A
B0:22C2 D8 FD                 djnz  R0, B0_22C1
B0:22C2
B0:22C4 75 A0 F9              mov   P2, #0xF9 ; '¨'         ; Port 2
B0:22C7 75 81 AE              mov   SP, #WMKEY              ; Stack Pointer
B0:22CA 02 23 08              ljmp  B0_2308
B0:22CA
B0:22CA             ; END OF FUNCTION CHUNK FOR FLASH_Reset


F0 =  Flash de 1MB

E é bom lembrar que mtkRemaker diz que ambos são de aparelhos com 1MB. Logo o mtkRemaker olha em outro lugar.
http://jefferson-ryan.blogspot.com
http://ryan.com.br

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

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #209 Online: Agosto 28, 2007, 11:00:21 am »
Mais testes de flash no DVP3040K

Usando dois firmwares oficiais e dois propositalmente modificados (bloco MPEG) para ficarem com 1,5MB

Sempre instalando por CD (não usei o cabo)

Começando com firmware DVP5140 de 1,5MB instalado

Não lê mídia DVD

Instalei firmware DVP5140 oficial

Lê mídia DVD

Instalei firmware DVP3040K oficial

Continua lendo mídia DVD

Instalei firmware DVP3040K com 1,5MB

Continua lendo mídia DVD

Reinstalei firmware DVP5140 com 1,5MB

Não lê mais DVD

Com um editor hexa, modifiquei o byte (post anterior) que define o tamanho da flash para "E0" e instalei de novo.

Continua sem ler DVD


Conclusão até agora: Dá para ter DivX Ultra no DVP3040K, mas em um firmware pouco melhor que o oficial (respeitando o limite de 1MB do DVP5140), ou ter um firmware de DVP3040K bem incrementado :)


Note que eu estou usando a leitura de mídia DVD como teste porque foi o único efeito colateral que se manifestou até agora, mas podem existir outros problemas.


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?!

FORUM.RYAN.COM.BR

Re: Firmware: log de descobertas
« Responder #209 Online: Agosto 28, 2007, 11:00:21 am »