А собрать это каким-нибудь паскалевским компилятором получится? Или не выйдет из-за "hacked by..." и КОИ-8?
Вид для печати
А собрать это каким-нибудь паскалевским компилятором получится? Или не выйдет из-за "hacked by..." и КОИ-8?
Это и собирается паскалевским компилятором - но он срезает верхний бит у символов в строках.
После компилятора я применяю патчинг на полученном .MAC-файле, восстанавливая строки и добавляя в них спецсимволы - то что было сделано руками на бинарнике.
То что можно было сделать средствами Паскаля, я сделал.
Интересно, а 8-битный паскаль был?
Ведь терминалы DEC 8-бит поддерживали.
Да и возможно для АДОС что-то было...
Не все.
Что то мне подсказывает, что нетронутый OMSI Pascal - нет. Тот же MACRO-11 без допиливания не поддерживает, хотя DEC достаточно давно добавила поддержку национальных алфавитов в терминалы за счёт восьмого бита.
Да и идея использовать 8-ой бит для национальных алфавитов - она тоже достаточно поздняя.
Мысль вслух. Сильно подозреваю, что компилятор OMSI Pascal сам написан на Паскале :) Так что можно попробовать восстановить исходники :)
С фейсбука:
То есть это под Free Pascal Compiler.Цитата:
Serge Vakulenko
Совершенно очаровательная игрушка! Я слегка попинал исходники, чтобы под Линуксом собирались.
https://github.com/sergev/vak-openso...ker/stalk1.pas
- - - Updated - - -
Опять же трудозатраты порядка 4-6 недель.
Компилятор Pascal OMSI 2 для RSX
Компилятор Pascal OMSI 2 для RTКод:Dump of VF1:[4,54]PASCAL.TSK;1 - File ID 43,1,0
Virtual block 0,000004 - Size 512. bytes
000000 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000020 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000040 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000060 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000100 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000120 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ h I ^B ^@ ^@ ^@ ^@ ^@
000140 w ^I p R f ^U J J ^H f ^U & J ^H
000160 W - R H ^E ^@ ^F ^B w ^K ^^ Y ^C ^C w e
000200 ^D ^@ ^V Y f ^U X J ^H w ^U Z K
000220 7 ^J X K 7 ^J V K 7 ^J T K @ ^U ^@ ^@
000240 ^M ^C A ^U 0 N w ^P @ K ! ^@ ^@ ^L B ^U
000260 ^Q ^P ^B ~ F ^U 0 N ^J ^A A ^U ^@ ^P
000300 f ^P w ^I T ^A 7 ^U K F ^] ^\ K F `
000320 7 ^Q ^^ K B ^] v J & ^P N ^L w ^I : ^A
000340 ^A ^U @ ^P w ^P l J ^Q ^J ^B ~ w ^P f J
000360 p ^U 0 K ^J ^@ p ^U " K ^H ^@ w ^U " K
000400 P J f ^U P J ^H ^@ ^C ^A f ^U ` J
000420 ^H f ^U ^P K ^H @ ^] ^D H ^W ^D ^@
000440 ^H ^F 7 ^P ^D H 7 ^P ^N H @ e H K 7 ^P
000460 ^J H f ^U " K f ^U 0 K ^A ^A ^O ^A f ^U
000500 B K ^H ^K ^G @ ^W & ^@ ^H ^G 7 ` ^ G
000520 w E ^@ ^D N G w ^U D K F G W % ^L ^@
000540 ^L ^@ ^[ ^C 7 ^H r ^N ^@ ^_ - ^@ C o m p
000560 i l e r / L i b r a r y m i s
000600 m a t c h - - P l e a s e
000620 r e c o m p i l e ^@ w ^@ 6 ^H ^G ^@
000640 f ^U x J ^H ^G ^@ 7 ^] ^B ^@ 6 J @ ^W
000660 . ^@ ^@ ^^ 4 ^@ ^A ^C h ^H & ^J & ^P @ ^]
000700 l | 8 ^^ ^D ^@ ^@ ^@ ^@ ^U w ^I b ^C ^D ^@
000720 @ ^] ^B ^@ x ^I ^D ^@ A ^] x I @ ^R ^H ^C
000740 ^N ^P 7 ^Q l I ^@ ^\ ^D ^@ ^B ^C x ^I ^J ^@
000760 Q ^K w ` I r ^G w ^I $ f ^] d I
Думаю, и там и там компилятор написан на ПаскалеКод:Dump of DU1:[PASRT]PASCAL.SAV;1 - File ID 5141,1,0
Virtual block 0,000007 - Size 512. bytes
000000 % ^J u % ^X ^@ ^B ^G w ^I H ^@ M ^K ^S ^A
000020 @ ^_ ~ @ E ^@ s ^C @ % ^M ^@ p ^C
000040 @ % ^J ^@ ^H ^C @ % ^[ ^@ ^E ^C @ % ^Z ^@
000060 f ^B M U ^@ ^@ @ ^U ^@ = ^P ~ M U
000100 ^@ @ ^G ^@ w ^I $ ^D ^@ M 5 ^T ^@ ^L ^B
000120 7 ^H > } ^A ^@ ^O ^@ P U T N O T
000140 A L L O W E D ^@ w ^I 6 ^@ M U ^A ^@
000160 u - ^X ^@ ~ ^E ^B u ^] ~ ^X ^@ M U
000200 ^@ ^@ u % ^@ ^L ^@ ^C ^B w ^I 4 ^A ^G ^@
000220 @ m ^P ^@ ^C ^G @ - ^R ^@ ^B ^F w ^I 4 ^@
000240 ^G ^@ e m ^V ^@ @ ^U M 5 ^B ^@ ^P ^B @ m
000260 ^P ^@ @ E ^@ ~ ^I ^C @ m ^V ^@ @ e ^@ ^B
000300 ^D ^C @ m ^V ^@ 5 ` ~ @ ^] ~ @ m
000320 ^V ^@ ^G ^@ f ^P & ^P f ^P M 5 ^B ^@ ? ^C
000340 @ ^] ~ @ m ^P ^@ @ E ^A ^A ^P @ m
000360 ^P ^@ @ m ^X ^@ 3 ^F ^@ ^K M 5 ^A ^@ ^B ^C
000400 w ^I ^N ^C u ` ~ u ` ^X ^@ B ^P B ^@
000420 ^B ^L 5 ` ^N ^@ ^K ^F 7 ^H v | ^A ^@ ^M ^@
000440 F I L E O V E R F L O W ^@ B ^]
000460 ^P ^@ ^A ` ^C ^P ^C ^L R ^T B ~ M 5 ^L ^@
000500 ^M ^C 7 ^P 0 3 7 ^P . 3 7 ^K * 3 ^@ ^J
000520 @ ^@ ^@ ^L 7 ^P ^\ 3 w ^I ^V ^A ^\ ^A M 5
000540 ^A ^@ ^D ^C w ^I " ^B M E ^A @ ^] ^X ^@
000560 @ m ^P ^@ @ e ^A ^@ ^J @ ^@ ^@ ^L 5 `
000600 ^N ^@ J ^G e ^] ^P ^@ u ^U ^X ^@ M 5 ^L ^@
000620 ^B ^C w ^I > ^A ^C ^U ^B ^U ^A ^U M E ^@ @
000640 @ ^] ~ @ m ^V ^@ @ - ^X ^@ ^B ^F M U
000660 ^@ @ ^G ^@ 7 ^S ^J 3 & ^P f ^P f ^Q E ^_
000700 ^D 3 w ^I Z } ^B ^G w ^I ^H ^@ ^E ^U ^A ^U
000720 ^@ ^U ^G ^@ f ^] n 2 w ^_ j 2 h 2 w ^I
000740 ` ^@ 7 ^U ` 2 e ^K E - . 2 & ^C E -
000760 , 2 # ^C U ^K @ ^] ^R ^@ ^D ^C f ^] ^P ^@
Dump of DU1:[PASRT]PASCAL.SAV;1 - File ID 5141,1,0
Virtual block 0,000010 - Size 512. bytes
000000 w ^I z z ^@ ^J @ ] ^L ^@ ^W ^@ ^S ^C
000020 @ ^@ @ U ^C ^@ u 5 @ ^@ ^@ ^@ ^A ^B @ ^L
000040 @ ^@ ^A ^P @ E ^@ | ^H w ^I 4 ^@ @ ^P
000060 | ^H w ^I @ ^@ w ^I R ^@ ^G ^@ w ^I , }
000100 ^D ^@ M 5 ^A ^@ ^L ^C w ^I > ^A M E ^A
000120 u 5 ^@ ^@ ^U ^@ ^D ^B e ^] ^P ^@ u ^U ^X ^@
000140 ^G ^@ ^W ! ^^ B ^F ^C 7 ^U 0 3 7 ^Q . 3
000160 F ^U ^\ B ^G ^@ & ^L ^W ! ^^ B ^B ^C V ^L
000200 ^G ^@ V ^L F ^] ^V 3 G ^] ^P 3 e ^K ^@ ^J
000220 @ ] ^N ^@ ^W ^@ ^C ^C @ ^L 0 ^J " @
000240 ? ^J " 2 E - t 1 ^F ^B w ^] l 1 l 1
000260 ^] f 1 ^P 2 E - f 1 ^F ^B w ^] ^ 1
000300 ^ 1 ^] X 1 ~ 1 @ ^U ^^ ^@ f ^Q w ^I
000320 , z ^G ^@ w ^I ^F | @ ^] ^@ ^@ @ E o
000340 u % ^@ ^L ^@ ^E ^B w E ^@ ^P 6 q 7 P
000360 2 q M 5 ^@ ^A ^C ^G ^@ @ ^U r @ & ^P
000400 f ^P & ^P P ^] ^L ^@ P ^U ^H ^@ P m ^N ^@
000420 H m ^P ^@ 5 ^T ^X ^@ H m ^R ^@ ^H ^J ^P ^L
000440 ^P ^J u % ^@ ^L ^@ ( ^B A ^S A E o
000460 _ E ^@ ^P $ ^@ _ P $ ^@ ^@ ^J A ^] 6 1
000500 B ^] 4 1 B ^L ^N ^C ` ^H ~ ^G ^W ^Z ^@
000520 ^I ^C ^Q ^P B ^J ^F ^C ^W ^J ^@ ^C ^C M 5
000540 ^@ ^P r ^C ^A ^P @ ^] ^N 1 @ ^L ^@ ` W
000560 ^Z ^@ E ^B 7 ^J 2 p ^I ^A ^@ ^J @ ] ^L ^@
000600 | ^H @ ^U r @ } ^H 9 ^F @ ^L 5 ` ^X ^@
000620 w ^K ^V p ^C ^B M U ^@ 3 ^A w ^U * ^@
000640 " 1 w U ^D ^@ ^C p M 5 ^@ ^B * ^B W -
000660 x p ^A ^@ ^L ^F ^W ^E 7 ^H V z ^A ^@ ^N ^@
000700 T R A N S F E R E R R O R 7 ^H
000720 @ z ^A ^@ ^P ^@ C H A N N E L N O
000740 T O P E N 7 ^H ( z ^A ^@ ^N ^@ W R
000760 I T E P A S T E O F @ ^L 5 `
Dump of DU1:[PASRT]PASCAL.SAV;1 - File ID 5141,1,0
Virtual block 0,000011 - Size 512. bytes
000000 ^X ^@ ^B ^U ^A ^U ^@ ^U ^G ^@ A ^] ^X ^@ A m
000020 ^P ^@ & ^P f ^P & ^P u 5 ^@ ^@ ^U ^@ ^M ^C
000040 @ ^P @ E ^@ ~ ^I ^C ^@ ^K @ e ^@ ^B A m
000060 ^P ^@ ^Q ^J ^B ~ A m ^P ^@ A ^K b ^C W -
000100 ^L ^@ ^@ ^V ^C ^A ^J ^A ^L ^B ^G = ^J ^X ^@
000120 B ^U r @ R ^] ^L ^@ R ^U ^I ^@ R ^] ^N ^@
000140 R ^] ^P ^@ R ^P ^R ^J @ ^U r @ } ^H ^V ^G
000160 H ^A B ^] ^P ^@ ^@ ^T a ^H ~ ^G D ~ A ^A
000200 w ^] ^X 0 @ 0 & ^S w ^I ` z ^D ^@ M 5
000220 ^@ ^X ^O ^B v ^_ ~ ^L ^@ u % ^@ ^L ^@
000240 ^P ^B M 5 ^@ @ ^M ^C M U ^@ ^H M E ^@ @
000260 ^G ^@ w ^I ^@ { v ^_ ~ ^L ^@ M 5 ^@ P
000300 ^B ^B w ^I p z ^G ^@ w ^] P / x / w ^I
000320 ^Z z ^D ^@ M 5 ^@ @ ` ^B w ^I X z z ^A
000340 w ^I ^H z ^H ^@ & ^P f ^P & ^Q ^@ ^] ^R ^@
000360 ^A ^] ^T ^@ A e ^A ^@ ^@ ^K ^M ^@ 7 ^H ^R y
000400 ^A ^@ ^Q ^@ S E E K O U T O F
000420 R A N G E ^@ M 5 ^D ^@ ^D ^C u 5 ^@ ^@
000440 ^U ^@ ^P ^B 7 ^H j x ^A ^@ ^W ^@ S E E K
000460 O N S E Q U E N T I A L F
000500 I L E ^@ M E ^@ M 5 ^B ^@ ^E ^C B ^]
000520 ^V ^@ w ^I ^Z ^@ ^U ^A B ^] ^Z ^@ ^E ^C w ^I
000540 z ^@ u p ^V ^@ ^I ^A B ^] ^V ^@ B e ^A
000560 ^W t w w ^I x ^@ ^C ^J ^W v ^I ^@ A `
000600 @ ^K ^B ^J C ^] ^N ^@ ^W v ^I ^@ A ` ^@ ^K
000620 ^@ ` ^N ^B D ^] ^X ^@ D m ^P ^@ D m ^V ^@
000640 ^G ^G D ^E ^B A m ^P ^@ u ^P ~ ^R ^A
000660 C ` B ^K ^B ` w ^I ^H | e ^P M E ^@ ~
000700 U m ^R ^@ ^W v w u ^P ^N ^@ w ^I ^D }
000720 w ^I H { ^D ^U ^C ^U ^B ^U ^G ^@ ^D ^P ^C ^P
000740 B ^M ^D r ^@ ^P B ^P C ^P ^D r ^A ^P ^G ^@
000760 C ^P ^B p @ ^P ^A ^D ^A ` C ^P B ^K ^A ^D
Dump of DU1:[PASRT]PASCAL.SAV;1 - File ID 5141,1,0
Virtual block 0,000012 - Size 512. bytes
000000 ^C ` ^B p @ ` ^G ^@ w ^] ^T . 8 . w ^I
000020 Z y ^H ^@ & ^P f ^P & ^Q & ^J C ^U ^F ^@
000040 ^A ^] ^V ^@ ^A ^B ^C ^J ^B ^] ^T ^@ ^J ^@ D ^U
000060 ^H ^R ^B ^K A ^K ^M ^@ N ^U 1 ^@ A E ^@ ^@
000100 ^M ^A D ^U ^T ^R A ^K ^D ^@ N ^U - ^@ ^A ^K
000120 ^C ^J C ^J ^A % } ^B d ^K ~ ^C B ` ^E ^G
000140 @ ^U ^@ w ^I 8 ^@ ^E ~ ^@ ^U ^D ^B ^@ ^J
000160 ^T r @ e 0 ^@ w ^I & ^@ G ~ w ^I n ^@
000200 ^D ^U ^C ^U ^B ^U ^G ^@ ^@ ^P ^@ ^B @ ^@ ^H ^@
000220 ^A ^@ ^@ ^@ ^P ' h ^C d ^@ ^J ^@ ^A ^@ ^@ ^@
000240 = ^P ~ M U ^A ^@ % ^J u % ^X ^@ ^C ^C
000260 u ^] ~ ^X ^@ @ ^] ^P ^@ @ m ^R ^@ @ -
000300 ~ ^B ^G w ^I ^L z ^G ^@ w ^] R - v -
000320 w ^I ^X x ^H ^@ ^D ^A @ ^U ^@ w ^I @
000340 v ^J ^L ^@ y ^F ^@ ^] ^N ^@ w ^I 2 u %
000360 ^@ ^L ^@ ^B ^B w ^I H { ^G ^@ w ^] -
000400 D - w ^I f x ^D ^@ @ ^U ^M ^@ w ^I ^P
000420 @ ^U ^J ^@ w ^I ^H j ^A w ^] ^B - & -
000440 w ^I H x ^J ^@ ^A ^] ^L ^@ ^A m ^N ^@ ^E ^G
000460 @ ^U ^@ w ^I h E ~ v ` ^N ^@ ^H ^G
000500 ^A ^] ^P ^@ @ ^T w ^I V v ^J ^N ^@ z ^F
000520 N ^A w ^] J - n - & ^S 6 ^] ^D ^@ ^B ^@
000540 w ^I ^H x ^J ^@ 6 ^L ^P ^@ @ ^U ^D ^@ v ^U
000560 ^N ^S ^P ^@ ^D ^G v ^U ^R ^S ^P ^@ ^@ ^J ^@ -
000600 ^L ^@ ^B ^F 6 ^P ^L ^@ 6 ^P ^N ^@ L ^A T R
000620 U E F A L S E ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000640 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000660 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000700 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000720 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000740 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
000760 ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@
есть вариант для БК0010 на Фокале, игрался в него, пока КУВТ-86 не вывезли.
Легко распознаётся стандартным символом запроса для языка Фокал ' : '
отсюда и далее > https://zx-pk.ru/threads/13979-zhurn...=1#post1087745
Я попробовал собрать ACK-овским Паскалем в надежде на конверсию для 8080. Но столкнулся с тем, что ACK-овский Паскаль крайне академичен. Например, в нем нет битовых операций, процедур Exit и Break, наверное чего-то еще. Битовые операции решаются множествами, Exit и Break можно заменить goto или переписать логические блоки, но этот вариант я пока отложил.
Другой способ добиться портабельности -- прогнать через транслятор p2c. Это получилось почти сразу и результат даже запускается под Линуксом. Но надо прикрутить небуферизованный консольный ввод, чтобы работало нормально и можно было бы проверить результат трансляции по-настоящему.
nzeemin, а что такое frandu ?
У меня на stalk1.pas под RT-11 картина такая :
- - - Добавлено - - -Код:HD7>PASCAL STALK1=STALK1
ERRORS DETECTED: 0
FREE MEMORY: 6254 WORDS
ERRORS DETECTED: 0
FREE MEMORY: 6254 WORDS
HD7>DIR STALK1
21-Apr-2021
STALK1.PAS 70 21-Apr-2021 STALK1.MAC 269 21-Apr-2021
HD7>mac STALK1
HD7>LIN STALK1,SY:PASCAL
HD7>RU STALK1
*** (H) Hacked by Oleg H. ***
^_^_^_^ __ С Т А Л К Е Р __
загадайте число. может быть, оно вам пригодится... там...
А ВОТ ДО УРОВНЯ НЕ ДОТЯНУЛ, ВЫЛЕТЕЛ,
НО ТОЛЬКО ПОСЛЕ НАЖАТИЯ "H" - ДО НАЖАТИЯ
ПРОСТО ВИСЕЛ НА НАДПИСИ
Для подсказки нажимайте "H"
TRAP TO 4 - FROM PC 155340
HD7>
HD7>H
ага, то есть вот эти самые спец символы что ли для сообщений мелькающих в начале?
и ошибка с ними связана?
FRANDU это модуль RANDU вытащенный из библиотеки Фортрана - вытащен для того, чтобы не искать нужную версию FORLIB.OBJ в которой точно всё такое же до байта.
https://github.com/nzeemin/uknc-vari...r/STALK-PASCAL - тут лежит FRANDU.MAC, там же батник !compilelink.bat, который описывает мой процесс сборки, под Windows 10.
Как оно работает без патчинга и работает ли вообще - я не проверял, цель же была не в этом. Цель была - восстановить достоверный исходник путём побайтовой проверки - она достигнута.
с FRANDU.OBJ всё замечательно вроде бы ;-)
- - - Добавлено - - -Код:Подземелье 1
1 Рейтинг 3
Энергия 20
!Оружие 15
Защита 11
! . . В банке 0
! . . .
# - . - - . Вредность 2
! . . . . . .
# - - # - . ! - - Рюкзак:
- - ! y . - \ . < . . .
. ! . . .
. . - - -
. . . . .
. . . . .
- - @ .
- - - -
Превращение догоняющего зверя
кстати говоря - размер исполняемого файла после трансляции и линковки PASCAL = 49 блоков,
а OMSI (PASDWK - который в архиве обозван) - исполняемый играбельный файл 47 блоков )))
Но это так... просто ради эксперимента собрал и тем и другим...
Влияет конечно библиотека PASCAL.OBJ - и кол-во всяких там "сообщений" которые она лепит + что то ещё наверное...
Собралось ACK-ом через промежуточный C, работает на Векторе с BoldBIOS 56К. Жирновато выходит, требует больше памяти, чем большинство МикроДОС-ов позволяют. Пока не очень играбельно — чересчур медленно заполняются уровни в начале и стрелочки для ходьбы прикрутить не получается. Но вообще это бешено круто! nzeemin, ты — монстр уровня 700 :D
Причина -- использование плавучки в генераторе псевдослучайных чисел. Надо заменить на что-то быстрое целочисленное, тогда проблема должна уйти. Сам алгоритм заполнения весьма примитивный и ест немного. На любой нормальной машине должен заполнять все 8 поздемных уровней меньше, чем за секунду при правильной реализации.
Там в оргинале же циферки с допклавиатуры. Неужели не выходит добавить коды символов от стрелочек? Кстати, по-хорошему, там нужны диагонали. В исходной игре они есть и некоторый толк от них -- тоже.
Да, терпению Никиты можно позавидовать ;)
Сам занимался реверсом, и могу сказать, что это реально очень объёмная и зачастую сложная работа.
есть предложение поддержать Никиту калориями и скинуться ему на торт ;-)
Или может что то более полезное - литр мёда, сухофрукты и грецкие орехи )
В игре диагонали жизненно необходимы, в уровнях где всё видать - экономьте батареи, без золота из подземелья не выпустят, кирка на 8 этаже (если без заклятия) превращается в золотой шар. Кстати вспомнилось почему-то "землятресение" из "Страны Монстров" - в результате все объекты на карте перемешивались и заменялись.
Функция бросания кубика вычисляется как RANDOM := A + (_randint() mod (B - A + 1)); _randint() у меня превращается в стдлибный rand(). Проблема тут для 8080 в делении прежде всего.
Дело в МикроДОСе, вернее в его эмуляции терминала. Где-то там кто-то решил, что стрелочки не нужны и все они превращаются в нули. Кроме стрелочки влево, которая превращается в ^H. И, как совершенно верно было замечено hobot-om, диагональные стрелочки необходимы. Таких стрелочек по сути на Векторе все равно нет. Сейчас ходить можно цифирками, как в оригинале. Потом можно будет попробовать сделать пропатченный микродос хоть с поддержкой джойстика =)Цитата:
Там в оргинале же циферки с допклавиатуры. Неужели не выходит добавить коды символов от стрелочек? Кстати, по-хорошему, там нужны диагонали. В исходной игре они есть и некоторый толк от них -- тоже.
А для виндовой командной строки будет?
Пару страниц назад была ссылка. Там не все так просто, Юникод, русские буквы в консоли, у меня с полпинка не завелось.
- - - Добавлено - - -
С целого пинка все-таки получилось http://sensi.org/~svo/b/stalk1-win32.zip
win7 x64 sp1 - кодировка не та.
https://cdn.discordapp.com/attachmen...58/unknown.png
Да, я уже слышал вести с полей о том, что фигня какая-то. У меня на десятке все работает красиво. Может быть потом попробую найти что еще может быть не так.
"Гранаты не той системы.." (с)
https://s.micp.ru/dWvNv.png
7-64, если что.
недавно консольное приложение в стУдии компилил, намучался с кирилицей :)
Вот в чем тайна? Я не знаю на самом деле.
Ну как тайна. я компилил Си-шное приложение, мне его тоже видимо с десятки дали, компилил для ХР32, с кирилицей был ужос. Пришлось перепробывать все рекомЕНдации из интернету. Какая-то помогла. Ну это при компиляции. А сейчас я сделал проще. у меня всегда запущено кмд-окно с прошивальщиком. в нем в настройках поменял шрифт с консольного на Люсиду, и запустил Сталкер-а. Viola!
https://s.micp.ru/RFBko.png
Но луЧЧи конечно перекомпилировать "правильно".
метод с переключением шрифта работает, но не полностью - вводимые с клавиатуры символы всё равно не корректно отображаются (число в начале), но конкретно для этой игры - сие не имеет роли и не играет важности ;-)
https://i.ibb.co/vDW2pRK/w764stalk.png
И я не понимаю, это всё-таки DOSовская версия, не RTшная? Тут фонарик получается не нужен, или как? :v2_conf2:
Лучше конечно RTшную портировать, она же оригинальная...
Не все шрифты имеют нужные страницы. Факт, что шрифт должен быть юникодный.
Фонарик нужен в любом случае. В некоторых случаях уровень сразу оказывается освещен, это определяется в начале при генерации и зависит от введенного числа, как и все остальное.
Это RT-шная версия. Все изменения в коде связаны только с управлением экраном и генератором псевдослучайных чисел.
а вот это уже изврат, причём конкретный ИМХО.
https://i.ibb.co/Lrd339J/w764stalk.png
что то "не здоровое" - Похоже кто то не с той "фантазией" рукоблудил в игре...
в оригинале - приведённых ниже сообщений не было - кто то правил,
(!)Никита всё же не ту версию выбрал,
но можно аккуратно подредактировать уже PAS файл? Или DESSом исполняемый...
Для вновь прибывших конечно всё это по барабану...Код:'l': WRITELN('Раздолбанный компьютер ZX SPECTRUM - 128. ');
'r': WRITELN('Разложившийся труп девушки. '); {Пробелы компенсируют нули после строки}
's': WRITELN('Надпись: "Мы до тебя еще доберемся!!! " '); {Пробелы компенсируют нули после строки}
't': WRITELN('Отрезанная голова предыдущего Сталкера. '); {Пробелы компенсируют нули после строки}
'u': WRITELN('Зачитанный журнал "АКУШЕРСТВО И ГИНЕКОЛОГИЯ" ');
'q': WRITELN('Кладбище снусмумриков. ');
'x': WRITELN('Окровавленная бензопила');
И фонарь наверное действительно не очень то и нужен
:frown:
- - - Добавлено - - -
https://zx-pk.ru/threads/29331-igra-...=1#post1024150
- - - Добавлено - - -
размеры исполняемого файла из восстановленного Никитой исходника в зависимости от версии транслятора ПАСКАЛЬ
Код:PASDWK.SAV = 47 блоков
PASCAL.SAV = 49 блоков
и наш чемпион
PASY2K.SAV
HD7>DIR STALK1
23-Apr-2021
STALK1.PAS 70 21-Apr-2021 STALK1.SAV 55 23-Apr-2021
STALK1.LST 140 23-Apr-2021 STALK1.MAC 271 23-Apr-2021
STALK1.OBJ 53 23-Apr-2021
5 Files, 589 Blocks