Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - as32888

Страницы: [1]
1
Задумался, зачем в одноигровке, работающей без мапперов, регистр 74ls374. Срисовывая схему, сначала не понял, а потом как понял...
VD0..VD7 cигналы соединены со входами регистра и с ПЗУ
VD8..VD15 соединены с соответствующими выходами регистра, а на ПЗУ дорожек нет, ПЗУ видимо 8бит
/CE_0 (B17) соединен с /OE регистра и идет под каплю
/CAS_2 (B21) через инвертор заходит на вход clock неинверсный и в каплю (видимо, на старшую линию адреса)

/CAS_0 (B16) не используется

Стало быть, в сегах есть какая-то возможность читать 2 байта по очереди.

И еще факт - на ретрогенезис на tct-6803 картридж не работает, хотя я не смотрел пока, есть там /CAS_2 или нет, или мож капле или логике питания не хватает, но другое подобное старье с питанием ПЗУ под каплей от 5 Вольт работает.

На картридже следы моего любопытства в возрасте лет 10, типа че будет, если дорожку порезать, ну просто ничего не работало, назад приляпал и работало...

Возможно, что-то недосрисовал.

2
Есть у меня аж 4 строчки изображения, декодированного на компе с помощью аудасити (найквист команды), ровно на столько строчек хватило памяти цифрового осциллографа на работе, которым я снял эти 4 строчки, подкинув щупы к 1килоом нагрузкам на выходе чипа tct6035

Картинка была масштабирована далее до масштаба 4х, как выводят скалеры, и оказалось, что попиксельно она выглядит ну вполне себе ничего.

Учитывая еще факт, что в режиме 256 в Y канале корежит строку (пиксели в ширину разные там), предположу, что PAL кодер и матрицирование цвета, а далее мультиплексирование сигнала - сделаны в дискретном домене. То есть на Chroma ноге чипа идет 17734475/14318182 дискретных отсчетов в секунду. Только фронты подзавалены. Последовательность из 4 значений +Cb, +Cr, -Cb, -Cr, которые нужно таким же коммутатором разделить, отрицательные умножить на -1, то есть получить в одном канале +Cb, 0, +Cb, 0, а во втором +Cr, 0, +Cr, 0. Далее нужно каждый канал сложить со своей задержанной на 1/4 цикла копией, чтобы получить прямоугольничек уже с полной шириной, без нулевых пауз, ну а дальше на три тюльпанчика подаем в телевизор или карту захвата и радуемся.

Хочу еще сказать, что +Cb/+Cr и -Cb/-Cr - это не одно и то же, а уникальные "пиксели", то есть цветоразность проинвертирована пиксель через пиксель, таким образом, мы имеем 570 точек цветности во всей строке, включая гашение (285 периодов поднесущей умножить на 2), а в видимой части... ну на 0,75 умножить, выходит 427,5, то есть дофига. И вот этот кусок картинки как бы намекает...

Также могу добавить, что я пробовал сам генерировать PAL/NTSC сигнал на компе, я подобрал для пользовательского режима пиксельную частоту, конкретно "26.6 МГц", и 1/6 от этой частоты попадает в диапазон захвата поднесущей 4,43 телевизором, таким образом, я смог на втором "мониторе" открыть сгенерированную картинку, чтобы на выходе VGA цапа получить композитное видео. Правда, по размаху оно на 75 Ом получается 0,7 Вольта. 0,27 (потому что удобно, уровень черного 99 единиц) я отдал под синхроимпульсы, а на яркость+цветность оставшие 0,44 В. Просто потом на телевизоре контрастность выкрутил, и всё пучком.

Во вложениях есть тайминги видеорежима, чтобы это попробовать, и сами сгенерированные изображения, 262 строки это на 1 поле (инверсия красного цветоразностного дает стоящий на месте шахматный паттерн), 522 строки это на 2 поля по 261 строке_нечетное значение (инверсия цветоразностного красного дает шахматный паттерн, который меняется каждое поле на противоположный, как в сеге в пал50, где 313 строк). Требуется видимокарта, можно с чисто цифровым выходом, я через HDMI-VGA конвертер это выводил на GTX1660 Super в старый сони тринитрон 14 дюймов.

Ну, собственно, суть в чем. Оказалось, что в нтсц формате введение вот этой самой YIQ модели "повернутой по фазе" обусловлено тем, что у сигналов IQ в труъ нтсц кодерах полоса ограничивается разным значением, короче, чтобы мылить цветность таким способом, каким это будет хуже видно глазу среднего американца, но на сколько градусов они повернули координаты этой самой цветовой модели, на столько же градусов они повернули обратно фазы несущих, то есть фактически, если мы не делаем супер пупер аутентичный нтсц кодер, а делаем как в сеге, по-простому, то отличие нтсц от пал тупо в том, что Cr компонента в каждой второй строчке инвертируется, а вспышку в начале строки можно выразить, как некое опорное сочетание значений Cb и Cr (то есть вектор с определенным углом и амплитудой).

*вообще, разная полоса I и Q сигналов, скорее всего, сделана для того, чтобы срезать часть боковой полосы модулированного сигнала, ту часть, где есть только один из сигналов, и где его не надо отделять, но представляю, какое там шпилли-вилли с фчх и ачх фильтров...


То есть с выхода кодера на чипе сеги выходит YUV мультиплексированный что в режиме пал, что в режиме нтсц, и нам не нужно переключать чип сеги на вывод пал и городить логику определения четной/нечетной строки. У нас есть 17,734 мег тактовые импульсы, которые мы подаем на счетчик двоичный двухразрядный (два т-триггера, чет типа ТМ2, но побыстрее, буржуйское чето), а чтоб счет всегда начинался с правильного момента, мы сбрасываем счетчики строчным синхроимпульсом. Далее нужно:
1)поработать над сигналом цветности, нужно в нем компенсировать частотную хар-ку, чтобы убрать взаимовлияние соседних импульсов друг на друга (вот это RCцепочко-подобное поведение убрать)
2)подстроить тонко фазу 17,734 мег на входе счетчика, чтобы коммутатор переключался аккурат в моменты переключения коммутатора в кодере
1)и2) можно уже на тестовых демках с цветными полосами отстроить, на предмет правильного тона изображения и границ между цветными полосами
3)где-то родить линии задержки на 1/17734475, чтоб цветность с прореженной скважностью можно было сложить саму с собой со сдвигом и убрать прореженность, звучит смешно, но 10-12 метров тонкого коаксиального кабеля смотать можно в бухту и использовать в качестве линии задержки, отрезать/откалиброваться ч0тко... но вообще можно этим голову не мучить, а сделать ФНЧ как на цвет, так на яркость, чтобы сгладить углы квадратиков, потому что если это несглаженное непотребство подавать на телевизор с 427 элементами на строку, неограниченная полоса даст наложение спектров, и, в целом, если вы можете на катод кинескопа тв подать острые прямоугольнички, усилить их с ЦАПа без какого-либо сглаживания, вы увидите, насколько это ужасно на самом деле, и поймете, почему вообще где-то в более новых ТВ шаг точки уменьшили (для RGB подключения), а в старых с около 450 элементов на строку (а 14-дюймовые - и того меньше) часто никакого RGB нет, и его можно только приколхозить

свидео1 и свидео2 - это скриншоты с dscaler, которые демонстрируют косяк яркостного канала tct6035, sm801 и так далее (для разрешения 256 пикселей), и, возможно, по композиту эта нечисть таки тоже будет видна, я еще погляжу сам... наложение спектров собственной персоной, а наложение - оно в НЧ область уходит, то есть если пиксель стал на 3/4 шире, чем его сосед, это значит, что его вес на 3/4 больше, и что точка будет контрастнее даже после фильтра яркости

характерно еще то, что косяк этот не устраняется заменой кварца с 17,** на 14,**, и в режиме 320 пикселей он отсутствует при любом кварце, также проверено, что это ведет себя так не карта захвата, а сама сега

И вопрос еще - а в новых клонах, более-менее представляющих внутри чипа аппаратную сегу, тоже такая хрень, или нет? У кого там есть сега на TCT6801/6803/QS816...

3
Наверное, многие в курсе, что HDD в иксбоксе не только для сохранений игр, но также и для кеширования данных с игрового DVD, чтобы иметь более быстрый доступ к игровым ресурсам. Для этого есть три раздела по ~749 МиБ, и обычно игра использует какой-то из свободных разделов, а, может быть, и не один, если ей надо, но обычно один.

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

Копирование происходит с маленьким буфером, потому что при копировании между 2 физическими устройствами (DVD&HDD) большой буфер не нужен, через цифровой интерфейс можно очень маленькие порции слать туда-сюда, а здесь диск становится один, но игра не знает про это и продолжает использовать маленький буфер, так что диск начинает напрягаться.

Размер буфера маленький также и в дашбордах (пробовал unleashx и xbmc4xbox последний), копирование около 6 МиБ в секунду (8 показывало в режиме UDMA100, который можно использовать в Cerbios) с раздела на раздел, диск при этом крякает страшно, но там обычно это и не нужно, потому что копируем обычно на hdd из сети или с dvd игру например.

Видится мне пара решений...
0)кто играет с dvd, это не про них
1)решение в лоб - ssd через конвертер ide-sata, хорошие конвертеры могут работать в режиме UDMA5, который доступен в современных биосах, например, в Cerbios, ну и сам ссд более быстро справляется с множеством мелких чтений и записи, и можно забить на вредную активность игр
2)в Cerbios запилили возможность использовать два HDD, но пока не подоспели утилиты для разметки и дашборды, которые будут видеть все разделы, но суть в том, что игра будет кешироваться с hdd на другой hdd или ssd, я пробовал сегодня зашить биос с этой настройкой, но единственное, чего я добился, это появление ошибки "нету HDD", когда не подключен второй HDD, буду еще посмотреть на эту тему, интересно
3)самое разумное, но я пока не нашел, - это патч игр, чтобы они перестали кешироваться в эти разделы, только этот вариант недоступен для тех игр, в которых использованы ограничения fatx файловой системы, к примеру, на длину путей, чтобы игру нельзя было скопировать, такие игры заливать нужно в виде iso в папочку, класть рядом attach.xbe и монтировать на место D диска (виртуальный DVD есть в последних софтмодах и биосах)
4)NCQ в более новых SATA дисках... оно вроде работает только в нативном сата режиме? не помню...

вообще удивительно, что последние биосы датируются аж 2023 годом (Cerbios тот же например), до сих пор какая-то работа идет, что-то пилят, к примеру, запилили поддержку очень больших дисков

4
В общем, такой момент. Есть ЭЛТ монитор с 110 кГц частотой строк (FE2111SB), есть видеокарта без аналогового выхода, есть конвертер HDMI-VGA с али за 150 рублей, который тянет 220 мегагерц.

С несколько сокращенным гашением вписывается режим 1600х1200 85 Гц, но хочется большие разрешения (в ущерб частоте кадров), этакий аппаратный суперсемплинг. Но раз в строке тоже растет число пикселей, то и частота пикселей будет неумолимо расти.

Итак, есть ли какие-то проверенные конвертеры, которые дадут более высокую частоту пикселей, в идеале 400 МГц? Пока что думаю пользоваться проверкой котов в мешке с возвратом товара.

5
Есть какой-то китайский картридж, где микросхема-капля и разводка под DIP42 ПЗУ, куда я впаял кроватку и в нее поставил зашитую соником3 с наклзом m27c322. Все работает, кроме сохранений, понятное дело, потому что SRAM нету. Нашел UM62256E-70LLT в закромах, значит.

Далее полез в гугл, выяснил, что вторые 2 мегабайта переключаются на SRAM на время записи сохраненок, а переключение управляется записью в регистр по адресу $A130F1 единички или нуля (нужен D триггер, который по сигналу /TIME запоминает значение VD0 на слоте картриджа)

Также из часто встречаемого в интернете то, что ром игры с подобным переключением банков побит на 2 и живет в двух ПЗУ половинных объемов. Но искать игру из списка, покупать картридж, чтобы туда потом вместо родных ПЗУ впаять свои, как-то не хотелось, и слишком не интересно.

Поразмыслив, родил такую схему переключения, где можно обойтись одним ПЗУ на 4 мегабайта. Надеюсь, ничего не забыл и не напутал.

Схема примитивная, потому что сделано допущение, что обращение идет только на один адрес в диапазоне $A13000-$A130FF, и что не надо различать адреса поэтому, и достаточно использовать сигнал /TIME и по нему считывать состояние нулевой линии данных на слоте.

Заказал микросхемы, как придут, буду паяться. О результатах отпишусь.

Такой вопрос - какой объем SRAM вообще используется, вероятно, 62256 слишком большая микросхема, мб можно не все адресные линии паять тогда?

6
Купил на али за 1500+доставка такую фиолетовую платочку.
В принципе, устраивает всё, кроме времени зашивки больших ромов (если 256 КиБ  еще быстро, то 4 МиБ уже заставляет понервничать). SPI speed test показывает 90 с чем-то kb/s, ну. думаю, понятно.

Решил проверить идею о подключении к внутренней m29w640ft впараллель еще одной такой же, чтобы зашить ее для использования в другом картридже и сделать, вероятно, многоигровочки.

И что я выяснил на данный момент:
1. Переключение старших адресов меняет смещение адреса для записи, но не влияет на адреса стираемых блоков, потому что блоков у флешки 135 штук (127 по 64 КиБ и 8 по 8 КиБ). то есть картридж будет стирать только во вторых 4 МиБ у своей и у добавленной флешки. Если флешку где-то предварительно стереть, то, скорее всего, ее можно будет там же и прошить (если это не тупая стиралочка на МК, которая с помощью сдвиговиков дает команду chip erase на чип и больше ниче не умеет), и тогда этот бубен не нужен. Пока буду считать, что средствами картриджа стирать можно вторые 4 МиБ.

2. Подтирать картридж будет часть вторых 4 МиБ согласно размеру рома, ибо зачем стирать все 4 МиБ, это долго, если надо записать меньше, поэтому можно придумать последовательность записи ромов меньше 4 МиБ из ромсета, чтобы не подтирать нужную нам инфу.
Записывать сначала файл 4 МиБ с заголовком как для SMD, но с FFFFFF содержанием, чтобы картридж сделал целиком стирание вторых 4 МиБ и не изменил содержимое ячеек, а потом записывать игры с конца, начать с более маленьких и закончив самой большой, таким образом, операции стирания не затронут ранее записанные игры. Это чтобы не склеивать несколько ромов на компе и не лить их на сд карту каждый раз

Флешка вторая будет иметь высокий уровень на /output enable, то есть будет работать только на запись.

Какие еще подводные? Наверняка что-то упустил. Ага, наверное. будет работать, если оборудование дает команды стирания, а потом просто ждет некоторое заложенное время, а следующую команду дает по истечении этого времени.

Смещение адресов ромов в многоигровках предполагается кратное их размеру, получается таким автоматически, если большие ромы в начале и маленькие в конце,
 тогда смешать сигналы смещения адреса и адресные линии можно через лог элемент 2ИЛИ. Если со счетчика/переключателей приходит лог 0, таким образом, лог.1 сможет прийти с шины адреса, как обычно, и это не помешает адресовать большие ромы.

Получается, к примеру, такая последовательность ромов: 2048, 1024, 512, 256, 256.. и так пока не заполнятся все 4 МиБ, заполнять с конца.

7
Заметил как-то, что на одном клоне сеги с такой маркировкой платы стоит перемычка между +5 Вольт и контактом HSYNC на слоте картриджа. Убрал ее, на работе посмотрел осциллографом синхроимпульсы и забыл.

Сейчас же у меня есть второй такой же клон, где эта перемычка стоит. Подключаю к скалеру (GBS8200 с модом gbscontrol и синтезатором частот si5351), на ЭЛТ мониторе с этой сегой сбит видеорежим, картинка не по размеру и уехала. Думаю, что же такое. Смотрю, в меню монитора указана другая кадровая и строчная частота, чуть больше. Потом смотрю в консоль скалера по веб морде, а там другая частота кадров.
Было 59,377.. что-то близкое к такому соотношению 4433618,75/285/262 = ~59,376
Стало показывать 60,437..., манипуляции с калькулятором наводят на мысль, что изменилось количество периодов поднесущей в строке, примерно бьется такое деление: 4433618,75/280/262 = 60,4365....
Уменьшение количества строк в кадре не бьется.

На сеге с чипом TCT6035 такое же (видимо, ничего не меняли, кроме того, что повыбрасывали сигналы, которые они на плате не распаивают совсем, типа RGB и чего-то для сега мега сиди)

В общем такой занятный факт, а что с ним делать, - не знаю.

8
Все знают, что эмуляторы старых консолей дают номинально 50 или 60 фпс (как и сами консоли). А частота обновления экрана у ПК может быть иная. Например, у меня на ЭЛТ стоит 85Гц, чтоб не пороть глаза мерцанием (при 85Гц мерцания не вижу).
Преобразование частоты кадров там сделано методом повторения кадров. То есть самый мерзкий метод - в нужные моменты кадр повторяется от 0 до нескольких раз. Или выбрасываются кадры, если частота понижается. Результат похож на унылое говно. Особенно если преобразование не кратное (50>85, 60>85, 50>60).

Есть же много разных методов преобразования частоты кадров, которые могут дать результат намного лучше (особенно разновидности компенсации движения). Так почему ни одному автору ни одного эмулятора это не пришло в голову? o_0

Вот для Kega Fusion есть графические фильтры, которые увеличивают пространственное разрешение картинки и по какому-то алгоритму обрабатывают кадры. Можно ли теоретически написать фильтр, который будет повышать частоту кадров (увеличивать временнОе разрешение) методом компенсации движения, например?

Навеяно софтом под названием Smooth Video Project (SVP). Как-то раз записал на эмуляторе видео, а потом проиграл его с включенным SVP. Результат порадовал. При 85Гц кадровой на раб. столе такая же плавность, как на эмуле, когда тот в режиме NTSC и частота кадров стоит 60Гц (отсутствие преобразования).

Смысл этого всего:
1. На ЭЛТ - избежать видимого мерцания при сохранении плавности и четкости картинки в движении.
2. На ЖК с поддержкой 120Гц - уменьшить размытие картинки в движении.

Страницы: [1]