User Tag List

Страница 19 из 22 ПерваяПервая ... 1516171819202122 ПоследняяПоследняя
Показано с 181 по 190 из 219

Тема: Descent - демо игры с 8-цветными спрайтами для УКНЦ

  1. #181

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    А сто грамм только затушат так и не загоревшися костер.
    Я скорее про то, что изначально в open source. Тут было несколько проектов, когда люди успешно писали при помощи и с подсказками корифеев. Были, правда и неудачные примеры. Это наверное зависит от характера пишущего...
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

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

  3. #182

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,507
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    изначально в open source
    Да, с этим немного лучше.

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Это наверное зависит от характера пишущего
    Свои проекты (то есть - для себя, любимого) - целиком от характера пишушего.
    Проекты, которые нужны кому-то, но пишет не он - в большей степени от характера нуждающегося и его умения матевировать (именно с А )

  4. #183

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Заодно сюда напишу как тут сделана примитивная музыка и звук:
    Хорошая статья кстати: https://www.gamejournal.it/the-sound...r-zx-spectrum/

    Собственно в УКНЦ как и на спеке и прочих биперных компах звуки извлекаются переключением 1/0 в регистре бипера (хотя есть и другие способы, но ну их в баню, будем придерживаться стандартов - 1/0 и все тут
    Регистр в периферийном (!) процессоре @#177716
    Чтобы туда послать бит 1 в динамик надо сделать mov #200, @#177716 (а нефиг париться с bis/bic - поверьте прокатит и так, mov быстрее, а другие биты в этом регистре нам не нужны, пусть будут нулями и зшб)
    Чтобы послать 0 в динамик соответственно clr @#177716

    Итого весь звук состоит из переключений 1/0 в определенной последовательности.

    Можно заюзать ВЕСЬ периферийный проц чтобы издавать звуки (ведь у нас фактически два компа в одном, но блин периферийный проц нужен чтобы рисовать в "синий" план видеопамяти поэтому ну нафиг его полностью юзать под звук)
    И тут ведь в УКНЦ в периферийном проце есть таймер который может генерить прерывания по заданной длительности. Вся идея музыки тупо переключать 1/0 и менять длительности этого переключения.

    Сначала инициализируем (отключаем) таймер:
    Код:
    ; pp timer ready wait
    PptIni:	clr	@#177710
    	tst	@#177714
    	tst	@#177710
    	bne	PPTINI
    	return
    Затем его надо включить будет однажды (при звучании эффекта или очередной ноте музыки)
    Код:
    10$:	clr	@#177716		; low signal to speaker
    	mov	#SndIntHi, @#304	; set next sound interrupt to high signal proc
    	mov	SndLLo, @#177712	; low signal duration
    30$:	tst	@#177714
    	tst	@#177714
    	bis	#^B01000101, @#177710	; allow int, start, timer = 8mks
    99$:	mtps	#0
    Срабатывает прерывание например по вектору таймера 304 - вот обработчик бита 1
    Код:
    SndIntHi:
    	mov	#200, @#177716		; set high level
    	mov	#SndIntLo, @#304	; next interrupt addr - set to low tick
    	mov	SndLHi, @#177712
    	tst	@#177714
    	tst	@#177714
    	rti
    Тут-же устанавливается вектор прерывания на другой адрес (а там включится бит 0), заносится длительность бита 1 в таймер 177712 и два раза считывается регистр 177714 чтобы подтвердить изменение таймера (поверьте - это для надежности! я сам не знаю зачем ДВА раза считывать регистр, вроде одного должно хватать, но так надо и все тут)

    Для одноголосной музыки все банально. Делаем "ровные" переключения 1/0, но для более комфортного звучания лучше сразу менять duty у сигнала и например уменьшать таймер переключения динамика в 1 на скажем некоторую величину, а таймер переключения в 0 соответственно увеличивать. Получится более весело.


    -- тут сообщение из лички с S_V_B ---

    За саму идею я взял спектрумовский BeepFX (редактор под винду конечно). Под мои звуки там надо параметры пересчитывать будет.
    Сам его код на прерываниях УКНЦ реализовать разумеется нет воозможности. Он там написан под 100% зажирания процессора, а у меня на прерываниях таймера.

    Смысл такой. Есть N "фреймов" звука. (это не экранные фреймы, просто цикл)
    Есть изначальные параметры "длительность циклов переключения 1/0 во фрейме, длительность 1 в динамике, длительность 0 в динамике"
    Также есть дополнительные параметры при смене фрейма мол изменить длительность переключения 1/0, изменить длительность 1, изменить длительность 0"

    Врубилось прерывание от таймера 4мкс допустим. Врубаешь 1 в динамике, ставишь длительность 1 в таймер, переставляешь вектор прерывания на другой где будет дальше 0 идти.
    Врубилось очередное прерывание, там ставишь 0, ставишь длительность нуля в таймер. Проверяешь что не закончилась длительность локального переключения 1/0
    Если закончилась - пошел новый фрейм. Добавляешь к длительностям всем некие числа которые прописаны и по-новой.

    Минусы такие что чаще чем сколько-то циклов процессора - прерывания не обслужишь и есть некий минимум на длительности 1/0

    Код сам собственно имеется в том-же descent на гитхабе в файле descnt_ppu.mac по метке SNDSTA: но там разбираться долго. Итого весь эффект описывается такими например вещами:
    SND005:
    .word SND_TONE ; звук (еще есть пауза например и должен быть шум)
    .word 04 ; четыре "фрейма"
    .word 8*256 ; тут используется только старший байт - 8 циклов смены 1/0 изначально
    .word 2*256 ; при смене "фрейма" добавить это к предыдущему мол каждый фрейм длительность смены 1/0 общая будет увеличиваться на 2
    .word 124, -20 ; 124 тика таймера для 1 в динамике и каждый фрейм уменьшаем на 20
    .word 114, -18 ; 114 тика таймера для 0 в динамике и каждый фрейм уменьшаем на 18 (теперь понятно зачем прибавлять к длительности фрейма 2 чтобы не терять в общей длительности)
    .word 0 ; конец хорош звучать

    ---

    Еще можно добавить что таймер в счетчик который пишется 177712 юзает только 12 бит, и не байт и не слово но как сделали так сделали
    Последний раз редактировалось BlaireCas; 22.09.2022 в 15:48.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

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

    S_V_B(22.09.2022), Titus(22.09.2022)

  5. #184

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    BeepFX
    экспортирует в удобоваримый для нас формат который потом можно скриптом причесать?
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  6. #185

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    экспортирует в удобоваримый для нас формат который потом можно скриптом причесать?
    Нет к сожалению, но он оперирует похожими вещами. Мол частота переключения 0/1, duty у 1, их изменение каждый фрейм. На прерывания придется разумеется пересчитывать его числа. А полностью отдавать проц на звук нууууу.. неохота, он еще и клаву обслуживает и рисовать только он умеет в "синем" цвете.
    Там поэкспериментируй в винде - поймешь кст
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  7. #186

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Будем копать
    Мне звук лифта нарыть нужно.

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

    Я в ПП только лабиринт рисую (статику), спрайты скорости не хватает.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  8. #187

    Регистрация
    05.04.2016
    Адрес
    г. Мончегорск, Мурманская обл.
    Сообщений
    414
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    45 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Есть ещё вариант использовать AY-3-8910, чтобы не грузить ПП, да и музыку можно проигрывать)
    https://github.com/aberranthacker/aberrant_sound_module
    Для пробы в своё время заказал три платы, сначала хотел вообще одну, но человек который делал разводку, настоял чтобы я заказал как минимум три, на случай производственных дефектов.
    В общем есть ещё две платы, планировал предложить устройство тем кто разрабатывает игры.
    Только на какое-то время отошёл от все этой темы.
    Но сейчас, если есть интерес, готов передать эти две платы, в том числе и со смонтированными компонентами. Чтобы в играх начала появляться поддержка)

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

    Или отнесу в Яндекс музей)
    aberrant_hacker

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

    BlaireCas(23.09.2022)

  9. #188

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от randomizer Посмотреть сообщение
    Есть ещё вариант использовать AY-3-8910, чтобы не грузить ПП, да и музыку можно проигрывать)
    https://github.com/aberranthacker/aberrant_sound_module
    Для пробы в своё время заказал три платы, сначала хотел вообще одну, но человек который делал разводку, настоял чтобы я заказал как минимум три, на случай производственных дефектов.
    В общем есть ещё две платы, планировал предложить устройство тем кто разрабатывает игры.
    Только на какое-то время отошёл от все этой темы.
    Но сейчас, если есть интерес, готов передать эти две платы, в том числе и со смонтированными компонентами. Чтобы в играх начала появляться поддержка)

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

    Или отнесу в Яндекс музей)
    1. Мало у кого будет карточка.
    2. Нет стандарта подключения (я например цеплял AY через ИРПР).


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

    P.S.
    Если бы была поддержка в эмуляторах.. тогда имеет смысл.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  10. #189

    Регистрация
    05.04.2016
    Адрес
    г. Мончегорск, Мурманская обл.
    Сообщений
    414
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    45 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #190

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от randomizer Посмотреть сообщение
    Ну да ладно, пока буду оставаться единственным обладателем уникального устройства
    И единственным потенциальным слушателем. Я тоже единственный обладатель AY на ИРПР, это же не означает, что кто-то кроме меня будет под него писать. (а кроме меня он нафиг никому не нужен).
    Если бы была поддержка в эмуляторах то любой мог бы заценить твои усилия.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

Страница 19 из 22 ПерваяПервая ... 1516171819202122 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 42
    Последнее: 22.11.2021, 02:55
  2. Демо-версия новой игры SaNchez-а ;)
    от SaNchez в разделе Игры
    Ответов: 91
    Последнее: 26.02.2014, 22:08
  3. Помогите найти Демо из игры Dizzy
    от женя999 в разделе Демо
    Ответов: 8
    Последнее: 15.09.2012, 00:08
  4. Ответов: 10
    Последнее: 07.06.2012, 12:24

Ваши права

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