Как стать автором
Обновить

Мапперы на Famicom, NES, Денди: откуда взялись и зачем нужны (часть 2/2)

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров7.4K
Всего голосов 48: ↑47 и ↓1+65
Комментарии20

Комментарии 20

Какое знакомое решение :)

А ещё, помнится, пришла мне как-то давно блажь сделать телефон в стиле UzeBox, но на более мощном сигнальнике, который имеет даже какое-то подобие MMX. Но поскольку адресное пространство у него, скажем прямо, сигнальниковое — блажь докатилась до идеи сделать там две страницы, переключаемые таки битом-селектором :) У подножия этой идеи блажь остановилась и отхлынула обратно, так что если кому интересно — подробности могу запостить отдельно.

UPD: что-то уже сплю и не соображаю, можно ли тупо занулить младший бит адреса у DDR DRAM и вычитывать нечётные адреса исключительно при помощи Burst Mode, или это слишком неконтролируемый процесс? Имеется в виду, конечно, не пека и не консоль, а сигнальник или хотя бы микроконтроллер.

Очень интересный материал, спасибо. Хотелось бы понять - каким образом звук из синтезаторов, встроенных в мапперы, попадает в саму консоль и далее на ее звуковой аналоговый выход?

На слоте картриджа Famicom есть два контакта, 45 и 46 - выход готового усиленного аналогового звука из чипа 2A03 и вход RF-модулятора. На плате каждого обычного картриджа между ними перемычка, а те, где есть синтезаторы, подмешивают свой звук так, как им нравится - или размыканием и резистивным микшером, или просто через один резистор. Перемычка видна на первом фото с платой NROM, там над ней цифра 45.

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

А если не секрет, откуда такие глубокие познания про всю эту тему (прямо скажем, бывшую актуальной лет 30 назад)? Это ж какой опыт работы со всеми этими картриджами надо иметь, чтобы всё это знать :-)

У Nintendo вообще были интересные задумки, связанные со звуком. В Famicom во втором джойстике есть встроенный микрофон. Он использовался в нескольких играх, для совершения каких-то игровых действий в них надо было где-нибудь подуть, посвистеть, поговорить (на самом деле - издать любой громкий звук). До NES и Денди эта фишка не добралась.

Я зашёл в IT через геймдев. В детстве увлекался электроникой, делал самоделки. Поиграл в Денди, захотел сам делать игры. Плотно посидел на Спектруме, освоил ассемблер Z80. Поработал на рынке продавцом игр - ознакомился с библиотекой Денди-Сеги-GB-GG-PS1. Поработал в ремонте приставок. Таким образом сориентировался на ретрогейминг-ретрокомпьютинг до того, как это стало трендом. PC появился только в 2000-ом, сразу пошли эмуляторы - захотел и начал делать их сам. Когда дошёл до работы в геймдеве, на дворе была эпоха игр для мобильников, шаровар, Flash. Поработал всюду, понял, что это не то, что я хотел делать, вышел из геймдева. В начале 2010-х начал подниматься интерес к ретро-разработке, меня спросили, мог бы я разработать что-то для настоящих NES/Genesis/SNES - понял, что обладаю нужными знаниями, и это гораздо ближе к моим интересам. Занялся, делал проекты для разных людей, в том числе для NES со всеми основными мапперами. В общем, так и вышло - лет 30 копаюсь в теме, которая была актуальной лет 30 назад.

Респект, очень здорово. Я, наверное, совсем не в теме - а насколько ретрокомпьютинг сейчас реально востребован? Геймеры, насколько я понимаю, рубятся либо в крутые 3D-игры, для которых нужны мощные компы, либо в игры на смартфонах. Ну это утрированно, конечно. Но если посмотреть на банальные аркады-стрелялки, их в браузерах бесплатно навалом. Насколько много гиков, которые готовы запускать эмуляторы Спектрумов, Денди и прочих консолей из 90-х, а то и играть на реальных консолях или их современных клонах? Поди, это всё дяди возраста 40+? :) И какую-то значительную долю среди всех геймеров они вряд ли составляют?

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

