Dolphin: почему была убрана поддержка 32-битных ОС, или некролог по 32-битам

Разработчики эмулятора Dolphin убрали поддержку 32-битных ОС Windows и написали статью на официальном сайте, в которой изложили причины такого поступка. Ниже приводится перевод этой статьи.

Некролог по 32-битам

Десять лет назад Dolphin представлял собой весьма ограниченную программу, заточенную для работы в одной конкретной среде – 32-битной ОС Windows. Эмулятор поддерживал лишь режим Direct3D 9. С тех пор многое изменилось; перед Dolphin’ом ставились новые задачи. Эмулятор постепенно усложнялся и обретал поддержку 64-битных ОС Windows, Linux, Mac OS X, FreeBSD, и даже lqrroQ77Ihc телефонов и планшетов на базе ОС Android.

Увы, иногда изменения просто должны быть сделаны. Одни решения требуют многомесячного обсуждения, подготовки, и выверки, другие же – неизбежны. Для поддержания особенностей эмулятора требуется равновесие между ценой и выгодой. Под ценой подразумевается затраченное время на разработку эмулятора, его поддержка и отладка, нагрузка на интернет-канал, денежные расходы и т.д. Под выгодой – более приятные и ровные впечатления от работы с эмулятором. Эта выгода была хорошо видна в версии Dolphin 4.0: из всех скачанных версий эмулятора для Windows, более трети загрузок пришлось на 32-битную версию.

И не смотря на это, через несколько месяцев мы все равно оказались на распутье.

Зачем вообще отказываться от 32-битных версий?

Разработчики Dolphin постоянно пытаются улучшить процесс разработки. Каждый год предлагаются сотни идей – от безумных до вполне здравых – касаемо того, как улучшить положение дел. Но за последние несколько месяцев с завидной регулярностью всплывает одна и та же проблема: 32-битные сборки не работают и поэтому многие разработчики задаются вопросом об их нужности.

Windows XP несколько месяцев как не поддерживается

Dolphin уже не поддерживает ОС Windows XP. Приличное количество наших пользователей использовало эту операционную систему (чуть меньше 10%), но разработчики решили, что никакая ОС не может их сдерживать. Единственная причина отказа от поддержки ХР заключалась в том, что самый свежий компилятор Microsoft Visual Studio не поддерживает эту ОС. Как только разработка перешла на C++11, путь назад был отрезан – дни устаревшей операционной системы были сочтены. Непреднамеренным побочным эффектом стало то, что Dolphin перестал поддерживать любую ОС, изначально разработанную для 32-битных процессоров. Vista, Windows 7 и Windows 8 разрабатывались для 64-битных ЦП.

32-битные процессоры слишком устарели и не могут запускать Dolphin на играбельных скоростях

С аппаратной точки зрения 32-битные процессоры на платформе x86 уже давно канули в лету. Тут надо сказать спасибо Microsoft, ведь именно из-за того, что она продает 32-битные версии своих ОС, определенной части пользователей нужны 32-битные сборки Dolphin’а. Начиная с 2003 года, когда впервые вышли 64-битные процессоры на платформе х86, новая архитектура показала свое превосходство над предыдущей. Любой компьютер, которому нужна 32-битная версия эмулятора, ввиду процессорных ограничений или нехватки памяти, попросту не сможет запускать Dolphin на приемлемых скоростях. Так какой смысл в такой поддержке? Любой компьютер, способный нормально запускать Dolphin, и так имеет 64-битный процессор.

32-битные сборки Dolphin’а не в полной мере представляют эмулятор

Большинство программ могут без проблем поддерживать 32 и 64-битные сборки или иметь лишь 32-битные версии, которые также могут запускаться на 64-битных компьютерах. Для таких программ нет выгоды в 64-битной среде, и пользователям не нужно ни о чем беспокоиться.

Но это не касается Dolphin’a, поскольку все еще есть такие игры, которые не работают на полную скорость ни на одном ныне существующем компьютере. 64-битные сборки дают эмулятору важные и заметные преимущества. Dolphin, имея в расположении 64-битное адресное пространство, может резервировать 4 гигабайтовый участок, соответствующий памяти приставок GCN/Wii, и значительно улучшать производительность. Но что самое главное: в 64-битной среде в два раза больше доступных регистров. Благодаря этому эмулятор намного ближе соответствует количеству регистров процессора PPC. Но это не все: так как 64-бита могут целиком вмещать 40-битов регистра DSP, рекомпилятор DSP JIT (Just In Time) получает приличную прибавку в скорости. В 32-битных сборках инструкции DSP обрабатываются интерпретаторными функциями, сильно нагружающими процессор. Кроме того, даже компиляторы выдают более качественный код – благодаря тому, что 64-битные операции с памятью производятся без специального выравнивания.

Готовясь к данному решению, мы провели сравнения производительности между 32 и 64-битными версиями, не подозревая, чем все окончится. Даже зная, что 32-битные сборки работают медленнее, результаты нас поразили.

Поддержка

Одна раздражающая сторона поддержки 32-битных версий Windows заключается в том, что у данной операционной системы отсутствуют важные функции, влияющие на разработку. На практике это означает, что зависимые изменения, работающие на других платформах, постоянно ломают 32-битную версию. И поэтому для этой версии каждый раз нужно создавать особый код для компилятора Just In Time (JIT). Это не только досаждает, но и замедляет разработчиков, не давая им работать над другими аспектами эмулятора.

Ситуацию ухудшает недостаток тестирования 32-битных сборок. На 100 ревизий не было подано ни одного багрепорта, и это не смотря на то, что 32-битные сборки совершенно не работали! Из-за этого разработчикам становится сложнее определить причину поломок сборок, и им приходится возвращаться к старым проектам, которые уже считались завершенными.

Есть еще и проблема в компиляции самих сборок. Из-за 32-битной сборки, для Windows-версии эмулятора требуется два билдбота. Следовательно, для них требуется в два раза больше серверного места и процессорного времени. Попросту говоря, поддерживать 32-битные сборки стало сложней. И даже пользователей это сбивает с толку: согласно подробной статистике скачиваний эмулятора, более 60% загрузок 32-битных сборок приходится на 64-битные ОС. Большинство пользователей 32-битных версий являются пользователями 64-битных ПК – то есть, они используют худшую сборку!

В завершение

Поддержка 32-битных ОС – одна из самых старых функций Dolphin’а. Но, как и в случае режима D3D9, время не стоит на месте. 32-бита стали камнем на шее, мешая как пользователям, так и разработчикам. Так как пользовательская база 32-битных ОС быстро уменьшается, поддержка сборок усложняется, а преимущества исчезают, разработчики решили прекратить работу билдбота 32-битных сборок Windows и полностью убрать поддержку 32-битных ОС. Устройства на базе 32-битных процессоров ARM не будут затронуты этим решением, и будут и дальше поддерживаться. Для тех стойких пользователей, которые все еще пользуются 32-битными компьютерами: нынешние сборки никуда не денутся и будут заархивированы. В качестве альтернативы: Linux – это бесплатная 64-битная ОС, которая полностью поддерживает эмулятор Dolphin.

Для каждой приставки эмуляция прогрессирует поэтапно. Сперва возникает первоначальная поддержка: за каждую возможность хватаются как за соломинку, пытаясь создать задатки функциональности. Затем идет период запуска игр. Со временем целью становится точность и совместимость. И в итоге наступает улучшенная эмуляция, которая является не только точной, но и улучшенной, благодаря таким продвинутым возможностям, как поддержка сетевой игры и графики высокого разрешения. В случае других эмулируемых приставок, цель каждого из этих этапов выполнялась разными эмуляторами. А что же с GameCube и Wii? Dolphin выполнил цели всех этапов. Именно благодаря свободе изменений и роста Dolphin смог продолжить развиваться в таком ключе. Убирать помехи, очищать код, привлекать новые таланты – именно в этом силен Dolphin. Благодаря этому он может развиваться так, как это доселе не делал ни один эмулятор. Отказ от поддержки 32-битов – еще один шаг в этом направлении.

Нравится10
Комментарии (9)
  • 4
    Разве есть пользователи 32 битных ОС в 2017ом (не считая офисных планктонов)?
  • 1
    материал годный
  • 5
    Даже зная, что 32-битные сборки работают медленнее, результаты нас поразили.

    На вброс похоже. Но потом увидел в заголовке слово Dolphin и всё понял.

    ApocalypseLV
    Сам посмотри otvet.mail.ru/search/s-date/%D0%BF%D0%BE%D0%B4%D..
  • 3
    Группенфюрер Мендоса
    mail.ru
  • 0
    Амиминору
    Ну а где ты ещё об этом узнаешь ?
  • 2
    Помню на дельфине запускал только резидент ивел 2002 и резидент зеро. Но ныне эти игры есть на пк официально. Сейчас же там остался только ремейк метал гир солид твин снейкс. Или там есть что-то еще заслуживающее внимания?
  • 2
    ApocalypseLV
    Неа, либо офисный планктон на 32, либо комнатный задрот на 64.
  • 0
    с другой стороны на 32 битах запускаются приложения 89-90х годков которые так просто не запускаются на 64 битах
    а что касается виндувса хп то у него 64 версия имеетцо но оная мало кому нужна. она корректно види тоднакоу 16 гб памяти
    а в остальном разрабатывать что-то под 32 бита почти так же бессмысленно как разрабатывать чета графонное под прошлые поколения шейдыров
  • 0
    Время двигаться вперёд. Радует, что эмулятор совершенствуется.
B
i
u
Спойлер