А если что-то вроде такого - при повышенной частоте проца писать в файл с большей частотой дискретизации? Т.е. при 6 МГц писать 44100, потом можно в SF поменять частоту, хотя это может и эмулятор сам сразу делать.
Вид для печати
А если что-то вроде такого - при повышенной частоте проца писать в файл с большей частотой дискретизации? Т.е. при 6 МГц писать 44100, потом можно в SF поменять частоту, хотя это может и эмулятор сам сразу делать.
В рамках движка аудио захвата - к сожалению нет, это нужно специально писать дополнение для виртуального магнитофона.
А чем неустраивает пропорциональное увеличение быстродействия повышением частоты кадров? допустим при 100Гц скорость CPU получается равной 6МГц и при этом DXSound перестраивается на другой режим, и запись получается нормальной, а нехватка ресурсов, связанная с увеличением частоты кадров высвободится за счет Auto Frame Skip (если он включен).
Почасав немного репу, всетаки придумал как это сделать :) , в новой версии сделаю
Добавлено через 11 часов 42 минуты
Tim0xA, Готово, VV_5.75. Есть правда некоторые ограничения, от которых избавится неудалось: 1. Во время захвата блокируется возможность переключения скорости процессора т.к. это переключение приведет к помехе в wav файле, поэтому переключать CPU Speed нужно перед захватом; 2. Нежелательно лазить в меню во время захвата по тем же причинам.
Добавлены акселераторы для аудиозахвата, опция For Tape теперь сохраняется.
В VV_5.77 появился режим эмуляции видеоадаптера "Криста-2"
Ramiros, в следующей версии может сделаешь переключение частоты ВИ53 1,25/1,5 МГц?
с AY все гораздо проще, частота 1.75 внутренне делится еще на 16 что дает 110 КГц, или если взять за опорное 3 МГц, то делить надо на 27, при таком коэффициенте деления практически для любой частоты CPU можно легко расчитать делитель, чтобы в рзультате всегда получилось примерно 110 КГц.
Обновил VV_5.78 Исправленны некоторые ошибки в генерации звука, проявлялись в некоторых диаппазонах частот CPU
Подключил к компу джойстик и обнаружились пороблемы с его поддержкой в эмуляторе.
Обновил VV_5.79, изменения коснулись только поддержки реального джойстика. Еще появилась возможность связать реальный джойстик с виртуальными.
Новая версия эмулятора на сайте. Исправлен баг с AY, звук стал чище без щелчков.
вроде бы и на более ранних версиях звук был чистым.
но в любом случае спасибо что эмуль не забрасываете :)
VV 5.84 на сайте: добавлена инверсия и режим моно для AY.
Смотрел игрушки на бейсике, хочу привести один мелкий факт по точности эмуляции. Игра ARKANOID в VV работает нормально ( еще бы :) ), а в b2m ракетка вправо-влево не двигается. Вроде Tim0xA уже как-то писал на примере своей программы, что в b2m состояние каких-то битиков порта 1 по умолчанию неверное, вот еще одно подтверждение.
Где игрушки на бейсике брал? Может, посмотрю, в чём дело.
vector06c.narod.ru, раздел ИГРЫ, СОФТ
---------- Post added at 19:33 ---------- Previous post was at 19:27 ----------
ARKANOID - на 1м диске
Спасибо, понял уже. Эти файлы я, оказывается, ещё не скачивал.
Эмулятор VV 5.85 на сайте. Добавлен захват регистров AY (см. описание в мануале).
Я тоже выложил новую версию, ошибку с битом порта 1 исправил.
Ramiros, какая частота используется в VV для AY? В b2m это видно из конфига (примерно 1.7778 МГц).
1777777,7777777777777777777777778
вообще принцип простой - как известно в AY есть внутрений делитель равный 16, поэтому основная внутренняя частота AY F=1773400/16=110837,5 Гц.
В эмуляторе эта частота получается с помощью деления частоты CPU на коэффициент равный 27 т.е. F=3000000/27=111111,11 Гц. что соответствует частоте Fclock=1777777,8.
Разумеется для другой частоты CPU коэффициент расчитывается по формуле и будет другой. и результат будет наиболее близкий к значению 1773400.
Хмм.. ну так что, кто первый напишет эмулятор Вектора на JS, чтобы заменить им скриншоты в Базисе? =)
Эмулятор VV 5.86 на сайте!
b2m, расскажи откуда в эмуляторе взялись модули *.obj для проигрывания музыки на Векторе?
В приложении еще один модуль для формата RMP. Треки можно взять на диске http://www.sensi.org/~svo/scalar/ware/609/
Код:rmp : loader {
config="Vector06c"
loadaddr=1800
cmd[0].init="mm:000000000000000000000000"
cmd[1].load="Vector06c\rmp.obj"
cmd[1].loadaddr=100
}
stmview.obj - просто переименовал stmview.com с диска stmpro.fdd, его же я использовал в clrs, обрезав начало, чтобы было место непосредственно для clrs.
Остальные - исходники плееров для ZX взяты с сайта Бульбы и адаптированы под порты Вектора. Именно поэтому используется конфигурация с процессором Z80.
А начало положил ivagor, который выкладывал pt3 плеер для Вектора. Как я понял, исходники он брал на том-же сайте Бульбы.
Справедливости ради, пионер реализации концепции плееров к эмулятору на векторе - Роман Пантелеев.
а насколько полна к данному моменту эмуляция вектора ?
это всё, так сказать последний штрих или чтото ещё осталось нереализованным ?
VV 5.90 на сайте! Новый видеодвижок.
Запустил на реале полет, там скроллинг плавный, без рывков. А в b2m и VV (и в ve27) у меня заметна небольшая "неплавность". Может это проблемы моего PC, но пока верю в это с трудом (AthlonX2 3800, GeForce8600GT). Tim0xA, если не сложно, тоже сравни.
Я так понимаю, это из-за разницы кадровых частот. Теоретически, если выставить графической карте 100Гц, то "дёргания" быть не должно, но появится другой эффект, и плавно это тоже не будет казаться. Отсутствие "дёргания" для нашего глаза достигается только в том случае, если в каждом кадре картинка сдвигается на одинаковые расстояния.
Это, конечно, наиболее вероятная причина, но думаю, что она не единственная. В эмуляторе VV устанавливал display frequency 60 Hz, частота обновления монитора (ЖК) 60 Hz, пробовал на двух компах - еще хуже, чем при display frequency 50 Hz. Правда, может я неправильно понимаю, что в VV меняет эта настройка, но предполагаю, что при display frequency 60 Hz прерывания случаются не через 20 мс, а через 16.7 мс. Частоту вектора при этом пробовал 3 МГц, 3.6, 6 - все одинаково (игрушка Полет).
b2m, можешь в экспериментальных целях попробовать сделать частоту прерываний вектора равной частоте обновления монитора, с пропорциональным увеличением тактовой частоты вектора, чтобы число тактов между прерываниями не изменилось? Я говорю не про публичный релиз, просто сам попробуй, если не трудно.
Как вариант, можно добавить фильтрацию, чтобы уменьшить эффект от несовпадения частоты кадров вектора и монитора, хотя это будет тормоз.
Вобщем так: действительно, при 60 Гц не дёргается, НО, только в полноэкранном режиме. В оконном режиме дёргается, но связано это с отсутствием синхронизации с кадровым СИ монитора.
---------- Post added at 22:01 ---------- Previous post was at 21:57 ----------
Кстати, я даже не изменял тактовую частоту. Могу для Вектора вынести частоту кадров (и соответственно частоту прерываний) в конфиг, если надо :)
Может тогда добавишь в конфиг настройку частоты прерываний (для хардкорных бездергальщиков)? Слово какое-то почти нецензурное получилось.
А как насчет фильтра в перспективе?
---------- Post added at 23:02 ---------- Previous post was at 23:02 ----------
Пока я писал, ты уже дописал :)
Ладно, будет тебе частота прерываний :)
Бездергальщик (ударение на букву "а") ;)
---------- Post added at 22:17 ---------- Previous post was at 22:12 ----------
Глядя на полноэкранный режим, так и хочется добавить ещё и "предпочтительный" режим для каждой конфигурации. Интересно, какой из стандартных режимов подошёл бы для полноэкранного Вектора? Требуется наиболее близкое к 576x288 ... Плюс возможность отключать этот дурацкий индикатор РУС/ЛАТ ...
Хотелось бы без StretchBlt, производительность падает...