Привет.
Сегодня я хотел бы поговорить об ромхакинге старых консольных игр. Точнее речь пойдет об Sega Mega Drive.
У большинства в детстве были игровые консоли Dendy или Sega. Но кто из вас мечтал изменить свою любимую игру, или добавить что то новое? К примеру создать новые уровни, усложнить врагов, или же полностью переписать игру для совершенно нового сюжета.
Лично я с детства мечтал об этом. И потому увлекся хакингом любимой игры Sonic 3 & Knuckles. Я начал изучать движок игры, язык процессора Motorola 68000 и немного Zilog z80.
С помощью Ida Pro удалось получить дизассемблированный код с которым можно работать.
Большинство игр писалось на ассемблере поэтому код выглядит понятным и не очень "запутанным".
И благодаря другим людям(большинству иностранным) мне было легче работать с хаком. Они не поленились и написали программы облегчающие работу с изображениями. Полностью расшифровали алгоритм сжатия данных. В конце-концов дали имена RAM адресам и подпрограммам.
Свой хак я делаю уже 6 месяцев(на свой прошлый хак я потратил где то 4 года, но сейчас не об этом). Код был полностью переработан и поэтому уже трудно узнать здесь оригинальную игру.
Полностью очищенный движок Sonic 3 & Knuckles. Не тронутыми остались только важные подпрограммы, такие как работа с DMA, спрайтами, палитрой и т.п.
И вот что мне удалось сделать за это время:
Новый титульный экран.
Новые настройки перед игрой.
Так же я добавил новый звуковой драйвер в мой хак. Я говорю об GEMS драйвере.
Здесь вы сможете увидеть данные играющей мелодии.
И оригинальный звуковой драйвер SMPS. В данный момент в хаке работают два драйвера. Выбрать драйвер можно в настройках игры.
Так же я написал новых боссов.
И немного кода на котором я пишу.
Это часть кода для загрузки Титульного экрана.
Вот и все на сегодня. В будущем если будет возможность я ещё расскажу об моем хаке и его прогрессе. Но сейчас я не хотел бы полностью показывать все его особенности. Так как я планирую отправить этот хак на конкурс Sonic Hacking Contest 2016. Который начнется в конце октября.
Огромное спасибо внимание и прочтение поста.