Архитектура Mega Drive / Genesis

Практический анализ от Rodrigo Copetti

Автор перевода: Pawel Ryndovskiy

Это перевод оригинальной статьи, выполненный добровольцами. Если вы заметили какие-либо ошибки, то, пожалуйста, помогите улучшить перевод. Спасибо!

Если вы используете инструменты специальных возможностей, электронные книги или устаревшие браузеры, то переключитесь на "классическую" версию.




Опорные изображения

Модель

Image
The Mega Drive.
Выпущена 29/10/1988 в Японии.
Image
The Genesis.
Выпущена 14/08/1989 в США.
Image
The Mega Drive.
Выпущена 09/1990 в Европе.

Материнская плата

Image
Материнская плата
Японская ревизия "VA0".
Обратите внимание на необычную дочернюю плату в верхней части VDP, использовавшуюся для устранения постпроизводственных сбоев (исправленных в более поздних ревизиях).
Image
Материнская плата с помеченными важными частями

Диаграмма

Image
Диаграмма основной архитектуры

Краткое введение

Sega (и их телевизионная реклама) хочет, чтобы вы знали: Разработчики не смогут придумать достойные игры, если консоль не обеспечит более быструю графику и богатый звук.

Их новая система включает множество уже знакомых компонентов, готовых к программированию. Их новая система включает в себя множество уже знакомых компонентов, готовых к программированию. Это означает, что теоретически разработчикам нужно будет изучить только новый графический процессор Sega… верно?


Процессор

Эта консоль имеет два процессора общего назначения.

Ведущий

Во-первых, у нас есть Motorola 68000, работающий на частоте ~7,6 МГц, популярный процессор, уже присутствовавший во многих компьютерах того времени, таких как Amiga, (оригинальный) Macintosh, Atari ST… Любопытно, что каждый из этих компьютеров сменил своего “предшественника на 6502”, и хотя Master System (предшественник Mega Drive) не использовал процессор 6502, NES использовал (и в некотором роде целью Sega было завоевать потребителей Nintendo). В целом, можно увидеть некоторую корреляцию между эволюцией компьютеров и технологий игровых консолей.

Image
Чип Motorola 68000 в Mega Drive, произведённый Hitachi.

Возвращаясь к теме, 68k отводится роль “основного” процессора, и он будет обрабатывать игровую логику, операции ввода-вывода и графические вычисления. Он обладает следующими возможностями [1]:

Если вам интересна причина, по которой используются 24-битные адреса в процессоре, способном обработать 32-битные слова, то немногое оборудование того времени могло работать с 4 ГБ памяти. Также учитывая, что внедрение неиспользуемых адресных линий дорогое с точки зрения производительности и стоимости, Motorola достигла разумного компромисса (24 адресные линии), который также подготовил разработчиков к будущему полностью 32-битному процессору 68020.

Интересный набор инструкций

До революции RISC в 80-х была другая волна, которая попыталась утвердить способ построения наборов инструкций. По сути, потребительские процессоры 70-х (такие, как 6502 или 8080) содержат инструкции, которые уже предопределили, как будет доступна память (это называется “режим адресации”). С 68000, Motorola отделила функцию инструкции (операционный код) от режима адресации, делая его просто ещё одним параметром (операндом). Таким образом, разработчики могут использовать одни и те же опкоды с наиболее оптимальным режимом адресации на основе их потребностей.

Этот принцип называется ортогональностью набора команд и он сильно повлиял на новое поколение процессоров конца 70-х, но быстро отошёл на второй план с появлением RISC, по сути переложившим всё самое сложное на компиляторы. В любом случае серия Motorola 68k пользовалась большим спросом в 80-х, и лишь к началу 90-х компании начали переключаться на другого поставщика.

Ведомый

В этой консоли установлен еще один процессор, Zilog Z80, работающий на частоте ~3,5 МГц. Это тот же самый процессор, который был анализирован в статье про Master System.

В основном Z80 используется для управления звуком. Таким образом, ее 16-битная шина адреса состоит из следующего [3]:

