Статья устарела. Более свежая и подробная информация здесь:
Так, я поднабрался опыта и готов, наконец оповестить вас о некоторых тонкостях работы приложений Windows на системе Android.
Данное приложение работает по принципу эмуляции компонентов эмулируемой системы, чтобы запускать приложения предназначенные для Windows. Чтоб эмулировать рендер, используется Wine, приложение для запуска приложений Windows на Linux. То есть, это не эмулятор ПК системы в чистом виде, а набор компонентов для запуска приложений.
Данный текст повествует об ExaGear от Hugo. Оригинальное приложение способно запускать только очень старые игры.
Первым делом давайте узнаем системные требования.
- Старые 2Д-игры по типу третьих героев можно запустить на любом кирпиче.
- 2Д-игры поновее уже требуют современного минимума. Ну такой телефон у вас точно должен быть, если уж вы решили открыть эту статью.
- Старые 3Д-игры уже требуют минимум графический чип Adreno 610. У меня Mali G52 MC2 и игры конца 90-х начала 00-х идут в 15 кадр/сек, что очень смешно, учитывая минимальные системные требования, однако эмуляция отбирает значительное количество ресурсов смартфона.
- Что касается 3Д-игр поновее, то я не знаю, какой у них минимум, но я точно знаю, что по мощности, начиная с Adreno 730 и мощнее, игры должны нормально работать. Даже вернее сказать, летать даже не на минимальных настройках.
Всё это так или иначе связано с особенностью карт, которые можно вставить в большой корпус. Видеокарту для ПК можно оснастить дополнительными блоками для графики, которые в телефон в таком количестве просто не влезут. Можно повысить частоты и поставить активное охлаждение, что для мобильных устройств тоже неправильно. Следствием этого является дальность прорисовки на уровне PS2, отсутствие деталей сцены и тому подобное. Мобильные игры на телефоне работают лучше чем на эмуляторе даже не из-за того, что эмуляция отбирает слишком много мощности телефона, а просто потому что видеочипу нечем работать с графикой, которую на видеокарте можно распределить по блокам, а здесь всё придётся тащить одному чипу. Это если сильно упростить. Вообще, конечно, более новые и менее бюджетные телефоны имеют возможность без проблем всё рендерить, разве что определённые подтормаживания никуда не денутся.
Конечно, некоторые скажут, что вообще-то моë устройство итак без проблем может рендерить хорошую графику. Это так, но... В дело вступают разного рода переходы от ПК-системы к мобильной системе, чтобы задействовать нужные ресурсы. В идеале, это не отбирает так много производительности, как на самом деле. Разработчики эмуляторов жалуются на эту вещь, что они не могут повысить производительность. Возьмëм эмуляторы Dolphin (Wii, GameCube) и AetherSX2 (PlayStation 2). Они имеют низкую производительность. А теперь возьмëм эмулятор PPSSPP. Он "летает". Да, из приведëнных это самая слабая консоль, но дело тут не в этом. Просто разработчики хорошо справились со своей задачей. Чтобы это проверить, достаточно просто увеличить разрешение экрана. Графика станет многим более требовательна, чем того может изобразить "Соня вторая". И различие в производительности намного более весомо, чем то, что архитектура консоли более походит на то, что в телефоне.
Всем этим я хочу сказать, что у эмулятора есть потенциал, но его полностью закрывает то, что ExaGear банально недоделан.
Ну и приложения только 32-бит.
Чё там по настройкам? Есть значит три сту... то есть три рендерера, которые идут от самого быстрого к самому медленному:
- Turnip+Zink. Самый быстрый рендерер пойдёт далеко не у всех. У меня стоит графический чип от Mali и на нём игры не запускаются.
- VirGL. Самый сложный рендерер. При запуске есть куча галочек. Какие-то лучше не выключать, какие-то можно и нужно выключить, а какие-то не работают у всех. После настроек нужно два раза нажать на старт ну чтоб наверняка. Так... Допустим вы установили игру и не можете её запустить на этом рендерере. Перезапустите его, если игра запустилась, то поздравляю! Вы поймали баг рестартом, который заставит вас каждый раз перезапускать рендерер! Та галочка, что называется рестартом, почему-то не работает, что очень мешает.
- llvmpipе. Самый верный рендерер. Если у вас не работает T+Z, или VirGL затупил и не хочет делать авто-рестарт, то этот рендерер является идеальным для ответа на вопрос: "А запустится ли эта игра вообще?" Да и других багов, что есть на VirGL, потому что вы его как-то не так запустили, у программного рендерера нет.
Остальное - мелочи, разговор о которых будет сложным и скучным, но порой полезным. Давайте я просто дам парочку советов, и вы сами решите, что трогать.
- Найдите страницу на 4PDA по ExaGear и международный вики ExaGear. Там есть множество инструкций исправлений и чего только нет. Ну и справку в самом приложении тоже можно прочитать.
- MultiThread и DXTn. Если вы пользуетесь VirGL, то есть смысл отключить эти галочки, возможно это повысит производительность.
Так, ну вроде бы всё... Надеюсь, не ошибся.