Прикинуть общий объём аудитории сложно, это точно десятки тысяч людей, вероятно сотни тысяч, может быть единицы миллионов (есть ретроблоггеры-миллионники), но едва ли десятки миллионов. Возраст зависит от конкретного обособленного интереса, в среднем по палате 30-40, есть отдельные молодые ребята (встречал от 13), но для более классических платформ типа Atari 2600 это все 50+. Я планирую написать обзор на все эти ретро-движения, довольно интересная тема.

Лет десять назад как раз начался довольно активный рост всего около-ретрогеймерского, сейчас жизнь прямо бурлит, делаются буквально сотни новых реально 8-битных игр (не стилизаций на PC) в год. За счёт нишевости даже удаётся монетизировать эти увлечения несколько более удачно, чем инди на PC - вход значительно сложнее, комьюнити более лояльное, ориентированное на физические носители, и к тому же в силу возраста более платёжеспособное.

На Dendy/NES/Famicom выходит где-то примерно 50 новых игр в год.

Игры делаются любителями, и б0льшая их часть - не самые продвинутые по меркам приставки. Из чего-то более-менее официального, могу вспомнить только "8-bit ADV Steins;Gate" (дополнение к "Steins;Gate Elite" на Switch, по факту представляет собой ром + эмулятор, вышло в 2018-2019).

Они прямо на картриджах с микросхемами ROM выходят? Или для этого сделан какой-то адаптер с прошиваемой флешкой/SD-картой?

Игры выходят и на картриджах, и в цифровом виде. Флеш-картриджи, конечно, тоже есть, но прямого отношения к выходу игр они не имеют.

Да, снова пришлось отказаться от впихивания в текст всего-всего, компьютеры я решил не включать. MSX большая и очень интересная тема, про неё надо как-нибудь рассказать отдельно.

Меня давно занимает вопрос, как так вышло, что Konami использовала разные дополнительные звуковые синтезаторы на MSX и Famicom. На MSX у них уже в 1986 году был свой собственный прекрасный SCC, очень гибкий, хорошо звучит Зачем через три года было делать куда более простой VRC6, или лицензировать куда более сложный OPLL для VRC7, да ещё всего для пары игр? Единственное объяснение, что инженеры компании эти разработки сами не делали, а делали производители ASIC'ов, у которых они заказывали себе чипы (SCC делала Toshiba, VRC7 скорее всего Yamaha).

Хотя Хиденори Маезава, композитор музыки для многих игр на Famicom, в интервью давеча сказал про VRC6 - 'I made!'. На английском он там сам не говорит, через переводчика, поэтому комьюнити интерпретировало это как заявление, что он как-то участвовал в создании чипа. Но как, если он не инженер, а музыкант - непонятно.

Я только могу предположить, что чехарде виноваты бизнес-процессы. Поскольку SCC заказной чип, то в какой то момент возникла ситуация "Нужен здесь и сейчас халатик, но только с перламутровыми пуговицами!" Халатик (игра) то был, а вот перламутровые пуговицы (SCC), закончились и неизвестно когда будут, да и будут ли вообще . Вот и лепила Konami, из того что было, эти пуговицы. А музыканты и программисты отдувались за всё это.
С Ямаховским OPLL, КМК получилась ситуация что после урезания OPL2 до OPLL? он перестал быть интересен целевой аудитории (музыкантам). Вот его и списали на берег в картриджи, чего добру пропадать? Отобъём денюжку малую, и утилизировать не прийдется.
Но это только мои предположения.;)

О, MSX первый компьютер, за который я сел)))

Объем рома Super Street Fighter II на Sega Genesis 5 MB, хотя сути это не меняет.

Да, верно. Спасибо, поправил.

