Просмотр полной версии : про видеоконтроллер
возникла мысль написать эмуляцию сабжа, и не чтобы как-то работала, а чтобы работала более-менее по принципу железки. но принципы эти я представляю себе смутно. плз, прочитайте, и поправьте, где я неправ ;)
как я это понимаю:
прорисовка экрана начинается по фронту кадрового синхроимпульса. экранная картинка выводится по линиям, два пиксела за такт. по фронту импульса гашения (который формируется по спаду строчного синхроимпульса) рисование очередной линии прекращается, луч переходит к началу следующей строки, и по спаду импульса гашения (пентагон: 32 такта) начинает ее рисовать.
выводится верхняя часть бордюра (64 линии; чем, интересно, это определяется?). потом начинается отрисовка 192-х линий, включающих в себя спектрумовский экран и полоски бордюра по сторонам. сперва рисуется левое бордюрное ухо, ширина которого (пентагон: 36 тактов) определяется, кажется, неким счетчиком контроллера, назову его "D"; затем 256 пикселов картинки -- контроллер берет из памяти байт пикселов, байт атрибутов, сохраняет их в своих регистрах, рисует, и так каждые 8 пикселов. потом по счетчику D снова начинается рисование бордюра -- правого уха, заканчивается оно с приходом строчного синхроимпульса, и так все 192 линии.
теперь опять рисуется бордюр, нижняя его часть, до тех пор (пентагон: 48 линий), пока не припрется кадровый синхроимпульс, по спаду которого начинается обратный ход кадровой развертки (3584 такта). ну а потом все повторяется сначала.
теперь непонятка: число тактов на строку (включая обратный ход) у всех спеков, насколько знаю, одно. а количество строк -- разное, то есть величина фрейма разная тоже. но ЭЛТ-то не прикажешь, он должен отрабатывать свои 50гц... чем это компенсируется, неужто частотой тактового генератора?
теперь непонятка: число тактов на строку (включая обратный ход) у всех спеков, насколько знаю, одно. а количество строк -- разное, то есть величина фрейма разная тоже. но ЭЛТ-то не прикажешь, он должен отрабатывать свои 50гц... чем это компенсируется, неужто частотой тактового генератора?
Во-первых число тактов в строке не у всех одинаковое,
а во-вторых это вполне компенсируется разной частотой кадров.
Т.е. например, у Пентагона, из за его 320 линий в кадре, вместо 312, кадровая часота несколько заниженная. А монитору все равно - он синхронизируется под любую в опредленных пределах (45..55Гц, например)
Titus правильно все сказал. а вообще цель всего это безобразия какая?
Titus правильно все сказал. а вообще цель всего это безобразия какая?
цель -- софтверная эмуляция сабжа. эмулятор спека думаю написать очередной ;)
Black_Cat
10.01.2007, 19:43
эмулятор спека думаю написать очереднойПод какую платформу?
цель -- софтверная эмуляция сабжа. эмулятор спека думаю написать очереднойих же тонна готовых - эмуляторов, да еще и с исходниками. а сабжей тоже куча разных
К тому же все которые мультиколорные как раз и эмулят развертку.
Под какую платформу?под линух и винду как минимум...
их же тонна готовых - эмуляторов, да еще и с исходниками. а сабжей тоже куча разных тонна только под винду, с исходниками полкило, с внятными исходниками нет почти
К тому же все которые мультиколорные как раз и эмулят развертку. да, но написана эта эмуляция обычно по принципу "чтобы все мультиколоры работали". в духе -- тут чего-то сьехало, надо добавить пару тактов. и фиг потом поймешь что к чему
Vladimir Kladov
10.01.2007, 23:44
а классические компы - будут? а если нет, то и ничего интересного. В унрил все уже есть для СССР-ских клонов, в плане мультиколора. И где там "пару тактов" добавлено?
а классические компы - будут? а если нет, то и ничего интересного. В унрил все уже есть для СССР-ских клонов, в плане мультиколора. И где там "пару тактов" добавлено?
классические планируются, но сперва что попроще, конечно.
в анриле эмуляция ориентирована на результат, а не на повторение архитектурных фишек компа, снаружи это незаметно, но в коде разобраться сложно, все между собой перемешано...
ну и анрил только под винды, а мне тут в линухе тоскливо без нормального эмуля :rolleyes:
На чем писать собираетесь?
NovaStorm
11.01.2007, 13:42
Ну на чём писать выбора не так много, вопрос скорее о фреймворках/либах.
На чем писать собираетесь?на чистом Си ;)
Ну на чём писать выбора не так много, вопрос скорее о фреймворках/либах.да, тут побольше выбора. наверное, SDL, благо он много на чем работает, включая nintendo ds, на которую я зубы точу
NovaStorm
12.01.2007, 08:02
Если на чистом Си, то что будет с GUI? Консоль это конечно правильно, но увы не всегда удобно.
SDL конечно естесственный выбор, но вот насчёт NDS кажется придётся подождать, сыровато вроде. Тем более оно неофициально, и этого нет даже в транке 1.3?
Q-Master
12.01.2007, 08:32
Если на чистом Си, то что будет с GUI? Консоль это конечно правильно, но увы не всегда удобно.
SDL конечно естесственный выбор, но вот насчёт NDS кажется придётся подождать, сыровато вроде. Тем более оно неофициально, и этого нет даже в транке 1.3?
А нафиг в эмуле ГУЙ? Точнее перефразируем вопрос: зачем в эмуле гуй написаный не в том-же SDL?
2boo_boo: Звук тоже надо в SDL. Хочу этот эмуль потом нормально портануть без всяких там мучений с /dev/dsp...
NovaStorm
12.01.2007, 08:41
Отдельный от SDL GUI нужен для избавления от велосипедостроительства. И если индикаторы и простые элементы можно сделать хоть в SDL, хоть например в guichan, то настройки и диалог открытия файлов всё же лучше иметь нормальные.
PS: И да, нормально написананный эмуль в портировании нуждаться не будет, только в перекомпиляции =)
возникла мысль написать эмуляцию сабжа.............
Немного не в тему - а есть эмуль для Покет ПэЦэ?
.. а есть эмуль для Покет ПэЦэ?Эмулятор для PocketPC!(PocketSpeccy) http://zx.pk.ru/showthread.php?t=3924
Отдельный от SDL GUI нужен для избавления от велосипедостроительства. И если индикаторы и простые элементы можно сделать хоть в SDL, хоть например в guichan, то настройки и диалог открытия файлов всё же лучше иметь нормальные.
PS: И да, нормально написананный эмуль в портировании нуждаться не будет, только в перекомпиляции =)
Берётся wxWidgets и на нём строится вся гуя, а потом компиляйте хоть в чёрта лысого. Вобще кросс-платформенных халявных гуи-либ как песка в море.
NovaStorm
12.01.2007, 12:42
Берётся wxWidgets чур меня. Тем более, что язык то - С, а не С++. Я потому и поинтересовался... Сишных гуёв меньше, а наиболее развитый из них(?) GTK+ под win32 страх и ужас.
Ладно, значит консоль =)
чур меня. Тем более, что язык то - С, а не С++. Я потому и поинтересовался... Сишных гуёв меньше, а наиболее развитый из них(?) GTK+ под win32 страх и ужас.
Ладно, значит консоль =)
На С ни один вменяемый гуи писать не будет. А мешать оба языка Богом наказано, потому как руль :)
Если на чистом Си, то что будет с GUI? Консоль это конечно правильно, но увы не всегда удобно.
SDL конечно естесственный выбор, но вот насчёт NDS кажется придётся подождать, сыровато вроде. Тем более оно неофициально, и этого нет даже в транке 1.3? гуи в масштабе, достаточном для эмуля, нормально делается ручками на том же SDL -- всего то, настройки и диалоги чтения/записи файлов, ну и дебаггер. поддержки мыши не будет, все кнопками ;)
про NDS: к тому времени как я эмуль сделаю, глядишь и SDL-порт для него высохнет :rolleyes:
Звук тоже надо в SDL. Хочу этот эмуль потом нормально портануть без всяких там мучений с /dev/dsp...надо бы по-хорошему, но лаг такооой будет... вообщем, все равно без поддержки нативного звука никак.
На С ни один вменяемый гуи писать не будет. А мешать оба языка Богом наказано, потому как руль :)хм, а GTK+ чем не гуи-библиотека на C? куча вполне вменяемых приложений написано. хотя для эмуля ИМХО лучше самому гуй сделать
хм, а GTK+ чем не гуи-библиотека на C? куча вполне вменяемых приложений написано. хотя для эмуля ИМХО лучше самому гуй сделать
Смотря какой GTK :) если gtkmm - то он на С++. а вообще, гуи на С мне хватило в WinAPI, больше не хочу.
Смотря какой GTK :) если gtkmm - то он на С++. а вообще, гуи на С мне хватило в WinAPI, больше не хочу.тот GTK, который не mm ;) гуйня через WINAPI полный караул, это точно, но виноват в этом не С, а проектировщики WINAPI. в GTK лепить гуйню нормально вполне.
но что касается эмулей, то в 90% виденных мной эмулей с удобным GUI этот GUI был самописным.
NovaStorm
15.01.2007, 09:21
А можно примерчик эмуля с хорошим GUI? А то что-то кроме zsnes ничего нормального не вспоминается...
А насчёт велосипедов - guichan выглядит вполне прилично, работает как на чистом SDL, так и с OpenGL.
Если делать звук под "большие" OS, то можно поглядеть и на OpenAL.
А может быть заранее продумать о том, чтобы использовать разные GUI? Т.е. GUI на Qt, KDE, GTk... А то как всегда в линухе, приклады выглядят как черт знает что. В одной один вид и логика (вилософия) GUI в другой другое.
И что-то не понял, зачем писать свой GUI (я так понял речь идет об очередной библиотеке), если уже столько всего написано?!
Если вдруг решите разрабатывать архитектуру под разные GUI, т.е. GUI в виде плагина, то могу заняться реализацией GUI на Qt/KDE. Опыт с Qt, дизайном GUI и вкус (делаю вывод на основании отзывов пользователей) имеется. :-)
А можно примерчик эмуля с хорошим GUI? А то что-то кроме zsnes ничего нормального не вспоминается...
А насчёт велосипедов - guichan выглядит вполне прилично, работает как на чистом SDL, так и с OpenGL.
Если делать звук под "большие" OS, то можно поглядеть и на OpenAL.ну к примеру старый-добрый z80 гюнтеровский, x128. просто, но функционально.
guichan под c++, а мешать си и плюсы ИМХО крайне не гут. к тому же, все эти полновесные (с мышами, окнами и тп) гуи хороши в развесистых графических прогах, к примеру CAD -- там режимов и опций туча, а в руке у юзера и так мышка, самое оно ей по кнопкам и контролам потыкать. в эмуле же только мешать будет, проще горячие кнопки, селектор файлов и с клавиатуры же управляемый редактор конфигурации. дебаггером опять же куда удобней пользоваться с клавиатуры.
openAL... хм, почему б и нет :)
А может быть заранее продумать о том, чтобы использовать разные GUI? Т.е. GUI на Qt, KDE, GTk... А то как всегда в линухе, приклады выглядят как черт знает что. В одной один вид и логика (вилософия) GUI в другой другое. я тут склоняюсь к одной мысли. а именно, в эмуле вообще не делать никаких ГУИ, кроме селектора файлов и дебаггера, а для редактирования конфигурации как раз можно написать отдельный редактор на Qt или Gtk. вроде минусов нет у такого решения, одни плюсы. :rolleyes:
И что-то не понял, зачем писать свой GUI (я так понял речь идет об очередной библиотеке), если уже столько всего написано?! нет, о библиотеке не идет речи :D
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot