К основному контенту

Проигрываем SoundFX на NEOGS в играх.


 

 Проигрываем SoundFX на NEOGS в играх. Имеем 8 каналов. Семплы используем 8 bit, wav, сохраняем как PCM. Процедура сама выбирает свободный канал и играет семпл. Каждое обращение к загрузке семпла определяет его номер от 1....255. При проигрывании просто указываем этот номер семпла. 

Не забываем сбросить карту.

            LD A,#F4; resset
            CALL SC
            CALL WC



         LD IX,PARAMETR
         LD HL,ADDR_SAMPLE
         LD DE,LENGHT_SAMPLE
         CALL SAMPLE_LOAD
         RET

SAMPLE_LOAD:

        LD A,#38
        CALL SENDCOM
        LD A,#D1;  Открыли поток
        CALL SENDCOM

        LD A,(HL)
LOOPG:
        IN B,(C)
        JP P,READY
        IN B,(C)
        JP M,LOOP

READY:
        OUT (GSDAT),A
        INC HL
        LD A,(HL)
        INC E
        JP NZ,LOOP
        DEC D
        JP NZ,LOOP

WAIT:
        IN B,(C)
        JP M,WAIT
        LD A,#D2;  Конец стрима
        CALL SENDCOM
        LD A,(IX)
        OUT (GSDAT),A
        LD A,#40
        CALL SENDCOM
        LD A,(IX+1)
        OUT (GSDAT),A
        LD A,#41
SENDCOM:
        OUT (GSCOM),A
WAITCOM:
        IN A,(GSCOM)
        RRCA
        JR C,WAITCOM
        RET



PLAY:
        LD A,1; номер семпла ноль не задавать
        CALL SD
        LD A,#39
        CALL SC
        CALL WC
        RET




PARAMETR:
        DB 60
        DB #40

GSCOM        EQU 187
GSDAT        EQU 179

SC:
        OUT (GSCOM),A
        RET
WC:
        IN A,(GSCOM)
        RRCA
        JR C,WC
        RET
SD:
        OUT (GSDAT),A
        RET
WD:
        IN A,(GSCOM)
        RLCA
        JR C,WD
        RET

GD:
        IN A,(GSDAT)
        RET
WN:
        IN A,(GSCOM)
        RLCA
        JR NC,WN
        RET











Комментарии

Популярные сообщения из этого блога

Печать спрайта в TS CONF 256 color

  TS-CONF по умолчанию имеет аппаратные спрайты и тайлы которые используют 16 цветов, однако это не значит, что нет возможности использовать спрайты в 256 цветов. Для того, чтобы вывести такой спрайт, нужно воспользоватся DMA в режиме BLT1. В этом режиме перекидываются любые данные если они не равны нулю. Рисуем спрайты любыми цветами, но нулевой цвет оставляем для фона который нужно будет вырезать. Как всегда процедура и спрайты для теста тут: SPR.TRD Ниже привожу пример процедуры:             ORG       30000              LD            HL,0; X COORDINATE            LD            BC,0; Y COORDINATE             LD            (XX),BC LD            D,#C0; ADDRESS SPRITE IN MEMORY LD            E,#10; START VIDEO PAGE CALL       PERECHET; GET NUMBER PAGE PUSH     DE POP        HL LD            DE,16 SBC         HL,DE LD            DE,(XX) ADD        HL,DE PUSH     HL POP       DE LD           (PAGETO),A LD            B,6; SPRITE SIZE X ABSCISSA LD            C,15; SPRIT

ZXEVO: Вывод спрайта в TS-CONFIG

ZXEVO: Вывод спрайта в TS-CONFIG    Процедура вывода спрайта на ZXEVO под TSCONFIG адаптированная для отладчика XAS. Файл с портами  TSCONFI2  на диске  тут . Также на диске есть пример кода вывода спрайта SPRITE.XAS и тестовый ковер со спрайтами I.C                      LTEXT “TSCONFI2”;   подгружаем файл со списком портов                 ORG 26000 Sprite          LD   BC , SGPAGE ;   страница памяти где находятся ваши спрайты                  LD   A ,# C 0                  OUT  ( C ), A                  LD   BC , FMADDR                  LD   A , FMEN                  OUT  ( C ), A ;  в адрес #200 кидаем шесть байт данных спрайта, ;  Y , SIZE  кратно 8-ми,  X , SIZE  кратно 8-ми, в BC выбираем номер нашего спрайта, они идут по порядку один за другим                  LD   HL ,#200;     вносим данные о спрайте                   LD   A ,10;     координата по оси  Y                   LD  ( HL ), A                  INC   HL                  LD  ( HL ), SPSIZ

Софт для быстрого старта

Список необходимого софта для работы с  ZXEVOLUTION под Win . Некоторые программы я закачал к себе на хостинг, может это и не правильно по отношению к авторам, но лично мне так удобно, когда все лежит в одном месте. Эмулятор ZXEVOLUTION :   http://pmc-wagner.su/Unreal.rar Рисуем спрайты:   https://graphicsgale.com/us/ Конвертим спрайты для TSConfig :   http :// pmc - wagner . su/Tga2ts.rar Плагин для Total Commander работа с TRD : http :// pmc - wagner . su / INTRD 640. zip И кратко пройдемся по каждой программе: Эмулятор Unreal , настроен так, что сразу запускается в TSCONF . Жмем правый Shift + F 12 попадаем в БИОС, ставим CS RESET TO : ROM #00. Сохраняем настройки. Теперь если в системе нажать левый Shift + F 12, то вылетит обычное меню ZX - Spectrum 128, что может быть удобно, если надо запустить стандартный TRD с винды. Дальше выбираем в меню File нужный образ и наслаждаемся. В моем архиве есть тестовый TRD с примером игры под ZXEVO с исходниками под XAS