creator cover shiru8bit
shiru8bit

shiru8bit 

Программист, музыкант, самоделкин, ретрогеймер

89subscribers

904posts

Showcase

1

About

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

Замена батарейки в картридже

Да, иногда я провожу и такие банальные мероприятия. Но почему бы не написать про это, ведь такой опыт может быть более полезен другим людям, нежели мои обычные ковыряния с непонятной дичью.
Прибыл такой вот картридж для GBA, пираточка с Metroid Fusion. Проблемы: когда-то в нём села батарейка, её поменяли, но не помогло. У меня включался раза с десятого, не каждый раз, и постоянно зависал.
Переменная полярность
Максим Парасюков, если достаточно часто перепаивать батарейку, то да  beaming_face

Расковырял текстуры с помощью ИИ

Мне захотелось поковыряться в потрохах игры Escape From The Monster Manor для 3DO. Это такой Wolf 3D-клон с атмосферой ужастика и более богатой графикой. Играл в неё в конце 90-х, она была уже слишком примитивной после игр на PS1, но запомнилась, и время от времени я её вспоминаю.
Меня интересовали некоторые вещи: как игра рисует изображение, почему так медленно для такого простого движка, но также — почему она выглядит так, как выглядит, куда богаче, чем Wolf.
С первым всё просто: четыре года назад автор игры выложил её исходники на GitHub. Также он снял одно видео про то, как устроена игра, и обещал продолжить пояснения, но забил. Идея примерно та же, что и в моём движке, который я сгенерировал с помощью ИИ: рейкастинг находит все потенциально видимые стены, далее их рисует растеризатор. В случае с 3DO это CEL Engine.

Починил Flopster

Одной из задач, которую я планировал решить в процессе написания «дисководного» альбома, была починка VST-плагина Flopster, на котором, собственно, я и пишу альбом.
Дело в том, что этот плагин, как и все мои плагины с GUI, страдает нестабильностью: в Reaper он примерно в одном случае из 5-10 может уронить программу при открытии проекта, без каких-либо сообщений об ошибке: загружаешь проект, и Reaper закрывается. А у некоторых пользователей в FLS это происходило гораздо чаще. Плагинам моим уже много лет, некоторым без малого десять, и я не раз пытался разобраться, в чём же проблема, но ни одна идея не сработала.
Дело в том, что когда я писал эти плагины, а они написаны нормальным голым кодом на C++, а не сконструированы в каком-нибудь SynthEdit, я просто не знал, как это делать. Примеры создания GUI практически полностью отсутствовали. Также отсутствовало понимание, каков вообще жизненный цикл плагина, когда и какие методы вызываются хостом, в каком порядке — VST2.x не отличался хорошей документацией, и так и был deprecated. VST3 же значительно сложнее, и переходить на него я не хотел и не хочу.
Дополнительной проблемой было отсутствие отладки. VST-плагин — это DLL-ка с набором методов, известных хосту. Без хоста её никак не проверить. Поэтому я собирал DLL, загружал в VstHost, Psycle и Reaper, и тестировал там. Если падало, то искал проблему и собирал. К тому же, в старые времена у меня по какой-то причине вообще не собирались плагины в Debug. Таким образом, плагины отлаживались методом тыка: падает — ищу и чиню, не падает — значит работает.
Долгое время я считал, что проблема нестабильности растёт из моего непонимания жизненного цикла плагина и некорректного прикручивания GUI к нему. Типа, возникают гонки доступа, код обращается к ресурсам, которые уже удалены, и так далее. Я обкладывал код всяческими сейфгардами, но это не помогало.
Помог, как водится, ИИ. Обычный чат DeepSeek. Я просто дал ему код трёх разных плагинов и попросил проанализировать проблемы в них. Конечно, проблем там оказалось навалом, но не критических, это скорее просто устаревший менеджмент памяти (без RAII), не лучшая архитектура, и bad practices. Он нашёл некоторые гонки и предложил больше сейфгардов, но это не помогло. Ведь я искал что-то общее, проблему, которую я, предположительно, размножил копи-пастом на все свои разработки.

Перекрасил Yamaha SHS-10

Я уже рассказывал о своей недавней покупке музыкального инструмента мечты, базовой «расчёски» Yamaha SHS-10. К сожалению, они редки и дороги в наших краях, и я мечтал о классической красной, а купить удалось серую, немного побитую жизнью, и за 22 тысячи. Это не совсем закрыло гештальт, и я рассказывал о попытке покупки другой SHS-10, уже красной, но с разбитым пластиком. Её выставили за 10К, увели из под носа и сразу же выставили за 22К. До сих пор висит, цена постепенно падает, уже 18К, но в таком виде, понятное дело, оно никому не надо.
Но Авито славится тем, что после покупки того, что ты искал, он продолжает держать в курсе и постоянно рекомендовать уже купленное. Вот он и порекомендовал в очередной раз: в скупке города Пушкино, к слову, одной из первых, посещённых мной в жизни, возник красный вариант за 17699 (с доставкой) в хорошем состоянии. Это ниже рынка, я попытался купить, и попытка увенчалась успехом.
Этот лот даже шёл в родной картонной коробке, хотя и изрядно потрёпанной, и без оригинальных картонных вкладышей.
Музыка из дисководов: трек #5
Пятый трек будущего альбома «дисководной» музыки.
Level required:
Микро 16

Псевдо-3D и ИИ

В недавнее время продолжал свои эксперименты с «написанием» полностью программных псевдо-3D движков посредством ИИ. Схема прежняя: я описываю словами архитектуру и фичи, ИИ генерирует код, я никакой код не пишу вообще, в его код глубоко не вникаю, только говорю словами: «ничего не работает, это глючит, то глючит, всё плохо, сделай хорошо». Весь процесс происходил просто в чате DeepSeek, никаких агентов и интеграций в IDE.
Следующим я попробовал реализовать когда-то задуманный псевдо-3D движок, комбинирующий возможности движков Wolfenstein 3D и Doom. Идея в том, что вся геометрия хранится в плоской карте тайлов, как в Wolf, и состоит из столбов переменной высоты: есть высота пола, высота потолка, текстура на вершине пола или колонны на потолке, и опциональные вертикальные стены на рёбрах и диагоналях каждой из клеток (средние стены в Doom). Также есть спрайты и «поворотные» двери, как в Duke Nukem. Наклонов камеры нет, это именно продвинутый Wolfenstein.

Игровые пополнения

Парочка игровых пополнений, случившихся в недавнее время: одно на Switch и одно на ПК.
Первым номером идёт персидский Принц, The Lost Crown. Я люблю эту игровую серию, проходил наверное более половины вышедших игр, и поэтому давно хотел приобрести что-нибудь и для Switch.

Музыка из дисководов: трек #4

Продолжаю держать график, следующий трек также готов.. Правда, художественно пока всё это склоняется в ту же сторону, что и все предыдущие подходы. Но что поделать: сами эти звуки подсказывают именно такую музыку, с резким клубным басом, с интонированием в мелодиях. И если это само лезет в голову и быстро пишется, зачем же сопротивляться.
По мелодиям я придерживаюсь самых простых повторяющихся фраз, чтобы это звучало как повторяющиеся операции чтения, а все синкопы идут в перкуссии и немного в басу.
shiru8bit
t4 warez party.mp3
0:00
2:30
Впрочем, отличающиеся идеи ещё есть. Например, хочется сделать более перкуссионный трек, построенный больше на ритмических рисунках. Есть такое явление: исполнение музыки стуком по столу, где выразительные средства весьма минимальные (стук с разной степенью глухости, шорох), но мастерам этого дела удаётся создавать из них очень интересные и разнообразные композиции. Что-то такое можно попытаться повторить на звуках дисковода. Пока обдумываю.
Тем временем, половина альбома (не считая бонусного трека) уже сочинилась. Правда, по сведению идей получше пока не появилось, и возможно, оно останется почти таким же. Но может что-то и нащупаю.

Новая статья

Вышла очередная статья. На этот раз исследую самую классическую программу на Бейсике для восьмибиток, которая почему-то почти неизвестна в наших краях. Откуда взялась, что делает и как работает.
https://habr.com/ru/companies/ruvds/articles/1049950/

Алюминиевые детали

Китайский посредник прислал весточку: мои алюминиевые детали для проекта «Ну, погоди» на «Амуре» уже готовы!
Детали уже отправлены почтой, прибудут дней через 10. Да, это стоило немало денег (4 тысячи), но как же это круто, что такая возможность в принципе есть.
Subscription levels6

Микро 16

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

База 128

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

Супер 256

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

Кило 320

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

Мега 640

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

Гига 1024

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