Как прошить sega mega drive

Обновлено: 04.07.2024

Процессор
Центральный процессор: 16-битный Motorola 68000 (или полностью совместимый)
Тактовая частота: 7,61 МГц в PAL-приставках, 7,67 МГц в NTSC-приставках.

Память
Загрузочное ПЗУ: 2 Кбайт
Известно как «Trademark Security System» (TMSS)
Проверяет наличие лицензии игры, пиратские игры не запускает
Загрузочное ПЗУ отсутствует в ранних версиях приставки
Некоторые ранние игры, разработанные без учёта TMSS, могут не запускаться в поздних версиях

Основное ОЗУ: 64 Кбайт

Часть адресного пространства M68000
Видеопамять: 64 Кбайт
Центральный процессор может обращаться к ней только посредством VDP
Дополнительное ОЗУ: 8 Кбайт

Часть адресного пространства Z80
Используется как основное ОЗУ в режиме совместимости с Sega Master System
Область памяти картриджа: до 4 Мбайт (32 Мбит)

Игровые картриджи объёмом более 4 Мбайт должны использовать переключение банков памяти
Графика
Видеоконтроллер Sega Mega Drive (VDP, Video Display Processor)
Слои: 4 (2 прокручиваемых слоя графики фона, 1 слой спрайтов, 1 слой 'окна')
Спрайты: До 80 одновременно отображаемых, в зависимости от экранного режима (до 20 на одной горизонтальной строке)
Палитра: 512 цветов

Одновременно отображаемые цвета: для палитры выделены 64 девятиразрядных слова ОЗУ. Всего доступно 4 палитры по 16 цветов, при этом один цвет в каждой палитре всегда прозрачен, а также присутствует общий цвет фона. Это позволяет отображать до 61 цвета одновременно (и до 1536 с использованием растровых эффектов или затенения/высветления).

Разрешение экрана: До 320Ч240 (40Ч30 ячеек) для PAL-версии, и до 320Ч224 (40Ч28 ячеек) для NTSC-версии
Чересстрочные режимы могут обеспечивать удвоение разрешения экрана по вертикали.

Четырёхканальный PSG (Programmable Sound Generator, Программируемый Звуковой Генератор)
Три канала с прямоугольной формой сигнала, один шумовой канал
Программируемые тон/шум и затухание
Используется в режиме совместимости с Sega Master System

Выходы
Антенный выход
Аудиовидеовыход (звуковой стерео, композитный и RGB)
Разъем для блока питания.
Два гнезда для контроллеров (используя адаптер «4 Way Play» можно играть вчетвером).

Адаптер 10 В, 1.2 А, более поздних версий 9 В, 850 мА

В 1987 году персональные 16-битные компьютеры показывали себя не с лучшей стороны. В тоже время Nintendo имела 95% процентов рынка США и 92 % в Японии со своим NES. Sega осознала что дальнейшее борьба Master System с NES бесполезна… Использование 16-битных технологий со своих игровых автоматов для Sega подходило как нельзя кстати. И тогда же руководство компании решает, что настала пора внедрить эти технологии и в домашние приставки…Компания решила разработать новую 16-битную консоль на основе System-16 позаимствованную у игровых автоматов. Рабочее название консоли было MK 1601, но это название быстро отклонили, так как для грамотного маркетинга оно абсолютно не подходило. Тогда же было придумано новое название хорошо знакомое нам, а именно Mega Drive. В США консоль не смогли назвать тем же именем, так как посторонняя, не имеющая к играм компания зарегистрировала это название. И поэтому в штатах консоль назвали Genesis.

Sega Mega DriveТакже в то время к выходу готовился конкурент Mega Drive – PC Engine, и Sega было чего опасаться так как за этой приставкой стояла довольно крупная и богатая компания NEC. Запуск PC Engine состоялся 30 октября 1987 года в Японии и не произвёл особого фурора, также как и запуск Mega Drive годом позже 29 октября 1988 года… Но это только поначалу.

Вскоре, 9 января 1989 года Sega объявила дату американского релиза первой по настоящему 16-битной системы, так как другие 16-битки до этого официально в штаты не поставлялись. Дата была назначена на 14 августа 1989 (только в Лос-Анджелесе и Нью-Йорке) года и цена на консоль составляла 190$, в остальные города США консоль поступила месяцем позже, 15 сентября. Европейский релиз произошёл как всегда в последнюю очередь 30 ноября 1990 года. Первым делом консоль поступила в продажу в Великобритании (так как в этой стране был популярен Master System) по цене в 190 фунтов. Также в 1990 году консоль поступила в продажу в Австралии.

Вскоре геймеры стали замечать, что на их новую консоль выходит слишком много портов с игровых автоматов и ни одного по настоящему убойного хита они не наблюдают. Несмотря ни на что к середине 1990 года продажи приставки в одной только Северной Америке достигли 1.000.000 экземпляров. Тем временем Nintendo стала понимать, что Sega стала отбирать у них клиентов и Nintendo зашевелилась. Она также стала разрабатывать новую 16-битную консоль (кстати их Famicom (NES) изначально тоже планировался 16-битным, но для 1983 года это было бы безумно дорого и от этой затеи отказались) Super Famicom и уже 21 ноября 1990 года новая консоль появляется в Японии. В США она выходит, под названием Super Nintendo, 1 сентября 1991 года. Война 16-битных приставок началась!

