Как выбрать биос для эмулятора ps2 на андроид
Я продолжаю публикацию по своему проекту портирования кода PCSX2 эмулятора PS2 на Android платформу.
Поспешу предупредить, что скачать и запустить не получиться — проект только на начальной стадии развития. Однако, для тех читателей, кто не лишён профессионального любопытства — добро пожаловать под кат. Что найдёт любопытствующий:
компилируемый код для AARM64 - да, ядро PCSX2 эмулятора компилируется в нативный ARM код;
исполняемое приложение для загрузки файлов БИСОа и образа игровых дисков;
Что же, прогресс портирования зашёл достаточно далеко и получилось скомпилировать исполняемый нативный С++ код на AARM64. Средой разработки является Android Studio и при портировании кода с x86 на AARM64 я столкнулся с очевидной проблемой - различный набор инструкций процессоров. Многие удивятся - что за чушь, пиши на С++ и компилятор сам всё сделает. И здесь заключается сама суть проблемы портирования, с которой я столкнулся: PCSX2 создаёт исполняемый двоичный код процессора "на лету". Да, в коде эмулятора есть класс x86Emitter для записи в массив байтов байтовый код x86 процессора.
Так что же получилось?
Java frontend код для загрузки БИОСа и файлового образа игр. Пользовательский интерфейс прост и включает следующие окна:
Идея следующая - первоначально требуется выбрать файл БИОСа и файл образа диска для начала отладки кода. Полные пути к выбранным файлам сохраняются как параметры программы:
И после первоначального выбора, следующий запуск приложения будет автоматически запускать ядро эмулятора с ранее заданными БИОСом и образом диска.
Портирование компилятора кода эмулятора с x86 на AARM64 представляет серьёзную проблему. Архитектура Интелл относиться к CISC с переменной длинной кода и смешанной последовательностью данных и кода, в то время как AARM64 относиться RISC с фиксированной длинной кода в 32 бита. Но проблема в том, что на синтаксисе Интелловской архитектуре завязаны десятки и десятки файлов и сотни тысяч строк кода. Не говоря о том, что возникнет проблема в совместимости кода с оригинальным PCSX2 эмулятором. Что же, решение очевидное - написать оболочку x86 синтаксиса в исполнении AARM64 кода. Да, в моём проекте нет ничего оригинального - просто попытка эмуляции х86 кода через AARM64 код.
Конечно, я не ставлю целью закрыть всё множество х86 кодов - я поставил целью закрыть коды только используемых PCSX2 эмулятором. С этой целью в добавлен вызов нативного кода в момент создания приложения- PCSX2LibNative.getInstance().CPU_test()
Что делает данная функция? Генерирует AARM64 исполняемый бинарный код для множества x86 кодов и проверяет результат исполнения с значением, известным из спецификации Интелл. Пример теста AARM64 кода для SUB комманды x86:
Да, таких тестов исполнения эмуляции х86 кода в проекте множество - это и есть процесс разработки: исследование х86 команды и написание теста эмуляции на AARM64.
При исследовании работы PCSX2 эмулятора я обратил внимание код компиляции исполнения команд процессор PS2 - R3000A:
Где psxRegs.pc - переменная для хранения значения счётчика команд процессора R3000A, psxRecLUT - указатель на массив указателей на скомпилированные R3000A команды. Схема работы кода имеет следующий вид:
И тут меня "ударило".
Область памяти, указанная как исполняемая, включает в себя буквально несколько байт кода, но сгенерированная эмуляция команд R3000A сохраняется в обычной области данных и исполняется от туда! А контроль права исполнения операционной системы и процессора куда смотрит?
Для любителей повозиться с кодом - проект для среды разработки Android Studio доступен на GitHub: AndroidStudio
Игровая консоль PlayStation 2 в свое время была довольно популярна среди геймеров, и для нее было выпущено множество уникальных игр. На сегодняшний день поиграть в подобные издания можно, даже не приобретая соответствующую приставку, воспользовавшись одним из эмуляторов. Лучшие и оптимизированные варианты будут нами рассмотрены в рамках данной статьи.
Эмуляторы PS2 на Android
На сегодняшний день было выпущено большое количество эмуляторов различных платформ для Андроид, однако в отличие от более старых консолей, для PlayStation 2 каждая программа ограничена исключительно данной консолью. Бывают исключения, но все же не стоит требовать слишком много от софта подобного вида. Ко всему прочему, не стоит забывать о системных требованиях отдельных вариантов, несоблюдение которых будет приводить к вылетам и попросту к низкой производительности.
Начать нужно, безусловно, с одного из идеальных вариантов среди существующих, а именно приложения Play!. Интерфейс приложения выполнен в сравнительно упрощенном стиле, но может быть с легкостью изменен через внутренние параметры. При этом официально данный эмулятор не поддерживает русский язык, что может стать, хоть и незначительной, но все же проблемой.
С помощью настроек, как было сказано, можно изменить незначительные элементы вроде цветового оформления. Кроме этого, здесь присутствуют параметры, напрямую влияющие на работу эмулятора. Именно от настроек зависит отображение виртуального контроллера и качество графики.
Через Play! на выбор можно открывать игры, заранее загруженные в папку во внутренней или внешней памяти Android-устройства. Поддержка форматов ограничена привычными стандартами типа ISO и BIN-образов. Сами игры автоматически переворачивают экран, обеспечивая удобное положение, и без труда открываются на телефонах с поддержкой технологии OpenGL ES 3.x вне зависимости от версии ОС.
К большому сожалению, приложение нельзя загрузить из Плей Маркета и придется воспользоваться официальным сайтом или страницей на 4PDA. Однако в обоих случаях вы сможете не только загрузить установочный файл программы, но и получите ряд инструкций, а также ссылки для добавления совместимых игр.
DamonPS2
Еще одним потрясающим приложением для запуска игр под PlayStation 2 выступает DamonPS2, требуя для запуска файлы в формате ISO. С помощью внутренних настроек программы можно контролировать некоторые функции эмулятора, в том числе и поиск директории с играми.
Управление при эмуляции игр выполнено в классическом для подобного ПО стиле и состоит из множества кнопок, свойственных любому геймпаду для PS2. Разработчиком гарантируется запуск лишь некоторого процента всех вышедших игр, однако на деле поддержка охватывает значительно большее количество.
В отличие от предыдущего варианта, DamonPS2 имеет более высокие требования к смартфону, например, нужна не только поддержка OpenGL ES 3.x, но также операционная система версии 5.1 и выше. Если получится избежать проблем с характеристиками устройства, в результате данный эмулятор проявит себя намного лучше любого выпущенного в настоящее время аналога, включая Play!.
PTWOE PS2e
Эмулятор PTWOE PS2e предоставляет приятный интерфейс главного меню, изначально открываемого в горизонтальном режиме. С его помощью можно запускать многие игры, разработанные под PlayStation 2 и упакованные в образ с подходящим форматом.
Golder PS2
Приложение является своего рода альтернативой первому представленному эмулятору Play! как в плане предоставляемого интерфейса и настроек, так и при запуске игр. Отличный вариант на случай, если у вас не получается запустить игру через ранее упомянутые приложения. При этом рассматривать Golder PS2 как самостоятельное ПО и надежный вариант не стоит.
Загрузить приложение можно только самостоятельно отыскав его на просторах интернета, так как в Плей Маркете и на форуме 4PDA любые упоминания отсутствуют. Наверняка можно сказать только об отсутствии рекламы и безопасности программы для Android-устройства.
Заключение
Мы постарались рассмотреть наиболее актуальные эмуляторы PS2, доступные бесплатно, однако также существуют и платные аналоги вроде PPSS22. По принципу работы подобные программы не отличаются и во многом даже уступают представленным приложениям, но некоторого внимания все же достойны. Так или иначе на этом данная статья подходит к завершению.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Как известно, PCSX2 – эмулятор, позволяющий запускать игры для Sony PlayStation 2 на компьютере. Однако перед использованием эмулятор нуждается в настройке.
PCSX2 – очень гибкий эмулятор со множеством вариантов настроек. Фактически, каждая игра нуждается в определенном к себе подходе и подбору уникальных настроек. Совместимость различных игр с эмулятором тоже разная. Некоторые игры идут очень хорошо, некоторые пока совершенно недоступны для игры. В этой статье будет приведен вариант настройки PCSX2, который подойдет для нормальной работы большинства игр от Sony PlayStation 2.
Установка эмулятора PCSX2
2. Распаковываем эмулятор.
Примечание. Для этого действия вам потребуется архиватор. Если у вас на компьютере не установлена архивирующая программа, то предварительно скачайте и установите один из бесплатных архиваторов (например, 7-zip).
3. Папку Pcsx2-r**** (где **** - номер версии релиза) следует разместить в каталоге, ВАЖНО! не содержащем символов кириллицы.
То есть путь к папке, где будет размещаться эмулятор, может выглядеть так:
Пример правильного размещения: C:/PCSX2 или D:/PCSX2
Пример неправильного размещения: C:/эмулятор
Я поступлю следующим образом. В корне локального диска D создаю папку PCSX2 , в нее перемещаю папку Pcsx2-r**** . Также в папке PCSX2 создам папку Games , где буду размещать образы игр для Sony PlayStation 2. Файлы образов тоже лучше хранить в папках, названия которых не содержат русских букв.
Кроме того для работы эмулятора необходимо, чтобы в системе были установлены следующие компоненты:
Первый запуск и настройка
Открываем папку Pcsx2-r**** и запускаем файл pcsx2 .
В выпадающем списке языков выбираем Russian и нажимаем Применить . Затем нажимаем Далее .
Ожидаем, пока будут загружены плагины, затем откроется меню выбора плагинов.
Пожалуйста, убедитесь, что все строки заполнены, как на рисунке. Внимание! Цифры версий плагинов могут быть другими в зависимости от версии релиза эмулятора. Главное, чтобы совпадали названия плагинов. Плагин CDVD выбираем Linuz Iso CDVD – для того, чтобы запускать игры из образов. Нажимаем Далее .
В следующем окне нужно выбрать BIOS. Рекомендуется использовать биос Japan v01.00 . Выбираем его и нажимаем Завершить .
Наконец, перед нами открывается главное окно эмулятора и окно PCSX2 Program Log . Последнее можно закрыть, оно нам сейчас не понадобиться. Осталось рассказать вам о еще некоторых настройках.
Нажимаем Настройка – Настройка эмуляции .
В первых трех вкладках оставим значения по умолчанию. На вкладке GS-окно (видео) можно произвести настройки для игрового экрана. Выставите удобное вам разрешение. Можно задать автоматическое открытие игрового окна на полный экран, скрытие курсора мыши и т.д. Я выставлю разрешение 1024*768.
Переходим на вкладку Спидхаки . Благодаря спидхакам можно ускорить эмуляцию игры. Если у вашего компьютера достаточно мощный центральный процессор, можете вообще снять галочку Включить спидхаки . Все и так будет комфортно работать.
Если ваш компьютер недостаточно мощный, оставляйте галку. В случае, если игры тормозят, можете установить значения ползунков EE Cyclerate и VU Cycle Stealing в крайнее правое положение. Это максимально увеличит скорость работы, однако могут появиться некоторые глюки со звуком и другие баги. В этом случае следует подбирать значения ползунков так, чтобы глюки исчезли.
Для выхода и сохранения настроек нажимаем ОК .
Перейдем к настройкам видео. Переходим в меню Настройка – Видео (GS) – Настройки плагина .
Открывается окно настроек видео. Здесь выставляем следующие значения:
Renderer: Direct3D9 (Hardware) - для операционной системы Windows XP
Direct3D10 (Hardware) - для операционных систем Windows 7 / Vista
Direct3D11 (Hardware) - для операционных систем Windows 8
Interlacing (F5): Blend bff (slight blur, 1/2 fps)
Original PS2 resolution: снимаем галочку Native
Custom resolution: выставляем значения 1260 – 1260
Примечание. Установка галочки Enable HW Hacks активирует настройки, указанные в Configure… . Установка различных значений в окне, открывающемся по кнопке Configure… может помочь избавиться от графических багов и глюков в играх. Но здесь к каждой игре требуется индивидуальный подход.
Для сохранения настроек нажимаем ОК .
Осталось указать настройки для запуска образов игр. Будем использовать плагин.
Нажимаем CDVD и устанавливаем Использовать плагин .
Настройка управления на клавиатуре
Для настройки клавиш управления заходим в меню Настройка – Джойстики (PAD) – Настройки плагина…
В открывшемся окне переходим на вкладку Pad 1 . Здесь выставляем значения клавиш на клавиатуре, которые будут соответствовать кнопкам джойстика приставки. (Кстати, при желании можно приобрести реальный джойстик, который подключается к компьютеру по USB). На вкладке Pad2 можно настроить кнопки для второго пользователя.
Чтобы назначить клавишу для крестика, нажимаем мышкой кнопку Cross , затем на клавиатуре нужную клавишу. Запись соответствия появиться в левой колонке. Аналогично и с другими кнопками.
Cross – крест, Square – квадрат, Triangle – треугольник, Circle – круг.
D-Pad – стрелочки, Left и Right Analog Stick - соответственно левый и правый аналоговые.
На рисунке мой пример настроек. Для сохранения значений нажимаем Применить , затем ОК .
Как настроить джойстик (gamepad) на эмуляторе PCSX2
Подключаем джойстик к компьютеру.
Внимание! Чтобы джойстик работал в эмуляторе, сначала нужно убедиться, что джойстик подключен и определяется операционной системой.
Для эмулятора PCSX2 с большей вероятностью подойдут проводные универсальные джойстики, имеющие выход usb.
Как только джойстик определен компьютером, можно переходить к настройке эмулятора. Как и в случае настройки управления с клавиатурой, переходим в PCSX2 в меню Настройки – Джойстики (PAD) – Настройки плагина…
Внимание! В окне настроек убедитесь, что эмулятор видит устройство геймпада, как указано на рисунке.
Теперь переходим на вкладку Pad1 и выставляем значения: кликаем на кнопку с обозначением в окне настроек и нажимаем соответствующую клавишу на джойстике.
Для сохранения изменений нажимаем Применить и ОК .
Примечание. Не все модели джойстиков поддерживают полный набор кнопок в настройках плагина.
Аналоговые джойстики могут не работать. То есть, при их назначении будут затираться другие кнопки. В таком случае не следует назначать кнопки на аналоговые стики. Впрочем, в большинстве игр на PS2 аналоговые джойстики как отдельные элементы управления не использовались.
Запуск игры
Для запуска игры нажимаем Запуск – Запустить CD/DVD (быстро) .
Выбираем образ игры, перейдя в папку, где вы расположили свои образы. У меня это D:/PCSX2/Games
Иногда игры на Android сильно надоедают, и именно для таких случаев энтузиасты разрабатывают специальные эмуляторы, которые могут запустить эксклюзивы одной платформы на другом устройстве. Один из таких энтузиастов отвечает за разработку эмулятора консоли Sony PlayStation 2 под названием Play! В этой статье будет разобрано по косточкам, как запустить эксклюзивы консоли и не облажаться.
Содержание
Подготовка к первому запуску Play!
Итак, перед тем как устанавливать приложение Play!, нужно убедиться, что смартфон будет соответствовать минимальным системным требованиям, а они таковы:
- Поколение архитектуры процессора не ниже ARMv7;
- Видеоускоритель с поддержкой OpenGL ES 3.X;
- ОС Android 4.4+.
Если что-то не понятно, то тогда нужно
установить AIDA64. Приложение предоставит всю информацию о смартфоне владельца.
Немного об эмуляторе
Play! в данное время находится на ранней стадии развития, но основные функции вроде сенсорного управления уже давно реализованы. Эмулятор поддерживает ISO, CSO, ISZ, BIN форматы образов, что несомненно большой плюс. Разработчик Play!, также ответил на многие просьбы добавления поддержки OpenGL ES 2.0. Все обусловлено тем, что нет смысла добавлять поддержку старых текстурных библиотек, так как, старые видеоускорители очень слабы в отношении своих современников. Если и в будущем появится поддержка OpenGL ES 2.0 в эмуляторе, то рассчитывайте только на слайд-шоу.
Запуск игр
Никто не знает, как будет вести себя игра на устройствах. Она может не запуститься, работать плавно или же выводить текстурные шумы. Все зависит от удачи и самого устройства. Рекомендуется иметь при себе достаточно мощный смартфон, так как оптимизацию в эмулятор ещё не подвезли.
Любой образ игры от PS2 должен находится в корне SD Card. Play! сам найдет его и предложит запустить или можно самому поискать через пункт «Settings». Если запуск игры прошел успешно, и она сильно лагает (что вполне вероятно), стоит провести некоторые способы борьбы по увеличению FPS.
- Очистка ОЗУ обычно помогает на 10-15%, но это уже хоть какой-то плюс;
- Если есть в настройках пункт «режим питания», следует поставить на производительный режим, чтобы использовать все возможности смартфона;
- Можно установить программу GLTools (требует root-прав) и поставить на Play! нужные настройки. Значительно поможет отключить принудительно сглаживание и уменьшение разрешения.
Если в игре появились глюки изображения, тут опять понадобится GLTools. Шанс, что глюки уйдут очень мал, но попробовать всё-таки стоит. Нужно зайти в настройки Play! через GLTools и поставить галочки на программной обработке VBO (иногда помогает при появлении черных текстур), игнорировании SIGTRAP (решает проблему вечной загрузки), а также на видеоускорителях Adreno помогает включение Half-float костыля (уменьшает количество пиксельных текстур).
Тестирование игр
Тестирование без GLTools и графических проблем прошли Half-Life (3-20 FPS на Samsung Galaxy A3 2016), Gran Turismo 3 (1-15 FPS на Zuk Z2), Final Fantasy X (2-10 FPS на Xiaomi Mi Pad) и Plasma Tunnel (5-10 FPS на Meizu M5).
На разных форумах другие люди делятся результатами запуска разных игр. Ниже будет приведен примерный список работоспособных игр, которые идут без проблем, разве что, с фризами:
- Crash Bandicoot: The Wrath of Cortex
- Deus Ex: The Conspiracy
- Dynasty Warriors 4
- Final Fantasy X
- Final Fantasy XII
- Front Mission 5 — Scars of the War
- Gregory Horror Show
- Incredible Hulk: Ultimate Destruction
- Need for Speed — Underground 2
- Prince of Persia — The Sands of Time
- Capcom Fighting Evolution
- Mario 5
- Super Mario Sunshine
- Resident Evil 4
- Gradius V
- Quake
- Romancing Saga
- Dragon Quest 8
- Gran Turismo 4
- Ultimate Spider-Man
- Почти все 2D игры
Рекомендуем в комментариях писать как работает та или иная игра и как помогла эта статья. Проблемы связанные с эмулятором будут отправлены разработчику для их устранения.
Читайте также: