PDA

Просмотр полной версии : Портирование Saboteur 2 на БК-0011М



nzeemin
06.09.2024, 21:01
Когда-то давно Saboteur 2 был портирован на машину Электроника МС 0515, это тоже PDP-11 like с экраном, по устройству похожим на Спектрум. Портирование выполнил кто-то кто обозначил себя как "LWOW SOFT". Несколько дней назад я восстановил полный дизасм этой игры, с разделением на код/данные.

В этой теме про порт игры на БК-0011М.

https://pic.maxiol.com/thumbs2/1729434373.1595409648.screenshot96.png (https://pic.maxiol.com/?v=1729434373.1595409648.screenshot96.png&dp=2) https://pic.maxiol.com/thumbs2/1729434513.1595409648.screenshot111.png (https://pic.maxiol.com/?v=1729434513.1595409648.screenshot111.png&dp=2) https://pic.maxiol.com/thumbs2/1729434490.1595409648.screenshot113.png (https://pic.maxiol.com/?v=1729434490.1595409648.screenshot113.png&dp=2)

Требования: БК-0011М, игра грузится через ANDOS.

Управление: Пока всё довольно плохо. Клавиши по умолчанию размаплены на цифры типа 4 влево 6 вправо.
Но в меню можно выбрать джойстик.

Скорость игры: почти приемлемая, хотелось бы ускорить ещё на 15-20%.

Это конечно пока не есть законченная и вылизанная игра, скорее бета-версия.

Код под МС 0515: https://github.com/nzeemin/ms0515-various/tree/main/SABOT2-DISASM
Код под БК-0011М: https://github.com/nzeemin/bk0011m-saboteur2
Версия для УКНЦ: https://zx-pk.ru/threads/35932-portirovanie-saboteur-2-na-uknts.html

Забросил я эту тему, но к счастью, флаг подобрал BlaireCas, он доработал игру, сделал запуск ракеты, решил проблемы производительности
Читать отсюда: https://zx-pk.ru/threads/35909-portirovanie-saboteur-2-na-bk-0011m.html?p=1216888&viewfull=1#post1216888

CodeMaster
07.09.2024, 11:54
Вставлены по две пустые линии в каждую строку.
Но, дорисовать же можно?

jerri
08.09.2024, 12:32
Но, дорисовать же можно?

Ну если сделать это красиво

Stl75
08.09.2024, 13:15
Привет всём...
Наверное лучше, сжать изображение,
а пустые линии убрать...
???

jerri
08.09.2024, 13:30
Привет всём...
Наверное лучше, сжать изображение,
а пустые линии убрать...
???

пропорции изображения нарушатся

nzeemin
08.09.2024, 14:24
Думаю сделать 4-цветные тайлы 8x10, но это существенная переделка логики отрисовки, нужно время на это.

Lethargeek
09.09.2024, 19:08
пропорции изображения нарушатся
тётка будет жырноватая прост слегка

nzeemin
21.09.2024, 02:10
https://pic.maxiol.com/thumbs2/1726873615.1608068120.screenshot17.png (https://pic.maxiol.com/?v=1726873615.1608068120.screenshot17.png&dp=2) https://pic.maxiol.com/thumbs2/1726873669.1608068120.screenshot12.png (https://pic.maxiol.com/?v=1726873669.1608068120.screenshot12.png&dp=2)

Поработал над кодом, он стал гораздо более осмысленным. Убрал лишние метки.
Но остаётся ещё много обращений по прямому адресу без метки, буду постепенно вылавливать.

Добавлены звуки для шагов и ударов/падений/попаданий, пока не идеальный.

Добавил пункт меню Joystick, но биты пока неправильно смаплены.

Заполнил пустые строки повторением предыдущей строки, чтобы смотрелось получше.

Исходный код открыт, репо: https://github.com/nzeemin/bk0011m-saboteur2

nzeemin
13.10.2024, 01:25
https://pic.maxiol.com/thumbs2/1728772255.760572322.screenshot57.png (https://pic.maxiol.com/?v=1728772255.760572322.screenshot57.png&dp=2) https://pic.maxiol.com/thumbs2/1728771548.760572322.screenshot55.png (https://pic.maxiol.com/?v=1728771548.760572322.screenshot55.png&dp=2) https://pic.maxiol.com/thumbs2/1728772219.760572322.screenshot58.png (https://pic.maxiol.com/?v=1728772219.760572322.screenshot58.png&dp=2)