Чтобы дать отпор Nintendo, Sega должна была срочно изобрести какой-нибудь нестандартный ход и этот ход был найден в лице всем нам известного синего ежика. Это был гениальнейшая идея, просто поразительная графика, бешеный темп игры, запоминающийся герой все это вкупе с прекраснейшим маркетингом приставки просто вознесли Sega на пьедестал почёта. Продажи взлетели. 1992-1993 годы были лучшими в истории компании. Все усилия потраченные на рекламу, продвижение окупились сполна, каждый ребёнок мечтал иметь дома консоль от Sega. Выходило множество хитов, сторонние разработчики игр также охотно поддерживали Mega Drive. Особенно высока была популярность в Бразилии, где позиции Sega были традиционно сильны благодаря компании Tectoy.

В тоже время было выпущено дополнение к Mega Drive, приставка с CD-приводом которая носила название Mega CD. В 1993 году выходит видоизменённый Mega Drive имевший более стильный дизайн, и отсутствие входа для наушников. В то время Sega лидировала на рынке Северной Америке и могла позволить себе такие эксперименты. Все эти дополнения, в лице Mega CD, уже не были так уж хороши для стоящего на дворе 1994 года, также сказалась скупость на их рекламном бюджете, и вследствие этого продажи Mega CD оставались удручающе малыми. Далее сомнительные эксперименты были продолжены новым подопытным стал 32-X, расширение для оригинального Mega Drive позволяющее сделать её 32-х битной. Также постоянно возникали споры и разногласия между Японским и Американским отделением компании, всё это не могло не сказаться на имидже компании.

И ко всему прочему по Америке развернулась борьба с насилием, которое присутствовало на консолях от Sega, и если Nintendo как-то ограждала детей от жестких сцен, то Sega из игр абсолютно ничего не вырезала. Вспомнить хотя бы историю с выходом Mortal Combat который был выпущен на Mega Drive в оригинальном варианте, то есть с морем крови и кровавыми Fatality, а на Super Nintendo вышел вариант игры для детей “дошкольного” возраста без малейшего намека на какую-то там либо кровь в игре. Чтобы попытаться восстановить уважение к компании ввела VRC (некий совет по оценке игр который присваивал игре определённый ценз возраста играющего) и это несколько разрядило ситуацию с общественностью. Но доля рынка, занимаемого компанией, продолжала падать, всего лишь за год Sega упала с 65% занятости рынка до 35%. Также в это время заявляют о выходе своих новых консолей такие гиганты как Sony и Nintendo. Sega крайне нуждалась в новой консоли, чтобы остаться на рынке консолей и им стал Saturn, который прославился шикарной рекламной компанией и персонажем Segata Sanshiro, который и был главным героем видеоролика. В 1996 году Sega объявила, что прекратит поддержку Mega Drive, для того чтобы полностью сконцентрироваться на разработке новой консоли Saturn.

Продукция компании DVTech
Российская компания DVTech выпускает приставки семейства Magistr Drive. Отличаются они низкой ценой, посредственным качеством и широким ассортиментом спецверсий, ориентированных на тот или иной жанр игр. Такие версии различаются лишь коробкой и вшитыми в память играми. Свои игры записать невозможно. Пару лат назад приставки активно рекламировались в детских журналах. Производство приставок осуществляется, что странно, в России.

Китайские нонейм-устройства
Самые разные приставки, разный дизайн, память, жанры, качество. Называться могут Mega Genesis, Seda, SegaDrive, Super Drive. Да как угодно. Продаются как в наших магазинах, так и на всяких там алиэкспрессах. Производятся в любом китайском подвале, качество, как правило, имеют низкое. Но бывают и исключения.

Sega Nomad
Эта приставка является второй портативкой Sega. Она появилась в 1995 году, имела довольно неплохой экран 3.5" и могла запускать оригинальные картриджи, причём без региональных ограничений. Её можно было подключить к телевизору и использовать как контроллер, наблюдая за игрой на большом экране. Питание обеспечивали 6 батареек. Сама приставка была очень громоздкой и тяжёлой, продано было около миллиона штук.

Sega Gopher
Третья по счёту портативная приставка Sega была выпущена в 2007 году и производится до сих пор на Тайване на предприятии AtGames под контролем Sega. Да, это не подделка, а оригинальная приставка Sega. На её основе появилось множество клонов.

Tectoy Megadrive Portable
Компания Tectoy долгие годы была популяризатором Сеги в Бразилии, именно её стараниями в этой стране всегда были популярны приставки Sega. Бразилия была запасным аэродромом Сеги благодаря Tectoy. И в 2007 году по лицензии была выпущена приставка Tectoy Megadrive Portable (Megadrive в одно слово). Запуск игр осуществляется только через собственные картриджи, электрическая схема которых идентична оригинальным, а размеры меньше.

Продукция Zoga
Zoga-небольшая китайская компания, выпускающая разнообразные модификации портативок. Разные дизайны, цвета, но невысокое качество.

