Опорные изображения
Введение
Sega Dreamcast представил множество новых возможностей по сравнению со своим предшественником (Saturn), чтобы привлечь к себе как разработчиков, так и игроков. Хоть это и была последняя попытка Sega завоевать консольный рынок, некоторые технологии, впервые появившиеся в Dreamcast, были развиты в последующих устройствах уже других компаний.
Процессор
Дела у Hitachi шли отлично, их знаменитые чипы SuperH нашли несколько покупателей и компания была готова к выпуску четвёртой версии процессора. Их новый чип объединит возможности для встраиваемой электроники с функционалом, используемым 3D играми.
Неудивительно, что Sega, будучи одним из ранних пользователей SuperH, выбрала новинку от Hitachi для своей новой консоли. Следовательно, Dreamcast имеет процессор SH-4, запущенный на умопомрачительных 200 МГц [1]. А ещё, чтобы на этот раз сделать всё как надо, в консоли стоит только один полноценный процессор.
Предложение
И что же такого особенного в этом процессоре?
Ну, для начала, SH-4 представляет собой расширение предыдущих моделей, что значит наследование всего существующего функционала линейки SuperH, включая 32-разрядную архитектуру RISC, 5-этапный конвейер и 16-битный набор инструкций. Увы, он также унаследовал конфликты управления (control hazards).
Кроме того, как процессор следующего поколения, он представил множество улучшений, выходящих за рамки использования во встраиваемой электронике [2]:
- Двунаправленный суперскалярный конвейер: Новый метод параллелизма, когда процессор может обрабатывать более одной инструкции за раз (в нашем случае две) на каждом этапе конвейера. Это позволяет выполнять больше инструкций в секунду.
- Под капотом, процессор распределяет две инструкции на два разных (и доступных) устройства выполнения (execution unit). То есть, за небольшими исключениями, все инструкции должны быть разного типа (например, операция ветвления, арифметика и т.п.), чтобы выполниться параллельно [3]. В противном случае они будут выполнены последовательно. В любом случае SH-4 также обладает набором инструкций, которые невозможно выполнить параллельно, так как это не выгодно из-за слишком большого количества зависимостей.
- 8 КБ кэша инструкций и 16 КБ кэша данных: Это соотношение выглядит любопытно, поскольку консоли обычно включают больше кэша инструкций, чем кэша данных. Однако SH-4 позволяет поделить кэш данных на два раздела: 8 КБ Scratchpad (быстрая ОЗУ) и 8 КБ кэша данных.
Особая работа
Основной работой процессора игровой консоли обычно является обработка логики игры, просчитывание ИИ противников и снабжение GPU задачами на отрисовку.
В случае Dreamcast можно заметить, что графический процессор выполняет только растеризацию. Таким образом, процессор должен быть задействован в большинстве этапов графического конвейера. Это значит, что процессор будет обрабатывать колоссальное количество данных о геометрии (например, вычислять преобразования перспективы). Чтобы процессор смог справиться со своей задачей, Sega и Hitachi совместно добавили две важные функции в SH-4.
Первым дополнением является отдельный 64-битный модуль операций с плавающей точкой (Floating-Point Unit, FPU). Этот компонент вычисляет 32-битные десятичные числа (так называемые “числа одинарной точности” или “float”) или 64-битные (“числа двойной точности” или “double”) по стандарту IEEE-754. Его регистровый файл состоит из тридцати двух 32-разрядных регистров, но они также могут быть объединены в отдельную группу из шестнадцати 64-разрядных регистров, что позволяет сопроцессору обрабатывать числа двойной точности.
Если и этого недостаточно, Hitachi пошла дальше и внедрила дополнительную логику для создания другой регистровой группы, на этот раз составленной из восьми 128-битных регистров. В этой группе каждый регистр хранит четыре 32-разрядных числа, или другими словами 128-битный вектор. Этот формат оптимален для операций, связанных с графикой.
Чтобы воспользоваться новыми векторами по полной, FPU включает в себя дополнительные инструкции для работы с ними, очень похожие на инструкции Saturn Control Unit, правда сейчас индустрия более-менее пришла к единому стандарту. Новые инструкции представляют собой то, что обычно называется Single Instruction Multiple Data (SIMD, одиночный поток команд, множественный поток данных, ОКМД). Они могут выполнять следующие алгебраические операции:
- Скалярное произведение.
- Сумма квадратов.
- Умножение матриц.
Второе дополнение - это внешняя шина SH-4, которая стала 64-битной, что позволяет процессору одновременно передавать пары 32-битных значений. Это ещё одно улучшение, которое увеличивает общую производительность процессора.
Память и доступ к ней
Dreamcast обладает 16 МБ SDRAM, напрямую подключённой к процессору через шину на 100 МГц (половина скорости процессора).
С другой стороны, ширина шины данных памяти — всего 32 бита [4]. Значит ли это, что потенциал новенькой 64-битной шины ЦП не раскрыт? Вовсе нет, ведь ОЗУ установлена двумя банками по 8 МБ. Таким образом, оба чипа делят линии шины процессора пополам.
Для работы с памятью процессор включает в себя Memory Management Unit (Блок Управления Памятью) или “MMU” для виртуальной адресации. Этот блок полезен, так как ширина физического пространства адреса памяти как раз составляет 29 бит. Кроме того, благодаря включению четырех Translation Lookaside Buffer (TLB, Буфер ассоциативной трансляции), программисты могут использовать 32-битные адреса без ущерба производительности.
Поскольку для адресации необходимы только 29 бит, три оставшиеся бита управляют защитой памяти, изменяя карту распределения памяти (memory map) и включая обход кэша соответственно [5] [6].
В конце концов, программист сам решает, использовать ли эти функции или нет. Играм для этой системы не требуется защита памяти, так что MMU, если он нужен, должен быть включен вручную при загрузке системы.
Без UMA, но…
Несмотря на то, что эта система не основана на архитектуре единой памяти (Unified Memory Architecture), как делает её широко известный конкурент, она тем не менее делегирует ввод-вывод графическому чипу (GPU). Это означает что если процессору необходимо извлечь что-либо за пределами своей выделенной памяти или последовательного интерфейса (serial interface), он должен сделать запрос графическому чипу и, если требуется, подождать своей очереди.
Процессор так же поддерживает уникальный функционал под названием Parallel I/O (параллельный ввод-вывод) или ‘PIO’, который используется для одновременных манипуляций над несколькими I/O адресами. Sega использовала PIO выводы процессора, чтобы управлять видео режимом GPU (подробнее об этом рассказано в разделе “Графика”).
Конечная остановка
Даже после всех описанных преимуществ, боюсь, что серия SuperH не получила дальнейшего развития после того, как её последний крупный пользователь, Dreamcast, исчез с полок магазинов. После популярности SH-4, Hitachi (или Renesas Electronics, текущий владелец) не смогла воспроизвести такой же уровень успеха, а учитывая, что рынок портативных и встраиваемых устройств с тех пор отдаёт предпочтение ARM (благодаря StrongARM), я не думаю, что Renesas собирается развивать изобретение Hitachi.
Благо в сфере вычислительных технологий технологический прогресс часто выходит за рамки брендов и компаний. Например, техника сжатых инструкций SH нашла развитие в режиме Thumb у ARM (вторичный 16-битный набор команд) [7]. Более того, в 2012 году группой энтузиастов был начат проект по созданию современного SuperH-совместимого ЦП под названием “J2” [8].
Графика
Графический процессор представляет собой чип собственной разработки под названием Holly, работающий на частоте 100 МГц. В отличие от предыдущих собственных разработок, на этот раз Sega сотрудничала с VideoLogic (ныне известной как Imagination Technologies), чтобы те предоставили им конкурентоспособный 3D ускоритель.
Внутри Holly мы можем обнаружить эксклюзивную схему обработки графики от VideoLogic под названием PowerVR2 (также известен как “PowerVR Series2” и “CLX2”). Она основана на их предыдущих ГП PowerVR, но подогнана под нужды Dreamcast.
Архитектура
VideoLogic выбрала альтернативный подход к архитектуре своего 3D ядра под названием Tile-Based Deferred Rendering (TBDR, отложенная отрисовка основанная на тайлах).
Вместо отрисовки всего кадра за раз (как это делают традиционные Immediate Mode Renderers или ‘IMR’ [9]), TBDR нарезает область отрисовки на несколько секций называемых ‘тайлами’. Процесс отрисовки выполняется отдельно для каждого тайла, после чего результат комбинируется вместе для составления конечного кадра [10].
Этот инновационный дизайн привносит интересные преимущества:
- Он отлично параллелизуется, что существенно уменьшает необходимую пропускную способность и энергопотребление.
- Он реализует умное решение проблемы с видимостью, автоматически сортируя полигоны от переднего плана к заднему, а затем выполняя z-тесты на первых этапах конвейера. Комбинация этих задач не только решает изначальную проблему, но и предотвращает “overdraw” (отрисовка полигонов полностью скрытых другими) который тратит ресурсы впустую и ухудшает производительность.
Неудивительно, что Imagination и далее использовала эту эффективную технологию в видео-ядрах Series 4 PowerVR, которые использовались на невероятном количестве устройств, включая первое поколение iPhone, iPhone 3G, Nokia N95 и Dell Axim x51.
Строение
Давайте рассмотрим два основных компонента графического чипа Dreamcast [11]:
Tile Accelerator
Прежде чем начнется процесс отрисовки, компонент известный как Tile Accelerator (тайловый ускоритель) производит предварительную обработку. Сперва он аллоцирует несколько 32x32 групп тайлов в которые будет отрисовываться геометрия.
Затем ускоритель:
- Забирает (при помощи прямого доступа к памяти (DMA) или обычной передачи) геометрические данные и команды отрисовки (drawing commands) сгенерированные процессором.
- Конвертирует эти данные в свой внутренний формат.
- Распределяет геометрию в каждую из групп тайлов в зависимости от их координат. Геометрия вне поля видимости отбрасывается на этом этапе.
- Генерирует окончательные списки отрисовки (Display Lists).
Списки отрисовки затем интерпретируются 3D ядром: PowerVR2.
Ядро PowerVR2
Здесь графика воплощается в жизнь. Руководствуясь списками отрисовки, полученными от Tile Accelerator, 3D ядро отрисовывает каждый тайл в свой внутренний кадровый буфер (framebuffer). Этот процесс выглядит так:
- Image Synthesis Processor (процессор синтеза изображения) или ‘ISP’ извлекает примитивы (треугольники либо четырехугольники) и выполняет удаление скрытых поверхностей (Hidden-Surface Removal) чтобы убрать скрытые полигоны. Затем, после рассчета их Z-буферов и трафаретных (stencil) буферов, данные проходят через тест глубины (Depth Testing) чтобы избежать отрисовки полигонов которые скрыты другими и трафаретный тест (Stencil Tests) чтобы отбросить геометрию которая не будет видна если расположена за двухмерными полигонами (так же называемыми масками).
- Обратите внимание, что эти тесты фактически выполняются в самом начале конвейера. Для сравнения, предыдущие консоли, использующие позднюю z-буфферизацию, отбрасывают скрытую геометрию в конце конвейера. Подход ISP предотвращает обработку геометрии, которая в последствии будет отброшена [12], сохраняя ресурсы.
- Texture and Shading Processor (процессор текстурирования и шейдирования) или ‘TSP’ окрашивает и затеняет (shading) тайлы, а так же применяет к ним различные эффекты.
- Текстуры не применяются пока тайл не экспортирован. Это означает что накопленный overdraw (если он присутствует к этому этапу) не снизит скорость заполнения.
После завершения этого процесса, отрисованный тайл записывается в основной кадровый буфер находящийся в видео-памяти (VRAM). Этот процесс повторяется пока все тайлы не будут отрисованы. После завершения отрисовки, конечный кадр читается Video encoder -ом (кодировщиком видео) из кадрового буфера и отправляется на видеовыход.
Общая картина
Кроме очевидных архитектурных различий, у TSP есть еще много способностей, из которых ясно, насколько эта консоль далека от своего предшественника Saturn. Вот некоторые из его самых выдающихся возможностей:
- Альфа-смешение (Alpha blending): Смешивает цвета наложенных друг на друга слоев, чтобы добиться эффекта (полу-)прозрачности.
- Процесс для применения прозрачности в этой системе называется order-independent transparency (прозрачность, независящая от порядка). Алгоритм автоматически сортирует примитивы прежде чем смешивать их цвета. Это замедляет процесс отрисовки, но позволяет не полагаться на то что игра отсортирует примитивы сама. Именно по этой причине игры для Dreamcast отлично отображают объекты с прозрачностью.
- Вместе с отрисовкой основанной на тайлах, алгоритм order-independent transparency полностью решает прошлые неудачи.
- Mip-Mapping: Автоматически выбирает версию текстуры меньшего разрешения в зависимости от необходимого уровня детализации. Это нужно чтобы не обрабатывать большие текстуры которые находятся далеко от камеры (что тратит ресурсы и вызывает артефакты (aliasing)).
- Environment mapping: Применяет отражения к текстурам.
- Билинейная, трилинейная и анизотропная фильтрация: Это разные алгоритмы, применяемые, чтобы сгладить текстуры и снизить пикселизацию. Они расположены в порядке от худшего к лучшему, где качество результата прямо пропорционально необходимому количеству вычислений.
- Это огромный шаг вперед от Saturn, который вовсе не предоставлял никаких возможностей для фильтрации текстур.
- Bump mapping: Симулирует неровности на поверхностях не тратя лишние полигоны.
Больше деталей
Holly может отрисовать примерно в 10 раз больше полигонов чем его предшественник, вот примеры до и после, которые показывают насколько менее ограничен теперь дизайн моделей. Попробуйте поиграться с ними!
Каркас | Поверхность | Текстурированный |
Нажмите, чтобы разрешить взаимодействие |
286 треугольников (или 185 четырёхугольников).
Каркас | Поверхность | Текстурированный |
Нажмите, чтобы разрешить взаимодействие |
1001 треугольник.
Видео режимы
Подсистема вывода видео была спроектирована с поддержкой нескольких типов экранов и выходных форматов, так video encoder выводит видео на единый выходной порт, который поддерживает следующие форматы:
- Композитный: Объединяет три сигнала, необходимые для отображения видео (chroma (цвет), luma (яркость) и sync (синхронизация)) в один, требуя только одну линию в кабеле.
- Этот формат используется в старых PAL и NTSC телевизорах с RCA портами.
- S-Video: Совмещает luma и sync, но отделяет chroma (всего требуя две линии).
- RGB: Передает отдельные сигналы для красного, зеленого и синего компонентов, и предоставляет на выбор разные варианты сигнала синхронизации (композитный или извлеченный из S-Video).
- SCART кабель использует этот формат.
- VGA: Совмещает RGB и два сигнала синхронизации (горизонтальный и вертикальный), всего используя 5 линий. Этот режим позволяет отобразить самое большое из возможных разрешений (720x480) в прогрессивном режиме (поэтому этот режим часто называют ‘480p’). VGA некоторое время был стандартным форматом/подключением, используемым компьютерными мониторами.
- Чтобы использовать этот режим, Sega выпустила VGA адаптер в качестве дополнительного аксессуара.
Dreamcast не может кодировать все эти форматы одновременно, поэтому у GPU и аудиопроцессора есть регистр Image Mode, который указывает какие аудио/видео шины должны быть активированы чтобы генерировать нужный сигнал. Процессор проверяет тип подключенного кабеля (проверяя какие “select bits” пины видео коннектора подключены) и записывает нужные значения в регистр GPU. Эти значения так же передаются аудиопроцессору.
Учитывая что VGA это исключительно прогрессивный формат (в противовес традиционному чересстрочному), у игр предполагавших использование только чересстрочной развертки проявились проблемы совместимости. Такие игры явно указывают в своем коде что не будут работать с VGA, чтобы процессор приостановил игру пока пользователь не сменит VGA кабель на другой.
Звук
Аудио обрабатывается кастомным чипом AICA от Yamaha, это улучшенная версия SCSP, использованного в Saturn. Он состоит из четырех компонентов:
- Sound Integrated Circuit или “IC” (звуковая микросхема): Это набор модулей (синтезатор, DSP и микшер) который генерирует аудио сигнал и применяет к нему эффекты. Он поддерживает до 64 PCM каналов с разрешением 16 или 8 бит и частотой дискретизации 44.1 кГц. В основном это оптимальное качество для проигрывания аудио.
- Дополнительно, в него включен ADPCM декодер чтобы разгрузить часть работы у процессора.
- Занятно, что от него так же выведены два MIDI пина для подключения MIDI инструмента, впрочем, эту функцию предполагалось использовать только для разработки.
- 2 МБ SDRAM: Хранит аудио данные и программы. Он заполняется основным процессором при помощи DMA.
- ARM7DI, работающий на частоте ~2.82 МГц: Управляет Sound IC. Этот процессор программируется загрузкой небольшой программы (называемой драйвером), находящейся в SRAM, которая интерпретирует аудио данные и управляет звуковым чипом в соответствии с ними.
- Кстати, похожий процессор, но помощнее можно найти в Game Boy Advance.
- Контроллер памяти: Предоставляет интерфейс для 2 МБ SDRAM.
Для облегчения разработки, официальный SDK включал в себя несколько драйверов для разных задач (секвенсор, декодер и т.д.).
Эволюция
Чтобы показать, как сильно продвинулся прогресс в области синтеза звука со времен Mega Drive/Genesis, вот пример двух игр, одной для Mega Drive и другой для Dreamcast, использующих одну и ту же композицию:
Предшественник использует FM синтез для генерации звука на лету.
Новая аудио подсистема без труда обрабатывает PCM семплы.
Вы также можете попробовать этот виджет, если вы хотите переключиться между композициями во время воспроизведения:
MegaDrive / Genesis | Dreamcast | |
Нажмите, чтобы разрешить взаимодействие |
Dreamcast: Sonic Adventure (1999).
Обьяснение
Вместо программирования чипа FM модуляции, композиторы Sonic Adventure сыграли саундтрек сами и затем закодировали его в ‘ADX’, формат с потерей качества (lossy) разработанный CRI Middleware. Благодаря этому он использует только два из 64 PCM каналов (стерео).
Сжатие ADX позволяет игре декодировать аудио поток с GD-ROM прямо в Sound IC, не тратя память и пропускную способность. Более того, драйвер для этих целей мог быть реализован множеством разных путей, так как существовало несколько подходов к балансированию нагрузки между основным процессором и ARM7.
Оставаясь в живых
По какой-то причине, этот чип так же отвечает за часы реального времени (RTC) для BIOS. Он подключен к батарейке, чтобы продолжать работать без питания от сети.
Операционная система
BIOS хранится в 2 МБ “Системной ПЗУ” (System ROM). При запуске процессор первым делом читает данные из этой ПЗУ. Это ПЗУ содержит код, который позволяет процессору либо загрузить игру, либо показать оболочку.
Кроме того, BIOS так же содержит готовые функции для упрощения использования операций ввода-вывода в играх [13], как например чтение с GD-ROM диска.
Интерактивная оболочка
Так же, как и Sega Saturn, в случае отсутствия правильного игрового диска в дисководе консоль запускает интерактивную оболочку.
В оболочке есть простой графический интерфейс для выполнения базовых, но необходимых задач:
- Запустить игру, если она еще не запущена.
- Управление сохранениями, хранящимися на VMU (больше про это устройство будет рассказано далее).
- Включить музыку, если вставлен аудио CD.
- Изменить некоторые настройки, такие как дата, время, звук и так далее.
Windows CE
С момента анонса Dreamcast говорилось, что консоль может запускать Windows CE. Хотя, вам достаточно взглянуть на переднюю панель консоли, чтобы увидеть штамп Microsoft… Как это понимать?
Во-первых, что именно такое “Windows CE”? Ну, это всего лишь один из многих проектов Microsoft, над которым велась работа на протяжении середины 90-х годов, чтобы завоевать территории за пределами привычного рынка ПК. После появления архитектур процессоров более эффективных, чем x86 и развития наладонных ПК, Microsoft поручила новой команде перенести экосистему Windows на эти новые устройства [14].
Это привело к созданию Windows CE: полноценной операционной системы, разработанной с нуля, которая предоставляла подмножество существующих API Windows, инструментов и служб для разработчиков.
В отличие от Windows 95 или NT, новая система обладает следующими преимуществами:
- Она работала на широком диапазоне процессоров [15], включая SuperH и даже NEC/MIPS VR4300 (используется Nintendo 64).
- Она спроектирована под железо, ограниченное по источнику питания (батарейки AA), памяти (2 МБ ОЗУ) и накопителю (4 МБ ПЗУ).
Более того, Windows CE продавалась производителям как конструктор, позволяя им выбирать только необходимые компоненты. Затем производители могли интегрировать её во множество устройств (например, карманные компьютеры, POS-терминалы или даже автомобильные системы). Тем не менее Windows CE получила значительное внимание как ОС для “наладонников” (предшественник КПК), по сути конкурируя с Apple Newton и Palm.
По мере роста индустрии сотовых телефонов в конце 90-х годов, Microsoft использовала модульность Windows CE, чтобы построить PocketPC, ещё одну операционную систему (позже известная как “Windows Mobile”) полностью сосредоточенную на КПК и телефонах.
А причём тут Dreamcast? Однажды Microsoft и Sega решились создать пакет Windows CE для Dreamcast [16]. В конце концов, Windows CE уже работала на процессорах Hitachi. В итоге это не привело к созданию полноценного интерфейса рабочего стола или интеграции с онлайн-сервисами Microsoft. Вместо этого она служила в качестве дополнительного слоя абстракции для упрощения работы с аппаратным обеспечением.
Подобно тому, что Nintendo предоставила с Nintendo 64, Microsoft поставила SDK (часто упоминаемый как Dragon SDK), основанный на Windows CE, для программирования приложений под Sega Dreamcast. Библиотека состояла из урезанной CE с минимальным набором компонентов, необходимых для работы с графикой, звуком и отладчиком. В рамках “вступления в клуб Microsoft”, разработчики теперь могут воспользоваться знаменитой IDE Microsoft (Visual Studio 6.0) и Visual C++ 6.0 для разработки.
Часть разработчиков сочла эту возможность очень привлекательной. Так как аудиовизуальный фреймворк поставляемый вместе с Windows CE был ничем иным, как DirectX 6, большинство игр для ПК могли быть, в теории, легко перенесены на Dreamcast. Однако различия в архитектуре между Dreamcast и обычными ПК были слишком велики чтобы их игнорировать. В конечном счете программистам пришлось проделать значительную работу по оптимизации, чтобы достичь оптимальной производительности [17]. Более того, поскольку BIOS Dreamcast не включал в себя ни одного из фреймворков Microsoft, SDK должен быть статически связан (linked) с игрой. Таким образом, по сравнению с близкими к железу библиотеками Sega, Dragon SDK увеличил время загрузки игры (в конце концов, целая “ОС” должна быть загружена с диска) и в течение всего процесса игры слой Windows CE отъедал значительный объём ресурсов.
В заключение, “Windows CE for Dreamcast” был просто дополнительным SDK на выбор для разработчиков. Тем не менее заметное количество игр для Dreamcast пользовалось этим SDK.
Если вам интересна судьба Windows CE и Windows Mobile, то Microsoft не смогла преуспеть на рынке портативных устройств. Windows CE была заброшена в 2013 году. Годом ранее ядро Windows Mobile, основанное на Windows CE, было заменено на Windows NT (в то же время вышла Windows 8 для настольных ПК). Несмотря на это, Windows Mobile в конечном итоге приняла поражение против более новых платформ (Android и iOS) и поддержка была прекращена в 2019 году.
I/O
GPU включает в себя еще один модуль для выполнения большей части I/O: System Bus (системная шина). Он предоставляет следующие интерфейсы:
- G1: Через него доступны BIOS ROM вместе с его настройками и контент с GD-ROM диска.
- G2: Предоставляет доступ к модему и контроллеру звука.
- Maple: Передает пакеты данные между контроллерами (и аксессуарами подключенным к ним) и основным процессором. Это последовательная шина и она предоставляет отдельный DMA.
- Интерфейс SH-4: Подключает основной процессор для коммуникаций общего назначения.
- DDT: Забирает управление шиной основного процессора для получения доступа к его основной памяти во время передач через DMA.
- PVR: Подключает основной процессор к Tile Accelerator через отдельный DMA.
Игры
Игры в основном разрабатывались на языках C или C++. Первое время для разработки рекомендовался C, поскольку компиляторы C++ доступные на то время были сильно ограничены в функциональности (и качестве).
Sega предоставляла станцию (девкит) для разработчиков в форме корпуса ПК под названием Sega Katana Development Box. Она имеет Dreamcast с дополнительными I/O интерфейсами необходимыми для разработки. В комплекте шел CD диск с официальным Katana SDK и другими инструментами для установки на ПК с Windows 98.
Как уже говорилось ранее, разработчики также могли воспользоваться Dragon SDK от Microsoft поверх SDK от Sega. В таком случае доступны DirectX 6.0 и Visual C++ 6.0.
Носитель
Игры распространялись на GD-ROM дисках, которые являются обычными дисками CD-ROM с большей плотностью записи (достигая 1 ГБ в объеме). Диски читаются со скоростью 12x, что не так плохо по сравнению с 2x CD дисководом в Saturn.
Онлайн-платформа
Dreamcast распространялся с модулем модема, который могли использовать игры чтобы “звонить” на dial-up сервисы для онлайн игры. Sega предоставляла два сервиса: SegaNet (для Америки и Японии) и Dreamarena (Европейский аналог).
Игроки регистрировались в сервисе при помощи DreamKey, дополнительного диска, шедшего в комплекте с некоторыми играми. DreamKey предоставлял веб браузер для регистрации аккаунта. Изначально, DreamKey шел с преднастроеным сервисом в зависимости от региона, но поздние ревизии добавили для пользователей возможность указать любого другого провайдера.
В продаже так же были клавиатуры и мыши специально для Dreamcast, на случай если пользователю хотелось использовать интернет в стиле ПК.
К сожалению, SegaNet и Dreamarena были отключены через два года после запуска. Из-за этого игры которые полагались исключительно на эти сервисы стали неиграбельны, если не эмулировать сервисы внешними средствами. (например, при помощи DreamPi - образа для Raspberry Pi который повторяет функционал этих сервисов с помощью серверов поддерживаемых сообществом).
Интерактивная карта памяти
Еще одним новшеством Dreamcast был Visual Memory Unit или “VMU” (Визуальное Запоминающее Устройство). Он подключался к контроллеру и, кроме того что работал как карта памяти для сохранений, был полностью автономным устройством, включавшим в себя [18]:
- Sanyo LC86K87: 8-битный процессор с низким энергопотреблением.
- Монохромный ЖК экран 32 на 48 точки с четырьмя дополнительными иконками: Управляется с помощью 196 Байт XRAM (eXternal RAM, внешнее ОЗУ) в качестве кадрового буфера.
- Два последовательных коннектора: Один для IN (вход) и другой для OUT (выход).
- Шесть физических кнопок: Используются когда VMU не вставлен в контроллер.
- 16 КБ Mask-ROM: Хранит BIOS-IPL (загрузочную прошивку).
- 64 КБ Flash памяти: 32 КБ для хранения одной программы (полученной из консоли) и 32 КБ для игровых сохранений.
- 512 Байт ОЗУ: 256 Байт зарезервировано для системы, оставляя только 256 Байт для программ.
VMU имеет два режима работы:
- Подключен к контроллеру: У официального контроллера есть два слота для подключения VMU и других аксессуаров такой же формы. Если VMU подключен в первый слот (тот, что видно спереди контроллера), он может показывать изображения во время игры. Кроме того, Dreamcast может хранить на VMU сохранения и одну программу.
- Отключен от контроллера: VMU превращается в устройство, похожее на Тамагочи с часами, менеджером сохранений и возможностью запустить программу, ранее записанную на него с Dreamcast. Два VMU так же могут быть подключены, чтобы делиться между ними контентом.
Борьба с пиратством и хоумбрю
Использование проприетарного формата GD-ROM помогло предотвратить производство несанкционированных копий игр (и их запуск на других консолях). В добавок к этому, игры Dreamcast регионально заблокированы, что означает невозможность запуска игр на консоли, если их регионы не совпадают.
Победа пиратов
На практике меры против пиратства были совершенно бесполезны, так как Sega оставили огромную лазейку открытой: MIL-CD. Музыкальный Интерактивный Live-CD или ‘MIL-CD’ - это формат, созданный Sega для расширения Аудио-CD интерактивными программами… и Dreamcast совместим с ним [19].
В конце концов, неавторизованные коммерческие диски (программы для загрузки читов, видео плееры, и т.д.) стали маскироваться под MIL-CD чтобы те могли запускаться на консоли без разрешения Sega. Позднее, сообщества взломщиков изучили этот эксплоит и нашли обходной путь, чтобы запускать пиратские игры с обычных CD-ROM дисков. Это вызвало непреодолимую волну ISO образов игр выкладываемых в интернете.
Проблемы проявились позже: GD-ROM диски могли вмещать 1 ГБ данных, а обычные CD - только около 700 МБ, так каким же образом “рипперы” ужимали большие игры, чтобы вместить их на CD? Пережимая музыку и графику пока игра не влезет в рамки CD. Так же были попытки разделять игры на два диска. В конце концов, игры больше не представляют собой один большой пласт данных (как старые картриджи), а организованы в иерархию из файлов из директорий.
Вот и всё, ребята
Не так плох для своего возраста!
Надеюсь, вам понравилась эта статья. Я закончил писать её в начале моего последнего учебного года в университете.
Теперь я, скорее всего, буду очень занят, но мне нравится писать эти статьи, так что, надеюсь, вы увидите еще одну в течение нескольких недель!
До скорых встреч!
Rodrigo