Autor Tópico: Firmware do LG DV383  (Lida 23151 vezes)

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

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV383
« Responder #20 Online: Março 22, 2009, 06:38:01 pm »
Esse final aí é diferente no 397H. Também tem essa parte que atribui #2 a #002A, mas não tem a chamada de aplicação imediata.
Estranho... Eu pensei que a chamada para B7_BE47 no DV383 fosse equivalente a chamada para B1_DE40 no DV397, sendo que ambas seriam responsáveis pela aplicação imediata...  ???

Resolvi tentar "transformar" o meu DV256K de NTSC para PAL. Assim poderei descobrir melhor o que funciona, e o que não funciona, antes de enviar outro firmware para o DV383.  :)

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV383
« Responder #21 Online: Março 22, 2009, 10:43:45 pm »
Consegui entender melhor o funcionamento dessa rotina, e após algumas tentativas, "transformei" o meu DV256K para PAL, fazendo poucas alterações.
O ponto chave me pareceu este:

Código: [Selecionar]
B2:805A 90 FB 82                    mov     DPTR, #XRAM_FB82
B2:805D E0                          movx    A, @DPTR
B2:805E 30 E0 3F                    jnb     ACC.0, B2_80A0  ; Accumulator

Dependendo do que está em #XRAM_FB82, é feito um desvio para B2_80A0, onde se define #2 para SetPrefChar(#0F) e para ArmPutChar(#2A) para NTSC. Quando não é feito o desvio a rotina continua e define #0 para PAL, ao invés de #2. Isso ocorre de maneira semelhante em todos os LGs.
Para mudar o DV256K para PAL eu tive que apenas por NOP para evitar o desvio (que iria para NTSC), e também eliminar uma verificação de #0F em PrefGetChar.
Já no DV383, eu coloquei um sjmp para o trecho que define NTSC. Não encontrei nehuma verificação de PrefGetChar lá. Apenas PrefSetChar. Então não mudei mais nada.

Estou enviando esse firmware apenas para o usuário super_tg testar. Além da nova tentativa de correção do Sistema para NTSC, aproveitei para tornar o firmware Region Free (como expliquei no tópico do LG DV256K). mantive a correção do Subtitle Timing Bug. Vamos ver, se não der certo desta vez, pelo menos estamos chegando perto...  :)
« Última modificação: Março 23, 2009, 08:50:46 pm por zeurt »

FORUM.RYAN.COM.BR

Re: Firmware do LG DV383
« Responder #21 Online: Março 22, 2009, 10:43:45 pm »

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Firmware do LG DV383
« Responder #22 Online: Março 23, 2009, 12:04:45 am »
Esse final aí é diferente no 397H. Também tem essa parte que atribui #2 a #002A, mas não tem a chamada de aplicação imediata.
Estranho... Eu pensei que a chamada para B7_BE47 no DV383 fosse equivalente a chamada para B1_DE40 no DV397, sendo que ambas seriam responsáveis pela aplicação imediata...  ???

São equivalentes sim. Vou chamá-las de Apply_ARM_PutChar ;). Mas o que eu quis dizer é que na rotina do 383 tem 3 chamadas a Apply_ARM_PutChar. No 397 só não tem a última chamada, após o ARM_PutChar com #2. Veja:

Código: [Selecionar]
B2_7414:                                ; CODE XREF: BankSw_457_B2_7331+D0_j
B2:7414 7F 07                       mov     R7, #7
B2:7416 7E 00                       mov     R6, #0
B2:7418 12 04 03                    lcall   B2_BS_47_B1_F213
B2:741B EF                          mov     A, R7
B2:741C 30 E7 3F                    jnb     ACC.7, B2_745E  ; Accumulator
B2:741F E4                          clr     A
B2:7420 FD                          mov     R5, A
B2:7421 7F 5F                       mov     R7, #0x5F ; '_'
B2:7423 FE                          mov     R6, A
B2:7424 12 03 A9                    lcall   B2_BS_32_B4_F36A
B2:7427 90 FB D2                    mov     DPTR, #XRAM_FBD2
B2:742A E0                          movx    A, @DPTR
B2:742B B4 04 1D                    cjne    A, #4, B2_744B
B2:742E E4                          clr     A
B2:742F FD                          mov     R5, A
B2:7430 7F 2A                       mov     R7, #0x2A ; '*'
B2:7432 FE                          mov     R6, A
B2:7433 12 03 A9                    lcall   B2_BS_32_B4_F36A
B2:7436 E4                          clr     A
B2:7437 FB                          mov     R3, A
B2:7438 FA                          mov     R2, A
B2:7439 FD                          mov     R5, A
B2:743A FC                          mov     R4, A
B2:743B 7F 2A                       mov     R7, #0x2A ; '*'
B2:743D FE                          mov     R6, A
B2:743E 12 0A 93                    lcall   B2_BS_327_B1_DE40
B2:7441 E4                          clr     A
B2:7442 FD                          mov     R5, A
B2:7443 7F 0F                       mov     R7, #0xF
B2:7445 FE                          mov     R6, A
B2:7446 12 0A 09                    lcall   B2_BS_304_B1_F33A
B2:7449 80 66                       sjmp    B2_74B1
B2:744B             ; ---------------------------------------------------------------------------
B2:744B
B2:744B             B2_744B:                                ; CODE XREF: BankSw_457_B2_7331+FA_j
B2:744B 7F 0F                       mov     R7, #0xF
B2:744D 7E 00                       mov     R6, #0
B2:744F 12 04 03                    lcall   B2_BS_47_B1_F213
B2:7452 CD                          xch     A, R5
B2:7453 EF                          mov     A, R7
B2:7454 CD                          xch     A, R5
B2:7455 7F 2A                       mov     R7, #0x2A ; '*'
B2:7457 7E 00                       mov     R6, #0
B2:7459 12 03 A9                    lcall   B2_BS_32_B4_F36A
B2:745C 80 53                       sjmp    B2_74B1
B2:745E             ; ---------------------------------------------------------------------------
B2:745E
B2:745E             B2_745E:                                ; CODE XREF: BankSw_457_B2_7331+EB_j
B2:745E E4                          clr     A
B2:745F FD                          mov     R5, A
B2:7460 7F 5F                       mov     R7, #0x5F ; '_'
B2:7462 FE                          mov     R6, A
B2:7463 12 03 A9                    lcall   B2_BS_32_B4_F36A
B2:7466 90 FB D2                    mov     DPTR, #XRAM_FBD2
B2:7469 E0                          movx    A, @DPTR
B2:746A B4 04 09                    cjne    A, #4, B2_7476
B2:746D 7D 02                       mov     R5, #2
B2:746F 7F 0F                       mov     R7, #0xF
B2:7471 7E 00                       mov     R6, #0
B2:7473 12 0A 09                    lcall   B2_BS_304_B1_F33A
B2:7476
B2:7476             B2_7476:                                ; CODE XREF: BankSw_457_B2_7331+139_j
B2:7476 7D 02                       mov     R5, #2
B2:7478 7F 2A                       mov     R7, #0x2A ; '*'
B2:747A 7E 00                       mov     R6, #0
B2:747C 12 03 A9                    lcall   B2_BS_32_B4_F36A
B2:747F 90 FB D2                    mov     DPTR, #XRAM_FBD2
B2:7482 E0                          movx    A, @DPTR
B2:7483 FF                          mov     R7, A
B2:7484 64 02                       xrl     A, #2
B2:7486 60 05                       jz      B2_748D
B2:7488 EF                          mov     A, R7
B2:7489 64 04                       xrl     A, #4
B2:748B 70 24                       jnz     B2_74B1
B2:748D
B2:748D             B2_748D:                                ; CODE XREF: BankSw_457_B2_7331+155_j

