Игры > Игры на консолях 1-4 поколений

[NES] Многоигровки с видами на море "Unchained Melody"

<< < (6/12) > >>

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

На самом деле возможность отключения подстройки под приставку была реализована во время разработки. Включалось-выключалось по Select+↑ и Select+↓, выбранный вариант запоминался в battery backed памяти между перезапусками. Ещё была возможность выбора эффекта перехода между слайдами по Select+← и Select+→. Но потом я решил, что настройки — это уж слишком для демки =) Тем более, что они включались вот так неявно, и можно было не обратить внимание, что случайно выключил подстройку под приставку. Плюс эффекты требовали немало кода, из-за чего размер ROM-а приходилось увеличивать до 40 килобайт. Так что перед релизом я это вырезал.

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

А на эффекты я вообще потратил уйму времени, собственно наверное поэтому так и задержался релиз — в марте 2015 я «посмотрел со стороны» на то, на что потратил несколько недель (пока разобрался в нужных частях архитектуры приставки, пока подготовил для этого движок и т.д.), и понял, что хоть эти эффекты и «вау», в общем они плохо вписываются в эту демку. Это демотивировало и проект ушёл на паузу. Тогда заняться вырезанием рука не поднялась :) Через год уже не так жалко было, так что вырезал за день перед релизом.

Есть ещё идея сделать меню настроек, вызываемое по Select, где в явном виде можно было бы выбрать какой набор картинок использовать, выбрать эффект и его скорость, автоматическую подстройку скорости воспроизведения, и даже выбор мелодии. Плюс я начал сочинять новый формат сжатия фоновых картинок со словарём (что-то типа LZ, но продуманное с учётом особенностей Dendy, для моментальной распаковки), чтобы в один 16-килобайтный банк можно было запихнуть много вариантов фоновых картинок. Но на такие кардинальные доработки сейчас у меня не будет времени. Так что может быть когда-нибудь в отдалённом будущем.

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

Делать 100500 вариантов одной и той же демки с разными вариантами одного и того же контента не хотелось бы. Я уверен в том, что должна быть одна единая и самая лучшая версия, чтобы не вводить людей в заблуждение :)

ПАУК:

--- Цитата: VEG от 20 Июнь 2016, 09:33:31 ---Супер-секретный режим гордой птички со спецэффектами от легендарного Майкла Бэя.
--- Конец цитаты ---
А я просёк конами код :D

https://en.wikipedia.org/wiki/List_of_Konami_code_games#Non-Konami_games
Это в каком-таком фильме гордая птичка срёт бомбами? Жалко, на людей гадить не получается :lol:

VEG:
Майкл Бэй — это просто намёк на то, что там есть эффектные взрывы =)

ПАУК:

--- Цитата: VEG от 20 Июнь 2016, 09:33:31 ---Секретный режим управления Вселенной (только не говорите об этом санитарам).
--- Конец цитаты ---
Про вселенную и санитаров не понял. Нашёл только управление птиц с первого пада. Со второго нельзя было сделать параллельное?

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

Добавлено позже:
Кстати, изначально идея была в том, чтобы этой маленькой птичкой отображать прогресс автоматического перелистывания слайдов (сколько ещё осталось), она пролетела экран — новый слайд, с возможностью регулировать скорость (типа нажал пару раз в одну сторону — и она полетела быстрее). Но получалось чрезмерно медленно, либо приходилось делать так, чтобы она летела с невероятной скоростью, что выглядело стрёмно. Вообще эта идея была записана в блокнотик ещё в 2013, тогда же появилась и идея сделать пасхалку с запуском «снаряда», но тогда эта идея показалась слишком сложной в реализации. Во время разработки версии 1.2 идея перелистывания слайдов синхронно с музыкой показалась более удачной, для чего понадобилось добавить 2 слайда. А идея самой маленькой птички была трансформирована в пасхалку. Не пропадать же добру =) В итоге и сама птичка — пасхалка, и её скрытые способности — тоже пасхалка =)

ПАУК:
Взорвал жёлтую птичку вместе с белой, и время остановилось. Другой белой птичкой управлять нельзя. Селект+Старт не помогает, ничего не помогает.

Rikki-tikki-tavi:
Жесть. Там к версии 1.7 уже прокачка и сюжет будет.

VEG:

--- Цитата: ПАУК от 22 Июнь 2016, 15:47:08 ---Со второго нельзя было сделать параллельное?
--- Конец цитаты ---
Тоже была идея задействовать второй геймпад и даже сделать мини-игру. Правда, мне кажется, что она вышла бы унылой.
На самом деле в файле заметок несколько десятков идей «чего можно было бы сделать» наберётся по этому проекту. Ведь как оно обычно бывает... Одну идею реализуешь — вычёркиваешь одну из списка и добавляешь на её место ещё минимум 2 или 3.


