¿Por qué los juegos antiguos funcionan demasiado rápido en las computadoras modernas?
Si alguna vez ha intentado poner en funcionamiento un juego de computadora antiguo en un sistema moderno, probablemente se haya sorprendido de cómo rápido el juego corrió ¿Por qué los juegos antiguos se salen de control en el hardware moderno??
Anteriormente, hoy le mostramos cómo ejecutar software más antiguo en computadoras modernas; la sesión de preguntas y respuestas de hoy es un buen cumplido que explora por qué algunos programas antiguos (específicamente los juegos) nunca parecen funcionar correctamente cuando intentas ejecutarlos en hardware moderno.
La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad..
La pregunta
El lector superusuario TreyK quiere saber por qué los viejos juegos de computadora se vuelven locos rápidamente en el nuevo hardware:
Tengo algunos programas antiguos que saqué de una computadora Windows de la década de los 90 y traté de ejecutarlos en una computadora relativamente moderna. Curiosamente, corrieron a una velocidad veloz, no, no a los 60 cuadros por segundo, sino al tipo de "oh, Dios mío, el personaje está caminando a la velocidad del sonido" rápido. Presioné una tecla de flecha y el sprite del personaje atravesaría la pantalla mucho más rápido de lo normal. La progresión del tiempo en el juego estaba sucediendo mucho más rápido de lo que debería. Incluso hay programas creados para ralentizar tu CPU para que estos juegos puedan jugarse.
He escuchado que esto está relacionado con el juego dependiendo de los ciclos de CPU, o algo así. Mis preguntas son:
- ¿Por qué los juegos más antiguos hacen esto y cómo se salieron con la suya??
- Cómo hacer juegos nuevos no haz esto y corre independientemente de la frecuencia de la CPU?
Entonces, ¿cuál es la historia? ¿Por qué exactamente los sprites en los juegos antiguos brillan en la pantalla tan rápido que el juego se vuelve imposible de jugar??
La respuesta
El colaborador de SuperUser JourneymanGeek lo desglosa:
Creo que asumieron que el reloj del sistema funcionaría a una velocidad específica, y vinculados en sus temporizadores internos a esa velocidad de reloj. La mayoría de estos juegos probablemente se ejecutaron en DOS, eran de modo real (con acceso completo y directo al hardware) y asumieron que estaba ejecutando un iirc Sistema de 4.77 MHz para PC y cualquier procesador estándar que el modelo ejecutó para otros sistemas como el Amiga.
También tomaron atajos inteligentes basados en esas suposiciones, como guardar un poco de recursos al no escribir bucles de tiempo internos dentro del programa. También tomaron toda la potencia del procesador que pudieron, lo cual fue una idea decente en los días de chips lentos, a menudo pasivamente enfriados.!
Inicialmente, una forma de sortear una velocidad de procesador diferente era el buen botón Turbo (que ralentizó el sistema). Las aplicaciones modernas están en modo protegido y el sistema operativo tiende a administrar los recursos. permitir una aplicación DOS (que se ejecuta en NTVDM en un sistema de 32 bits de todos modos) para usar todo el procesador en muchos casos. En resumen, los sistemas operativos se han vuelto más inteligentes, al igual que las API.
Basado en gran medida en esta guía en Oldskool PC donde la lógica y la memoria me fallaron: es una gran lectura, y probablemente profundice más en el "por qué".
Cosas como CPUkiller utilizan la mayor cantidad de recursos posible para "ralentizar" su sistema, lo cual es ineficiente. Sería mejor usar DOSBox para administrar la velocidad de reloj que ve su aplicación.
Si tiene curiosidad acerca de cómo se implementó el código real en los primeros juegos de computadora (y por qué se adaptan tan mal a los sistemas modernos sin tener que utilizar un programa de emulación de espacio aislado), también sugerimos revisar este extenso pero interesante desglose de proceso en otra respuesta de superusuario.
¿Tienes algo que agregar a la explicación? Apague el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.