PDA

Просмотр полной версии : Все загадки Dizzy 4 (Magicland Dizzy)



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

https://pic.maxiol.com/images2/1700927688.1595415805.dizzy04poster.jpg


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

В отличие от Диззи-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.
При этом, не смотря на то, что скорость точек генерируется, как дробная с фиксированной точкой, на деле используется только целая часть.
* Загадки музыкального плеера в отдельном посте (https://zx-pk.ru/threads/35414-vse-zagadki-dizzy-4-(magicland-dizzy).html).

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

Titus
25.11.2023, 23:49
а мне показалось что слогами. один байт может означать одну букву или две.

Нет, слогами, видимо в другой игре, может быть в Диззи-5.

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

Titus
26.11.2023, 13:32
может для 128к его сразу (для быстрой выборки) разжать на доп.страницу ?

Тогда игра не сможет работать на 48Кб, и потеряется весь смысл.

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

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

Xela
26.11.2023, 13:46
а куда деваются облачка, улетая выше экрана?
тогда нужно было бы делать постепенно "испаряющиеся" облачка, и что б экраном выше они растворялись в 0... но с гарпией проще, да)

goodboy
26.11.2023, 14:06
Тогда игра не сможет работать на 48Кб, и потеряется весь смысл.
для 48к оставляй авторский вариант, для 128к более быстрый.

Titus
26.11.2023, 14:35
для 48к оставляй авторский вариант, для 128к более быстрый.

Ты имел в виду расширенный, а не быстрый? )

Enigmatic
26.11.2023, 20:02
* При переходе с экрана на экран зачем-то обнуляется статус силовой пилюли. Возможно, раньше по задумке авторов она вела себя как-то по-другому.
А есть мысли , как?
В NES версии там вообще чаша со святой водой.

Titus
26.11.2023, 23:52
А есть мысли , как?
В NES версии там вообще чаша со святой водой.

Нет, мыслей нет. Вариантов может быть много. Но т.к. следов кода никаких не осталось (а были ли они), то можно только гадать)

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

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

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

Slider
27.11.2023, 09:42
Управление:
В игре опрашиваются еще и дополнительные управляющие клавиши 'Q', 'L', 'C', '1'. Однако, используется только клавиша 'Q' (выход из игры). Вероятно, на клавишу 'C' предполагалось повесить выход в CheatMode. Для чего были нужны клавиши 'L' и '1' остается загадкой. Кстати, если вы нажмете хотя бы одну из клавиш 'L','C','1', и попытаетесь выйти нажав 'Q', то 'Q' не сработает
По аналогии с 5й, например, L - это Lives, 1 - это PDS (тот самый монитор)

Titus
27.11.2023, 13:25
1 - это PDS (тот самый монитор)
Что за PDS-монитор? Я о таком не знаю.

Slider
27.11.2023, 13:31
Имеется ввиду Programmers Development System
https://retro-hardware.com/2019/05/29/programmers-development-system-pds-by-andy-glaister/

Соединение с этой системой было предусмотрено в чит-меню как Диззи 5, так и Сеймура (вроде обоих).

Titus
27.11.2023, 14:43
Кстати, еще несколько слов о коде в Диззи-4.
Как я понял, его уже писали Big Red'ы, однако, основной код движка остался от Диззи-3, т.е. написанный Оливерами.
Код биг редов вполне себе на хорошем уровне по тем временам, хотя местами были ляпы, так же как и на карте. А именно, какие-то лишние команды, которые ни на что не влияли.
Создалось впечатление, что люди вполне себе профи, но где-то спешили и оставили неряшливости по мелочам.

drbars
27.11.2023, 20:09
По аналогии с 5й, например, L - это Lives, 1 - это PDS (тот самый монитор)
У меня почему-то есть воспоминание, как я клавишами ZXKM переключал экраны в режиме чита... Но чит код не могу вспомнить... Эффект Манделы прям какой-то.

