Эмуляция архитектуры консолей

И так, что же такое эмуляция консолей и что в ней важней всего, игры или эмуляция архитектуры?

За столь долгое существование эмуляторов холивары не утихают, старая песня о играх никуда не исчезла. Люди привыкли к старым эмуляторам, ведь они мало используют ресурсов и запустятся даже на стиральной машине, первое чем хвастаются люди так это почти 100% совместимостью к примеру той же Kega Fusion, а раз запускаются все игры без видимых багов, значит эмулятор очень точен! И люди тут ошибаются, на самом деле это не эмулятор железа консоли, а "запускатор консольных игр" 

Чем же так плох эмулятор Kega Fusion?

Во первых разберем его на составные части или хотя бы представим, как он работает, первое, что сразу подвергается критике так это основной виртуальный процессор M68000, дело в том, что он работает лишь на треть от своих циклов, оптимизация на основе упрощении всех его функций и сокращении лишних действий дает огромный прирост в скорости и этими вмешательствами в циклические процессы, полностью разрушает принцип работы реального процессора консоли.

Второе, видео система (VDP) подверглась упрощению операций (тоже нарушает все принципы) VDP выполняет свою работу не в реальном времени и не все сразу, кроме того пока ни один эмулятор не может правильно выполнять аспект и смещать картинку немного в сторону (точно, так как это было видно с телика) но это лишь временная проблема для циклически точных эмуляторов.

 

Не стоит забывать о растровых эффектах и прочих рутинных функций, таких как цветные полосы и точки, цветные точки это баг видео системы, они выдают набор используемых цветов на основной картинке (функция Writes to CRAM)

Фанаты "запускаторов" тут же устроят холивар, зачем нам эти цветные полосы, точки и прочие дефекты? нам этого хватило в прошлом! Ну да, после всего этого они все еще уверены в точности своих эмуляторов, а если демку написать с тестами? задампить ее на картридж и воткнуть в реальную вещь? и она пройдет тест! А эмуляторы провалят из-за вырезок "ненужного" кода, он может и не нужен для игр, не приведет же к зависаниям и другим побочным дефектам.

Третье что подверглось критике так это звук, пожалуй, самая болючая тема, дело в том, что в консоли очень сложная система вывода звука, 5 FM синтезов + 1 DAC и четыре канала SN76489 (PSG) 1 канал отвечает за шум и три остальных за тон мелодий, и что мне не понравилось? Из-за оптимизации глубина громкости не похожа на естественную + неточности в PSG тональности, иногда PSG в некоторых играх звучит подобно флэнджеру (например в Sonic & Knuckles), а Кега так не может!

Последние факты, весь эмулятор построен на системе событий (Event System) она нужна, чтобы управлять всеми обрезками компонентов и давать играм, то, что они хотят видеть, если даже вылизать этот Event System до блеска, он никогда не сможет работать подобно реальной консоли, все происходит поэтапно с передачей пакетов инфы, кроме того в старых эмулях появляются лаги в звуке, видео выводе и управлении (да да это последствия от оптимизаций)

Недавно нашел демку Emulator Detector, запустил на всех известных эмуляторах, почти все провалили тест, демка создана для определения, на чем она запущена (на эмуляторе или реальной консоли) только Regen и Exodus выдали себя за реальные консоли, здесь должен был быть и Retrocopy, вероятно из-за мелких ошибок тест не прошел. 

 

В Retrocopy 0.666 и Exodus были общие баги в некоторых играх (таких как Contra Hard Corps, Wings of wor итд) сейчас с релизной версии 0.960 большая часть багов исправлена.

Так чем же отличается Ретрокопи от остальных эмуляторов?

Он отличается тем, что эмулирует железо консоли, а не игры (в таком случае баги в играх могут присутствовать)  допиленный до ума эмулятор железа вскоре выдаст 100% совместимость с играми (на то оно и реальное железо).

Эмулятор железа не содержит оптимизаций, упрощения кода и хаков, то есть все процессы разом наседают на проц и все это жрет много ресурсов, циклически точный эмулятор проще написать, ибо особых корректировок свойственных для рекомпиляторов нет, но тут есть другая сложность, на одном ядре такой эмулятор будет тормозить почти на всех современных ПК процессорах, только разогнанные до 4~5Ггц справятся, к счастью данную проблему решили с первого релиза Retrocopy эмулятора Мега драйв, очень грамотно распределив процессы на несколько потоков, и все заработало даже на бюджетном двух ядерном, лишь бы в нем кэш первого уровня был достаточно быстр, ибо от него зависит почти все.
+2

Комментарии 4

  1. Reploid
    Reploid от 20 февраля 2012 06:32
    Похоже вопрос для эстетов, а эстеты дофига не любят эмули ваще, бравируя своими реальными железками, бережно сохраненными через года. А лично мне пофиг — я в игре играю, а не в хардвар.
  2. =[BFG]=
    =[BFG]= от 29 февраля 2012 12:45
    Интересно, а если у меня на учебе древний ноут с процом AMD Sempron 1800 МГц, так что же мне остается? Я больше чем уверен, что у меня на нем не потянут ни Exodus, ни Regen, ни, тем более, нелюбимый мной Retrocopy. И под "запускаторами", я так понял, подразумеваются все не cycle accurate эмуляторы?
  3. Roosya
    Roosya от 14 мая 2012 13:23
    Точная эмуляция игрового железа была всегда уделом узкого круга любителей. Ведь ценность любой приставки была в библиотеке игр, а не в самой консоли. А любительские проекты чистокровных эмуляторов не сильно знакомы с оптимизацией. В результате, довольно много нужно ресурсов и нервов, чтобы полноценно воссоздать на своём компьютере приставку 20-тилетней давности. Увы данное направление не для широких масс.
Добавить комментарий

Оставить комментарий