ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Что поделаешь. Автостарт для этих эмуляторов разрабатывался тогда, когда моего формата еще не было. Не могу я сделать автостарт по таким требованиям, как ты описал. Слишком многое придется в загрузчике перелопачивать. Сейчас еще не тот этап, надо сначала убедиться, что он надежно работает.
И вообще, в tzx-файлах есть маркеры останова ленты - так что эмулятору даже не нужно определять, когда загрузчик завершает работу.
---------- Post added at 22:09 ---------- Previous post was at 22:03 ----------
wav можно сделать, но нет возможности его так выложить, чтобы было удобно скачать. Попробуй скачать tzx-файлы из сообщения №13 и преобразовать их в wav, есть же куча утилит.
в ZXMAK2 первый читается ок, как из WAV файла, так и из CSW, второй на первой трети экрана tape loading error
---------- Post added at 22:27 ---------- Previous post was at 22:10 ----------
даже в tzx маркеры редко когда встречаются, а уж в WAV или TAP файле точно никаких маркеров нет, а определять надо.
Последний раз редактировалось ZXMAK; 26.05.2013 в 23:24.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Ну, значит, не судьба. Попробуй посмотри исходник загрузчика и прикинь, можно ли туда добавить холостые IN так, чтобы по тактам ничего не нарушить. Тот автостарт, который ты описал, рассчитан на обнаружение загрузчиков оригинального формата, которые, даже если они нестандартные, работают по одному принципу и используют цикл опроса порта FE с короткими интервалами. У меня подход другой - ФАПЧ.
мне вот интересно, а как детектятся всякие загрузчики со спидлоками, алькатразами и прочей мутью? так же ведь и юзаются блоки tape start и tape stop, не?
С уважением, Александр.
Scorpion ZS-256 Turbo+ GMX-2048
SID-Blaster/ZX
Музей ретрокомпьютеров в Минске!
Здесь ничего нет => http://byteman.by
И здесь тоже --->>> http://bytespace.by
Мне кажется, что в таких загрузчиках везде одинаковый подход, подпрограмма из ПЗУ LD-EDGE там одна и та же везде используется. Я не вникал в детали этих форматов, но мне кажется, что там везде используется старый добрый FM, разве что, может быть, с нестандартной скоростью, пилоттонами, байтом четности и прочими несущественными мелочами.
---------- Post added at 22:58 ---------- Previous post was at 22:47 ----------
Хотя вот я краем уха слышал, что некоторые защиты прерывали загрузку (т.е. опрос порта магнитофона и прием данных) на время каких-то расксориваний, а сигнал в это время шел. В таких ситуациях, вероятно, автостарт тоже даст сбой.
Последний раз редактировалось Barmaley_m; 26.05.2013 в 23:50.
алгоритмом который я приводил выше
---------- Post added at 23:08 ---------- Previous post was at 23:04 ----------
да, если пауза будет слишком длинной, то сработает автостоп, когда загрузчик начнет опять читать сработает автостарт. Конечно если загрузчик проверяет задержку до начала следующего блока, то за счет стоп/старта время нарушится и загузка будет неудачной. Я помню даже что была такая игрушка с защитой, которая на автостарте не хотела грузится, но это редкость.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
В общем, Александр, учитывая высокую избирательность детектора загрузчиков в твоем эмуляторе, я не вижу никакой возможности реализовать его поддержку в своем загрузчике. Это обусловлено принципом его работы, который ранее в загрузчиках не применялся. Если не веришь - исходник лежит в открытом доступе, можешь сам убедиться.
высокая избирательность у этого алгоритма для того чтобы нейтрализовать ложные срабатывания. Есть некоторые программы, работа которых мало чем отличается от загрузки с магнитофона, хотя реальную загрузку они в это время не производят
Если нет возможности подстроить загрузчик под существующий алгоритм, тогда приветствуются предложения как доработать алгоритм, чтобы он понимал и новый загрузчик.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
может, вместо того, чтобы проверять условия на предмет "магнитофон остается в режиме play", проверять условия для событий "старт ленты" и "стоп ленты". т.о., загрузчик перед началом загрузки создает событие "старт ленты" (ожидая пилоттон), затем проверяется условие на конец загрузки: лента запущена + не было ни одного in (#fe) за период 0.25мс (или 0.25/2). это все не точно, но смысл такой - ловить не процесс загрузки, а начало и конец. и тогда пофиг, как именно загрузка осуществляется, лишь бы раз в интервал был опрос.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)