Recientemente he tenido la oportunidad de empezar a trabajar con Windows 10 y de lo primero que he hecho ha sido testear software desarrollado para versiones anteriores de Windows. De las primeras que he probado, ha sido qué tal se comporta Windows 10 con Juegos Abandonware.
Hace ya un tiempo publicaba una entrada que hablaba sobre la corrección de colores en juegos abandonware en sistemas operativos de Windows más modernos. En este aspecto me ha sorprendido Windows 10, con una opción en su capa de compatibilidad para forzar a ejecutar las aplicaciones en modo 8 bits o 16 bits de color.
Esta opción nos permite arreglar el problema al que dábamos solución en dicha entrada. No obstante aparece otro problema, y es que por mucho que seleccionemos en "Opciones gráficas" la opción de "Escalar a pantalla completa" mantiene el ratio de aspecto. Esto se debe a que las configuraciones que usa el sistema y con las que se lanza un juego abandonware no son heredadas. Esto quiere decir que da igual cuánto te esfuerces en revisar todas las configuraciones que no será la que luego Windows aplique para lanzar el juego. Por ejemplo, si pruebas a ejecutar un clásico como el "Age of Empires 2" verás que se generan dos franjas negras en los lateras.
Estos juego que tienen más de 10 años, suelen trabajar en resoluciones nativas con una relación de aspecto de 4:3 con unas resoluciones nativas que solían ser de 800x600 y que posteriormente se escalaba a resoluciones mayores o expandía a pantalla completa si la relación de aspecto era distinta.
En versiones anteriores a Windows 10 bastaba con cambiar la resolución a 800x600 y seleccionar en las "Opciones gráficas" la opción "Escalar a pantalla completa" . A partir de este momento podíamos volver a nuestra resolución habitual y bastaba con lanzar el juego. Este procedimiento no es válido para Windows 10 ya que no se hereda la configuración y es necesario volver a fijar la resolución en caliente.
Para cambiar la configuración de la resolución mediante mediante un atajo de teclado, usaremos Hotkey Resolution Changer (HRC) que lo podéis descargar del siguiente enlace:
HRC_-_HotKey_Resolution_Changer_v2_1.exe
Guardaremos el ejecutable en una carpeta y lo ejecutaremos con un doble click.
El programa permite definir varios atajos para cambiar la resolución al momento. A la hora de definir los atajos, intentad que sea una combinación de teclas que no se use en vuestro equipo, como puede ser CTRL+SHIFT+1 y CTRL+SHIFT+2.
En la primera resolución guardaremos la que usamos, mientras en la segunda buscaremos la de 800x600.
Una vez fijadas las resoluciones con sus respectivos atajos, seleccionamos el icono de minimizar al lado del aspa roja, para que el programa se mantenga residente en la barra de tareas. Con el HRC configurado, lanzamos el juego.
En el caso particular del "Age of Empires 2", además he creado un “Lanzador.bat“ en la carpeta del ejecutable del juego, con las siguientes líneas:
taskkill /F /IM Explorer.exe age2_x1.exe normalmouse start explorer.exe
La primera línea detiene el proceso "Explorer.exe" para evitar problemas en el color. La segunda línea lanza el juego con el parámetro "normalmouse" que hace que no se cargue el icono del cursor del juego y cargue el del sistema. Esto se hace porque al poner el juego en pantalla completa con el HRC, el cursor desaparece. La tercera línea vuelve a lanzar el proceso "Explorer.exe" cerrado en la primera línea tras terminar la ejecución del juego. La primera línea sigue siendo necesaria a pesar de que se pueda seleccionar el parche de color en la pestaña de compatibilidad, porque cuando se lanza el juego desde “Lanzador.bat“ parece no aplicarse dichas configuraciones.
Lanzamos el juego mediante el lanzador y con el juego en marcha podremos poner la resolución a pantalla completa usando el atajo de teclas CTRL+SHIFT+2, que aplica la resolución a 800x600 a pantalla completa, gracias a haber configurado para dicha resolución la opción "Escalar a pantalla completa" desde el sistema como se hacía para versiones anteriores de Windows 10.
Al salir del juego tendréis la resolución de 800x600 en el escritorio. Utilizad el atajo CTRL+SHIFT+1 para poner la resolución que originariamente teníais.
No es una solución del todo decorosa la que se presenta en esta entrada, ya que se cambia en caliente la resolución para el juego que se está renderizando, pero no obstante funciona (que no es poco 😉). A Microsoft se le olvidó este tipo de cosas cuando definía su capa de compatibilidad para Windows 10, que por otro lado es de las más completas hasta la fecha. No es sencillo mantener una retrocompatibilidad tan alta como la que mantiene Windows, para hacer funcionar software diseñado para versiones anteriores y hasta primitivas del sistema.