До сих пор Rogue 1.7 за авторством David Goodenough можно было запустить только на Векторе с Z80. Когда-то я пытался написать свою версию на Форте, но забросил. Иногда появлялись мысли сделать рекомпиляцию версии для Z80. Но я не такой ловкач как ivagor и CityAceE и терпения на перелопачивание такого количества кода мне никогда не хватало. Поэтому в продолжение тем о 32-битных и 16-битных платформах, мне было логично продолжить ряд в сторону 8-битных. Получилась неведомая природе зверушка, для которой я даже затрудняюсь подобрать название. Это эмулятор, но части кода, которые можно исполнить нативно, исполняются нативно. Можно представить себе, что это отладчик, который останавливается на каждой незнакомой инструкции и медленно, на счетах, вычисляет ее, потом продолжает идти дальше.
https://github.com/svofski/v06c-ldldld (релиз-диск: ссылка)
На Векторе с 8080 запускать LD ROGUE06C.COM. Файл полностью оригинальный, пропатчен для терминала МикроДОС.
Делать поддержку Z80 в полной мере я не стал. Ограничился тем, что игра запускается и получается пройти несколько этажей. Больше я пока не успел. Эмуляция сделана тяп-ляп, лишь бы скорее запустить, так что вряд ли все идеально работает и вряд ли есть много других программ, которые можно таким образом запустить. Но пробовать можно, а баги можно выуживать и исправлять. Если зависнет, просьба выйти в отладчик и посмотреть, что происходит. Если там будет jmp $, это скорее всего не встречавшаяся мне доселе инструкция Z80 и может быть ее можно доделать. Если будет какая-нибудь фундаментальная проблема типа флагов, которых в 8080 нет, тут конечно увы. Самомодифицирующийся код тоже не любой пройдет. Но вот например Rogue написан довольно прямолинейно и с ним все хорошо.
Быстродействие получилось примерно 1/22 от z80. Инициализация уровня в Rogue требует терпения (примерно минута), в помощь Alt-End в emu80. Можно конечно настроить мощное турбо в emu, но там с клавиатурой в Rogue будет местами непросто. Дальше можно вполне нормально играть на стандартной скорости.
Для тех кто плохо знаком с Rogue, особенно с древними версиями, краткая справка:
основные направления -- vim-keys hjkl + диагонали yu bn (на реале с JCUKEN это задача со звездочкой).
с шифтом (большие буквы) -- бежать в направлении клавиши до первого препятствия
число + клавиша -- повторить действие много раз, например 5s это поискать вокруг пять раз
(по умолчанию в МикроДОС включены большие буквы, надо переключить на мелкие левым шифтом, иначе будет слишком хаотично)
отдых на месте . (точка)
q - выпить зелье (!)
r - прочесть свиток (?)
Монстр атакуется движением в его сторону (или метанием оружия, но это сложнее). Ну и дальше уже потихоньку, еще много всего есть в этой игре. Есть известный баг -- если попадется скролл идентификации, а идентифицировать нечего, выйти из запроса-меню не получается. Это не особенность эмуляции, в оригинале так же.
--
Не стоит забывать про возможность поиграть в STALK1.SAV в виде декомпиляции-рекомпиляции [*] и, если 1/22 кажется безрассудно быстрым, в эмуляции PDP-11 в примерно 1/100 скорости [*]. Но все же Rogue с моей точки зрения значительно более продвинутая игра.




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