Несмотря на мой большой опыт в реверсе игр под Sega Mega Drive , крякмисов под неё я никогда не решал, да и не попадались они мне на просторах интернета. Но, на днях появился забавный крэкми, который захотелось решить. Делюсь с вами решением.

Описание

Описание задания и сам ром можно скачать здесь.

Несмотря на то, что в списке ресурсов там говорится про Гидру, стандартом де-факто среди инструментов для отладки и реверса игр на Сегу является Smd Ida Tools. В нём есть всё необходимое для решения данного крекми:

  • Загрузчик ромов для Иды
  • Отладчик
  • Просмотр и изменение памяти RAM/VDP
  • Отображение практически полной информации по VDP

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

Решение

Запуск любой игры на Сегу начинается с выполнения вектора Reset . Указатель на него можно найти во втором DWORD-е от начала рома.



Видим парочку неопознанных функций начиная с адреса 0x27A . Давайте взглянем что там.

sub_2EA()


По своему опыту скажу, что так обычно выглядит функция ожидания завершения VBLANK -прерывания. Посмотрим, где ещё есть обращения к переменной byte_FF0026 :


Видим, что нулевой бит как раз устанавливается в прерывании VBLANK . Значит переменную назовём vblank_ready , а функцию, где она проверяется — wait_for_vblank .

sub_60E()

Далее по коду вызывается функция sub_60E . Посмотрим, что там:


То, что записывается первой командой в адрес VDP_CTRL — это команда управления VDP . Чтобы узнать, что же она делает, становимся на эту команду, и нажимаем клавишу J :


Видим, что инициализируется запись в CRAM (место, где хранятся палитры). Значит, весь последующий код функции просто задаёт какую-то начальную палитру. Соответственно, функцию можно назвать init_cram .

sub_71A()


Видим, что снова передаётся какая-то команда в VDP_CTRL , значит снова жмём J и узнаём, что это команда инициализирует запись в видеопамять:


Далее разбираться, что же там передаётся в видео-память, смысла нет. Поэтому просто обзываем функцию load_vdp_data .

sub_C60()

Здесь происходит практически то же самое, что и в предыдущей функции, поэтому, не вдаваясь в подробности, просто назовём функцию load_vdp_data2 .

sub_8DA()

Тут уже кода побольше. И, к тому же, в этой функции вызывается ещё одна. Заглянем сразу туда — в sub_D08 .


Видим, что в регистре D0 приходит команда для VDP_CTRL , в D1 — значение, которым будет заполняться VRAM , а в D2 и D3 — ширина и высота заполнения (т.к. получается два цикла: внутренний и внешний). Обзываем функцию fill_vram_by_addr .

sub_8DA()

Возвращаемся в предыдущую функцию. Раз значение в регистре D0 передаётся как команда для VDP_CTRL , нажмём на значении клавишу J . Получим:


Опять же, из опыта реверса игр на Сегу могу сказать, что эта команда инициализирует запись маппинга тайлов. Адреса, которые начинаются на $Fxxx , $Exxx , $Dxxx , $Cxxx в 90% случаев будут адресами регионов с этими самыми маппингами. Что такое маппинги:
это такие значения, которыми можно указывать, куда выводить тот или иной тайл на экране (тайл — это квадрат из пикселей размером 8x8 ).

Значит функцию можно назвать как init_tile_mappings .

sub_CDC()


Первая же команда инициализирует запись по адресу $F000 . Одно замечание: среди адресов "маппингов", есть ещё регион, где хранится таблица спрайтов (это их позиции, тайлы, на которые они указывают и т.д.) Узнать, какой регион за что отвечает можно будет под отладкой. Но пока нам это не нужно, поэтому назовём функцию просто init_other_mappings .

VBLANK

Так как дальше по коду идёт цикл, то можно предположить, что основную инициализацию мы закончили. Теперь можно посмотреть на VBLANK -прерывание.


Видим, что инкрементируются две переменные (что странно, в списке ссылок на каждую из них абсолютно пусто). Но, раз они обновляются раз в кадр, можно назвать их timer1 и timer2 .

Далее вызывается функция sub_2FE . Посмотрим, что там:

sub_2FE()


А там — работа с IO_CT1_DATA портом (отвечает за первый джойстик). В регистр A0 грузится адрес порта, и передаётся в функцию sub_310 . Переходим туда:

sub_310()


Мой опыт снова мне помогает. Если вы видите код, который работает с джойстиком, и две переменные в памяти, значит одна хранит pressed keys , а вторая — held keys , т.е. нажатые только что и удерживаемые клавиши. Так и обзовём эти переменные: pressed_keys и held_keys . А функцию тогда можно назвать как update_joypad_state .

sub_2FE()

Обзываем функцию как read_joypad .

Цикл обработчика

Теперь всё выглядит куда понятнее:


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

sub_4D4()


Кода здесь много. Начнём с первой вызываемой функции: sub_60C .

sub_60C()

Она ничего не делает — так может показаться сначала. Просто возврат из текущей функции — rts . Но, т.к. на неё происходят только прыжки ( bsr ), значит rts вернёт нас обратно в цикл обработчика. Я бы назвал эту функцию как retn_to_loop .

sub_4D4()

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


Далее у нас идёт большое количество кода, который как-то обрабатывает переменные sprite_pos_x и sprite_pos_y , что может говорить только об одном — это нужно для отображения спрайта выделения вокруг выделенного в алфавите символа.

Значит теперь можно смело назвать функцию как update_selection . Идём дальше.


Код проверяет, установлены ли биты каких-то нажатых клавиш, и вызывает определённые функции. Посмотрим на них.


Какая-то шаманская магия. Сначала из переменной word_FF0018 берётся WORD , затем происходит выполнение одной интересной инструкции:

Эта команда просто прыгает на следующую за ней инструкцию.

Далее — ещё одна магия:

Значение в регистре D0 кладётся на вершину стека. Тут стоит отметить, что у Сеги, как и у какого-нибудь x86 , адрес возврата из функции при её вызове кладётся на вершину стека. Соответственно, первая инструкция кладёт на вершину какой-то адрес, а вторая — поднимает его со стека и совершает по нему переход. Хороший трюк.

Теперь нужно понять, что это за значение в переменной, по которому потом происходит переход. Но, для начала назовём эту переменную как jmp_addr .

А функции назовём так:

  • sub_D38 : goto_to_d0
  • sub_D28 : jump_to_var_addr

jmp_addr

Выясним, где эта переменная заполняется. Смотрим список референсов:


Существует лишь одно место записи в эту переменную. Посмотрим на него.

sub_3A4()


Здесь, в зависимости от координаты спрайта (помним, что это скорее всего адрес выделенного символа), заносится то или иное значение. Видим следующий участок кода:


Имеющееся значение сдвигается вправо на 4 бита, в младший байт помещается новое значение, и результат заносится в переменную снова. В теории, наша переменная jmp_addr хранит те символы, которые мы можем вводить на экране ввода ключа. Заметим также, что размер переменной — WORD .

По сути, функцию sub_3A4 можно назвать как update_jmp_addr .

sub_414()

Теперь у нас осталась всего одна функция в цикле, которая не распознана. И называется она sub_414 .


Код её напоминает код функции update_jmp_addr , только в конце у нас происходит вызов функции sub_45E . Заглянем туда.

sub_45E()


Далее по коду происходит работа с переменной byte_FF0014 , которая нигде, кроме текущей функции не используется. Если присмотреться, как она используется, можно заметить, что максимальное число, которое в ней может установиться, это 4 . У меня такое предположение, что эта текущая длина введённого ключа. Давайте это проверим.

Запускаем отладчик

Я воспользуюсь отладчиком из Smd Ida Tools , но, по сути, достаточно будет и какого-нибудь Gens KMod, или Gens ReRecording. Главное, чтобы была фича с отображением адресов в памяти.


Моя теория подтвердилась. Значит переменную byte_FF0014 теперь можно обозвать key_length .

Так что же делает эта функция? У меня есть предположение, что она отрисовывает введённый символ. Проверить это просто — запустив отладчик, и сравнив состояние до вызова функции sub_45E и после:



Я был прав — эта функция отрисовывает введённый символ. Назовём её do_draw_input_char , а функцию, которая её вызывает ( sub_414 ) — draw_input_char .

Что теперь?

Давайте пока проверим, что переменная, которую мы назвали jmp_addr действительно хранит введённый ключ. Воспользуемся теми же Memory Watch :


Как видим, догадка была верна. Что нам это даёт? Мы можем прыгать на любой адрес. Только на какой? В списке функций все разобраны ведь:


Тогда я начал просто прокручивать код, пока не обнаружил вот такое:


Намётанный глаз увидел в конце неразмеченных байт последовательность $4E, $75 . Это опкод инструкции rts , т.е. возврата из функции. Значит эти неразмеченные байтики могут быть кодом какой-то функции. Попробуем их обозначить как код, жмём C :


Очевидно, это код функции. Можно также нажать на нём P , чтобы код стал функцией. Запомним это имя: sub_D3C .

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

Тогда меня посетила ещё одна мысль: а что если поискать другой такой неразмеченный код? Открываем диалог Binary search (Alt+B), вводим в нём последовательность 4E 75 , ставим галку Find all occurrences :


Жмём ОК , чтобы начать поиск, получаем следующие результаты.


Как минимум ещё два места в роме могут содержать код функции, нужно их проверить. Кликаем по первому из вариантов, прокручиваем чуть вверх, и снова видим последовательность неопределённых байт. Обозначим их как функция? Да! Жмём P там, где начинаются байты:


Круто! Теперь у нас есть функция sub_34C . Пробуем повторить то же самое ещё и с последним из найденных вариантов, и… получаем облом. Там такое большое количество байт перед 4E 75 , что не понятно, где начинается функция. И, явно, не всех из этих байт выше являются кодом, т.к. очень много повторяющихся байт.

Определяем начало функции

Нам будет проще всего найти начало функции, если мы найдём, где заканчиваются именно данные. Как это сделать? На самом деле совершенно не сложно:

  1. Крутим до начала данных (там будет ссылка на них из кода)
  2. Переходим по ссылке и ищем цикл, в котором должен будет фигурировать размер этих самых данных
  3. Размечаем массив

Итак, выполняем первый пункт.


… и сразу видим, что в цикле из нашего массива копируется по 4 байта данных за раз (потому что move.l ) в VDP_DATA . Рядом видим число 2047 . Может сначала показаться, что итоговый размер массива 2047 * 4 , но цикл на основе dbf выполняется на +1 итерацию больше, т.к. последнее сравниваемое значение не 0 , а -1 .

Итого: размер массива равен 2048 * 4 = 8192 . Обозначим байты как массив. Для этого жмём * и указываем размер:


Крутим в конец массива, и видим там байты, которые являются именно байтами кода:



Теперь у нас появилась функция sub_2D86 , и у нас есть всё, чтобы решить этот крекми! Посмотрим, что делает новоиспечённая функция.

sub_2D86()

sub_34C()


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

А вот происходящее далее мне стало лень понимать, поэтому я закинул ром в GHIDRA, нашёл эту функцию, и посмотрел декомпилированный код:

Видим, что используется переменная со странным именем in_D1w , а ещё переменная DAT_00ff0020 , которая адресом своим напоминает упомянутую ранее word_FF0020 .

Для этого в окне с декомпилированным кодом жмём правой кнопкой мыши на имени функции, и выбираем пункт меню Edit Function Signature :


Для того, чтобы указать, что функция принимает аргумент через конкретный регистр, а именно не стандартным для текущей конвенции вызовов способом, нужно поставить галку Use Custom Storage и нажать на иконку с зелёным плюсом:


Появится позиция для нового входного аргумента. Кликаем по ней два раза, и получаем диалог указания типа и носителя аргумента:


В декомпилированном коде видим, что in_D1w имеет тип ushort , значит его и укажем в поле с типом. Затем нажмём кнопку Add :


Появится позиция для указания носителя аргумента, нам нужно указать в Location регистр D1w , и нажать OK :


Декомпилированный код примет вид:

Т.к. xor — операция обратимая, можно все константные числа поксорить между собой и получить искомое значение переменной DAT_00ff0020 .

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


Выводы и решение

Приходим к следующим результатам:

Экспериментальным путём выясняем клавишу, которую нужно нажать, чтобы проверить введённый ключ: B . Пробуем:

Игровая индустрия без Mega Drive — как комиксы без картинок или Ван Дамм без шпагата. Если вы росли в 90-х, но не владели приставкой, она наверняка имелась у вашего друга. И держим пари, тот прослыл душой компании. По случаю 30-летия знаменитого аппарата бьём по больному и грустим над драгоценным барахлом.

16 бит — звучит как хит

Мы говорим «Сега» — подразумеваем приставку. 16 бит, чёрные картриджи, некогда лучшая альтернатива системам Nintendo. Ведь там Скорпион не сдирал кожу с черепа и никого не кромсали на ломтики шляпой с острыми краями. Но чтобы мир это понял, понадобились годы противостояния двух японских гигантов. И началось всё не с Mega Drive, а задолго до её появления: с выходом в 1983-м легендарной Famicom, изданной на Западе как NES.

30 лет SEGA Mega Drive

Специалисты SEGA поняли, как именно нужно действовать, чтобы тягаться с могучими соперниками на равных. Раз уж компания приобрела репутацию в сфере аркадных развлечений, стоило поднажать на производительность железа и качество графики. То есть на преимущества, которых геймер не имел дома. Поэтому для восьмибитной Mark III, которая прославилась под именем Master System и стала прямым конкурентом NES, взяли более быстрый процессор и вдвое увеличили объём ОЗУ.

Но обойти большую N не вышло: в Японии удалось урвать лишь 10% рынка.

«Пфф, всего-то!» — скажете вы. Но, согласитесь, лишить монополию даже десятой доли продаж на её же вотчине — это тоже результат. Не говоря об успехе в Европе и, скажем, Бразилии, где Master System популярна до сих пор. Так что со стратегией производитель не прогадал. К середине 80-х генеральным директором SEGA стал Хаяо Накаяма, известный своим оптимизмом: где другие видели препятствие, он находил возможность.

30 лет SEGA Mega Drive

Практически сразу после выхода Master System в США Накаяма назначил разработчиков следующей системы — как вы, наверное, догадались, речь о Mega Drive. Правда, для замены дежурного названия Mark V на более броское пришлось перебрать 300 вариантов. Коллектив инженеров возглавили Хидеки Сато и Масами Исикава. За основу будущего устройства они взяли плату аркадного автомата SEGA System 16, а в качестве главного процессора использовали Motorola 68000. Что до Zilog Z80, трудившегося в SG-1000 и Master System, то в новой конструкции ему досталась вспомогательная роль.

Чип Motorola как раз подешевел, мы вовремя ухватились за эту возможность. Выбор дизайна тоже не случаен. Тогда у нас было ощущение, что в скором времени потребители начнут относиться к видеоиграм примерно так же, как относятся к музыке. Добавьте сюда место Mega Drive возле телевизора — вот почему мы сделали её похожей на аудиоплеер. А чёрный корпус дополнила надпись золотом 16 BIT. Кстати, эта золотая печать была очень дорогой, но мы действительно хотели подчеркнуть, что создали первую 16-битную домашнюю систему.

Хидеки Сато разработчик Mega Drive

30 лет SEGA Mega Drive

На деле первенство оказалось спорным. 29 октября 1988 года, когда SEGA представила новинку, в борьбу за место под солнцем уже вступила NEC с системой PC Engine, известной в США под именем TurboGrafx-16. Напряжение росло.

Оставался лишь один спасательный круг — маркетинг: жёсткий, как удар Саб-Зиро, и резкий, как спринт ежа Соника.

Бойцовский клуб пиарщиков

Для презентации Mega Drive выбрали не самый удачный момент. Достаточно сказать, что буквально за неделю до этого вышла Super Mario Bros. 3, поэтому азиаты с головой ушли в сбор мухоморов и спасение принцесс. Какая там SEGA? Вы о чём вообще? Вечеринки для прессы вроде той, где журналистам предложили сыграть в Altered Beast на консоли и аркадном автомате, помогали слабо. Как результат, в Японии удалось продать всего 400 000 экземпляров за год. И это при том, что компания Накаямы не халтурила: система и впрямь была мощной, а основу игротеки составляли эксклюзивы — не в пример 3DO, юбилей которой мы отмечали совсем недавно.

30 лет SEGA Mega Drive

Вот почему перед вторжением в Штаты Накаяма нанял нового директора SEGA of America (SoA) — прагматика Майкла Каца. Человека с опытом в индустрии: он успешно продавал Intellivision, ColecoVision, а затем переметнулся к конкурентам, чтобы раскручивать Atari 7800. В 1989-м, когда приставка SEGA сменила имя на почти библейское Genesis, избавилась от золотой надписи и появилась-таки на американских прилавках, амбициям Майкла был брошен очередной вызов.

От менеджера потребовали сбыть миллион консолей за полгода.

В остальном он мог действовать по своему усмотрению и строить маркетинговую кампанию с нуля. Кац обострил войну с Nintendo: реклама того времени всячески задевала конкурентов, а позже возник лозунг Genesis does what Nintendon’t («Genesis умеет, что Нинтенет»). Заодно он собрал команду для местной разработки, ведь народ в США особенный — любит спорт. Грех было этим не воспользоваться. Так что новобранцев усадили за тематическую линейку: Pat Riley Basketball, Arnold Palmer Tournament Golf, Joe Montana Football, Tommy Lasorda Baseball — имена знаменитых атлетов на картриджах гарантировали интерес. Но и влетели в копеечку: контракт с тем же Джо Монтаной стоил 1,7 миллиона долларов. Солидная сумма, особенно если учесть, что поначалу план выполнялся кое-как.

За шесть месяцев мы продали половину от обещанного. Но даже 500 000 единиц я считаю чертовски хорошим результатом, ведь Genesis была новичком и не блистала огромным количеством эксклюзивов. Да и к Nintendo было трудно подобраться, а геймеры с ключевыми ритейлерами ждали выхода SNES … Тогда-то мы и показали зубы со своим слоганом Genesis does what Nintendon’t.

Майкл Кац экс-директор SoA

Несмотря на экстравагантность решений, ролики по ТВ и спортивная серия принесли плоды. Счёт проданных устройств пошёл на миллионы, а Mega Drive начала уверенно теснить системы Nintendo, став в 1994-м лидером американского рынка. Фактически это открыло путь к мировой гегемонии. На любое действие конкурентов Кац тут же находил свою хитрость. В этом ему помогал отдел маркетинга во главе с Томом Калински — неутомимым генератором идей, который точно понимал, чего хотят подростки. И умел по-приятельски настроить их на нужный лад. А в ответ на споры о техническом превосходстве SNES отдел Тома раскрутил мнимую технологию Blast Processing. Дескать, она обеспечивает такую скорость работы, какой фанатам Марио век не видать. И поди докажи обратное!

Не удивительно, что в середине 90-х, когда SEGA по всему миру заняла почётное второе место, на должность Майкла Каца назначили Калински. Тот уже показал себя в деле и прославился благодаря двум эпохальным решениям. Он предложил специально удешевить систему до $150, чтобы зарабатывать на картриджах, и заменил комплектную игру с Altered Beast на Sonic the Hedgehog.

Признаюсь, я недооценил потенциал Соника. И слава богу, что затея сработала. Ведь сама мысль о том, чтобы влюбить американских детишек 6-16 лет в японского персонажа-ежа, казалась мне безумной.

Майкл Кац экс-директор SoA

Всё жёсткое — детям

Почему же Соник так важен? Успех Mega Drive, как и любой другой платформы, зависел прежде всего от качества и количества хитов. А уж потом — от железа, «бласт процессинга» и пикировок с конкурентами. Тут SEGA проявила незаурядную удаль. Пока в Nintendo изо всех сил поддерживали семейный, миролюбивый имидж, фирма Накаямы была свободна в выборе тем. Пусть никого не смущает дружелюбный маскот, который, если разобраться, не совсем уж и японский — снимите-ка с ежа туфли Майкла Джексона и избавьте его от палитры флага США. Потому что с милыми зверушками из The Lion King соседствовали монстры из Ecco the Dolphin, а весёлые потасовки ниндзя-черепашек чередовались с мясорубкой серии Mortal Kombat.

30 лет SEGA Mega Drive

