Привет всем читателям!

Я продолжаю тему программного эмулятора для PlayStation 1, PlayStation 2 и PlayStation Portable — Omega Red. Более подробно:


Данную публикацию я написал в связи с включением поддержки 7z архивов для коллекций БИОСов и изменения частоты обновления картинки рендеринга эмулятора. Дополнительно, после ряда вопросов, я записал видео гид по настройке и запуску игр «с нуля».

Добро пожаловать под «кат».


Данный проект использует WPF C# фреймворк как промежуточный уровень между рендером эмулятора и графическим контекстом дисплея: рендерер прорисовывает кадр в текстуру и WPF фреймворк встраивает эту текстуру в пользовательский интерфейс программы. Именно встраивание DirectX текстуры в пользовательский интерфейс является «бутылочным горлышком» WPF графического драйвера — WPF происходит от Windows XP SP2 и имеет в основе DirectX9 layer, и встраивание DirectX9 текстуры задействует процессорное время. Как результат, загрузка процессора увеличивается что может идти в ущерб работы самого эмулятора — в аудио потоке возникают паузы в воспроизведения синтезированного результата.

Разгрузить процессор можно через установки паттерна пропуска встраивания DirectX9 текстуры. Текущую частоту обновления текстуры можно мониторить через опцию «Показать число кадров в секунду»:

image

Уменьшить загрузку процессора можно через пропуск кадров по опции «Режим пропуска кадров:»:

image

В настоящий момент программа доступна по ссылке: Omega Red и представлена на GitHub: OmegaRed.