Чому так важко розробити емулятор ігрової консолі?


14

Я завжди вважав емулятори досить захоплюючими. Я б серйозно хотів створити емулятор для старішої консолі або ручної роботи. Це допомогло б мені більше оцінити обладнання та ігри, створені для цього обладнання. Однак люди завжди говорять, як це важко і що я навіть не повинен намагатися. Я хотів би знати, чому це так.

Також я хотів би почати кілька пропозицій щодо гарного місця, і де я можу знайти потрібну інформацію?

Відповіді:


15

ТАК Питання

Це здається популярним ресурсом про те, як вони працюють.

TL; DR - архітектура зовсім інша, і для отримання оригінальної архітектури потрібно багато паралельних ресурсів.

Архітектура процесора для ігрових консолей часто дещо екзотична порівняно із середньою настільною машиною. Емуляція означає виконувати в програмному забезпеченні все, що робило оригінальне обладнання. Тобто, хоча в оригінальній консолі, можливо, були виділені чіпи для графіки, аудіо тощо, а також центральний процесор з іншим набором інструкцій, емулятор повинен виконувати всі функції цих паралельних ресурсів зі швидкістю.

Якщо графічний процесор консолі не є старим, він майже напевно повинен бути імітований на графічному процесорі хост-машини, оскільки сучасні графічні картки, навіть дешеві, мають багато разів пропускну здатність навіть для найдорожчих багатоядерних процесорів. Ця складність ускладнює той факт, що зв’язок між процесором, графічним процесором, будь-якими іншими бортовими DSP і пам'яттю, ймовірно, був оптимізований на консолі, щоб скористатися специфікою конфігурації обладнання, а отже, і ці ресурси також повинні відповідати швидкості.

Складаючи всі ці труднощі, зазвичай мало відомо про специфіку апаратних засобів консолі, оскільки це дуже добре зберігається під дизайном. Зворотна інженерія стає все менш і менш можливою для любителів.

Для того, щоб поставити речі в перспективу, архітектурний симулятор (програма, яка може запускати, наприклад, програму PowerPC на машині x86 і збирати всілякі статистичні дані про неї), може працювати в 1000x і 100000x повільніше, ніж у режимі реального часу. Моделювання RTL (моделювання всіх воріт та тригерів, які складають чіп) сучасного процесора зазвичай може працювати лише від 10 Гц до декількох сотень Гц. Навіть дуже оптимізована емуляція, ймовірно, буде в 10 та 100 разів повільніше, ніж нативний код, таким чином обмежуючи те, що можна переконливо наслідувати сьогодні (особливо з огляду на інтерактивність в режимі реального часу, що передбачається емулятором ігрової консолі).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.