Slider
27.11.2023, 20:18
У меня почему-то есть воспоминание, как я клавишами ZXKM переключал экраны в режиме чита... Но чит код не могу вспомнить... Эффект Манделы прям какой-то.
Экраны перебираются с помощью фирменных читов в Диззи 1,2,3 и 6.

Titus
27.11.2023, 23:20
У меня почему-то есть воспоминание, как я клавишами ZXKM переключал экраны в режиме чита... Но чит код не могу вспомнить... Эффект Манделы прям какой-то.

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

goodboy
27.11.2023, 23:44
только в 128к версии

https://pic.maxiol.com/thumbs2/1701117885.3645248058.dizzy5.png (https://pic.maxiol.com/?v=1701117885.3645248058.dizzy5.png&dp=2)

Slider
28.11.2023, 01:07
Экраны перебираются с помощью фирменных читов в Диззи 1,2,3 и 6

только в 128к версии
Да, точно, и в Диззи 5 тоже. По ходу только в 4й части не было фирменного чита, т.к. памяти не хватило, видимо...

Titus
01.12.2023, 00:14
Интересная специфика синтаксиса английского языка в Диззи-4.
Запятые без последующих пробелов - это еще ладно.
Избыточность запятых - тут я тоже не специалист в английской пунктуации.
Но какие-то тире, апострофы после слов. Это вообще что?
Для примера сравнил синтаксис с Диззи-4 на Амиге.

https://pic.maxiol.com/images2/1701378734.1595415805.example.png

Chwe
01.12.2023, 00:56
Да нет, это, скорее, на Амиге какой-то безграмотный вариант. За исключением явной опечатки в "Thanks' Dizzy.." спектрумовские тексты вполне себе корректны. Тут даже совсем не зная правил легко проверить -- я давно играл, экрана с говорящим кустом не помню, но если там Диззи не обсуждает с этим кустом очень тяжелого (в смысле веса) мужика, то на Амиге тогда явная грубая ошибка.

CityAceE
01.12.2023, 09:00
Видимо, на разных платформа вычитывали текст разные люди. А может быть в одной из версий сохранилась именно авторская орфография, а на другой как раз поправленная поверяльщиком.

Titus
01.12.2023, 14:02
Видимо, на разных платформа вычитывали текст разные люди. А может быть в одной из версий сохранилась именно авторская орфография, а на другой как раз поправленная поверяльщиком.

Думаю, что правленная на Амиге, т.к. она вышла позже.

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

Филипп Оливер пояснил, как должно быть, и что действительно Амижная версия наиболее правильная:


THE BUSH SPEAKS!
‘HEY DIZZY! THIS IS
REALLY HEAVY MAN!’

‘OH! I’M WORRIED SICK
ABOUT MY GOBOLINO.
PLEASE FIND HIM FOR ME,
I’VE LOOKED EVERYWHERE.’

‘ZAKS CAST A SPELL
ON ME. LOOK WHAT
IT DID! I’M TOO BIG
TO GET OUT OF HERE!’

‘THANKS DIZZY! ME AND
MR CHARMING HAVE SOME
BUSINESS TO ATTEND TO!
WE’LL SEE YOU LATER!’

‘HEY, LOOK AFTER THIS FOR
ME. CATCH YA LATER!’

‘MY MAGIC IS NOTHING
COMPARED TO ZAKS’
POWERS, BUT I CAN HELP
YOUR BUSHY FRIEND.’



Thanks,

Philip

Chwe
01.12.2023, 21:53
Интересно, похоже, нашли ещё одну загадку :) Канонiчные варианты полностью корректны. Но, вот первая фраза... Уж больно сильно она выделяется. А на Амиге — там явно были какие-то технические проблемы. Шрифт шире, чем ожидалось, например. Особенно заметно во второй фразе, там не просто пунктуации нет, там отсутствие апострофа в сокращённой форме «I have», такую ошибку допустить, это совсем языка не знать.

Так вот, фраза говорящего куста про мужика меня смущает. Ну нет же там мужика или я совсем всё забыл? Там по смыслу явно запятая нужна. Там же какой-то родственник-наркоман, которого в куст превратили, так? Может, некорректная фраза, это намёк на его, как нынче модно говорить, «альтернативное» состояние? Фраза-то, можно считать, идиоматическая, считающаяся частью субкультуры хиппи. Вот тут мои знания буксуют, может именно для передачи сленга хиппи запятую не надо использовать...

Enigmatic
02.12.2023, 07:02
Chwe,
Англо-русский перевод HEAVY MAN
амер. ; сл. нарушитель закона, преступник

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

А ещё можно перевести как "крупный человек", может какая-то игра слов типа по крупному влипший (куст же крупный)

drbars
02.12.2023, 12:33
Titus,


Куст заговорил! :)
Эй, Диз! Всё в натуре серьёзно, чувак!

А вообще хороший перевод на 4,5,6 был у SunSoft, лучший даже наверное. Рекомендую его взять.

Titus
02.12.2023, 13:38
А вообще хороший перевод на 4,5,6 был у SunSoft, лучший даже наверное. Рекомендую его взять.
Я всегда перевожу сам, и чужие переводы стараюсь до этого не смотреть)

Xela
02.12.2023, 20:25
Я полностью согласен с товарищами выше - REALLY HEAVY MAN - пропущена запятая. У Heavy много значений - в т.ч. и плохо, тяжко, больно. И в этом есть смысл, в отличие от Тяжелого Мужика, который там вообще никак ни к чему.

Titus
02.12.2023, 20:37
Я полностью согласен с товарищами выше - REALLY HEAVY MAN - пропущена запятая. У Heavy много значений - в т.ч. и плохо, тяжко, больно. И в этом есть смысл, в отличие от Тяжелого Мужика, который там вообще никак ни к чему.

А чего же Филипп Оливер, носитель языка эту запятую не поставил?

Xela
02.12.2023, 21:55
А чего же Филипп Оливер, носитель языка эту запятую не поставил?
Мне тоже этот вопрос пришел... Возможно он, как носитель просто грамматику и пунктуацию смотрел. Я бы, если есть такая возможность, уточнил бы у него конкретно про говорящий куст - какой такой Тяжелый мужик имеется в виду? Или что это за идиома, или словосочетание устоявшееся, что б корректно его перевести.

Chwe
03.12.2023, 14:55
Фраза точно устоявшаяся и именно в неправильном варианте её [безграмотные] носители часто пишут. А грамотные не особо употребляют, потому как сленг. То есть, а) «носитель» != «профессор филологии»; б) именно неправильное написание может быть отсылкой к обдолбанным хиппи. Поэтому само по себе, в изоляции, написание без запятой для передачи речи наркомана воплне подходит.

Тут вопрос, скорее, в стилистике. Все остальные тексты не уровня Марка Твена, который скрупулёзно передавал все акценты mid-west, все остальные фразы вполне литературны, и корретны, и без сленга.

Updated: «правильный», в смысле подходящий по смыслу к сюжету игры.

Xela
03.12.2023, 16:27
устоявшаяся и именно в неправильном варианте её [безграмотные] носители часто пишут.
а что такое - неправильный вариант?
тут оба варианта правильные, что с запятой, что без, только смысл разный.

Titus
04.12.2023, 14:06
Уточнил у Филиппа, он сказал что да, перед 'MAN' должна быть запятая)

Titus
09.12.2023, 17:10
В игре используется совершенно другой музыкальный плеер, чем в предыдущих играх Dizzy-2 и Dizzy-3.

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

1. Орнамент с громкостью
2. Огибающая с громкостью
3. Ударник через шумовой канал с громкостью
4. Ударник через тональный канал с громкостью

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

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

