Привет читатели.
В прошлом году я опубликовал свой хобби-проект. Эмулятор Red Omega PS2 .
Идея заключалась в том, чтобы адаптировать управление оригинального эмулятора PCSX2 для игр на Surface Pro через сенсорный экран.
Исходный код эмулятора PCSX2 был переписан как модуль DLL, загруженный в код C# с графическим интерфейсом WPF. Проект оказался работоспособным и успешным — Final Fantasy X и Final Fantasy XII прошли на ура.
Но полгода назад я наткнулся на ссылку на Valkyria Chronicles 4 в Steam. Я купил первую Valkyria Chronicles на диске и она у меня заработала, но у меня вопрос - где вторая и третья!?! Ответ был найден быстро — эти сиквелы выпускались только на игровых консолях.
Самая доступная версия оказалась для PlayStation Portable — через эмулятор PPSSPP. На смартфоне неплохо, но на Surface Pro мне не понравилось сенсорное управление.
И нет никакого желания переходить с Омеги Ред на ППССПП и обратно.
И тут возникла «сумасшедшая» идея — переписать исходный код PPSSPP в виде DLL-модуля!!! И превратите Omega Red в ПЛАТФОРМУ для игр PlayStation 2 и PlayStation Portable!!! Легко сказать, но гораздо труднее сделать.
Исходный эмулятор PPSSPP разрабатывается как проект с открытым исходным кодом и доступен в виде полного кода для изучения и модификации.
Код интересен и может быть запущен на различных графических API: OpenGL, DirectX9, DirectX11, Vulkan. Кроме того, он имеет встроенный графический интерфейс.
Но архитектура PPSSPP более «понятна», чем у PCSX2 — больше модульности и упрощены зависимости.
Главным ключом к реализации моей идеи стала возможность загрузить диск с игрой и сохранить его в виде аргумента программе.
Простое решение — переписать функцию ввода EXE в функцию EXPORTED DLL. Конечно, будут проблемы с созданием второго "окна", перенаправлением вывода графического рендерера в графический контекст WPF, подключением Touch кода и т.д. и т.п.
, но все это я уже решил, когда переписывал код для PCSX2. - уже есть работоспособные шаблоны.
Какой результат - решение работает! Нам удалось объединить два совершенно разных эмулятора в одно решение с плавным переключением между играми для разных эмуляторов.
Результат можно увидеть на видео: Кроме того, хотелось бы отметить следующие изменения по сравнению с первым релизом Эмулятор Red Omega PS2 : 1. Изменена цветовая схема - в комментариях указано на неудобство цветовой схемы интерфейса - красная.
Странное неудобство — но я решил добавить инвертированную «Синюю» гамму:
2. Тесселяция - для игр на PCSX2 добавлена функция "Тесселяция" из DirectX 11 - эта функция позволяет увеличить количество полигонов у моделей:
Тесселяция выбирается из опции «Схема рендеринга»:
ПО УМОЛЧАНИЮ
ТЕССЕЛЯЦИЯ
ПО УМОЛЧАНИЮ
ТЕССЕЛЯЦИЯ
3. FXAA - для игр на PCSX2 добавлена функция "Включить FXAA" для удаления "Ступеней" по границам полигонов - решение работает не идеально, но работает:
4. Быстрое сохранение – сохранение состояния эмулятора одной командой:
5.Регулятор громкости:
На данный момент программа доступна по следующей ссылке: Омега Красный и представлен на GitHub: ОмегаКрасный
Теги: #Игры и игровые приставки #эмулятор #psp #PS2
-
Два Монитора Лучше, Чем Один?
19 Oct, 24 -
Вход В Программу Ros
19 Oct, 24 -
Ума Cms: Разработка
19 Oct, 24 -
Архив Яндекс.фото
19 Oct, 24 -
Фриланс - Практика
19 Oct, 24