Примерно сотая попытка пройти Зону:
https://www.youtube.com/watch?v=0y7RggMs_Ro
Вид для печати
Примерно сотая попытка пройти Зону:
https://www.youtube.com/watch?v=0y7RggMs_Ro
shattered, зверь, который не нападает может быть превращён в еду, а может просто быть стоячим,
его надо проверять на "убегаемость"...
с отрицательным или 0-вым счётом в банке тебя в следующее подземелье не пустят
если рюкзак забит призраками - джин тебе в помощь!
Что имею сказать...
По всей видимости, первоначально игра была написана на Паскале ДВК - судя по совпадающему блоку сообщений из PASDWK.OBJ.
Причём написана была под кодировку КОИ7.
Со временем видимо "хакеры" приспособили её под КОИ8.
Код:**************** Hacked by O l e g H. 25. 10. 91. ****************
Corrected by LDN August 1993
Внимание !!! Программа выводит текстовые сообщения в коде КОИ-8, поэтому вы должны иметь драйвер, обслуживающий терминал в КОИ-8. (например, мой TS.SYS для УКНЦ).
Олег Ховайко, (UB5AJV).
Для желающий поиграть в STALK без всякой настройки - выложил образ для онлайн-эмулятора:
https://nzeemin.github.io/ukncbtl-wa...alk.uknc&run=1
Ребят, подскажите ещё, не могу найти тему - @Alex_K говорил про какой-то конвертер для .OBJ-файлов, позволяющий получить что-то вроде исходников - помнится, какую-то графическую библиотеку он этим развернул. @hobot может ты помнишь?
Под RSX - DOB.
Под RT его вариант тоже вроде был - надо искать по лентам DECUS.
И что то похожее было под RT.
Но учитывая то, что формат общий и всегда можно было obj перегнать в RSX - RT-шными вариантами я никогда особо не интересовался.
в шапке ссылка "символьные игры" https://zx-pk.ru/threads/32383-ukncb...s-on-line.html
nzeemin, https://zx-pk.ru/threads/31445-rekon...=1#post1049443 нашёл упоминание - особо не вникал в ту тему...
Да, спасибо. Но DECOBJ на этом PASDWK.OBJ что-то сразу умер.
Ну да ладно, этот Паскаль в MAC-файлы генерирует вывод, разберусь как-нибудь.
Задача "получить хоть какой-то дизасм" можно считать выполненной.
Сделал .MAC-файл, который компилируется в 1:1 тот же .SAV файл - здесь в аттаче.
Строки разобраны, но ссылки почти не проставлены.
Но зато очертания в целом уже видны.
Дальше видимо буду причёсывать и комментировать.
Мощно!!! Но разбираться в Паскале будет не очень приятно. Всё таки язык высокого уровня и особой оптимизации нет. Ещё не дизассемблированы команды FIS, есть там парочка. Соответственно присутствует и эмулятор FIS.
Желаю творческих успехов!!!
- - - Добавлено - - -
PASDWK.OBJ является библиотекой. Её сначала надо с помощью LIBR разбить на отдельные объектные файлы, а потом на каждый файл натравливать DECOBJ. DECOBJ требует много памяти, всё лишнее надо выгрузить, в том числе и SL.
http://www.kpxx.ru/Soft/Utils/Stalk
- - - Добавлено - - -
Какое то время назад (до DisAsm-11) начал дизассемблировать Digger, который тоже на Паскале написан. Очень помогает результат трансляции стандартных операторов Паскаля (FOR, CASE), а так же некоторые служебные действия (типа проверки выхода индекса за пределы массива) убирать в макросы. Сильно сокращается текст и улучшается понимание логики. Но вот что делать с переменными на стеке - пока особых мыслей нет. Пример кода:
Код:PROCEDURE M2070
BEGIN
CALL M72264 ; 002070 004767 070170
P.FOR IDXVAR R5 AT #3654 FROM #1 TO #17 BEGIN
LET R0 := 32(SP) + 3654(R5) - #1 ; 002134 016600 000032
PUSH R0 ; 002146 010046
PUSH 32(SP) ; 002150 016646 000032
LET R0 := 3654(R5) ; 002154 016500 003654
CHKARR INDEX R0 AT RANGE LOW #1 HIGH #17
LET R0 := R0 + SP ; 002200 060600
PUSH #0 ; 002202 005046
LET TOP :B= 13(R0) ; 002204 116016 000013
CALL M1352 ; 002210 004767 177136
P.END
LET 24(SP) := TOP ; 002230 011666 000024
LET SP := SP + #24 ; 002234 062706 000024
RETURN ; 002240 000207
END M2070