Разработчик Уилл Фауст показал работу ПК-версии Red Dead Redemption 2 на iPhone 18 Pro. Игра запускается локально на смартфоне благодаря экспериментальному проекту Madeira и в последних сборках выдает производительность, близкую к 30 кадрам в секунду при разрешении около 720p. Важно, что вычисления выполняются не через облачный сервис и не с удаленного компьютера. Вся эмуляция происходит непосредственно на iPhone.
Ранее по теме: Продажи серии iPhone 18 Pro превысили прошлогодние результаты.
Технологии эмуляции
Madeira объединяет несколько технологий, позволяющих запускать игры для Windows на iOS без джейлбрейка. Проект использует порт Wine для совместимости с Windows, FEX-Emu для перевода инструкций x86-64 в ARM64 и DXMT, который преобразует графические команды Direct3D 11 в Metal.
Первые попытки запустить RDR 2 сопровождались низкой частотой кадров и многочисленными графическими артефактами. После серии оптимизаций разработчику удалось заметно повысить производительность, хотя до полностью стабильного игрового процесса проекту еще далеко. Предстоит улучшить графику, скорость работы и управление на сенсорном экране.
Ранее по теме: Складка на экране iPhone Duo может стать заметнее со временем.
Оптимизация памяти и другие игры
Одной из ключевых проблем стала оперативная память. В Madeira появился механизм, напоминающий файл подкачки: часть данных временно переносится из ОЗУ во встроенную память смартфона. Благодаря этому потребление памяти удалось удержать примерно на уровне 7,6 ГБ, что потенциально позволяет запускать игру даже на iPhone с 8 ГБ оперативной памяти.
Разработчики также протестировали другие компьютерные игры: Grand Theft Auto V, Fallout 4, а также 32-битные Dead Space, Mirror’s Edge и Far Cry 3. Более легкие проекты, такие как Thumper и Ultrakill, также работают через Madeira.
Пока проект остается экспериментальным. Его нельзя установить из App Store, поскольку для высокой производительности требуется JIT-компиляция, использование которой Apple ограничивает. Поэтому Madeira приходится устанавливать вручную и отдельно активировать поддержку JIT.

