Mengapa begitu sulit untuk mengembangkan emulator konsol game?


14

Saya selalu menemukan emulator yang cukup menarik. Saya serius ingin membuat emulator untuk konsol ganeration yang lebih tua atau perangkat genggam. Itu akan membantu saya mendapatkan apresiasi yang lebih besar dari perangkat keras dan game yang dibuat untuk perangkat keras itu. Namun, orang selalu mengatakan betapa sulitnya itu dan bahwa saya seharusnya tidak mencoba. Saya ingin tahu mengapa demikian.

Juga, saya ingin beberapa saran tentang tempat yang baik untuk memulai dan di mana saya dapat menemukan informasi yang saya butuhkan?

Jawaban:


15

SO Pertanyaan

Ini tampaknya menjadi sumber daya populer tentang cara kerjanya.

TL; DR - Arsitekturnya sangat berbeda, dan ini membutuhkan banyak sumber daya paralel untuk mencapai arsitektur aslinya.

Arsitektur CPU untuk konsol game seringkali agak eksotis dibandingkan dengan mesin desktop rata-rata Anda. Emulasi berarti melakukan semua hal dalam perangkat lunak yang dilakukan oleh perangkat lunak asli. Yaitu, meskipun konsol aslinya mungkin memiliki chip grafis, audio, dll. Yang berdedikasi serta CPU dengan set instruksi berbeda, emulator harus melakukan semua fungsi sumber daya paralel ini dengan cepat.

Kecuali jika GPU konsol sudah tua, hampir pasti harus ditiru pada GPU dari mesin host, karena kartu grafis modern, bahkan yang murah, memiliki berkali-kali throughput (untuk beban kerja grafis) bahkan dari CPU multicore yang paling mahal. Yang memperumit kesulitan ini adalah kenyataan bahwa komunikasi antara CPU, GPU, semua DSP onboard lainnya, dan memori mungkin sangat dioptimalkan pada konsol untuk memanfaatkan spesifikasi konfigurasi perangkat keras, dan karenanya sumber daya ini juga harus disesuaikan dengan kurs.

Menggabungkan semua kesulitan ini, biasanya sedikit yang diketahui tentang spesifikasi perangkat keras konsol, karena ini disimpan sangat tersembunyi oleh desain. Reverse engineering semakin tidak layak untuk dilakukan oleh para hobiis.

Untuk meletakkan segala sesuatunya dalam perspektif, simulator arsitektur (program yang dapat berjalan, misalnya, program PowerPC pada mesin x86 dan mengumpulkan semua jenis statistik tentang hal itu) dapat berjalan antara 1000x dan 100000x lebih lambat daripada waktu nyata. Simulasi RTL (simulasi semua gerbang dan sandal jepit yang membentuk chip) dari CPU modern biasanya hanya dapat berjalan antara 10Hz dan beberapa ratus Hz. Bahkan emulasi yang sangat optimal mungkin antara 10 dan 100 kali lebih lambat daripada kode asli, sehingga membatasi apa yang dapat ditiru secara meyakinkan hari ini (terutama mengingat interaktivitas waktu nyata yang ditunjukkan oleh emulator konsol game).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.