Tại sao rất khó để phát triển một trình giả lập giao diện điều khiển trò chơi?


14

Tôi luôn luôn thấy các trình giả lập khá hấp dẫn. Tôi thực sự muốn tạo một trình giả lập cho một giao diện điều khiển gan cầm tay cũ hoặc cầm tay. Nó sẽ giúp tôi có được sự đánh giá cao hơn về phần cứng và các trò chơi được tạo ra cho phần cứng đó. Tuy nhiên, mọi người luôn nói rằng nó khó đến mức nào và tôi thậm chí không nên thử. Tôi muốn biết tại sao lại như vậy.

Ngoài ra, tôi muốn một số gợi ý về một nơi tốt để bắt đầu và tôi có thể tìm thấy thông tin tôi cần ở đâu?

Câu trả lời:


15

Câu hỏi SO

Đây dường như là một tài nguyên phổ biến về cách họ làm việc.

TL; DR - Kiến trúc hoàn toàn khác biệt và điều này cần rất nhiều tài nguyên song song để đạt được kiến ​​trúc ban đầu.

Kiến trúc CPU cho máy chơi game thường hơi kỳ lạ so với máy tính để bàn trung bình của bạn. Thi đua có nghĩa là thực hiện trong phần mềm mọi thứ mà phần cứng gốc đã làm. Đó là, trong khi bảng điều khiển gốc có thể có các chip đồ họa, âm thanh, vv chuyên dụng cũng như CPU ​​với một bộ hướng dẫn khác, trình giả lập phải thực hiện tất cả các chức năng của các tài nguyên song song này với tốc độ.

Trừ khi GPU của giao diện điều khiển đã cũ, nó gần như chắc chắn phải được mô phỏng trên GPU của máy chủ, vì các card đồ họa hiện đại, thậm chí là giá rẻ, có thông lượng gấp nhiều lần (đối với khối lượng công việc đồ họa) của ngay cả các CPU đa lõi đắt nhất. Giải quyết khó khăn này là việc giao tiếp giữa CPU, GPU, bất kỳ DSP trên bo mạch và bộ nhớ nào khác có thể được tối ưu hóa cao trên bảng điều khiển để tận dụng các đặc điểm cụ thể của cấu hình phần cứng và do đó các tài nguyên này cũng phải phù hợp với tốc độ.

Tổng hợp tất cả những khó khăn này, thường ít được biết về các chi tiết cụ thể của phần cứng của giao diện điều khiển, vì điều này được giữ rất nhiều dưới sự bao bọc của thiết kế. Kỹ thuật đảo ngược đang ngày càng ít khả thi hơn cho những người có sở thích làm.

Để đặt mọi thứ vào viễn cảnh, một trình giả lập kiến ​​trúc (ví dụ, một chương trình có thể chạy, một chương trình PowerPC trên máy x86 và thu thập tất cả các loại thống kê về nó) có thể chạy chậm hơn 1000 lần đến 100000x so với thời gian thực. Một mô phỏng RTL (mô phỏng tất cả các cổng và flip-flop tạo thành chip) của CPU hiện đại thường chỉ có thể chạy trong khoảng 10Hz đến vài trăm Hz. Ngay cả việc mô phỏng rất được tối ưu hóa cũng có khả năng chậm hơn từ 10 đến 100 lần so với mã gốc, do đó hạn chế những gì có thể được mô phỏng một cách thuyết phục ngày nay (đặc biệt là tính tương tác thời gian thực được ngụ ý bởi trình giả lập bảng điều khiển trò chơi).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.