Контроллеры мультипамяти или контроллеры управления памятью [1] ( MMC ) — это различные виды специальных чипов, разработанных различными разработчиками видеоигр для использования в картриджах Nintendo Entertainment System (NES) . Эти чипы расширяют возможности оригинальной консоли и позволяют создавать игры NES с функциями, которые оригинальная консоль не может предложить сама по себе. Базовое оборудование NES поддерживает всего 40 КБ ПЗУ, до 32 КБ PRG и 8 КБ CHR, таким образом, возможна только одна плитка и таблица спрайтов. Этот предел был быстро достигнут в течение первых двух лет Famicom на рынке, и разработчики игр начали запрашивать способ расширения возможностей консоли.
В сообществе эмуляции и Homebrew эти чипы также известны как картографы . [2]
CNROM — самое раннее банковское оборудование, представленное на Famicom, появившееся в начале 1986 года. Оно состоит из одной дискретной логической микросхемы серии 7400. CNROM поддерживает один фиксированный банк PRG и до восьми банков CHR для общего объема ROM в 96 КБ. Некоторые сторонние вариации поддерживают дополнительные возможности. Многие игры CNROM сохраняют данные игрового уровня в CHR ROM и очищают экран при их считывании.
Ранние картографы NES состояли из дискретных логических микросхем серии 7400. [1] : 29 UNROM появился в конце 1986 года. Он поддерживает один фиксированный банк PRG объемом 16 КБ, остальная часть PRG является переключаемой. [3] Вместо выделенной микросхемы ROM для хранения графических данных (называемой CHR компанией Nintendo), игры, использующие UNROM, хранят графические данные в программном ROM и копируют их в RAM на картридже во время выполнения. [1] : 29
MMC1 — первая индивидуальная интегральная схема MMC от Nintendo , включающая поддержку сохраненных игр и многонаправленной прокрутки. [1] : стр. 30 Чип поставляется как минимум в пяти различных версиях: MMC1A , MMC1B1 , MMC1B2 , MMC1B3 и MMC1C . Различия между различными версиями незначительны, в основном из-за поведения защиты памяти сохраненных игр. Чип MMC1 позволяет переключать различные банки памяти. Программное ПЗУ можно выбирать блоками по 16 КБ или 32 КБ, а символьное ПЗУ можно выбирать блоками по 4 КБ или 8 КБ. Необычной особенностью этого контроллера памяти является то, что его вход является последовательным , а не параллельным , поэтому для отправки команды в схему требуется 5 последовательных записей (со сдвигом битов ) . [4]
MMC2 используется только в Mike Tyson's Punch-Out!! и более позднем переиздании, которое заменило Mike Tyson . Можно выбрать один банк 8 КБ программного ПЗУ (с заблокированными оставшимися 24 КБ), а ПЗУ персонажей можно выбрать в двух парах банков по 4 КБ, которые будут автоматически переключаться, когда видеооборудование попытается загрузить определенные графические плитки из памяти, что позволит использовать на экране большее количество графики без необходимости в самой игре вручную переключать их. [5]
MMC3 был представлен в 1988 году. Он добавляет таймер IRQ, позволяющий прокручивать разделенный экран без потери спрайта 0, а также два выбираемых банка ПЗУ программ по 8 КБ и два выбираемых банка ПЗУ персонажей по 2 КБ + четыре по 1 КБ, что позволяет легко и мгновенно заменять данные спрайтов и плиток. Поддерживается 8 КБ ОЗУ для сохранения игры. [6]
Этот чип используется только в трех играх, все из которых были выпущены только для Famicom в Японии и были разработаны Intelligent Systems . Функционально он почти идентичен MMC2, с той лишь разницей, что MMC4 переключает ПЗУ программы в банки по 16 КБ вместо банков по 8 КБ и имеет поддержку SRAM с батарейным питанием для сохранения игровых данных. [7]
MMC5 — самая продвинутая MMC от Nintendo. Изначально она была также самой дорогой. Только Koei регулярно использовала этот чип. Он похож на VRC6 от Konami, но обработка прерываний работает по-другому. Чип имеет 1 КБ дополнительной оперативной памяти , два дополнительных звуковых канала с прямоугольной волной , один дополнительный звуковой канал PCM , поддержку вертикальной прокрутки разделенного экрана, улучшенные графические возможности (что делает доступным 16 384 различных плиток на экране вместо 256 и позволяет каждой отдельной фоновой плитке размером 8x8 пикселей иметь собственное назначение цвета вместо ограничения одним набором цветов на группу плиток размером 2x2), высоконастраиваемое переключение банков ПЗУ программы и ПЗУ персонажа, а также счетчик IRQ на основе растровой строки. MMC5 поддерживает до 2 МБ общей памяти ПЗУ, однако ни одна коммерчески выпущенная игра не превышала 1 МБ. [8]
MMC6 похожа на MMC3, но имеет дополнительный 1 КБ ОЗУ, который может быть сохранен с помощью резервного аккумулятора. [9]
ASIC Famicom Disk System — это расширенный аудиочип, который поддерживает один канал однотактного (6 бит × 64 шага) синтеза таблицы волн со встроенным фазовым модулятором (PM) для генерации звука, аналогичного синтезу частотной модуляции . Некоторые картриджные преобразования игр Disk System имеют MMC для замены аудиоканала.
A*ROM MMC, названная в честь плат картриджей AMROM, ANROM и AOROM, которые ее используют, была разработана Крисом Стэмпером из Rare и произведена Nintendo. Она встречается в играх, разработанных Rare для Nintendo, Tradewest, GameTek, Acclaim и Milton Bradley. [10] Она позволяет переключать PRG ROM в одной части размером 32 КБ и использует CHR RAM для общего объема ROM до 256 КБ. В отличие от других чипов, она использует одно экранное зеркалирование. [11]
Nintendo сохраняла жесткий контроль над выпускаемым на международном уровне оборудованием картриджей и не позволяла третьим сторонам использовать их собственные печатные платы и преобразователи. Это продолжалось до конца коммерческой жизни NES, когда Nintendo смягчила ограничения. В результате большинство сторонних преобразователей можно будет найти только в картриджах Famicom или нелицензионных картриджах.
VRC2 — это чип от Konami, который позволяет программному ПЗУ переключаться в банках по 8 КБ, а символьному ПЗУ — в банках по 1 КБ. У этой MMC есть две известные версии: VRC2a и VRC2b. [13]
Используется исключительно в японской версии Salamander .
Чип VRC4 аналогичен чипу VRC2, за исключением того, что VRC4 поддерживает емкость CHR 512 КБ, 2 режима банка PRG ROM по 8 КБ и 1 зеркалирование экрана.
Используется исключительно в адаптере QTa в серии образовательных игр «Космическая школа» от Konami. [15]
VRC6 (Virtual Rom Controller) — это усовершенствованный чип MMC от Konami, поддерживающий переключение банков как для программного кода, так и для графики, а также счетчик IRQ на основе циклов ЦП , который также может выступать в качестве счетчика строк развертки. Чип также содержит поддержку трех дополнительных звуковых каналов (двух прямоугольных волн по восемь рабочих циклов каждая, которые можно настроить для воспроизведения сэмплов PCM с использованием 100% рабочего цикла, и одной пилообразной волны ). Он используется в Akumajō Densetsu , японской версии Castlevania III: Dracula's Curse , в то время как западная версия использует MMC5 от Nintendo. Поскольку Nintendo Entertainment System по своей конструкции не позволяет картриджам добавлять дополнительные звуковые каналы, саундтрек версии Famicom был переработан в соответствии с этими спецификациями; саундтрек для западной версии использует пять стандартных звуковых каналов, встроенных в NES. [16]
VRC7 — это усовершенствованный чип MMC от Konami, поддерживающий переключение банков и подсчет IRQ, эквивалентный VRC6, а также содержащий производную YM2413, обеспечивающую 6 каналов 2-op FM-синтеза . Усовершенствованное аудиооборудование используется только в игре Famicom Lagrange Point . Японская версия Tiny Toon Adventures 2 также использует VRC7, но не использует преимущества расширенного звука. [17] Недостатком расширенной аудиочасти является то, что она имеет некоторый шум квантования, который заметен на низких нотах. Это было перенесено из YM2413, на котором основан чип FM VRC7.
163 использовался только в играх, эксклюзивных для Японии. Его возможности были немного лучше, чем у MMC3 от Nintendo. Вариант содержал дополнительное звуковое оборудование, которое воспроизводит 4-битные волновые сэмплы. Он поддерживает от 1 до 8 дополнительных звуковых каналов, но при включении достаточно большого количества каналов появляется слышимое наложение из-за все более слышимого временного мультиплексирования . [ необходима цитата ]
FME-7 — это схема отображения памяти, разработанная Sunsoft для использования в картриджах NES и Famicom. Она переключает ПЗУ программ в банках по 8 КБ и переключает ПЗУ персонажей в банках по 1 КБ. Она также содержит аппаратное обеспечение для генерации сигналов IRQ после определенного количества тактовых циклов ЦП , таким образом достигая эффекта разделения экрана с минимальным использованием вычислительной мощности. [ необходима цитата ]
Эта версия FME-7 содержит вариант широко используемой микросхемы Yamaha YM2149 (SSG), производной от популярной микросхемы AY-3-8910 . [ необходима ссылка ]
Некоторые индивидуальные ( домашние ) и нелицензированные разработчики создали собственные MMC для NES, большинство из которых просто расширяют доступную память.
228 — это простая MMC-карта переключения банков, разработанная для использования в играх Action 52 и Cheetahmen II . Она не имеет бита управления таблицей имен. В Action 52 multicart она также содержит небольшую 16-битную область регистров, которая содержит старый выбор меню при выходе из игры.
GTROM или Cheapocadabra — это самопрошивающаяся MMC, разработанная в 2015 году для рынка homebrew. Плата содержит 512 КБ PRG ROM, 16 КБ CHR ROM и два светодиода. Хотя GTROM не содержит PRG RAM, сохранение игр возможно благодаря возможности прошивки PRG ROM программным обеспечением NES.
MXM-1 — это картограф памяти, созданный Something Nerdy Studios для использования в игре Former Dawn. Он позволяет использовать атрибуты 8x1 для использования большего количества цветов, воспроизведения FMV, расширенного звука (8 каналов подлинного звука PCM, эхо-буфер, поддержка волновых таблиц и плавная интерполяция на основе функции sinc) и прямого доступа к 768 МБ ПЗУ (косвенно 2,8 ГБ) и 1 МБ ОЗУ [18]