Наконец, важно отметить, что оба процессора работают параллельно.

Доступная память

Основной процессор содержит 64 КБ выделенной оперативной памяти для хранения данных общего назначения, а Z80 содержит 8 КБ оперативной памяти для операций, связанных со звуком.

Взаимосвязь

Sega выбрала два независимых процессора, которые не знают друг о друге, так как же игры могут управлять обоими одновременно? Так, основная программа выполняется в 68000, и этот процессор может впоследствии записывать в оперативную память Z80. Потом, 68000 может отправить программу в оперативную память Z80 и дать команду Z80 загрузить ее (посылая сигнал сброса на Z80) [4]. Когда Z80 находится под контролем, его можно использовать для управления звуковой подсистемой и перемещения памяти с помощью ранее описанного метода, и все это в то время, когда 68000 занимается другими операциями.

Image
Архитектура памяти в Mega Drive/Genesis.

Поскольку одному процессору придется задействовать процессорную шину другого, а оба не могут использовать ее одновременно, существует дополнительный компонент Bus arbiter, который должен быть активирован, чтобы затормозить любой из процессоров, так что память может быть записана без опасности.

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


Графика

Ответ на это: Blast Processing! , что еще вам нужно знать?

Итак, если вы хотите знать реальный ответ: графические данные обрабатываются 68000 и выводятся на проприетарный чип под названием Video Display Processor (или сокращенно VDP), который затем отправляет полученный кадр (в виде линий развертки) на дисплей.

VDP работает на частоте ~13 МГц и поддерживает несколько режимов разрешения в зависимости от региона: до 320x224 пикселей в NTSC и до320x240 пикселей в PAL.

Несколько разрешений дисплея

Технически говоря, в VDP может поместиться либо 40, либо 32 колонки плиток на строку развертки, а количество рядов плиток зависит от региона (28 в NTSC или 30 в PAL) [5]. Хотя большинство PAL-игр не утруждают себя дополнительными плитками, разрешенными в PAL-системах (поскольку им, вероятно, нужно сохранить согласованность между двумя регионами, а NTSC - это общий знаменатель), поэтому они инструктируют VDP для рендеринга с 28 рядами (как они бы сделали в NTSC-системах). Таким образом, у VDP нет другого выбора, кроме как заполнить неиспользуемую область цветом фона (который также используется при оверсканировании).

Вы можете увидеть, какие игры PAL отображаются в режиме NTSC, проверив Mode Set Register #2 в эмуляторе с возможностью отладки (т.е. Exodus). Если четвертый бит справа равен 0, то VDP работает в режиме NTSC [6].

Image
Чтобы обеспечить быстрый многопользовательский режим в Sonic 2 (1992), в игре активируется “чересстрочный режим” для визуализации однопользовательского уровня с использованием плиток размером 8x16 пикселей (наряду с другими изменениями).
Image
В отличие от этого, более сложный многопользовательский режим игры Sonic 3 (1994) использует специальные пиксельные плитки 8x8, которые отделены от однопользовательских уровней.

Более того, существует дополнительный параметр, который можно установить на VDP, чтобы сложить две плитки для формирования 8x16 карт и затем рассматривать их как одну плитку. Следовательно, удваивается вертикальное разрешение. Однако это вдвое снижает частоту обновления, поскольку кадры теперь отображаются с чередованием (один кадр отображает четные линии развертки, следующий - нечетные, и так далее), поэтому он более ограничен в функциональности. Многопользовательский режим игры Sonic 2 является хорошим представлением этого режима [7].

Наконец, стоит отметить, что VDP автоматически заботится о добавлении отступов для области overscan, поэтому играм не нужно беспокоиться о том, в какие области безопасно рисовать графику (как это произошло с NES’s ‘danger zones’).

Организация контента

С точки зрения обработки графических данных, этот чип имеет два режима работы:

Что касается режимов от 0 до III? Они относятся к еще более старой модели SG-1000, а Mega Drive их не поддерживает.

Интересно отметить, что бывший разработчик этой системы позже сказал мне, что структура команд режима V (используемого для управления VDP в игре) унаследовала дизайн от TMS9918 (знаменитого видеочипа, используемого в SG-1000) [8]. Это облегчило сторонним разработчикам использование Mode V без зависимости от официальной документации (и последующих затрат на лицензирование).

Доступная память

Image
Архитектура памяти VDP.

Графическое содержимое распределяется по трем областям памяти [9]:

Построение кадра

В следующем разделе объясняется, как VDP рисует каждый кадр, для демонстрации в качестве примера используется Sonic The Hedgehog. Перед началом работы я рекомендую ознакомиться с modus operandi его предшественника, поскольку здесь многое будет пересматриваться.

Тайлы

Image
Несколько тайлов, прижатых друг к другу. В демонстрационных целях используется палитра по умолчанию.
Image
Один тайл размером 8x8 пикселей.
Некоторые тайлы в VRAM.

Как и PPU Nintendo, VDP - это движок на основе тайлов, и поэтому он использует тайлы (базовые битовые карты 8x8) для компоновки графических плоскостей. В случае VDP каждая плитка кодируется массивом длиной 4 байта, где каждая 4-битная запись соответствует пикселю, а ее значение соответствует записи цвета (указывающей на цветовую палитру).

Игровые картриджи хранят тайлы в ROM (находится в картридже), но они должны быть скопированы в VRAM, чтобы VDP мог их прочитать [10]. Традиционно это было возможно только в определенные временные рамки и выполнялось центральным процессором, к счастью, в данной консоли добавлена специальная схема для разгрузки этой задачи на VDP (подробности мы рассмотрим позже).

Тайлы используются для построения четырех плоскостей, которые, соединяясь вместе, образуют рамку, видимую на экране. Кроме того, тайлыпланов будут перекрывать друг друга, поэтому VDP будет решать, какая плитка будет видна, основываясь на типе плана и значении приоритета тайла.

Задний план (Background)

Image
Выделенная фоновая карта.
Image
Выделенная фоновая карта с отмеченной выбранной территорией

Фоновая плоскость, также известная как плоскость B - это прокручиваемая тайлмапа (набор тайлов), содержащая статические тайлы [11].

Эта плоскость может иметь шесть различных размеров: 256x256, 256x512, 256x1024, 512x256, 512x512, 1024x256. Программисты могут выбрать размер, который лучше соответствует типу прокрутки, которая будет необходима.

Каждая плитка может быть перевернута по горизонтали и/или вертикали и иметь приоритет.

На показанном примере вы заметите, что выделенная область для отображения не является квадратом… Это не обязательно так! VDP позволяет установить значения горизонтальной прокрутки для всего кадра, для каждой отдельной строки сканирования или для каждых восьми пикселей. Это означает, что разработчики могут придать выбранной области форму ромбоида и изменять ее углы по мере движения игрока, чтобы имитировать перспективные эффекты. Трюки, подобные этому, не повреждают плоскость, VDP получает каждую (выбранную) горизонтальную линию и строит из нее обычный кадр.

Передний план (Foreground)

Image
Выделенный передний план.
Image
Выделенный передний план с выбранной областью.
Пример плоскости переднего плана, плоскость окна не используется.

Плоскость переднего плана, также известная как плоскость A [12], имеет те же свойства, что и плоскость фона, за исключением того, что эта плоскость имеет более высокий приоритет, поэтому плитки, отрисованные здесь, будут по своей природе находиться поверх плоскости фона.

Кроме того, эта плоскость позволяет разделять себя, образуя новую подплоскость: Оконная плоскость. Разница лишь в том, что последний не прокручивается.

В целом, вы можете видеть, что новые значения приоритетов и отдельные плоскости позволяют дизайнерам игр привнести новые типы пейзажей. Кроме того, используя разную скорость прокрутки на каждой плоскости, можно добиться параллакс-эффекта.

Спрайты

Image
Выделенный Sprite слой.
Image
Выделенный слой Sprite с выделенной областью.

В этой плоскости плитки рассматриваются как спицы. Они располагаются на карте 512x512 пикселей, и только часть ее (выходное разрешение VDP) выбирается для отображения. Это удобно для скрытия ненужных спрайтов или подготовки других, которые будут показаны в будущем. VDP также предоставляет старую функцию обнаружения столкновений.

Спрайты формируются путем объединения плиток размером до 4x4 (карта 32x32 пикселя) и выбора до 16 цветов (включая прозрачный). Если нужен спрайт большего размера, то несколько спрайтов можно объединить в один.

На одну линию развертки может приходиться не более 20 спрайтов, а на один экран - не более 80 (превышение этого количества приведет к повреждению всего слоя).

Область в VRAM, где определяются спрайты, называется Sprite Attribute Table [13], и каждая запись содержит индекс плитки, координаты слоя (x и y), значение link (управляет тем, какие спрайты рисуются первыми), приоритет (спрайт с наивысшим приоритетом отображается при наложении), индекс цветовой палитры и вертикальный и горизонтальный флип.

Результат

Image
Результирующий кадр.
Image
Кадр, транслируемый на телевизор (формат NTSC), VDP автоматически покрывает кадр областью оверскана, которую большинство ЭЛТ-телевизоров скроет.
Тада!

Во время рисования кадра система будет последовательно вызывать различные процедуры прерывания в зависимости от того, куда направлен луч ЭЛТ Как вы, вероятно, видели на предыдущих консолях, это позволяет процессору работать над следующим кадром (или изменять текущий).

Как правило, существует два типа прерываний, называемых: H-Blank (каждая горизонтальная линия) и V-Blank (каждый кадр).

H-Blank вызывается много раз, но ограничивается выполнением коротких рутин. Кроме того, доступны только CRAM и VSRAM, поэтому игры могут только обновлять свои цветовые палитры или вертикально прокручивать свои плоскости.

V-Blank позволяет использовать более длинные процедуры, но имеет недостаток - вызывается только 50 или 60 раз в секунду (в зависимости от региона консоли), но при этом имеет доступ ко всем участкам памяти.

Обратите внимание, что область вылета развёртки в примере имеет несколько случайных цветных точек в правом нижнем углу. Это широко известно как CRAM dots, и происходит это потому, что CPU обновляет палитры в CRAM в то же время, когда VDP транслирует оставшиеся линии сканирования (в примере это происходит во время оверскана). Этот конфликт заставляет VDP извлекать любое значение, которое CPU записывает в это время (в отличие от требуемого места в CRAM), поэтому изображение повреждается. Однако, поскольку в данном случае игра обновляет CRAM только при оверскане, эта аномалия остается незамеченной на традиционных ЭЛТ. Другие игры пытаются обновить палитры в середине кадра, чтобы добиться большего количества цветов, при этом приходится балансировать появление точек CRAM.

Отдельное устройство передачи данных

Всё это время мы обсуждали каким образом процессор может обновлять кадры, а что насчет VDP? Предоставляет ли она что-то более специализированное? Да, этот чип имеет функцию прямого доступа к памяти (сокращенно DMA), которая позволяет перемещать данные между ячейками памяти на более высокой скорости и без вмешательства центрального процессора.

DMA может быть активирован во время H-Blank, V-Blank или активного состояния (вне любого прерывания), и может использоваться для записи через VRAM, CRAM и/или VSRAM [14]. Кроме того, во время передачи данных в оперативную память процессора с помощью DMA шина процессора будет заблокирована, поэтому правильное планирование имеет решающее значение для достижения производительности.

Исключительное использование этих возможностей может обеспечить графику высокого разрешения, плавную параллакс-прокрутку и высокую частоту кадров. Более того, ваша игра может появиться в телевизионной рекламе с множеством надписей Blast Processing! .

Видеовыход

Первый дизайн этой консоли (обычно называемый “Модель 1”) имел тот же порт видеовыхода, что и Master System. В последующих моделях “Модель 2” и “Модель 3” вместо этого был использован порт mini-DIN.


Звук

Аудиовозможности этой консоли, мягко говоря, несколько нестандартны. С одной стороны, Mega Drive предоставляет существующую аудиотехнологию предыдущего поколения, с другой - добавляет новую (но сложную) технику синтеза поверх существующей. Так что, в некотором смысле, вы получаете оба поколения.

Учитывая это, в Mega Drive установлены два звуковых чипа: Yamaha YM2612 и Texas Instruments SN76489.

Функционал

Давайте теперь посмотрим, что предлагает каждый чип, поскольку каждый из них очень отличается.

Yamaha YM2612

FM каналы.
PCM каналы.
Sonic The Hedgehog (1991).

Yamaha YM2612 - это FM-синтезатор [15], работающий на скорости 68000 и предоставляющий шесть FM-каналов, на которых можно воспроизводить PCM-сэмплы (с разрешением 8 бит и частотой дискретизации 32 кГц).

Частотная модуляция или “FM” синтез - это один из многих профессиональных методов синтеза звука, который значительно вырос в популярности в 80-е годы и дал дорогу совершенно новым звукам (многие из которых вы можете найти, прослушав поп-хиты той эпохи).

В невероятно упрощенном виде алгоритм FM берет одну форму волны (носитель) и изменяет ее частоту с помощью другой формы волны (модулятор). В результате получается новая форма волны с другим звучанием. Комбинация несущая-модулятор называется оператором, и несколько операторов могут быть соединены вместе для формирования конечной формы сигнала. Различные комбинации дают разные результаты. Этот чип позволяет использовать 4 оператора на канал.

По сравнению с традиционными синтезаторами PSG это было радикальным улучшением: Вы больше не зацикливались на заранее заданных формах волны.

Texas Instruments SN76489

PSG каналы.
Sonic The Hedgehog (1991).

Микросхема Texas Instruments SN76489 представляет собой PSG-чип, который может производить три импульсные волны и одну шумовую.

На самом деле это звуковой чип оригинальной Master System, который встроен в VDP. Он работает со скоростью Z80.

Обратите внимание, что канал ‘Pulse 3’ остается неиспользованным. Это происходит потому, что в игре используется режим для канала шума, который резервирует третий импульсный канал для модуляции [16], функция, которая была доступна и на Master System.

Микширование

Все аудио каналы
Sonic The Hedgehog (1991).

Оба чипа могут выводить звук одновременно, тогда дополнительный компонент, называемый “аудиомикшером”, призван принимать оба сигнала и смешивать их.

Наконец, полученный аналоговый сигнал передается через аудиовыход.

Дирижёр

Теоретически, карта памяти Z80 предполагает, что Z80 является единственным процессором, способным управлять этими двумя чипами (что может быть облегчением для 68000, поскольку последний уже пресытился другими задачами). На практике, однако, Z80 можно отключить, чтобы 68000 имел доступ к YM2612 (но не к SN76489) [17]. Поэтому, для простоты, в этой статье мы будем считать, что звуковые задачи возложены на Z80.

Далее, Z80 является самостоятельным процессором, поэтому ему нужна собственная программа (хранящаяся в 8 КБ оперативной памяти), чтобы интерпретировать музыкальные данные, полученные от 68000, и эффективно манипулировать двумя звуковыми чипами соответствующим образом. Эта программа называется секвенсор или драйвер.

Взлом сэмплирования

Некоторые музыкальные композиторы могут решить сосредоточиться на канале PCM для воспроизведения более правдивых звуков, и для этого в играх придется непрерывно упорядочивать и транслировать свою музыку, используя остальную доступную оперативную память. Основное ограничение заключается в том, что для заполнения этой памяти главная шина должна быть заблокирована первой (поэтому никакие команды или сэмплы не могут быть отправлены на аудиочипы в течение этого промежутка времени). В противном случае могут появиться звуковые аномалии (приглушение звука, замороженные ноты, низкая частота дискретизации и т.д.).

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

PCM каналы.
Все аудио каналы.
Sonic The Hedgehog 3 (1994). Это одна из композиций, соавтором которой, по слухам, является Майкл Джексон. В любом случае, общий саундтрек имел характерный ритм по сравнению со своими предшественниками.
Канал PCM (единственный используемый канал).
Toy Story (1995).
Это секвенция в реальном времени с помощью 68000 [18]. Очень интенсивное задание, то есть его можно было выполнять только в очень определенных точках игры (например, в главном меню).

Я знаю, что они и близко не стоят к CD-качеству (16 бит при 44,1 кГц), но имейте в виду, что эти звуки когда-то считались невозможными для воспроизведения на этой консоли, и я даже не подчеркиваю, насколько велик прогресс по сравнению с предыдущим поколением, так что они определенно заслуживают хоть какой-то заслуги!

Вспомогательная FM-композиция

Если программирование FM-синтезатора с помощью приборной панели Yamaha DX7 уже считалось сложным, представьте себе головную боль от сочинения музыки с помощью только 68k-ассемблера…

К счастью, позже Sega распространила программное обеспечение для ПК с MS-DOS под названием GEMS для облегчения создания (и отладки) музыки Mega Drive [19]. Это был очень полный инструмент, среди многих вещей он включал множество патчей (предварительно настроенных операторов на выбор), что также объясняет, почему некоторые игры имеют очень похожие звуки.

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

Каналы также содержали некоторую логику, реализуя условия в своих данных, позволяя музыке “развиваться” в зависимости от того, как игрок продвигается в игре.

(Бонус) Звук Mega CD

Вот интересный факт: дополнение Mega CD предоставляло 2 дополнительных канала для CD Audio (среди прочего). Одна из самых известных игр компании, Sonic CD, имела очень впечатляющее качество музыки, но, как и все игры, она должна была зацикливаться. Проблема заключалась в том, что зацикливание музыки на 1x CD ридере приводило к заметным пробелам, поэтому в игру были включены заполнители цикла, которые выполнялись с другого PCM чипа, пока заголовок CD возвращался к началу.

Эти наполнители встречаются только в ранних бета-версиях игры, и они не попали в релиз, а в ремейке 2011 года они наконец-то появились. Это один из уровней игры:

MegaCD version (1993).
Remastered version (2011).

Заметили ли вы пробел в версии Mega CD?


Игры

Игры в основном написаны на 68000 ассемблере, а звуковой драйвер реализован на Z80 ассеблере. Оба находятся в ПЗУ картриджа и могут иметь размер до 4 МБ без необходимости маппера.

Дополнительные функции

С точки зрения расширяемости, эта конструкция была не такой модульной, как NES или SNES. Следовательно, более поздние дополнения, такие как 32x (который включал новый чипсет, заменяющий 68k), должны были обходить VDP (отсюда и необходимость в “соединительном кабеле”).

Для картриджей производился только один пользовательский чип - Sega Virtua Processor [20] (ребрендинг Samsung SSP1601, 16-битного цифрового сигнального процессора), который производил полигоны, впоследствии закодированные в виде тайлов (чтобы VDP мог их прочитать). В любом случае, с ним поставлялась только одна игра, так как SVP оказался очень дорогим в производстве.

Ранние попытки создания сети

До того, как онлайновые сервисы получили широкое распространение (и стали стандартизированными), Sega попытала счастья с Sega Meganet, коммутируемым сервисом для использования игр. Meganet требовала от пользователей приобретения отдельного аксессуара под названием Sega Mega Modem, затем подключения его к задней части консоли (где находился разъем DE-9) и, наконец, подключения к телефонной линии. Тогда игры будут рассматривать модемный блок как еще один контроллер, с добавлением последовательного обмена данными [21] (в отличие от параллельного кодирования, используемого для контроллеров).

Как бы то ни было, эта функция просуществовала всего пару лет, после чего Sega убрала разъем DE-9 из последующих версий и полностью закрыла эту услугу.


Защита от пиратства и блокировка регионов

Чтобы блокировать импортные игры, Sega немного изменила форму гнезда для картриджа в разных регионах, но при этом сохранила одинаковые выводы. Игры также могут выполнять “блокировку региона”, проверяя значение регистра Version (который выводит значение региона).

Есть два простых способа обойти это. Во-первых, купив один из конвертеров картриджей сторонних производителей. Или, во-вторых, разобрав консоль и перемкнув контакты на материнской плате, которые изменяют значение регистра Version.

Когда дело доходило до программных мер по борьбе с пиратством, самой простой проверкой был размер SRAM: На бутлег-картриджах было больше места, чем требовалось для размещения любой игры, поэтому игры проверяли наличие ожидаемого размера при запуске. Программисты также могут реализовать дополнительные проверки контрольной суммы в случайных точках игры на случай, если хакеры удалят первоначальные проверки SRAM. Единственный способ победить это - утомительно найти все проверки и удалить их одну за другой…


Вот и всё, ребята


Помощь проекту

Эта статья является частью серии Архитектура консолей . Если вы нашли ее интересной, пожалуйста, подумайте о пожертвовании. Ваш взнос будет использован для финансирования покупки инструментов и ресурсов, которые помогут мне улучшить качество существующих и предстоящих статей.

Donate with PayPal
Become a Patreon

Вы также можете купить цифровую версию книги на английском языке. Я отношусь к прибыли как к пожертвованиям.

Image

Перечень желательных инструментов и последних приобретений для этой статьи отслеживается здесь:

### Interesting hardware to get (ordered by priority)

- 32X (£ ?)
- Any dev kit (only if found at a reasonable price)

### Acquired tools used

- PAL Mega Drive with a Mega CD and a couple of games (£150)
- Switchless region free mod (£20, the desoldering tools were much more expensive!)
- Component video adapter (£30)

В качестве альтернативы, вы можете помочь, предлагая изменения и/или добавляя перевод.


Copyright and permissions

This work is licensed under a Creative Commons Attribution 4.0 International License. You may use it for your work at no cost, even for commercial purposes. But you have to respect the license and reference the article properly. Please take a look at the following guidelines and permissions:

Article information and referencing

For any referencing style, you can use the following information:

For instance, to use with BibTeX:

@misc{copetti-megadrive,
    url = {https://www.copetti.org/pl/writings/consoles/mega-drive-genesis/},
    title = {Architektura Mega Drive / Genesis - Praktyczna Analiza},
    author = {Rodrigo Copetti},
    year = {2019}
}

or a IEEE style citation:

[1]R. Copetti, "Architektura Mega Drive / Genesis - Praktyczna Analiza", Copetti.org, 2019. [Online]. Available: https://www.copetti.org/pl/writings/consoles/mega-drive-genesis/. [Accessed: day- month- year].
Special use in multimedia (Youtube, Twitch, etc)

I only ask that you at least state the author’s name, the title of the article and the URL of the article, using any style of choice.

You don’t have to include all the information in the same place if it’s not feasible. For instance, if you use the article’s imagery in a Youtube video, you may state either the author’s name or URL of the article at the bottom of the image, and then include the complete reference in the video description. In other words, for any resource used from this website, let your viewers know where it originates from.

This is a very nice example because the channel shows this website directly and their viewers know where to find it. In fact, I was so impressed with their content and commentary that I gave them an interview 🙂.

Appreciated additions

If this article has significantly contributed to your work, I would appreciate it if you could dedicate an acknowledgement section, just like I do with the people and communities that helped me.

This is of course optional and beyond the requirements of the CC license, but I think it’s a nice detail that makes us, the random authors on the net, feel part of something bigger.

Third-party publishing

If you are interested in publishing this article on a third-party website, please get in touch.

If you have translated an article and wish to publish it on a third-party website, I tend to be open about it, but please contact me first.


Источники / Продолжить чтение

Аудио

Бонус

Процессор

Игры

Графика

Фотографии


Rodrigo Copetti

Rodrigo Copetti

Надеюсь, вам понравилась эта статья! Если вы хотите узнать больше об авторе, нажмите сюда и если вы хотите поддержать его, то нажмите сюда

rsslinkedintwittergithub facebookreddit