Pagina inicial » como » Por que os jogos antigos funcionam muito rápido em computadores modernos?

    Por que os jogos antigos funcionam muito rápido em computadores modernos?

    Se você já tentou colocar um jogo de computador vintage em funcionamento em um sistema moderno, provavelmente ficou chocado velozes o jogo correu. Por que os jogos antigos ficam sem controle no hardware moderno??

    Hoje mostramos como executar software antigo em computadores modernos; A sessão de perguntas e respostas de hoje é um bom elogio que explica por que alguns softwares mais antigos (especificamente jogos) nunca parecem funcionar direito quando você tenta executá-los em hardware moderno.

    A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..

    A questão

    Leitor SuperUser TreyK quer saber por que jogos antigos de computador rodam loucamente em um novo hardware:

    Eu tenho alguns programas antigos que eu tirei de um computador Windows do início dos anos 90 e tentei executá-los em um computador relativamente moderno. Curiosamente, eles correram a uma velocidade rápida - não, não o tipo de rápido de 60 quadros por segundo, e sim o tipo do tipo "oh-meu-deus-o-personagem-está-andando-na-velocidade-do-som" velozes. Eu apertava uma tecla de seta e o sprite do personagem passava pela tela muito mais rápido que o normal. A progressão do tempo no jogo estava acontecendo muito mais rápido do que deveria. Existem até mesmo programas feitos para desacelerar seu processador para que esses jogos sejam realmente jogáveis.

    Ouvi dizer que isso está relacionado ao jogo, dependendo dos ciclos da CPU, ou algo parecido. Minhas perguntas são:

    • Por que os jogos mais antigos fazem isso e como eles conseguiram?
    • Como os jogos mais novos não faça isso e execute independentemente da frequência da CPU?

    Então, qual é a história? Por que exatamente os sprites em jogos antigos brilham na tela tão rápido que o jogo se torna injogável??

    A resposta

    O colaborador do SuperUser, JourneymanGeek, explica:

    Acredito que eles assumiram que o relógio do sistema funcionaria a uma taxa específica e vinculavam seus timers internos àquele clock. A maioria desses jogos provavelmente rodava no DOS, e eram de modo real (com acesso completo e direto ao hardware) e assumiam que você estava executando um iirc Sistema de 4.77 MHz para PCs e qualquer processador padrão que o modelo rodasse para outros sistemas como o Amiga.

    Eles também pegaram atalhos inteligentes baseados nessas suposições, incluindo salvar um pouquinho de recursos, não escrevendo loops internos de temporização dentro do programa. Eles também pegaram o máximo de poder de processamento que conseguiram - o que era uma ideia decente nos dias de chips lentos, muitas vezes passivamente resfriados.!

    Inicialmente, uma maneira de contornar a velocidade do processador era o bom e velho botão Turbo (que reduzia a velocidade do seu sistema). Aplicações modernas estão em modo protegido e o SO tende a gerenciar recursos - eles não permitir um aplicativo DOS (que é executado no NTVDM em um sistema de 32 bits de qualquer maneira) para usar todo o processador em muitos casos. Em suma, os sistemas operacionais ficaram mais inteligentes, assim como as APIs.

    Fortemente baseado neste guia no Oldskool PC onde a lógica e a memória me falharam - é uma ótima leitura, e provavelmente vai mais a fundo no "porquê".

    Coisas como o CPUkiller usam o máximo de recursos possíveis para “abrandar” o sistema, o que é ineficiente. Seria melhor você usar o DOSBox para gerenciar a velocidade do clock que seu aplicativo vê.

    Se você está curioso sobre como o código atual foi implementado nos primeiros jogos de computador (e por que eles se adaptam tão mal aos sistemas modernos sem ter um sandbox em algum tipo de programa de emulação), também sugerimos verificar esse longo, mas interessante, processo em outra resposta SuperUser.


    Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.