Pull to refresh
39
Михаил Шероносов@ramfactory

Пользователь

10
Subscribers
Send message

Народ, в Новосибирске уже глубокая ночь, ухожу в офлайн. Чтобы не гадать на кофейной гуще, вот свежий пруф с живого железа: https://rutube.ru/video/179eeadc405bc9767e940547c3a34435/

Да как так-то... Народ, хорош гадать по мануалам. Кидайте ссылку на любое видео — сконвертирую своим софтом и покажу в реалии на живом железе.

Запишу с экрана ЖК, чтобы сетку дизеринга и работу DMA было видно как есть. Кто не верит в физику — предлагайте футажи, проверим на прочность ваш скепсис.

Забавно: в личке мне пишут про рекламу, а в комментариях и вовсе ищут следы нейросетей. Если демонстрация того, как мой код снимает аппаратные лимиты 35-летней давности — это реклама, то пусть будет так. Но здесь только работа с шиной и таймингами.

Чтобы закрыть вопрос, как звук не заикается при такой нагрузке: я задействовал штатную возможность архитектуры Sega по внешнему микшированию. Чтобы отдать видеопроцессору все 100% ресурсов шины под картинку в 3000+ цветов, аудио-поток подается через аппаратные входы слота (пины B1/B3).

Это не "эмуляция" звука со стороны, это тот же принцип, на котором работали Sega CD и 32X — они подмешивали свой аудио-сигнал в общий тракт консоли, не нагружая основной процессор лишними прерываниями.

Любопытно наблюдать, как классическая парадигма «64 цвета — это предел» сопротивляется реальности 2026 года. Многие до сих пор предпочитают опираться на мануалы 1989-го, называя 3000+ цветов вольной трактовкой или программным пост-эффектом.

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

Вместо того чтобы спорить о цифрах в таблицах — в личке.

Инструментарий для конвертации открыт. Можно прогнать через него любой свой футаж, залить результат на флеш-картридж и убедиться лично на оригинальном железе. Когда ваша Sega выдаст картинку на ЭЛТ-телевизоре, вы поймете, что физическое напряжение на контактах видеовыхода невозможно «нагаллюцинировать». Это работа Direct Color DMA и Shadow/Highlight, синхронизированных до одного такта процессора 68000.

Реальность — она на люминофоре, а не в скучных мануалах прошлого века.

Про «трюки нейросетей» и «нарисованное видео» — это удобная позиция, чтобы не признавать пробелы в знании архитектуры VDP. Но есть нюанс: это не просто MP4-файл на видеохостинге, который можно «нагаллюцинировать» промптами.

1. Это не магия, а софт в открытом доступеЕсли вам кажется, что видео в посте — фейк, просто перейдите от теории к практике. Инструментарий для конвертации видео под Sega открыт для всех.

  • Возьмите любое своё видео.

  • Прогоните его через конвертер, который рассчитает таблицы DMA и H-Int под тайминги реального железа.

  • Залейте полученный поток на флеш-картридж и запустите на оригинальной консоли.

Никакая нейросеть не подменит сигнал в вашем RGB-кабеле и не заставит ваш старый ЭЛТ-телевизор показывать «галлюцинации». Вы увидите те самые 3000+ цветов, полученных через аппаратный Shadow/Highlight и динамическую смену палитр на каждой строке.

Ваша ошибка в том, что вы путаете статическую разрядность палитры в ПЗУ (9 бит) и эффективное количество оттенков на экране. По вашей логике, если в регистре 9 бит, то больше 512 цветов не существует в природе. Но видеосигнал работает иначе.

1. Что «реально» для глаза?Если вы поставите рядом два пикселя — красный и синий, то на ЭЛТ-мониторе из-за дизеринга (dithering) и особенностей композитного сигнала луч физически смешивает их в фиолетовый. Его нет в таблице 9 бит? Нет. Он «реален» на люминофоре? Да. Глаз его видит, итоговая картинка по количеству переходов эквивалентна 11–12 битам. Это не обман, это использование физики аналогового вывода.

2. Динамика против статики (CRAM и DMA)«3000 цветов» — это не глубина цвета в одном пикселе, а суммарное количество уникальных цветовых индексов, которые VDP успевает отрисовать за время формирования одного кадра.

  • Благодаря Direct Color DMA и H-Int, палитра CRAM переписывается прямо «на лету» во время движения луча по строкам.

  • Если на первой строке у нас одни 64 цвета, а на сотой — другие, то в одном кадре мы физически вывели 128 уникальных цветов.

  • Умножьте 64 цвета на 224 активные строки — и вы получите теоретический предел в 14 336 изменений за кадр. Ограничение здесь не в «битах палитры», а в пропускной способности шины 68000, которая в 2025 году уже просчитана до такта.

3. Практический пруф: InviteDrive V6 MAXЕсли вам кажется, что 11.5 бит — это теоретический тупик, просто возьмите оригинальную Sega, картридж InviteDrive V6 MAX и посмотрите на полноцветное видео. Это не магия, это жесткая синхронизация процессора с лучом VDP и использование аппаратного Shadow/Highlight, который расширяет базу до 1536 аппаратных оттенков еще до применения софтовых хаков.

Так что «реально» — это то, что выдает InviteDrive на экран здесь и сейчас. А 9 бит — это всего лишь ограничение объема одной ячейки памяти, которое демомейкеры (те же Titan в Overdrive 2) научились обходить динамической перезаписью.

Да. Поддерживает.

Кстати да, не секрет что в Китае обмануть 老外 (Лаовай — приезжий) что-то вроде национального вида спорта…
Точно так! Это значение SysTick (разница до инструкции и после), один такт на останов, второй на запуск и один на передачу управления DBG арбитру внутри кристалла соотв. вычитаем 3.
… похвастаться тут нечем :(. Low Speed, но честный, без пропуска пакетов с бит стаффингом и CRC на лету.
20 лет назад, если не больше, Igor Cesko реализовал программный USB на AT90U1200 уместившись в 1кб кода (правда в оригинальной статье он предлагал слегка разогнать AVRку до 12MHz), у AVR почти все команды в один такт, и кстати, это Вы к чему про AVR?
Статья про ARM-M0, как-то сравнивать странно…
В данной реализации (скажем прием) применительно к Data Watchpoint, к сожалению, процессор должен не просто ждать, а выполнять арифметические операции в процессе ожидания.
Да, есть стандартная тема TIMER+DMA, так сперва и задумал сделать, взводим таймер на 32 (TIMx->CR = 31) и цепляем к RELOAD таймера DMA из GPIO в память, пускаем таймер по спаду фронта на линии D+ в прерывании и останавливаемся кода обе линии D+ и D- «0» (EOP), только первое, времени не хватает чтобы получить первый бит в пакете (можно в принципе пожертвовать, старт всегда это 7 «0» и одна «1»), второе, на выходе получается буфер который ещё нужно обработать, а времени между SETUP пакетом и DATA всего то 156 тактов (на 75 MHZ)…
Да и вообще, программный USB это дичь, сразу первое что вырывается, есть же 042 или 070? Но в Российском бизнес сегменте оч часто, к сожалению, аргумент босса, — «Эт нельзя, у нас договор на поставку 030 на ближайшие 2 года по цене в 3 раза ниже чем 070 и в 4 чем 042!». А я такой, не, — договор на разработку рву ибо не собираюсь походить на ардуинщика?
Тут я совершенно согласен! Взять хотя бы КР580ВВ55 (который 8255 от Intel). Просто да, слегка другие ;)
Неа, там если я правильно помню UV Erasable Devices, One-Time-Programmable…
Ага, сфотал, всё отключил, прибрал, добавил в статью… смотрю завален! ;)
… и PICKit3 с китайской площадки, древний жесть, ничего от Вас не утаишь! :)
CRC верное решение, однако тут могут возникнуть сложности с обновлениями устройства.
И да, в серии Q41 например CP бит уже «один на всех»! :)

Спасибо!
Но если я правильно понял дельфиньчик не умеет 868, 915Mhz то есть все что значительно выше 434Mhz. И опять таки если я правильно понимаю то что я видел на гите, приложение для IOS у флиппера до сих пор в зачаточном состоянии.

Отчасти вы правы, но можно в программе добавить новый контроллер. В статье использован PicKit3, хотя база данных называется так же как и во второй версии 3-я использует режим совместимости.

1

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity