С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Я уже начинаю подумывать отказаться от кроссплатформенности. На винде есть и анрил, и люди, которые его достругивают. Только вот маководы обделёнными останутся. Для других платформ QT, вроде как, нет.
Вобщем, попробую сначала на иксах рисовать. Если возникнут большие проблемы, буду окучивать OpenGL.
Все любят гипножабу
у людей использующих Compiz и так проблемы -- они используют Compiz
но есть куча людей, у которых просто видяха слабая или дрова без нормального OpenGL, среди линухоидов это обычное дело.
вообще, наверняка и средствами QT можно увеличить производительность -- к примеру
сперва копирует картинку, а потом ресайзит, всё это стандартными тормозными QT-шными средствами. если вместо этого прямо во время эмулируемого хода луча совать пикселы в буфер уже с нужным зумом и в нужном формате, а потом загружать это дело в QPixmap через loadFromData, без конверсии и участия QImage-ей, по идее должно получиться быстрее.Код:QImage rimage = image.copy(0,0,xscrsize,yscrsize); QPixmap pixmap = QPixmap::fromImage(rimage.scaled(int(xscrsize*zoom),int(yscrsize*zoom),Qt::KeepAspectRatio,Qt::FastTransformation));
Последний раз редактировалось boo_boo; 26.02.2009 в 04:44.
Есть такая идея. Как выяснилось, основной тормоз - в лепке QPixmap'а из QImage с ворочанием большого объёма данных. Рисовать по 4 точки на image при двойном увеличении я пробовал. Зум его самого тут почти не при чём.
PS: Рисовать по иксам бросил, вернулся на QT.
PPS: Вделал загрузку SCL, сегодня попытаюсь в SCL сохранять.
PPPS: Самооценка - эмуляция Z80 удовлетворительная, но тормозная. Эмуляция AY - отстой.
added
Новое:
- чтение и запись SCL. формат при записи определяется по расширению. неизвестное - это TRD. В SCL сохраняются только существующие файлы (удаленные выбрасываются).
- F2: записать диск A.
- 2 масштаба - двойной и обычный. 3 режима отображения бордюра: нет, половинный и полный
- Немного подрихтовал диалог открытия, чтобы несуществующие файлы не открывать.
Последний раз редактировалось SAM style; 30.06.2009 в 18:13.
Все любят гипножабу
Next
- исправлена работа огибающей. теперь она хоть как-то звучит, хотя хрипит на некоторых частотах и, как мне кажется, не соответствует реалу чуть более чем наполовину.
- переделал формирователь звука, ибо по отжранию он был на 2 месте после формирователя картинки. кажись, чуть быстрее стало.
- по F2 можно записать снапшот 128К (sna)
- по F9 записываются измененные диски. Формат записи по прежнему определяется по расширению (trd, scl)
added
Меня терзают смутные сомнения насчет снапшотов.
Если на момент его сохранения включена 2я или 5я банка, то она дублируется в первых 48К и снапшот становится на 16К длинее? Или как?
Последний раз редактировалось SAM style; 30.06.2009 в 18:13.
Все любят гипножабу
Предпраздничное. Скриншоты.
В вкладке video настроек можно выбрать, куда и в каком формате сохранять (все, которые умеет записывать QT + наш scr), а также один из пунктов newart'a - комбо-скриншотинг. делается определенное кол-во скриншотов с периодом в столько-то прерываний.
F8 - сделать одиночный скриншот (не работает, пока идёт комбо)
F7 - запустить комбо. сообщение его старте и окончании плюётся в консоль.
В scr записывается тот экран, который включен на момент прерывания. В остальные форматы пишется то, что видно на экране.
Последний раз редактировалось SAM style; 30.06.2009 в 18:13.
Все любят гипножабу
Next.
Переключение между архитектурами (ZX48, ZX128, Scorpion). Соответственно, меняются их РОМ-сеты (в настройках этот комбобокс ничего не делает).
А теперь внимание! Начался файл настроек. Для нормальной работы надо сделать папку ~/.samstyle/samulator (эмуль ее сам делает, но ничего туда не пишет) и создать там файл samulator.conf такого примерно такого содержания:
Последние 3 параметра особенно важны, т.к по умолчанию ни одной машине ромсета не присваивается. Файлы ПЗУ должны лежать в ~/.samstyle/samulator/roms и только там. Подозреваю, мера эта временная. Сами прошивки прилагаются.Код:[ROMSETS] name = ZX48 basic48 = 1982.rom trdos = trdos.rom name = Pentagon128K basic128 = pentagon.rom:0 basic48 = pentagon.rom:1 trdos = trdos.rom name = Scorpion basic128 = scorpion.rom:0 basic48 = scorpion.rom:1 shadow = scorpion.rom:2 trdos = scorpion.rom:3 zx48romset = ZX48 zx128romset = Pentagon128K scorpionromset = Scorpion
PS: Настройки обратно не пишутся.
PPS: Сообщайте о найденых багах (кроме тормозилова, с ним буду решать позже), предлагайте предложения по улучшению.
Последний раз редактировалось SAM style; 30.06.2009 в 18:13.
Все любят гипножабу
Next
Новое:
- Пишутся-читаются основные настройки (~/.samstyle/samulator/samulator.conf)
- Навигация по ленте. Двойной клик на списке меняет текущий блок (заголовок - тоже блок!)
- Возможность отредактировать ленту (поудалять блоки )
- Возможность сохранить ленту в тапку. Сохраняется как из настроек, так и по F2, если она есть (число блоков <> 0)
- Возможность записи на ленту.
- Индикатор чтения и записи ленты (зеленая и красная касетки)
Кнопульки:
F4 - старт воспроизведения ленты или останов
F5 - старт записи ленты или останов
Новые блоки при записи добавляются в конец ленты. Данные для блоков берутся из выходного сигнала на мофон. С десяток тестов показал, что при стандартной записи данные сохраняются нормально с небольшим разбросом в длине сигналов (по сигналу +-3 тика, у меня расширено до +-10).
Последний раз редактировалось SAM style; 30.06.2009 в 18:13.
Все любят гипножабу
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)