HardWareMan, без декапса могу тебе на 100% сказать , в Sega нет подтверждения INT по M1+IORQ , и то для нас проблема , это показал код плеера. Сейчас кое что проверю ,более развернуто опишу.
Карта на логике без прямой поддержки TSFM с возможностью проигрывания TSFM сторонним плеером, 5-7$
Карта на логике с поддержкой TSFM ,цена 7-10$
Карта на CPLD , цена не знаю примерно 20$ может и больше
HardWareMan, без декапса могу тебе на 100% сказать , в Sega нет подтверждения INT по M1+IORQ , и то для нас проблема , это показал код плеера. Сейчас кое что проверю ,более развернуто опишу.
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
На данный момент -
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
По поводу INT , проблема в том , что плеер написан был под сеговский INT , и это надо поисправлять , а инфы по полной организации SMPS формата я не нашел , так по кускам то тут то там почитал , из самого плеера по коду принцип более менее понятен , но ест еще темные пятна.
Вот для сравнения INT Sega и пентагона , и соответственно обработка такого длиннючего инта на сеге совсем иная
![]()
![]()
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
На сеге ИНТ ровно 1 строку растра.
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
Нашел откуда получаются глючки в звуке , и теперь задача ,может у кого то мысли будут.
Нам в основном цикле надо при проигрывании мелодии выводить в DAC звук PCM , делать это надо по любому при запрещенных прерываниях , иначе лезут глюки.
Теперь вопрос ,какова вероятность при таком коде пропустить прерывание ? так как 28 тактов это притык !
Итого 28 тактов , это самый быстрый алгоритм что я смог придумать , при обязательном условии что между LD (HL),A и LD (HL),C не должно бытьКод:DI LD (HL),A ;7 INC HL ;6 NOP ;4 LD (HL),C ;7 EI ;4
меньше 8 тактов иначе данные у нас в YM2612 могут не записаться.
- - - Добавлено - - -
PS могу извратиться и сократить код на два такта и будет 26 тактов. Тогда мы как думаете точно не пропустим прерывание ?
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
А если например HL = #CFFF ? Мы заберем данные не там )
Нет конечно , у нас INT 50гЦ , как это может быть частотой PCM.
В дух словах попробую просто описать на абстрактном примере нашей аушки , аушка играет на прерываниях но код в прерывании должен быть крайне быстрый , так как все остальное время процессор играет трекерный MOD , и когда проц играет трекерный MOD мы не имеем права пропустить ни одного прерывания что бы не сбилась аушка, это грубое но похожее представление сеговского плеера )
- - - Добавлено - - -
goodboy, можно конечно проверять HL перед запретом прерываний ,что бы потом только L увеличивать ,но это тоже займет время которое при проигрывании PCM весьма ограничено.
- - - Добавлено - - -
goodboy, и опять же при запрете прерываний на 26 тактов , в наших ZX мы точно не пропустим прерывание ?
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)