Как стать автором
Обновить

Комментарии 15

Спасибо за шикарную хабратортную статью! Я и не думал, что на сеге возможно проигрывать звук, и не понимал почему нет диалогов и используется только MIDI.

У меня возник вопрос, по теме увеличения частоты дискретизации: почему нельзя было использовать интерполяцию? Линейную, кубическую, сплайнами Акимы? Хотя скользящее среднее - это хороший фильтр.

Любой алгоритм интерполяции требует хотя бы операции умножения. Операция умножения на процессоре M68000 очень медленная и может занимать разное количество тактов в зависимости от умножаемых чисел. Она настолько тормозная, что одна эта команда может выполняться дольше одного цикла декодера. Классические алгоритмы интерполяции не реализовать. Существуют специальные методы интерполяции, использующие предвычисленные таблицы. Но они содержат множество операций, и скорости процессора не хватит чтобы в паузе между сэмплами частотой 22 кГц успеть рассчитать новую точку.

А про линейную интерполяцию и среднее написано в статье:

Линейная интерполяция, конечно, не сильно помогла.

Резкие перепады сигнала линейная интерполяция не сглаживает, звук почти не отличается от исходного.

добавил бегущее среднее в 3 строчки

Этот метод и был использован, так как сочетает заметный эффект и быструю работу

Операция умножения на процессоре M68000 очень медленная и может занимать разное количество тактов в зависимости от умножаемых чисел.

Обожаю старое железо, которое позволяет пошерстеть мозгом. Великолепные высокотехнологические ребусы.

Атмега :) Там ещё и практический выхлоп есть :)

А вообще я всё ещё мечтаю об идеальном 4-битном MCU с кэшем-стеком и ручной выборкой строк флэша и DRAM, чтобы можно было оптимизировать до последнего транзистора/такта даже эту, обычно прозрачную, сторону вопроса :)

Заранее послать RAS, посчитать пока что-то в стеке (он же SRAM-кэш), пройтись CAS'ами по тому, что прочиталось, зарефрешить всё это обратно, послать ещё один RAS…

А если DRAM ещё и троичная (можно зарядить в одну или другую сторону), то нужно два чтения CAS (для положительных и отрицательных зарядов) и два рефреша, а потом софтово разбираться в полученном :) Но возможность такой DRAM пока под вопросом — изоляция в микрухах в основном сделана по принципу «p-n переход, повёрнутый своей „закрытой“ стороной», я немного заказные микрухи делал по молодости :) Такое «задом наперёд» фиг зарядишь :) А жаль, можно было бы ещё больше выжать из каждого ключа!

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

Аплодирую стоя.

Как было бы шикарно в какой-нибудь аркаде поймать стоп-кадр и услышать по «рации» вот таким вот голосом указания на следующий этап ^______^ Иногда мне кажется, что железо развивалось слишком быстро %) Так много упустили %)

Тут ещё не раскрыт огромный, но очень интересный пласт, который может потянуть несколько статей: это вообще архитектура приставки Sega, особенности разработки под неё. Какие кросскомпиляторы, как записывать Rom на приставку, как сделать свой хелло ворд и т.п. Ах, ассемблер, это же так круто.

В идеале бы еще зацепить и другие платформы тех лет, например, PSX. Там тоже было много чего интересного. До сих пор вспоминаю с содроганием "reverse engineering" (96-97 года) с возможностью проверить гипотезу только записав образ на болванку. Для записи, помню, можно было использовать только резак "Teac" за штукарь зеленых и болванки проигрывались только обычные (без перезаписи). Потом, с годами, стало все просто и понятно, но первые годы,... Ж)

Напомнило, как дофига лет назад мне попался .mod, в котором было NN сэмплов из Mo-Do - Eins Zwei Polizei и с их помощью реконструировали всю песню. Размер не помню, но с учётом того, что принесли на 5-дюймовой дискетке несколько .mod — вряд ли мегабайт :-)

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

Интересно было бы сделать некоторый плеер на базе консоли. Это забавная идея, надо сделать только на контроллере возможность доступа к файлам. Другое дело, какая скорость мапинга там требуется?

Нонче, правда. весьма шустрые МК есть за 200 рублей, так что успеют мапить.

Существуют разные варианты насилия над Сегой, мне кажется неспортивным расширение девайсами, которые нельзя было бы купить в 90х. Интересно жить в понятных рамках. А контроллеры, FPGA, это всё превращает сегу в терминал и она исчезает как бы.

Я искренне разделяю эти чувства. Но в таком случае надо отказываться от эмуляторов и универсальных картриджей. Ведь эти картриджи содержат контроллер.

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

Универсальный картридж переливает образ в ПЗУ, и остаётся за кадром, система работает без изменений. А читать музыкальные треки с внешнего устройства это уже вызывает вопросы. Подобное устройство могло тогда существовать, но было бы оно у 80% владельцев приставки? Наверное это уже личный выбор, удобство против каноничности. С другой стороны в старших моделях универсальных картриджей более высокие лимиты(~32мб) на размер ROM, может и не надо ничего придумывать

Ну можно архитектурно что-то такое и придумать, чтобы не было мучительно больно :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий