В пиратской копии Super Mario 3D All-Stars найдены эмуляторы Wii, GameCube и N64
Сборник экшен-платформеров Super Mario 3D All-Stars уже утёк в Сеть до официального релиза. Один из пользователей разобрал издание по кусочкам и обнаружил интересные вещи: все три игры эмулируются и используют API Vulkan.
Как рассказал @OatmealDome в Twitter, Super Mario Galaxy и Super Mario Sunshine запускаются на Nintendo Switch с помощью некоего эмулятора Wii и GameCube под названием hagi — вероятно, сделанного Nintendo of Europe Division (NERD). В то же время Super Mario 64 работает на неизвестном эмуляторе Nintendo 64. Оба эмулятора используют API Vulkan, что странно, поскольку в Nintendo Switch центральный процессор — NVIDIA Tegra X1 (Vulkan построен на технологиях AMD).
Интересно, что Nintendo перекомпилировала оригинальный код Super Mario Galaxy так, чтобы ЦП Nintendo Switch исполнял его нативно, а вот все остальное — ГП и звук — работает через эмулятор.
Galaxy in particular is really interesting. It appears they recompiled the original code to run natively on the Switch CPU, but everything else (GPU/Audio) is running in the emulator.
Interesting trick!
— OatmealDome (@OatmealDome) September 15, 2020
Пользователь также привёл подробности эмулятора Nintendo 64: в нём задействован ROM Shindou Pack (закрыт эксплойт, позволяющий совершать длинные прыжки), а патчи текстур, кода и перевода текста применяются к игре на лету. Кроме того, камера от первого лица имеет инвертированное управление по сравнению с оригиналом. А ещё @OatmealDome нашёл в комментарии кода опечатку: кто-то вместо слова ″cannon″ (пушка) написал ″canoe″ (каноэ).
Он также рассказал, что меню Super Mario 3D All-Stars сделано на движке LunchPack, который использовался в играх серии Splatoon, Super Mario Maker и Animal Crossing.
Interestingly, the code patches are done through Lua. The emulator takes over execution upon/after reaching a certain PC address and transfers control to a Lua script.
Also, whoever made the emulator configuration file made a typo. They spelled the word cannon as «canoe». pic.twitter.com/BMXx0GDdW1
— OatmealDome (@OatmealDome) September 15, 2020
Потенциально с помощью кода Super Mario 3D All-Stars пираты могут воссоздать эмуляторы Wii, GameCube и Nintendo 64 для Nintendo Switch и свободно ими пользоваться.
Super Mario 3D All-Stars поступит в продажу 18 сентября только на Nintendo Switch. Игру можно будет купить только до 31 марта 2021 года.