Juan, com todo respeito devido ao Jakob, eu acho que esse procedimento está incompleto.
Faz tempo que não mexo com firmware, por isso ainda estou em marcha lenta, mas pelo que eu verifiquei aqui nas minhas anotações está faltando uma parte do processo:
No firmware do DVP5100 0E.0A:
Todas as chamadas de Bank Switching para Pref_GetChar são feitas com 12 05 D7 ou 02 05 D7. Até aí, tudo bem.
Mas Pref_GetChar está fisicamente localizada no banco 4 em B4:E0AE
Então qualquer chamada para Pref_GetChar no banco 4 é feita com 12 E0 AE (existem oito) ou 02 E0 AE (não há nenhuma), porque no mesmo banco onde está a rotina não se passa pelo Bank Switching.
No caso do DVP5100, pelo que apurei aqui, não faz diferença, porque todos os endereços usados no banco 4 já estão na sua tabela. Mas ignorar as chamadas de um banco inteiro é sempre um tiro no escuro.
Eu encontrei no meu teste com o firmware do DVP-816 pelo menos três endereços que o Daniel não colocou no mapa dele.
Ou eu estou misturando alguma coisa?