1

Тема: BOLO

Накопились непонятности по игре и решил создать отдельную тему.

Вообще я всегда думал что на агате существует две версии игры.

1) Адаптация с Apple (Березутский Василий ALV Москва) она без всякой заставки, сразу показывает графический экран игры.
Есть глюки, может вылететь после проигрыша и еще по каким-то причинам).


2) Адаптация с Apple (Александр Петров LIAP Ленинград)  у этой сперва в текстовом экране типа заставочки и демонстрашка по клавишам управления. Кроме того уже в графическом экране надпись "BY ALEX"


И совсем недавно я заметил, а ведь они совсем одинаковые, ну кроме наличия текстового начала. Смотрите сами.
Графика одинаковая, пиксель в пиксель, даже взрывы. Странно что так все одинаково, ведь это перенос с Apple и там дорисовывать самому многое надо.

Авторам, не было смысла списывать друг у друга. И один и другой знамениты своими прогами - это точно.

Известно что в 87-89 годах были встречи Московских И Ленинградских Агатовцев (есть фото).
Может где-то там они поделились? Например версия ALV просто была сделана как прога выходного дня, а потом отдана на доделку в Ленинград. Но как понять, так ли это?

Кроме того, у нас есть 4 экземпляра версии LIAP, все чем-то отличаются друг от друга.  Засомневался: какую из них использовать на сайте?

Нашел только отличие в "BOLO3"
Там надпись "GENERATING MAZE" выглядит более приятно. 

 
Кстати игра работает только на семерке.

Post's attachments

Attachment icon BOLO.DSK 840 kb, 238 downloads since 2020-12-16 

BOLO.gif, 5.83 kb, 256 x 256
BOLO.gif 5.83 kb, 224 downloads since 2020-12-16 

2 Отредактировано AlexBel (17-12-2020 06:37)

Re: BOLO

Насколько я помню, в игре, у которой файл называется BOLONEY, управление сделано на функциональных кнопках, что является существенной переработкой управления, так как у Apple II таких кнопок нет вообще. Другая версия игры, файл которой называется просто BOLO, имеет управление с символьных кнопок.
P.S. Лично моё предположение - в названии файла BOLONEY опечатка, видимо, хотели назвать BOLONEW, чтобы подчеркнуть, что игра новая в плане управления.

3 Отредактировано Voldemar0 (17-12-2020 13:57)

Re: BOLO

Кстати, мысль, похоже, верная. У нас в коллекции почти все варианты с NEY чуть крупнее, чем просто BOLO. Не всегда так, но большинство.

Но дело не только в кнопках, там и ещё много каких -то переработок в коде.

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

--

> Кстати игра работает только на семерке.

Почему ? девяточные версии тоже есть, именно с ч/б графикой. Там минимальные отличия от BOLO семёрочной.

--

Интересно: в эпловской версии два копирайта:
(C) COPYRIGHT 1982 BY ELVYN SOFTWARE
cопыригхт 1982 бы.vанделажлен. sофтваре

4

Re: BOLO

Подтверждаю - девяточная точно была. Как раз на девятке в неё играл. И да - насколько помню управление было на доп.клавиатуре.

5 Отредактировано garnizon (17-12-2020 22:59)

Re: BOLO

ДА, у меня есть и девяточные, но это похоже поздние поделки. То что я находил в архивах авторов - только для семерки.
Другое дело если в итоге сделать универсию из LIAP версии - это дело.

6

Re: BOLO

Игры действительно оказались почти одинаковыми. Из 20 кб только пара различаются. Кроме того, они  слетели обе в автоигре примерно в близких частях кода.

7

Re: BOLO

garnizon пишет:

Кстати игра работает только на семерке.

Там обращения к псевдоПЗУ. Какие-то таблицы хранятся в адресах $F000 - $F3FF

8

Re: BOLO

garnizon пишет:

Игры действительно оказались почти одинаковыми. Из 20 кб только пара различаются. Кроме того, они  слетели обе в автоигре примерно в близких частях кода.

Если "автоигра" - режим демонстрации после запуска (который включается, если не трогать управление), то эппловская версия ведёт себя так же. Игра вылетает (делает перезапуск компьютера) после, насколько я помню, после первой разбитой базы.

9 Отредактировано Voldemar0 (20-12-2020 15:49)

Re: BOLO

На семёрках я много играл в неё, в 90-е, можно было легко уничтожить все 6 баз, получить поздравление и играть дальше. Вылеты происходили случайно (можно было и долго играть нормально или же быстро всё могло сломаться), причем игра не зависала, а просто поперёк экрана рисовала мусор. Происходило это всегда в ответ на поворот корабля. Причем, кажется, в какую-то определённую сторону. И  этот мусор оставался статично на экране: ловко управляя кораблём, можно было как бы двигать врагов по экрану "врезая" их в мусор.
Но вскоре после появления мусора игра могла и просто зависнуть.

В эмуляторе я вроде бы давно (ещё в досовском) ловил такой же мусор, но в нынешней версии происходит вылет на неверный опкод.
Причем пара взятых наугад версий вылетела близко, но не в одном и том же месте. Кроме того, даже недалеко от точки сбоя видно, что год немного патченный, причем у двух наугад взятых игр - по разному. Т.е. что-то заменено на NOP, что-то ещё как-то также (может адрес какой-то процедуры и аргумент какой-то LDA#...
Единственная существенная разница здесь между эмуляторами: в досовском память при запуске заполнена случайным мусором, а в никсовом - строго нулями. Возможно, это важно.

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

10

Re: BOLO

Вот BOLO3, о которой я писал в первом сообщении, явно последняя из тех что у нас есть версия. Может с неё и начать? А проблемные места сравнивать с другими релизами.

11

Re: BOLO

garnizon пишет:

Вот BOLO3, о которой я писал в первом сообщении, явно последняя из тех что у нас есть версия. Может с неё и начать? А проблемные места сравнивать с другими релизами.

А как ты определил, что это последняя версия из имеющихся? Какое у неё управление?

12 Отредактировано Voldemar0 (24-12-2020 15:50)

Re: BOLO

> Вот BOLO3, о которой я писал в первом сообщении, явно последняя из тех что у нас есть версия. Может с неё и начать? А проблемные места сравнивать с другими релизами.

Поигрался маленько в неё, вспомнил управление, вроде всё как было в юности: те же баги, так же случайно. 7 , что ли,  баз подряд  - поздравления, хотя до этого чуть ли не до базы не успевал долетать как глюки вылазили. В общем всё хорошо. Кому надо : счётчик жизней по адресу $C4.

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

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

Графика тут выводиться чередованием страниц, мусор есть на обеих страницах, но он может слегка отличаться и - таким образом - моргать при переключениях страниц.

Полоски мусора получаются вертикальными - т.е. похоже на какое-то мусорное значение записывается по каким-то графическим адресам в каждую строку. Т.е. обычно эти полоски не шире 8 бит-пикселей, но таких полосок может быть 2-3 или сколько угодно, наверное.

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

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

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

Да, и мусор зависит от угла поворота корабля. В неудачных случаях поворот корабля может привести к его взрыву. В более удачных, например, на любой угол, кратный 45 градусов, мусор будет один, на 90 - другой.

13 Отредактировано garnizon (24-12-2020 15:51)

Re: BOLO

AlexBel пишет:

А как ты определил, что это последняя версия из имеющихся? Какое у неё управление?

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