Главная » Статьи » Эмуляция

Мини-обзор фич DuckStation

Спустя 10 лет после написания гайда по настройке ePSXe, предлагаю незамутнённым взглядом пройтись по основным фичам современных эмуляторов на примере DuckStation, который пользователи, очевидно почему, уже прозвали уткой. Не будем так же подробно останавливаться на каждой кнопочке, поскольку для этого есть тонны других гайдов, а выявим, именно что, отличия от эмуляторов прошлого, которые, впрочем, не всегда означают лучший опыт, к сожалению. Статья построена в виде несвязанных между собой заметок об определённых аспектах в случайном порядке, а нацелена на тех из вас, кто либо ещё пользуется ePSXe по привычке, либо просто не задумывался о тех или иных аспектах современной эмуляции.

Библиотека игр

Людям всегда хотелось иметь каталог своего непосильно нажитого добра. В своё время, например, плеер Winamp, помимо плейлистов, обзавёлся полноценной библиотекой, которая хранила ссылки на отдельные файлы. Появлялись и различные "фронтэнды" для эмуляторов, которые хранили ссылки на игры, давали краткое описание и позволяли запустить игру в эмуляторе в один клик. В поздних версиях ePSXe даже были зачатки того, что могло бы стать библиотекой, но в полном смысле библитеки для PSX есть только в RetroArch и в утке. По поводу удобства использования можно спорить, тем не менее, список обложек есть и запуск в два клика тоже есть. Что ещё нужно?

Локализация

Опенсорс природа эмулятора привела к тому, что русский язык доступен из коробки. Как и дюжина других наиболее популярных в мире языков. Меню Settings -> Language и выбирайте любую из доступных локализаций. Были ли русские версии ePSXe? Да, конечно, были. Но теперь это не кривой перевод "от васяна", а плюс-минус цельный продукт от сообщества, которое периодически правит старые ошибки и своевременно обновляет новые строки.

Автообновление

Как и любой мало-мальски современный софт, утка обновляется автоматически при запуске. На выбор доступны 2 канала обновления - preview (самые свежие билды) и latest (последний стабильный релиз). Выбор осуществляется в Общие -> Канал обновления. Там же можно отказаться от апдейтов и проверить их наличие вручную.

Статус в Discord

Утка умеет общаться с популярным нынче мессенджером Discord, ведь всем вашим друзьям очень интересно во что вы там играете. Ничто не ново под луной, когда-то такие *крутейшие интеграции* делали с музыкальным плеером Winamp для какой-нибудь аськи и позже скайпа. И тем не менее, шагаем в ногу со временем.

BIOS

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

Впрочем, есть и вариант остаться в легальном поле, а именно использовать свободный биос из эмулятора NO$PSX. Там есть опция экспорта эмулятора - он выплёвывает образ длиной 256кб, а нужно 512кб. Открываем в хекс-редакторе, копируем всё содержимое, вставляем в конец, сохраняем. И вот у нас 512кб, которые можно скормить утке. Нужно иметь ввиду, что совместимость может быть ниже, чем с официальными биосами.

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

Совместимость и открытость

Ну и кстати, к вопросу о совместимости. Многие в своё время критиковали ePSXe за его закрытость и подозревали в специальной подтасовке результатов для более выгодного отображения в различных рейтингах совместимости эмуляторов. То есть брался тестовый ROM, прогонялся в эмуляторе, после чего его работа корректировалась не столько для корректной работы самих инструкций процессора, сколько для зелёной галочки в софте. А для этого иногда достаточно нефункциональной заглушки. Конечно, это голословные обвинения, а проверить это мог тогда только грамотный реверсер с помощью дорогущей IDA Pro. Сегодня же есть бесплатная Ghidra, но сам вопрос с 2016 года уже не актуален. Тем не менее, открытый исходный код - это неоспоримое преимущество, ведь любой разработчик может выяснить причину бага и предложить свой вариант решения.

Консоль разработчика

В это сложно поверить, но достаточно длительное время в эмуляторах не было поддержки консолей разработчиков, где было щедро распаяно целых 8мб оперативной памяти вместо жалких финальных двух. В интернете были доступны схемы припайки соместимых чипов, но вот в эмуляции все почему-то усиленно игнорировали эту возможность. Конечно, толку от этой настройки в релизных играх 0, потому что большинство игр не могут использовать дополнительную память. Но зачастую разработчики делали динамический аллокатор памяти, которому цифра 2МБ задавалась как лимит, а значит кое-где его можно поднять простым патчем. К тому же, это очень хорошо для моддинга игр на PSX, разработки хоумбрю и даже реверс-инжениринга.

Ускорение CDROM

В утке появилось много функций ускорения CDROM, которые натурально творят чудеса.

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

Второе - ускорение чтения. Это простое увеличение "частоты вращения". То есть, если стандартный сидюк был 2x, то утка позволяет из него сделать 20x. Однако тут нужно быть осторожным. Бездумное увеличение частоты может ломать логику в играх, которые полагались на конкретную скорость вращения. Игра может тупо зависнуть на слишком больших скоростях.

Третье - ускорение поиска. Это симуляция скорости движения головки CDROM, которой нужно какое-то время, чтобы прыгнуть на другую дорожку, подождать пока диск прокрутится до нужной позиции и синхронизироваться. А если игра ещё и использовала поиск по именам файлов... В общем, есть возможность мгновенного прыжка, что в некоторых играх радикально сокащает время загрузки. Яркий пример - Gran Turismo. Экраны в режиме карьеры на реальном железе могли грузится по несколько секунд на зацарапанных дисках. В эмуляторе это теперь происходит мгновенно. Однако, как и с предыдущей настройкой, не всем играм такое нравится. Есть шанс зависаний.

Четвёртое - предзагрузка образа в RAM. Простейший "хак", который заключется в том, что мы загружаем образ целиком в память и более не лезем на диск. Минус - загрузка дольше (около 5-7 секунд, в зависимости от скорости диска). Плюс - более стабильная эмуляция, ну и *меньший износ жёсткого диска, если кого-то это ещё волнует*.

Автосохранение

Сэйв-стэйтами никого сегодня не удивишь. Это в общем-то просто полный дамп памяти PSX. В своё время распространялись такие "эмуляторские демо версии", когда в игре загружался уровень и снимался сэйв стейт. Можно было гонять по треку бесконечно, пока не попытаешься выйти в меню. Утка же может делать сохранение при выходе и загружаться в него же при повторном запуске. Как будто вы и комп не выключали. Очень удобная фича.

Читы

Если в ePSXe на ранних этапах делали отдельные плагины для GameShark читов, то в утке это всё встроено в эмулятор, плюс из коробки доступны десятки, а то и сотни читов для всех игр на любой вкус. Плюс для отдельных игр можно найти патчи на 60FPS и/или корректный широкоформат без растяжения интерфейса. Но это конечно зависит от популярности игры и сложности патча.

Влияние ТАС и современная эмуляция

Официальная эмуляция старых консолей от допустим Nintendo предложила игрокам перемотку в стиле принца персии. Упали в яму и умерли? Не беда! Зажмите кнопочку и игра откатся в обратную сторону на 5 секунд, аккурат до падения. Пришла эта фича из так называемых tool assisted speedrun, то есть из попыток извлечь максимально скоростное прохождение с помощью дополнительных инструментов. Так, игрокам надоело начинать уровень заново для, как они говорят, "закрепов", поэтому появились эмуляторы с перемоткой. Собственно, в утке перемотка доступна. Причём в обе стороны. Зачем? А вот представьте, что игра грузится долго и ускорение CDROM не помогает. Что делать? Правильно, повесить перемотку на кнопку и зажимать на экранах загрузки. Это настолько меняет привычки, что на эмуляторах без перемотки играть становится больно физически.

Графический вывод

Нам доступны как софтовый вывод, так и современные D3D11, D3D12, OpenGL и даже Vulkan. Всё. Плагинов нет, других бэкэндов нет, хотя что вам ещё может понадобится?

Из минусов, идеология современных эмуляторов и в частности автора утки не позволяет использовать нецелочисленные множители. Из плюсов такого решения - вы никогда не увидите артефактов в 2D играх (а следовательно и жалоб на "плохой эмулятор" от несведущих игроков). Но вот из минусов - некоторые игры использовали супер узкие разрешения типа 512x200. простая математика показывает, чтобы покрыть экран 1920x1080 по вертикали вам понадобится множитель 6. 200 * 6 = 1200 > 1080 (множитель 5 даёт 1000 пикселей, и соответсвенно мыло при растягивании на 1080). Но вот по горизонтали оказывается, что вы теперь рендерите 512 * 6 = 3072, что на треть больше нужных 1920. Таким образом, эмуляция требует больших ресурсов чем нужно на самом деле. Для слабых видеокарт это вполне может стать ахилесовой пятой. В PAL играх иногда и вовсе приходится завышать множитель на 2 позиции, потому что там наоборот были популярны длинные разрешения типа 320x480.

Контроллеры

Из коробки поддерживается Xinput, DInput и даже SDL обёртка, плюс автоматическое сопоставление сильно упрощает жизнь, если у вас стандартный боксовый контроллер. Есть возможноть настраивать макросы без использования внешнего софта, ну и обилие хоткеев на любой вкус. Можно себе даже переключение графики на клавишу настроить.

Улучшения отрисовки

Большинство фич этого типа уже описано в статье Краткая история "улучшайзеров" отрисовки. Перечислю вкратце: фильтрация текстур, встроенный широкий экран, 24 битный цвет и киллер-фича - настраиваемый PGXP, который фиксит целочисленное дёрганье вертексов и текстур. Не везде и не всегда, конечно. Зависимость следующая. Если разработчим ипользовал чистый вывод чипа GTE, всё выглядит прекрасно. Допустим игры Test Drive выглядят просто как ПК игры тех лет. А вот если разработчики были шибко умными и начинали вводить коррекции, кривое динамическое деление полигонов и прочую лабуду, тут мы уже ошибку умножаем на ошибку и вместо фикса получаем страшные вещи типа дыр в моделях. Тут яркий пример - это серия THPS. Поскольку она вышла под конец жизни консоли, разработчики накатали сложнейший алгоритм деления полигонов чуть ли не до индивидуальных пикселей текстуры. Как итог, в этом случае PGXP больше ломает, чем чинит.

Шейдеры

Шейдеры стали супер доступными, любой может дописать эффект на своё усмотрение, стоит *всего лишь* изучить GLSL или HLSL и кинуть файл в папку shaders. В коробке поставляется шейдер crt-lottes - прекрасная реализация CRT-фильтра, которой очень долго не было ни в одном PSX эмуляторе.

Звук

Тут много не скажешь, особых изысков нет, можно настраивать задержку, если что-то трещит, крутите все ползунки пока не починится.

Достижения

Сайт retroachievements предлагает ачивки для ретро игр, как впрочем можно было догадаться по его названию. Для этого вам нужен совместимый эмулятор и утка как раз один из них. Регистрируетесь на сайте, включаете ачивки и выполняете. В общем, ничего необычного. Но имейте в виду, что при использовании ачивок отключается возможность читов.

Отладка

Если вы разработчик, утка тоже может быть полезной. Конечно, не уровня PCSX-Redux или NO$PSX, но меню Отладка содержит большое количество сугубо технических инструментов, таких как просмотр VRAM целиком, просмотр памяти и регистров CPU, подключение внешнего отладчика и прочие. Игрокам это не очень нужно, но бывает весело заглянуть под капот.

Выводы

Даже если вам кажется, что вы дошли до предела и дальше улучшать нечего, пройдут года, и новое поколение не только сделает то, что делали вы лучше, но и сумеет придумать лучшие способы реализации тех или иных вещей, в том числе тех, о которых вы не задумывались или просто отметали как невозможные. Ярким примером может служить сцена моддеров DOOM. Этой игре уже 30 лет, а сообщество продолжает её развивать, поражая вещами, на которые может быть способен такой с виду ограниченный движок. Так и сцена PSX, которая моложе дума всего-то на пару лет, продолжает жить и развиваться. То ли ещё будет.

Категория: Эмуляция | Добавил: UltraTaber (14.11.2023)
Просмотров: 43 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Категории

Эмуляция [15]
Статьи по эмуляции.
Прочие статьи [7]
Прочие статьи.
Русификация игр [1]
Статьи по русификации игр для PSX
Приставка [8]

Авторизация

Чат


Опрос

Любимый эмулятор PS1?
Всего ответов: 2

Статистика


Посетителей на сайте: 1
Гостей: 1
Пользователей: 0