На разъёме картриджа нет сигнала от кнопки сброса. Таким образом, устройства, расположенные на картридже, не имеют возможности узнать, что игрок нажал кнопку сброса, и произвести свою инициализацию.

Несмотря на то, что ресет на картридж действительно не подается, определить сброс все таки можно, иначе как бы работали многоигровки, особенно с переключением по ресету. Например при зажатом ресете перестает генериться сигнал M2, и вроде вообще переходит в 3е состояние, этим как правило и пользуются.

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

И в принципе пиратские мапперы - отдельная интересная и относительно мало исследованная тема. Их кстати до сих пор разрабатывают.

А вот смысл делать нестандартный UNROM512 мне не особо ясен - можно тот же MMC3 из новоделов использовать - дешево и сердито, до 2MB ROM, и нет проблем записать на реальное железо.

Да, определение сброса штатно реализовано в том же MMC5, именно по пропаданию частоты на M2. Но и там состояние маппера не сбрасывается целиком, только частично. Наличие схем сброса вообще не сильно типично, их нет ни в процессоре (только срабатывает обработка прерывания, читающая вектор сброса вместо вектора прерывания), ни в PPU, ни в APU, ни, конечно, в ОЗУ. Всюду начальное состояние считается неопределённым и надо задавать его своим кодом - код дешевле, чем железо. Об этом и было замечание в тексте, пытался объяснить суть без закапывания в подробности (нельзя, но если очень хочется, то можно, надо взять простой советский ... - типичная история с этими делами).

MMC3 конечно гораздо лучше, но MMC3 из новоделов использовать в США никак не дёшево и сердито, тем более 13 лет назад, когда был придуман UNROM512. Обычная 74-ая логика определённо более доступна, чем китайский клон проприетарного чипа, который сегодня есть, а завтра нет. Проблем с записью у UNROM512 тоже нет, оригинальные платы от RetroUSB и InfiniteNESLives позволяют программировать картридж в сборе через слот. К тому же поддерживается перепрограммирование в приставке, для сохранений без батареек и возможности угробить невзначай прошивку.

В пиратских мапперах покопаться было бы весьма интересно. Но это надо CaH4e3'а как-то сподвигнуть написать статью, он знает о них гораздо больше.

Для переключения банков используется перехват чтения из определённого адреса.

"Гестапо перекрыло все выходы, но Штирлиц вышел через вход"

AxROM отличается от UxROM наличием режима single-screen mirroring, с переключением 'банка' NT. Это даёт возможность сделать '8-way-scrolling' со статус-баром без костылей, чем и пользуется Battletoads. В MMC3 этого режима нет, и скроллинг со статус-баром там делали через костыли.

UxROM идея использования RAM вместо ROM актуальна только до нормального переключения банков chr-rom по 1 кб.
MMC3 игры почти все сделаны на ROM, т.к. это мгновенное переключение банков графики для анимации персонажей/фона/статус бара. А сжатие или не применяли, или rle c 5% сжатием, нормальное сжатие мало где было.

Переключение режимов тайловых карт нафиг не нужно для скроллинга во всех направлениях. Там всегда одна конфигурация используется, в Blaster Master - vertical.

Врядли пираты полюбили mmc3, просто большинство игр можно было конвертировать в этот маппер, но не наоборот.

MMC5 самый навороченный маппер используется в Castlevania 3, не используя почти ничего из своих возможностей, так как игру тупо не смогли переделать в MMC3, из-за его ограничений. В японском оригинале игра на VRC6, там более гибкое переключение банков. Но видимо VRC6 чипы пожалели тратить, ведь музыка VRC6 не работает на NES, только на famicom, и решили потратить 'самый крутой' MMC5. Другой пример позора это игра Tiny Toon 2, на маппере VRC7, позволяющий FM-музыку (приближение к sega mega drive), вот только без этой музыки, даже в версии для famicom.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий