neoforma » 27.03.08 в 8:54
darksnake
С чего вообще возник этот вопрос об идеальном эмуляторе?
Давайте посмотрим на CPS3 Emulator и эмуляцию CPS-3 в MAME. Она не идеальна по объективным причинам - есть баги в реализации некоторых графических эффектов, о которых известно и ElSemi, и Haze. Более того, я подозреваю, что они знают, как их устранить, но они не станут этого делать, пока им этого не захочется. Помимо этих багов есть ещё одна фишка - одна из функций реального оборудования (я уже не помню, какая именно, не суть) в принципе не используется ни в одной из игр на этом оборудовании. Она, соответственно, не реализована в эмуляторе в принципе, ибо никак нельзя проверить, правильно она работает, или нет. Будет ли эмулятор после устранения всех очевидных багов идеальным или нет, если он не повторяет оборудование в точности, но при этом все игры работают так, как и должны? Нет, не будет. Скажу даже больше, он не будет идеальным, даже если в нём будет эта никому не нужная функция, потому что вы берёте реальный физический объект, печатную плату, и описываете абстрактно её работу на языке программирования. Вы ведь исключаете из этого описания какие-то не нужные подробности (например, оборудование CPS-3 состоит условно из трёх частей - печатной платы с CD-ROM, картриджа и диска; на картридже содержится ключ, который позволяет дешифровать содержимое диска; ключ этот хранится в SRAM, а SRAM питается от батарейки; батарейка дохнет, SRAM очищается, ключ теряется). Если ставить перед собой задачу написать идеальный эмулятор, то придётся эмулировать и поведение настоящего картриджа (иначе не идеальная эмуляция), но какой смысл в умирающих эмуляторах?
И опять же: мы живём в не идеальном мире. Каким образом изготовить идеальную копию с аналогового носителя? Возьмём две аудиокассеты, подключим два магнитофона к двум компьютерам и получим разные результаты на выходе. Аудиокассеты здесь не просто так вспомнил. Были ведь компьютеры, которые работали на кассетах, были игровые автоматы, которые работали на лазердисках (аналоговое видео и звук; позже цифровой звук). Можно сделать хорошую копию, близкую к оригиналу, но никак не идеальную.
Загляните на redump.org, посмотрите, как люди заморачиваются по поводу того, как правильно снять образ с диска для, например, PlayStation. В идеальном мире таких проблем бы не возникло никогда.
По поводу SNES: на сайте есть эмулятор bsnes. На данный момент, это самый точный эмулятор SNES. Когда-нибудь он станет ещё точнее благодаря функциям, которые пока в нём отсутствуют, но он никогда не будет идеальным. Сравните, однако, его требования к компьютеру и требования ZSNES. Разница очевидна, за точность приходится платить.