Я бегло посмотрел, правда не все, и сразу понял, что нужно многое переделывать, например, такое управление на Спектруме не принято. В итоге скорее всего получится игра "по мотивам" и будет перекликаться с этой.
Вид для печати
Я бегло посмотрел, правда не все, и сразу понял, что нужно многое переделывать, например, такое управление на Спектруме не принято. В итоге скорее всего получится игра "по мотивам" и будет перекликаться с этой.
Мне кажется, что ты слишком оптимистично смотришь) При эмуляции - в 20-30 раз минимум, я думаю)
Кроме того, нет минимума команд. Даже если в игре используется 50% команд процессора, и 50% методов адресации - это все равно будет по сложности, как 90% эмуляции всего PDP-11, я думаю.
Думаю, порядка 3-6 недель по вечерам и выходным. Это при условии знания ассемблера PDP-11, иначе ещё плюс неделя-две.
Начать нужно с того что получить дамп памяти сразу после распаковки. Плюс нужно знать точку запуска в этом дампе.
Следующее, что я обычно делаю -- запускаю в эмуляторе со сбором трассы -- т.е. дизасм каждой команды идёт в лог. Полученный лог делаем sort & uniq, получая отсортированный по адресу листинг только того что выполнялось. В последствии повторяем этот процесс для интересующей нас логики либо вручную дизасмим кусочки с заданного адреса, дополняя полученный листинг.
Дальше ещё выполняем ручной анализ, выявляем где какие переменные, где игровое поле, где работа с экраном, со звуком, где получение команд и их интерпретация итд. Так постепенно будет восстановлена логика.
Тут бы ещё очень помог умный дизасмер. Это когда ты даёшь ему дамп и точку старта, а он от точки старта дизасмит команды одну за другой, и все ветвления запоминает для последующего анализа по обоим направлениям -- так получится бОльшая часть листинга почти сразу, кроме тяжёлых случаях типа переходов по таблице.
Я уже думал о том чтобы сделать такой дизасм, но как-то всё было не до того.