Серия XGameStation
Серия XGameStation — серия встраиваемых систем, изначально разработанных как специализированные домашние игровые приставки. Создана Андре Ламотом (англ. Andre LaMothe) и продавалась его компанией Nurve Networks LLC. Изначально системы предназначались для обучения программистов электронике и разработке видеоигр[1][2]. Более новые модели ориентированы на проектирование логики, многоядерное программирование, создание игр, а также разработку и программирование встраиваемых систем на базе популярных микроконтроллеров.
Прототипы
Изначально XGameStation задумывалась как портативная система под названием nanoGear[3] на базе микропроцессора Freescale 68HC12 (современной версии Motorola 6809). Планировалось, что система также будет включать современные аналоги микропроцессоров MOS Technology 6502 и Z-80. Это предназначалось для ретро-программистов и хакеров, а также для упрощения эмуляции классических компьютеров и игровых систем. После нескольких итераций план изменился: было решено использовать микропроцессор архитектуры ARM и ПЛИС (FPGA) с реализованным на ней пользовательским графическим процессором. Однако после завершения проекта выяснилось, что получившаяся система слишком дорога и сложна для новичков. В итоге концепцию снова изменили, что привело к созданию XGS Micro Edition на базе микроконтроллера SX52. Система на базе ARM и ПЛИС после выхода Micro Edition получила название XGS Mega Edition. Планировалось пустить её в продажу, но она так и не была выпущена.
XGS Micro Edition (ME)
XGS Micro Edition была анонсирована в 2004 году[5]. Она представляет собой готовую игровую приставку на базе микроконтроллера SX52. Это высокоскоростной PIC-микроконтроллер, работающий на частоте 80 МГц и обеспечивающий производительность 80 MIPS. Цветной телевизионный видеосигнал генерируется программно на микроконтроллере. Звук создаётся чипом ROHM BU8763. Для ввода предусмотрен один разъём PS/2 (для клавиатуры или мыши) и два порта DB-9 для подключения джойстиков, совместимых с Atari. Программирование осуществляется на языке ассемблера или на специально написанном XGS Basic. Код пишется на ПК и переносится на консоль, либо создаётся непосредственно на самой системе. Доступны дополнительные наборы для создания собственных карт расширения и комплекты для экспериментов с электроникой. В комплект Micro Edition входят: само устройство XGameStation, подробная книга в формате PDF «Designing Your Own Video Game Console» (обучающая основам электроники), блок питания, A/V-кабели, джойстик, COM-кабель и несколько дополнений (например, PDF-версия одной из предыдущих книг Андре Ламота «Tricks of the Windows Game Programming Gurus»)[6].
Программная генерация видеосигнала
Наиболее примечательная особенность процессора SX52 — способность создавать цветной видеосигнал исключительно программными средствами. При этом у него остаётся достаточно ресурсов для одновременного выполнения программы, использующей этот дисплей для создания простой видеоигры или демоверсии. Такие программы не всегда превращаются в полноценные игры, так как объём памяти процессора SX52 сильно ограничен. Некоторые пользователи также пишут неигровые демосцены для демонстрации графических возможностей системы.
Устаревание SX52
Микроконтроллер SX52 устарел по решению компании Parallax, которая занимается упаковкой кристаллов серии Parallax SX производства Ubicom. Причиной стало отсутствие у Parallax корпуса с 52 контактами. Однако, по заявлениям создателей XGameStation, в их распоряжении имеется достаточное количество чипов SX52 для всех будущих нужд[7].
31 июля 2009 года Parallax объявила о прекращении выпуска всей линейки микроконтроллеров SX.
XGS Pico Edition (PE)
Pico Edition — упрощённая версия Micro Edition, поставляемая в виде набора для самостоятельной сборки. Анонсирована в 2005 году. Базируется на микроконтроллере SX28[8]. Как и SX52, это высокоскоростной PIC-микроконтроллер, работающий на частоте 80 МГц (80 MIPS), но с меньшим объёмом оперативной и флеш-памяти. Как и в Micro Edition, цветной видеосигнал генерируется программно на микроконтроллере. Однако, в отличие от Micro Edition, аудиосигнал также генерируется напрямую микроконтроллером, а не внешним чипом. Для ввода система считывает нажатия кнопок, подключённых к её входным контактам. Программирование выполняется на языке ассемблера или XGS Basic на ПК, после чего код переносится на консоль. Pico выпускается в нескольких вариантах: набор 1.0 (включает макетную плату, CD с инструкциями по сборке, избранные главы из электронной книги от Micro Edition, те же дополнения, чип SX28 и дискретные компоненты); набор 2.0 (включает набор 1.0 и печатную плату без пайки, которая также доступна отдельно); и Game Console Starter Kit (включает набор 2.0, печатную копию книги «The Black Art of Video Game Console Design», паяльник и припой).
Системы разработки XGS AVR 8-Bit и XGS PIC 16-Bit
Выпущенные 26 декабря 2008 года системы разработки XGS AVR 8-Bit и XGS PIC 16-Bit представляют собой комплекты для создания встраиваемых систем. Они позиционировались как конкурентоспособные решения начального и среднего уровня для соответствующих микроконтроллеров. Системы разрабатывались совместно, поэтому имеют во многом схожий дизайн, за исключением основного процессора. Видеосигнал генерируется программно, как в Micro и Pico Edition, однако предусмотрено вспомогательное оборудование для формирования цветовой вспышки (colorburst). Аудиосигнал также генерируется напрямую микроконтроллером. Для ввода, как и в XGS Micro, предусмотрены два порта DB-9 и один PS/2. Однако порты DB-9 совместимы с геймпадами Nintendo, а не Atari (для прямого подключения контроллера NES или SNES требуется переходник). В отличие от предыдущих систем XGS и Hydra, программирование ведётся преимущественно на C/C++ с использованием специфичных для системы библиотек. Также доступно программирование на языке ассемблера и XGS Basic. Код на XGS Basic работает на обеих системах без изменений. В отличие от XGS Micro Edition, редактировать код на самой системе нельзя — требуется ПК. Процессор XGS AVR 8-Bit — это Atmel MEGA AVR 644P с 64 КБ флеш-памяти и 4 КБ SRAM, обеспечивающий производительность более 28 MIPS. Процессор XGS PIC 16-Bit — это PIC24 с 256 КБ флеш-памяти и 16 КБ SRAM (более 40 MIPS).
Система Hydra
В 2006 году Андре Ламот выпустил HYDRA Game Development Kit — значительно более мощную систему по сравнению с XGS Micro Edition. В отличие от других продуктов Nurve, Hydra не использует бренд XGS. Система базируется на многоядерном микроконтроллере Parallax Propeller, архитектура которого напоминает процессор Cell из PlayStation 3. Propeller работает на частоте 80 МГц и использует восемь процессорных ядер (называемых COG), достигая производительности 160 MIPS. Объём памяти значительно превышает показатели SX52 из Micro Edition: 32 КБ ОЗУ и 32 КБ ПЗУ. В ПЗУ хранятся растровый шрифт для генератора видеодисплея (Propeller может программно генерировать высококачественное цветное изображение VGA или PAL/NTSC с помощью специальной логики поддержки, встроенной в каждое ядро), таблицы математических функций и интерпретатор многопоточного языка SPIN. Каждое ядро также имеет 2 КБ (512 32-битных слов) выделенной памяти. Для ввода предусмотрены два порта PS/2 для мыши и клавиатуры (продаются вместе с системой) и два порта для контроллеров, совместимых с NES (один контроллер входит в комплект). Система оснащена интерфейсом mini-USB для программирования, портом Ethernet RJ-11 и последовательной флеш-памятью EEPROM объёмом 128 КБ для хранения данных. Также доступны дополнения, например, карта внешней оперативной памяти на 512 КБ.