Ultimamente he estado jugando a unos cuantos juegos antiguos de 1995.
Es increible como han cambiado las cosas en 9 años verdad? Con juegos como estos, en la pantalla puedo ver entornos 3D realizados con ‘solo’ unos pocos cientos de polígonos, sin efectos aplicados o muy simples, conceptos de juego diferentes, resoluciones mínimas, etc…
En cambio, siempre hay alguna joya que merece ser rescatada del olvido y jugada de nuevo… o si eres novato, por primera vez. Pero el caso es que los juegos de esa época son los más complicados de ejecutar en un S.O. moderno. ¿Por qué? Digamos que usan ciertas técnicas para aprovechar todas las posibilidades de los PCs de la época a los que el MS-DOS ya se les quedaba corto como sistema operativo.
En primer lugar, la mayoría de estos juegos necesitaban acceder a cantidades de memoria bastante mayores de las que MS-DOS era capaz de proporcionar en su forma normal. DOS es un S.O. que trabaja en modo real y por lo tanto, no tiene accedo a la memoria por encima de 1Mb de forma fácil. Si no sabeis lo que son los modos de trabajo del procesador, es mejor que hagais unas cuantas búsquedas en google en este punto.
Por lo tanto, para conseguir acceder a más de 1Mb de memoria bajo DOS, los programadores tuvieron que recurrir a trucos como EMS, XMS y extensores de memoria, que permitían a un programa de DOS trabajar en modo protegido y por lo tanto acceder a toda la memoria disponible.
Otro problema común en la época, era la falta de abstracción del hardware. Cada programador tenía que hacer versiones distintas de sus funciones para trabajar con tarjetas de sonido distintas o acceder a las características avanzadas de las últimas tarjetas de video. Aunque surgieron varios estándares (p.e. VESA, AdLib, Sound Blaster), seguirían surgiendo problemas hasta que no se creara una capa de abstracción de hardware completa.
En fin… digamos que con los últimos sistemas operativos, el asunto de la abstracción del hardware está mucho más superado. Aún así, los programas de dicha época, al apoyarse en dichos ‘trucos’ para poder competir entre ellos o simplemente para aprovechar las características hardware de un sistema en particular, son un poco más reacios a ser ejecutados en un Windows XP el cual no permite ciertas operaciones que podrían hacer inestable el sistema.
Qué soluciones tenemos para usar los programas? En primer lugar y tras ejecutarlos, podemos tratar de buscar pistas sobre su mal funcionamiento en los mensajes que nos escupen. Un mensaje del tipo ‘EMS no disponible’ simplemente se soluciona activando la compatibilidad con memoria EMS para el programa (botón derecho sobre el ejecutable, propiedades, memoria…).
Si aún así no podemos usarlo, podemos probar algún tipo de emulación: por ejemplo, podemos crear una nueva máquina virtual en VMWare o Bosch e instalar allí un MS-DOS 6.2 o la última versión de FreeDOS disponible (open source). Aún así, la mayoría de las veces no es necesario y solo tendremos que hacerlo para los casos más dificiles, modificando más y más opciones de compatibilidad para el resto.
Más información:
MobyGames, proyecto de catalogación de videojuegos
Home-of-the-Underdogs, uno de los mayores centros de recopilación de abandonware legal.
Running DOS Game On Windows XP by Bob Rogers
Running DOS Game On Linux by Bob Rogers