Неожиданный некстген — энтузиаст добавил аппаратную трассировку лучей на SNES, вышедшую 30 лет назад

Но поиграть в Super Mario с отражениями и натуральными тенями пока нельзя.

Разработчик Бэн Картер добавил поддержку аппаратной трассировки лучей в ретро-консоль Super Nintendo Entertainment System (SNES), которая вышла в Японии в 1990 году (под названием Super Famicom).

В созданном им демо с разрешением 200×160 пикселей показаны физически корректные тени и реалистичные отражения объектов за пределами кадра — и всё работает без применения традиционной растеризации (которую SNES не потянула бы), а со 100% трассировкой лучей.

Для этого Картер собрал кастомный картридж с демо, на котором кроме самой игры расположены три дополнительных вычислительных ядра с частотой 50 МГц — они-то и обеспечивают поддержку трассировки лучей.

Оригинальная Super Famicom Бэна Картера — она разобрана, но не модифицирована — вся «магия» происходит на картридже.
Оригинальная Super Famicom Бэна Картера — она разобрана, но не модифицирована — вся «магия» происходит на картридже.

Это не новая идея — ещё в 90-х оригинальная StarFox поставлялась на картридже с дополнительным чипом Super FX, который выступал в роли аналога дискретной видеокарты, оставляя чипу самой консоли роль процессора.

Для создания модифицированного картриджа автор проекта использовал старинный картридж с некой «ужасной» игрой для автомата патинко, несколько логических преобразователей (level shifters) и программируемой логической схемы (FPGA) DE10-Nano. Большинство проводов на снимке выше обеспечивают коммутацию логических преобразователей, необходимых для конвертации напряжения с 5 В, передаваемых SNES, в 3,3 В, допустимых для современных чипов.

 
 

Получившаяся схема способна просчитывать и отображать геометрию, цвета, тени и отражения для примерно 50 миллионов базовых объектов: плоскостей, сфер и трёхмерных объёмов (AABB). Отрендеренное изображение конвертируется в пригодный для SNES формат и передаётся в видеопамять консоли, откуда выводится на экран.

Из-за ограничений ширины пропускания интерфейсов, максимальная частота кадров в демо с трассировкой не превышает 30 fps, хотя для SNES стандартом считается 60 fps. Готовый кадр весит 32 Кб, а интерфейс видеопамяти имеют ширину в 16 Кб, поэтому полное обновление изображение возможно только каждые два кадра.

В теории при помощи модифицированного картриджа на SNES можно запускать любые игры с трассировкой лучей, но для этого придётся сначала добавить поддержку этой технологии в их исходный код, что потребует очень много сил, времени и навыков (и совершенно нелегально). Поэтому RTX-патчей для Super Mario All-Stars, Chrono Trigger и Final Fantasy 6 для 30-летней консоли в ближайшее время не предвидится.

Подробнее о процессе создания и технических деталях можно узнать из поста в личном блоге Бэна Картера.

296296
94 комментария

Найс перепись шутников

184

Всегда найдётся тошнот, который будет защищать этот унылый огрызок, в котором отсылок больше, чем интересных квестов или квестов вообще.

17

 хотя для SNES стандартом считается 60 fps

89

PAL регион тоже плачет

2