Tema: El PC y la baja resolución.
Nota previa:
El contenido de este hilo, trasladado desde el subforo principal, es provisional y meramente orientativo. El 'driver' de Calamity para Arcade VGA y sus aplicaciones tendrán hilo(s) propio(s) por el autor de los mismos. Todas las cuestiones relacionadas deberán esperar a la apertura de los mismos y la publicación de las últimas versiones.
-------------------------------------------------------------------------------------------------------------------
Hora ya de abrir un hilo dedicado a cómo conseguir que un PC se ejecute a baja resolución / 15 kHz, lógicamente, solo de interés para aquéllos que usan programas emuladores de sistemas antiguos (o no tanto), aunque quizás (personalmente, no he probado ninguno) también útil para esos pocos juegos para WIN que aún se diseñan a baja resolución (320 x 240, generalmente). Para todos los aún no interesados en la emulación por algún prejuicio de tipo técnico, espero que este hilo sirva precisamente para acabar con falsos mitos acerca de la supuesta imposibilidad de que una emulación sea, desde el punto de vista práctico, 100% 'perfecta', especialmente en la cuestión visual.
Primera consideración: Los PC, desde antes incluso de la era Windows, vienen únicamente preparados para altas resoluciones. Desde sus sistemas operativos y aplicaciones comunes, hasta (y esto es lo importante aquí) el 'hardware' relativo al vídeo (monitores y tarjetas gráficas).
Segunda: Los sistemas antiguos (o mejor dicho, los juegos antiguos) se diseñaban y presentaban a bajas resoluciones, por lo que ejecutarlos a través de un programa emulador para un PC convencional conlleva una discrepancia visual fundamental con los originales que solo puede 'disfrazarse' por medio de los filtros gráficos que habitualmente incorporan estos programas (especialmente, las 'scanlines' artificiales). Pero no es más que un disfraz.
Tercera: El concepto de 'resolución' lleva asociado, al hablar de vídeo-juegos, una tasa de refresco vertical de la pantalla, puesto que hablamos de imágenes en movimiento. De la misma manera que el valor de resolución, la tasa de refresco vertical puede tomar una multiplicidad enorme de valores dentro de un relativamente amplio espectro, en contra de la creencia de que son siempre 60 Hz.
Cuarta: Al igual que un PC viene preparado solo para altas resoluciones, un PC (sus tarjetas gráficas convencionales) está preparado únicamente para tasas de refresco vertical de valores muy concretos (60 Hz, 75 Hz, 85 Hz...) que no pueden ser modificados a nivel de usuario.
Quinta: Las discrepancias en las tasas de refresco (esto es, ejecutar un juego a 60 Hz cuando originalmente funcionaba a 57,57 Hz, por ejemplo) repercuten directamente en la interacción con el juego y en la respuesta al control (que se dejará notar más o menos en función del juego emulado), de manera que el problema no es exclusivamente 'audiovisual'.
Por tanto: La emulación en un PC convencional apesta.
La versatilidad de estos chismes, en cambio, permite que, con cierto esfuerzo, podamos salvar todas estas limitaciones del vídeo. Se trata, claro, de 'desconvencionalizar' el PC, lo que hará inviable que el ordenador que dediquemos a estos menesteres sea útil para algo más que jugar y ver vídeos (con excepcionales resultados, por cierto).
Paso a paso:
1. EL MONITOR
Bajas resoluciones requieren monitores capaces de ejecutarlas, cosa que ningún monitor para PC, ya sea CRT o TFT, puede lograr. La idea, claro, es emplear un CRT de 15 kHz con una buena señal RGB. Es indiferente, si vives en Europa, que éste sea un televisor o un monitor de 'arcades'. Ambos ofrecen idénticos resultados, dependiendo, obviamente, de la calidad del tubo que los sustenta. Algunos monitores profesionales presentaban un sutil 'efecto rejilla' que los TV (Trinitron y derivados incluidos), no tienen, si queremos ser más detallistas.
Ahora bien, hay una diferencia sustancial entre ambos tipos de monitores (aparte de las estéticas / físicas -- un monitor de 'arcades' necesita su cabina para que las tripas no queden al descubierto...): las entradas de conexión. Solo un TV ofrece entradas estándar (léase 'SCART'), ya que el monitor profesional viene preparado para la conexión directa del PCB a través de la cabina. En cualquiera de los dos casos necesitaremos un cable que comunique a nuestro PC (a su tarjeta gráfica) con el monitor.
2. EL CABLE
La solución para monitores profesionales se fabrica y distribuye mediante Ultimarc ('I-Pac'). Como no la he probado personalmente, dejaré que alguien con experiencia rellene este apartado.
La solución para TV consiste en transformar un cable 'VGA' (el convencional de 15 tomas) en un cable RGB VGA-SCART, esto es, hacerlo apto para la hembra SCART del TV, transmitiendo la señal RGB a 15 kHz. Esto es, posiblemente, la parte más incómoda de todo el proceso, porque requiere soldar (y no todos tenemos ni el material, ni la experiencia). Para aquéllos que sí, éste es el esquema de conexiones internas:
http://img253.imageshack.us/i/esquema0rf.jpg/ ( http://www.aumap.org/foromarciano/foro/ … 069_1.html )
Por desgracia, ninguna marca especializada comercializa estos cables ya hechos hasta donde yo sé, aunque yo he llegado a verlos en los sitios de subastas ingleses o elaborados por particulares. Nótese que un cable VGA-SCART no es difícil de encontrar en los comercios dado que muchas tarjetas gráficas permiten conectarse al TV de 15 kHz (para ejecutar solo modos en alta resolución entrelazados). No tiene nada que ver con lo que perseguimos aquí. Estos cables transmiten señales de vídeo compuesto o S-Video únicamente.
3. LA TARJETA GRÁFICA
Hasta no hace mucho, la única solución para que un PC pudiera ejecutarse en un monitor de 15 kHz y a baja resolución tenía el nombre de 'Arcade VGA' y no era otra cosa que una tarjeta ATI con la BIOS alterada que comercializaba la mencionada Ultimarc. Estaba pensada para usarse con su I-Pac en un monitor de 'arcades' (incluso otro accesorio permitía conectar directamente los mandos de la cabina al PC), pero nada impedía usar un cable RGB VGA-SCART y emplear un TV.
Hoy ya se saben de métodos para alterar vía 'software' una tarjeta ATI y convertirla, en la práctica, en una Arcade VGA. La única desventaja de no emplear una Arcade VGA de Ultimarc es que la pantalla de arranque del ordenador no se ejecuta en 15 kHz, sino en 31 kHz, y por tanto, no se visualizará.
La Arcade VGA viene preparada con diversos 'modelines' por defecto (un 'modeline' es un valor de resolución y una tasa de refresco asociada), pero son del todo insuficientes para cubrir la extraordinaria variedad que contempla, por ejemplo, el emulador MAME. De hecho, casi cualquier juego que emplee una frecuencia vertical distinta a 60 Hz no podrá ejecutarse correctamente (o 'perfectamente') con una Arcade VGA en su configuración por defecto. Y son muchos los juegos así, por tanto, esta tarjeta, por sí misma, no es la solución para ejecutar la totalidad de los sistemas emulados a su resolución y tasa de refresco nativos.
--3.1. TARJETAS ATI BASADAS EN CATALYST 6.5 / ARCADE VGA CON DRIVER MODIFICADO POR CALAMITY.
Al Sr. Calamity se le ocurrió alterar la forma en que las tarjetas ATI antiguas (que incluyen la Arcade VGA) y Windows se comunican para forzarlos a ejecutar cualquier modo que el usuario demande y superar, por tanto, la limitación de fábrica. De modo que Calamity creó una nueva versión del 'driver' que, por sí mismo, nos permite personalizar los 'modelines' sin ninguna manipulación de BIOS o del 'hardware' [ > ].
La tarjeta ATI, sin embargo, impone dos limitaciones: la primera es que el nº de 'modelines' soportados simultáneamente es limitado. Inicialmente la limitación era bastante restrictiva, de hecho, no superando unas pocas decenas, pero Calamity consiguió una vez más superar la barrera y actualmente es posible configurar la tarjeta para soportar hasta 400 modos simultáneamente gracias a su última versión. Más que suficientes para cubrir el espectro 'MAME', como luego se explicará.
La segunda limitación viene dada por la propia arquitectura de las tarjetas, que impide establecer con absoluta paridad el valor de la frecuencia vertical, existiendo, generalmente, una mínima discrepancia entre el refresco deseado y el ejecutado por la tarjeta. Hablamos, en este caso, de diferencias minúsculas, imposibles de apreciar a la hora de poner en práctica el juego (por ejemplo: los 384 x 224 a 59.610001 Hz del CP-S según la última versión de MAME cuando escribo estas líneas, se convierten en 384 x 224 a 59.622368 Hz), pero que obligan a sincronizar el programa emulador para evitar 'hipos' o 'tearing' eventuales y desajustes del audio.
--3.2. TARJETAS GRÁFICAS CONVENCIONALES MODIFICADAS A NIVEL DE BIOS.
Si no se pudiera emplear una ATI apta para la modificación de Calamity, también se ha encontrado maneras de forzar al registro de Windows a emplear modos de 15 kHz (baja resolución) con tarjetas N-Vidia y Matrox. Como ignoro del todo los pormenores, os remito a realizar una búsqueda en Google hasta que alguien nos quiera elaborar por aquí la cuestión: me consta que se ha debatido y explicado en más de un foro en disitintas lenguas.
4. EL SOFTWARE
Muchos odian Windows para estas labores, y con razón. Windows es siempre un intermediario entre el programa emulador y el usuario, y como tal, _puede_ interferir en el proceso de emulación y su ejecución. Por lo pronto, tal y como se ha explicado arriba, cualquier 'modeline' que deseemos emplear necesita ser reconocido por Windows después de que se lo ordenemos al emulador. Por ello, muchos ejecutan sus emuladores solo en DOS. Para hacer las cosas un poco más fáciles, se ideó Advance MAME [ > ]; una versión de MAME para DOS y tarjetas de 15 kHz, aunque tiene un par de pegas: sigue siendo un dolor configurarlo y no se actualiza desde hace varios años. Por no hablar de que hay muy pocos emuladores que tengan versión DOS, obligando al final al uso de Windows si se quiere emular algo más que las máquinas recreativas y algún otro sistema doméstico concreto.
Hecha esta puntualización, yo he de decir que uso WIN XP y, adecuadamente ajustado, no noto 'interferencias' (en forma, por ejemplo, de retardo de respuesta al control). De manera que, hasta que aflore alguien que diga lo contrario, nos centramos en el 'software' para WIN XP. 'Software' orientado, lógicamente, a añadir 'modelines' al sistema operativo y obtener la gama de resoluciones y refrescos de 15 kHz que necesitemos en cada momento.
--4.1. CONFIGURADOR PARA DRIVER DE CALAMITY Y MAME.
No contento con ofrecernos una versión alterada de los 'drivers' de ATI para personalizar los modos de vídeo, Calamity ha creado también un pequeño programa para autoconfigurar sus 'drivers' según la norma MAME e incluso añadir 'modelines' personalizados manualmente de una forma bastante inmediata.
El programa, de nombre provisional 'XML-2-WIN', recoge la información de una versión de MAME que tengamos operativa, agrupa y descarta los modos en función de sus iteraciones e importancia (recordemos que las tarjetas no admiten más de 200 'modelines', y con 'trampa') y configura, tanto los 'drivers', como el MAME asociado por nosotros de manera que no haya que configurarlo manualmente por juego. Permite, además, una sucesiva actualización de los 'modelines' en función de las distintas versiones de MAME, sin más límite que el que el usuario imponga, con la sencilla operación de cambiar los directorios del emulador en el .INI y abrir el ejecutable.
Se distribuye conjuntamente con los 'drivers' de Calamity, es apto, por tanto, para cualquier tarjeta que soporte estos 'drivers', y se puede descargar aún en versión beta, aquí:
'Driver' para ATI / A-VGA modificado por Calamity más programa configurador:
http://abadiadelcrimen.com/download/dri … vo_2.0.rar
Incluye un archivo de instrucciones que desarrolla toda esta explicación de forma menos sintética y está probado su funcionamiento, aunque aún en fase 'beta'.
--4.2. APLICACIONES ALTERNATIVAS PARA OBTENER MODOS DE 15 kHz EN WIN.
Power Strip: Para añadir 'modelines' en WIN. Creo que no es "freeware", pero si alguien sabe más...
Soft-15kHz: Aplicación para forzar la baja resolución en tarjetas compatibles (ATI, Radeon, etc. -- lista aquí: enlace). Esto evita modificaciones de BIOS. Se puede descargar directamente aquí: http://files.arianchen.de/soft15khz/soft15khz.zip
Winmodelines: Similar al anterior, permite añadir "modelines" en WIN alterando el Registro. Se está trabajando en implementarlo para la Arcade VGA de Ultimarc.
Página oficial: http://www.retrovicio.com/tutoriales/wi … manual-uso
Actualizado en 03.2010. Detalles: http://postback.geedorah.com/foros/view … 9288#p9288
5. LA DOCUMENTACIÓN ADICIONAL
--5.1. MODELINES.
Para conocer la resolución y tasa de refresco vertical de la imagen del juego o sistema emulado en caso de necesitar añadir modos manualmente, lo mejor es atender a la última versión de MAME (o a la que vayamos a usar). Mirando las propiedades de cada juego o 'driver' o la pantalla de inicio del juego es inmediato leer los valores de resolución y frecuencia vertical. Si se desea conocer previamente, siempre está MAWS:
http://www.mameworld.net/maws/
Solo hay que hacer una búsqueda por juego y mirar en el apartado "Display" -> "Frequency".
Cabe decir que ni siquiera plataformas tan populares y relevantes como CP-S II, Neo-Geo o Taito F3 ejecutaban sus juegos a 60 Hz.
En este mensaje, en cualquier caso, está la lista de los 400 modos principales generada a partir de MAME UI FX 0.136 mediante el XML-2-INI de Calamity:
http://postback.geedorah.com/foros/view … 8577#p8577
Los sistemas domésticos para TV empleaban, generalmente, 60 Hz de frecuencia vertical (en MAME creen que en Super Famicom era levemente superior [ > ], pero emuladores como ZSNES o SNES 9 X asumen que son 60 Hz redonditos. PC Engine y Mega Drive sí que no dan lugar a equívoco: son 60 Hz.
Nótese que algunos de estos sistemas (SFC, PCE, PS / ZN System, etc) son capaces de diversos modos de resolución y algunos de sus juegos cambiaban dinámicamente el modo. Estos casos son los más problemáticos a la hora de obtener una correcta emulación, y dependerá de cómo venga implementado el emulador. Por suerte, no son muchos.
--5.2. PROBLEMAS ASOCIADOS A LAS DISCREPANCIAS DEL VÍDEO.
El siguiente enlace conduce a un texto en inglés donde se explica e ilustra el tema de las discrepancias en el vídeo al ejecutar un juego emulado con respecto a su modo nativo:
http://www.retroblast.com/Articles/Retr … Tweaks.php
Está enfocado a la configuración de MAME para soliviantar en lo posible el problema ("triple buffering", etc.) para los que usan tarjetas gráficas convencionales sin "modelines" personalizados (es decir, ~60 Hz) y versiones no alteradas del emulador (es decir, emuladores que mantengan la frecuencia original de los juegos), pero como base didáctica de la cuestión que tratamos en este hilo, es un buen escrito.
Y en este otro hilo, tocamos el tema de las discrepancias de resolución en la emulación y los escalados:
http://postback.geedorah.com/foros/viewtopic.php?id=142
--5.3. CONFIGURACIÓN GENERAL DE MAME PARA TARJETAS DE 15 kHz ADAPTADAS.
Las opciones que deben estar activadas SIEMPRE son:
- Switch resolutions to fit
- Synch to monitor refresh
- Triple buffer
- Synch sound (en 'sound')
- Direct Draw (en 'video mode')
- Stretch using hardware (DESACTIVAR)
La razón es que, por mucho que preparemos la gráfica para trabajar a los modelines que exige cada juego, el valor nunca llega a ser totalmente exacto (ni siquiera para los juegos de 60 Hz), de manera que existe siempre una pequeña diferencia--como se ha comentado ya--entre la frecuencia nativa de cada juego y lo que la gráfica saca en cada situación. Esta diferencia se solventa forzando a MAME a ejecutar cada juego a la velocidad impuesta por la gráfica con 'syncrefresh'. Para que el sonido también se adapte, se activan las dos siguientes opciones en las versiones (extraoficiales) de MAME que las incluyan (por ejemplo, MAME UI FX). La diferencia de velocidad en la ejecución es inapreciable, pero causaría eventuales desajustes si no las activamos.
---
Atención:
Utilidades de Calamity actualizadas a 29.08.2011: