Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   про видеоконтроллер (http://zx-pk.ru/showthread.php?t=4553)

boo_boo 10th January 2007 05:00

про видеоконтроллер
 
возникла мысль написать эмуляцию сабжа, и не чтобы как-то работала, а чтобы работала более-менее по принципу железки. но принципы эти я представляю себе смутно. плз, прочитайте, и поправьте, где я неправ ;)
как я это понимаю:

прорисовка экрана начинается по фронту кадрового синхроимпульса. экранная картинка выводится по линиям, два пиксела за такт. по фронту импульса гашения (который формируется по спаду строчного синхроимпульса) рисование очередной линии прекращается, луч переходит к началу следующей строки, и по спаду импульса гашения (пентагон: 32 такта) начинает ее рисовать.
выводится верхняя часть бордюра (64 линии; чем, интересно, это определяется?). потом начинается отрисовка 192-х линий, включающих в себя спектрумовский экран и полоски бордюра по сторонам. сперва рисуется левое бордюрное ухо, ширина которого (пентагон: 36 тактов) определяется, кажется, неким счетчиком контроллера, назову его "D"; затем 256 пикселов картинки -- контроллер берет из памяти байт пикселов, байт атрибутов, сохраняет их в своих регистрах, рисует, и так каждые 8 пикселов. потом по счетчику D снова начинается рисование бордюра -- правого уха, заканчивается оно с приходом строчного синхроимпульса, и так все 192 линии.
теперь опять рисуется бордюр, нижняя его часть, до тех пор (пентагон: 48 линий), пока не припрется кадровый синхроимпульс, по спаду которого начинается обратный ход кадровой развертки (3584 такта). ну а потом все повторяется сначала.

теперь непонятка: число тактов на строку (включая обратный ход) у всех спеков, насколько знаю, одно. а количество строк -- разное, то есть величина фрейма разная тоже. но ЭЛТ-то не прикажешь, он должен отрабатывать свои 50гц... чем это компенсируется, неужто частотой тактового генератора?

Titus 10th January 2007 05:43

Quote:

Originally Posted by boo_boo
теперь непонятка: число тактов на строку (включая обратный ход) у всех спеков, насколько знаю, одно. а количество строк -- разное, то есть величина фрейма разная тоже. но ЭЛТ-то не прикажешь, он должен отрабатывать свои 50гц... чем это компенсируется, неужто частотой тактового генератора?

Во-первых число тактов в строке не у всех одинаковое,
а во-вторых это вполне компенсируется разной частотой кадров.
Т.е. например, у Пентагона, из за его 320 линий в кадре, вместо 312, кадровая часота несколько заниженная. А монитору все равно - он синхронизируется под любую в опредленных пределах (45..55Гц, например)

jtn 10th January 2007 20:03

Titus правильно все сказал. а вообще цель всего это безобразия какая?

boo_boo 10th January 2007 20:24

Quote:

Originally Posted by The Exploited
Titus правильно все сказал. а вообще цель всего это безобразия какая?

цель -- софтверная эмуляция сабжа. эмулятор спека думаю написать очередной ;)

Black_Cat 10th January 2007 20:43

Quote:

Originally Posted by boo_boo
эмулятор спека думаю написать очередной

Под какую платформу?

jtn 10th January 2007 20:58

Quote:

Originally Posted by boo_boo
цель -- софтверная эмуляция сабжа. эмулятор спека думаю написать очередной

их же тонна готовых - эмуляторов, да еще и с исходниками. а сабжей тоже куча разных

ZEK 10th January 2007 21:47

К тому же все которые мультиколорные как раз и эмулят развертку.

boo_boo 10th January 2007 23:43

Quote:

Originally Posted by Black_Cat
Под какую платформу?

под линух и винду как минимум...
Quote:

Originally Posted by The Exploited
их же тонна готовых - эмуляторов, да еще и с исходниками. а сабжей тоже куча разных

тонна только под винду, с исходниками полкило, с внятными исходниками нет почти

boo_boo 10th January 2007 23:45

Quote:

Originally Posted by heroy
К тому же все которые мультиколорные как раз и эмулят развертку.

да, но написана эта эмуляция обычно по принципу "чтобы все мультиколоры работали". в духе -- тут чего-то сьехало, надо добавить пару тактов. и фиг потом поймешь что к чему

Vladimir Kladov 11th January 2007 00:44

а классические компы - будут? а если нет, то и ничего интересного. В унрил все уже есть для СССР-ских клонов, в плане мультиколора. И где там "пару тактов" добавлено?

boo_boo 11th January 2007 02:35

Quote:

Originally Posted by Vladimir Kladov
а классические компы - будут? а если нет, то и ничего интересного. В унрил все уже есть для СССР-ских клонов, в плане мультиколора. И где там "пару тактов" добавлено?

классические планируются, но сперва что попроще, конечно.
в анриле эмуляция ориентирована на результат, а не на повторение архитектурных фишек компа, снаружи это незаметно, но в коде разобраться сложно, все между собой перемешано...
ну и анрил только под винды, а мне тут в линухе тоскливо без нормального эмуля :rolleyes:

jager 11th January 2007 11:31

На чем писать собираетесь?

NovaStorm 11th January 2007 14:42

Ну на чём писать выбора не так много, вопрос скорее о фреймворках/либах.

boo_boo 11th January 2007 18:06

Quote:

Originally Posted by jager
На чем писать собираетесь?

на чистом Си ;)
Quote:

Originally Posted by NovaStorm
Ну на чём писать выбора не так много, вопрос скорее о фреймворках/либах.

да, тут побольше выбора. наверное, SDL, благо он много на чем работает, включая nintendo ds, на которую я зубы точу

NovaStorm 12th January 2007 09:02

Если на чистом Си, то что будет с GUI? Консоль это конечно правильно, но увы не всегда удобно.
SDL конечно естесственный выбор, но вот насчёт NDS кажется придётся подождать, сыровато вроде. Тем более оно неофициально, и этого нет даже в транке 1.3?

Q-Master 12th January 2007 09:32

Quote:

Originally Posted by NovaStorm
Если на чистом Си, то что будет с GUI? Консоль это конечно правильно, но увы не всегда удобно.
SDL конечно естесственный выбор, но вот насчёт NDS кажется придётся подождать, сыровато вроде. Тем более оно неофициально, и этого нет даже в транке 1.3?

А нафиг в эмуле ГУЙ? Точнее перефразируем вопрос: зачем в эмуле гуй написаный не в том-же SDL?

2boo_boo: Звук тоже надо в SDL. Хочу этот эмуль потом нормально портануть без всяких там мучений с /dev/dsp...

NovaStorm 12th January 2007 09:41

Отдельный от SDL GUI нужен для избавления от велосипедостроительства. И если индикаторы и простые элементы можно сделать хоть в SDL, хоть например в guichan, то настройки и диалог открытия файлов всё же лучше иметь нормальные.
PS: И да, нормально написананный эмуль в портировании нуждаться не будет, только в перекомпиляции =)

Mikka_A 12th January 2007 10:23

Quote:

Originally Posted by boo_boo
возникла мысль написать эмуляцию сабжа.............

Немного не в тему - а есть эмуль для Покет ПэЦэ?

caro 12th January 2007 11:11

Quote:

Originally Posted by Mikka_A
.. а есть эмуль для Покет ПэЦэ?

Эмулятор для PocketPC!(PocketSpeccy) http://zx.pk.ru/showthread.php?t=3924

icebear 12th January 2007 12:59

Quote:

Originally Posted by NovaStorm
Отдельный от SDL GUI нужен для избавления от велосипедостроительства. И если индикаторы и простые элементы можно сделать хоть в SDL, хоть например в guichan, то настройки и диалог открытия файлов всё же лучше иметь нормальные.
PS: И да, нормально написананный эмуль в портировании нуждаться не будет, только в перекомпиляции =)

Берётся wxWidgets и на нём строится вся гуя, а потом компиляйте хоть в чёрта лысого. Вобще кросс-платформенных халявных гуи-либ как песка в море.

NovaStorm 12th January 2007 13:42

Quote:

Originally Posted by icebear
Берётся wxWidgets

чур меня. Тем более, что язык то - С, а не С++. Я потому и поинтересовался... Сишных гуёв меньше, а наиболее развитый из них(?) GTK+ под win32 страх и ужас.
Ладно, значит консоль =)

icebear 12th January 2007 14:46

Quote:

Originally Posted by NovaStorm
чур меня. Тем более, что язык то - С, а не С++. Я потому и поинтересовался... Сишных гуёв меньше, а наиболее развитый из них(?) GTK+ под win32 страх и ужас.
Ладно, значит консоль =)

На С ни один вменяемый гуи писать не будет. А мешать оба языка Богом наказано, потому как руль :)

boo_boo 12th January 2007 18:01

Quote:

Originally Posted by NovaStorm
Если на чистом Си, то что будет с GUI? Консоль это конечно правильно, но увы не всегда удобно.
SDL конечно естесственный выбор, но вот насчёт NDS кажется придётся подождать, сыровато вроде. Тем более оно неофициально, и этого нет даже в транке 1.3?

гуи в масштабе, достаточном для эмуля, нормально делается ручками на том же SDL -- всего то, настройки и диалоги чтения/записи файлов, ну и дебаггер. поддержки мыши не будет, все кнопками ;)
про NDS: к тому времени как я эмуль сделаю, глядишь и SDL-порт для него высохнет :rolleyes:
Quote:

Originally Posted by Q-Master
Звук тоже надо в SDL. Хочу этот эмуль потом нормально портануть без всяких там мучений с /dev/dsp...

надо бы по-хорошему, но лаг такооой будет... вообщем, все равно без поддержки нативного звука никак.
Quote:

Originally Posted by icebear
На С ни один вменяемый гуи писать не будет. А мешать оба языка Богом наказано, потому как руль :)

хм, а GTK+ чем не гуи-библиотека на C? куча вполне вменяемых приложений написано. хотя для эмуля ИМХО лучше самому гуй сделать

icebear 12th January 2007 18:16

Quote:

Originally Posted by boo_boo
хм, а GTK+ чем не гуи-библиотека на C? куча вполне вменяемых приложений написано. хотя для эмуля ИМХО лучше самому гуй сделать

Смотря какой GTK :) если gtkmm - то он на С++. а вообще, гуи на С мне хватило в WinAPI, больше не хочу.

boo_boo 12th January 2007 18:26

Quote:

Originally Posted by icebear
Смотря какой GTK :) если gtkmm - то он на С++. а вообще, гуи на С мне хватило в WinAPI, больше не хочу.

тот GTK, который не mm ;) гуйня через WINAPI полный караул, это точно, но виноват в этом не С, а проектировщики WINAPI. в GTK лепить гуйню нормально вполне.

но что касается эмулей, то в 90% виденных мной эмулей с удобным GUI этот GUI был самописным.

NovaStorm 15th January 2007 10:21

А можно примерчик эмуля с хорошим GUI? А то что-то кроме zsnes ничего нормального не вспоминается...
А насчёт велосипедов - guichan выглядит вполне прилично, работает как на чистом SDL, так и с OpenGL.
Если делать звук под "большие" OS, то можно поглядеть и на OpenAL.

jager 15th January 2007 12:07

А может быть заранее продумать о том, чтобы использовать разные GUI? Т.е. GUI на Qt, KDE, GTk... А то как всегда в линухе, приклады выглядят как черт знает что. В одной один вид и логика (вилософия) GUI в другой другое.

И что-то не понял, зачем писать свой GUI (я так понял речь идет об очередной библиотеке), если уже столько всего написано?!

jager 15th January 2007 12:25

Если вдруг решите разрабатывать архитектуру под разные GUI, т.е. GUI в виде плагина, то могу заняться реализацией GUI на Qt/KDE. Опыт с Qt, дизайном GUI и вкус (делаю вывод на основании отзывов пользователей) имеется. :-)

boo_boo 15th January 2007 18:59

Quote:

Originally Posted by NovaStorm
А можно примерчик эмуля с хорошим GUI? А то что-то кроме zsnes ничего нормального не вспоминается...
А насчёт велосипедов - guichan выглядит вполне прилично, работает как на чистом SDL, так и с OpenGL.
Если делать звук под "большие" OS, то можно поглядеть и на OpenAL.

ну к примеру старый-добрый z80 гюнтеровский, x128. просто, но функционально.
guichan под c++, а мешать си и плюсы ИМХО крайне не гут. к тому же, все эти полновесные (с мышами, окнами и тп) гуи хороши в развесистых графических прогах, к примеру CAD -- там режимов и опций туча, а в руке у юзера и так мышка, самое оно ей по кнопкам и контролам потыкать. в эмуле же только мешать будет, проще горячие кнопки, селектор файлов и с клавиатуры же управляемый редактор конфигурации. дебаггером опять же куда удобней пользоваться с клавиатуры.
openAL... хм, почему б и нет :)

boo_boo 15th January 2007 19:01

Quote:

Originally Posted by jager
А может быть заранее продумать о том, чтобы использовать разные GUI? Т.е. GUI на Qt, KDE, GTk... А то как всегда в линухе, приклады выглядят как черт знает что. В одной один вид и логика (вилософия) GUI в другой другое.

я тут склоняюсь к одной мысли. а именно, в эмуле вообще не делать никаких ГУИ, кроме селектора файлов и дебаггера, а для редактирования конфигурации как раз можно написать отдельный редактор на Qt или Gtk. вроде минусов нет у такого решения, одни плюсы. :rolleyes:
Quote:

Originally Posted by jager
И что-то не понял, зачем писать свой GUI (я так понял речь идет об очередной библиотеке), если уже столько всего написано?!

нет, о библиотеке не идет речи :D


All times are GMT +4. The time now is 16:12.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.