Configuración mediante el registro en tarjetas ATI

Introducción

Los controladores ATI son famosos por su limitación en cuanto a utilizar resoluciones y refrescos distintos de los habituales en un PC, sin embargo dicha limitación parece ser solo debida a la falta de opciones en el panel de control, ya que el controlador acepta cualquier configuración personalizada coherente que se le introduzca en su sección del registro.

Gracias a esto podemos prescindir de software ajeno y hacks dudosos: el controlador puede configurar correctamente el hardware para generar la resolución y refresco para la TV. Esto tiene como ventaja que las nuevas configuraciones se aplican tan pronto carga el controlador posibilitando ver la pantalla de bienvenida y login en la TV y además el controlador reporta a Windows los nuevos modos, siendo fácilmente seleccionados como cualquier otra resolución.

En Windows XP las resoluciones disponibles en el controlador se pueden ver accediendo a Panel de control, Propiedades de pantalla, Configuración, Opciones avanzadas, Adaptador, Lista de todos los modos. El controlador incorpora un repertorio de modos estándar que es lo que se muestra en esta lista.

En Windows 98 no hay una lista completa, se debe seleccionar primero la resolución en Propiedades de pantalla y una vez activada la resolución nos mostrará las frecuencias de refresco disponibles en Avanzada, Adaptador. Si no se muestra la sección Frecuencia de actualización debajo de Información del adaptador es porque Windows no ha podido reconocer el monitor conectado. Debemos acceder a la pestaña Monitor y pulsar Cambiar para seleccionar un monitor, por ejemplo SVGA 800x600 a 75 Hz. La lista de resoluciones y refrescos que se pueden seleccionar viene filtrada por los que soporte el monitor seleccionado, el indicado soporta nuestros modos.

Localizar la entrada de registro

Para empezar a editar los valores que usa el controlador ATI, debemos localizar su ruta dentro del registro. Dicha ruta es distinta en cada caso por lo que no podemos exponerla aquí. Abrimos el Editor de registro (Inicio, Ejecutar, "regedit") y nos dirigimos a:

Para Windows NT/2000/XP: HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEO\VideoN
N es 0 si solo tenemos una tarjeta gráfica. El valor asociado es la ruta hacia las opciones del controlador, accedemos a ella desplegando las entradas correspondientes del árbol teniendo en cuenta que \Registry\Machine significa HKEY_LOCAL_MACHINE.

Para Windows 98/Me: HKEY_LOCAL_MACHINE\Software\ATI Technologies\controlador\NNNN\DAL
Deberemos tratar de identificar el número NNNN activo en caso de tener más de uno.

Añadir resoluciones

En esta sección añadiremos la resolución NTSC 640x480 a 30Hz al ser la más simple. Se mostrarán los pasos para personalizar completamente esta resolución, ya que para añadir cualquier otra simplemente se deberán seguir los mismos pasos. Al final se facilitará una lista de parámetros con resoluciones útiles para TV.

Para añadir un nuevo modo, editamos en el registro el valor DALNonStandardModesBCD1 haciendo doble clic en él. Nos aparece esta ventana:

[inline01.png]

Modos personalizados

Los datos de interés son de la segunda a la novena columna, donde cada fila es una resolución personalizada. Con el controlador recién instalado vienen algunas resoluciones no estándar y aquí añadiremos nuestros modos para la TV. Posicionamos el cursor al final de los datos tal como muestra la imagen e introducimos estos valores para la nueva resolución:

06 40 04 80 00 00 00 30

Los cuatro primeros números (dos pares) representan la resolución horizontal, los cuatro siguientes la vertical, los cuatro siguientes la profundidad de color (a ceros significa todas las profundidades disponibles) y los cuatro últimos la frecuencia de refresco vertical. En este caso acabamos de introducir el modo 640x480 a 30 Hz, (modo NTSC).

Aceptamos y reiniciamos el ordenador. Es necesario reiniciar el ordenador para que el controlador cargue los nuevos parámetros. Una vez reiniciado accedemos a la lista de modos y ya nos aparecerá el nuevo modo:

02.png

Si lo activamos, la salida será la esperada: 15,7 kHz a 30 Hz (no se recomienda hacerlo porque posiblemente no sincronice ni la TV ni el monitor con la señal, antes es necesario configurar los sincronismos, siguiente sección).

Para Windows98: Además hay que dar de alta las nuevas resoluciones y refrescos aquí:
[tecla]HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Display\NNNN\MODES\X
X[/tecla] es la profundidad de color admitida para la resolución, se deben añadir las resoluciones en la clave 8 obligatoriamente y a 16 y 32 para poder seleccionarlos. Se creará una nueva clave si no existe con la resolución como nombre XXX,YYY y para el de la clave 8 en el valor Predeterminado los refrescos verticales admitidos para esa resolución separados por comas. En este caso se ha añadido el refresco 30 a la lista de la clave 640,480:

03.png

Configurar los sincronismos

Si intentamos utilizar el modo añadido en el paso anterior nos encontraremos que la señal de sincronismos se genera con polaridad positiva y la TV no sincroniza (a menos que se use el circuito mejorado). Una solución es acceder al panel de control ATI y establecer la polaridad de los sincronismos negativa o activar los sincronismos compuestos. Pero esto se debe hacer una vez activado el modo: esta configuración se guarda individualmente para cada modo. Si la TV no sincroniza y el monitor tampoco, va a ser difícil que lo podamos hacer, así que vamos a establecerlo mediante el registro.

Polaridades

Si no existe, se creará un nuevo valor llamado DALR6 CRT640x480x0x30 de tipo Binario (Edición, Nuevo, Valor binario). Si ya existe, pasamos a su edición. Su nombre indica el modo para el que se aplicarán las configuraciones que contiene. Doble clic en el nuevo valor para editarlo, se debe introducir la información de una de las imágenes según la versión del controlador:

04.png

05.png

06.png

07.png

Versión pre-Catalyst y Catalyst hasta 3.2 Catalyst de 3.4 a 4.11 Catalyst de 4.12 a 5.4 Catalyst 5.5 o posterior

La imagen superior-izquierda es para Catalyst versión 3.2 o anterior, la superior-derecha es para las versiones Catalyst de la 3.4 a la 4.11, la inferior-izquierda aplica en las versiones Catalyst de la 4.12 a la 5.4 y la inferior-derecha es el modelo para la versión 5.5 o posterior. La versión más reciente que se ha probado es la 6.11 ya que la Radeon de que dispongo no permite instalar una versión más moderna, si descubren que en versiones posteriores se sigue otro modelo agradeceré su colaboración.

Hecho esto ya podemos reiniciar el PC y establecer el nuevo modo. La TV debería sincronizar correctamente (necesita ser compatible con refrescos NTSC a 30Hz). Se puede ajustar la posición y el tamaño en el panel de control ATI.

Nota: El valor señalado con un círculo se debe establecer a 00 si se personaliza la resolución (ver sección Ajustes avanzados). Los otros valores 01 indican polaridades negativas, para establecer la polaridad positiva se cambiarán por 00.

Sincronismos compuestos

Una ventaja de las tarjetas ATI es su habilidad para generar sincronismos compuestos, recordemos que para sacar provecho de esta característica es necesario omitir la conexión marcada en rojo del esquema del cable VGA ? TV. Para habilitar la generación de sincronismos compuestos editamos el valor DALR6 CRT y cambiamos el primer valor de la fila 0050 por un 01:

08.png

Sincronización compuesta

Esta configuración es global, es decir afecta a todos los modos y permanecerá activa hasta que se deshaga el cambio o se desactive desde el panel de control ATI. Para un correcto funcionamiento al activar esta opción las polaridades de los sincronismos deben ser positivas en los modos utilizados, es decir se deben cambiar los valores 01 por 00 (excepto el señalado con un círculo) del apartado Polaridades.

Ajustes avanzados

Hasta ahora no hemos indicado en ningún sitio la frecuencia de escaneo horizontal ni ajustes de ningún tipo, dado que el controlador toma unos por defecto para cada modo si no se le indican y en este caso toma por defecto los parámetros correctos para la TV.

Sin embargo con lo que hemos hecho estamos a merced que los parámetros que toma por defecto el controlador sean los que queremos y ocurre que para otros modos de interés no es así. Es posible especificar los parámetros "Modeline" para cada modo que se crea para que los sincronismos sean exactamente como queremos que sean. Dichos datos son los equivalentes a los utilizados en el X-Config de Linux y los mostrados por PowerStrip en Opciones avanzadas del temporizador.

Crear un valor nuevo llamado DALDTMCRTBCD640x480x0x30 (valor binario). Se rellenará el valor con los siguientes datos:

09.png

Temporizador avanzado

El nombre del valor refleja el modo de pantalla en el que se aplicarán los parámetros. Vamos a describir cada campo y como convertir los datos Modeline en los que se deben introducir aquí.

Usaremos de ejemplo un Modeline que genera una señal NTSC a 29.97 cps (NTSC color):
Modeline "NTSC" 12.210 640 656 712 776 480 486 492 525 interlace -hsync -vsync
y en general:
Modeline "Name" FF.FFF HHH PHH LHH THH VVV PVV LVV TVV (opciones).

    Fila 1, valor 4: configuración señal de sincronismos

  • 01: Double scan
  • 02: Entrelazado

Nota: Para activar más de una opción se sumarán los valores.

