Полтора года назад талантливый программист Габриэл О'Флаерти-Чан (O'Flaherty-Chan) уже смог портировать на Apple Watch игру Doom. Правда игровой процесс оказался на редкость медленным, да и управление с помощью маленького сенсорного экрана оставляло желать лучшего. Теперь же Гэбриэл смог и вовсе превратить эти часы в наиболее функциональный эмулятор Game Boy.
Для демонстрации работы эмулятора программист выбрал игру Pokemon Yellow, в свое время специально созданную именно для консоли GameBoy Color.
Эмулятор, известный как Giovanni (названный в честь злополучного злодея Team Rocket из игры Pokémon), построен на основе существующего эмулятора iOS под названием Gambatte. Гэбриэл сумел использовать его код в качестве основы и выстроить вокруг него симуляцию watchOS. Как признался сам Гэбриэл, наибольшие проблемы вызвало отсутствие у Apple Watch поддержки OpenGL или Metal, из-за чего было немного сложно корректно сформировать картинку на экране.
Вместо физических органов управления О'Флаерти-Чан создал собственный интерфейс управления из сенсорных кнопок и кейпада. Так D-pad заменяется панорамированием на сенсорном экране, кнопка A - нажатием на экран, а кнопки Start, Select и B просто нарисованы пиктограмами.
Головка управления часов также использоваться для прокручивания списков, что, в принципе, вполне пригодно для управления игрой.
Самое большое ограничение эмулятора Giovanni (помимо того факта, что Apple никогда не допустит распространения такого приложения через официальные каналы App Store) - это ограниченное аппаратное обеспечение самой Apple Watch. Даже на самых последних продвинутых часах Series 2 эмулятор воспроизводит игры медленнее, чем на оригинальной консоли Game Boy. Возможно эту проблему решит новая версия Apple Watch, которая, по логике, будет намного мощнее существующих.
В любом случае разработка Гэбриэла в очередной раз показывает, на что могут быть способны миниатюрные компьютеры, которыми мы пользуемся каждый день. О'Флаэрти-Чан сделал Giovanni доступным в виде проекта с открытым исходным кодом и выложил на Github, так что если у вас есть желание и возможности, то вы можете опробовать эмулятор для своих проектов.
Иван Ковалев
Гэбриел О'Флаерти-Чен