Поддержка джойстика заработала.
Игра стала цветной, при этом немного стала пободрее по скорости.

Lethargeek
13.10.2024, 09:47
Игра стала цветной,
веселее, но красные фигуры ужасны (не говоря уж о том, что ни один психически нормальный ниндзя не пойдёт на дело в ярком костюме))
надо как в оригинале всех сделать чёрными, разве что роботам отдельные детали подкрасить, а также швырятельные предметы

Stl75
13.10.2024, 12:58
Привет всём.. .
Смотрел фильмы про ниндзей
на видеокассетах, DVD дисках.. .
Очень заходило...

Цвет формы у ниндзя -
обычно был чёрный...
???

nzeemin
16.10.2024, 22:14
https://pic.maxiol.com/thumbs2/1729106002.760572376.screenshot67.png (https://pic.maxiol.com/?v=1729106002.760572376.screenshot67.png&dp=2) https://pic.maxiol.com/thumbs2/1729106027.760572376.screenshot62.png (https://pic.maxiol.com/?v=1729106027.760572376.screenshot62.png&dp=2)

Ниндзя переодет в чёрное.
Игра ускорена на 15-20%.

jerri
17.10.2024, 11:20
https://pic.maxiol.com/thumbs2/1729106002.760572376.screenshot67.png (https://pic.maxiol.com/?v=1729106002.760572376.screenshot67.png&dp=2) https://pic.maxiol.com/thumbs2/1729106027.760572376.screenshot62.png (https://pic.maxiol.com/?v=1729106027.760572376.screenshot62.png&dp=2)

Ниндзя переодет в чёрное.
Игра ускорена на 15-20%.

РОбота тоже можно черным

Lethargeek
18.10.2024, 00:13
РОбота тоже можно черным
НУЖНО! красным можно разве что баллон огнемётный

- - - Добавлено - - -

(интересно, а пантеры/пумы в быкашной вселенной какого цвета))

SuperMax
18.10.2024, 18:24
НУЖНО! красным можно разве что баллон огнемётный

почему ? imho так понятнее кто враг
и если Нина шпион и должна маскироваться то роботу-то зачем ?

Lethargeek
18.10.2024, 20:07
почему ? imho так понятнее кто враг
:v2_dizzy_facepalm: а там что, есть хоть какие-то невраги?


и если Нина шпион и должна маскироваться то роботу-то зачем ?
стража тоже не должна быть сильно заметна, чтобы больше вероятность была нарваться
притом там же ночь, черным кажется любой тёмный цвет, а быкашный красный прям светится

- - - Добавлено - - -

и это мы еще не видели, как красный робот на зелёном фоне смотреться будет - подозреваю, еще отвратнее

nzeemin
20.10.2024, 17:29
https://pic.maxiol.com/thumbs2/1729434373.1595409648.screenshot96.png (https://pic.maxiol.com/?v=1729434373.1595409648.screenshot96.png&dp=2) https://pic.maxiol.com/thumbs2/1729434513.1595409648.screenshot111.png (https://pic.maxiol.com/?v=1729434513.1595409648.screenshot111.png&dp=2) https://pic.maxiol.com/thumbs2/1729434490.1595409648.screenshot113.png (https://pic.maxiol.com/?v=1729434490.1595409648.screenshot113.png&dp=2)

V.44:
- Цветная картинка ниндзи на меню
- Цветные иконки предметов в панели индикаторов
- Враги чёрные
- Немного поправлены тайлы

Lethargeek
20.10.2024, 22:53
жаль, у быкашек только две подходящие палитры для разных комнат
нулевую бы для для комнат с зелёным фоном, а вторую для туннелей и крыш
правда, синий цвет кодируется по-разному, может усложнить дело

jerri
21.10.2024, 20:24
https://pic.maxiol.com/thumbs2/1729434373.1595409648.screenshot96.png (https://pic.maxiol.com/?v=1729434373.1595409648.screenshot96.png&dp=2) https://pic.maxiol.com/thumbs2/1729434513.1595409648.screenshot111.png (https://pic.maxiol.com/?v=1729434513.1595409648.screenshot111.png&dp=2) https://pic.maxiol.com/thumbs2/1729434490.1595409648.screenshot113.png (https://pic.maxiol.com/?v=1729434490.1595409648.screenshot113.png&dp=2)

V.44:
- Цветная картинка ниндзи на меню
- Цветные иконки предметов в панели индикаторов
- Враги чёрные
- Немного поправлены тайлы

Предметы швыряемые лучше зеленым как в оригинале

Lethargeek
22.10.2024, 01:47
Предметы швыряемые лучше зеленым как в оригинале
он в оригинале белый лишь на фоне пустого неба

jerri
22.10.2024, 22:21
он в оригинале белый лишь на фоне пустого неба

ну хз. черный както не айс

Lethargeek
23.10.2024, 12:21
ну хз. черный както не айс
тогда два комплекта спрайтиков понадобится
на зелёном фоне либо чёрным, либо с чёрной обводкой (что лучше выйдет)
а на синем кмк с обводкой будет слишком жирно и некрасиво

haywire
24.11.2024, 19:50
С точки зрения аутентичности, ниндзя должен быть цветом одинаковым с охранниками. Охранники красные - ниндзя красный, охранники чёрные - ниндзя чёрный. Это основы скрытности, ниндзя должен снять одежду с первого же убитого охранника, чтобы не выделяться и фактор внезапности.

Lethargeek
24.11.2024, 21:17
С точки зрения аутентичности, ниндзя должен быть цветом одинаковым с охранниками. Охранники красные - ниндзя красный, охранники чёрные - ниндзя чёрный. Это основы скрытности, ниндзя должен снять одежду с первого же убитого охранника, чтобы не выделяться и фактор внезапности.
у охраны расписание и маршруты, зоны ответственности и уровни допуска
мало просто в той же одежде быть, надо и не лезть куда не положено
а если надо лезть - тогда лучше быть более физически незаметным
да и в игре ведь всяко сразу же атакуют

haywire
24.11.2024, 22:09
у охраны расписание и маршруты, зоны ответственности и уровни допуска
мало просто в той же одежде быть, надо и не лезть куда не положено


Это понятно, но в любом случае, человек в своей униформе воспринимается своим, чисто психологически. Мало ли, что случилось и кто куда забрёл. По сравнению с человеком в незнакомой одежде. Ниндзи старались слиться с окружающей обстановкой, они всегда одевались, как местные. Одно дело когда на тебя нападает чел в х.з. какой одежде, друге дело - одетый в твою юниформу. Это фактор внезапности.

Lethargeek
25.11.2024, 02:44
Ниндзи старались слиться с окружающей обстановкой,
...и как раз поэтому ночью или в сумерках - были в ч0рном


они всегда одевались, как местные
не всегда, зависело от задачи
днём одежда соответствовала легенде
ночью лазили по крышам точно не в светлом


Одно дело когда на тебя нападает чел в х.з. какой одежде, друге дело - одетый в твою юниформу. Это фактор внезапности.
ага, потаскай стандартный огнемётный баллон, удиви андроида внезапным усталым видом :D

nzeemin
10.05.2025, 22:05
Зафиксирую:
Работа над игрой была остановлена 19 января 2025.
Требуется существенная работа по переработке кода игры в сторону оптимизации: тот вариант что есть работает слишком медленно.

jerri
11.05.2025, 19:00
nzeemin, Медленнее спека?

Lethargeek
12.05.2025, 11:59
nzeemin, Медленнее спека?
это же "самая 16-разрядная в мире" быкашка, чего ты ждал-то
хорошо, если подтянет к неускоренному оригиналу

BlaireCas
01.08.2025, 12:14
Поскольку Никита разрешил мне влезть своими кривыми рученками в его код - продолжил допиливать БКшную версию.
В принципе уже играбельно. Сразу лвл9 без вариантов (никаких вот этих всех меню и прочей мишуры). Сходить отключить электричество и уехать на мотоцикле.
Старт - пробел или огонь (ну или там А или B джойстика, при нажатии джойстика отключится управление с клавиатуры до выхода в меню по кнопке СТОП)
Выход в андос - СТОП на экране с заставкой.

