16Aug
Si alguna vez has intentado poner en marcha un juego de computadora vintage en un sistema moderno, es probable que te hayas escandalizado por la velocidad del juego .¿Por qué los viejos juegos se quedan sin control en el hardware moderno?
Hoy le mostramos cómo ejecutar un software más antiguo en computadoras modernas;La sesión de preguntas y respuestas de hoy es un buen complemento que explora por qué algunos programas antiguos( específicamente juegos) nunca parecen funcionar justo cuando intentas ejecutarlos en un hardware moderno.
Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad.
El lector
SuperUser de Question AS TreyK quiere saber por qué los viejos juegos de computadora se vuelven locos en hardware nuevo:
Tengo algunos viejos programas que arranqué de una computadora con Windows de los 90 y traté de ejecutarlos en una computadora relativamente moderna. Curiosamente, funcionaron a una velocidad vertiginosa: no, no a 60 cuadros por segundo, sino al tipo de Dios que está caminando a la velocidad del sonido.rápido. Pulsaría una tecla de flecha y el sprite del personaje se deslizaría por 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 su CPU para que estos juegos sean realmente reproducibles.
He oído que esto está relacionado con el juego dependiendo de los ciclos de la CPU, o algo así.Mis preguntas son:
- ¿Por qué los juegos antiguos hacen esto y cómo se salieron con la suya?
- ¿Cómo hacen los juegos más nuevos no y ejecutan independientemente de la frecuencia de la CPU?
Entonces, ¿cuál es la historia?¿Por qué exactamente los sprites de los viejos juegos aparecen en la pantalla tan rápido que el juego no se puede jugar?
La respuesta
SuperUser Contributed JourneymanGeek lo desglosa:
Creo que asumieron que el reloj del sistema funcionaría a una velocidad específica, y ataron en sus temporizadores internos a esa frecuencia de reloj. La mayoría de estos juegos probablemente se ejecutaban en DOS, y eran de modo real( con acceso de hardware completo y directo) y asumían que estaban ejecutando un sistema iirc de 4,77 MHz para PC y cualquier procesador estándar que ese modelo ejecutara para otros sistemas como el Amiga.
También tomaron atajos inteligentes basados en esas suposiciones, incluyendo el ahorro de un poquito de recursos al no escribir bucles de temporización internos dentro del programa. También tomaron tanta potencia de procesador como pudieron, ¡lo que fue una buena idea en tiempos de chips lentos, a menudo pasivamente enfriados!
Inicialmente, una forma de evitar la velocidad del procesador era el viejo botón Turbo( que ralentizaba el sistema).Las aplicaciones modernas están en modo protegido y el sistema operativo tiende a administrar recursos: no permitiría una aplicación de 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.
Basada en esta guía en PC Oldskool donde la lógica y la memoria me fallaron, es una gran lectura, y probablemente profundiza en el "por qué".
Stuff como CPUkiller usa tantos recursos como sea posible para "ralentizar" tu sistema, lo cual es ineficiente. Sería mejor utilizar DOSBox para administrar la velocidad de reloj que ve su aplicación.
Si tiene curiosidad acerca de cómo se implementó el código en los primeros juegos de la computadora( y por qué se adaptan tan pobremente a los sistemas modernos sin guardarlo en algún tipo de programa de emulación), también sugerimos revisar este desglose largo pero interesantedel proceso en otra respuesta SuperUser.
¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.