Уже отказался делать точную копию.
Если будет вдохновение сделаю "бродилку" пошаговую как в оригинале с поиском золота/пищи/воды, а также монстрами по принципу сказки: чем дальше тем страшнее.
Вид для печати
Так есть же Hex-Rays IDA :-)
https://thumb.ibb.co/jERUb8/2018_07_27_1.png
Вот кстати по game play'ю похожа на Зону: ход игрока на клетку и ход врагов.
Что мешает сделать игровое поле скроллируемым и добавить кнопку уменьшения масштаба, чтобы осмотреться?
И давно уже пора кому-нибудь в ReDASM добавить PDP-11 с RT-11 .SAV :P
и телепорт к золотому шару сразу :)
игра тем и хороша, что недружелюбна к сталкеру.
https://i.imgur.com/ElC7p1t.png
(зашел в ведьмин студень - помер)
вызывай джина - только в рюкзаке хотя бы 1 предмет надо иметь - джин вытащит )
МакБастер в своём стиле - бредит конкретно )))
- - - Добавлено - - -
символ кирки и шара одинаковый ) Капишь?
- - - Добавлено - - -
И если уж писать "новый вариант" Зоны - надо :
вводить городские локации - бар Боржчь, Интситут
добавить возможность сбывать хабар, выполнять заказы,
иметь плоскую скроллированную карту игрового мира - достаточно большую что бы интересно было сыграть 1 раз.
В классическом варианте - это идеальная игра для "сыграем ещё разок!"
Кстати говоря вариант игры "ЗОНА" я так и не нащупал ни на одной дискете - различия я не однократно описывал уже )
- - - Добавлено - - -
ищи и читай папирусы - там координаты полезных предметов иногда пишут )))
- - - Добавлено - - -
так это ж Рогу ) А Рогу Лайк тут (Рогалик) https://zx-pk.ru/threads/25890-povel...l=1#post949085
"Можно грабить корованы"
Классиков надо цитировать дословно ;)
Сталкера-2 дождаться? не знаю о чём вы, я подразумевал делать максимально к тексту повести и сюжету рогалик.
"Зел.Гост.-2" под MS-DOS тут, если кому любопытно > https://www.old-games.ru/forum/threa...inica-2.45234/
скрин говорящий
Код:PУC
TALKER БК-0011M VERSION
ЗАГАДАЙTE ЧИCЛO.MOЖET БЫTЬ, OHO BАM ПPИГOДИTCЯ... TАM...
Очень красивая версия игры под MS DOS \ Win,
проверенный рабочий архив
http://rilarhiv.ru/roguelike/stalk.rar
Ресурс интересен тем кому интересен (из серии |> игры для админов <)
shattered, дос версия хорошая вышла спору нет.
хороший ресурс - откину в зеркало http://mirrors.pdp-11.ru/_x86_/rilarhiv.ru/
а то что символьная тут была-проплывала разве не она?
https://pic.maxiol.com/thumbs/156622...615417.sm1.png
Примерно сотая попытка пройти Зону:
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
Макросы-шмакросы - это всё конечно хорошо, если оставлять результат там же в MACRO-11 - например, для дальнейших улучшений.
Сначала конечно мне хотелось бы подробнее разобраться в устройстве игры - понятно что это куча if / case но всё же.
Затем надо думать про портирование, это уже обсуждалось тут на первых страницах темы.
И тут уже вопрос - куда, точнее, на каком языке.
Как вариант - вероятно, можно (хоть и довольно трудоёмко), восстановить исходник на том же самом Паскале ДВК.
Либо уже сразу переводить на благородный Си.
Нет. Именно для понимания логики. И имеем вместо
а дальше опятьКод:MOV 26(SP), R0
SWAB R0
BIC #377, R0
ASL R0
ADD R5, R0
MOV 22(R5), R1
ASL R1
ASL R1
ASL R1
ASL R1
ASL R1
ADD R0, R1
ADD 24(R5), R1
CMPB 27(R1), #136
- по одной строке.Код:MOV 26(SP), R1
SWAB R1
BIC #377, R1
ASL R1
ASL R1
ADD R5, R1
MOV 22(R5), R2
ASL R2
ASL R2
ASL R2
ASL R2
ASL R2
ASL R2
ADD R1, R2
MOV 24(R5), R1
Ну, это не я сталкера восстанавливаю, так что в принципе - не мои заботы.
Собирался из восстанавливаемого исходника он с самого начала работы над ним.
Но до конца дизасм не доведён - основная цель была - не восстановление текста - это было ещё не осознанное обдумывание, как выяснилось, DisAsm-11
Может быть, со временем доведу до логического конца, но уже отрабатывая функционал DisAsm-11.
Вопрос к специалистам по Паскалю ДВК (он же OMSI Pascal):
Как сделать печать строки черз WRITE, но чтобы в строке были спецсимволы, например, табуляция, переносы строк, ESC-последовательности?
Я вижу по коду что это было сделано, то есть это можно сделать, но не понимаю как в синтаксисе Паскаля это записать.
- такой код даст не то что нужно, это будет два вызова - один WRITE для строки и один печать символа.Код:WRITE('Строка',CHR(13))
не совсем понял, что и где ты предлагаешь поправлять? эта строка из ХЭЛПА игры, если что, он в во всех версиях одинаков вроде бы???Цитата:
т - BЗЯТЬ ПPEДMEТ, НA КOТOPOM CТOИШЬ
я вот только не уловил - где вы берёте эту программулину?
Ого, да неужто вы СТАЛКЕРА куда-то портировать собрались?
Если кто помнит, то версия для MS DOS есть и очень красивая ...
а что тебя смущает - честно не понял?
у табуляции "номер символа" 9., соотв. WRITE(CHR(9)); ПРЕНОС СТРОКИ В КОНЦЕ СТРОКИ (АВТОМАТОМ) = WRITELN('///');
ESC - ПОСЛЕДОВАТЕЛЬНОСТИ
можно реализовать так как в процедуре позиционирования курсора, а можно сделать отдельную процедуру
для вывода каждого символа отдельно, ПАСКАЛЬ, наверное лучше в теме ПАСКАЛЯ обсуждать? Там же куча шпаргалок
уже и искать \ читать в одной теме удобнее, я продолжу ответ там...
у меня что то не видать такой опечатки в готовых играх, вы специально такую версию взялись мучить?
- - - Добавлено - - -
почему у меня игры с нормальной строкой без опечаток? вы специально такой Сталк подыскали что ли ?
DESSом залезьте перед дезасмом и правьте что хотите там...