Valor: Aparece la opción interlace ? 02.

  • Fila 1, valores 7 y 8: total píxeles horizontal.
  • Valor: THH ? 07 76.

  • Fila 2, valores 3 y 4: píxeles horizontales activos (resolución horizontal)
  • Valor: HHH ? 06 40.

  • Fila 2, valores 7 y 8: número de píxel del inicio del pulso de sincronización horizontal
  • Valor: PHH ? 06 56.

  • Fila 3, valores 3 y 4: ancho del pulso horizontal en píxeles.
  • Valor: LHH ? PHH ? 712 ? 656 = 00 56.

  • Fila 3, valores 7 y 8: total de líneas verticales
  • Valor: TVV ? 05 25.

  • Fila 4, valores 3 y 4: líneas verticales activas (resolución vertical)
  • Valor: VVV ? 04 80.

  • Fila 4, valores 7 y 8: número de línea del inicio del pulso de sincronización vertical
  • Valor: PVV ? 04 86.

  • Fila 5, valores 3 y 4: ancho del pulso vertical en líneas.
  • Valor: LVV ? PVV ? 492 ? 486 = 00 06.

  • Fila 5, valores 7 y 8: frecuencia del reloj de píxel expresado en 10kHz.
  • 12.210 está expresado en MHz y equivale a 1221 * 10kHz.
    Valor: FF.FF ? 12 21.

  • Fila 9, valores 3 y 4: checksum.
  • Para calcularlo se sumarán todos los valores introducidos (en decimal), tomando los valores de resolución enteros (los de tres o cuatro cifras forman un solo número a sumar). Se restará a 65535 el valor obtenido y se convertirá a hexadecimal. En este caso: 2 + 776 + 640 + 656 + 56 + 525 + 480 + 486 + 6 + 1221 = 4848
    Valor: 65535 ? 4848 = 60687 en hexadecimal es ? ED 0F.

  • El resto de valores: todo ceros.

Una vez guardado y reiniciado el PC, el modo ya funciona con los nuevos parámetros.

Cuando se personaliza un modo de esta manera el valor de refresco vertical especificado en el nombre del modo (30) deja de tener significado real y pasa a ser una etiqueta, ya que el refresco vertical ahora viene dado por los ajustes Modeline especificados. Es decir, si introducimos unos ajustes que configuran otro refresco, éste prevaldrá y aunque el modo aparecerá como 30 Hercios en la lista de modos, en realidad el refresco real será el indicado por los ajustes. Gracias a esto podemos crear más de un modo con el mismo refresco vertical usando etiquetas distintas. Por ejemplo podemos dejar el modo de 30Hz con los ajustes por defecto del controlador que son buenos y crear otro modo 640x480 a 29Hz con los ajustes expuestos para 29.97Hz.

Notas

El controlador que se instala al instalar Windows XP no soporta el entrelazado, se debe actualizar con un controlador ATI (y se recomienda utilizar una versión reciente).

Si al activar un modo entrelazado aparece la imagen desfigurada en pequeños cuadraditos excepto el ratón es necesario desactivar el Tiling, para ello se establece el valor DisableTiling en el registro a 1.

Si el controlador parece ignorar la presencia de la clave con ajustes avanzados y aplica sus ajustes por defecto, debemos asegurarnos que no se haya aplicado ningún desplazamiento o cambio de tamaño a ese modo mediante el centro de control. Para ello verificamos que la clave DALR6 CRTXXXxYYYx0xRR donde se han configurado los sincronismos esté todo a ceros incluido el valor señalado con un círculo en el apartado Polaridades, exceptuando los dos valores 01 que establecen polaridad negativa.

Si el controlador insiste en virtualizar la resolución debemos asegurarnos de seleccionar un monitor adecuado. En Windows XP el Monitor predeterminado funciona bien y en Windows 98 el SVGA 800x600 a 75 Hz. En versiones antiguas del controlador bajo Windows 98 no hay forma de establecer una resolución personalizada como 720x576 a 25 Hz, es necesario actualizar el controlador.

Resoluciones útiles

A lo largo de este documento se ha creado un solo modo, que es útil para reproducir vídeo NTSC a 29.97 fps. Sin embargo se puede explotar mejor la conexión PC a TV definiendo otros modos más adecuados a distintos propósitos, en especial modos PAL para explotar la mayor resolución de la televisión europea y modos sin ocultación de los bordes (overscan) para todo lo que no sea vídeo o televisión. Para añadir otro modo se deben seguir los mismos pasos expuestos, pero utilizando los valores para el modo. Para más información sobre otros modos, vean el apartado dedicado a ello: Resoluciones útiles.

Por ejemplo aquí están los valores para el modo PAL 720x576 a 50 Hz, es un modo importante para un HTPC. No olvidar que además se ha de añadir el modo a DALNonStandardModesBCD1 y configurar los sincronismos en DALR6 CRT720x576x0x25:

10.png

Jeroni Paul

Marcianitos declina cualquier responsabilidad derivada del uso que se haga de la información de la web. Marcianitos no distribuye roms y no tiene ánimo de lucro.
Creative Commons License Esta obra está bajo una licencia de Creative Commons.