ReC98

Материал из Touhou Wiki
Перейти к навигации Перейти к поиску
Логотип проекта ReC98

ReC98 или The Touhou PC-98 Restoration Project — фанатский проект, основная цель которого — полностью воссоздать утраченный[1] исходный код первых пяти игр серии «Touhou Project», выпускавшихся для платформы PC-98.

ReC98 курируется nmlgc, основателем Touhou Patch Center, он же вносит наибольший вклад в разработку. Код открыт для всех желающих и опубликован на GitHub. Финансирование осуществляется посредством краудфандинга и общая стоимость проекта оценивается в ~18 330 €.

Задачи

Цель ReC98 — создать читаемый и понятный ассемблерный код, скомпилированная версия которого не отличалась бы от исполняемых файлов ZUN'а. Сравнение производится с помощью инструмента собственной разработки. По задумке, код не будет IBM-совместимым, т.е. будет, как и оригинальный, ориентирован на PC-98, однако его читаемость и использование переменных вместо адресов позволят без проблем переносить код на любую архитектуру и создавать модификации. Также планируется поддержка Unicode, что позволит перевести игры серии на большинство языков мира.

История

Первый коммит проекта датируется 27 июля 2014 года и содержит в себе код файла OP.EXE (часть игры, содержащая титульный экран и меню) из «Mystic Square», пропущенный через автоматический интерактивный дизассемблер. Машинное дизассемблирование используется в ReC98 только для восстановления общей логики работы игры, поскольку полученный таким образом код содержит автоматически сгенерированные имена функций и переменных. Это делает такой код трудночитаемым и потому непригодным для модификации. Кроме того, полученные исходники, как правило, представляют из себя неорганизованный спагетти-код с запутанной и трудной для понимания структурой. Потому основная работа, которую делают разработчики — рефакторинг, то есть приведение кода в читаемый вид, его оптимизация и реорганизация.

Новые коммиты различного размера вносятся регулярно, и к моменту написания статьи их уже более 700. Тем не менее, спустя более пяти лет от начала «реставрации» выполнено лишь 15% работы по реверс-инжинирингу и 37% по достижению так называемой «Position independence», то есть переходу от ссылок на сегмент адресной памяти к использованию идентификаторов (переменных). Такая медлительность объясняется трудностью поставленной задачи и тем, что проектом фактически занимается один человек в свободное от работы время.

Ссылки

Примечания

  1. Согласно информации в репозитории, ZUN подтвердил потерю данных «ранних игр» в 2002-м году.