С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
в общем проект создан на sourceforge.net. Название "OpenVector". Homepage: http://openvector.sourceforge.net/
Репозиторий SVN: https://openvector.svn.sourceforge.n...oot/openvector
Пока пуст, на днях залью исходники. Репозиторий на чтение доступен для всех. Желающие поучаствовать в разработке - напишите свои sourceforge-аккаунты, я добавлю вам права на модификацию исходников. Все технические вопросы уже будем решать на форуме разработчиков
Новая версия VV на сайте! Продолжается борьба за быстродействие. Оптимизирован код.
Опубликованы исходники OpenVector. Пока имеет:
- эмулятор z80
- видеоадаптер
- клавиатура (от реальной клавы еще не работает)
- звуковой адаптер (нифига не работает как надо)
За быстродействие ни библиотека .NET ни язык C# должным образом бороться не позволяет, поэтому делаем ставку на хороший объектный дизайн, читабельный код и кросплатформенность.
Сейчас по умолчанию загружается "Болдер-М".
Исходники лежат в репозитории SVN по адресу: https://openvector.svn.sourceforge.n...envector/trunk
Вопросы к разработчикам эмуляторов: как вы победили звук? Какой размер буфера устанавливали? Какой Sampling Rate? если возможно, выложите алгоритм или кусочек исходника для работы со звуком. У меня есть подозрение что быстродействия библиотеки .net не хватит и придется реализовывать звук через unmanaged код
Необходимо точно соблюдать количество проэмулированных тактов в еденицу времени. Позицию в накопительном буфере можно время от времени корректировать, чтобы к моменту записи в буфер воспроизведения гарантированно заполнялась половина накопительного буфера (которая копируется в буфер воспроизведения).
У меня 1/10 сек.
У меня моно, 8 бит, 44100Гц
Соответственно размер буфера 4410 байт.
Не верю.
спасибо!
по поводу быстродействия - при размере буфера в 1/10 получается что переключать надо 20 раз в секунду. У NAudio уже щелчки появляются и много. У DirectSound вроде тоже (поменьше). Но это победимо, я думал размер буфера должен быть значительно меньше, значит вероятно косяки с синхронизацией тактов эмуляции и реального времени.
в VV буфер полностью обновляется за 4 прерывания и при 8 bit 44100Hz Stereo =(44100х2/50)х4=7056 byte. реализовано через DirectSound. т.к. буфер организован по кольцу и пока одна половина играет, вторая обновляется, получается задержка в два прерывания (или кадра).
Другая проблема с которой пришлось столкнуться, это синхронизация буфера с эмуляцией процессора (вернее прерываний которые возникают каждые 1/50 сек).
если прерывания эмулируются через например ММ таймер, то рассинхронизация ММ таймера и DirectSound-а приводит к трескам в звуке, поэтому я сделал эмуляцию прерываний от того же DirectSound, а ММ таймер использую только для подсчета FPS.
Здесь можно скачать актуальные версии Virtual Vector (VV)
VV 6.09 на сайте!
Подскажите с помощью какой проги можно собрать отдельные файлы в образ флопа? Желательно чтоб она запускалась под ХР
с помощью total comander и плагина к нему можно собирать дискеты для вектора.
хотя было бы намного лучше еслиб авторы подсуетились и написали win прогу для таких дел
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)