Дизассемблирование игры Volcano (Rescue, Вертолет)

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

begoon
Senior
Posts: 165
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

Дизассемблирование игры Volcano (Rescue, Вертолет)

Post by begoon »

Я тут от небольшого безделья немного покопался в одной из моих любимых игр на РК - http://rk86.ru/index.html?file=RESCUE.GAM

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

Хак:

0517: C5 -> C9
082F: 3A -> C9

Можно просто запатчить в Мониторе командой М перед запуском. Можно через консоль эмулятора.

Если честно, то я удивлен, насколько кучеряво игра написана. Дофига движухи на экране. Реализованы очереди для пуль и пепла. Заставка, ландшафт горы и схождения лавы хранятся в примитивной компрессии. Экранная область не используется, все только через Монитор, но есть внутренне хранения содержимого экрана.

Для любителей-некрофилов я приаттачил LSTшку с моим анализом. Там 60% игры более менее разобрано. Для особых маньяков, могу дать базу от IDA, если охота продолжить.

ОБНОВЛЕНИЕ (15.04.2026)

Я таки добил разбор исходника Volcano практически на 100%. Недокументированных кусков больше нет.

Исходник компилируется байт в байт совпадает с оригинальный бинарником.

Еще по ходу запилил реализацию на питоне для консоли. Геймплей практически совпадает.

Ну чтоб еще раз не вставать - вот оригинал игры для BBC Micro.
Last edited by begoon on 15 Apr 2026 12:40, edited 2 times in total.
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: Дизассемблирование игры Volcano (Rescue, Вертолет)

Post by alemorf »

надо кнопку с пальцем вверх на форум добавить.
begoon
Senior
Posts: 165
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

Re: Дизассемблирование игры Volcano (Rescue, Вертолет)

Post by begoon »

Ремейк Volcano на JavaScript.
volcano.png
ОБНОВЛЕНИЕ

У кого есть контроллер, типа для X-box'a -- можно и им играть.
You do not have the required permissions to view the files attached to this post.
Last edited by begoon on 16 Apr 2026 05:02, edited 1 time in total.
imsushka
Doomed
Posts: 380
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Дизассемблирование игры Volcano (Rescue, Вертолет)

Post by imsushka »

Эта хоть нормально написанна. при дизассемблировании понятно все.
я тут хотел Рикошет посмотреть/подправить, а то тормознуто/лагающе играется. Может тормозит, а может так задуманно.
Загрузил в ИДУ. И все. Игра написанна на ЯВУ. причем компилятор как то уж жутко все собрал.
кароч не асилил.
begoon
Senior
Posts: 165
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

Re: Дизассемблирование игры Volcano (Rescue, Вертолет)

Post by begoon »

Практически добил разбор Лестницы.

Увы, тут игру точно писали либо на С, или скорее всего даже на PL/M-80, поэтому код раздут, много церемоний со стеком, использование hl как указателя и пр. В целом, познавательно.

Я полностью восстановил карты уровней, их кодировку, и сохранил их в текстовые файлы.

У меня еще есть мысли, где покопать, но в целом, для создания ремейка информации достаточно.

Да, важно упомянуть, что исходник компилируется и проверяется на совпадение с оригиналом.
imsushka
Doomed
Posts: 380
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Дизассемблирование игры Volcano (Rescue, Вертолет)

Post by imsushka »

begoon wrote: 16 Apr 2026 14:28 Практически добил разбор Лестницы.

Увы, тут игру точно писали либо на С, или скорее всего даже на PL/M-80, поэтому код раздут, много церемоний со стеком, использование hl как указателя и пр. В целом, познавательно.

Я полностью восстановил карты уровней, их кодировку, и сохранил их в текстовые файлы.

У меня еще есть мысли, где покопать, но в целом, для создания ремейка информации достаточно.

Да, важно упомянуть, что исходник компилируется и проверяется на совпадение с оригиналом.
лестница у меня есть. лежит на гитхабе. и я добавлял еще уровней.
правда она уже не в чистом виде, а под меня переделанна.
и нет вроде, на асме написсано, ничего лишнего там не было.
begoon
Senior
Posts: 165
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

Re: Дизассемблирование игры Volcano (Rescue, Вертолет)

Post by begoon »

А ссылку можно?
imsushka
Doomed
Posts: 380
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Дизассемблирование игры Volcano (Rescue, Вертолет)

Post by imsushka »