为什么旧游戏在现代电脑上运行得太快了?

如果你曾经尝试过让一款老式电脑游戏在现代系统上运行,你可能会对这款游戏的运行速度感到震惊。为什么老游戏在现代硬件上失控了?...

为什么旧游戏在现代电脑上运行得太快了?

如果你曾经尝试过让一款老式电脑游戏在现代系统上运行,你可能会对这款游戏的运行速度感到震惊。为什么老游戏在现代硬件上失控了?

今天早些时候,我们向您展示了如何在现代计算机上运行旧软件;今天的问答环节是一个很好的补充,它深入探讨了为什么一些旧软件(特别是游戏)在现代硬件上运行时似乎永远无**常工作。

今天的问答环节是由SuperUser提供的,SuperUser是Stack Exchange的一个分支,是一个由社区驱动的问答网站分组。

问题

超级用户读者TreyK想知道为什么旧电脑游戏在新硬件上运行得如此之快:

I’ve got a few old programs I pulled off an early 90s-era Windows computer and tried to run them on a relatively modern computer. Interestingly enough, they ran at a blazing fast speed – no, not the 60 frames per second kind of fast, rather the oh-my-god-the-character-is-walking-at-the-speed-of-sound kind of fast. I would press an arrow key and the character’s sprite would zip across the screen much faster than normal. Time progression in the game was happening much faster than it should. There are even programs made to slow down your CPU so that these games are actually playable.

I’ve heard that this is related to the game depending on CPU cycles, or something like that. My questi*** are:

  • Why do older games do this, and how did they get away with it?
  • How do newer games not do this and run independently of the CPU frequency?

那是怎么回事?为什么旧游戏中的精灵在屏幕上燃烧得如此之快以至于游戏无法玩?

答案

超级用户contributor JourneymanGeek将其分解为:

I believe they assumed the system clock would run at a specific rate, and tied in their internal timers to that clock rate. Most of these games probably ran on DOS, and were real mode (with complete, direct hardware access) and assumed you were running a iirc 4.77 MHz system for PCs and whatever standard processor that model ran for other systems like the Amiga.

They also took clever shortcuts based on those assumpti*** including saving a tiny bit of resources by not writing internal timing loops inside the program. They also took up as much processor power as they could – which was a decent idea in the days of slow, often passively cooled chips!

Initially one way to get around differing processor speed was the good old Turbo button (which slowed your system down). Modern applicati*** are in protected mode and the OS tends to manage resources – they wouldn’t allow a DOS application (which is running in NTVDM on a 32-bit system anyway) to use up all of the processor in many cases. In short, OSes have gotten **arter, as have APIs.

Heavily based off this guide on Oldskool PC where logic and memory failed me – it’s a great read, and probably goes more in depth into the “why”.

Stuff like CPUkiller use up as many resources as possible to “slow” down your system, which is inefficient. You’d be better off using DOSBox to manage the clock speed your application sees.

如果你对早期电脑游戏中的实际代码是如何实现的感到好奇(以及为什么它们对现代系统的适应能力如此之差,而没有在某种模拟程序中进行沙盒处理),我们还建议在另一个超级用户答案中查看这个冗长但有趣的过程分解。


有什么要补充的解释吗?在评论中发出声音。想从其他精通技术的Stack Exchange用户那里了解更多答案吗?在这里查看完整的讨论主题。

  • 发表于 2021-04-11 16:04
  • 阅读 ( 194 )
  • 分类:互联网

你可能感兴趣的文章

如何安全地启动旧的复古游戏机

... 为什么原来的复古硬件中断 ...

  • 发布于 2021-03-20 15:41
  • 阅读 ( 179 )

xbox系列x和s将具有增强的向后兼容性

... 一方面,新的游戏机不会停下来处理旧游戏。宕机是指系统仅将一部分资源用于运行旧软件。这意味着强大的现代系统规范不会导致软件运行异常。 ...

  • 发布于 2021-03-30 03:04
  • 阅读 ( 161 )

为什么涡轮按钮在90年代会减慢你的电脑速度?

...当你按下它时,它实际上会减慢你的电脑速度。我们探索为什么它是必要的,它做了什么,以及谁把它放在第一位。 快速克隆人的攻击 第一台IBM个人电脑于1981年8月发布,包括8088 CPU,运行频率为4.77兆赫。像康柏这样的竞争对...

  • 发布于 2021-04-02 01:11
  • 阅读 ( 152 )

如何在android手机上扫描二维码

...选择更简单的唯一原因是,你的**已经有了它,几乎所有现代的Android**都配有助手,所以不需要再安装一个应用程序。 但如果你只想安装其他应用程序,那就来吧。 首先,启动googleplay商店并点击googlelens页面。安装那个坏孩子。...

  • 发布于 2021-04-03 16:58
  • 阅读 ( 173 )

旧游戏为何如此艰难:任天堂的非官方历史

...初玩过游戏的年龄,你会记得那些游戏很难玩:***的难。为什么他们如此困难?答案展示了电子游戏历史的迷人面貌。 当人们谈论旧游戏有多难时,他们会用“任天堂难”这个词。任天堂并不是唯一一家生产早期游戏机的公司...

  • 发布于 2021-04-06 16:02
  • 阅读 ( 147 )

如何使用googlefamily link管理孩子的android手机

...任何一个。那太好了。 尽管明显的缺点是需要一个相对现代的设备,家庭链接是相当可怕的酷。这是一个很好的解决方案,让小布伦达有她自己的智能**,而不用担心什么样的废话,她在看它。

  • 发布于 2021-04-07 01:24
  • 阅读 ( 193 )

购买廉价pc游戏的10种蒸汽替代品

...,可以看看打折的游戏包。 windows应用商店 相关报道:为什么你不应该从Windows商店购买《古墓丽影崛起》(以及其他PC游戏) 你知道Windows10现在有一个内置的游戏商店吗?是的,这是一件容易错过的事情,因为更大的Windows应用...

  • 发布于 2021-04-08 03:13
  • 阅读 ( 188 )

为什么不能用cpu时钟速度来比较计算机性能

...其他方面。例如,电脑是否配有SSD或速度较慢的硬盘? 为什么你不能比较时钟的速度 CPU时钟速度,或时钟频率,是以赫兹来衡量的-通常以千兆赫兹,或千兆赫。CPU的时钟速率是衡量一个CPU每秒可以执行多少个时钟周期的指标...

  • 发布于 2021-04-11 13:33
  • 阅读 ( 345 )

为什么旧程序不能在现代版本的windows上运行(以及如何运行它们)

...CD上有音频数据。计算机自己解释这些音频数据。这就是为什么1980年生产的音频CD可以在Windows 8 PC、Mac或任何其他设备上播放的原因——计算机知道如何解读音频CD,并自行处理。音频CD不需要知道正在播放的操作系统或设备。 ...

  • 发布于 2021-04-11 16:05
  • 阅读 ( 148 )

如何解决pc游戏的问题

...道的时候,试图解决游戏-其中大部分适用于即使你购买旧游戏从蒸汽。 使用do**ox进行dos游戏 如果您尝试在命令提示符下运行大多数DOS游戏,它们将无法在现代版本的Windows上运行。命令提示符并没有提供一个完整的DOS环境来模...

  • 发布于 2021-04-11 17:15
  • 阅读 ( 147 )
Atlannovel
Atlannovel

0 篇文章

相关推荐