Привет всем любителям ретро игр (игры для Play Station 2 вполне подпадают под эту категорию). Я представляю на вашу оценку свой проект клона PCSX2 эмулятора — "Красный Омега". Коротко о проекте — это клон PCSX2 для Windows 10 с упрощённым интерфейсом, минимальным порогом вхождения и реализацией управления через "Touch" пользовательский интерфейс.
Предупреждаю, что качество картинки — "вырви глаз". Плевать в экран безполезно. Пробывал — не помогает :)
Я полагаю, что читатель, заглянувший под "кат", хотел бы знать подробности. но в пределах разумного.
Что-же, начнём с простого — пользовательского интерфейса.
Оригинальный проект PCSX2 имеет сложный интерфейс (на мой взгляд). Да, он удобен в процессе отладки патчей для игр — но непрофессионального пользователя огромное количество ненужного функционала вводит в ступор. В моём проекте, я поставил целью создать простой, интуитивно понятный интерфейс. Как результат — удалён весь функционал отладки и конфигурация эмулятора установлена в коде для поддержки большинства игр.
Следующим изменением интерфейса является переход под "Touch" дизайн — "скупой" интерфейс в стиле Win95:
заменён на "плиточный" (по большей части), что позволяет взаимодействовать с программой как "указателем мыши", так и касанием сенсорного экрана дисплея:
Обращаю внимание — это НЕ Windows Store приложение. Однако, имитация очень близка.
Как результат, включена поддержка управления в играх через "Touch Screen". Поверх изображения добавлены полу-прозрачные элементы управления игровым контроллером. Но при-этом, от него можно отказаться, переключившись на физический "Game Pad"
Следующий момент — управление или точнее менеджмент ресурсами
Отдельным моментом является удобность в управлении файловами образами игр, BIOS'ами, картами памяти и сохранениями. Оригинальный проект PCSX2 представляет ограниченные возможности по управлению образами игр и их загрузками. Для улучшения данного функционала, загрузкам BIOS'ов, образов игр и их сохранений уделена почти треть пространства пользовательского интерфейса.
BIOS'ы загружаются как из отдельных файлов, так и из zip архивов. Исчерпывающая информация представлена в визуально-текстовой форме:
Образы игр загружаются из ISO файлов и проверяются на совместимость — если ранее файловый образ игры проверялся ВО ВРЕМЯ запуска эмулятора, то данный проект проверяет тип образа, его корректное имя и играбельность отдельно от процесса запуска игры:
Управление сохранениями координально изменено. Оригинальный проект PCSX2 имеет ограничение в 10-ть файлов-слотов на одну игру, без возможности определения даты и прогресса сохранений:
Данный проект позволяет создавать до 100 файлов сохранений на одну игру во время игрового процесса. Каждый файл сохранения идентифицируется датой записи, длительностью сохранённой игровой сессии, захваченным изображением с экрана:
Кроме созданных сохранений, при остановке игры, или закрытии программы текущее состояние эмулятора сохранается в файл "Автосохранение" — это позволяет при следующем запуске данного эмулятора продолжить игру, даже если предыдущее состояние игры было по ошибке не сохранено. В дополнении, уменьшено время загрузки данных из сохранений — оригинальный проект PCSX2 требует загрузки BIOS'а, образа игры и затем требуется выбрать файл сохранения — время загрузки может составить до 30 секунд. Данный проект сокращает время загрузки сохранения до 3-5 секунд.
Картами памяти в данном проекте можно управлять более "гибким" образом:
Карты памяти можно создавать во время работы эмулятора и переключать с одной карты памяти на другую для загрузки или сохранения данных в играх во время игрового процесса. Имена созданных файлов карт памяти генерируются на основе имени игры и уникального идентификационного номера диска — для каждой текущей игры доступны только "свои" карты памяти.
Игровой контроллер
Данный проект позволяет переключать тип управления в играх с сенсорного на физический игровой контроллер:
Захват
Функции захвата изображений и видео реализованы в оригинальном проекте PCSX2 в ограниченном виде и без внимательного изучения пользовательского интерфейса можно упустить данную функциональность. В данном проекте я переписал решение для захвата изображения игрового процесса с использованием нового SDK и расположил необходимые кнопки управления поверх игрового изображения:
Качество сжатия отдельных изображений находится на фиксированном уровне. Качество записи "живого" видео игрового процесса может быть настроенно в диапазоне от 10% до 99%. Имена созданных файлов генерируются на основе имени игры и значения текущего времени. Видео и аудио игрового процесса записываются в форматах, совместимых с mp4 файлами. Отдельная панель управления позволяет просматривать изображения и видео во время паузы:
Общие настройки
Кроме управления игровым процессом, имеется панель общих настроек: "Режим отображения", "Режим управления", "Установить окно поверх всех", "Качество сжатия видео", "Отключить широкоформатный режим", "Текущий перевод". "Режим отображения" позволяет переключать область прорисовки игры из полноэкранного в "оконный"
"Режим управления" позволяет переключать схему управления от кнопочного в сенсорный
Остальные настройки просты в понимании.
Заключение
Данный проект прошёл большой путь от исходной версии PCSX2 эмулятора, но всё еще не вышел из статуса тестовой версии. Исходный код опубликован на GitHub: OmegaRed и CodeProject: Omega Red PS2 emulator.
Автор: Евгений Перегуда