ecesar
09/06/2009, 17:15
TUTORIAL: Como desabilitar modo HDTV nas placas nVidia e obter resolução nativa
:?: Problema:
Possuo uma placa nVidia GeForce 9500 GT 512 MB e um LCD LG 22LS4R-MA (22" 1680x1050), ligados via cabo DVI/HDMI sob o Windows Vista SP1.
Ao instalar a placa sob o driver de vídeo padrão (genérico), a imagem sai nítida e cristalina, na resolução nativa do monitor. O mesmo sempre ocorre ao iniciar o Vista no Modo de Segurança, que carrega apenas drivers padrão do SO.
Porém, ao instalar os drivers apropriados - via site da nVidia ou Windows Update - o modo de vídeo passa a ser forçado em 720p (1280x720), deixando a imagem sem nitidez e/ou enquadramento na tela. Quando tenta-se subir a resolução para qualquer número acima de 720, a imagem deixa de ser exibida - mas o PC continua funcionando.
A explicação é que o driver da nVidia faz o monitor ser identificado como uma HDTV, cujas únicas resoluções possíveis são 720p e 1080i. Isto ocorre apenas na conexão DVI/HDMI, via conexão RGB (analógico) o monitor e sua resolução nativa são corretamente identificados.
Até o momento, a nVidia não oferece soluções oficiais para esta grave limitação na arquitetura de seus drivers.
:idea: Solução:
Vamos usar uma chave no Registro para evitar que o monitor se anuncie como uma HDTV. Para isso, designaremos o número de extensões EDID como zero.
1. Inicie a instalação do pacote de drivers da nVidia, baixados do site (www.nvidia.com). Cancele o progresso da instalação assim que os arquivos forem extraídos.
2. Vá até a pasta de extração (por exemplo: C:\NVIDIA\WinVista\169.25) e abra o arquivo nv_disp.inf no Bloco de Notas.
3. Na seção [nv_SoftwareDeviceSettings] adicione o código abaixo. ATENÇÃO: versões mais recentes do pacote de drivers substituíram esta seção por [nv_commonBase_addreg] e [nv_commonBase_addreg__02], basta adicionar o mesmo código sob ambas as seções.
HKR,, OverrideEdidFlags0, %REG_BINARY%, 1E,6D,4C,56,00,00,FF,FF,04,00,00,00,7E,01,00
Nota: Os primeiros 4 bytes (1E,6D,4C,56) são específicos para o monitor LG que possuo, é necessário substituí-los para outros monitores. Use o Phoenix EDID Designer (http://www.softsea.com/review/Phoenix-EDID-Designer.html), extraia o EDID atual do Registro e abra no visualizador de bytes. Os bytes necessários são os 8 a 11.
4. Desinstale os drivers atuais e reinicie o Vista.
5. Instale os drivers (modificados) através do setup.exe na pasta de extração. Você receberá um aviso sobre o driver não ser assinado/certificado, devido ao .inf modificado. Apenas aperte OK.
No próximo reinício do Vista, o vídeo deve estar apropriado, na resolução nativa. O nVidia Control Center não exibirá mais as opções de controle para HDTV, tratando o seu LCD como apenas monitor.
:!: Considerações:
Caso o Phoenix EDID Designer forneça mais de uma opção de EDID, tente o processo com os bytes de cada uma. Aconteceu comigo e é trabalhoso, mas deu certo na segunda tentativa.
Existe ainda a possibilidade de seu monitor/TV estar sem o driver adequado (não disponibilizado pelo fabricante), ou que seu EDID informe uma resolução nativa inferior à sua real. A solução é usar o PowerStrip (http://www.entechtaiwan.com/util/ps.shtm). No primeiro caso, basta extrair o EDID direto do monitor/TV e criar um arquivo .inf que será o driver customizado. No segundo caso, a solução seria sobrescrever o EDID do monitor/TV - um delicado processo equivalente a modificar o firmware. Um tutorial pode ser encontrado aqui (http://forums.nvidia.com/index.php?showtopic=48946&mode=threaded).
O método descrito neste tutorial foi originalmente postado por bryanb (http://forums.nvidia.com/index.php?showuser=92294) neste tópico do nZone (http://forums.nvidia.com/index.php?showtopic=58483).
:?: Problema:
Possuo uma placa nVidia GeForce 9500 GT 512 MB e um LCD LG 22LS4R-MA (22" 1680x1050), ligados via cabo DVI/HDMI sob o Windows Vista SP1.
Ao instalar a placa sob o driver de vídeo padrão (genérico), a imagem sai nítida e cristalina, na resolução nativa do monitor. O mesmo sempre ocorre ao iniciar o Vista no Modo de Segurança, que carrega apenas drivers padrão do SO.
Porém, ao instalar os drivers apropriados - via site da nVidia ou Windows Update - o modo de vídeo passa a ser forçado em 720p (1280x720), deixando a imagem sem nitidez e/ou enquadramento na tela. Quando tenta-se subir a resolução para qualquer número acima de 720, a imagem deixa de ser exibida - mas o PC continua funcionando.
A explicação é que o driver da nVidia faz o monitor ser identificado como uma HDTV, cujas únicas resoluções possíveis são 720p e 1080i. Isto ocorre apenas na conexão DVI/HDMI, via conexão RGB (analógico) o monitor e sua resolução nativa são corretamente identificados.
Até o momento, a nVidia não oferece soluções oficiais para esta grave limitação na arquitetura de seus drivers.
:idea: Solução:
Vamos usar uma chave no Registro para evitar que o monitor se anuncie como uma HDTV. Para isso, designaremos o número de extensões EDID como zero.
1. Inicie a instalação do pacote de drivers da nVidia, baixados do site (www.nvidia.com). Cancele o progresso da instalação assim que os arquivos forem extraídos.
2. Vá até a pasta de extração (por exemplo: C:\NVIDIA\WinVista\169.25) e abra o arquivo nv_disp.inf no Bloco de Notas.
3. Na seção [nv_SoftwareDeviceSettings] adicione o código abaixo. ATENÇÃO: versões mais recentes do pacote de drivers substituíram esta seção por [nv_commonBase_addreg] e [nv_commonBase_addreg__02], basta adicionar o mesmo código sob ambas as seções.
HKR,, OverrideEdidFlags0, %REG_BINARY%, 1E,6D,4C,56,00,00,FF,FF,04,00,00,00,7E,01,00
Nota: Os primeiros 4 bytes (1E,6D,4C,56) são específicos para o monitor LG que possuo, é necessário substituí-los para outros monitores. Use o Phoenix EDID Designer (http://www.softsea.com/review/Phoenix-EDID-Designer.html), extraia o EDID atual do Registro e abra no visualizador de bytes. Os bytes necessários são os 8 a 11.
4. Desinstale os drivers atuais e reinicie o Vista.
5. Instale os drivers (modificados) através do setup.exe na pasta de extração. Você receberá um aviso sobre o driver não ser assinado/certificado, devido ao .inf modificado. Apenas aperte OK.
No próximo reinício do Vista, o vídeo deve estar apropriado, na resolução nativa. O nVidia Control Center não exibirá mais as opções de controle para HDTV, tratando o seu LCD como apenas monitor.
:!: Considerações:
Caso o Phoenix EDID Designer forneça mais de uma opção de EDID, tente o processo com os bytes de cada uma. Aconteceu comigo e é trabalhoso, mas deu certo na segunda tentativa.
Existe ainda a possibilidade de seu monitor/TV estar sem o driver adequado (não disponibilizado pelo fabricante), ou que seu EDID informe uma resolução nativa inferior à sua real. A solução é usar o PowerStrip (http://www.entechtaiwan.com/util/ps.shtm). No primeiro caso, basta extrair o EDID direto do monitor/TV e criar um arquivo .inf que será o driver customizado. No segundo caso, a solução seria sobrescrever o EDID do monitor/TV - um delicado processo equivalente a modificar o firmware. Um tutorial pode ser encontrado aqui (http://forums.nvidia.com/index.php?showtopic=48946&mode=threaded).
O método descrito neste tutorial foi originalmente postado por bryanb (http://forums.nvidia.com/index.php?showuser=92294) neste tópico do nZone (http://forums.nvidia.com/index.php?showtopic=58483).