Важная информация

User Tag List

Показано с 1 по 10 из 10

Тема: Дизасм игры Saboteur

  1. #1

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,037
    Спасибо Благодарностей отдано 
    1,114
    Спасибо Благодарностей получено 
    1,405
    Поблагодарили
    507 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Дизасм игры Saboteur

    С середины марта по начало мая занимался дизасмом игры Saboteur, который первый.
    Дизасм делался с целью портировать игрушку на БК/УКНЦ и возможно Вектор-06Ц.
    Дизасм через SkoolKit.

    Исходники дизасма: https://github.com/nzeemin/skoolkit-...r/saboteur1-zx
    HTML: https://nzeemin.github.io/skoolkit-g...1-zx/saboteur/

    В игре 119 экранов (комнат).
    Карта всех комнат: https://nzeemin.github.io/skoolkit-g...oomaddrmap.png

    Что разобрано:
    - главное меню, построение картинки двух ниндзя
    - построение рамки игрового поля
    - построение комнат (и расписаны все room sequences), переходы между комнатами
    - все спрайты (спрайты охранников делаются из спрайтов Ниндзя на лету, заменой тайлов)

    Что недоделано (после полутора месяцев у меня уже просто не хватило терпения):
    - логика работы объектов
    - логика игры в части поведения персонажей, столкновений между ними

    Построение экрана: шесть тайл-планов 30x17 тайлов:
    - Tile screen 0 — background, 9-byte tiles — биты + атрибут
    - Tile screen 1 — флаги обновления; 0 — не обновлять
    - Tile Screen 2 — Ninja — тайлы 16 байт $E700 based — биты и маска + mirroring
    - Tile screen 3 — Dog— тайлы 16 байт с базой $F0F0 — биты и маска + mirroring
    - Tile Screen 4 — Guard — тайлы 16 байт с базой $E700 — биты и маска + mirroring
    - Tile screen 5 — front — тайлы 17 байт с базой $D600, — биты и маска + атрибут, no mirroring
    Последний раз редактировалось nzeemin; 19.05.2025 в 14:21.

  2. Эти 7 пользователя(ей) поблагодарили nzeemin за это полезное сообщение:

    Cooper (20.05.2025), Eltaron (19.05.2025), ivagor (19.05.2025), morozov (30.05.2025), Oleg N. Cher (20.05.2025), Willy (22.05.2025), yashcher (19.05.2025)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,193
    Спасибо Благодарностей отдано 
    729
    Спасибо Благодарностей получено 
    2,192
    Поблагодарили
    1,228 сообщений
    Mentioned
    31 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin, я сам не разбирался (равнодушен к saboteur), но интересно, чем не устроил проект для корвета?

  5. #3

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,037
    Спасибо Благодарностей отдано 
    1,114
    Спасибо Благодарностей получено 
    1,405
    Поблагодарили
    507 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    nzeemin, я сам не разбирался (равнодушен к saboteur), но интересно, чем не устроил проект для корвета?
    Да, я конечно видел тот проект и говорил с ув. @Willy, но его порт делался повторением поведения оригинала, т.е. весь код написан с нуля.
    В своих портах я предпочитаю полностью повторять поведение за счёт восстановления кода и его покомандного переписывания.
    Ну и в целом, после работы над Saboteur 2, мне было интересно, а как же устроена первая версия. Там действительно есть общие вещи, такие как устройство экрана например.

  6. Эти 2 пользователя(ей) поблагодарили nzeemin за это полезное сообщение:

    ivagor (19.05.2025), Oleg N. Cher (20.05.2025)

  7. #4

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,183
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    1,403
    Поблагодарили
    915 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а перед этим была игра DeathPit
    https://spectrumcomputing.co.uk/entr...trum/Death_Pit
    "Clive Townsend, however, did use some of the routines from this game in the programming of Saboteur."
    ........

    интересно на что влияет выбор сложности игры (0-9) ?
    Последний раз редактировалось goodboy; 19.05.2025 в 16:43.

  8. #5

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,037
    Спасибо Благодарностей отдано 
    1,114
    Спасибо Благодарностей получено 
    1,405
    Поблагодарили
    507 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    интересно на что влияет выбор сложности игры (0-9) ?
    См. таблицу E38C: задержки для охранников/собак/турелей, начальное время и время для бомбы, состояние пяти стенок (переключаются с консолей), комната где лежит бомба, положение бомбы в этой комнате.

  9. Этот пользователь поблагодарил nzeemin за это полезное сообщение:

    goodboy (19.05.2025)

  10. #6

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,183
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    1,403
    Поблагодарили
    915 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а изначально для игры планировалось название Ninja Darkness


  11. Эти 2 пользователя(ей) поблагодарили goodboy за это полезное сообщение:

    Bedazzle (22.05.2025), nzeemin (22.05.2025)

  12. #7

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,183
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    1,403
    Поблагодарили
    915 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    состояние пяти стенок (переключаются с консолей)
    ага, понятно.
    ещё нашёл упоминание про это на другой карте к игре
    https://maps.speccy.cz/map.php?id=Saboteur1

  13. #8

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,037
    Спасибо Благодарностей отдано 
    1,114
    Спасибо Благодарностей получено 
    1,405
    Поблагодарили
    507 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    ага, понятно.
    ещё нашёл упоминание про это на другой карте к игре
    https://maps.speccy.cz/map.php?id=Saboteur1
    На многих картах (в том числе на этой) нарисованы комнаты, которых в коде реально нет.
    Часть комнат повторяется в разных местах. Например, вагончик метро существует в единственном экземпляре.

  14. #9

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,183
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    1,403
    Поблагодарили
    915 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    что-бы сделать карту совсем не обязательно изучать потроха игры и знать машкод.
    графика снимается спец.утилитой из окна эмулятора.
    ........

    оказывается в `новой` версии расширили финал.
    есть анимация улетающего вертолёта и диалоги.

    Последний раз редактировалось goodboy; 20.05.2025 в 18:42.

  15. #10

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,037
    Спасибо Благодарностей отдано 
    1,114
    Спасибо Благодарностей получено 
    1,405
    Поблагодарили
    507 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Кстати, могу дать рецепт как попасть в любую комнату, с помощью отладчика:
    1. Находясь в любой комнате, ставим точку останова на B66A ("Current Room changed, entering the new Room") и продолжаем игру
    2. Управляя Ниндзей, переходим в другую комнату -- срабатывает точка останова на B66A.
    3. В память по адресу 7184 заносим адрес любой комнаты, продолжаем работу игры -- Ниндзя оказывается в нужной комнате.
    Но при этом конечно можно "застрять в текстурах" либо оказаться в воздухе и упасть.
    Последний раз редактировалось nzeemin; 21.05.2025 в 18:28.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Дизасм DECOBJ
    от nzeemin в разделе ДВК, УКНЦ
    Ответов: 53
    Последнее: 15.07.2023, 13:20
  2. Дизасм ОТПС 2.0
    от esl в разделе Корвет
    Ответов: 3
    Последнее: 12.12.2019, 14:44
  3. IDA 7.0 дизасм кода...
    от Stl75 в разделе Программирование
    Ответов: 5
    Последнее: 16.04.2019, 19:28
  4. Дизасм ПЗУ монитора 0 и F
    от NEO SPECTRUMAN в разделе ЮТ-88
    Ответов: 35
    Последнее: 08.04.2019, 09:15
  5. Дизасм
    от next в разделе Софт
    Ответов: 11
    Последнее: 20.12.2012, 12:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •