Pull to refresh
  • by relevance
  • by date
  • by rating

Ищем сокровища в исходном коде Aladdin

Game development *Reverse engineering *
Translation
image


На момент своего выхода в 1993 году Disney’s Aladdin на Sega Genesis (или Mega Drive, если в начале 90-х вы жили с другой стороны лужи) была удивительно красивой игрой.

Благодаря использованию технологии, которая позже стала известной, как Digicel, правильному выбору промежуточного ПО и впечатляющему таланту авторов Aladdin смогла выделиться на фоне других игр Genesis той эпохи. Красивая нарисованная от руки графика Aladdin установила новую планку качества для того, чего можно добиться на «железе» Genesis. Это стало возможным не с помощью особенно интересных растровых эффектов или тайных аппаратных приёмов, а благодаря сочетанию эффектной графики, дизайна и правильно выбранной технологии.

Эта уникальная смесь графики и технологий стала основной причиной, позволившей игре Aladdin занять особое место в истории видеоигр. Поэтому мне так радостно было найти архив с полным исходным кодом игры в коллекции Video Game History Foundation! Кроме бесценного источника данных, этот архив является для меня отличной возможностью создать стандарты для сохранения исходного кода, отслеживания зависимостей инструментов и многих других процессо-ориентированных аспектов в VGHF.
Total votes 109: ↑107 and ↓2 +105
Views 32K
Comments 10

Модернизация IDA Pro. Отладчик для Sega Mega Drive (часть 1)

Programming *Assembler *Debugging *Reverse engineering *Games and game consoles
Tutorial


Приветствую!


Товарищи реверсеры, ромхакеры: в основном эта статья будет посвящена вам. В ней я расскажу вам, как написать свой плагин-отладчик для IDA Pro. Да, уже была первая попытка начать рассказ, но, с тех пор много воды утекло, многие принципы пересмотрены. В общем, погнали!

Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Views 7.8K
Comments 23

Модернизация IDA Pro. Отладчик для Sega Mega Drive (часть 2)

Programming *Assembler *Debugging *Reverse engineering *Games and game consoles
Tutorial


Привет всем,


В предыдущей статье мы успешно модифицировали ядро эмулятора игр на Sega Mega Drive / Genesis, добавив в него возможность отладки. Теперь пришёл черёд написания собственно плагина-отладчика для IDA Pro, версия 7.0. Приступим.

Читать дальше →
Total votes 32: ↑31 and ↓1 +30
Views 6K
Comments 0

Модернизация GHIDRA. Загрузчик для ромов Sega Mega Drive

Programming *Java *Reverse engineering *Games and game consoles
Tutorial


Приветствую вас, товарищи. Не слышал о пока-ещё-не-опенсорсной GHIDRA, наверное, только глухой/слепой/немой/без_интернета реверс-инженер. Её возможности из коробки поражают: декомпиляторы для всех поддерживаемых процессоров, простое добавление новых архитектур (с сразу же активной декомпиляцией благодаря грамотному преобразованию в IR), куча скриптов упрощающих жизнь, возможность Undo/Redo… И это только очень малая часть всех предоставляемых возможностей. Сказать что я был впечатлён — это практически ничего не сказать.

Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Views 13K
Comments 15

Решаем простой Crackme для Sega Mega Drive

Reverse engineering *Games and game consoles Logic games
Tutorial

Привет всем,



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

Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views 6.1K
Comments 4

История о трёх картриджах

Game development *Old hardware Games and game consoles
Translation
Почти все любители видеоигр определённого возраста знакомы с игровыми картриджами и их принципом работы: ты вставляешь картридж в консоль, включает её и начинаешь игру. Менее известны картриджи, которые не были такими простыми, в том числе и подмножество устройств, предназначенное для вставки в них других картриджей. Давайте рассмотрим три примера подобных промежуточных устройств: узнаем, зачем создатели таких картриджей вообще заморачивались добавлением лишнего разъёма под картридж, как такие картриджи использованные подключенные к ним игры, и какие преимущества давала эта уникальная конструкция самим игрокам.

Game Genie


Game Genie был, вероятно, одним из первых устройств для читерства в видеоиграх, с которым сталкивался обычный игрок на домашней консоли. Это хитрое устройство располагалось между Nintendo Entertainment System (NES) и стандартными игровыми картриджами, и давало игрокам возможность настраивать уровни сложности, перемещаться вперёд по игре или просто экспериментировать.

Для детей в 90-х Game Genie казался настоящим волшебством. Сначала вы вставляли один из игровых картриджей в Game Genie. Затем, не без усилий (потому что вставлялся он довольно трудно), вы подключали конструкцию из Game Genie и игры к консоли и включали её. Но вместо обычного запуска игры появлялся загадочный экран, просивший вводить бессмысленные пароли1. Каждый пароль влиял на игру по-своему, и ни в одной игре пароли не повторялись.

