ทำไมการพัฒนาเครื่องเล่นเกมจำลองจึงเป็นเรื่องยาก


14

ฉันพบว่าอีมูเลเตอร์น่าดึงดูดใจเสมอ ฉันต้องการสร้างโปรแกรมจำลองสำหรับคอนโซลหรืออุปกรณ์พกพารุ่นเก่าอย่างจริงจัง มันจะช่วยให้ฉันได้รับความชื่นชมอย่างมากของฮาร์ดแวร์และเกมที่สร้างขึ้นสำหรับฮาร์ดแวร์นั้น อย่างไรก็ตามผู้คนมักจะพูดว่ามันยากแค่ไหนและฉันไม่ควรลองด้วยซ้ำ ฉันอยากรู้ว่าทำไมถึงเป็นเช่นนั้น

นอกจากนี้ฉันต้องการคำแนะนำเกี่ยวกับสถานที่ที่ดีในการเริ่มต้นและฉันจะหาข้อมูลที่ต้องการได้ที่ไหน

คำตอบ:


15

ดังนั้นคำถาม

ดูเหมือนว่าจะเป็นแหล่งข้อมูลยอดนิยมเกี่ยวกับวิธีการทำงาน

TL; DR - สถาปัตยกรรมแตกต่างกันโดยสิ้นเชิงและใช้ทรัพยากรแบบขนานจำนวนมากเพื่อให้ได้สถาปัตยกรรมดั้งเดิม

สถาปัตยกรรม CPU สำหรับคอนโซลเกมนั้นค่อนข้างแปลกใหม่เมื่อเทียบกับเครื่องเดสก์ท็อปทั่วไปของคุณ การจำลองหมายถึงการทำงานในซอฟต์แวร์ทุกอย่างที่ฮาร์ดแวร์ดั้งเดิมทำ นั่นคือในขณะที่คอนโซลดั้งเดิมอาจมีกราฟิกเสียงและชิป ฯลฯ รวมถึง CPU ที่มีชุดคำสั่งต่าง ๆ ตัวจำลองจะต้องทำหน้าที่ทั้งหมดของทรัพยากรขนานเหล่านี้ด้วยความเร็ว

เว้นแต่ว่า GPU ของคอนโซลจะมีอายุจริงมันต้องถูกจำลองบน GPU ของเครื่องโฮสต์อย่างเช่นการ์ดกราฟิกที่ทันสมัยแม้กระทั่งการ์ดราคาถูก แต่ก็มีปริมาณงานหลายเท่า (สำหรับเวิร์กโหลดกราฟิก) ของ CPU แบบมัลติคอร์ที่แพงที่สุด การผสมความยากลำบากนี้คือความจริงที่ว่าการสื่อสารระหว่าง CPU, GPU, DSP ออนบอร์ดอื่น ๆ และหน่วยความจำอาจได้รับการปรับให้เหมาะสมที่สุดบนคอนโซลเพื่อใช้ประโยชน์จากการกำหนดค่าฮาร์ดแวร์เฉพาะดังนั้นทรัพยากรเหล่านี้ต้องจับคู่อัตราด้วย

การรวมความยากเหล่านี้เข้าด้วยกันมักจะไม่ค่อยมีใครรู้เกี่ยวกับฮาร์ดแวร์เฉพาะของคอนโซลเท่าไรนัก วิศวกรรมย้อนกลับเริ่มมีความเป็นไปได้น้อยลงที่ผู้เล่นจะทำ

หากต้องการนำสิ่งต่าง ๆ เข้ามาในมุมมองสถาปัตยกรรมจำลอง (โปรแกรมที่สามารถทำงานได้ตัวอย่างเช่นโปรแกรม PowerPC บนเครื่อง x86 และเก็บรวบรวมสถิติเกี่ยวกับมัน) อาจทำงานระหว่าง 1000x ถึง 100000x ช้ากว่าเวลาจริง การจำลอง RTL (การจำลองของประตูทั้งหมดและ flip-flop ที่ประกอบเป็นชิป) ของซีพียูสมัยใหม่สามารถทำงานระหว่าง 10Hz และสองสามร้อย Hz เท่านั้น แม้แต่การจำลองที่ได้รับการปรับปรุงให้ดีที่สุดนั้นน่าจะอยู่ระหว่าง 10 ถึง 100 เท่าช้ากว่าโค้ดเนทีฟดังนั้นจึง จำกัด สิ่งที่สามารถเลียนแบบได้ในปัจจุบัน (โดยเฉพาะการโต้ตอบแบบเรียลไทม์โดยนัยโดยเครื่องเล่นเกม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.