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