о крута
Вид для печати
NEO SPECTRUMAN, а зачем? Я от него хотел совсем избавиться...
я его хотел целикомм скачать
- - - Добавлено - - -
да и на новом сайтеке в упор не видно того чего есть на этом
на фоне старого сайтека
новый выглядит как wos помойка (файловый архив)
да еще и https :)
- - - Добавлено - - -
а я привых что можно зайти на ему80
и там то там то
скачать то та то та
а теперь его нету на месте :)
ну и по моему я его ужо скачивал с появлением нового
но умя накрылсо винт...
скорей всего де было именно оно
NEO SPECTRUMAN, уговорил, постараюсь не удалять ;)
Ссылка на старый с нового есть, если что...
Ответ на сообщение из соседней темы
Согласен, возможно такое, более характерно для слабых компьютеров. В текущей версии действительно все в одном потоке...Цитата:
* Эмуляция, судя по всему, идет в основном потоке, поэтому при переключении на другие окна, ресайзе и прочих действиях с GUI щелкает звук.
* При ресайзе окна изображение не отрисовывается, и сложно смотреть в реальном времени, устраивает изображение в новом масштабе или нет.
Планирую в ближайшее время кое-что попробовать сделать в этом плане.Цитата:
* Если ставить неквадратную точку, то идет целочисленное масштабирование, которое плохо смотрится. Если же включить слгаживание, то изображение такое замыленное, что тоже смотреть неприятно.
Принято, Qt по умолчанию как-то не очень хорошо себя ведет в этом плане, посмотрю. что можно сделать.Цитата:
* Информация в статус-баре (внизу экрана) очень сжато друг к другу находится, хорошо бы разделить разные поля промежутками побольше.
300 мс (треть секунды) - это огромное расхождение, такого точно не наблюдал и никто не жаловался.Цитата:
* Похоже, звук отстает от изображения эдак на 300мс точно.
Можно узнать примерную конфигурацию компьютера: процессор, видеокарта, какие настройки выставлены в эмуляторе (fps, vsync, частота дискретизации), какое значение fps отображается в статусной строке?
- - - Добавлено - - -
Да, и загрузка процессора при работе эмулятора еще интересует...
Компьютер у меня быстрый и вполне современный.
Core I3-6300 3.8GHz.
Видюха встроена в проц. Но для 2D этого хватает за глаза. Мой Emustudio, например, летает.
Звуковуха Audigy 2. Старовата, но хороший звук дает, поэтому я ее держу. На других эмуляторах ничего не щелкает. Но они работают в фоновом потоке, а не в потоке GUI.
- - - Добавлено - - -
Предположу, что всякие кросплатформенные прослойки между WinAPI и эмулятором типа QT могут вносить свои глюки или тормоза.
У меня-то на чистом WinAPI написано.
Тоже щелкает звук. Xeon E5450 3GHz. Видео GeForce 9400GT. Звуковая Sound Blaster Audigy SE.
Настройки эмулятора по-умолчанию из архива в соседней теме. FPS 60. Загрузка CPU 25%. Установил маску схожести в диспетчере задач на одно ядро - грузит его на 100%.
Вполне достаточно :)
Если будет возможность, неплохо бы потестировать хотя бы на встроенной в материнку звуковухе в плане задержек (на щелчки вряд ли повлияет).
Это да, еще и руки бывают связаны ограничениями используемой прослойки. Чего, например, стоит хотя бы ограничение Qt на возможность отрисовки только из основного потока или возможность выводить звук под windows только посредством wavout. Хотя все решаемо, конечно. Надеюсь, со временем руки дойдут довести до ума...
- - - Добавлено - - -
Бывает такое на картах NVidia, всегда загрузка около 100%. Попробуй запустить с параметром:
Загрузка уменьшится?Код:Emu80qt.exe -angle
Загрузка упала до 6%.Код:Emu80qt.exe -angle
Вопрос очень объемный, но если в 2 словах, то сейчас синхронизация происходит за счет звука, а не видео (что было бы логичнее). Если интересует что-то более конкретное - поясню. Я бы спросил, как у тебя сделано, но боюсь, что в моих реалиях этот вариант будет неприемлем ;(
Установкой соответствующего флага в Qt, отвечающего за ожидание vsync при отрисовке. Особых вариантов Qt не оставляет... Отсюда и 100% загрузка процессора, обсуждаемая чуть выше - это происходит где-то в недрах Qt или даже скорее видеодрайвера, как раз во время ожидания vsync...
Надо будет еще вернуться к этому вопросу и попробовать переработать синхронизацию, сохранив кроссплатформенность. Можно попробовать задействовать еще SDL специально для вывода звука. Я вообще удивлен, что в текущем варианте удалось добиться удовлетворительных результатов с использованием исключительно возможностей Qt с его жесткими ограничениями...
Приветствую!
При необходимости, если таковая будет, могу тестовую версию с Qt и Корветом затестить в сборке для MacOS.
Тогда щелчок звука логичен. Когда хватаешь окошко, цикл сообщений начинает обрабатываться внутри системной функции ресайза/перемещения окна. Поэтому главная твоя программа в основном потоке как бы подвисает, пока оконная функция закончит ресайз/перемещение, и не возвратит управление твоему основному циклу. Не знаю, как он там в реалиях QT устроен. Если аудиобуфер доиграл, а главная программа висит из-за того, что основной поток залип в цикле ресайза/перемещения, то тогда упс.
Titus, ну да, примерно так. Причем с этим мало что можно сделать, так как есть жесткое ограничение: рисовать в Qt можно только из GUI-потока. Так что даже если сделать собственно эмуляцию в отдельном потоке, в случае ресайза это не поможет :( Хотя, уже Qt6 вышел, можно посмотреть, не изменилось ли там что-то в этом плане, а также не появилось ли что-то полезное для синхронизации и звука. Но что-то я пессимистически настроен по этому поводу, уже сколько лет никаких важных изменений...
Titus, мультиплатформенность. Сейчас все, что нужно для запуска на другой ОС - перекомпиляция.
А поддерживать несколько версий GUI под разные API слишком сложно...
Посмотрим, простор для оптимизации всегда есть, не все так плохо. Вот и сейчас посмотрел внимательнее документацию - оказывается и в Qt можно рисовать не в GUI-потоке, если использовать вызовы OpenGL вместо встроенных средств Qt. :) Просто я после первой реализации уже почти 4 года не возвращался к этому вопросу, увлекся поддержкой новых компов, надо будет заняться в этом году...
Titus, нравится нам это или нет, но все больше всего переходит в web, вот и эмуляторы туда же...
Ну да ладно, а пока мини-опрос: кто-нибудь пользуется qt-версией эмулятора под Windows XP? Нужно ли и далее обеспечивать возможность работы под этой устаревшей ОС?
DDp, ок, постараюсь сохранить пока совместимость с XP. А неработоспособность конфигурациии Корвета под XP я тоже уже заметил, хотя и не успел пока разобраться, в чем дело... Странно как-то...
Учитывая, что у нас форум ретрокомпьютерщиков, логично, что может иметься некоторое число пользователей, которые все еще сидят на XP, но при этом хотят пользоваться всевозможными новыми эмуляторами.
Поэтому поддержка XP именно в эмуляторах выглядит логичной.
Я, например, в EmuStudio поддерживаю XP, хотя приходится тянуть некий хвост сложностей из-за этого. Например, рисовать через DirectDraw (хотя, это наследие еще Win 98), хотя он и на Win 11 прекрасно летает и поддерживается, и, думаю, вряд ли будет выпилен.
Кроме того, на Win Vista и далее появилось много новых интересных возможностей для эмуляторов. Например, синхронизация с кадром через DWM, что гораздо оптимальнее и менее затратно для процессора. Для аудио появился WASAPI, что поинтереснее, чем DirectSound. И приходится поддерживать и то, и другое. И можно без хлеба.
Я видел что в других эмуляторах это решают с помощью "плагинов".
В своём UKNCBTL я сделал такую попытку - рендереры подключаются как динамически линкуемые DLL, отдельно реализован рендеринг для VFW, DirectDraw, OpenGL. Но дальше разделения это не пошло - надо было дальше развивать отдельные рендереры, на это времени уже не нашлось.
А у меня не совсем плагин, у меня статически линкуемая "прослойка", но не только для рендеринга, но и звука, клавиатуры, настроек и прочего. Пока 2 варианта - Qt и SDL/wxWingets. Теоретически можно сделать и для чистого WinAPI, но это я уже не потяну, хотя и есть такой соблазн: и так эта унифицированность тянет за собой кучу проблем, не говоря уж о том, что нужно вносить изменения, не касающиеся собственно эмуляции, параллельно в два места...
А так, конечно, native-приложения всегда можно сделать более эффективными. Дать нам волю, мы бы вообще может до сих пор на ассемблере писали, напрямую работая с железом ;)
- - - Добавлено - - -
Ну, вот как раз библиотеки типа SDL и помогают это делать, просто указываем библиотеке, через что выводить, и все :)
Вернусь к своей просьбе о поддержке файлов прошивки плм, хотя бы для карт памяти, у меня например , модифицированная прошивка позволяющая использовать карты памяти с 32кб пзу, которые поддерживает данный пк.
Sancho45, сейчас распределение памяти берется из файла mapper.mem, в принципе, уже в текущем состоянии эмулятора, думаю, без проблем можно использовать другую прошивку, если на ее основе сгенерировать актуальный mapper.mem и указать его в конфиге вместе с измененными прошивками ПЗУ. Может быть, набросать утилитку для преобразования прошивки ПЛМ в формат, понимаемый эмулятором и на таком варианте и остановиться? Хотя можно и в эмулятор встроить разбор прошивки... Но в любом случае мне скорее всего понадобится помощь в интерпретации прошивки, сейчас не помню детали, но вроде бы некоторые моменты мне были не совсем понятны...
Насчет z80 и доп. порта вопрос еще актуален?
Лучше конечно встроить. По поводу z80 и портов актуально, использовал в другом эмуляторе, но там отладчик меня не устраивает. Этот эмулятор еще не пробовал, в связи с событиями у нас в стране и тд, сейчас на отдыхе) В феврале займусь.
Sancho45, для изменения типа процессора в korvet.conf заменить
наКод:Cpu8080 cpu
Для добавления системного порта в порты процессора добавить ниже что-то вроде:Код:CpuZ80 cpu
где 0x7F - адрес порта.Код:AddrSpace ioAddSpace
ioAddrSpace.range = &addrSpaceSelector, 0x7F, 0x7F
cpu.ioAddrSpace = &ioAddrSpace
В общем, доберешься до эмулятора - пиши сюда или в личку. Думаю, что все достаточно оперативно настроим, что касается процессора и адресного пространства.
За поддержку прошивки ПЛМ видео пока не возьмусь, но можно будет обсудить и, возможно, запланировать на перспективу...
z80 заработал, порт - нет