Consegui entender melhor o funcionamento dessa rotina, e após algumas tentativas, "transformei" o meu DV256K para PAL, fazendo poucas alterações.
O ponto chave me pareceu este:

Código: [Selecionar]
B2:8020 90 FB E4                    mov     DPTR, #XRAM_FBE4
B2:8023 E0                          movx    A, @DPTR
B2:8024 B4 04 1A                    cjne    A, #4, B2_8041

Dependendo do que está em #XRAM_FBE4, é feito um desvio para B2_8041, onde se define #2 para SetPrefChar(#0F) e para ArmPutChar(#2A) para NTSC. Quando não é feito o desvio a rotina continua e define #0 para PAL, ao invés de #2. Isso ocorre de maneira semelhante em todos os LGs.
Para mudar o DV256K para PAL eu tive que apenas por NOP para evitar o desvio (que iria para NTSC), e também eliminar uma verificação de #0F em PrefGetChar.
Já no DV383, eu coloquei um sjmp para o trecho que define NTSC. Não encontrei nehuma verificação de PrefGetChar lá. Apenas PrefSetChar. Então não mudei mais nada.

Estou enviando esse firmware apenas para o usuário super_tg testar. Além da nova tentativa de correção do Sistema para NTSC, aproveitei para tornar o firmware Region Free (como expliquei no tópico do LG DV256K). mantive a correção do Subtitle Timing Bug. Vamos ver, se não der certo desta vez, pelo menos estamos chegando perto...  :)


Grande zeurt! Valeu!

Agora essa parte de mandar tanto para o endereço #002A via ARM_PutChar quanto para #000F via PREF_SetChar é estranho, não é mesmo? O mais estranho é que o br0max e o xypro mudaram foi o endereço #000F da EEPROM no menu. Mas eu não lembro deles terem mudado esse trecho dessa rotina. Mas como falei, no 397H a resolução parece interferir nisso tudo. Seria interessante você tentar fazer no 256K uma entrada no menu com as opções #00 e #02 em #000F para ver se funciona com essa rotina inalterada. Ah, ainda tem a opção AUTO. Eles definiram, na verdade, 3 opções. O AUTO deles é #01. No 397, quando eu jogava #01 para no ARM_PutChar (em #002A), imediatamente dava um flick e depois o sistema ia somente para PAL (neste caso, não precisava chamar a rotina Apply_ARM_PutChar, ou seja, era algo realmente automático, ainda que só mudasse para PAL).
« Última modificação: Março 23, 2009, 09:00:14 pm por rictad »

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV383
« Responder #23 Online: Março 23, 2009, 08:35:54 pm »
O usuário super_tg testou o firmware que eu enviei... e funcionou!  :yahoo!:
Portanto, já está confirmado que esse último firmware já está funcionando com Sistema NTSC, Região do DVD 0, e Correção do Subtitle Timing Bug. Só não sei ainda quais os idiomas disponíveis no menu... (o firmware é originalmente voltado para Holanda). Provavelmente, se tiver Português, é de Portugal.
Quando tiver mais tempo, procurarei as Paletes de Cores, para alteração da cor da legenda para amarelo.
Agora, quem possuir o aparelho, e quiser fazer experiências com esse firmware (sabendo dos riscos é claro), já pode. Tem muito material sobre as modificações já feitas para os outros LGs aqui no forum.

FORUM.RYAN.COM.BR

Re: Firmware do LG DV383
« Responder #23 Online: Março 23, 2009, 08:35:54 pm »