У Nintendo длинная история игровых приставок — настолько длинная, что её начало по времени успело застать ещё Османскую империю: компания была основана в 1889 году как производитель игральных карт, а Османская империя просуществовала вплоть до 1922-го. Но по-настоящему «Super» среди всех этих приставок была только одна — Super Nintendo Entertainment System. Именно в неё с головой погрузился разработчик под ником Inkbox, взявшийся написать для SNES собственную игру на ассемблере, используя буквально все доступные аппаратные хитрости этой платформы.
Хитрости и правда понадобятся: в распоряжении разработчика — всего два банка памяти по 64 Кбайт и процессор на базе архитектуры 6502 (Ricoh) с тактовой частотой 3,58 МГц. Даже самостоятельно выбранный лимит в 4 Мбайт для картриджа — исторически достоверный для эпохи SNES — по современным меркам выглядит откровенно тесным. Автор делает пиксельную игру-приключение с видом сверху в духе серии Zelda и в почти часовом видео подробно, до мельчайших деталей, разбирает устройство SNES: от видеорежимов до регистров, отвечающих за звук, — продолжая тему предыдущего ролика цикла. Если нужен серьёзный разбор архитектуры этой приставки и того, как её задумывали использовать инженеры Nintendo, найти источник лучше будет непросто.
Homebrew-разработка — это создание новых, никогда официально не издававшихся игр для уже снятых с производства приставок силами энтузиастов, с опорой на документацию, накопленную ретро-сообществом за десятилетия реверс-инжиниринга. Программирование на ассемблере для SNES заметно отличается от современной разработки игр: никакой операционной системы и стандартных библиотек — только прямая работа с регистрами видеопроцессора PPU и звукового процессора APU, ограниченная память и жёсткий бюджет тактов процессора на каждый кадр. Такие проекты интересны не только зрелищностью: они наглядно показывают, каким был геймдизайн в условиях жёстких аппаратных рамок, а исходники вроде упомянутого ниже звукового движка позволяют начинающим ретро-разработчикам не изобретать велосипед, а изучать готовый рабочий код.
Отдельного упоминания заслуживает приверженность автора открытому коду: выложенный на GitHub звуковой движок для SNES — SNES Sound Engine — вполне может пригодиться и другим разработчикам homebrew-игр для этой приставки. Сама игра доступна на itch.io по модели «заплати сколько хочешь».
При этом ассемблер SNES с его 6502-подобной архитектурой — далеко не единственная специализация Inkbox: у автора немало впечатляющих проектов и на ассемблере x86.



















