Релиз Dolphin 5.0

 
 

Долгожданный релиз Dolphin 5.0, наконец, состоялся! После длительной охоты на баги, длившейся почти год, мы наконец готовы опубликовать наш самый большой релиз! За три предыдущих релиза можно проследить очень четкую картину развития: мы жертвовали производительностью и хаками в угоду более высокой точности. Таким образом, Dolphin 3.0, 3.5 и 4.0 постепенно становились медленнее, но точнее. Однако, благодаря изменениям, сделанным в течение последнего года, Dolphin 5.0 - самый быстрый Dolphin, когда-либо видевший свет!

Удаляя все эти хаки и устаревшие функции в процессе рефакторинга кода, Dolphin достиг нового уровня эффективности, обусловленного обновленным динамическим рекомпилятором. На стороне GPU, OpenGL и D3D11 были произведены тонны оптимизаций и улучшений точности, а также был реализован новый D3D12-бэкэнд, обеспечивший огромный прирост производительности. Одним словом, если было какое то CPU или GPU расширение, позволяющее сделать Dolphin быстрее, мы воспользовались им.

Таким образом, Dolphin 5.0 является более точным и эффективным, чем все предыдущие релизы, по всем аспектам. Отдельные игры могли измениться в связи с удалением различных хаков.

Системные требования для запуска Dolphin 5.0 можно найти на официальном сайте, но вот краткое изложение того, что изменилось:
• Требуются 64-разрядные процессоры и операционные системы.
• Windows XP больше не поддерживается. Windows Vista больше не поддерживается официально.
• Direct3D10 / OpenGL3 являются обязательными. Это означает, что требуются видеокарты серий AMD Radeon 4xxx, NVIDIA GeForce 8xxx, Intel HD 2xxx и выше! Все, что старее, вероятнее всего не будет работать, либо будет иметь серьезные проблемы.

Dolphin на Android пока не получает релизную версию. Это не означает, что она отстает от своего старшего брата. Мы просто пока не чувствуем, что Dolphin на Android достиг каких-либо монументальных улучшений с этими изменениями. Мы, скорее всего, уделим ему особое время после релиза десктопной версии эмулятора


Журнал изменений

Почти 10000 коммитов было сделано для улучшения совместимости, исправления крашей, новых возможностей, и многое-многое другое. Dolphin 5.0 имеет множество причин для обоснования релиза новой стабильной версии:


Исправления Texture EnVironment

Texture EnVironment исправления (TEV исправления)  являются одними из основных изменений того, как Dolphin обрабатывает графический конвейер в GameCube и Wii. Вместо того, чтобы пытаться эмулировать целочисленную математику, используя математику с плавающей точкой, Dolphin использует D3D11 и OpenGL 3 (или более поздние версии) API-интерфейсы, которые позволяют использование целочисленной математики, в отличие от старых API. В прошлом, когда Dolphin впервые увидел свет, это было невозможно реализовать за пределами программного рендеринга, т.к. этих API попросту еще не существовало! Несмотря на поддержку целочисленной математики в OpenGL 3, многие видеокарты и драйвера по-прежнему имеют проблемы с правильной обработкой целых чисел. Это может привести к некоторой потере производительности в конкретных ситуациях, но, вместе с этим, огромное увеличение точности, решая тысячи графических проблем сотен игр.
 

Различные ошибки округления числа с плавающей точкой приводят к куче графических ошибок.


Но теперь они пропали благодаря использованию целочисленной математики!
  

Поддержка  zFreeze

zFreeze является одной из тех возможностей, которая, как мы думали, никогда не будет реализована. Разработчики знали о данной особенности в течение достаточно долгого времени, но никто не мог в полной мере понять, как его реализовать. Потребовалось три разработчика, потративших годы на исследования, чтобы окончательно взломать алгоритм, и теперь каждая известная ситуация с zFreeze должным образом работает в Dolphin! Мы однажды с гордостью заявили: эмуляция zFreeze потерпела поражение, да, вы можете, наконец, играть в Rogue Squadron II в Dolphin. Из-за того, что эта игра требуют все абсолютно сумасшедшие аппаратные трюки, её эмуляция не может быть идеальной, но zFreeze отныне не будет причиной головной боли.
 

Мерцания и проблемы с областью видимости, вызванные zFreeze в Dolphin 4.0.


Dolphin 5.0 с полной поддержкой zFreeze не имеет таких проблем.
  
Известно около двух десятков GameCube / Wii игр, которые используют zFreeze в некоторой степени и, вероятно, много других, которые используют его отчасти. Хотя это в основном используется для теней, Blood Omen 2 и Mario Power Tennis гораздо, гораздо более играбельны без вопросов zfighting.


Улучшенная и более быстрая эмуляция CPU

Как и эмуляция GPU, эмуляция процессора в Dolphin получила множество улучшений точности за последние два с половиной года. И ради этого тоже пожертвовали совместимостью. В то время как D3D9 была принесена в жертву для поддержки целочисленной математики, x86_32 JIT была принесена в жертву ради усовершенствований, которые были бы невозможны. Мы пообещали в свое время, что избавление от x86-JIT откроет много возможностей для улучшений, но, даже мы не ожидали почти 100% прироста производительности в JIT!

Избавление от 32-битного JIT-компилятора сыграло чрезвычайно важную роль для многих из этих изменений; это означало гораздо меньше усилий для реализации новых функций (больше не придется реализовывать их два раза, по одному разу для каждой архитектуры), в совокупности с устранением некоторых ограничений, которые убивали всевозможные идеи по оптимизации. Результатом всего этого является и то, что многие команды, которые ранее должны были выполняться медленным интерпретатором, теперь реализованы в JIT. Любая игра, которая использует упомянутые инструкции, увидит прирост производительности. Более того, с помощью сверхточного интерпретатора и с помощью аппаратных тестов в качестве ориентира, многие инструкции были сделаны более точными в течение жизни 4.0.

Одна из наших наиболее известных особенностей, которая показывает, насколько более точным стал Dolphin, является то, что аппаратно записанные повторы в таких играх, как Mario Kart: Double Dash!!, F-Zero GX, Mario Kart Wii и другие игры, которые мы тестировали, теперь могут быть корректно воспроизведены между Dolphin и консолью без каких-либо проблем.

В предыдущей версии эмулятора, если игра использовала MMU на полную катушку, это почти гарантировало проблемы с эмуляцией. Одной из основных целей эмуляции процессора была возможность играть в эти игры, а также JIT оптимизации в эмуляции MMU. Важно отметить реализацию Far-Code кэша, который великолепно ускоряет MMU-игры путем очистки кэша команд мало используемого кода и кэширует наиболее важный код. Кроме того, в Dolphin 5.0 можно играть в Rogue Squadron III: Rebel Strike благодаря улучшенной эмуляции MMU!
 

Rogue Squadron III стоит в одном ряду с самыми красивыми играми на GameCube и Wii.
  
Данные оптимизации JIT-компилятора позволяют запускать Rogue Squadron III более чем в десять раз быстрее, чем это было до этого. Это довольно хороший прирост производительности, даже учитывая то, что она может быть запущена на полной скорости только на самых мощных современных компьютерах.


Стерео-3D изображение

Dolphin и ранее имел возможность вывода стерео-3D изображения, но оно работало не совсем так, как того хотелось бы. Использование устаревших методов, которые часто приводили к  разительный потере качества изображения (и вдвое уменьшало частоту кадров!), стерео-3D вывод был убран вскоре после выпуска Dolphin 4.0. Вооружившись знаниями и документацией современных 3D-устройств, Armada переписал вывод 3D-изображения с нуля. Теперь пользователи не должны разрываться между четкими цветами и высокой частотой кадров или стерео-3D картинкой. С новой, улучшенной поддержкой 3D-вывода Dolphin может взаимодействовать с Top/Bottom и Side-by-Side мониторами, а в D3D - работать с NVIDIA 3D Vision.
 
 
 
Полная поддержка ES_Launch 

Как и zFreeze, ES_Launch является еще одной из давних функций, которая вызывала проблемы в играх, которые её используют. К счастью, ко времени выхода Dolphin 4.0 многие особенности в основном уже были выяснены. Люди, которые пытались играть в Metroid Prime: Trilogy, наверняка заметили, что выбор слота сохранения, который они хотели использовать, не имеет значения: Dolphin всегда будет загружаться по умолчанию с первого слота. Это означало, что вы не могли поиграть в мультиплеер трилогии Metroid Prime 2, так как оно всегда загружало одного игрока. House of the Dead 2 & 3 Returns всегда будет загружать House of the Dead 2, а Super Smash Bros. Brawl не сможет загрузить «шедевры» c диска. Всё это являлось следствием неполной поддержки ES_Launch; в качестве обходного пути, чтобы игры просто не зависали, Dolphin загружал игры с параметрами по умолчанию.

В Dolphin 5.0 реализована полная поддержка ES_Launch благодаря обратной инженерии и пониманию того, как это работает. Новая реализация ES_Launch правильно работает в каждой конкретной ситуации, не вызывая никаких регрессий, и должна положить конец проблемам с ES_Launch в Dolphin, если только мы случайно не поломаем его снова.


Revamped NetPlay

Благодаря активному NetPlay сообществу, мы используем всё самое лучшее для того, чтобы поддерживать возможности игры по сети в актуальном и рабочем состоянии. В Dolphin 4.0, NetPlay был довольно сложной вещью для пользования. Пользователи должны были синхронизировать все настройки вручную, и даже если они сделали всё, как надо, не было бы никакого предупреждения при возникновении рассинхронизации. Благодаря очень активному сообществу на smashladder и оказанию ими помощи в тестировании, нам удалось собрать тонну новых возможностей для NetPlay в Dolphin 5.0!

Dualcore NetPlay: Был добавлен новый вид Dualcore, который называется "fake-completion". Она имеет более низкую совместимость, чем одноядерный режим, это приносит большую часть скорости режима Dualcore детерминированным образом.
Blank NAND Netplay: Без Wiimotes и сохранений на Wii NetPlay, это было в основном бесполезной функцией. Отключив NAND, пользователи могут играть Wii NetPlay игры с Wii, когда им не нужны сохранения или Wiimotes. Предприимчивые пользователи smashladder провели соревнования по Project M на NetPlay просто потому, что пинг там меньше, чем в Nintendo WFC!
STUN сервер: Мы поняли, что многие пользователи не могут прокинуть порты для того, чтобы играть в NetPlay, так что, у нас теперь есть альтернатива. STUN сервер Dolphin позволяет многим пользователям, которые либо не имеют возможности настроить свой маршрутизатор, либо просто не обладают достаточными знаниями для того, чтобы открыть порты, играть через NetPlay! В то время как получение 100% совместимости для всех маршрутизаторов и сетей невозможно, это должно работать в большинстве случаев.
Настройки синхронизации: Dolphin теперь синхронизирует большинство настроек, которые обычно могли привести к рассинхронизации. Эти настройки устанавливаются только во время сессии NetPlay, и не окажут влияния на старые настройки после завершения игры по сети.
Обнаружение рассинхронизации: Если что-то не так и все-таки происходит рассинхронизация, NetPlay теперь будет предупреждать вас о том, что он обнаружил возможную рассинхронизацию. Если пользователи используют чит-коды или модификации к игре, это может ошибочно определено как рассинхронизация. Но в большинстве случаев наша система проверки обнаружит, что вы рассинхронизированы, даже быстрее, чем вы это заметите! Если что-то настроено неправильно, это будет отображено на самых ранних этапах игры.


