Прогресс эмуляции (август 2017)

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


RPCS3

Эмулятор PlayStation 3 в этом месяце может показать очень достойные результаты:
  1. Реализована эмуляция sys_rsx_* сисколлов, благодаря которым стало возможно использование LLE эмуляции модуля libgcm. Это дает максимально точную эмуляцию основного системного модуля операционной системы консоли - GCM, отвечающую за взаимодействие с графическим процессором (при условии правильной эмуляции sys_rsx_* сисколлов, разумеется). Как несложно догадаться, это дает огромные улучшения в совместимости: многие игры, которые ранее не показывали даже загрузочных экранов или рандомно зависали, начали стабильно работать и доходить до игрового процесса!
  2. Реализована аппаратная эмуляция "zcull occlusion stats". Данная технология используется играми для определения того, какая часть игрового мира должна быть видна в каждый конкретный момент времени. Эмуляция данной особенности делает отображение картинки более близкой к тому, как это выглядит на консоли.
  3. Реализована распаковка многофайловых PKG архивов.
  4. Полностью переписана эмуляция обработки вершин: сейчас все операции осуществляются на стороне GPU в шейдерах (ранее все вершины обрабатывались CPU). Дает огромные улучшения производительности (до 3 раз!), особенно это будет заметно на ноутбуках.
  5. Исправлена эмуляция некоторых вершинных шейдерных опкодов
  6. Добавлен вывод звука через PulseAudio
  7. Множество фиксов и улучшений в коде GUI
  8. Реализован менеджер сохранений. Теперь можно достаточно удобно манипулировать своими сейвами, не лазая вручую по папкам.
  9. Исправления в эмуляции SPU и lv2 сисколлов. Данные изменени позволили устранить зависания и вылеты во множетестве игр (например, Far Cry).
  10. Реализовано кэширование на диск и прекомпиляция шейдеров в OpenGL и Vulkan рендерерах. Итак, остановимся на данном пункте и рассмотрим его подробнее, т.к. на форумах эмуленда началось какое то непонятное нытье о том, что это "тупиковая ветвь развития", "разработчики идиоты и сами не знают, что делают", "кэширование испортило производительность, как его выключить!!1!", "я не буду пользоваться вашим эмулятором, пока не уберете этот кэш!" (жалуются на бесплатное программное обеспечение, ЛОЛ) и т.д. Не будем сейчас затрагивать уровень компетентности данных ораторов, а просто немного расскажем про графический процессор консоли. Начнем с того, что RSX - это GPU с полностью программируемым графическим конвейером: вся работа с трансформацией вершин, пикселями, расчетом освещения и т.д. осуществляется с помощью шейдеров - специализированных микропрограмм, понятных GPU. Шейдеры, написанные для игры разработчиками, заранее компилируются в микрокод RSX и встраиваются в запускаемый .elf файл, либо лежат в бинарном виде в папке с игрой. На эмуляторе каждый шейдер в процессе игры должен быть разобран, переведен в высокоуровневый язык, понятный GPU вашего PC (GLSL / HLSL), затем скомпилирован на лету и применен. Проблемы начинаются на этапе компиляции: этим делом занимается драйвер графического процессора (используя при этом ваш CPU), разработчики эмулятора никак не могут вмешиваться в его работу. Как правило, компиляция "тяжелых" шейдеров вызывает микрофризы, т.к. она должна осуществляться синхронно с другими процессами. После переписывания алгоритма обработки вершин шейдеры стали намного более "тяжелыми" для компиляции, и прежние микрофризы могли превратиться в секундные подвисания. Для избежания этого был придуман следующий механизм: все шейдеры, которые появляются в процессе игры, в исходном виде сохраняются в кэш на диске. При запуске игры эмулятор анализирует кэш, и, в случае обнаружения там данных, заранее компилирует шейдеры, которые уже в процессе игры просто применяются в готовом виде, что избавляет от микрофризов. Таким образом, кэшами шейдеров можно делиться с другими людьми, если вы уже прошли какую то игру: это избавит их от подвисаний. Разумеется, данный механизм еще не доведен до совершенства и будет дорабатываться. Также в будущем будет добавлено кэширование скомпилированных под конкретно вашу видеокарту шейдеров, что избавит от прекомпиляции их каждый раз перед запуском игры. В настоящее время это еще не реализовано, т.к. декомпиляторы шейдеров активно переписываются и от такого кэша большого смысла нет (он всё равно будет пересоздаваться заново с каждым новым изменением в декомпиляторах).


Dolphin

Эмулятор GameCube / Wii, как обычно, обзавелся почти тремя сотнями новых коммитов: эти ребята, похоже, никогда не перестанут доводить свой эмулятор до совершенства. Что нас конечно же не может не радовать. Из наиболее значимого:
  1. Добавлена поддержка загрузки BC7 (BPTC) текстур из DDS контейнера. Данный формат текстур отличается от стандартного S3TC тем, что обладает практически идентичным PNG качеством, и, при этом, не требует декомпрессии перед загрузкой в память. Теперь кастомные текстуры для игр будут выглядеть четко и красиво, и при этом занимать намного меньше RAM при использовании! Единственный минус: видеокарта должна аппаратно поддерживать DX11 и OpenGL4, чтобы уметь работать с данным форматом.
  2. Поддержка распакованных образов игр. Мододелы всегда встречались с довольно неприятной проблемой: для того, чтобы что то сделать с игрой, им приходилось распаковать образ игры, совершить свои магические обряды над ресурсами, заново собрать образ и проверять результат. Как несложно догадаться, разборка - сборка образа отнимает приличное количество времени. Для решения этой проблемы была полностью переписана логика работы с распакованными образами игры: добавлена поддержка GameINI файлов, отображение в списке игр и т.д. Всё выглядит и работает так, как если бы это был образ, а не папка с файлами.
  3. Синхронизация дисконнектов / переподключений Wii Remote при игре через Netplay. Данная проблема была наиболее заметна во время игры в Dokapon Kingdom: игра имеет интересную особенность, которая заключается в необходимости подключенного Wii Remote во время запуска игры, но в самой игре при этом не используется! Если игрок в течение 5 минут не успевал совершить необходимые настройки и запустить игру, Wii Remote отключался и уже повторно не мог синхронизироваться с Netplay. На устранение данного бага было потрачено немало времени, но теперь все работает так, как и должно.
  4. Добавлена поддержка SDHC. Со всё более и более точной эмуляцией Wii NAND появилась возможность реализовать эмуляцию протокола SDHC для поддержки карт памяти до 32 Гб. По умолчанию эмулятор создает карты памяти объемом 128 Мб, но теперь вы можете создать образы SD карт объемом до 32 Гб с помощью сторонних утилит и использовать их в Dolphin! Приготовьтесь к подтормаживаниям в меню обзора содержимого карты памяти: специфика чтения данных, реализованная в Wii, реализована также и в эмуляторе. Dolphin тормозит так же, как реальная железка.
  5. Удалена поддержка некратного увеличения внутреннего разрешения (1.5x, 2.5x и т.д.). В некоторых случаях это вызывает проблемы со чтением и записью данных во фреймбуфер, и эмулятор при этом крашится. Анализ показал, что таким дробным увеличением внутреннего разрешения пользуются менее полутора процентов юзеров, поэтому было решено от него избавиться.
  6. Добавлена поддержка установки апдейтов системы Wii прямо через геймлист.
  7. Исправлена эмуляция инструкции mtmsr в Jit64.
  8. Эмуляция WFS. Теперь через Dolphin можно подключиться к официальным MMO серверам Dragon Quest X и играть в онлайне как на реальной консоли!


PCSX2

Эмулятор PlayStation 2 выдал порядка 40 коммитов. Негусто по сравнению с предыдущими героями нашего обзора, но всё же:
  • отключен MTVU хак на безопасных автонастройках
  • добавлен CRC хак в GSdx для Gran Turismo 3
  • устранено неопределенное поведение в GSdx-D3D11 плагине
  • оптимизация кэша текстур в GSdx плагине, дает заметный прирост производительности (до 10 фпс) в некоторых играх
  • исправлена работа вертикальной синхронизации в GSdx-OpenGL плагине


PPSSPP

Эмулятор PSP обзавелся 124 коммитами за август. Большинство - это всевозможные оптимизации, оптимизации и еще раз оптимизации. Также продолжается разработка Vulkan бэкенда: реализован вершинный кэш, начат рефакторинг кода. Также реализована эмуляция модулей sceUsbGps и sceUsbCam на Android. Больше в принципе и сказать нечего - необходимо тестировать и смотреть, насколько сильно возросла производительность.


Xenia

Эмулятор Xbox 360 в этом месяце может порадовать пол сотней коммитов. Изменения коснулись:
  1. Графический интерфейс: начальная реализация поддержки высоких разрешений, множество фиксов различных мелких багов
  2. GPU: переписана часть кода декомпилятора шейдеров, исправлен расчет высоты текселей для линейных текстур, удален устаревший код, множество других исправлений
  3. Vulkan рендерер: исправлены вылеты на видеокартах AMD, Vulkan loader обновлен до SDK 1.0.54.0, исправления багов


Cxbx-Reloaded

Эмулятор Xbox продолжает радовать стабильным прогрессом: за август сделано порядка 60 коммитов. Значимое событие - к команде разработчиков присоединился Radwolfie, который проделал огромную работу по эмуляции звука. Также ребята собрали команду, которая будет заниматься разбором и организацией проблем на Issue Tracker'e, это поможет разработчикам спланировать свои работы. В настоящее время идет планомерная работы по LLE эмуляции NV2A - графического чипа консоли. В будущем это даст огромные улучшения в точности эмуляции и, соответственно, в его совместимости.


Cemu

Публичный релиз версии 1.9.1. Добавлен вывод изображения с геймпада на дополнительное окно, оптимизирован декодер текстур (стал до 5 раз быстрее). Улучшена эмуляция звука, также сильно уменьшено потребление оперативной памяти рекомпилятором.


Август получился довольно интересным на события в мире эмуляции. Продолжаем наш мониторинг!
+118

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

  1. Darkriot от 4 сентября 2017 14:19
    И снова здравствуйте! :)
    --------------------
    Мой ПК:
    Intel Core i7-3770K 3500 GHz.
    Nvidia GTX 1070 8GB Gigabyte. (NEW UPGRADE!)
    8GB RAM 1333. (Kingston 4GBx2)
  2. Гость Александр
    Гость Александр от 4 сентября 2017 17:40
    Улыбнуло про нытье с эмуленда.
  3. CCCP1982 от 6 сентября 2017 16:20
    Цитата: Гость Александр
    Улыбнуло про нытье с эмуленда.

    О нытике stalker4  blush  
  4. Гость Stalker4
    Гость Stalker4 от 7 сентября 2017 23:14
    Цитата: CCCP1982
    Цитата: Гость Александр
    Улыбнуло про нытье с эмуленда.

    О нытике stalker4  blush  
    Мы бесконечно счастливы, что ты и в этой заднице затычкой оказался, школьник
    1. CCCP1982 от 12 сентября 2017 07:29
      Нытик проснулся аха ха, нечего ответить дяди? сиди уже слюни подбери что ли, а то тошно читать о том, что я школьник! явный признак одно словесная цитата на уме «ТЫ ШКОЛЬНИК» аха ха.
      Ты на сайте ныл и до сих пор ноешь  уже все знают, а что мы все врем? и сайт то же? могу дать пруфы.
  5. Darkriot от 8 сентября 2017 20:13
    Цитата: Гость Stalker4
    Цитата: CCCP1982
    Цитата: Гость Александр
    Улыбнуло про нытье с эмуленда.

    О нытике stalker4  blush  
    Мы бесконечно счастливы, что ты и в этой заднице затычкой оказался, школьник


    хотел поставить минус, а получился плюс....ну ладно, будем считать, что это минус :)
    --------------------
    Мой ПК:
    Intel Core i7-3770K 3500 GHz.
    Nvidia GTX 1070 8GB Gigabyte. (NEW UPGRADE!)
    8GB RAM 1333. (Kingston 4GBx2)
    1. CCCP1982 от 12 сентября 2017 07:32
      А ты там что подпеваешь? что самому не чего ответить ? и затычка это ты) объясню почему : 
      Одному не чего ответить, другой-(я) подначивает)))))
  6. Гость Dimon
    Гость Dimon от 9 сентября 2017 03:34
    Использование кеширования шейдеров в rpcs3, ошибочный путь.
    август в плане прогресса по rpcs3, ничем не порадовал, в отличии от июля.
  7. До сих пор Иширука лучше в плане производительности https://forums.dolphin-emu.org/Thread-unofficial-ishiiruka-dolphin-custom-versi
    on
  8. CCCP1982 от 12 сентября 2017 07:43
    Цитата: NoiseOfRain
    До сих пор Иширука лучше в плане производительности https://forums.dolphin-emu.org/Thread-unofficial-ishiiruka-dolphin-custom-versi
    on

    Это не оф сборки ) , хотя кому как лучше , лучше брать оф сборки они практичнее и постоянно обновляются.
  9. Vorfeed от 3 октября 2017 12:46
    Запаздываете.
    1. Darkriot от 3 октября 2017 18:49
      расслабься, у людей дела могут быть.
      --------------------
      Мой ПК:
      Intel Core i7-3770K 3500 GHz.
      Nvidia GTX 1070 8GB Gigabyte. (NEW UPGRADE!)
      8GB RAM 1333. (Kingston 4GBx2)
  10. Гость yarosan
    Гость yarosan от 4 октября 2017 09:34
    Цитата: Darkriot
    расслабься, у людей дела могут быть.

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

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