Вообще, код плеера очень странный. Прежде всего, в нем не используется ни одного перехода JR, только JP. Что наводит на мысль о портировании с какого-нибудь 8080. Однако активно используются индексные регистры, что от этой мысли сразу уводит. Много неиспользуемых фрагментов кода, ненужных, а местами даже ошибочных, если бы они применялись в прилагаемых мелодиях. Есть лишние паттерны (новой мелодии в них нет), лишние огибающие. Кроме того, каждая из двух игровых мелодий скомпилирована со своим экземпляром плеера, что раздувает обьем игры. Сделать так, чтобы обе мелодии игрались одним плеером - никакой сложности не представляет, но, видимо, так работал компилятор музыканта. Также побочкой использования двух экземпляров плейеров явлеяется то, что при старте игры некоторое время продолжает гудеть оставшийся от заставочной мелодии тон в одном из каналов.
Словом, плеер и мелодии можно здорово оптимизировать по размеру, да и по скорости тоже.

А теперь СЕНСАЦИЯ!
Этот плеер ЧЕТЫРЕХКАНАЛЬНЫЙ!
Да, да. Обе мелодии написаны в четырех каналах. Просто четвертый канал никуда не выводится за неимением в AY такового.
В первой, заставочной мелодии в четвертом канале ничего нет, хотя он присутствует.
А вот во второй, игровой мелодии в четвертом канале играет замечательный второй голос. Где это писалось, на каком компьютере, в каком редакторе - загадка. Но явно не на Спектруме и не под AY.

В приложении размещаю файл в котором играет вторая (игровая) мелодия, где на канале C вместо ударников выводится тот самый скрытый четвертый голос мелодии. Огибающие к нему не подобраны, поэтому инструмент, которым он играет не особо приглядный. Однако, суть мелодии понять можно.

creator
09.12.2023, 17:28
В приложении размещаю файл в котором играет вторая (игровая) мелодия, где на канале C вместо ударников выводится тот самый скрытый четвертый голос мелодии. Огибающие к нему не подобраны, поэтому инструмент, которым он играет не особо приглядный. Однако, суть мелодии понять можно.
Классный контрапункт. В TurboSound всё это надо впихнуть.

Xela
09.12.2023, 20:17
В TurboSound всё это надо впихнуть.
+1

Titus
09.12.2023, 20:20
Классный контрапункт. В TurboSound всё это надо впихнуть.
Эта мысль очевидна, но потребует наличие двух AY.
А для классической версии 48/128 это не вариант.

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

Xela
09.12.2023, 20:46
это переписать игровую мелодию в современном трекере
а если ударники в бипер? как в chase h.q.?

NEO SPECTRUMAN
09.12.2023, 21:47
Titus, утя есть выдранный плеер?
можно свести и на 1ау

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


Этот плеер ЧЕТЫРЕХКАНАЛЬНЫЙ!
скорей 4-й канал чисто технологический
сначала нарисовали в 3 канала
а потом ниасилили добавить ударные...
или плеер должен был сам делоть сайдчейн но так и не... или как всегда

Titus
09.12.2023, 21:52
а если ударники в бипер? как в chase h.q.?

В процессе игры такую музыку не получится сделать. И опять же нет смысла.

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


скорей 4-й канал чисто технологический
сначала нарисовали в 3 канала
а потом ниасилили добавить ударные...

Нет, это именно писалось в 4-канальном трекере. А чтобы проигрывалось на AY, заблокировали один канал и все. Самый малоинформативный на их взгляд.

NEO SPECTRUMAN
09.12.2023, 21:54
Нет, это именно писалось в 4-канальном трекере. А чтобы проигрывалось на AY, заблокировали один канал и все. Самый малоинформативный на их взгляд.
и при этом 4-й канал почему то недописали?
почемужо...
пушо его отвалили на момент добавки ударных

не ну 4-х канальность трекера я не отрицаю
я говорю он легко мог быть под Ау

Titus
09.12.2023, 22:04
и при этом 4-й канал почему то недописали?
почемужо...
пушо его отвалили на момент добавки ударных

Он дописан. Не все орнаменты на него расставлены корректно, но это потому что вообще его не должно было быть на спектруме.

NEO SPECTRUMAN
09.12.2023, 22:07
в приложенном снапшоте наа нем нне видно ни орнаментов ни громкости

AlexCrush
10.12.2023, 02:03
Будет логично, если в Dizzy 5 окажется 5-канальный звук

drbars
10.12.2023, 09:07
Где это писалось, на каком компьютере, в каком редакторе - загадка. Но явно не на Спектруме и не под AY.
Ого, вот это находка! Я примерно догадываюсь как так получилось, однако решил написать автору, надеюсь расскажет :)

Destr
10.12.2023, 16:59
А если сделать чтоб игралось сперва 123 каналы, потом 124?
Или вообще все комбинации перебирались?

Titus
10.12.2023, 17:07
А если сделать чтоб игралось сперва 123 каналы, потом 124?
Или вообще все комбинации перебирались?
Нет, это не будет красиво)
Единственный вариант - написать музыку заново в нормальном трекере, слив 3 и 4 канал вместе.

Кстати, я посмотрел, на zxart.ee музыка от Диззи-4 (https://zxart.ee/rus/avtory/l/lyndon-sharp) лежит почему-то в формате pt3, значит кто-то ее переписал?

NEO SPECTRUMAN
10.12.2023, 18:33
Единственный вариант - написать музыку заново
рукалицо

goodboy
10.12.2023, 23:01
А теперь СЕНСАЦИЯ!
Этот плеер ЧЕТЫРЕХКАНАЛЬНЫЙ!
так это давно было известно. LyndonSharp сочинял на Амиге.
на форуме выкладывали конверсию под ProTracker.
....................
вот, нашёл
https://zx-pk.ru/threads/22543-kollektsiya-alx-c-jeff-amp-co-i-diskovye-versii-iz-joshkar-oly-(-bonus).html?p=667538&viewfull=1#post667538

Titus
10.12.2023, 23:25
так это давно было известно. LyndonSharp сочинял на Амиге.
на форуме выкладывали конверсию под ProTracker.
Они тоже заметили, что там 4 канала. Но почему-то в конверсию на pt его не сделали.

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




А есть мысли , как?
В NES версии там вообще чаша со святой водой.


Нет, мыслей нет. Вариантов может быть много. Но т.к. следов кода никаких не осталось (а были ли они), то можно только гадать)


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

Titus
11.12.2023, 01:02
Гадаю - пилюлю нужно было применять, выбрав из инвентаря. И если после применения на болоте, уйти с экрана и вернуться, эффект должен был пропадать. Остается, однако, неизвестным, задумывалось ли полностью уничтожать привидения, как сейчас. Или пилюлю нужно было применять при каждом проходе, и держать неподалеку.

Мне кажется, с привидениями все в порядочке сделано)

drbars
13.12.2023, 19:47
Линдон пишет понятия не имеет как так получилось :v2_confu:


Мой драйвер AY вообще был 3-канальным, но источник - 4-канальный с noise tracker 2

Titus
13.12.2023, 19:50
Линдон пишет понятия не имеет как так получилось :v2_confu:

Ну так так и получилось) Писал в 4-х канальном, а на спектруме 3 канала)

У него сохранился оригинал под noise tracker?

TwoSpaces
02.02.2024, 18:39
Всем привет. Как всегда получилась интересная тема (настолько интересная, насколько она вообще может быть по этой, казалось бы, хорошей но обыденной игре). Особенно про "скрытую" музыкальную дорожку (напоминающую версию трека из Dizzy the Adventurer на NES и Master System).

Как некоторым может быть известно, в скоростных прохождениях этой игры используются баги с телепортацией под землю с помощью предметов ( https://youtu.be/BHLZbL04R80?t=560 ). Однако вчера DigitalDuck во время подготовки своего TAS'а по этой игре (наискорейшего прохождения, записанного с помощью замедления и сохранений, а потом проигранного в реальном времени) обнаружил следующий баг в Dizzy 4: если на экране много тормозов, то между нажатием на огонь и открытием инвентаря появляется дополнительный кадр, в котором можно нажать на кнопку, что можно применить для горизонтального перебрасывания через экраны. Это достаточно легко провернуть на экране с привидениями: нужно встать у алмаза, нажать на огонь, сразу же отпустить огонь и сразу нажать влево. С большой вероятностью Диззи откроет инвентарь "за" экраном, и с вероятностью примерно 50/50 можно выложить предмет, держа кнопки прыжка вправо, и Диззи телепортируется сквозь болото. А если хочется это повторить в любом месте, то некоторое количество тормозов исходит от молний джинна, когда те на экране. Так что будем смотреть, где от этого есть польза для скоростного прохождения.

Также на экране со спальней замка можно запрыгнуть на крышу, мне кажется, не все это знают)

Slider
16.03.2024, 01:43
Вот, что написано по поводу Dizzy 4 на Spectrum Computing:
«Known Errors:The shark at the castle entrance was supposed to move at the same speed as Dizzy, but due to a bug, it moves slightly faster»
«Известные ошибки: Акула у входа в замок должна была двигаться с той же скоростью, что и Диззи, но из-за бага она передвигается немного быстрее»

Titus
16.03.2024, 02:28
«Известные ошибки: Акула у входа в замок должна была двигаться с той же скоростью, что и Диззи, но из-за бага она передвигается немного быстрее»

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

Micro Man
17.04.2024, 02:28
Не знаю, кому пришло в голову, что это баг. Акула двигается с обычной скоростью обьектов асинхронно с Диззи.
На других платформах движутся синхронно. Но согласен, что не баг, просто спекрумовский хардкор.

Slider
17.04.2024, 09:35
Не знаю, кому пришло в голову, что это баг. Акула двигается с обычной скоростью обьектов асинхронно с Диззи. Диззи движется раз в 3 кадра. Поэтому их скорость не одинаковая.
Если бы акула двигалась со скоростью Диззи, было бы скучнее и проще ее проходить.
Ну, видимо, кто-то уточнял у Оливеров, и по их задумке изначальной должно было быть не так. А получилось, как получилось. Поэтому и пишут, что баг. Но мы же знаем... ;)

Titus
17.04.2024, 15:42
Ну, видимо, кто-то уточнял у Оливеров, и по их задумке изначальной должно было быть не так. А получилось, как получилось. Поэтому и пишут, что баг. Но мы же знаем... ;)

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

Кроме того, на других платформах игра делала позже, и другими авторами.
Поэтому оригинал именно на Спектруме.

SmileSick
17.04.2024, 20:31
Тут недавно еще багов для правок подвезли)))

https://youtu.be/SO8HRknEhJk?si=ABd-yjZtenH40yTJ

Titus
17.04.2024, 21:43
Тут недавно еще багов для правок подвезли)))

Если что-то есть из неописанного мною или не известного, назови конкретно.

А все эти спидраны с пробиванием дна и улетанием в другие экраны известны.

SmileSick
19.04.2024, 09:08
Если что-то есть из неописанного мною или не известного, назови конкретно.

Тут все на пробивании дна основано. Просто показаны другие места.

Titus
19.04.2024, 15:52
Тут все на пробивании дна основано. Просто показаны другие места.

Ну так если главный баг с пробиванием исправлен, то все эти другие места уже рояля не играют)

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

Небольшое лирическое отступление.

Есть модуль в формате .pt3.
Какой плеер оптимальнее, родной от ProTracker 3, или же от VortexTracker'а?

Slider
20.04.2024, 10:37
Есть модуль в формате .pt3.
Какой плеер оптимальнее, родной от ProTracker 3, или же от VortexTracker'а?
В личку написал. Когда я юзал в интрах разные блоки, мне плейер Pro Tracker показался более шустрым, так как с плейером с Вортекс эффекты интро подтупливали....

^m00h^
20.04.2024, 11:57
Psg плееры минимум тактов займут.

Titus
20.04.2024, 12:21
Psg плееры минимум тактов займут.

Ну для игры Psg не нужно.