EN
creator cover shiru8bit

shiru8bit

Программист, музыкант, самоделкин, ретрогеймер
shiru8bit
61
subscribers
goals
23 of 32 paid subscribers
По достижению 32 платных подписок любого уровня сделаю небольшую демку для 32-битной 3DO, перечисляющую имена героев!
3 of 4

About the creator

Программист программ, музыкант чиптюнов, самодельщик самоделок, цифровой археолог и энтузиаст ретрокомпьютерного творчества. Ретрогеймер, диванный гитарист, автолюбитель с Ситроеном.
Делаю игры и музыкально-звуковые программы для устаревших и редких 8-16 битных компьютеров и приставок, а также эмуляторы таковых. Сочиняю музыку для игр, старых компьютеров, приставок, дисководов и кнопочных телефонов. Делаю электронный DIY. Публикую утомительно длинные и нудные статьи на Хабре. Могу починить примус. Могу и не починить.
На Бусти практически ежедневно публикую инсайды по текущей разработке личных и сторонних программных и железных проектов, творческие планы, эпизоды из жизни ретрокомпьютерщика и ретрогеймера, и не только. Будут цели на разработку чего-нибудь интересного, в чём можете поучаствовать и вы!
Здесь вы сможете полюбопытствовать о судьбе той или иной затеи, узнать о новейших начинаниях и при желании поддержать их финансово, что крайне приветствуется. Даже ваша бесплатная подписка даст мне знать, что вы меня читаете, и это уже поддержка!
Также у меня есть сайт со складом релизов и YouTube-канал с демонстрациями некоторых из них.

Биперные дела #2

Немного продолжаю ковыряния с бипером и Plip Plop-подобными движками.
Решил проверить одну давнюю идею, о которой давно шли разговоры, но мало кто реализовал: сделать такой движок, в котором код синтеза будет чередоваться с логикой проигрывателя, и таким образом звук будет ровный, без треска.
Идея такая: есть макрос или подпрограмма одного цикла синтеза звука, которая занимает наименьшее количество тактов и использует только определённые регистры (у меня это IX и теневой набор), оставляя остальные для прочего кода. Макрос лучше по скорости, подпрограмма добавляет накладные расходы в 27 тактов на каждый вызов, но зато подпрограмма сильно экономит память.
Так как регистры не портятся, я просто вставляю каждые N тактов в код движка call на синтезатор, и выравниваю код по тактам между вызовами.
В псевдокоде это выглядит примерно так:
call synth ;100 тактов
..какой-то код ;100 тактов
call synth ;100 тактов
..какой-то код ;100 тактов
И так сколько-то раз, пока не кончится логика.
Show more
avatar
стилизованный звук ментовской сирены получился )

Сега новодел

Для проекта, в связи которым я ковыряю джойстики и Arduino, мне нужна ещё одна рабочая Сега, которую не жалко пустить на запчасти. В частности, она нужна мне как донор корпусных деталей, а возможно и платы.
Сеги, однако, нынче очень дороги, а низ рынка представлен дичайшими поделками разных сортов — New Game, Simba’s, SZVG и прочие непотребства.
Show more

Биперные дела

Решил вернуться к истокам и покопаться в Plip Plop-подобных одноголосых движках, с прослушивания музыки на которых началось моё увлечение биперной музыкой. Подобный звук был много где, для меня он начался с Ping Pong и Stardust, также он есть во многих играх Ocean, Topo Soft, Hewson и других.
Изучил код, разобрался с техникой. Вообще-то когда-то я сделал подобное сам, в Phaser1, но у меня было два канала, а свой код я тогда придумал с нуля, повторяя наблюдаемый результат — никогда не любил отладку и разбор чужого кода, и особо тогда не вникал.
Первый образчик кода генерации звука наблюдается собственно в движке Plip Plop, который изначально разработал Джонатан Смит, а потом доработал Пол Хьюз из Ocean. Но не только. В движке Topo Soft в точности такой же код, как и код звуков перкуссии, но эти движки отличаются обвязкой. Выглядит так (вариант из Beepola, туда попал лично от Хьюза):
BUZZ0
            DEC  BC
            LD   A,B
            OR   C
            JP   NZ,BUZZ2
BUZZ1
            LD   BC,0
            EX   AF,AF'
            ADD  A,16
Show more

Arduino вместо джойстика Сеги: ковыряния

Взялся за вторую половину (из трёх-четырёх) задачи с подключением джойстиков. Теперь мне нужно имитировать с помощью Ардуины обычный Сеговский джойстик, в трёхкнопочном и шестикнопочном режимах.
В качестве исходного джойстика у меня тоже Сеговский, и мне нужно, чтобы он работал как при прямом подключении, но только через трансляцию интерфейсов на Ардуине.
Для начала соорудил стенд: тот же маленький телевизор, стародельная Сега Pro 16, Flash-картридж с парой тестовых программ, показывающих состояние джойстиков.
Show more

Я спросил у ясеня

Разбираясь в интересующем меня вопросе с помощью DeepSeek (позже ещё напишу про мой опыт с ИИ) наткнулся на упоминание Tufty как автора современной биперной музыки. Сразу созрел план спросить — кто я?

Новая статья

Новая статья про мою личную историю знакомства с игровой консолью Super Nintendo, устройство региональной защиты и подготовку пары комплектов консолей для Виталия «Хижины» Джедая и Сани «Тащи» Сушки.
https://habr.com/ru/companies/ruvds/articles/895090/
Просто каким-то чудом дожал этот давно ожидающий завершения материал, на что у меня была всего неделя между публикациями. Провалил нормальные сроки, но всё же вытянул, успел разобраться и с техникой, которая капризничала, и с текстом, из которого пришлось выкинуть часть, и всё равно он вышел огромным.
avatar
SNES/SF - зверь в наших краях был, ультраредкий, ибо в 90-х правило трио Денди/Сега/Сонька.
avatar
Alex Zhak, да, поэтому и решил про это рассказать.

Arduino вместо джойстика Денди: ковыряния #2

Кое-как справился с делами, и смог уделить время этой задаче. И наконец-то до чего-то доковырялся.
Все источники рекомендуют использовать SPI в режиме Slave: протокол джойстика Денди очень похож и легко реализуется. Логически да, а на практике я перепробовал всё, что только можно: разные контроллеры, настройки, подтяжку линий, и не получил совершенно никакого разумного результата.
Я долго пытался проанализировать осциллографом происходящее и с моим стендом, и с нормальным человеческим джойстиком, но ничего не выходило. Посылки представляют собой пакет из десятка коротких импульсов, пролетающих раз в 1/50 секунды, и я никак не могу засинхронизироваться и увидеть их своим простеньким одноканальным осциллографом.
Далее я попробовал перейти на LGT8F328P, китайскую разогнанную вдвое Ардуину. Для этих целей даже прикупил платку в формате Uno. По идее это должно было решить все проблемы возможной нехватки производительности. Сначала тоже вообще ничего не работало, включая даже тот способ, что работал раньше. Потом что-то заработало, но глюки остались точно такие же. Потом я всё переделал, и снова вообще не заработало.
В итоге я пришёл к максимально простому решению, с которого начинал, и на которое вроде бы не хватало скорости, с двумя прерываниями по Latch и Clock и с выдачей бит через стандартный медленный digitalWrite. И это заработало. Каким-то образом у меня оказались перепутаны линии Latch и Clock! Не знаю, когда это произошло, но похоже, что ещё в тестах на обычной Arduino. Как у меня что-то вообще работало раньше — это загадка дыры.
Show more

Вишнёвая Nintendo DSi

Думаете, с двухэкранными консолями покончено? Вообще-то ещё одна двухэкранная Нинтендовская неучтёночка в моих закромах ещё осталась. Но она не часть моей коллекции. 
Дело в том, что белая DSi, о которой я рассказывал примерно сто портативок назад, понравилась мне настолько сильно, что одной мне было мало. И уже тогда же я сразу приобрёл ещё одну.
Show more
avatar
Пользуясь случаем, передаю Александру огромную благодарность за удивительный экспонат в прекрасном состоянии. Уже который день получаю тонны радости и позитива. Два экранчика и стилус - это великолепно, особенно увлекательно решать головоломки профессора Лэйтона! :) 

Детали

Получил очередную партию деталей в Озоне, о которых можно что-то рассказать.
Во-первых, я искал, где купить десяток AY-3-8910 для проекта. Однако, они кончились. Раньше они были на Али сотнями, недорого, и я даже успел купить себе некоторое их количество — но для проекта остатков недостаточно. Теперь на Али есть единичные чипы по конским ценам, и те какие-то максимально левые.
Но на Озоне попалось удивительное предложение: десять AY за 530 рублей, как за одну штуку на Али. Я рискнул заказать, зная, что это может быть перемаркировка совершенно левых чипов, и… ошибся.
Show more

Новая статья

Тем временем, вышла новая публикация, про устройство звуковой системы Sega Mega Drive/Genesis.
https://habr.com/ru/companies/ruvds/articles/892890/
Это как раз то превью, которое я наколдовывал с помощью Blender'а, чтобы сделать такую вот радугу-палитру звуков.

Subscription levels

Микро 16

$ 0,2 per month
Просто потому что нельзя 8. Даже самая малая поддержка важна. Спасибо!

База 128

$ 1,6 per month
Для тех, кто просто хочет поддержать. Спасибо!

Супер 256

$ 3,2 per month
Для тех, кто хочет поддержать. Спасибо!

Кило 320

$ 4 per month
Для тех, кто сильно хочет поддержать. Спасибо!

Мега 640

$ 8 per month
Для тех, кто очень хочет поддержать. Спасибо!

Гига 1024

$ 12,8 per month
Для тех, кто крайне хочет поддержать. Спасибо!
Go up