Spiiin's blog

CadEditor 4.1 (Universal NES and SEGA level editor). Changelog

Обновил мажорную версию своего редактора CadEditor уровней для кучи NES и SMD игр. За 3 года добавил:

Поддержку новых режимов аттрибутов (бит палитры и свойств) – поддержка аттрибутов на уровне блоков (уже была, игры Capcom) , макроблоков (Tiny Toon Adventures / серия Ninja Gaiden), описание аттрибутов отдельным слоем поэкранно (Contra Spirits / Mickey Mania / Batman).

Поддержку иерархий макроблоков любого уровня вложенности (рекорд: Rokin’ Kats – 4 уровня иерархии).

Систему плагинов для редактирования конкретных аспектов игр (примеры - плагин для редактирования глобальной карты или плагин для редактирования фонов в SMD-играх, доработанный редактор фреймов анимаций для Capcom-игр).

Конфиги для отображения блоков и экранов для десятка сеговских игр (в основном использующих компрессор RNC, для которого есть пакер).

Заметки по форматам уровней: Раз, Два, Три. (SMD Earthworm Jim 1-2, Alladin, Jungle Book, Mickey Mania, Pitfall etc)

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

С помощью этой утилиты открыл наиболее часто встречающийся способ кодирования блоков в NES играх – 16 байт на блок 4x4 и 1 байт на палитру.

Добавил поддержку таких блоков в редактор и описал конфиги для двух десятков игр с таким форматом (серия TMNT, серия Battletoads, серия Adventure Island, серия Power Blade, Jackal, Contra Force, Jackie Chan Action Kung Fu etc.)

Улучшил утилиту Autocorrupter, для создания скриншотов изменных данных об уровне и их последующего анализа. Утилита используется для упрощения генерации конфигов картинками и блоками для редактора. - Немного улучшил код редактора и добавил возможность использовать его как библиотеку, управляя ею из скриптов на языке Python (с использовнием Jupyter Notebook). Скриптование своих же программ позволило перейти от реверса конкретных игр к реверсу всех игр на платформе вообще.

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

Запустил кампанию на Patreon, собирающую по 3$ в месяц на пиво :)

Суммарно в проекте около 30к строк кода, 500 конфигов уровней для 85 разных игр.

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