Tema: Driver ATI Alternativo para CRT - Configuración automática para 15 kHz
[CRT_EmuDriver 1.2 (para Ati Radeon 9250 y otras)]
+
[VideoModeMaker 1.3c]
+
[Arcade_OSD 1.3b]
Abrimos este hilo para dar cuenta de las novedades que vayan surgiendo en torno a la modificación o parcheo del driver Catalyst de ATI (versiones 6.5 y 9.3), con objeto de mejorar algunas de sus prestaciones relacionadas con los modos de vídeo de baja resolución y su aplicación a la emulación en general.
Se trata de un proyecto de carácter experimental, orientado a usuarios con experiencia previa en emuladores, especialmente Mame, para uso en ordenadores dedicados a la emulación y monitores CRT de baja resolución (15 kHz).
El objetivo es obtener una señal de vídeo lo más fiel posible a la del sistema emulado, que nos permita ajustar la acción del juego a la tasa de refresco vertical original (vsync) para lograr scrolles suaves y fluidos.
Existen dos versiones paralelas, una basada en Catalyst 6.5, destinada a tarjetas antiguas, y otra basada en Catalyst 9.3 para tarjetas más nuevas. Hay tarjetas que son soportadas simultáneamente por ambas versiones, por tanto será decisión del usuario escoger una o la otra, teniendo en cuenta que la versión 6.5 para XP32 soporta el mayor número de modos de vídeo (200), mientras que las demás versiones están limitadas a 120 modos de vídeo.
ACTUALIZACIÓN: Descargar VideoModeMaker 1.3c + Arcade_OSD 1.3b
Descargar CRT_EmuDriver 1.2 (basado en Catalyst 6.5) para WIN-XP32 + VideoModeMaker 1.3 + Arcade_OSD 1.2
Descargar CRT_EmuDriver 1.2 (basado en Catalyst 6.5) para WIN-XP64 + VideoModeMaker 1.3 + Arcade_OSD 1.2
Tarjetas soportadas por la versión 6.5: Ati Radeon 7000, 7200, 7500, 8500, 9000, 9100, 9200, 9250, 9500, 9550, 9600, 9700, 9800, X300, X550, X600, X700, X800, X850, X1300, X1600, X1800, X1900, X1950, ArcadeVGA 9200/9250, etc. (ver Nota 1)
Descargar CRT_EmuDriver 1.2a (basado en Catalyst 9.3) para WIN-XP32 + VideoModeMaker 1.3 + Arcade_OSD 1.2
Descargar CRT_EmuDriver 1.2a (basado en Catalyst 9.3) para WIN-XP64 + VideoModeMaker 1.3 + Arcade_OSD 1.2
Tarjetas soportadas por la versión 9.3: Ati Radeon 9500, 9550, 9600, 9700, 9800, X300, X550, X600, X700, X740, X800, X850, X1050, X1200, X1300, X1550, X1600, X1650, X1800, X1900, X1950, HD 2350, HD 2400, HD 2600, HD 2900, HD 3200, HD 3300, HD 3400, HD 3410, HD 3450, HD 3550, HD 3570, HD 3600, HD 3610, HD 3690, HD 3730, HD 3750, HD 3800, HD 3830, HD 3850, HD 3870, HD 4230, HD 4250, HD 4350, HD 4550, HD 4570, HD 4580, HD 4650, HD 4670, HD 4730, HD 4750, HD 4800, HD 4850, HD 4870, HD 4890, etc. (ver Nota 1)
Si bien todas las pruebas se realizaron inicialmente con la tarjeta ATI Radeon 9250 AGP, por su popularidad en el mundo de la emulación, ahora estamos utilizando la ATI Radeon HD 4350 PCIe como base de pruebas para la versión 9.3. En negrita aparecen marcadas las tarjetas que hemos podido probar directamente y que funcionan al 100%.
En la carpeta de descarga encontraremos lo siguiente:
- El driver propiamente dicho (subcarpeta .\Driver), preconfigurado para emitir vídeo a 15 kHz inmediatamente tras su instalación, sin necesidad de software adicional, con hasta 200 modos de vídeo diferentes.
- VideoModeMaker (VMMaker.exe), es una utilidad de configuración que nos permitirá personalizar la lista de modos de vídeo disponibles (modelines) de acuerdo con nuestras necesidades, así como configurar correctamente el emulador MAME (cualquier versión que soporte XML) para asignar los modos de vídeo particulares de cada juego / sistema de forma automática. El configurador no trabaja con modelines precalculados, sino que los genera para cada situación, en función de parámetros editables por el usuario.
- Arcade_OSD (Arcade_OSD.exe) es una utilidad que, usada junto a CRT_EmuDriver, permite probar y editar de forma segura los modos de vídeo (modelines) generados por VideoModeMaker, permitiendo diversos ajustes, como el centrado horizontal y vertical y edición de márgenes, en tiempo real (sin necesidad de reiniciar para comprobar los resultados), así como medir la tasa de refresco real de cada modo.
El proyecto se encuentra en fase de desarrollo y pruebas. Esto hilo se irá actualizando con la publicación de los avances que realicemos.
[Tabla estática vs tabla dinámica vs tabla mágica]
VideoModeMaker soporta tres modos de funcionamiento, según queramos generar una tabla de modos de vídeo estática, dinámica o mágica. Esta función se controla desde la variables "ModeTableMethod_XML" y "ModeTableMethod_custom", que se aplican a los modos de vídeo obtenidos de MAME.xml y ReslList.txt, respectivamente.
La tabla de modos dinámica está pensada para usarse con GroovyMAME.
La tabla de modos mágica está pensada para usarse con GroovyMAME + Hyperspin.
Para cualquier otra versión de Mame, usaremos la tabla estática.
La tabla de modos estática respeta la resolución y el refresco original de cada modo de vídeo. La desventaja es que esto genera cientos de modos de vídeo diferentes por lo que hay que reducir la lista para que no se supere la capacidad del driver de vídeo.
La tabla de modos dinámica respeta la resolución pero ignora el refresco, asignándole el más cercano posible a 60 Hz. Luego GroovyMAME recalcula cada modo de vídeo con el refresco correcto para el juego seleccionado, en tiempo de ejecución. Esto reduce drásticamente la tabla de modos de vídeo requerida eliminando duplicidades.
La tabla de modos mágica ignora la resolución horizontal y el refresco, y sólo conserva la resolución vertical, produciendo de este modo resoluciones "comodín" del tipo 1234x. Luego GroovyMAME genera el modeline correcto en tiempo de ejecución, siendo el resultado indistinguible del método anterior, con la ventaja de que redicimos increíblemente la cantidad de modos de vídeo necesarios. Mediante este método podemos generar todas las resoluciones y refrescos necesarios para emular correctamente la totalidad de los juegos de MAME a partir de unas pocas decenas de modos de vídeo (los necesarios para definir correctamente la resolución vertical). Este método es de carácter experimental, por lo que puede fallar en determinados sistemas.
Una configuración típica para GroovyMAME sería:
ModeTableMethod_XML = 1 (ó 2, si usamos Hyperspin)
ModeTableMethod_Custom = 0
GenerateInis = 0
Una configuración típica para MAME convencional sería:
ModeTableMethod_XML = 0
ModeTableMethod_Custom = 0
GenerateInis = 1
[Catalyst Control Center]
Para el uso habitual, es suficiente con instalar el driver. No obstante, ciertas funciones, como la rotación del escritorio, sólo se pueden activar mediante el Catalyst Control Center (CCC). Éste puede descargarse de la web de AMD.
La versión 6.5 ya no está soportada por AMD, no obstante la versión 6.11 es totamente equivalente, por lo que descargaremos esta. Lo que haremos es iniciar la instalación del paquete y cancelarla cuando nos pregunte. De esta forma podremos entrar en "C:\ATI\Support\6-11-pre-r300_xp-2k_dd_ccc_wdm_38185\ACE" e instalar solamente el CCC.
Catalyst 6.11 Software Suite
Para la versión 9.3, puede descargarse individualmente el CCC de la página de AMD (ir a "Option 2 - Individual Downloads", Catalyst Control Center):
Catalyst Control Center 9.3 - XP32
Catalyst Control Center 9.3 - XP64
------------------------------------------------------------------------------------------------------------------------------------------
[Historial de versiones]
[16/06/2012][VideoModeMaker 1.3c][Arcade_OSD 1.3b]
- [VideoModeMaker] Procesamiento de XML adaptado a MAME v0.146 (reportado por genius77).
- [VideoModeMaker] Nuevo listado de modos de vídeo para emulación (ReslList.txt). Selección realizada por Recap.
- [VideoModeMaker] Nuevo listado de sistemas principales para MAME (MameMain.txt). Selección realizada por Recap.
- [VideoModeMaker] Selección de sistemas principales basada en el nombre de la rom.
- [VideoModeMaker] Nueva opción "Only List Main", que permite listar únicamente los modos de vídeo de los sistemas incluidos en MameMain.txt
- [VideoModeMaker] Nueva opción "YresRound", permite asignar un factor de redondeo para la resolución vertical, racionalizando la tabla de modos.
- [VideoModeMaker] Opciones ModetableMethod, XresMin, YresMin y YresRound independientes para MAME y tabla "custom", permite utilizar criterios diferentes para filtrar las resoluciones de MAME y las de la tabla ReslList.txt, optimizando la tabla de modos.
- [VideoModeMaker] Creación automática de tabla de modos "mágica" (ModeTableMethod_XML/custom = 2). Crea una tabla de resoluciones comodín, del tipo 1234 x (yres), lo que permite reducir enormemente la tabla de modos de vídeo. Esta opción sólo puede utilizarse junto con GroovyMAME, en concreto para sortear un "bug" del frontend Hyperspin, que no se inicia si el número de modos de vídeo disponibles en el sistema excede de cierta cifra.
- [VideoModeMaker] Mejoras importantes en la generación de tabla de modos para monitores multifrecuencia.
- [VideoModeMaker]/[Arcade_OSD] Añadido soporte para polaridad de sincronismos.
- [Arcade_OSD] Soporte para múltiples monitores. La opción "Attach OSD to current monitor" permite seleccionar el monitor activo al desplazar la ventana del programa al monitor correspondiente.
- [Arcade_OSD] La opción "Lock unsopported modes" bloquea los modos de vídeo que Windows considera que NO son soportados por nuestro monitor. ATENCIÓN: Windows sólo puede determinar las características de un monitor a partir de la información contenida en el EDID de dicho monitor. Los monitores arcade y los televisores CRT no tienen EDID, por lo que Windows mostrará todos los modos de vídeo como si estuvieran soportados, incluyendo aquellos que son potencialmente peligrosos. Por tanto esta opción no puede usarse para filtrar los modos no soportados. Su función es la opuesta: desbloquar aquellos modos de vídeo que Windows pudiera considerar como no soportados, en aquellos monitores que dispongan de un EDID válido, bajo la responsabilidad del usuario.
[29/08/2011][CRT_EmuDriver 1.2a][VideoModeMaker 1.3][Arcade_OSD 1.2]
- Añadido soporte para la Radeon HD 4890 (la tarjeta más potente soportada hasta el momento)
[16/04/2011][CRT_EmuDriver 1.2][VideoModeMaker 1.3][Arcade_OSD 1.2]
- Nueva versión basada en Catalyst 6.5 para Windows x64
- [VideoModeMaker] Nueva versión 1.3, soporte para monitores multifrecuencia (beta).
[06/03/2011][CRT_EmuDriver 1.2][VideoModeMaker 1.2][Arcade_OSD 1.2]
- Nueva versión basada en Catalyst 9.3 para Windows x64
- [VideoModeMaker] Nuevas opciones VerticalAspect, ModeTableMethod, DotClockMin, AnyCatalyst (ver VMMaker.ini para más detalles).
- [Arcade_OSD] Subsanado problema que impedía conservar los cambios aplicados al modo de vídeo del escritorio de Windows.
[24/12/2010][CRT_EmuDriver 1.2][VideoModeMaker 1.1][Arcade_OSD 1.1]
- Nueva versión basada en Catalyst 9.3
- VMMaker implementa nuevo sistema de etiquetado de modos en la versión 9.3, para diferenciar modos de vídeo con refrescos similiares. Se basa en utilizar tres cifras enteras para denominar el valor del refresco vertical, por ejemplo 320x256@55.5Hz se etiquetaría como 320x256_555. Esto debe tenerse en cuenta a la hora de configurar los emuladores, no obstante VMMaker genera los inis para Mame correctamente con el nuevo sistema. Se puede volver al sistema de etiquetado anterior (consistente en incrementos sucesivos de xres) estableciendo VFreqLabelx10 = 0 en VMMaker.ini.
- VMMaker implementa mejoras en el generador de modelines, de forma que la temporización del monitor puede establecerse con mayor precisión (nuevas variables VFrontPorch, VSyncPulse, VBackPorch en VMMaker.ini)
- Subsanado problema con Arcade_OSD y DDraw en Catalyst 9.3
- Subsanado problema con Arcade_OSD al mostrar la temporización de modos entrelazados.
[05/10/2010][CRT_EmuDriver 1.1][VideoModeMaker 1.0][Arcade_OSD 1.0]
- Subsanado problema de instalación del driver en tarjetas diferentes a las Radeon 9200/9250, debido a un error en los archivos .inf
- Añadido soporte para Ati Radeon X1950 Pro (probado por ConanR)
- Modos de vídeo preinstalados para Mame v0.139
[08/09/2010][CRT_EmuDriver 1.0][VideoModeMaker 1.0][Arcade_OSD 1.0]
- Primera versión completa.
[Notas]
Nota 1: Si bien el driver soporta multitud de modelos de Ati, no todos ellos son programables para mostrar bajas resoluciones, o sólo pueden mostrar algunas. Esto es debido a que muchas tarjetas no pueden trabajar con valores de "dotclock" por debajo de cierto límite. La solución para estas tarjetas consisten en fijar un valor mínimo para el "dotclock" en VMMaker.ini. Para ello editaremos el valor "DotClockMin", recomendándose empezar por 7.5, e ir incrementando si es necesario. Haciendo esto, se duplicará la resolución horizontal en las resoluciones bajas. El resultado, en Mame, es indistinguible.
Nota 2: Se recomienda usar la utilidad Catalyst Uninstaller antes de instalar el driver, para eliminar del sistema cualquier resto de software de Ati. Lamentablemente, ciertos conflictos con drivers anteriores presentes en el sistema pueden producir problemas a la hora de reinstalar nuevos drivers. Por ello se recomienda desinstalar manualmente los controladores Ati de Microsoft para que Windows trae instalados por defecto.
También es recomendable la consulta de este hilo, donde a lo largo del desarrollo diferentes usuarios hemos ido acumulando experiencias y pruebas.
[Agradecimientos]
A Jeroni Paul, creador de Winmodelines, programa que sirvió de inspiración y laboratorio de pruebas y sin el cual nada de esto habría sido posible.
A Recap, por su implicación con el proyecto, ayuda con las pruebas y la selección de los principales sistemas.
A Chris Kennedy, por su impagable trabajo en Switchres / GroovyMame / GroovyArcade.
Agradecimientos especiales a los "beta-testers": Daicon-X, pakoto, ConanR, etc.
------------------------------------------------------------------------------------------------------------------------------------------
[Versiones anteriores]
(enlaces obsoletos)
Descargar CRT_EmuDriver 1.1 (para ATI 9250 y otras) + VideoModeMaker 1.0 + Arcade_OSD 1.0