Герой Boogerman снабжал юных геймеров дозой сортирного юмора, Rock N’ Roll Racing погружала в атмосферу дорожного беспредела под риффы Deep Purple и Black Sabbath. Робот-полицейский из RoboCop versus The Terminator показывал своему коллеге с NES, что остаётся от людей после очереди в упор. А как вам шутер Zero Tolerance со стекающими по стенам мозгами? И это не считая откровенной жести типа Splatterhouse 2, где крови и уродов было больше, чем всего остального вместе взятого. Даже стратегия Dune II порой удивляла: вот давишь солдат харвестером — они превращаются в красные пятнышки.

Вроде мелочь, но Nintendo не позволяла себе и таких шалостей.

В блокбастерах SEGA монстры пугали, шутки смешили, адреналин не бодяжили с какао. Конечно, такой подход пришёлся ко двору не везде. Власти некоторых стран ужаснулись от перспектив, а в США виртуальный мордобой от Midway привёл к появлению возрастного рейтинга ESRB. Традиционно раскрепощённые европейцы тоже не сразу поддались обаянию фаталити.

Бум видеоигр был глобальным, но в Германии действовали законы о защите молодёжи, поэтому некоторые из наших хитов там запретили. И это была единственная страна Европы, где мы не выбились в лидеры рынка — семейные идеалы Nintendo казались немцам более привлекательными.

Ник Александер экс-директор подразделения SEGA в Европе

30 лет SEGA Mega Drive

Зато бывший СССР чаша сия миновала. Проводником электронных развлечений в массы здесь стали пираты, с которыми цивилизованный мир худо-бедно боролся. В России же силами компании «Стиплер» обрёл колоссальную популярность тайваньский клон NES. Но вот парадокс: вместе с нелегальными Dendy в магазинах предлагали и лицензионные системы — Mega Drive двух версий и SNES.

В отличие от какой-нибудь Японии, у нас «Сега» победила нокаутом в первом раунде.

Каким образом? За счёт низкой цены, что в 90-х было критически важно, и большего ассортимента оригинальных игр. А также модуля Mega Key, который конвертировал телестандарт NTSC в PAL, смягчая тем самым региональные ограничения.

Эти истины постигались и во время походов на радиорынок, и в спорах с одноклассниками. Самым непонятливым излагал матчасть Сергей Супонев в передаче «Денди — Новая реальность». Вот он показывает жуткий бутлег Duck Tales со случайной уткой на стикере, а вот достаёт шикарную коробку с «Аладдином», где и графика, и звук на голову выше. Почувствуйте разницу! И мы чувствовали. Потому-то восьмибитка попала в разряд условно-дошкольных — в противовес безусловно крутой, пацанской «Сеге».

Когда 16 больше, чем 32

Тем удивительнее упрямство, с которым продлевали жизнь легендарной платформы. Вытворять такое с техникой — ещё та задача. Но рынок диктовал условия: в начале 90-х набрали популярность компакт-диски, чем тут же воспользовались производители игровых систем. Компания NEC выпустила аддон TurboGrafx-CD, о новых возможностях заговорили в Nintendo. Накаяма же договорился с JVC о сборке дополнений Mega-CD для 16-битной приставки. Они увеличивали объём данных, сулили обилие игр с FMV (full motion video), прибавку к мощности железа и возможность делать сейвы. Правда, каждое стоило аж по 300 долларов.

30 лет SEGA Mega Drive

Хотя, как признался продюсер SEGA Скотт Бэйлесс в интервью Eurogamer, приходилось экономить даже на проводах. Выбор дешёвого Audio-CD вместо CD-ROM привёл к серьёзным проблемам на запуске, а от усложнения аппаратной части задымились головы кодеров. Конечно, развлечений хватало уже в момент релиза. Sewer Shark, Night Trap, Prize Fighter дополнили портами с аркадных машин Dragon's Lair и Time Gal. Но кто в трезвом уме предпочтёт эти произведения блокбастерам оригинальной Mega Drive? Как результат, провал Mega-CD в Японии, но относительный успех в Европе и Штатах, откуда удалось-таки вытеснить TurboGrafx.

Но крутые ребята не оборачиваются на взрыв: в SEGA продолжили пороть горячку, причём по нескольким фронтам сразу.

Чтобы конкурировать с Atari Jaguar, придумали ещё один аддон, который назвали 32X. Однако его продажи оказались даже ниже, чем у CD-дополнения. Зачем втридорога собирать монстра Франкенштейна, если за ту же сумму легче взять более мощное устройство?

30 лет SEGA Mega Drive

А параллельно с презентацией 32X в США анонсировали 32-битную консоль Saturn. С тем же успехом можно было продавать снег эскимосам. Хаяо Накаяма упускал одну возможность за другой.

Мы связались с главой Silicon Graphics Джимом Кларком, чтобы заказать чипсет для новых систем. Нам схема понравилась, но японские инженеры остались недовольны и размером, и техническими характеристиками. Это нас огорчило, ведь мы считали, что нашли превосходный вариант с точки зрения быстродействия, графики и звука. К тому же пришлось оправдываться перед Кларком, который спросил, что ему теперь делать. Тогда я ответил: «Есть ещё одна игровая компания. Вроде бы её название начинается с N». Он пошёл туда и продал плату, послужившую основой для Nintendo 64.

