Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль

Восемь специализированных процессоров, квадратные полигоны вместо треугольников и кошмар программистов середины 90-х. Подробный разбор того, почему инженерный шедевр Sega оказался неприступной крепостью для разработчиков.

FactBox: Технические характеристики Sega Saturn

Подсистема

Компоненты и спецификации

Центральные CPU

2 × Hitachi SH-2 @ 28.6 MHz (32-битные RISC-процессоры, ~25 MIPS каждый)

Графическая подсистема

VDP1: рендеринг спрайтов, полигонов (квадратов), заливка, геометрия 3D. VDP2: 4 независимых плоскости 2D-фонов, аппаратный расчет горизонта и прозрачности

Звуковой процессор

Motorola 68EC000 @ 11.3 MHz + SCSP (Sega Custom Sound Processor / Yamaha YMF292, 32 канала)

Вспомогательные контроллеры

SCU (System Control Unit / DSP), CD-ROM MCU (Hitachi SH-1)

Общий объем RAM

2 MB Work RAM (1 MB High RAM + 1 MB Low RAM) + 1.5 MB VRAM + 512 KB Sound RAM

Пропускная способность шины

Пиковые 28.6 MB/s

01. Ответ Sony: паническая переделка архитектуры перед релизом

В начале 1990-х годов компания Sega находилась на пике своего могущества. Доминирование консоли Sega Mega Drive (Genesis) в Северной Америке и Европе придавало руководству уверенность в завтрашнем дне. Конструкторский отдел во главе с Хидэки Сато начал разработку платформы следующего поколения под кодовым именем «Project Gigadrive», которая впоследствии переросла в Sega Saturn.

Первоначальный проект Saturn создавался как абсолютный король 2D-графики. Инженеры ориентировались на богатейшее аркадное наследие Sega и считали, что трехмерная графика останется нишевым аттракционом еще долгое время. Консоль проектировалась под безупречную работу с сотнями спрайтов, глубокой палитрой цветов и многослойным скроллингом.

Однако осенью 1993 года на выставке Shoshinkai произошел тектоничный сдвиг: Sony впервые продемонстрировала публике и партнерам технологическое демо своей будущей консоли PlayStation. Показ интерактивной 3D-модели головы динозавра T-Rex и гоночного симулятора в реальном времени поверг руководство Sega в состояние шока. Выяснилось, что чип Sony PlayStation, разработанный при участии LSI Logic, способен без труда просчитывать сотни тысяч затенённых и текстурированных треугольников в секунду.

Поняв, что текущий вариант Saturn уступит конкуренту на старте 3D-эпохи, руководство Sega отдало приказ экстренно переработать архитектуру. Но времени на создание нового графического процессора «с нуля» уже не оставалось. Было принято роковое решение: добавить в архитектуру второй центральный процессор Hitachi SH-2 и попытаться распараллелить графические и геометрические вычисления.

Эта спешка привела к тому, что система не получила единой эффективной шины с кэш-когерентностью. Второй процессор был буквально «припаян» параллельно к существующей инфраструктуре, превратив материнскую плату Saturn в хаотичный лабиринт из восьми микросхем, конкурирующих за доступ к разделенной памяти.

02. Два SH-2 и видеочипы VDP1/VDP2: гений 2D против неизбежного 3D

Чтобы понять сложность Sega Saturn, достаточно взглянуть на состав ее чипсета. На материнской плате консоли располагались:

• Master CPU: Hitachi SH-2 (Основная логика, геометрия)

• Slave CPU: Hitachi SH-2 (Вспомогательные вычисления)

• VDP1: Видеопроцессор геометрии, спрайтов и квадов

• VDP2: Видеопроцессор фоновых плоскостей и спецэффектов

• SCU: Системный контроллер управления со встроенным DSP

• Sound CPU: Motorola 68EC000

• SCSP: Звуковой чип Yamaha YMF292

• CD-ROM Controller: Hitachi SH-1

Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 2
Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 2

Разделение труда: VDP1 и VDP2

Графическая система была разделена между двумя узкоспециализированными процессорами:

• VDP1 отвечал за рендеринг объектов: персонажей, машин, элементов окружения. Он работал со спрайтами и полигонами, рассчитывая их трансформы, наложение текстур и простые эффекты затемнения.

• VDP2 представлял собой монструозный 2D-сопроцессор. Он мог одновременно выводить до четырех независимых прокручиваемых фоновых слоев с разрешением до 704×480 пикселей, выполнять аппаратное вращение плоскости пола и неба, а также вычислять эффект горячего воздуха и прозрачности.

Когда разработчики учились грамотно комбинировать оба чипа (как это сделала студия AM2 в Virtua Fighter 2 или Sega Rally Championship), Saturn выдавала картинку потрясающего качества: VDP2 полностью берет на себя рендеринг горизонта, трассы и неба без затрат ресурсов CPU, а VDP1 фокусирует все мощности на высокодетализированных трёхмерных модельках бойцов или автомобилей.

Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 3
Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 3

