![]() |
про видеоконтроллер
возникла мысль написать эмуляцию сабжа, и не чтобы как-то работала, а чтобы работала более-менее по принципу железки. но принципы эти я представляю себе смутно. плз, прочитайте, и поправьте, где я неправ ;)
как я это понимаю: прорисовка экрана начинается по фронту кадрового синхроимпульса. экранная картинка выводится по линиям, два пиксела за такт. по фронту импульса гашения (который формируется по спаду строчного синхроимпульса) рисование очередной линии прекращается, луч переходит к началу следующей строки, и по спаду импульса гашения (пентагон: 32 такта) начинает ее рисовать. выводится верхняя часть бордюра (64 линии; чем, интересно, это определяется?). потом начинается отрисовка 192-х линий, включающих в себя спектрумовский экран и полоски бордюра по сторонам. сперва рисуется левое бордюрное ухо, ширина которого (пентагон: 36 тактов) определяется, кажется, неким счетчиком контроллера, назову его "D"; затем 256 пикселов картинки -- контроллер берет из памяти байт пикселов, байт атрибутов, сохраняет их в своих регистрах, рисует, и так каждые 8 пикселов. потом по счетчику D снова начинается рисование бордюра -- правого уха, заканчивается оно с приходом строчного синхроимпульса, и так все 192 линии. теперь опять рисуется бордюр, нижняя его часть, до тех пор (пентагон: 48 линий), пока не припрется кадровый синхроимпульс, по спаду которого начинается обратный ход кадровой развертки (3584 такта). ну а потом все повторяется сначала. теперь непонятка: число тактов на строку (включая обратный ход) у всех спеков, насколько знаю, одно. а количество строк -- разное, то есть величина фрейма разная тоже. но ЭЛТ-то не прикажешь, он должен отрабатывать свои 50гц... чем это компенсируется, неужто частотой тактового генератора? |
Quote:
а во-вторых это вполне компенсируется разной частотой кадров. Т.е. например, у Пентагона, из за его 320 линий в кадре, вместо 312, кадровая часота несколько заниженная. А монитору все равно - он синхронизируется под любую в опредленных пределах (45..55Гц, например) |
Titus правильно все сказал. а вообще цель всего это безобразия какая?
|
Quote:
|
Quote:
|
Quote:
|
К тому же все которые мультиколорные как раз и эмулят развертку.
|
Quote:
Quote:
|
Quote:
|
а классические компы - будут? а если нет, то и ничего интересного. В унрил все уже есть для СССР-ских клонов, в плане мультиколора. И где там "пару тактов" добавлено?
|
Quote:
в анриле эмуляция ориентирована на результат, а не на повторение архитектурных фишек компа, снаружи это незаметно, но в коде разобраться сложно, все между собой перемешано... ну и анрил только под винды, а мне тут в линухе тоскливо без нормального эмуля :rolleyes: |
На чем писать собираетесь?
|
Ну на чём писать выбора не так много, вопрос скорее о фреймворках/либах.
|
Quote:
Quote:
|
Если на чистом Си, то что будет с GUI? Консоль это конечно правильно, но увы не всегда удобно.
SDL конечно естесственный выбор, но вот насчёт NDS кажется придётся подождать, сыровато вроде. Тем более оно неофициально, и этого нет даже в транке 1.3? |
Quote:
2boo_boo: Звук тоже надо в SDL. Хочу этот эмуль потом нормально портануть без всяких там мучений с /dev/dsp... |
Отдельный от SDL GUI нужен для избавления от велосипедостроительства. И если индикаторы и простые элементы можно сделать хоть в SDL, хоть например в guichan, то настройки и диалог открытия файлов всё же лучше иметь нормальные.
PS: И да, нормально написананный эмуль в портировании нуждаться не будет, только в перекомпиляции =) |
Quote:
|
Quote:
|
Quote:
|
Quote:
Ладно, значит консоль =) |
Quote:
|
Quote:
про NDS: к тому времени как я эмуль сделаю, глядишь и SDL-порт для него высохнет :rolleyes: Quote:
Quote:
|
Quote:
|
Quote:
но что касается эмулей, то в 90% виденных мной эмулей с удобным GUI этот GUI был самописным. |
А можно примерчик эмуля с хорошим GUI? А то что-то кроме zsnes ничего нормального не вспоминается...
А насчёт велосипедов - guichan выглядит вполне прилично, работает как на чистом SDL, так и с OpenGL. Если делать звук под "большие" OS, то можно поглядеть и на OpenAL. |
А может быть заранее продумать о том, чтобы использовать разные GUI? Т.е. GUI на Qt, KDE, GTk... А то как всегда в линухе, приклады выглядят как черт знает что. В одной один вид и логика (вилософия) GUI в другой другое.
И что-то не понял, зачем писать свой GUI (я так понял речь идет об очередной библиотеке), если уже столько всего написано?! |
Если вдруг решите разрабатывать архитектуру под разные GUI, т.е. GUI в виде плагина, то могу заняться реализацией GUI на Qt/KDE. Опыт с Qt, дизайном GUI и вкус (делаю вывод на основании отзывов пользователей) имеется. :-)
|
Quote:
guichan под c++, а мешать си и плюсы ИМХО крайне не гут. к тому же, все эти полновесные (с мышами, окнами и тп) гуи хороши в развесистых графических прогах, к примеру CAD -- там режимов и опций туча, а в руке у юзера и так мышка, самое оно ей по кнопкам и контролам потыкать. в эмуле же только мешать будет, проще горячие кнопки, селектор файлов и с клавиатуры же управляемый редактор конфигурации. дебаггером опять же куда удобней пользоваться с клавиатуры. openAL... хм, почему б и нет :) |
Quote:
Quote:
|
| All times are GMT +4. The time now is 16:12. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.