Прошу обратить внимание на то, что не Alt+F1..F4, а Alt+1..4
Вид для печати
Вопрос по DXSoundNotify:
как я понял, это фича генерирует события, которые нужно как то периодически сканировать загадочной функцией WaitForMultipleObjects(2, m_pHEvent, FALSE, 0); которая есть в С++, в Delphi я такую функцию ненаблюдаю вообще, че посоветуете заюзать?
У меня уже башню сносит, как эти эвенты получить?
Эта функция не может быть в одном языке и не быть в другом. Это же API, оно существует независимо от языков программирования. :)
Получаются эвенты при помощи CreateEvent, их нужно передать DXSoundNotify, а DX будет переодически их устанавливать (signaled state). А ждать возникновения нужно, как ты правильно подметил, при помощи WaitForMultipleObjects.
Ура! :v2_yahoo: с саунд буфером все получилось более менее как надо,
Удивляет только одно, как мало информации на эту тему, а примеров на дельфи ваще нет, пришлось в Сишных кодах разбираться, про книги я ваще молчу :mad:
b2m, Если не секрет, как ты решал проблему синхронизации звукового буффера и самого эмулятора?
у меня прерывание Вектора повешано на MMTimer, а DXBuffer с этим таймером конечно ничего общего неимеет, и хотя их скорости теоретически равны, на практике они немного отличаются, что приводит к тому, что звук постепенно пытается либо убежать вперед, либо отстать, но буффер то небесконечный
Да нет, у меня и на практике скорости равны :) Нет, бывает, что из-за временной нехватки ресурсов процессора эмуляция отстаёт, появляется повторение звукового буфера, но если эмулируется нужное количество тактов - то всё нормально. Или в момент переключения режима экрана, я не стал прерывать звук, тоже заметно.
В раздел "Эмуляторы" выложена новая версия эмулятора Ramiros. Таймер и бипер переведены на новый движок, пауза теперь дублируется на PauseBreak, в настройках клавиатуры разделены.
Балдейте люди! весь звук полностью на новом движке, и AY тоже!
как Tim0xA выложит качайте :)
Ramiros, здорово, звук классный, мне понравилось, большое тебе спасибо :)
если можно, добавь ещё в эмулятор пожалуйста скайнлайн.
также хотел бы видеть возможность записи видео из эмулятора.
и ещё жду утилиту для rom2wav.
больше и пожелать то нечего, чудесный эмулятор :)
Ей богу исправил. После окончания wav через некоторое время должно быть 1.
Добавлено через 3 минуты
Хотя, если бит постоянно считывается, то wav как-бы и не кончается...
Иначе будет снова запрос на открытие файла.
А если бит больше не дёргается, то через 0.2 сек должно быть 1.
Это он так называет, когда сканлинии через строку рисуются: 1-я, чёрная, 2-я, чёрная, и т.п.
это фильтр.
очень популярный в среде эмуляторщиков, создаёт эфект сидения за телевизором.
глаза не так устают.
вот http://en.wikipedia.org/wiki/Scanlines
простейший пример:
и не только моего :)
тогда по идее нужно в одном кадре рисовать четные строки, в следующем нечетные и так далее, чтоб как на телеке, типа черезстрочная развертка
Тогда никакого эффекта не будет. Обычно это просто фильтр: пропустить каждую вторую строку, размыть. Ничего общего с телевизором и уж тем более с удобством для глаз это не имеет -- это одна из таких клевых чудо-вещей, в которые все верят, потому что видели их в кино (или в других эмуляторах).
не ну почемуже, я знаю много людей которые не могут играть на эмуляторах без включенного скайнлайна, жалуются на размытое, мыльное изображение.
просто так ведь такие фильтры не стали бы придумывать :)
дождёмся релиза с таким фильтром, а там видно будет, подскажем как лучше сделать :)
Ramiros, спасибо за новую версию, wav файлы стало удобней открывать, фильтр скайн-лайн в окне смотрится очень хорошо.
но вот в полноэкранном режиме превращается в чёрт знает что, также происходит если менять размер окна растягивая его.
нельзя ли это както исправить ?
Ну а что тут сделаешь? особенность этого фильтра это привязка к разрешению кратному 2. Получается 288 строк изображения и 288 пустых строк требуют разрешения кратного 576 строк по вертикали, иначе какие то сторки невлезут либо повторятся, сглаживание частично решает данную проблему, но тут помоему хрен че сделаешь.
Если есть предложения как решить данную проблему, я готов выслушать.
а если сделать так чтобы при изменении разрешения (размера) экрана увеличивалось (уменьшалось) количество строк на экране и менялся их размер?
формулу такую можно сделать ?
Ramiros, а Direct-кто-там, или OpenGL сами не могут масштабировать surface своими мега-алгоритмами?
Еще, наверное, можно просто оставлять бордюры в фуллскрине. А саму картинку рисовать так, чтобы ее разрешение было кратным. То есть фуллскрин у нас 1680x1050, а картинку мы все равно показываем 720x576 по центру экрана, или 1440x1152 с обрезанием снизу-сверху. В этих строках и у Вектора все равно бордюр.
не, маштабирование они делают, но это все нето, я щас попробовал другой вариант, гасить каждую реальную вторую строку, независимо от разрешения, помоему это лучший вариант
Вот что у меня получилось в произвольном режиме:
см. архив
смотрится хорошо, а полоски не нарушаются при изменении размера экрана ?
интересно а что получится если сделать вертикальные полосы, я такого ещё ни в одном эмуляторе не видел.
в том то и дело, что теперь полоски всегда ровные и одинаковые, а вот их количество меняется в зависимости от размера окна
это хорошо, жаль результат увижу только завтра, мне на работу идти надо.
Раз все равно этот эффект не имеет ничего общего с реальным миром, почему бы не сделать его настраиваемым, или не сохранить несколько вариантов?
Ramiros, а почему TV Effect не распространяется на бордюр?
Ramiros, всё бы хорошо, но помоему полоски получились слишком тонкие, их почти незаметно :(
в оконном режиме ещё более менее различить можно, но в полноэкранном их вообще почти не видно, может их сделать потолще ?
и ещё одна задумка, утилиту Rom2Wav все приняли на ура, а как ты смотришь на создание дисковой утилиты ?
с помощью которой можно было бы создать новый чистый диск или редактировать уже имеющиеся.
там закинуть файлы на диск, удалить с диска. ;)
просто для OpenGL это две разные текстуры, одна с разрешением 512х256, другая 8х288, через фильтр прогоняю только первую, вторую прогонять есть ли смысл при ее разрешении 8 по горизонтали?
Добавлено через 6 минут
дык это уже есть, плагин к FARу, очень удобная штука, лежит в досовском эмуле VE27a называется MI_V004