Бутылочное горлышко памяти и шин

Главная беда системы заключалась в разделении оперативной памяти. Вместо единого массива RAM, Saturn имела:

• 1 MB High-speed Work RAM (32-битная шина)

• 1 MB Low-speed Work RAM (16-битная шина)

• 512 KB Framebuffer VRAM для VDP1

• 512 KB Texture VRAM для VDP1

• 512 KB Background VRAM для VDP2

Если оба процессора SH-2 пытались одновременно обратиться к одной и той же области памяти, возникала аппаратная блокировка шины (bus contention), и один из CPU просто замирал в ожидании. Без использования ассемблера и ювелирной синхронизации тактов второй процессор SH-2 зачастую простаивал, выполнял бесполезные циклы или вовсе мешал работе основного CPU.

03. Квадраты против треугольников: почему портировать с PS1 было адом

Индустрия трехмерной графики строилась на де-факто стандарте — треугольной сетке (Triangular Polygons). Треугольник — это простейшая плоская геометрическая figura, определяемая тремя точками в пространстве. PlayStation, Nintendo 64 и графические ускорители для ПК (3dfx Voodoo, Direct3D, OpenGL) изначально создавались для работы с треугольниками.

Sega Saturn пошла вопреки всему миру: ее графический чип VDP1 не умел растеризовать треугольники. Основным примитивом Saturn был искаженный четыреххугольник (Quadrilateral / Quad), по сути представляющий собой деформируемый текстурированный спрайт.

Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 4
Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 4

Параметр рендеринга

Sony PlayStation (Triangles)

Sega Saturn (Quads)

Базовый примитив

Треугольник (3 вершины)

Четырехугольник / Квад (4 вершины)

Стыковка полигонов

Точное совпадение граней

Риск образования щелей и дыр (Gaps)

Коррекция перспективы

Аппаратная аффинная текстуризация

Деформация спрайта по 4 точкам

Эмуляция чужого формата

Родной стандарт индустрии

Требует «вырожденных» квадов (2 совпадающие точки)

Проблемы при портировании мультиплатформы:

• Отсутствие аппаратного склеивания (Gaps & Overlapping): При попытке построить сложную 3D-модель из четырехугольников, при повороте камеры вершины квадов неизбежно расходились, образуя видимые дыры и щели, сквозь которые просвечивал фон.

• Нулевые координаты: Чтобы нарисовать треугольник на Saturn, программистам приходилось задавать четырехугольник, у которого две вершины совпадали в одной точке. VDP1 тратил ресурсы на обработку вырожденной грани, что снижало скорость рендеринга.

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

• Переписывание движков: Компании-разработчики (включая EA, Capcom и Konami) отказывались переписывать геометрию своих игр под квады. Простые порты с PlayStation на Saturn выходили с ужасной частотой кадров, отсутствующими эффектами и графическими багами.

04. Ю Судзуки и Shenmue: как выжать из Saturn невозможное

Несмотря на архитектурный ад, внутренняя команда Sega AM2 под руководством гениального геймдизайнера и инженера Ю Судзуки (Yu Suzuki) совершала истинные технологические чудеса.

Судзуки и его команда напрямую писали код на ассемблере, минуя несовершенные компиляторы от Sega. Они научились вручную распределять задачи между двумя SH-2: один процессор полностью отдавали под просчет геометрии и коллизий, а второй — под обработку анимации, ввода и логики ИИ.

Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 5
Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 5

Легенда о Saturn Shenmue (Project Berkeley)

Самым амбициозным проектом для Saturn стала разработка Shenmue (тогда известной под кодовым именем Project Berkeley). Студия AM2 создала полностью рабочую трехмерную RPG с открытым миром, сменяемостью времени суток, сотнями уникальных NPC и детализированным древним Китаем.

Когда кадры прототипа Shenmue для Sega Saturn попали в сеть годы спустя, публика была поражена: платформа, которую считали непригодной для честного 3D, выдавала уровень графики, сопоставимый с ранними играми эпохи Dreamcast и PlayStation 2! Однако цена этого успеха была слишком высока: на создание такого движка ушли годы и миллионы долларов, доступные только ключевой студии Sega.

Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 6
Двухпроцессорный лабиринт: как сложная архитектура Sega Saturn погубила консоль 6

Итоговый вывод

Sega Saturn остаётся в истории как величественный и трагический памятник инженерной мысли. Консоль опередила своё время в вопросах многоядерности, но оказалась слишком сложной для эпохи, когда инструментарий разработки находился в зачаточном состоянии. Незаслуженно забытая широкой публикой, Saturn подарила миру немеркнущие шедевры и преподала всей игровой индустрии важный урок: баланс и удобство разработки всегда важнее сырой и неортогональной мощности.