Я продолжаю тему программного эмулятора для 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