Том Калински экс-директор SoA

Так часто бывает, и не только с производителями железа — вспомните хотя бы историю Telltale Games. Минута славы не резиновая. SEGA долго напрягала аппаратные мышцы и носилась со счётчиком мегагерц, как с писаной торбой, хотя на собственном примере доказала, что в играх это не главное. Да что там, 16-битная классика актуальна до сих пор. Ставишь эмулятор, запускаешь Contra Hard Corps, Golden Axe или Comix Zone, рубишься в третий Mortal, управляешь червяком Джимом либо Соником — и словно не было тех 30 лет. Mega Drive умерла, но мегадрайв остался.

2015-9-29 21:01 Sega

Попалась в руки не рабочая игровая приставка Sega MegaDrive выполненная всего лишь на одной микросхеме TecToy TCT6705. Не работала она из-за микротрещин в пайке разъемов для джойстиков и плохого контакта в переключателе региона и формата тв сигнала. Быстро восстановив, захотелось сдуть все радиодетали с платы и срисовать схему. К тому же, в интернете ещё не было схемы сеги на аналогичных микросхемах. На фотке можно заценить как выглядела плата до разборки.

2015-09-29

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

2015-09-29

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

Плата с двух сторон в отличном качестве ниже, это то ради чего всё это затеивалось.

2015-09-29
2015-09-29

Распиновка разъема переключения региона и формата тв сигнала.

2015-09-29

По плате срисовал схему. Спасибо, модератору с форума Emu-Land, Rumata за консультации и подсказки.

2015-09-29

Было приятно обнаружить то, что сигнал M3 распаян, а это значит, что TCT6705 поддерживает режим MARK III, т.е. клон способен запустить игры Sega MasterSystem или Sega GameGear. Но кроме этого, при запуске игры Water Margin не отображаются спрайты персонажей игры и врагов. Из-за чего это происходит смогут объяснить только хакеры. Видимо что-то не поддерживает этот процессор, а значит производители что-то урезали и этот клон не полностью повторяет железо оригинальной Sega MegaDrive 2.

После удачной разборки, я также удачно собрал всё на место. Электролитический конденсаторы расположил с обратной стороны, по высоте подходят идеально и сверху не мешаются. Приставка заработала с первого включения. Больше ничего от неё мне не нужно. Отдам какому-нибудь своему знакомому.

2015-09-29
2015-09-29
2015-09-29

Данный вариант клона потребляет 40 мА без картриджа. С картриджем 60 мА, но это зависит от картриджа. Микросхема TCT6705 явно придумана для использования в портативных клонах. Её напряжение питания 3.3в ну и низкое потребление тока только подтверждают это. Кроме этого в разных вариантах приставки MegaDrive Portable используются аналогичные микросхемы той же серии TCT67xx.

Схема в формате PDF.

Внимание! Копирование, в том числе частичное, запрещено!

2015-7-26 14:31 Sega

Для прошивки игр в картриджи Sega MegaDrive не нужно делать ничего особенного. Скачиваем ром в интернете, загружаем в софт программатора, если нужно, выполняем операцию swapbyte, и прошиваем в ПЗУ. Поэтому программа для нарезки ромов, подобно Nes ROM Maker, не нужна, т.к. нарезать ничего не нужно. Но всё же, в один прекрасный момент, меня попросили написать программу для склеивания ромов друг за другом для создания многоигровых картриджей. Ничего сложного нет - написал, но добавил некоторые функции, которые могут кому-то пригодиться. Об этой чудесной программе, которую я, скромно, назвал MD ROM Maker, расскажу в этой статье.

2015-07-26

2. Окно создания многоигровых ромов [Multi]. В окне создания многоигромых ромов есть список игр, и их последовательность будет соответствовать их физическому расположению в конечном многоигровом роме. Можно добавлять новые ромы кнопкой [+], удалять не нужные - [-], перемещать ром в списке вверх [Up] и вниз [Dn]. В окне есть анимированная карта конечного многоигрового рома. Красными квадратиками обозначаются блоки кратные размеру оригинального рома. Синим цветом - пустота, заполненная байтом 255 (FF). При выборе рома в списке, он подсвечивается на карте рома. Карта сделана для небольшой визуализации работы программы. Ничего больше на данном этапе не происходит, т.е. никакие меню или модификации в ром не добавляются, только оригинальные ромы. Поскольку в картриджах для Sega MegaDrive обычно используется 16-битное ПЗУ, софт многих программаторов для правильной прошивки 16-битных ПЗУ требует выполнения операции SwapByte (соседние байты меняются местами). Чтобы не выполнять лишних действий в ПО программатора, имеется галочка SwapByte, которая выполнит эту операцию на стадии создания конечного многоигрового рома. Галочка Fix CRC, автоматический исправит контрольные суммы во всех загруженных ромах конечного рома.

2015-07-26

2015-07-26

4. Окно списка игр использующих звуковой движок GEMS [SE List]. Просто список.

2015-07-26

Если есть какие-то идеи, предложения по поводу программы, пишите на почту.

Описание форматов ромов.

Внимание! Копирование, в том числе частичное, запрещено!

Читайте также: