May 30, 2022

Игровая классика в кармане

Lemuroid (Превосходная производительность)

  • PlayStation Portable (PSP)
  • PlayStation (PSX)
  • Atari 2600 / 7800 / Lynx (A27, A78, Lynx)
  • Nintendo / Super / 64 / DS / 3DS (NES, SNES, N64, NDS, 3DS)
  • Game Boy / Color / Advanced (GB, GBC, GBA)
  • Sega Genesis / CD / Master System / Game Gear (Megadrive, Mega CD, SMS, GG)
  • FinalBurn Neo (Arcade)
  • NEC PC Engine (NPC)
  • Neo Geo Pocket / Color (NGP, NGC)
  • WonderSwan / Color (WS, WSC)

Dolphin Emulator (Хорошая производительность)

  • GameCube (GCB)
  • Wii

AetherSX2 (Средняя производительность)

  • PlayStation 2 (PS2)

Производительность

Протестировав некоторые игры на разных эмуляторах, составил таблицу впечатлений. Тестировал с установкой пользовательских настроек в каждом из эмуляторов для максимальной производительности. Почти всегда FPS не стабилен и будет прыгать от сцены к сцене. Для лучшего понимания, в последнем столбце указал общее впечатление, которое учитывает среднюю плавность картинки при приемлемых настройках графики.

Тесты проводил на устройстве Redmi K20 Pro / Mi 9T Pro со включенным режимом Xiaomi Game Turbo. Смартфон 2019 года, Snapdragon 855.

| Эмулятор  | Консоль | Игра                        | FPS   | Ощущение |
|-----------|---------|-----------------------------|-------|----------|
| Dolphin   | GCB     | NFS Underground 2           | 15-45 | Хорошее  |

Любая эмуляция требует значительных накладных расходов. Если у вас не Hi-End устройство, получить опыт игры на оригинальной консоли не выйдет. Придётся срезать нагрузку на устройство в ущерб графике.

Узкое место эмуляторов - процессор. Обычно приходится рассчитывать на 40 FPS с просадками до 15 кадров в пике. Графическое ядро не получает полной загрузки никогда. Потребляется не более 2Гб памяти. В среднем, одна игра для "взрослой" приставки весит от 800Мб до 3Гб.

Упор в процессор связан с тем, что старые игры используют лишь одно ядро процессора, чья частота на мобильных устройствах низка. Эмуляторы пытаются частично решить эту проблему, но всё же не в состоянии использовать более 2 ядер из-за ограничений самих игр.

Настройки для каждого эмулятора, при которых удалось добиться максимальной производительности:

Lemuroid

Dolphin Emulator

  1. Config > General >
    1. Dual Core: TRUE
  2. Config > Advanced >
    1. Emulated CPU Clock Speed: 75%
    2. Synchronize GPU Thread: Never
  3. Config > Graphics Settings >
    1. Video Backend: Vulkan
    2. Shader Compilation Mode: Skip Drawing
    3. Compile Shaders Before Starting: TRUE
  4. Config > Graphics Settings > Enhancements >
    1. Full-scene Anti-aliasing: Off
    2. Disable Copy Filter: TRUE
  5. Config > Graphics Settings > Hacks >
    1. Skip EFB Access from CPU: TRUE
    2. Ignore Format Changes: TRUE
    3. Disable Bounding Box: TRUE
  6. Config > Graphics Settings > Advanced >
    1. Backend Multithreading: TRUE
    2. Defer EFB Cache Invalidation: TRUE

AetherSX2