СКАНДАЛЫ ИНТРИГИ РАССЛЕДОВАНИЯ
Вид для печати
СКАНДАЛЫ ИНТРИГИ РАССЛЕДОВАНИЯ
да, часть кода взята из Unreal - таблицы для флагов z80, код реcэмплера для звука, также недавно заюзал миксер AY, т.к. в старом ZXMAK2 миксер работал некорректно. Код ресэмплера и миксера отрефакторен, ресэмплер был немного пофикшен т.к. в оригинале индекс иногда вылетал за пределы массивов. В ресэмплере unreal были какие-то костыли, насколько понял для обхода проблем с индексами, но они не работали при изменении частот. Ну и "говна" выброшены :smile:
Да, еще амплитуда AY выровнена до полного диапазона, т.к. в оригинале используется только половина диапазона, поэтому звук тихий.
Так что звук в ZXMAK2 сейчас такой-же как в Unreal, есть какие-то мелкие отличия из-за фиксов и рефакторинга, но в общем должно быть одинаково.
Захардкоженые таблицы z80 хотел заменить на вычисляемые, но пока до этого не дошел.
Сейчас сделал новый многопоточный рендерер для видео, проблемы с ошибками при ресайзе удалось полностью устранить. Тестирую... :smile: нужно еще пофиксить детектирование перемещения окна на другой дисплей, чтобы рендерер автоматически перестраивался на другой адаптер. Новый вариант пока не комиттил, в процессе тестирования :)
Новый рендерер цепляется за HWND и поток UI может вообще не использовать - все плавненько и красиво :smile:
Решение оказалось простым - сабклассинг hwnd для перехвата сообщений, поэтому странно что несмотря на обилие вопросов в инете по проблемам Direct3D в многопоточном режиме, ни одного решения не опубликовано.
Теперь рендер видео, рендерер звука, эмуляция машины и UI - все работают асинхронно, в отдельных независимых потоках синхронизируясь только во время смены кадров :smile:
После фикса для поддержки смены видеоадаптера на лету, хочу добавить интерполяцию цвета для ресемплера частоты кадров дисплея и поддержку фильтров на шейдерах, которые можно будет просто подсовывать эмулятору в виде исходного текста на HLSL. Будет типа эмуляция сетки ЭЛТ трубки, всякие цветовые эффекты (black'n'white, sepia, inverse, etc), motion blur и т.п. :biggrin:
Дальше планирую отрефакторить архитектуру, в особенности UI, т.к. сейчас все слишком сложно и запутано.