Улучшения в эмуляции звука

Dolphin 4.0 был отмечен большими изменениями в эмуляции звука: DSP-HLE был уже не просто забавным функционалом, который едва работал. DSP-HLE и DSP-LLE используют один и тот же звуковой интерфейс, что приводит к хорошей эмуляции звука.

Так, в Dolphin 4.0 разница между задержкой звука в DSP-HLE и DSP-LLE была снижена более чем на 80 мс. Это около 5 кадров в игре c частотой кадров 60 FPS. Большинство игр проигрывают звук в первый раз независимо от настроек, и DSP-HLE теперь по качеству звука гораздо ближе к DSP-LLE, почти полностью соответствуя его совместимости в большинстве игр.

Две наши самые большие победы – это переписывание эмуляции Disc TracK (DTK) и особенностей, которые используют игры с Zelda Microcode.  Потоковый звук DTK с диска, например, используется в заставках Starfox Adventures. Учтите, что DTK имел обыкновение быть асинхронными даже на DSP-LLE, и вы быстро поймете, что это было серьезной проблемой. Теперь же звук синхронизируется со скоростью эмуляции как в DSP-HLE, так и в DSP-LLE. Несмотря на некоторые первоначальные трудности, эмуляция DTK полностью переписана и работает должным образом во всех известных случаях!

Zelda Microcode игры использовали устаревшую реализацию Zelda-HLE еще в версии 4.0. В то время это было лучше, чем старый AX-HLE, но после того, как были переписаны основные части эмуляции звука, Zelda-HLE игры стали одними из самых плохо воспроизводимых в Dolphin! Полное переписывание эмуляции Zelda-HLE в лучших традициях New AX-HLE и синхронная эмуляция позволили достичь в этих играх полной скорости и почти идеального качества звука!


Override Emulated CPU Clock

Одной из самых интересных особенностей Dolphin 5.0 является возможность переопределить частоту процессора GameCube / Wii. Если вы получаете замедления в игре из-за слабого процессора, вы можете понизить частоту эмулируемого CPU и получить полную скорость с более низкой частотой кадров. Или, может, вы – счастливый обладатель мощного компьютера? Поднимите тактовую частоту эмулируемого процессора! В некоторых играх это позволит получить динамическую частоту кадров в 60 FPS. Эта функция также является краеугольным камнем для различных 60 FPS патчей, доступных пользователям на wiki и форумах. Это также может быть использовано для обхода различных зависаний, например, в True Crime: New York City, которая требует циклически точного поведения ядра процессора для конкретной сцены.


Расширенная поддержка Native Controller

Благодаря реверс-инженирингу адаптера контроллера GameCube для Nintendo Wii U, Dolphin может напрямую использовать его для взаимодействия с контроллерами GameCube! Используя специализированный драйвер, пользователи могут просто подключить адаптер, подключить контроллеры и играть. И не беспокоиться больше о настройках мертвых зон или неправильно настроенных кнопках! Чтобы продемонстрировать это, обратимся к инструменту в F-Zero GX, который показывает точность контроллера...

 

X и Y должны быть равны нулю. Этот Xbox-360 контроллер далек от идеала!


Родной адаптер контроллера удивительно точен.
 

Со стороны Wiimote, поддержка DolphinBar приносит простоту использования дистанционного управления Wii. Его можно использоваться даже в Android версии Dolphin в обход ограничений, налагаемых Android. Wii Remote Plus и эмулированный Wiimote также получили дополнительный бонус в виде правильной эмуляции вывода звука без дисконнектов на Windows 8 и 10. Если игра по какой - то причине разъединяет Wii Remote (например, ES_Launch), Dolphin теперь может переподключить Wiimote, когда пользователь нажимает кнопку на Wiimote, так же, как на консоли! Это устраняет раздражающую необходимость подходить к компьютеру каждый раз, когда, играя с друзьями, особенно в многопользовательские игры, Wiimote теряет соединение при возврате в меню. Более того, пользователи Windows 8 и Windows 10 могут подключить Wiimotion Plus Wiimotes без каких-либо специальных настроек!


Эмуляция выходного видеосигнала

Dolphin 4.0 и более ранние версии относительно просто выводили картинку. Они имели жёстко прописанные значения для NTSC и PAL видеорежимов, а не использовали то, что игра отправляла в видеоинтерфейс. Игры на GameCube и Wii не точно 4:3 или 16:9, и многие разработчики хорошо это знали! В Dolphin 5.0 было сделано так, что теперь он может исправлять пропорции таким образом, чтобы соответствовать выводу картинки, как на консоли.
 

Для справки, зеленый круг обладает идеальной формой.


Теперь щиты Melee являются совершенно круглыми!
 


Исправления Line-Width и Point-Size

В Dolphin 4.0, Line-Width и Point-Size эмулировались в OpenGL бэкэнде только с минимальной шириной. Это означало, что большинство эффектов, полагавшихся на Line-Width и Point-Size, были  невидимыми, либо их было очень трудно заметить. Используя геометрический шейдер для его имитации (так же, как это уже было сделано в D3D), все рендереры теперь могут правильно эмулировать эффекты Line-Width и Point-Size!
 

При минимальной ширине (что OpenGL может сделать только в версии 4.0) эффекты едва заметны!


Fireman's attack, наконец, выглядит так, как должен.
 


Vertex Loader JIT

При использовании рекомпилятора вместо интерпретатора для загрузки вершин, игры, интенсивно использующие вершины, будут работать намного быстрее, чем раньше. Такие игры, как Super Mario Galaxy 2, Xenoblade Chronicles и другие тяжелые игры получат хорошее ускорение, но каждая игра получит некоторое падение загрузки процессора.
 
  

Улучшения EFB Copy to Texture

Сохранение EFB копий в ОЗУ (так называемый "EFB to Ram") является очень важным  параметром, который иногда может существенно повысить требования к вычислительной мощности компьютера. Слабый компьютер может даже не надеяться, чтобы запустить игру, которая требует хранить EFB копии в оперативной памяти. Однако Dolphin теперь может запустить кучу игр быстрее, чем раньше, и без графических артефактов, имея дополнительную возможность повысить разрешение этих эффектов. New Super Mario Bros. Wii использует новую функцию под названием  Partial EFB Copy to Texture в Dolphin 5.0. Это позволяет запустить игру почти в три раза быстрее, в то же время рисуя эффекты в любом разрешении!
 

Независимо от вашего внутреннего разрешения, монеты всегда были размытыми и ступенчатыми.


Но теперь они кристально чистые! И они вращаются!
 

Еще одной особенностью является поддержка Paletted EFB Copy to Texture. Это используется в таких играх, как Star Wars Rogue Squadron 2/3 (как будто есть хоть одна уникальная особенность, которую они не используют), The Legend of Zelda: Twilight Princess и Mario Superstar Baseball.  Оно позволяет рисовать мини-карту в Twilight Princess в любом разрешении, а также дает прирост производительности до 400% в сценах, которые используют Hyrule Field MiniMap SpeedHack!

Источник новости: официальный сайт
Скачать эмулятор можно по ссылке.
+8

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

  1. S1neD
    S1neD от 26 июня 2016 23:10
    Очень круто! Молодцы respect
  2. metalslayer
    metalslayer от 27 июня 2016 17:31
    Кто знает, как там делать перемотку назад?
  3. AD09
    AD09 от 28 июня 2016 18:22
    У меня из электроники только кнопочный мобильный и нетбук с железом 2001 года на убунту, даже видео в 144р не тянет, живу в сельской местности, 23 года (работы в поселке нету)
Добавить комментарий

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