Образ андоса (немного модифицирован): https://github.com/blairecas/sabot2_bk/blob/main/release/andos_sabot2.img?raw=1
Игра это sabot2.*

Небольшое видео чтобы понять как играется: https://github.com/blairecas/sabot2_bk/blob/main/release/sabot2_bk_release1.mp4?raw=1

Образ может меняться периодически поскольку оно всё еще в процессе:
- работает небыстро нда, надо ускорять
- звуки бипера добавить
- в планах добавить наконец-таки взлетание ракеты (позже)
+ уши спектрума выросли и на БК :) то-есть вот этот вот клешинг атрибутов перекочевал.. хех, но это не баг это фича (иначе сделать черные спрайты ниндзюка с "обводом" не выйдет)

- - - Добавлено - - -


Медленнее спека?
Сейчас в моей интерпретации примерно как оригинал 48 (быстрее даже). Понятное дело что оригинал сам по себе корявый и его корявость перелезла на текущий порт. (вот эти вот обновления ненужных в данный момент знакомест, заполнения буфера чтобы проверить есть-ли за Ниной лестница скажем итд итп - оно перекочевало и сюда, это-ж порт)

BlaireCas
03.08.2025, 13:44
добавить наконец-таки взлетание ракеты
Хех, ну с горем пополам ПОЕХАЛИ :) Полетела родимая. Надо биперный бжжжж добавить и нарисовать пламя (в чем я не силен). Но главное - летит, летит! 35 лет ждал :)
Небольшое видео как взлетает: https://github.com/blairecas/sabot2_bk/blob/main/release/sabot2_bk_rocket1.mp4?raw=1

После взлета открывается шахта, можно туда спрыгнуть походить, ну и сбоку шахту тоже открыл чтобы можно было из нее вылезти все-же. В оригинале ничего такого действительно не было (хотя жило стойкое убеждение что ракета таки должна взлетать).

BlaireCas
20.08.2025, 19:52
Проапдейтил ссылки в своих прошлых сообщениях (надо будет видимо Никиту попросить забросить их в первое сообщение).
Удалось ускорить до относительно играбельной скорости.

В чем были проблемы (основные три):

1) В игре идет обработка абсолютно всех NPC (кошки, андроиды). То-есть пока мы сидим где-то черти где или даже еще летим на глайдере - андроиды ходят, кошки бегают (разве-что мыши не летают, мыши сделаны иначе). В игре было сделано некое "отсечение" обработки NPC по +/- 6 комнат вправо/влево и по +/- 3 комнаты вверх/вниз. Однако оно не слишком хорошо было сделано ибо даже с таким отсечением все NPC продолжают заполнять какие-то буфера и делать что-то еще довольно сильно напрягающее процессор. То-есть старое "отсечение" лишь немного убирало активность обработки всех NPC. В итоге сделал уже прямо полное отсечение по +/- 1 комната по вертикали и +/- 2 комнаты по горизонтали. Те которые за этими пределами - пропускаются абсолютно. Нереально сильно ускорило.

2) При рисовке на экран все объекты рисуются по тайлам, но они рисуются "с запасом". А именно - перерисовывается "прямоугольный кусок" экрана внутри которого вмещается Нина да еще и +1 тайл с каждой стороны (с запасом взяли специально чтобы когда Нина подвинулась вправо - левая часть бекграунда восстановилась). Переправил на то чтобы рисовались только реально меняющиеся на экране тайлы. Тоже нормально придало скорости.

3) Заполнение непонятных буферов просто "от балды на всякий случай чтобы было итд..". Например на экран не выводится NPC (одна Нина стоит) - а всё-равно какие-то буфера под NPC очищаются. Тут я логики вообще понять не смог и поубирал что смог. Вроде на играбельность не особо повлияло, но скорости тоже прибавило.

Сейчас даже пришлось ограничить скорость в максимум 12.5 фпс - иначе если Нина бегает одна - она начинает как-то сильно газовать будто стероидная и становится неиграбельно (не попадаешь в лестницы итд). Хотя при наличии двух андроидов все-равно еще не прямо айс. Да и просто до современной ускоренной спектрум-версии как до луны. Тем не менее - стало сильно лучше (а то было чуть-ли не 3.5fps в наихудшем месте).

Также пофиксил "классические баги" которые перекочевали в порт:
- расколбашенный охранник
- лифт ездящий через стены
- безголовая Нина (если зайти в комнату с бессмертием и стать в самом левом краю) - правда тут есть момент, это поправилось само из-за ускорения, но мне привнесло другой баг
- бесконечные перфоленты

Не стал фиксить:
- непрорисовывающийся тайл огнемета (возле ракеты есть один охранник у которого в оригинале при огнеметании влево один тайл не обновляется)
- бег под водой (а пусть будет, только убрано уменьшение здоровья.. кому охота поплавать - присесть под водой и вправо или влево)
- удары по огнемету (просто лень разбираться в коде :)
- кидание предметом в электричество (просто немного убавится здоровье, вообщем с приличным здоровьем не помрет)
+ мои собственные упрощения появились, в одном месте была движущаяся платформа, а теперь ее больше нет, где-то ящики мешали - тоже убрал, в одном месте лестница урезалась, нет цветовых эффектов, комната с бессмертием не красная.. какие-то еще баги понадобавлялись наверняка...

Нужен джойстик. Однако проходибельно на клавиатуре, только придется поднапрячься (не будет нормального прыжка, а он нужен чтобы хотя-бы отключить электричество). Для прыжка сделан небольшой фикс - AP2 + стрелки, хоть как-то да прыгнет.
Ракета взлетит начиная от 10 перфокарт. Почему не 14? А захотелось. Тем-более что 14-ю с клавиатуры взять почти нереально (нужно ооооооооочень сильно научиться прыгать с клавиатуры и обладать недюжинным терпением).

Одним словом более-менее рабочая версия сейчас.
Релизная папка: https://github.com/blairecas/sabot2_bk/tree/main/release

Также как бонус для "нищебродов" у которых кроме самой доски БК-0011М ничего больше нет :) - в релизной папке есть .wav файлы которыми можно загрузить игру (уж не знаю зачем, а пусть будет ибо у меня голая 11-я, я так на реале тестировал хех). Сначала надо правда загрузиться без Бейсика (держа КТ при включении). Затем загрузить обычным образом (L enter) sabot2.wav, запустить по G ну и дальше включить плеер с остальными .ov1, .ov2, .ov6.wav-ками.

litwr
21.08.2025, 21:51
Получается, что версия для БК - лучшая?! Или на официальных вариантах ракета тоже летает? Там вроде ещё есть и 15-я перфокарта...
Мне больше нравился первый Саботер, там можно в поезде ездить и на вертолете летать и охранники там нормального размера. Хотя, конечно, попроще в целом. Для БК почему-то нет, хотя портировали хорошо даже в Корвет.
Пока добавил информацию о портировании в Википедию (https://en.wikipedia.org/wiki/Saboteur_II:_Avenging_Angel), но русском почему-то блокируют правку - не любят там БК. :(
После двух "дискуссий" с ботом-редактором, удалось его уговорить - https://ru.wikipedia.org/wiki/Saboteur_II:_Avenging_Angel .

BlaireCas
22.08.2025, 09:29
Или на официальных вариантах ракета тоже летает?
Не уверен что ее планируется запускать, наверное скорей надо отменить запуск (ну мол плохой диктатор стащил ракету и угрожает ее запустить, отсюда и таймер в игре после которого по идее ракета взлетает и миссия провалена). Хотя это всё уже додумки какие-то. В одном из ремейков под виндовс ракета взлетает (как-раз когда закончится таймер).
В данной версии получилось наоборот. Таймера нет, а мы сами запускаем ракету (хотя это и не обязательно, достаточно отключить электричество и уехать). Тут уж можно напридумывать что это была за ракета и куда она полетела... Хотел было на ней написать что-то навроде SATAN-9, но передумал. Будет как-то уж слишком.

- - - Добавлено - - -


больше нравился первый Саботер
Ну как говорится "ожидайте". Никита портирует первого, думается он доберется и до БК.

litwr
22.08.2025, 16:08
Не уверен что ее планируется запускать, наверное скорей надо отменить запуск (ну мол плохой диктатор стащил ракету и угрожает ее запустить, отсюда и таймер в игре после которого по идее ракета взлетает и миссия провалена). Хотя это всё уже додумки какие-то. В одном из ремейков под виндовс ракета взлетает (как-раз когда закончится таймер).
В данной версии получилось наоборот. Таймера нет, а мы сами запускаем ракету (хотя это и не обязательно, достаточно отключить электричество и уехать). Тут уж можно напридумывать что это была за ракета и куда она полетела... Хотел было на ней написать что-то навроде SATAN-9, но передумал. Будет как-то уж слишком.

Это называется - аналоговнет. :) Может лучше запускать ракету как положено, по таймеру?

BlaireCas
23.08.2025, 10:49
Может лучше запускать ракету как положено, по таймеру?
Это будет сложней технически. Придется делать 4 вида запуска ракеты да еще и разных. Она там на 4-х экранах находится. (банально лень такое делать).
Ну и заодно вот уж чего не хочется вставлять в игру так это таймер. Я его специально оттуда убрал (терпеть не могу игры с таймерами) чтобы можно было спокойно походить поисследовать игровой лабиринт.

CodeMaster
23.08.2025, 12:52
Это называется - аналоговнет.
Это называется - ремейк.

litwr
23.08.2025, 19:19
Это будет сложней технически. Придется делать 4 вида запуска ракеты да еще и разных. Она там на 4-х экранах находится. (банально лень такое делать).
Ну и заодно вот уж чего не хочется вставлять в игру так это таймер. Я его специально оттуда убрал (терпеть не могу игры с таймерами) чтобы можно было спокойно походить поисследовать игровой лабиринт.

С этим трудно не согласиться, но, учитывая, что уже так много работы проделано... А отключение таймера и другие полезности хорошо делать на уровне читкодов. И скорее уже никто больше допиливать не возьмется - всё пойдет на суд вечности.

Опять убрали мои правки в Википедии про Саботер 2 - странно. Попробую снова пообщаться с роботами...

nzeemin
27.08.2025, 12:22
Обновил первое сообщение, чтобы легче было найти доработанную версию от ув. BlaireCase

- - - Updated - - -


Опять убрали мои правки в Википедии про Саботер 2 - странно. Попробую снова пообщаться с роботами...

Это как раз нормально и правильно. Википедия опирается на проверяемые источники. Если будет статья в рецензируемом журнале о выходе новой версии игры -- тогда на этот источник можно будет сослаться. А на непосредственные материалы или "я знаю я видел" ссылаться нельзя. Такие правила.

- - - Updated - - -


Ну как говорится "ожидайте". Никита портирует первого, думается он доберется и до БК.

Первый Саботёр для УКНЦ готов примерно на половину.

https://pic.maxiol.com/thumbs2/1756286486.1450105475.photo2025070900164.jpg (https://pic.maxiol.com/?v=1756286486.1450105475.photo2025070900164.jpg&dp=2)

litwr
01.11.2025, 17:05
Это как раз нормально и правильно. Википедия опирается на проверяемые источники. Если будет статья в рецензируемом журнале о выходе новой версии игры -- тогда на этот источник можно будет сослаться. А на непосредственные материалы или "я знаю я видел" ссылаться нельзя. Такие правила.

Первый Саботёр для УКНЦ готов примерно на половину.

https://pic.maxiol.com/thumbs2/1756286486.1450105475.photo2025070900164.jpg (https://pic.maxiol.com/?v=1756286486.1450105475.photo2025070900164.jpg&dp=2)
Зря вы оправдываете произвол редакторов. Какие рецензируемые журналы? Типа кому-то надо заплатить? Критерии редакторов очень личные и волюнтаристские. Например, для Персидского принца разрешено прописать все порты, а для Саботёра 2 чинят проблемы. Дал ссылку на r-games - вполне себе солидный ресурс, но англоязычному редактору мало. Даже фактически официальный порт из 80-х для Коммодора не разрешили отметить. Но в русскоязычной бк-порт пока прописался.
Саботёр как-то необычно с красным фоном, привык к синему. Может при старте сделать выбор расцветки?

nzeemin
02.11.2025, 02:21
Саботёр как-то необычно с красным фоном, привык к синему. Может при старте сделать выбор расцветки?
Это уже устаревший скриншот. См. тему https://zx-pk.ru/threads/36396-saboteur-1-dlya-uknts.html