Los entusiastas del sistema operativo de Microsoft realizan todo tipo de pruebas para comprobar el comportamiento actual y pasado de las diferentes versiones. Esto es lo que ha sucedido con este usuario que ha desarrollado un juego compatible con la API de Windows 1.0 y lo ha probado en las versiones actuales del sistema.
Hablamos de un proyecto que se acaba de hacer público en Reddit y que pone a prueba las versiones actuales de Windows para un juego desarrollado con la API de la primera versión del sistema operativo.
Cómo se desarrolló el proyecto para Windows 1.0
Su creador se marcó como objetivo desarrollar un juego para Windows 1.0 y probar 40 años de compatibilidad, proyecto al que podéis echar un vistazo de primera mano desde este enlace.
Como nos cuenta su creador, tomó la determinación de escribir una aplicación para la primera versión de Windows para ver lo diferente que es realmente la API de Windows actual, respecto a sus primeras versiones. Antes de nada, debemos saber que Windows 1.0 se lanzó a mediados de la década de 1980. Fue una era marcada por los procesadores de 16 bits y MS-DOS.
A primera vista podría parecer que esa versión no tiene nada en común con el Windows moderno, pero al estudiar la API de la aplicación, se dio cuenta de que la realidad no es así. Generó una aplicación pequeña con gráficos, entrada de teclado, temporizadores y redibujado constante, a la que llamó Xonix. En realidad se trata de un juego sencillo compatible con Windows 1.0.
Para todo ello ha hecho uso de Microsoft C 4.0 y un compilador de los inicios de Windows. El código fuente utiliza el antiguo estilo de declaración de funciones y extensiones de compilador obsoletas como FAR y PASCAL.
Compatibilidad del juego con los Windows actuales
Pero a pesar de la antigüedad del sistema, la arquitectura de la aplicación no difiere tanto. Incluso en aquel entonces, casi todos los mecanismos básicos actuales de la API de Windows, ya existían. Nos habla de procedimientos de ventana, bucle de mensajes, temporizadores, recursos, o manejo del teclado y el ratón.
Internamente, Windows ha cambiado enormemente a lo largo de las décadas, pero la interfaz de la aplicación se ha mantenido tan estable, que el código de mediados de los 80 todavía resulta muy compatible. Hay que decir que el juego utiliza únicamente las funciones más básicas del sistema. No utiliza bibliotecas externas ni componentes no estándar. Así, se compila sin cambios en las diferentes versiones del SDK de Windows, desde Windows 1.0 hasta los sistemas modernos de 64 bits.
Solo cambian el compilador y la configuración de la misma. La conclusión a la que llega el entusiasta de Windows es que, para ser un proyecto dirigido a un sistema operativo de mediados de los 80, el nivel de compatibilidad resultante con las versiones modernas es sorprendente. Si lo queréis consultar, lo ha hecho público en esta página de la plataforma GitHub.
Una de las partes más interesantes del experimento fue probar la compatibilidad del archivo EXE de 16 bits ya compilado con versiones posteriores de Windows. Pues bien, el juego se ejecuta sin problema en sistemas que van desde Windows 1.x hasta versiones de 32 bits de Windows 10. Sin embargo, existen algunas excepciones, ya que, por ejemplo, no se inicia en Windows 95.
Por otro lado, en las versiones modernas de 64 bits de Windows, el proyecto compila pero tampoco se ejecuta, ya que se ha eliminado la compatibilidad con aplicaciones de Windows de 16 bits, por ejemplo. En resumidas cuentas, llama la atención el gran éxito del diseño original de la API de Windows. A pesar de la enorme cantidad de cambios internos que el sistema ha experimentado, Microsoft logró preservar el modelo de aplicación central con muy pocos cambios.