Так как же Game Genie («игровой джинн») выполнял желания игроков? Версии Game Genie существовали для NES, Super NES и Game Boy, а также для Sega Genesis и Game Gear. Они перехватывали обмен данными между консолью и игровым картриджем. Внутренняя работа игровой консоли управлялась битами и байтами, поэтому возможность перезаписи данных, передаваемых из картриджа в консоль, позволяла Game Genie выполнять невероятно мощные трюки.
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Views 13K
Comments 10

Системы внутри картриджей: как инженеры расширяли возможности игровых консолей

Game development *History of IT Games and game consoles
Translation
image

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

Сегодня мы рассмотрим три очень разных «консоли внутри картриджей» от трёх очень разных производителей. Для появления всех трёх систем существовали все технологические и стратегические причины, и они могут поведать нам интересную историю. Давайте начнём с самой загадочной системы — единственной из трёх, которая была нелицензионной и производилась не самим создателем консоли.

Aladdin Deck Enhancer


В начале 1990-х в офисе компании Codemasters, должно быть, находилась впечатляющая лаборатория исследований и разработок. Изначально компания была создана с целью разработки игр для домашних компьютеров Commodore, но спустя несколько лет открыла отдел по созданию нелицензионных игр и аппаратных дополнений к Nintendo Entertainment System (NES). Наверно, самым знаменитым продуктом компании, по крайней мере, в среде консольных игроков, было чит-устройство Game Genie 1, но оно оказалось не единственным примером нелицензионного оборудования для NES.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views 10K
Comments 10

Картриджи консолей как модемы

History of IT Old hardware Games and game consoles
Translation
image

Многие современные игроки в видеоигры воспринимают онлайн-соединения как нечто само собой разумеющееся — и правда, онлайн-сервисы являются стандартной функцией консолей уже почти пятнадцать лет1. Однако ещё до того, когда проникновение Интернета стало повсеместным, существовали картриджи, позволявшие игрокам пользоваться передовыми технологиями и заглядывать в будущее.

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

Предыдущие статьи серии: «История о трёх картриджах», «Системы внутри картриджей: как инженеры расширяли возможности игровых консолей», «Универсальность картриджей: датчики в играх для Game Boy».
Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Views 14K
Comments 12

Ограничения 16-битных игр и их воссоздание в Unity

Game development *Unity3D *Game design *Games and game consoles
Translation
image

В нашем первом туториале по ретро-играм мы показали, как настраивать инструмент 2D Pixel Perfect и как создавалась графика в эпоху 8-битных игр. В этом посте мы перенесёмся в 16-битную эру. С помощью Mega Cat Studios мы узнаем, как создавать аутентичную графику для игр в стиле Sega Genesis (Mega Drive) и Super NES при помощи параметров, графических структур и цветовых палитр Unity.

Создание аутентичной графики в стиле Genesis


В этом разделе мы рассмотрим рабочий процесс создания графики, имитирующей картинку разных консолей. Здесь будет меньше ограничений, чем в 8-битном проекте и больше свободы при работе с цветом, но всё-таки у Genesis есть пределы. Мы считаем, что будет также полезно объяснить, как работало «железо» консоли, чтобы вы могли применить эти ограничения в собственном ретро-проекте.

Палитры и субпалитры


Переход от 8-битных к 16-битным консолям благодаря усложнению оборудования предоставил разработчикам больше возможностей. Тем не менее, принципы создания качественной NES-графики всё ещё остаются в силе. Вся графика по-прежнему хранится в тайлах, например, размером 8×8, и собирается из них в большие изображения — спрайты и элементы фона. Художники по-прежнему ограничены субпалитрами с общим прозрачным цветом, но 16 бита обеспечивают бОльшую гибкость работы с палитрами. Вас скорее всего порадует то, что у 16-битных консолей не было жёстко заданной цветовой палитры, то есть по сравнению с NES количество доступных цветов сильно расширилось.
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Views 9.7K
Comments 4

Как работала графическая система Sega Mega Drive: Video Display Processor

Game development *Old hardware Games and game consoles
Translation

Описание концепции VDP


  • VDP
    • "Video Display Processor"
    • Чип видеоконтроллера, занимающийся работой с тайловой графикой, плоскостями скроллинга и спрайтами Genesis. На самом деле не является процессором.
  • VRAM
    • "Video RAM"
      • RAM (ОЗУ), используемая VDP
      • Содержит тайлы (изображения размером 8x8 пикселей)
  • Два основных типа консолей
    • Консоли NTSC
      • «Sega Genesis», 60-герцовые машины, в основном распространённые в США
      • Разрешения
        • Режим H40 — 320x224 пикселя (40x28 тайлов). Самый распространённый режим разрешения
        • Режим H32 — 256x224 пикселей (32x28 тайлов). Менее популярный режим разрешения
      • Наша студия Mega Cat выпускает NTSC-игры, поэтому использует эти разрешения!
    • Консоли PAL
      • «Sega Mega Drive», 50-герцовые машины, продавались во всём остальном мире
      • Разрешение
        • Режим H40 — 320x240 пикселей (40x30 тайлов). Самый распространённый режим разрешения
        • Режим H32 — 256x240 пикселей (32x30 тайлов). Менее популярный режим разрешения

Слева: NTSC Model 2 Sega Genesis, справа: PAL Model 2 Mega Drive (европейская)
Читать дальше →
Total votes 45: ↑43 and ↓2 +41
Views 22K
Comments 7

Создание игры для SEGA Mega Drive/Genesis в 2019 году

Game development *Games and game consoles
Translation
image

Даже сегодня люди по-прежнему продолжают создавать новые игры для старых консолей. Мы называем их «homebrew». Иногда это способ реализовать детскую мечту о создании игры для консоли, на которой играл ребёнком. Но кроме того это ещё и интересная задача для любого дизайнера или разработчика игр: ретро-железо обладало множеством ограничений, бросающих вызов креативности авторов. В 90-х для профессиональных разработчиков эти ограничения были привычными. Сегодня, когда у нас есть более совершенные инструменты, создание игр для подобных машин стало гораздо доступнее.

В прошлом году я написал статью о создании игры для Game Boy. Сегодня я поделюсь своим опытом создания трёх игр для домашней консоли SEGA Mega Drive/Genesis. Вероятно, благодаря современным мощным инструментам, это самая простая машина для разработки homebrew-игры. Например, мне даже удалось создать (очень простую) игру всего за 60 минут, и она на самом деле запускается на консоли!
Total votes 55: ↑55 and ↓0 +55
Views 30K
Comments 2

Хакинг классического Sonic the Hedgehog для Sega

Programming *Assembler *Game development *Old hardware Games and game consoles
Sandbox
🔥 Technotext 2020

В этой статье я хочу разобрать внутреннее устройство легендарной игры Sonic the Hedgehog для приставки Sega Mega Drive, а также способы ее модификации или, как еще говорят, хакинга. Эта игра насчитывает порядка сотни хаков, включающих как действительно достойные работы (такие как Pana Der Hejhog или Sonic Remastered), так и странные и даже жутковатые (вроде An Ordinary Sonic ROM Hack). Чтобы понять, как их создавать, нужно разобраться, как писать на языке ассемеблера Motorola 68K (обычно игры для приставок тех времен писались именно на ассемблере), откуда взять дизассемблированный вариант игры и какую архитектуру имеет ее движок.


Sonic hacks


Дизассемблирование ROM-файлов для Sega осуществляется при помощи коммерческого дизассемблера и дебаггера IDA Pro. Затем происходит кропотливый процесс разметки, структурирования и причесывания сырого ассемблерного кода с использованием дебаггера (и смекалки). Этот процесс требует хорошего понимания технических особенностей платформы Sega Mega Drive и игр для нее.


К счастью, на GitHub уже есть дизассемблированные и размеченные версии всех игр серии Sonic the Hedgehog, созданные энтузиастами при поддержке сайта Sonic Retro. Лучше всего размечен и структурирован исходный код именно первой игры серии. Эта версия кода находится в репозитории sonicretro / s1disasm и именно она будет разобрана в статье.


Погружение в внутреннее устройство игрушки начнем с теории.

Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Views 9.6K
Comments 10

Терраформинг: как создавался Doom 64

Game development *Game design *Games and game consoles
Translation
image

Глаза Джона Ромеро следили за инженером, раскладывавшим свой груз на бильярдном столе. Посетитель прибыл в id Software из Sega, а на стол он положил материнскую плату, пока находящуюся на стадии прототипа. После завершения проекта она должна была стать основой 32X — дополнительного оборудования Sega, которое превратит консоль Genesis из 16-битного динозавра в 32-битного гиганта.

Ромеро и остальные сотрудники id Software собрались вокруг, а инженер установил на сукно монитор, подключил к нему прототип и включил питание. Экран заполнился кодом. Часть его Ромеро узнал. Узнал его и Джон Кармак, вместе с Ромеро основавший id. Это был код того, что должно стать портом Doom. На тот момент работа ещё не завершилась. Чтобы перенести код на свою консоль, Sega нужна была помощь в модифицировании исходников Doom так, чтобы он мог запускаться на 32X.

«Кармак выудил из него максимально подробную информацию о процессоре » — рассказывает Ромеро — «А затем дал инженеру рекомендации, как ускорить работу блиттера. Вот так Sega удалось создать версию для 32X». (Блиттер — это устройство для изменения и быстрого перемещения данных в памяти.)
Total votes 20: ↑20 and ↓0 +20
Views 10K
Comments 1

Полигоны Another World: Sega Genesis

Game development *Reverse engineering *
Translation

Перевод пятой статьи из серии от Fabien Sanglard, в этот раз про порт Another World на Sega Genesis.


Разработка MegaDrive/Genesis началась сразу после того, как Sega выпустила свою Master System ​​в 1987 году. В то время целью Sega было создание чего-то, что превосходит PC Engine от NEC и Famicom от Nintendo.



Total votes 10: ↑9 and ↓1 +8
Views 3K
Comments 6