왜 오래된 게임이 현대 컴퓨터에서 너무 빠른 속도로 실행됩니까?
현대적인 시스템에서 빈티지 컴퓨터 게임을 실행하려고 시도해 본 적이 있다면, 빠른 게임은 달렸다. 오래된 게임이 현대 하드웨어에서 통제를받지 못하는 이유는 무엇입니까??
오늘 아침에 현대 컴퓨터에서 구형 소프트웨어를 실행하는 방법을 보여주었습니다. 오늘의 질의 응답 세션은 현대 하드웨어에서 실행하려고하는 일부 구형 소프트웨어 (특히 게임)가 제대로 작동하지 않는 이유를 파헤치는 훌륭한 보완책입니다..
오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 중심 그룹 인 Stack Exchange의 하위 부문 인 수퍼 유저의 도움으로 이루어졌습니다..
질문
수퍼 유저 TreyK는 오래된 컴퓨터 게임이 왜 새로운 하드웨어에서 빠르게 실행되는지 알고 싶어합니다.
90 년대 초반의 Windows 컴퓨터를 꺼내서 비교적 현대적인 컴퓨터에서 실행하려고했던 몇 가지 오래된 프로그램이 있습니다. 재미있게도 충분히 빠른 속도로 달렸습니다. 초당 60 프레임의 속도가 아니라 오하이오의 신이 었습니다. 빠른. 화살표 키를 누르면 캐릭터의 스프라이트가 평소보다 훨씬 빠르게 화면을 가로 질러 지퍼를.습니다. 게임의 시간 진행이 예상보다 훨씬 빠르게 진행되었습니다. CPU를 늦추어 실제로 재생할 수있는 프로그램도 있습니다..
나는 이것이 CPU주기에 따라 게임과 관련이 있다고 들었습니다. 내 질문은 다음과 같습니다.
- 왜 오래된 게임이 이것을합니까, 어떻게 그것들을 없애 버렸습니까??
- 최신 게임은 어떤가? 아니 이 작업을 수행하고 CPU 주파수와 독립적으로 실행하십시오.?
그럼 그 이야기는 뭐니? 왜 낡은 게임의 스프라이트가 화면을 가로 질러 불타 오르면 게임이 너무 빨리 재생되지 않는지?
대답
수퍼 유저 기고가 인 JourneymanGeek이 다음과 같이 설명합니다.
나는 그들이 시스템 클럭이 특정 속도로 돌아가고, 내부 클럭 속도가 클럭 속도라고 가정했다. 이 게임의 대부분은 DOS에서 실행되었으며 실제 모드 (완전하고 직접적인 하드웨어 액세스가 가능)였으며 iirc 4.77 MHz의 PC와 다른 어떤 시스템을 위해 모델이 실행 된 표준 프로세서는 Amiga.
또한 프로그램 내부에 내부 타이밍 루프를 작성하지 않아 작은 리소스를 절약하는 등 가정을 기반으로하는 영리한 지름길을 사용했습니다. 그들은 또한 가능한 한 많은 프로세서 전력을 사용했습니다. 느리고 종종 수동적으로 냉각 된 칩의 시대에는 괜찮은 아이디어였습니다!
처음에는 프로세서 속도를 달리하는 한 가지 방법은 좋은 오래된 Turbo 버튼이었습니다 (시스템 속도가 느려졌습니다). 최신 응용 프로그램은 보호 모드에 있으며 OS는 리소스를 관리하는 경향이 있습니다. 허용하다 DOS 응용 프로그램 (32 비트 시스템의 NTVDM에서 실행되고 있음)은 많은 경우에 모든 프로세서를 사용합니다. 요컨대 OSes는 API가 있기 때문에 더 똑똑해졌습니다..
논리와 기억이 실패한 Oldskool PC에 대한이 가이드를 기반으로합니다. 훌륭한 읽을 거리이며, 아마도 "왜".
CPUkiller와 같은 것들은 가능한 한 많은 자원을 사용하여 시스템을 "느리게"만듭니다. 이는 비효율적입니다. DOSBox를 사용하면 응용 프로그램에서 볼 수있는 클럭 속도를 관리하는 것이 좋습니다..
초기 컴퓨터 게임에서 실제 코드가 어떻게 구현되었는지 궁금하다면 (그리고 어떤 종류의 에뮬레이션 프로그램에서 샌드 박스 처리를하지 않고 현대 시스템에 그렇게 열악하게 적응하는 이유), 우리는이 길고 흥미로운 분석을 조사 할 것을 제안합니다. 다른 수퍼 유저 응답에서 처리.
설명에 추가 할 것이 있습니까? 의견에서 소리가 나지. 다른 기술에 정통한 Stack Exchange 사용자의 답변을 더 읽고 싶습니까? 전체 토론 스레드를 여기에서 확인하십시오..