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

User Tag List

Страница 1 из 7 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 67

Тема: Все загадки Dizzy 4 (Magicland Dizzy)

  1. #1
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,653
    Спасибо Благодарностей отдано 
    1,249
    Спасибо Благодарностей получено 
    1,863
    Поблагодарили
    709 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию Все загадки Dizzy 4 (Magicland Dizzy)

    Oбзор тайн, загадок и глюков Dizzy 4.




    Упаковка экранов:

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

    Массив упакованных экранов занимает: 7828 байт + 128 байт на таблицу размеров экранов
    Неупакованный массив занимает: 11940 байт + 256 байт на таблицу смещений экранов

    В Диззи-3 и Диззи-4 на карте используются спрайты с режимами рисования MOV/XOR/OR, но движок игры не умеет рисовать спрайты по OR, поэтому все, что должно рисоваться по OR, рисуется по XOR. В Диззи-3 спрайтов с OR было сравнительно немного, поэтому то, что рисовали авторы в редакторе почти не отличалось от того, что видит игрок. Тогда как в Диззи-4 спрайтов нарисованных по OR значительно больше, и в игре графика несколько хуже, чем то, что задумывали авторы, потому что наложение по XOR вместо OR местами заметно отличается.

    Формат упакованного элемента фирменного упаковщика:

    Скрытый текст

    Код:
    +00 - [6..0] - X-координата спрайта (0..127) 
          [7] - 0 - пропускать распаковку атрибута (используется предыдущий распакованный атрибут)
    	    1 - распаковывать атрибут
    +01 - Y-координата спрайта (0..255)
    +02 - [7] - зеркальное отображение по горизонтали
          [6] - твердость
          [5] - 0 - байт используется, как атрибут
          	    1 - байт используется как счетчик повторяющихся спрайтов (1..128)
          [4,3] - режим рисования OR/XOR/MOV
          [2-0] - цвет
    +03 - номер спрайта (0..255)
          Если счетчик повторяющихся спрайтов не исчерпан, то используется предыдущий распакованный номер спрайтов
    [свернуть]


    Упаковка текстов:

    Тексты в игре упакованы ниббловым (полубайтовым) сжатием. При этом поверх этой упаковки используется много хардкода и самомодификации.

    В массив с упакованными названиями экранов встроены номера экранов. И при печати названия экрана, сканируется массив, и если номер экрана совпадает, то распаковывается следующая за ним строка. Однако, из-за того, что некоторые комбинации упакованных букв могут совпасть с номером экрана, не все названия экранов можно найти в массиве подобным образом. Поэтому для части экранов сделаны тупо прямые ссылки на конкретные названия экранов. Типа, если экран номер 5, то адрес его названия $1234, и т.д.

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


    Алмазы:

    У алгоритма сияния алмазов есть несколько условий, при которых алмаз сиять не будет:

    1. Если на текущем экране есть предмет 'перила' (их в игре 3 штуки). Это сделано для того, чтобы алмаз спрятанный за перилами не выдал себя.
    2. Если на экране есть коза (вы разве не заметили, что алмаз за Троллем не сияет? Я тоже). Это сделано непонятно зачем, так как бегущая на фоне алмаза коза не портится сиянием алмаза.
    3. Если место сияния алмаза не желтого цвета (место сияния алмаза загораживает какой-то предмет).


    Гарпия:

    Как не печально это осознавать, но в Гарпии нет никакого тайного (а так же и явного) смысла. Она просто движется в сторону Диззи, когда он поднимается выше определенного уровня, и убивает его. А кривое гнездо - это просто так оно так криво нарисовано (и не только оно одно).


    Летающие нотки и буквы Z:

    Летающих ноток (или букв Z) одновременно на экране может быть не более 10. Они просто формируются на уровне испускающего их обьекта с небольшим случайным разбросом по X, летят вверх постепенно увеличиваясь, и пропадают. Если превышен лимит одновременных ноток, то новая просто не будет появляться. Максимум нот можно посмотреть в колодце, когда Диззи выманивает мышь игрой на волшебных трубочках.


    Облачка:

    В отличие от предыдущих игр, начиная с Диззи-4, некоторые облачка не твердые, а полу-твердые. Стоя на них Диззи постепенно проваливается. Материал таких облачков не задается на карте. Эта информация содержится в специальной таблице облачков. В ней данные для 8 статических облачков, и для 4 динамических (2 над вулканом, и 2 на экране с Гарпией).

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

    Кроме того, в алгоритме летающих облачков есть ошибка. По задумке авторов при входе на экран с Гарпией одно из облачков должно появиться прямо под ногами Диззи, чтобы Диззи не провалился на экран ниже с большой вероятностью падая в кратер вулкана. Однако, авторы перепутали проверку, и облачко под ногами Диззи на экране с Гарпией появляется не когда Диззи заходит на этот экран, а когда ВЫХОДИТ с него, что практически лишает смысла данный алгоритм, и делает очень сложным подьем на высоту Гарпии, особенно в смертной версии.

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


    Джин:

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


    Привидения:

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


    Плавающие лилии:

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


    Управление:


    В игре опрашиваются еще и дополнительные управляющие клавиши 'Q', 'L', 'C', '1'. Однако, используется только клавиша 'Q' (выход из игры). Вероятно, на клавишу 'C' предполагалось повесить выход в CheatMode. Для чего были нужны клавиши 'L' и '1' остается загадкой. Кстати, если вы нажмете хотя бы одну из клавиш 'L','C','1', и попытаетесь выйти нажав 'Q', то 'Q' не сработает.


    Активные летающие обьекты:

    Активные летающие обьекты (летучая мышь, москиты, огни в пещере) сделаны на одном движке.

    В общем случае обьект движется по заданной траектории, меняя свое направление натыкаясь на твердый материал, или же на край экрана.
    Однако, есть некоторые особенности. Например, границы экрана установлены на 2 знакоместа левее правой границы экрана (это еще понятно, чтобы двухзнакоместные спрайты не выходили за правый край экрана). Но при этом левая граница экрана установлена на 3 знакоместа правее! Причина этого совершенно не ясна. А следствием является то, что ни москиты, ни огни в пещере не доезжают 3 знакоместа до левой границы экрана.
    Впрочем также они не долетают 1.5 знакоместа до верха экрана и 3 знакоместа до низа экрана. Про нижнюю границу еще можно понять, т.к. москиты не должны влетать в болото. Все остальные ограничения выглядят странными.


    Качество дизайна:

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


    Прочее:

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

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

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

    * По традиции предыдущих игр, можно случайно открыть инвентарь в воздухе.

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


    Ошибки:

    * В функции определения твердости материала есть ошибка. Для вычисления твердости материала под правым краем спрайта используется 8-битная арифметика, следовательно атрибуты спрайта не должны попадать на границу параграфа ($100 байт). Однако сам закадровый буфер экрана расположен по адресу $5DE4, и поэтому в течении одной строки атрибутов два раза на игровом экране встречается переход из параграфа в параграф ($5DE4->$5E04 и $5EE4->$5F04), что может привести к ложному определению твердости атрибутов в данной позиции экрана.

    * Во время второго сеанса игры Закс белый, если был уничтожен в предыдущую игру (из-за белого облачка в которое превратился).

    * Если Диззи падает на экране с Гарпией вертикально вниз, и Гарпия находится ровно над ним вверху экрана, то при попадании на экран ниже, Диззи будет убит Гарпией, т.к. при пересечении с гарпией отсутствует проверка, находится Диззи на экране с ней, или же экран поменялся. Такая же ошибка была с вампиршей, но авторы пофиксили ее, а с Гарпией нет.
    Это вообще проблема движка, когда в момент перехода на другой экран координаты Диззи уже новые, а экран старый, и опасные обьекты с предыдущего экрана могут убивать Диззи.
    Дополнительная проверка производится движком только в случае вампирши и воды. А со всеми остальными опасными обьектами не производится. Поэтому можно потерять немного энергии, выходя с экрана с летучей мышью, когда она находится у другого края экрана.

    * Некоторые персонажи после превращения в облачко оставляют после себя мусор.
    Это связано с тем, что персонажи или предметы на месте облачка печатаются по MOV, а облачко печатается и стирается по XOR. В результате, если при первичной отрисовке экрана сначала нарисовался первый кадр облачка по XOR, затем на него по MOV наложился предмет, то стереть первый кадр по XOR уже не получится. Из-за этого в конце анимации остается мусор.
    Так происходит с исчезновением Барта, Доры, Дози.
    А перед исчезновением Барта, он вообще сперва печатается поверх текста с инвентарем, если вы успеете это заметить.

    * Из-за ошибки, первый кадр появления Доры из лягушки перед облачком - это алмаз (не заметили? не заметили? А это правда)
    Тоже самое с появлением джина.

    * Выложив предмет на поверхность, ниже нижнего знакоместа экрана, можно пробить пол и улететь неизвестно куда. Например, на низком камне на экране с Мефистофилем.

    * Также можно пробить потолок огнем факела, и выпрыгнуть в образовавшуюся дырку.

    * В яме с шипами можно застрять, если упав в яму перейти с одного экрана с шипами на другой.

    * В алгоритме салюта в конце игры авторами задумывалась синхронизация, чтобы салют вылетал равномерно. Но, видимо, из-за ошибки, эта синхронизация ни на что не влияет. Поэтому салют то убыстряется (когда мало точек на экране), то замедляется.
    Сам салют идет фиксированное время, и его никак нельзя прервать.

    Скрытый текст

    Салют состоит из трех пучков по 50 точек в каждом.
    Для каждого пучка снизу экрана сначала вылетает крупная точка из случайной позиции и со случайной скоростью. Когда вертикальная скорость замедляется до 0, крупная точка взрывается на 50
    мелких. Когда первая в списке из 50 точек падает ниже экрана, цикл пучка салюта прекращается и генерируется новый. Для генератора случайных чисел используется область ПЗУ в диапазоне $1000..$1100.
    При этом, не смотря на то, что скорость точек генерируется, как дробная с фиксированной точкой, на деле используется только целая часть.
    [свернуть]

    * Загадки музыкального плеера в отдельном посте.
    Последний раз редактировалось Titus; 09.12.2023 в 17:15.

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

    AndyFox (08.05.2024), bee.snz (25.11.2023), CityAceE (26.11.2023), CLR (03.12.2023), creator (26.11.2023), Destr (27.11.2023), Digitizer (26.11.2023), drbars (26.11.2023), Eltaron (28.11.2023), Enigmatic (26.11.2023), Froggy (25.11.2023), lx13s (27.11.2023), nikon (04.12.2023), Oleg N. Cher (26.11.2023), shadwork (27.11.2023), Slider (27.11.2023), tiboh (26.11.2023), TwoSpaces (01.02.2024), Vatr (26.11.2023), Xela (25.11.2023), Юрич (27.11.2023)

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

  4. #2
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,798
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    1,191
    Поблагодарили
    784 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Тексты в игре упакованы ниббловым (полубайтовым) сжатием.
    а мне показалось что слогами. один байт может означать одну букву или две.
    хотя изучал я это давно, возможно память и подводит.
    ещё вспомнил что экран №1 это где Закс. остальные видимо рисовали от него.

  5. #3
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,653
    Спасибо Благодарностей отдано 
    1,249
    Спасибо Благодарностей получено 
    1,863
    Поблагодарили
    709 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    а мне показалось что слогами. один байт может означать одну букву или две.
    Нет, слогами, видимо в другой игре, может быть в Диззи-5.

  6. #4
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,798
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    1,191
    Поблагодарили
    784 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Неупакованный массив занимает: 11940 байт + 256 байт на таблицу смещений экранов
    может для 128к его сразу (для быстрой выборки) разжать на доп.страницу ?

  7. #5
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,653
    Спасибо Благодарностей отдано 
    1,249
    Спасибо Благодарностей получено 
    1,863
    Поблагодарили
    709 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    может для 128к его сразу (для быстрой выборки) разжать на доп.страницу ?
    Тогда игра не сможет работать на 48Кб, и потеряется весь смысл.

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

    Кстати, подумал, что в Гарпии все же есть смысл. Она нужна для того, чтобы Диззи не поехал на облачках на еще более высокий экран.
    Можно было бы вообще не делать экран с Гарпией, но тогда бы у игрока возник вопрос, а куда деваются облачка, улетая выше экрана?
    Что что все логично)

  8. #6
    Master Аватар для Xela
    Регистрация
    03.12.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    584
    Спасибо Благодарностей отдано 
    423
    Спасибо Благодарностей получено 
    167
    Поблагодарили
    119 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    а куда деваются облачка, улетая выше экрана?
    тогда нужно было бы делать постепенно "испаряющиеся" облачка, и что б экраном выше они растворялись в 0... но с гарпией проще, да)

  9. #7
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,798
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    1,191
    Поблагодарили
    784 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Тогда игра не сможет работать на 48Кб, и потеряется весь смысл.
    для 48к оставляй авторский вариант, для 128к более быстрый.

  10. #8
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,653
    Спасибо Благодарностей отдано 
    1,249
    Спасибо Благодарностей получено 
    1,863
    Поблагодарили
    709 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    для 48к оставляй авторский вариант, для 128к более быстрый.
    Ты имел в виду расширенный, а не быстрый? )

  11. #9
    Veteran Аватар для Enigmatic
    Регистрация
    22.08.2010
    Адрес
    г. Антрацит, Украина
    Сообщений
    1,665
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    304
    Поблагодарили
    152 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    * При переходе с экрана на экран зачем-то обнуляется статус силовой пилюли. Возможно, раньше по задумке авторов она вела себя как-то по-другому.
    А есть мысли , как?
    В NES версии там вообще чаша со святой водой.
    Моё железо

    Скрытый текст


    ZX_Evolution rev.b + NEO_GS + TSFM
    Ленинград-128/256kb + AY + TR_Dos
    Delta_micro /repair status/
    Москва_48кb /repair status/
    [свернуть]

  12. #10
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,653
    Спасибо Благодарностей отдано 
    1,249
    Спасибо Благодарностей получено 
    1,863
    Поблагодарили
    709 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Enigmatic Посмотреть сообщение
    А есть мысли , как?
    В NES версии там вообще чаша со святой водой.
    Нет, мыслей нет. Вариантов может быть много. Но т.к. следов кода никаких не осталось (а были ли они), то можно только гадать)

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

    Еще мне не нравится, что запятые в диалогах порой слиты со словами, и не разделены последующими пробелами.

    В Диззи-4 на Амиге, вроде, с пробелами все норм.

Страница 1 из 7 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Все загадки Dizzy 1
    от Titus в разделе Игры
    Ответов: 120
    Последнее: 14.05.2023, 02:52
  2. Все загадки Dizzy 3 (Fantasy World Dizzy)
    от Titus в разделе Игры
    Ответов: 152
    Последнее: 04.05.2023, 16:45
  3. Все загадки Dizzy 2 (Treasure Island Dizzy)
    от Titus в разделе Игры
    Ответов: 182
    Последнее: 17.03.2023, 23:20
  4. Dizzy-AGE RUS: Magicland Dizzy на русском
    от Rindex в разделе Dizzy-AGE
    Ответов: 8
    Последнее: 03.03.2017, 18:37
  5. Dizzy-AGE: Back To Magicland
    от Rindex в разделе Dizzy-AGE
    Ответов: 107
    Последнее: 03.09.2011, 15:44

Ваши права

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