Прогресс эмуляции за июль 2017

Второй летний месяц закончился, а значит, можно подводить итоги. Приступаем!

RPCS3

Эмулятор PlayStation 3 развивается быстрыми, стабильными темпами. За прошедший месяц было совершено порядка 200 коммитов в основную ветку развития. Основные изменения:
  • реализована поддержка релокаций в LLVM рекомпиляторе PPU
  • реализован фреймскип (пропуск кадров), должно помочь в графически тяжелых играх, жертвуя при этом плавностью анимации
  • возможность многопоточной обработки вершин
  • исправлена эмуляция инструкций FCGT и FCMGT в SPU
  • исправлен "синий / зеленый фильтр", который присутствовал во многих играх (например, Persona 5), а также экстремально высокий уровень яркости
  • исправлены отсутствующие персонажи в Red Dead Redemption, Mafia II и, возможно, в некоторых других играх
  • в Tales of Vesperia теперь отображается почти вся геометрия
  • исправлено мерцание текстур в некоторых играх при использовании Vulkan рендерера
  • LLVM рекомпилятор PPU теперь может повторно использовать загруженные исполняемые файлы
  • улучшена скорость при использовании Vulkan рендерера
  • компиляция функций SPU в asmjit теперь многопоточная (спидап)
  • скомпилированные функции SPU в asmjit рекомпиляторе теперь кэшируются (спидап)
  • реализовано определение состояния зацикливания в SPU (спидап)
  • исправлено начальное состояние таймера в sys_timer, Kingdom Hearts II и другие игры серии ушли в ингейм
  • множество улучшений в LLVM рекомпиляторе PPU, теперь он используется по умолчанию
  • бесчисленное множество фиксов и улучшений в GUI
  • реализован вершинный кэш (ощутимый спидап в большинстве игр)
  • переписан кэш текстур (спидап)
  • теперь возможна загрузка и использование билдов эмулятора под Linux системы с использованием AppImage

Благодаря всем этим изменениям такие игры, как Demon's Souls и Persona 5, стали практически играбельными на не самом топовом железе!
.

Dolphin

.
Эмулятор GameCube / Wii традиционно выдает сотни коммитов в месяц. Но в этом месяце произошло особое событие, которое сейчас и рассмотрим.
Убершейдеры (смешное название, правда?). Начнем с того, что GameCube - одна из первых консолей с программируемым графическим конвейером, так называемым TEV юнитом (Texture EnVironment). Это означает, что в процессе эмуляции необходимо дизассемблировать микрокод GPU консоли, разбирать его и воссоздавать на современном GLSL / HLSL в виде фрагментных (пиксельных) и вершинных шейдеров. Казалось бы, всё хорошо и замечательно работает, но есть одна проблема: сгенерированные шейдеры должны скомпилироваться драйвером вашей видеокарты, используя при этом ЦП.
В графически тяжелых играх каждый спецэффект, как то взрыв, отражение, блик и т.д. может порождать собственный шейдер, который должен быть тут же скомпилирован. К чему же это приводит?
.
.
Неприятные микрофризы в процессе игры, которые ломают весь геймплей. Разработчики рассматривали несколько вариантов решения данной проблемы:

1. Скомпилировать все шейдеры для всех игр, для различных конфигураций ПК и версий драйверов и хранить их в кэше. Звучит просто, не правда ли? Однако это безумная затея: возможных комбинаций больше, чем песчинок на планете Земля...

2. Предугадать, какие шейдеры требует игра. На самом деле, решение очень сложное, практически нереализуемое. Единственный способ точно узнать, какие шейдеры могут понадобиться игре в различных ситуациях - это пройти её от начала и до конца.

3. Расшаривание шейдеров. Идея заключается в том, что каждому шейдеру можно присвоить UID (Unique ID), и компилировать его перед запуском игры. Решение теоретически должно сработать, однако код графической части эмулятора постоянно изменяется, и не факт, что в скором времени не придется избавляться от UID.

4. Асинхронная компиляция шейдеров. Было реализовано в одном из форков эмулятора разработчиком Tino. Идея заключается в том, чтобы игнорировать компиляцию нового шейдера в тот момент, когда это требуется, а продолжать использовать предыдущий. Новый шейдер компилируется в отдельном потоке, затем применяется после завершения процесса.

5. Решение. Написать интерпретатор графического конвейераGameCube /Wii в шейдерах и запускать его на видеокарте. Идея просто безумная, но тем она интереснее для реализации :D Работы в данном направлении были начаты еще в далеком 2015 году разработчикомphire, и доведены до логического завершения разработчикомStenzek. И это действительно работает!
.

PCSX2

Эмулятор PlayStation 2 развивается достаточно медленно, всего 24 коммита за месяц. Из заметного:
  • удалены хаки для Metal Gear Solid 3 Subsistence
  • исправлены проблемы с эффектом глубины в Finding Nemo
  • упрощены геометрические шейдеры
  • некоторые изменения в GUI
  • переработан алгоритм вычисления высоты фреймбуффера
  • добавлен CRC хак для Dragon Ball Z Budokai Tenkaichi 3
.

PPSSPP

.
Эмулятор PSP недалеко ушел от своего старшего брата, всего 52 коммита:
  • исправлена поддержка Windows XP в LocalFileLoader
  • исправлено масштабирование текстур в D3D11
  • реализована возможность запуска без RIP-адресации между сгенерированным кодом и глобальными данными
  • добавлена поддержка геймпадов NYKO CORE
  • улучшена поддержка полноэкранного режима на мониторах 21:9
  • исправлены SIMD оптимизации при манипуляции с 20 битными значениями
  • исправлен вылет эмулятора на FreeBSD при запуске игры

Xenia - Cxbx-Reloaded

Эмулятор Xbox 360 снова не может порадовать большим прогрессом. Из заметного: исправлены темные цвета в Vulkan рендерере, а также белые рамки вокруг некоторых текстур, добавлена WIP реализация NtProtectVirtualMemory.

Эмулятор Xbox выдал в этом месяце 116 коммитов, неплохой результат. Из наиболее заметных изменений - огромные улучшения в HLE эмуляции звука, а также большой объем работ проведен в LLE эмуляции графического процессора.
.

Cemu

.
Очередной публичный релиз версии 1.8.2. Улучшена производительность рекомпилятора, улучшена эмуляция звука, а также программного декодирования видео. Из наиболее приятных измененний - начаты работы по поддержке RPL библиотек (по аналогии с SPRX модулями в RPCS3). В настоящее время неюзабельно, но в будущем использование LLE-модулей вместо HLE может серьезно улучшить совместимость эмулятора. Ну и, по традиции, превью новой версии:
.
Вот таким насыщенным получился июль, начинаем мониторить август.
Нравится18
Комментарии (21)
  • 2
    Vinni-Pukh
    Консолеэксклюзив ради которого покупают консоли (нет).
  • 2
    Ruv1k
    Я бы понимаю пытались RDR запустить, но нет, они на эмули запускают высер какой-то
  • 6
    Vinni-Pukh
    Сначала нужно устранит все графические баги и трудности эмуляции. Так как игры работают в принципе одинаково, лишь задействуют разное количество ресурсов, тут проще начинать с простеньких игр типа аркад. Уже потом переходить на большие и сложные игры так как в них и скриптов больше задействовано и сильнее привязка к архитектуре.
    RDR раньше запускался, но там ренидлось вообще ничего
    Теперь там рендится с филком текстур, более менее отрисовывается какая-то геометрия
    Через пол годика (а может и раньше) можно будет уже играть, кек
  • 6
    На сколько я помню, Dolphin всегда показывал хорошие результаты. Если хочется поиграть в игру от PS2, но она есть на Game cube, то лучше играть в версию от Game cube. Там и графика по лучше зачастую, и фризов меньше даже на средних системах.
  • 2
    Vinni-Pukh
    зато rule34 по ней норм)
  • 1
    Ruv1k
    А зачем вам играть в "консолеэксклюзив ради которого покупают консоли"? Двуличие (Да)?
  • 0
    zero sleep
    Затем что на ПК можно сделать и честный рендер FullHD если все это будет адекватно работать. И на ПК как-то удобнее. Играл я вот на своем дефолтном телеке, он у меня не шибко большой, 32" всего-навсего 1366x768. Так вот с 4ёх метров субтитры в RDR читать просто невозможно, этот убогий мелкий шрифт сливается в кашу нечитабельную, которая еще и проскакивает за секунду. Это и не комфортно, и там почти ничего не видно, особенно ночью, и нулевое погружение, да и цветопередача с контрастностью у него явно хуже монитора. Мне было бы в разы комфортней играть на ПК-мониторе.
  • 0
    Окай, что бы поиграть с 30 фпс надо собрать пк за 80-100к
  • 3
    Chenkin Ivan
    Да от куда же вы беретесь?! Разве кто-то ломает голову? Кого ты имеешь ввиду? Те, кому было невтерпеж поиграть в какую нибудь игру для PS3 или Xbox360, те скорее всего давно в них поиграли. Остались только те, кому наплевать на эти игры, те, кому они интересны, но не до такой степени, чтобы покупать ради них хлам, пусть и за недорого, и те, кто собственно и трудятся над эмуляторами (глупо было бы думать что они это делают чтобы поиграть в какую нибудь игру XD )
  • 5
    Chenkin Ivan
    Они ломают голову не ради того, что бы поиграть в какую нибудь игру. Эмулятор - это вклад в будущее. Консоли уходят в историю как ненужный хлам, но игры будут жить благодаря этим эмуляторам, и в будущем любой сможет в них поиграть без особых проблем. Пока что это тернистый путь, но огромное спасибо тем ребятам, которые работают над созданием и доработкой эмуляторов. Ничего не делается сразу, тем более эмуляция сложной архитектуры.
  • 1
    Alamut_95
    Да успокойся ты уже со своими
    Alamut_95 написал:
    не ради того, что бы поиграть в какую нибудь игру.

    и
    Alamut_95 написал:
    Эмулятор - это вклад в будущее

    Будущее будет в будущем, а людям нужно сейчас, а сейчас эмулятор бесполезен (когда будет полностью работоспособен, тогда уже можешь говорить что консоль не нужна), проще купить пс3 и играть.
  • 0
    Ruv1k
    Это как говорится каждому своё. Мне допустим ПК надоедает на работе. Консоль нужна только для игр. Я Ее для этого и брал. Удобство, простота. А у вас может все таки дело в ТВ? Все таки разрешение 1366х768 маловато даже для консолей. Ну и 32 дюйма если сидеть далеко тоже мало.
  • 2
    Мож и ps4 скоро эмулятор появится...
  • 3
    Alamut_95
    Не пытайся им что-то объяснить, у них три извилины - ниже спины, выше спины и посредине.
  • 2
    Молодцы парни. Так держать!
    Жаль, по Ящику мало изменений. :)
  • 0
    muromez
    PS4 еще даже не взломали, а ты про эмуляторы говоришь...лол
  • 1
    muromez
    Появится лет через 10.
  • 0
    Приятно видеть, что эмуль развивается
  • 2
    купите уже консоль и не парьтесь никогда, игры так же бесплатны
  • 1
    Единственное что я жду от pcsx2,то когда spider-man 2 будет нормально работать в hardware рендере и с приемлемым фпс
  • 0
    Ruv1k
    От монитора ты тоже в четырёх метрах сидишь,или бинокль пользуешь. .?))
B
i
u
Спойлер