ivagor, а при каких обстоятельствах проявляется заикание звука на AY?
Проблема специфична для Z80, Вектора в целом или для определенных программ?
Вид для печати
ivagor, а при каких обстоятельствах проявляется заикание звука на AY?
Проблема специфична для Z80, Вектора в целом или для определенных программ?
Пока слушал только вектор. Похоже проблема была в vsync, отключил его в настройках эмулятора и стало практически нормально. Хорошо было видно в рекламе диззи, особенно той, где бегущая строка. Звук заикался и строка тормозила. Рекламу диззи смотрел в конфиге вектора с ВМ80.
очень даже хорошо получается эмуляция вектора в emu80.
запускал различные игрушки - вылетов не обнаружил.
только вот звук как-то не то.
дема skynet сразу определяет что это эмулятор и звук там просто ужасен в некоторых сценах.
ZEman, skynet запускался в обычной конфигурации или с Z80? В варианте с Z80 я тоже слышу проблемы, но не изучал пока, причина в эмуляторе либо в самой деме.
Если проблемы со звуком были в обычном "Векторе", подскажи, на каких именно сценах - внимательно послушаю еще раз.
в обычной, без Z80.
смотрите например сцену с летящей кометой в том-же vv звук намного лучше и чище получается.
В процессе работы над эмулятором понял, что один аспект эмуляции экрана Вектора остался неисследованным - позиция отображения собственно графики.
Набросал еще один тест, во всех эмуляторах результаты разные, неплохо бы проверить на реале.
В эмуляторах результаты следующие:
v06x - 1-3
vv - f-1
ve27 - 2-4
emu - нет
emu80 - пока ерунда какая-то, буду смотреть ;)
На 02-ом
Скрытый текст
Получается, что правильно пока только на древнем VE 2.7 Романа Пантелеева ;)
Сохранилась у кого-нибудь 2.8, кстати? А то я на днях оживил старенький ноут под DOS/Win98... :)
Вроде это последняя версия. Тут не полный комплект, только отличающиеся файлы.
Сегодня добрался до этой игрушки. Действительно, проблема была при опросе клавиатуры, причем ошибка обнаружилась в заимствованном коде - реализации Z80 из проекта YAZE by Frank D. Cringle, конкретно ошибка была в инструкции INI.
Поправил, все текущие изменения на guthub, но тестовую сборку не делал. Надеюсь до конца месяца подготовить уже релиз.
Добрался до перехватов магнитофона в эмуляторе и понял, что мне не хватает опыта работы с Вектором и в частности с его бейсиком.
Как я понял из сообщений ivagor на форуме, общепринятое расширение для ленточных файлов бейсика 2.5 - cas, несмотря на то, что фактически это формат rk?
Я не нашел ни одного cas-файла для примера, все basic-программы, ссылку на которые недавно выкладывал svofski, имеют формат bas.
Насколько вообще распространены cas-файлы? Если их нет, зачем нужны перехваты в кассетном бейсике? Раз в других эмуляторах перехваты реализованы, эти файлы все-таки существовали?
Есть ли какие-то конвертеры из cas в bas и обратно (для Вектора или PC)? Можно ли как-то запустить дисковый бейсик после кассетного или наоборот, сохранив программу в памяти?
И еще вопрос: есть ли эмуляторный аналог формата, в котором читает с ленты загрузчик (кроме wav/csw)? Нужно ли его поддерживать, существуют ли файлы в этом формате? Есть ли какие-то утилиты для сохранения в нем?
ivagor, спасибо, походил по ссылкам, многое прояснилось :)
Не смог скачать архив с утилитами saverom, saveasm, savebas, savemon отсюда:
https://code.google.com/archive/p/ve...wnloads?page=2
Получаю AccessDenied, на github же у svofski не нашел...
Upd:
Нашел здесь:
http://sensi.org/scalar/ware/693/
Pyk, Вот ссылка на мою коллекцию ленточных файлов: https://cloud.mail.ru/public/EF9n/YdKLaE3Db
Ramiros, спасибо за коллекцию!
Подскажи, пожалуйста, для какого бейсика, например, файл MySoft (BAS)\carts.cas ?
При попытке загрузки в Basic 2.5 выдает ошибку "Мало памяти".
перед загрузкой надо выполнить:
screen 2,7
himem 40959
т.е. расширить память за счет видео ОЗУ
Сделал новый релиз Emu80.
https://zx-pk.ru/threads/27488-emu80...=1#post1006126
Что сделано по части "Вектора" по сравнению с предыдущей сборкой:
- вроде бы точная эмуляция экрана, все тесты пока проходят ;)
- исправлена ошибка в эмуляции AY, звучание сейчас должно соответствовать оригиналу
- исправлены все длительности команд Z80, в том числе они должны быть правильными и на "Векторе"
- сделана загрузка файлов Бейсика (bas и cas) с помощью встроенного загрузчика (Файл->Загрузить и выполнить, Alt-F3), так же, как это уже сделано для ПК8000
- перехваты для Бейсика, Монитора и эмулятора РК/Микроши
- кнопка на тулбаре и горячая клавиша для загрузка RAM-диска
- поддержка мыши в отладчике
- сброс счетчика тактов процессора по точке останова в отладчике
- устранены вылеты
Развитие Emu80 радует, но в отладчике есть шероховатости.
1. Не смог поставить бряк по F9.
2. Хотелось бы, чтобы счетчик тактов перезапускался по F4/F7/F8 и по бряку (последнее я не пробовал из-за пункта 1).
ivagor, ну, я же писал, что мог что-нибудь сломать ;)
Сделаю чуть позже новую сборку, а пока можно поставить точку останова двойным щелчком слева от адреса.
Поясни, по каким событиям стоит перезапускать счетчик тактов.
Если сделать так, как ты предлагаешь:
F4 - Here,
F7 - Step,
F8 - Over
и по бряку,
то уже и не останется действий, по которым счетчик не будет перезапускаться ;)
По моим ощущениям, по шагам F7 и F8 перезапускать не нужно, по бряку - обязательно, насчет F4 - не уверен...
Голосую обязательно за бряк и F4, без F7 и F8 для данной задачи в принципе можно обойтись.
Багфикс-релиз 4.0.334
- Вернул работоспособность F9 в отладчике
- F4 (Here) в отладчике сейчас сбрасывает счетчик тактов процессора
Еще не закончилось время года, когда внезапно можно оказаться в электричке, или в зоне плохого мобильного интернета без Бейсика 2.61. Чтобы не пришлось любоваться природой, или радоваться человеческому общению, я хоть и немного наспех, но подготовился к такой ситуации:
v06x для Андроида, в виде apk, очень сырой, дается as-is, пока без особых видов на улучшение:
http://sensi.org/~svo/b/v06x/v06x.apk
Предполагаемый способ применения:
https://i.imgur.com/0ovNQuo.png
https://i.imgur.com/3mqvW3J.png
В комплекте value added software: Бейсик 2.61 от ivagor-а, который поддерживает восьмеричную нотацию констант.
надо убрать "проверку на сертификацию".
KTSerg, эта версия не будет работать на Андроиде младше 5.0.
А исходники этой версии где-то доступны?
Сюда, конечно же, смотрел, но ветки для Андроид не нашёл...
У меня планшет с Андроидом 4.3; эмулятор Спектрума Spectacol там вполне работоспособен, ощущения от игры в R-Type с джойстиком прям как в старые добрые времена :)
Вот и подумалось - а чем "Вектор" хуже? Если сам движок эмуляции не требует чего-то специфического, доступного только в пятом "андрюше", то, может быть, есть вариант запилить полноценную Android версию? Производительности PowerVR SGX 544MP и Intel® Atom™ Z2560 Dual-Core, 1.6 GHz должно бы хватить.
Как вариант, можно подумать о том, чтобы переложить часть работы по формированию картинки на GPU - например, каждая экранная плоскость копируется в текстуру, а пиксельный шейдер уже формирует итоговые цвета пикселей, получая на вход палитру цветов как один из параметров.
x-code, есть сорцы, просто они чуток разъехались с десктопной версией и, как я сказал, пока не нахожу сил их свести обратно в одно. Для этого требуется определенный peace of mind. Формирование картинки не такое уж требовательное, arm хорошо жонглирует битами. У меня наибольший тормоз это аудиофильтр, но он с неоном тоже справляется.
В общем спасибо за напоминание, я постараюсь может быть сорцы выложить отдельной веткой. Ну разъехались немного и пусть.
Мощный релиз, мощь которого в основном в том, что ничего не должно было измениться.
- кроме фикса баги, которую нашел ivagor
- тотальный морж андроидной версии, теперь все версии собираются из одних сорцов
- скрипты для запуска бейсика итд упакованы вместе с дистрибутивами и даже есть батнички и скриптики
- бонус - бинарные сборки для всех поддерживаемых платформ
v06x version 3-theydo
Я не знаю, какая минимальная винда, но это 32-битная сборка с минимумом зависимостей. Я думаю, она даже на XP может запуститься (моя виртуальная XP застряла в activation loop-е, а только ради такой проверки устраивать битву с ней не хочется).
Минимальный Android 5.0, ничего не изменилось (надеюсь).
Нашел Windows XP, запускается. Надо бы переименовать дистрибутив в win32, я машинально его назвал win64.
После обсуждения в операционных системах сделал тестик (исходник прилагается) ВВ55 перед и после рестарта. По схеме вижу, что ВВ55 не ресетится, но у авторов эмуляторов мнения разделились. Переход по "стадиям" по нажатию БЛК+СБР или F12 в эмуляторах. Полная стадия - 8 строк цифр и Pass complete. Потом можно еще рестартовать и пойдет по новой.
В эмуляторе emu есть возможность вызвать режим "Debug" с помощью горячей клавиши, или опцией (из командной строки) сразу перейти в режим отладки без запуска загруженной программы?
Ваял программку, накосячил по мелочи, но не мог понять где, после запуска программы, через 1-2 сек, программа глючила с уничтожением своего кода.
При запуске в эмуляторе не успевал выбрать в меню режим отладки, что-бы посмотреть, что там творится... :(
Из командной строки - опция /d
Если отладчик не был запущен, то будет пауза, но в этот момент тоже можно вызвать отладчик.
Тоже можно - опция /brk XXXX (16-ричный адрес)
Вот несколько примеров:
emu.exe /d
emu.exe /c "Orion-128" /d
emu.exe /c "Orion-128" /brk F842
emu.exe /c "Orion-128" /brk @my.brk
1. Вызов отладчика, без выбора конфигурации
2. Более полезный вариант, с автоматическим выбором конфигурации
3. Ещё более удобный вариант, с указанием точки останова
4. Вариант с сохранением точек останова в файле
Подскажите, как в VV (7.02) загрузить файл с кассеты в реальном времени с реального магнитофона?
Нужно оцифровать несколько кассет.
Скажите, насколько точна работа Вектора в MiSTer?
https://github.com/MiSTer-devel/Vector-06C_MiSTer
То есть даже вопрос скорее - а если проверить игрушку под Мистером, можно ли считать что и под настоящим Вектором она тоже будет точно так же работать?
Желательно поправить в VV такты для семейства команд jr в конфиге z80. Когда переход есть, то они должны занимать на векторе 16 тактов (не 12), т.к. там по циклам (из даташита): 4+3+5, т.е. на векторе будет 4+4+8=16.
DJNZ не проверял, но на всякий случай обращу внимание. При наличии перехода (B<>0): 5+3+5, на векторе - 8+4+8=20 тактов. Без перехода (B=0): 5+3, на векторе - 8+4=12 тактов.
Еще в отладчике VV, по крайней мере в конфиге z80, после изменения значения PC жму Next и выполнение программы продолжается не с нового адреса, а как будто изменения PC не было.
Написал и задумался - третий цикл в jr и djnz без обращения к памяти, там торможения не будет. И точно, растактовки amstrad cpc говорят, что:
1. jr - 12 тактов; условный jr при невыполнении условия - 8 тактов.
2. djnz b<>0 - 16 тактов; djnz b=0 - 12 тактов.
Получается в VV jr правильный (djnz так и не проверил), а вот emu80 надо поправить.
- - - Добавлено - - -
Допроверил djnz, в итоге вот что получилось.
1. VV
1.1. Надо поправить djnz при b=0 (когда нет перехода), должно быть 12 тактов вместо 8.
1.2. У меня остался вопрос по отладчику, почему изменение PC не влияет на следующий адрес выборки команды.
2. Emu80
2.1. jr и условные jr при наличии перехода должны быть по 12 тактов вместо 16.
2.2. djnz при b<>0 (когда есть переход) должно быть 16 тактов вместо 20.