Dolphin, август 2014: исправление аудио, увеличение скорости на 26%

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

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

Разработчик booto решил исправить ухудшение в эмуляции звука, появившееся в результате объединения наработок по DTK Audio, но втянувшись, решил исправить и другие баги в прямом доступе памяти (DMA) к DSP и CPU. В итоге, в игре Pokemon Snap (виртуальная консоль) впервые за все время появился звук, а музыка в Harvest Moon: Magical Melody's теперь работает на нормальной скорости и не требует отдельных настроек. Помимо этого были исправлены баги со звуком в других играх.

 

Реализована функция GQR Reserved Bits в JIT

Мало кто подозревал, что игры могут изменять графический квантовый регистр (GQR), и тем более использовать его для чего-то. Ну хорошо, даже если игра и может его изменять, вряд ли же профессиональные разработчики полагались на эту неопределенную функцию GameCube и Wii? Оказывается да, причем она использовалась не в одной, не в двух, а почти в полсотне игр!
 
  до реализации:                                                                после реализации:


Из-за ее неправильной работы, в играх Dirt 2 и Are You Smarter Than a 5th Grader? некоторые текстуры имели завышенную яркость. Turok: Evolution, Vexx и XIII попросту вылетали, а в Cel Damage неправильно работала физика столкновений! Теперь все работает как надо. Вполне возможно, что ее исправление повлияло и на другие игр.

Родной формат вершинного кэша

При переработке устаревшего вершинного загрузчика Dolphin, вкралось ухудшение, уменьшавшее на 20% производительность в играх, активно использующих вершины. Теперь благодаря кэшированию производительность в играх Super Mario Galaxy, The Last Story и других возвратилась к прежнему уровню.

Исправление шейдера аппаратной матрицы глубины

Когда-то давно режим OpenGL был реализован с прицелом на точность, но при этом страдала производительность. Спустя много времени degasus его оптимизировал и добавил новые функции, в результате чего возросла скорость, без потери точности. Через несколько лет режимы D3D и OpenGL были переписаны, и во многих случаях они стали использовать один и тот же код. В режиме D3D шейдер матрицы глубины был поломан, и, соответсвенно, это влияло на OpenGL режим.

Новый разработчик KScorp исправил это баг, и во многих популярных играх, таких как, The Legend of Zelda: Skyward Sword, Luigi's Mansion, и Metroid Prime, был исправлен ряд графических проблем.
 
   до исправления:                                                            после исправления:



Исправление поточности карт памяти

Раньше, при использовании карт памяти, эмулятор при закрытии мог зависнуть. Теперь проблема исправлена.

Инициализация инструкции num_instructions теперь находиться в правильном месте

Sonicadvance1 переписал PPC_Analyzer, потратив много усилий, но к сожалению вкралась досадная ошибка в PPC_Analyst, которая приводила к некоторой потере производительности в CPU-зависимых играх. Теперь она исправлена.

Исключение режима звука DSound

После нескольких месяцев раздумий, разработчики решились убрать режим DSound. XAudio2 работает быстрее, имеет меньшую задержку и лучшую структуру кода. Единственным плюсом DSound была родная поддержка Windows XP, но данная ОС уже с полгода как не поддерживается. Прощаемся с режимом DSound и благодарим его за добрую службу.

Оптимизация PPC_FP

Разработчик Fiora произвела оптимизацию PPC_FP. Ранее в него внесли важные изменения, влиявшие на производительность. Благодаря оптимизации, производительность вернулась к первоначальному уровню.
 

Исправление инструкций fmuls и fmadd

В ряде игр, использующих видеоповторы (например, Mario Kart Wii), физика эмулировалась неточно, поэтому повторы, записанные на приставке, на эмуляторе воспроизводились неправильно.

Решение данной проблемы появилось в июне, но его не внесли в эмулятор, потому что оно было реализовано на программном уровне и сильно влияло на производительность. Fiora более точно реализовала данные исправления, при этом производительность не пострадала. Теперь видеоповторы в таких играх как Donkey Kong Country Returns, Super Smash Bros. Brawl, Mario Kart: Double Dash!!, Mario Kart Wii и F-Zero GX работают точно так же, как и на приставках GameCube и Wii. Исправление также улучшило физику в играх Super Mario Galaxy, Super Mario Galaxy 2 (гравитация физики столкновений), Super Mario Sunshine (различная физика столкновений) и The Legend of Zelda: The Wind Waker (физика столкновений бомб).


Данное исправление затрагивает только 64-битную ПК версию – Адроид-версия продолжает иметь неправильную физику. Эти изменения невозможно реализовать на Андроиде.

Добавлена поддержка FPRF в JIT

Большинство игр не используют данную функцию, за исключением движка, используемого в серии игр Super Monkey Ball и F-Zero GX. Благодаря реализации FPRF, они стали работать быстрее, но она немного повлияла на производительность других игр, поэтому сейчас она отключена. Чтобы ее включить, надо добавить в ini-файл игры строку EnableFPRF=true.
 

Быстрые сохранения теперь действительно быстрые

Раньше на быстрое сохранение уходило порядка 570 мс. После переписания кода, на их сохранение уходит 17 мс – меньше одного кадра.

Улучшение производительности

Fiora внесла многочисленные изменения в код Dolphin, связанные с оптимизацией эмуляции CPU. Благодаря им в бенчмарке Dolphin скорость эмуляции увеличилась на 26%! Естественно, степень прироста производительность будет отличаться в разных играх, но результат, так сказать, на лицо.
 
0

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

  1. EterniSamael
    EterniSamael от 11 сентября 2014 05:40
    Я смотрю шустро взялись за эмуляторы. К концу сентября урожай будет богатым. biggrin
    Жаль Андроида обделили.
  2. CyberMan
    CyberMan от 11 сентября 2014 10:59
    Надо будет дома потестить
  3. NightHarder
    NightHarder от 11 сентября 2014 14:45
    Какого хрена эмулятор не видит видеокарточку от nvidia, поставил в панели управления запуск с дискретной видеокартой, но всё равно эмуль переключается на интегрированную.
  4. Cheese966
    Cheese966 от 12 сентября 2014 12:17
    В игре Fatal Frame 4 есть улучшения на новом эмуляторе?
  5. AleXey1235
    AleXey1235 от 13 сентября 2014 00:58
    Блин F-zero летает, метроид который постоянно тормозил, летает, все работает на 100 процентов, да ето прям радость какаято))) Емуль стал ооочень классным и нетребовательным (относительно) мой phenom II X4 960 крутит емуль без проблем, до етого во многих играх тормозило)
  6. Miha_xXx
    Miha_xXx от 13 сентября 2014 19:13
    
    Цитата
    бенчмарке Dolphin
     что за бенчмарк такой?
  7. =[BFG]=
    =[BFG]= от 14 сентября 2014 17:38
    >исправление аудио, увеличение скорости на 26%
    >увеличение скорости на 26%
    >на 26%
    >26
    >ДВАДЦАТЬ ШЕСТЬ ПРОЦЕНТОВ!!!
    shock
    Я БУДУ УСТОНАВЛИВАТЬ ВСЕ ИГРЫ
    *взял геймпад в руки*
  8. Stalker4
    Stalker4 от 15 сентября 2014 12:18
    Вы мне скажите, у кого такое бывало что звук почти во всех играх воспроизводится прерывисто? У меня проц феном х4 955.
Добавить комментарий

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