User Tag List

Страница 163 из 224 ПерваяПервая ... 159160161162163164165166167 ... ПоследняяПоследняя
Показано с 1,621 по 1,630 из 2231

Тема: ZXMAK2 - Виртуальная машина ZX Spectrum

  1. #1621

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от palsw Посмотреть сообщение
    ZXMAK, wavplayer рабоатет отлично на реале со звуком 8 бит стерео 44кгц по 40мб файлы


    А вот 16бит через примерно минуту начинает песня заикаться - переполняется буфер.Но если в ком строке поставить ключ h - то играет напрямую с диска и проблем нет с заиканием.

    ---------- Post added at 09:13 ---------- Previous post was at 08:51 ----------

    в муляторе полная тишина на всех вариантах wav и demo7
    хм в эму ляторе и на 8 битах спустя время сбивается. На стерео быстрее. Заметил что сбивается когда полоска зашкаливает, а зашкаливает она когда много точек рисуется.
    Видимо разница с эмулятором из-за прерываний. Чем блокируются прерывания от бластера после сброса (когда в #4E пишется ff)? И есть ли механизм блокировки прерываний от экрана в спринтере?
    Чтобы звук с нормальной скоростью выводился пришлось сделать чтобы из порта #fe читалось состояние прерываний от бластера, а не старший бит счетчика. В коде плеера вывод продолжается только если в старшем бите #fe читается 1. Что не соответствует описанию. Может чтото тут напутано?

    Не ясно также в каком формате 16бит стерео пишется? Почему в этом режиме шум? Там сжатие какоето используется?

    Молчит очевидно потому что ты девайс CovoxBlaster не добавил, я его в конфиг спринтера не добавлял - нужно вручную через окно конфигурации машины добавлять
    Последний раз редактировалось ZXMAK; 23.06.2015 в 13:05.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

  3. #1622

    Регистрация
    08.05.2011
    Адрес
    г. Измаил, Украина
    Сообщений
    3,216
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZXMAK,
    Молчит очевидно потому что ты девайс CovoxBlaster не добавил, я его в конфиг спринтера не добавлял - нужно вручную через окно конфигурации машины добавлять
    да ,протормозил - добавил звук выше клавы. вавки играет но рвет звук немного на 8бит .
    На 16 бит просто гонит цифровой шум .
    demo7 совсем не так играет в мулятре.Попробую еще demo8 в муляторе.

    Sayman,
    тестовый файлик под расшаренную синусойду
    в тестах demo7 и demo8 синусом и не пахнет - просто иголка 85гц

    ---------- Post added at 13:27 ---------- Previous post was at 13:26 ----------

    ZXMAK,
    хм в эму ляторе и на 8 битах спустя время сбивается.
    пробуй запускать с ключем h мелодии .
    Последний раз редактировалось palsw; 23.06.2015 в 13:30.
    Радио-Губитель Канал на YouTube

  4. #1623

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от palsw Посмотреть сообщение
    ZXMAK,

    пробуй запускать с ключем h мелодии .
    нужно разобраться почему есть разница между эмулятором и риалом. Подозреваю что чтото не так в прерываниях и/или старших битах порта #FE. Как вообще в спринтере работают прерывания от бластера и экрана (взаимоисключающие или оба могут приходить? как отключаются?)

    По поводу 16 бит стерео - непонятно, откуда шум берется, даже если бы частота не совпадала, такого не должно быть. Видимо 16бит стерео как-то по особому работает.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  5. #1624

    Регистрация
    08.05.2011
    Адрес
    г. Измаил, Украина
    Сообщений
    3,216
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    исходников wavplay нету ? в нем еще один баг есть - все мелодии одинаково называются - softw.wav

    ---------- Post added at 14:11 ---------- Previous post was at 14:00 ----------

    ага,исходники wavplay есть - там смотрите куда лезет и как при проигровании 16бит.
    гляну еще исходники альтеры - может найду covoxblaster

    ---------- Post added at 14:28 ---------- Previous post was at 14:11 ----------

    исходники звука ADHL есть - все там просто и расписано ,но где взять спеца в ADHL ?

    Скрытый текст

    Код:
    --	=====================================================
    --	=== AUDIO OUT =======================================
    --	=====================================================
    
    	DAC_DATA	= DFFE(DFF(AUDIO_R15,CT2,,),!CT2,,,);
    
    --	DAC_DATA	= DFF(AUDIO_R15,CLK42,,);
    --	DAC_DATA	= AUDIO_R15;
    
    	DAC_WS		= DFF(CTH1,CLK42,,);
    	DAC_BCK		= DFF(CT2,CLK42,,);
    
    	AUDIO_R[15..0].clk	= CLK42;
    	AUDIO_R[15..0].ena	= !CT2 & DFF(CT2,CLK42,,);
    
    	AUDIO_CH = DFF(((CTH0,CT[5..3]) == 15),CT2,,);
    
    	IF AUDIO_CH THEN
    		AUDIO_R[15..0].d = AY_CHS[15..0];
    	ELSE
    		AUDIO_R[15..0].d = (AUDIO_R[14..0],GND);
    	END IF;
    
    --	====== COVOX ==========
    
    	CBL_MODE		= CBL_XX7;
    	CBL_STEREO		= CBL_XX6;
    	CBL_MODE16		= CBL_XX5;
    	CBL_INT_ENA		= CBL_XX4;
    
    	CBL_INT			= DFF(GND,!CBL_CNT6,,(CBL_INT_ENA & (/IO or /M1)));
    
    	CBL_XX[].clk	= /IOWR;
    	CBL_XX[].ena	= DFF((DCPP[] == B"10001001"),CLK42,,);	-- 89
    	CBL_XX[]		= D[];
    
    	CBL_CTX[].clk	= !CTH1;
    	CBL_CNT[].clk	= !CTH1;
    
    	CASE CBL_XX[3..0] IS
    		WHEN 0 => CBL_TAB[] = 13; -- 16khz  -- mono/stereo
    		WHEN 1 => CBL_TAB[] = 9;  -- 22khz  -- mono/stereo
    		WHEN 2 => CBL_TAB[] = 0;  -- reserved
    		WHEN 3 => CBL_TAB[] = 0;  -- reserved
    		WHEN 4 => CBL_TAB[] = 0;  -- reserved
    		WHEN 5 => CBL_TAB[] = 0;  -- reserved
    		WHEN 6 => CBL_TAB[] = 0;  -- reserved
    		WHEN 7 => CBL_TAB[] = 0;  -- reserved
    
    		WHEN 8 => CBL_TAB[] = 27; -- 7.8125  KHz -- mono/stereo 8/16 bit
    		WHEN 9 => CBL_TAB[] = 19; -- 10.9375 KHz -- mono/stereo 8/16 bit
    		WHEN 10=> CBL_TAB[] = 13; -- 15.625  KHz -- mono/stereo 8/16 bit
    		WHEN 11=> CBL_TAB[] = 9;  -- 21.875  KHz -- mono/stereo 8/16 bit
    		WHEN 12=> CBL_TAB[] = 6;  -- 31.25   KHz -- mono/stereo 8/16 bit
    		WHEN 13=> CBL_TAB[] = 4;  -- 43.75   KHz -- mono/stereo 8/16 bit
    		WHEN 14=> CBL_TAB[] = 3;  -- 54.6875 KHz -- mono/stereo 8/16 bit
    		WHEN 15=> CBL_TAB[] = 1;  -- 109.375 KHz -- mono/stereo 8/16 bit
    --		WHEN 15=> CBL_TAB[] = 0;  -- (218.75)KHz -- stereo 110 only
    	END CASE;
    
    	IF (CBL_CTX[] == 0) THEN
    		CBL_CTX[].d	= CBL_TAB[];
    	ELSE
    		CBL_CTX[].d	= CBL_CTX[] - 1;
    	END IF;
    
    	CASE (CBL_STEREO,LCELL(CBL_CTX[] == 0)) IS
    		WHEN 0,2 => CBL_CNT[].d	= CBL_CNT[];
    		WHEN 1 => CBL_CNT[].d	= CBL_CNT[]+1;
    		WHEN 3 => CBL_CNT[].d	= CBL_CNT[]+2;
    	END CASE;
    
    	CBL_CNT[].clrn	= CBL_MODE;
    
    	CBL_IND			= CBL_CNT7 xor CBL_WA7;
    
    --	CBL_WR			= DFF((DCPP[] == B"10001000"),CLK42,,) & !/IOWR; -- 88
    
    	CBL_WR	= (DFF((DCPP[] == B"10001000"),CLK42,,) & !/IOWR) or
    		  (DFF((DECODE.PAGE[7..0] == B"11111101"),CLK42,(CBL_INT_ENA & ACC.ACC_DIR1),) &
    	  		!DFF((DECODE.MC_WRITE or DECODE.CAS),CLK42,,/RESET));
    
    
    	CBL_WAE			= CBL_MODE16 & DFF(!CBL_WAE,!CBL_WR,,CBL_INT);
    
    	CBL_WA[].clk	= !CBL_WR;
    	CBL_WA[].ena	= !CBL_WAE;
    
    	CBL_WA[7].clrn	= CBL_MODE & CBL_INT_ENA & (CBL_INT or !CBL_CNT7);
    	CBL_WA[7].prn	= (CBL_INT or CBL_CNT7);
    
    	CBL_WA[6..0].clrn	= CBL_MODE & CBL_INT_ENA & CBL_INT;
    
    	CBL_WA[].d		= CBL_WA[] + 1;
    
    	CBD[].clk		= !CBL_WR;
    	CBD[].ena		= CBL_WAE;
    --	CBD[].d			= D[];
    	CBD[].d			= ACC.MDO[7..0];
    	CBD[].clrn		= CBL_MODE16;
    
    	CBL.wren 		= (CBL_WR & !CBL_WAE);
    
    --	CBL.data[] 		= ((D7 xor CBL_MODE16),D[6..0],CBD[]);
    	CBL.data[] 		= ((ACC.MDO15 xor CBL_MODE16),ACC.MDO[14..8],CBD[]);
    
    	CBL.wraddress[] = ((!A[15..8]) & !CBL_INT_ENA) xor CBL_WA[];
    
    	CBL.wrclock		= CLK42;
    	CBL.wrclken		= VCC;
    	CBL.rden		= VCC;
    	CBL.rdaddress[] = (CBL_CNT[7..1],LCELL((CBL_CNT0 & !CBL_STEREO) or (AUDIO_CH & CBL_STEREO)));
    	CBL.rdclock		= CLK42;
    	CBL.rdclken		= VCC;
    
    	CBL_R[].ena = DFF((CBL_MODE or (CBL_WR)),CLK42,,);
    
    	CBL_R[].CLK			= CLK42;
    	CBL_R[15].prn		= /RESET;
    	CBL_R[14..0].clrn	= /RESET;
    	CASE CBL_MODE IS
    		WHEN 0 => CBL_R[] = (D[7..0],B"00000000");
    		WHEN 1 => CBL_R[] = CBL.q[];
    	END CASE;
    
    --	====== AY-3-8910 ========
    
    	AY3.CLK42		= CLK42;
    
    	AY3./RESET		= /RESET;
    	AY3.AY_T[8..0]	= (CTH[2..0],CT[5..0]);
    
    	AY3.AY_D_WR		= DFF((DECODE./IOM or /WR) or !DFF((DCPP[] == H"91"),CLK42,,),CLK42,,);
    	AY3.AY_A_WR		= DFF((DECODE./IOM or /WR) or !DFF((DCPP[] == H"90"),CLK42,,),CLK42,,);
    
    	AY3.D[7..0]		= D[];
    	AY3.BEEPER		= BORDER4;
    
    --	AY3.DO[7..0]		: OUTPUT;
    
    --	AY3.AY_CH_A[3..0]	: OUTPUT;
    --	AY3.AY_CH_B[3..0]	: OUTPUT;
    --	AY3.AY_CH_C[3..0]	: OUTPUT;
    
    	AY_FULL[].clk = CLK42;
    
    --	AY_CHS[].clk	= !CTH0;
    	AY_CHS[].clk	= !DFF((CTH1 & (CTH0 or !CT5)),CLK42,,);
    	AY_CHS[].ena	= VCC;
    
    --	AY_FULL[] = (GND,AY_CH_L[]) + (GND,AY_CH_R[]);
    
    	CASE DFF(CTH0,CLK42,,) IS
    		WHEN 0 => AY_FULL[] = (AY3.AY_CH_L[],GND);
    		WHEN 1 => AY_FULL[] = (AY3.AY_CH_R[],GND);
    	END CASE;
    
    --	AY_CHS[].d		= (((GND,AY_FULL[]) + (VCC,CBL.q[15..5])),B"0000");
    
    --	AY_CHS[].d		= (((GND,AY_FULL[]) + (VCC,CBL.q[15..8],B"000")),B"0000");
    	AY_CHS[].d		= (((GND,AY_FULL[]) + (VCC,CBL_R[15..5])),CBL_R[4..1]);
    [свернуть]


    ---------- Post added at 14:56 ---------- Previous post was at 14:28 ----------

    еще один есть плеер wav от Алексей Гавриленко 18.01.2000 но он хочет предварительно запустить cashdos.exe . Нужно ан реале запустить проверить

    ---------- Post added at 15:00 ---------- Previous post was at 14:56 ----------

    Радио-Губитель Канал на YouTube

  6. #1625

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну судя по коду ahdl у блястера-таки есть какие-то прерывания. не шибко спец я чтобы понять с какой периодичностью.
    никакого сжатия нет. все данные ваф файла как есть кидаются в буфер бластера.
    Последний раз редактировалось Sayman; 23.06.2015 в 17:10.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  7. #1626

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    подсунул вафку 8бит, стерео, 44кгц. эмуль выдаёт жесточайшее квантование! 16бит всё играет вместо музыки просто цифровой шум.
    еще один есть плеер wav от Алексей Гавриленко 18.01.2000 но он хочет предварительно запустить cashdos.exe . Нужно ан реале запустить проверить
    этот плеер был ещё для спринтера 97. на наших оно играть не будет хоть как.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  8. #1627

    Регистрация
    08.05.2011
    Адрес
    г. Измаил, Украина
    Сообщений
    3,216
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sayman, жалко,на него тоже исходники есть
    Радио-Губитель Канал на YouTube

  9. #1628

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    palsw, не жалко. на нормальный ивановский плеер тоже есть исходник.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  10. #1629

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    подсунул вафку 8бит, стерео, 44кгц. эмуль выдаёт жесточайшее квантование! 16бит всё играет вместо музыки просто цифровой шум.

    этот плеер был ещё для спринтера 97. на наших оно играть не будет хоть как.
    Ты хотел сказать срывы синхронизации? Квантования там быть не должно, тем более жесткого. наоборот - играет лучше чем если напрямую плеером из windows открыть. Т.к. эмулятор делает передискретизацию на частоте 21 МГц с децимацией до частоты выбранной через порт #fe (для 44кгц это 43 с копейками килогерц) с фильтром..
    Нужно отметить что плеер не всегда запускается нормально, часто бывает сразу после запуска синхронизация нарушена, со временем она восстанавливается, потом опять нарушается, т.е плеер почемуто не может засинхронизироваться на back buffer страницу бластера и начинает писать в активную... Что весьма странно. Ведь по логике синхронизация по прерываниям не должна нарушаться. Вероятно из #fe должен читаться старший бит счетчика, но не во время прерывания, Иначе невозможно понять какую страницу сейчас обрабатывает бластер (отсюда и срывы синхронизации).

    Проблема синхронизации как-то связана с прерываниями и возможно особенностями акселератора для #fd страницы. Demo7 действительно сейчас отличается от видео, хотя до изменений добавляющих прерывания от бластера и запись в бластер акселератором все было один в один. Нужно разобраться.

    Судя по AHDL счетчик у бластера всетаки декрементируется, хотя в той версии эмулятора что я выложил инкрементируется. Пробовал менять - получается искажение звука, которое можно пофиксить если при записи в #fd страницу делать запись в бластер с инверсным адресом. Результат идентичный инкременту счетчика (как сейчас работает).

    Т.е много вопросов к тому, как происходят прерывания от бластера, когда они блокируются, что же на самом деле читается из порта #fe (сейчас в эмуляторе состояние INT, которое длится 32 такта). Со старшим битом счетчика в #fe плеер работает некорректно, т.к. пока в прерывании из #fe читается 0, он в бластер не пишет вообще, т.е. скипает половину буфера. Получается что плеер использует этот бит чтобы проверить что прерывание пришло от бластера. Это не вяжется с описанием этого бита как старшим битом счетчика. Т.е. с битом D7 порта #fe тоже загадка.

    Непонятно блокируются ли как-то прерывания экрана. В эмуле они ничем сейчас не блокируются, пробовал блокировать при включении прерываний от бластера - на синхронизацию звука в плеере это заметно не влияет.

    С акселем есть прикол с которым пришлось столкнуться. вначале я сделал запись в бластер при любой записи в #fd страницу, но всплыла проблема - плеер читает с винчестера данные... тоже в #fd страницу. Более того, плеер не ограничивает облать записи 256 байтами, а пишет в бластер последовательно по всей странице памяти! В итоге при обращениях к винту было щелканье в бластере. Я это пофиксил записью в бластер только если запись идет акселератором.
    Отсюда вытекает, что либо счетчик у бластера всетаки 14 разрядный, либо запись в бластер идет только из акселератора, но не при обычной записи в память, либо ПЛИС не делает запись в бластер при чтении с винта командой INI...
    Последний раз редактировалось ZXMAK; 24.06.2015 в 04:48.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  11. #1630

    Регистрация
    08.05.2011
    Адрес
    г. Измаил, Украина
    Сообщений
    3,216
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    наверное баян,но все же
    Вложения Вложения
    Последний раз редактировалось palsw; 24.06.2015 в 12:44.
    Радио-Губитель Канал на YouTube

Страница 163 из 224 ПерваяПервая ... 159160161162163164165166167 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 06.04.2012, 21:37
  2. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26
  3. Продвинутая Мелко Машина 1
    от Black_Cat в разделе Зарубежные компьютеры
    Ответов: 74
    Последнее: 03.03.2009, 09:05
  4. Что за машина такая??? Commodore 128...
    от ILoveSpeccy в разделе Commodore 16/64/128
    Ответов: 5
    Последнее: 31.10.2007, 10:25
  5. Java-машина
    от Error404 в разделе Программирование
    Ответов: 2
    Последнее: 15.01.2007, 15:11

Ваши права

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