Я продолжаю тему программного эмулятора для PlayStation 1, PlayStation 2 и PlayStation Portable — Omega Red. Более подробно:
- Поддержка геймпада для эмулятора Omega Red
- Новый PS1 графический рендерер для эмулятора Omega Red
- Omega Red + PS1 эмулятор = Кодзима гений
- PS2/PSP эмулятор + game play streaming (YouTube, Facebook, Twitch) = новая версия Omega Red
- PS2/PSP эмулятор + Google Drive + YouTube = «безумие» продолжается
- Как я подружил PlayStation 2 и PlayStation Portable (спойлер — объединил в один эмулятор)
- Красный Омега PS2 эмулятор
Данную публикацию я написал в связи с включением поддержки 7z архивов для коллекций БИОСов и изменения частоты обновления картинки рендеринга эмулятора. Дополнительно, после ряда вопросов, я записал видео гид по настройке и запуску игр «с нуля».
Добро пожаловать под «кат».
Данный проект использует WPF C# фреймворк как промежуточный уровень между рендером эмулятора и графическим контекстом дисплея: рендерер прорисовывает кадр в текстуру и WPF фреймворк встраивает эту текстуру в пользовательский интерфейс программы. Именно встраивание DirectX текстуры в пользовательский интерфейс является «бутылочным горлышком» WPF графического драйвера — WPF происходит от Windows XP SP2 и имеет в основе DirectX9 layer, и встраивание DirectX9 текстуры задействует процессорное время. Как результат, загрузка процессора увеличивается что может идти в ущерб работы самого эмулятора — в аудио потоке возникают паузы в воспроизведения синтезированного результата.
Разгрузить процессор можно через установки паттерна пропуска встраивания DirectX9 текстуры. Текущую частоту обновления текстуры можно мониторить через опцию «Показать число кадров в секунду»:
Уменьшить загрузку процессора можно через пропуск кадров по опции «Режим пропуска кадров:»:
В настоящий момент программа доступна по ссылке: Omega Red и представлена на GitHub: OmegaRed.
Поддержать проект и задать вопросы можно по ссылкам:
www.facebook.com/Omega-Red-269237843996260