ReC98

Материал из Touhou Wiki
Версия от 14:38, 2 декабря 2019; Bikeroleg (обсуждение | вклад) (Новая страница: «'''ReC98''', ''The Touhou PC-98 Restoration Project'' — проект, основная цель которого — полностью воссоздать у…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

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 (часть игры, содержащая меню и начальную заставку) от пятой игры серии, пропущенный через автоматический интерактивный дизассемблер. Машинное дизассемблирование используется в ReC98 для восстановления общей логики работы игры; дизассемблированный код содержит автоматически сгенерированные имена функций и переменных, поскольку восстановить из машинного кода оригинальные невозможно. Это делает такой код трудночитаемым и потому непригодным для модификации; кроме того, полученные исходники, как правило, представляют из себя спагетти-код с плохой организацией, запутанной и трудной для понимания структурой. Потому основная работа, которую делают разработчики — рефакторинг, то есть приведение кода в читаемый вид, его оптимизация и реорганизация.
С тех пор и по сегодняшний день новые коммиты, большие и маленькие, вносятся регулярно, всего их уже более 700. Тем не менее, на момент написания статьи, спустя более 5 лет от начала «реставрации», выполнено лишь 15% работы по реверс-инжинирингу и 37% т.н. Position independence, то есть переход от ссылок на сегмент адресной памяти к использованию идентификаторов (переменных). Такой медленный прогресс объясняется трудностью поставленной задачи и тем, что проектом фактически занимается один человек в свободное время.

Ссылки

Сайт проекта
GitHub-репозиторий

Примечания

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