Trang chủ » làm thế nào để » Tại sao các trò chơi cũ chạy quá nhanh trên máy tính hiện đại?

    Tại sao các trò chơi cũ chạy quá nhanh trên máy tính hiện đại?

    Nếu bạn đã từng thử cài đặt một trò chơi máy tính cổ điển và chạy trên một hệ thống hiện đại, bạn có thể bị sốc về cách Nhanh Trò chơi chạy. Tại sao các trò chơi cũ hết kiểm soát trên phần cứng hiện đại?

    Đầu ngày hôm nay chúng tôi đã chỉ cho bạn cách chạy phần mềm cũ hơn trên các máy tính hiện đại; phiên hỏi và trả lời hôm nay là một lời khen tuyệt vời, đào sâu vào lý do tại sao một số phần mềm cũ hơn (cụ thể là trò chơi) dường như không bao giờ hoạt động ngay khi bạn cố chạy chúng trên phần cứng hiện đại.

    Phiên hỏi và trả lời hôm nay đến với chúng tôi nhờ sự hỗ trợ của SuperUser - một phân ngành của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều khiển.

    Câu hỏi

    Người đọc siêu người dùng TreyK muốn biết lý do tại sao các trò chơi máy tính cũ chạy nhanh trên phần cứng mới:

    Tôi đã có một vài chương trình cũ Tôi đã tạo ra một máy tính Windows đầu thập niên 90 và cố gắng chạy chúng trên một máy tính tương đối hiện đại. Điều thú vị là, họ chạy với tốc độ nhanh - không, không phải là 60 khung hình mỗi giây, mà là kiểu âm thanh ồ ạt của nhân vật đang đi bộ ở tốc độ âm thanh Nhanh. Tôi sẽ nhấn một phím mũi tên và sprite của nhân vật sẽ nén trên màn hình nhanh hơn nhiều so với bình thường. Tiến trình thời gian trong trò chơi đã diễn ra nhanh hơn nhiều so với bình thường. Thậm chí có những chương trình được thực hiện để làm chậm CPU của bạn để những trò chơi này thực sự có thể chơi được.

    Tôi đã nghe nói rằng điều này có liên quan đến trò chơi tùy thuộc vào chu kỳ CPU, hoặc một cái gì đó tương tự. Câu hỏi của tôi là:

    • Tại sao các trò chơi cũ làm điều này, và làm thế nào họ thoát khỏi nó?
    • Làm thế nào để trò chơi mới hơn không phải làm điều này và chạy độc lập với tần số CPU?

    Vậy chuyện gì vậy? Tại sao chính xác các sprite trong các trò chơi cũ lại bùng cháy trên màn hình nhanh đến mức trò chơi trở nên không thể chơi được?

    Câu trả lời

    Người đóng góp cho SuperUser JourneymanGeek phá vỡ nó:

    Tôi tin rằng họ cho rằng đồng hồ hệ thống sẽ chạy ở một tốc độ cụ thể và gắn với bộ tính giờ bên trong của họ với tốc độ đồng hồ đó. Hầu hết các trò chơi này có thể chạy trên DOS và ở chế độ thực (với quyền truy cập phần cứng hoàn chỉnh, trực tiếp) và cho rằng bạn đang chạy một tuần hoàn Hệ thống 4,77 MHz cho PC và bất kỳ bộ xử lý tiêu chuẩn nào được chạy cho các hệ thống khác như Amiga.

    Họ cũng đã sử dụng các phím tắt thông minh dựa trên các giả định đó bao gồm tiết kiệm một chút tài nguyên bằng cách không viết các vòng lặp thời gian nội bộ bên trong chương trình. Họ cũng chiếm nhiều sức mạnh bộ xử lý nhất có thể - đó là một ý tưởng hay trong thời đại chip chậm, thường được làm mát thụ động!

    Ban đầu, một cách để vượt qua tốc độ bộ xử lý khác nhau là nút Turbo cũ tốt (làm chậm hệ thống của bạn). Các ứng dụng hiện đại ở chế độ được bảo vệ và HĐH có xu hướng quản lý tài nguyên - chúng sẽ không cho phép một ứng dụng DOS (dù đang chạy trong NTVDM trên hệ thống 32 bit) để sử dụng hết tất cả bộ xử lý trong nhiều trường hợp. Nói tóm lại, các hệ điều hành đã trở nên thông minh hơn, cũng như có các API.

    Dựa vào hướng dẫn này trên PC Oldskool, nơi logic và bộ nhớ đã làm tôi thất bại - đó là một bài đọc tuyệt vời và có lẽ đi sâu hơn vào câu hỏi tại sao.

    Những thứ như CPUkiller sử dụng càng nhiều tài nguyên càng tốt để làm chậm hệ thống của bạn xuống, hệ thống của bạn không hiệu quả. Bạn nên sử dụng DOSBox để quản lý tốc độ đồng hồ mà ứng dụng của bạn nhìn thấy.

    Nếu bạn tò mò về cách mã thực tế được triển khai trong các trò chơi máy tính ban đầu (và tại sao chúng thích ứng kém với các hệ thống hiện đại mà không được đóng hộp trong một chương trình mô phỏng nào đó), chúng tôi cũng khuyên bạn nên kiểm tra sự cố dài nhưng thú vị này xử lý trong câu trả lời SuperUser khác.


    Có một cái gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.