--- Цитата: ПАУК от 22 Июнь 2016, 16:22:35 ---Взорвал жёлтую птичку вместе с белой, и время остановилось. Другой белой птичкой управлять нельзя. Селшект+Старт не помогает.
--- Конец цитаты ---
Это не ошибка. Демка остаётся в том режиме, в котором она и была. Был вариант в таком случае автоматом возвращать обычный режим, но в таком случае как бы появляется возможность «призвать» ещё одну маленькую птичку. Ощущение «безысходности» ситуации будет разрушено. Был ещё вариант в этом случае показать надпись GAME OVER :) Но я решил, что лёгкой фрустрации от невозможности что-либо поделать будет достаточно (было бы круто ещё и музыку приглушать в этом случае). Надо беречь свою птичку =)

То что свою птичку можно потерять — не случайность. Я специально писал код, чтобы другие объекты, попавшие в область взрыва, тоже взрывались. То есть технически можно одной бомбочкой взорвать сразу 2 вражеские птички и себя заодно =)

Rikki-tikki-tavi:
Кстати, здорово было бы в мануал добавить контролс, хотя бы наименее секретные.
P.S. Сравнил с немодифицированной менюшкой - "Денди" версия таки здорово "заикается" - видимо, такты не одинаковой длины и это лучше заметно на пониженной скорости.
Т.е. ты так сделал, чтобы на НЕСах можно было запустить медленно, как на Денди, правильно?

VEG:
Я когда обновлял архив добавил там явное указание на управление обычными птицами и намёк про Konami Code.

Добавлено позже:

--- Цитата: Rikki-tikki-tavi от 22 Июнь 2016, 16:38:11 ---Сравнил с немодифицированной менюшкой - "Денди" версия таки здорово "заикается" - видимо, такты не одинаковой длины и это лучше заметно на пониженной скорости. Т.е. ты так сделал, чтобы на НЕСах можно было запустить медленно, как на Денди, правильно?
--- Конец цитаты ---
Я это сделал, чтобы во всех случаях демка работала примерно одинаково, близко к тому, как она работала бы на Dendy, с нормальной скоростью и высотой звука.

Если демка определяет, что запущена на Dendy, то никаких модификаций не вносится. Если демка определяет, что запущена на NTSC, то для снижения частоты смены кадров с 60 до 50 герц пропускается каждый 6 кадр, то есть да, каждый 5-й тик в два раза длиннее обычного, но это всего 16мс, на слух не должно быть различимо (если не замедлять). Звук на это время никуда не девается. Это влияет только на то, как скоро начнёт проигрываться очередная нота. Если же демка определяет, что запущена на PAL, то она использует другую таблицу периодов нот. Поскольку Dendy была гибридом, там частота кадров была как в PAL, а вот высота звука — как в NTSC. Поэтому и понадобились такие пляски.

Увы, но сделать идеально тут не получится. Нужно считаться с ограничениями. Идею пропуска каждого 6 кадра для NTSC подглядел в играх у Shiru. Там оно работало отлично, поэтому и я применил такой метод :)

Добавлено позже:
Есть ещё вариант в случае с NTSC увеличивать на 20% задержки в самих музыкальных данных. Тогда такты будут ровными. Но из-за округлений, которых тут не избежать, в значения самих задержек попадут небольшие неточности. Например, если задержка 1 кадр, и мы добавляем 20% — получаем тот же 1 кадр, то есть на 3мс меньше нужного. В реальности там задержки всегда достаточно большие, так что, возможно, результат может быть лучше. Но тут эта погрешность будет накапливаться, и это отдельная проблема, потому что нужно будет следить, чтобы разные каналы не рассинхронизировались. Запишу идею в заметки, может быть когда-нибудь попробую реализовать, даже интересно стало :)

Добавлено позже:

--- Цитата: Rikki-tikki-tavi от 22 Июнь 2016, 16:38:11 ---"Денди" версия таки здорово "заикается"
--- Конец цитаты ---
Не могли бы вы характер этого «заикания» описать? Может это у вас эмуляция подлагивает немного? Эмуляторы ведь тоже неидеальны. Попробуйте послушать несколько раз подряд, с перезапуском демки. Если где-то «заикается» из-за кода демки, то при каждом перезапуске музыка должна заикаться ровно в тех же местах, где заикалась и при предыдущем запуске.

Eugen:

--- Цитата: VEG от 20 Июнь 2016, 13:01:11 ---Последний известный и самый забавный вариант — это картридж с Симбой.




--- Конец цитаты ---

О! Вот такой шел с моим Сюбором (без клавиатуры), купленным в 2001 году (я новый ньюфаг, так что...) А что за мелодия там была-то? Точно не анчейнд же.
Когда был малой, отнес к другу, у которого был сюбор с клавиатурой - очень хотел бэкспейсом стереть девятки, чтобы поиграть в "Король Лев". Молодой был, глупый.

VEG:
Там был кавер на "Can You Feel the Love Tonight" Элтона Джона, если мне память не изменяет.

VEG:
Из интернетов :)




Картридж явно не имеет отношения к серии Unchained Melody, но мотивчик с морем и солнцем имеется =)

x.GREYSON.x:
Редкий навверное

CaH4e3:
Редкое г****но

VEG:
Вот читаю я спецификацию заголовка NES 2.0, который поддерживается в новом FCEUX, а там, оказывается, так и не ввели отдельный флаг для режима Dendy. Он бы был весьма кстати для демки.


Добавлено позже:

--- Цитата: ww от 21 Февраль 2016, 19:20:26 ---если нужен сам картридж, то обменяю на что-нить.
если только дамп, а карик обратно придет, то за ваши деньги (ну или за того, кому больше надо).

--- Конец цитаты ---
А сколько примерно стоит пересылка картриджа туда-сюда?

ww:

--- Цитата: VEG от 09 Октябрь 2016, 01:02:44 ---Вот читаю я спецификацию заголовка NES 2.0, который поддерживается в новом FCEUX, а там, оказывается, так и не ввели отдельный флаг для режима Dendy. Он бы был весьма кстати для демки.


Добавлено позже:А сколько примерно стоит пересылка картриджа туда-сюда?

--- Конец цитаты ---
Санчез же дал понять, что ему пофиг. Ему не денег жалко, а лень идти на почту потом. Ну и он писал, что нашел где-то такой же...

VEG:

--- Цитата: ww от 10 Октябрь 2016, 03:10:56 ---Ну и он писал, что нашел где-то такой же...
--- Конец цитаты ---
Так может быть у нас скоро будет новый дамп?  :wow:

Кстати, есть интересный экземплярчик, судя по всему. Вот эта стрёмная приставка Pro Tech XL 39-in-1 (да, джойстик — это и пистолет, и подключается напрямую в телик):


Поставляется с таким вот меню (фотки с ebay):







Инфа на bootleggames:
http://bootleggames.wikia.com/wiki/Unchained_Melody_Multicarts#Pro_Tech_XL_39-in-1

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

Никто не видел дампа этого счастья?

VEG:
Пару человек раньше писало мне, что музыка в демке «плавает». Я всё никак не мог понять о чём речь, ведь у меня в FCEUX всё звучало отлично. Давным-давно пробовал запускать и в Nintendulator — работало неидеально, но я решил, что это просто производительности компьютера не хватает для нормальной работы этого эмулятора. Но сегодня стукнуло проверить ещё раз, да ещё и сравнить с оригиналом, включив режим Dendy, где всё должно быть идентично с оригинальной менюшкой, ведь адаптация скорости и высоты тона тут не активируются. Каково же было моё удивление, когда я обнаружил, что в оригинальном меню звук не «плавает», а в моей демке — «плавает»! Причём проявилось это в версии 1.3, а до этого было всё ок, судя по этому эмулятору.

Блин. Надо разбираться.

Добавлено позже:
Как хорошо, что я большой любитель сохранять все возможные промежуточные версии в репозитории :)

В общем, проблема появилась между 1 марта 2015 и 3 марта 2015, в ревизии вот с таким незамысловатым комментарием:
Global refactoring, new palette engine, bkg/sprite scrolling ability (work in progress, two days of hard work)
То есть там очень много изменений, сделанных «на одном дыхании», и теперь надо всё перепроверить.

Как жаль, что я это только сейчас обнаружил, ведь текущую кривую версию скачало так много людей... :(

Добавлено позже:
Так. Код, из-за которого появилась проблема, выявлен. Я добавил проверку флага sprite overflow для того, чтобы определить, нужно ли выводить спрайты в обратном порядке в случае, если на одну линию попало больше 8 спрайтов. Во время wait_nmi оно попутно читает из PPUSTATUS ($2002) и смотрит пятый бит, и если вдруг он становится единицей, то меняет направление вывода спрайтов на следующем кадре установкой специальной переменной. Ирония в том, что я сделал это просто для красоты, чтобы OAM таблица при просмотре в отладчике памяти выглядела красивше, когда на одной линии нет больше 8 спрайтов. Удобно наблюдать когда каждый спрайт находится в своём фиксированном месте в памяти каждый кадр. По сути дела переполнение случается только во время взрывов внутри пасхалки, а при обычном просмотре такого не бывает (максимум 6 спрайтов на линии). До этого оно каждый кадр просто выводило спрайты то в одном направлении, то в другом.

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

VEG:
В общем длинные исследования привели к выводу и доказательству того, что опрос PPUSTATUS ($2002) в цикле каким-то непонятным образом предотвращает вызов NMI, в большинстве случаев это случается иногда (в демке это выглядит как периодическое замедление музыки), но можно подобрать условия, когда NMI вообще не будет никогда вызываться, чего не может быть исходя из документации.

Проблема проявляется на Nintendulator, puNES и Nestopia. В FCEUX эта проблема не наблюдается. Скорее всего в реальном железе эта проблема будет наблюдаться, потому что я получал от тестировавших на реальном железе отзывы, что музыка «плавает», но я тогда решил, что у людей просто чрезмерно музыкальный слух и они придираются.

Создал тему на nesdev, может кто сможет объяснить причину. В принципе, без ущерба демке я могу легко избавиться от этого эффекта, но просто интересно, почему так происходит. Тем более, если точные эмуляторы это поведение повторяют, значит поведение известно в каких-то узких кругах.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии