Как исправить игры SNES



Это интервью взято в сентябре 2019 Лукасом Сантьяго у Витора Вилела, бразильского инженера, который исправил Gradius III.

— Здравствуйте, Витор! Для нас честь принимать вас сегодня в рамках 41 конференции Canal3, проходящей в Сан-Паулу. Нам любопытно узнать о вашем патче: как вам удалось сделать Gradius III ещё лучше, устранить все замедления и сделать его более плавным и быстрым. Эта работа очень важна для сообщества любителей ретроигр и заслуживает того, чтобы о ней узнали все.

Для начала расскажите немного о себе. Как вы заинтересовались программированием для такой классической консоли как SNES?

Вилела: Сперва хочу поблагодарить вас за то, что привели меня сюда. Здесь я впервые. Надеюсь это лишь начало. Это здорово — иметь возможность поделиться собственным опытом.

Всё началось, когда мне было 7 лет, и мой отец дал мне SNES. Я был тихим ребёнком, любил оставаться дома, хобби у меня было немного. И я быстро полюбил эту консоль. Начал играть в Super Mario World. По прошествии нескольких лет я стал искать новые игры. Моя семья очень скромная, поэтому достать новые картриджи было не так просто.

Когда мне исполнилось 11 лет у меня появился первый компьютер и доступ в интернет. Мне всегда было интересно, как работают видеоигры, как, например, редактировать уровни Super Mario World. Потом я нашёл редактор под названием Lunar Magic (Лунная магия). Он очень известен в сообществе ромахакинга. Используя его, вы можете редактировать почти всё в игре, каждый предмет. Так я впервые заинтересовался редактированием ROM-образов.
Ромхакинг — процесс модификации ROM-образа игрового картриджа от компьютерной игры с целью изменения игровой графики, текста, уровней и других составляющих. Ромхакингом занимаются опытные, обладающие специальными знаниями, фанаты консольных игр.
Со временем мои интересы расширялись: как работает видеоигра, как работает компьютер?

Так как я уже хорошо понимал, как редактировать Super Mario World и делал это хорошо, приобретённые знания помогли мне развить навыки программирования. Так что я познавал всё сам, просто будучи любопытным ребёнком. Учась в начальной школе, у меня было много свободного времени, благодаря которому я мог находиться за компьютером столько, сколько мне было необходимо. Часто приходилось чинить компьютер, форматировать жёсткий диск и переустанавливать операционку, раз за разом теряя все результаты работ…

Прошло время, я набрался опыта, и к 13 или 14 годам мне удалось собрать много информации о том, как работает SNES. А также получить немного знаний о программировании в целом.

— Видно, что за это время вы многому научились сами. Судя по рассказу ваша страсть пробудила желание узнать больше о программировании. Была ли у вас возможность изучать его в учебном заведении после того, как вы увлеклись SNES? Скажем, в старших классах или колледже?

Вилела: Это правда. После этого этапа я стал интересоваться всем, что касается этой темы: от электроники, когда я был моложе, до программирования, когда я стал подростком. Для меня было легко решиться изучать компьютерную инженерию. По правде говоря, я всё ещё учусь.

— Поговорим немного об игре. Не могли бы вы объяснить нам, как удалось доработать Gradius III? Как вы его модифицировали?

Вилела: Gradius III был очень ранней игрой для SNES. Программисты сосредоточились на создании порта с аркадного автомата. Так как это был порт, они вообще не оптимизировали код. Поскольку игра не была оптимизирована, она работала с низкой частотой кадров в сравнении с аркадной версией. Это пресловутое замедление можно видеть и сейчас, даже в аркадной версии.

Я использовал чип SA-1. Он похож на процессор SNES, только работает в 4 раза быстрее. Базовая частота процессора SNES составляет 2.68Mhz. В то время как SA-1 работает на 10.74Mhz. Мне пришлось открыть код игры, понять, что делает каждая подпрограмма кода, и применить инструменты автоматизации, чтобы вместо стандартной памяти, которая используется для запуска в SNES задействовать оперативную память SA-1.

Чип SA-1 обладает собственной шиной. Таким образом, он может читать и писать подпрограммы кода по своим адресам памяти. После того как вся эта область памяти была перенесена в SA-1, мне удалось направить наиболее ресурсоёмкие части кода в SA-1, вместо более медленного процессора SNES. Таким образом, SA-1 выполняет всю тяжёлую работу, оставляя другие базовые задачи для процессора SNES. Например, он по-прежнему обрабатывает видео и аудио.

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

— Сколько она выдаёт FPS 30, 60?

Вилела: 60 FPS!

— Ого, 60 FPS! Это поразительно! Таким образом, вам пришлось переместить область памяти в SA-1, используя её как сопроцессор, чтобы избежать падения частоты кадров?

Вилела: Всё верно. Мне пришлось перенести наиболее ресурсоёмкие части кода на SA-1, который в 4 раза быстрее исходного процессора SNES.

— У SA-1 есть своя память, верно?

Вилела: Верно. SNES может получить доступ к SA-1. Сам SA-1 может получить доступ только к тому, что находится внутри картриджа. Обработка обычного кадра Gradius III занимает от 15 до 100 миллисекунд. Скорость может упасть до 20 FPS. Этого не происходит, когда вы используете SA-1. У вас есть гарантия, что игра будет работать со скоростью 60 FPS.

— Можно ли достичь такого же результата, используя другие чипы SNES, такие как Super-FX?

Вилела: Нет, потому что есть кое-что очень важное. SA-1 и процессор SNES имеют одинаковую внутреннюю архитектуру. Вы можете запустить код SNES на SA-1 с минимальными изменениями. Это было очень важно для создания патча. Мне просто оставалось перенести область памяти из WRAM (память SNES) в память SA-1 (BWRAM), позволяя SA-1 запускать тот же код, который программисты изначально планировали запускать на центральном процессоре SNES.

Основное различие Super-FX в том, что он использует архитектуру RISC. Это кардинально отличает его от процессоров SNES и SA-1, которые используют CISC, основанную на… 65С816. Ту же архитектуру, что использует Apple II.

Самым большим преимуществом в использовании чипа SA-1 была возможность направить наиболее интенсивную для центрального процессора часть кода на более быстрый чип без необходимости изменения кода вообще.

— Super-FX очень известен, поэтому я и спрашиваю о нём. Получается, если бы вы попытались сделать то же самое, используя Super-FX, то из-за различия архитектур вам бы пришлось изменять большую часть кода?

Вилела: Да. Созданный мною патч позволяет запускать один и тот же код на обоих чипах. Код может автоматически переключаться между процессами. Если он работает на процессоре SNES, он переключается на SA-1. Это происходит в обоих направлениях. Например, если это код, который должна выполнять только SNES, такие как обработка видео или аудио, то микросхема SA-1 переключает код на процессор SNES. Когда игра запущена, оба чипа работают параллельно, обмениваясь информацией и оптимизируя процесс. Это возможно только благодаря SA-1.

— Сколько времени вы посвятили исправлению игры?

Vilela: Это довольно сложно измерить. Я могу сказать, что это заняло у меня месяцы, возможно, три или четыре. Иногда я работал три часа в день, иногда двенадцать. Самая большая проблема была не в переносе частей кода в SA-1. Хуже всего было разбирать игру. Это трудоёмкий процесс — разложить, сделать её читабельной, и выяснить, за что отвечает каждая часть.

Довольно сложно чётко понять часть кода, проанализировать её, используя инструменты, и внести жизнеспособные изменения, позволяя SA-1 автоматически переключаться, этот процесс я описал ранее. Невозможно всё это сделать вручную, редактируя игру побайтово. Gradius III весит 512 КБ — это почти миллион байтов для анализа и редактирования вручную.

— Кстати, а почему именно Gradius III? Вы задумывались о том, чтобы пропатчить другие игры, или вы всегда стремились исправить именно Gradius? Вы были знакомы с этой серией, считаете себя фанатом?

Вилела: Как я уже говорил, всё началось с Super Mario World. Для него я внедрил патч SA-1 ещё в 2012 году. Но он не был популярен, потому что использовался для взлома ромов, если только вы не интересовались исправлением проблемы замедления в Super Mario World. Его особенность в том, что вы могли добавлять новые возможности, взламывая ром. Благодаря этому SA-1 стал жизнеспособным. Используя SA-1 вы обретаете дополнительную мощность, которая позволяет добавлять больше врагов, спецэффекты и тому подобное.

Я открыл серию Gradius, когда был моложе. Помню, как играл в аркадную версию Gradius III. Но, знаете, это было так давно, что я забыл об этом. И только потом, когда я проверял список игр, которые мне рекомендовали я увидел в нём Gardius и воскликнул: «О, вау! Я её помню! Мне очень нравится эта игра!»

Попробовав её, я заметил, на сколько медленной она была. Тогда и пришла мысль: если применить патч SA-1 к этой игре — это будет эффектный прирост в скорости. Потому что большинство игр для SNES работают в приемлемых соотношениях скорости и частоты кадров. Но в Gradius III, даже наблюдая за Attract mode, вы замечаете сильные замедления. И эти проседания можно исправить, используя микросхему SA-1.

— В ретроигровом сообществе, особенно в шмап сообществе, есть люди, которые считают тормоза Gradius III неотъемлемой частью игры, поскольку даже в аркадной версии присутствуют замедления. Они считают, что низкая скорость так важна, что при её отсутствии пройти игру будет просто невозможно. Итак, хотелось бы спросить из любопытства, вы проходили игру, после того как её исправили?

Вилела: Нет, не проходил. Это очень сложная игра даже в своём первозданном виде. Я в полной мере понимаю и соглашаюсь с тем, что Gradius III в его замедленном виде это именно то, чего хотели достичь разработчики. Вероятно, они заметили, что SNES не справится со своей задачей. Поэтому они замедлили игру. Извините, наоборот: они ускорили игру в некоторых частях, чтобы компенсировать замедление. Это означает, что благодаря устранению замедлений игра стала более быстрой — стала работать на более высокой скорости, выше, чем планировали разработчики.

Таким образом, мы получили совершенно иной игровой опыт. Просто благодаря тому, что теперь вы можете стрелять с одинаковой скоростью, от начала и до конца. Играбельность это совершенно другое. Игра просто… течёт! И я знаю, несмотря на то, что она стала быстрее, некоторым удалось её пройти. Дойти до конца в аркадном режиме, используя чип SA-1 не составляет труда. Если вас это беспокоит, просто проверьте YouTube — людям это удалось.

— Существует сборник для PS2 под названием «Gradius III and IV». В этой версии Gradius III можно выбрать, с какой скоростью играть: с полным замедлением, с частичным замедлением или вовсе без него. Вы знали об этом?

Вилела: Ну, я узнал об этом уже после выпуска патча SA-1. И для меня это имеет смысл. Если вы привыкли играть в старый добрый Gradius III, а затем решили попробовать его на PS2 и других платформах, то наличие или отсутствие замедления предоставит вам новый опыт. Вы почувствуете, что играете в другой Gradius.

Для меня эта функция, реализованная Konami — совершенно логична. Я считаю это очень умный дизайнерский ход: позволить игроку самому выбрать степень замедления, ведь это влияет и на сложность самой игры. Это может послужить хорошей опцией для патча SA-1. Чтобы игрок мог добавить или убрать фактор замедления.

Так что я не имел понятия об этой версии, когда начал работать над патчем. Мне просто хотелось сделать работу Gradius III быстрой, плавной, с постоянной скоростью в 60 FPS. И я сосредоточился на том, чтобы сделать всё как можно быстрее.

— Ясно. Мне было любопытно, использовали вы PS2, как эталон или просто старались добиться плавности и постоянных 60 FPS. В ходе нашего разговора я понял, что вы хотели добиться 60 FPS и вот результат. Я играл и полюбил её — игра просто потрясающая! Я давний поклонник Gradius III, но пройти его не могу, даже на лёгком уровне сложности. Но в любом случае игра невероятна!

Как вы считаете, можно ли при помощи SA-1 улучшить другие игры для SNES?

Вилела: Конечно! Это та же архитектура. Большая часть библиотеки SNES использует только центральный процессор и ничего более. Все они, безусловно, могут быть «портированы» в SA-1. Одни игры избавятся от замедлений, другие станут работать более плавно.

Возьмём, к примеру, Super Mario World. Как таковых замедлений в ней нет. Но используя чип SA-1, можно быть уверенным, что игра будет работать плавно, поскольку повысится производительность некоторых анимаций. Например, когда вы находите секретный проход или собираетесь сразиться с Боузером — там особый эффект освещения. Многие люди даже не подозревают, но в этих специфичных зонах производительность может упасть до 15 FPS.

— Ах да! Точно! Я заметил это после прочтения статьи о вашем патче в интернете. Люди особо отмечали вашу работу над SA-1 и ромом Super Mario World. Раньше я этого не знал: оказывается, когда вы завершаете раунд или покидаете дом с привидениями картинка как бы увеличивается и сворачивается на вашем персонаже, здесь при помощи Mode 7 получается эффект наподобие концовок в классической мультипликации. В эти моменты производительность сильно падает.

Кто-то сделал сравнение оригинальной игры и вашей пропатченной версии. На нём отчётливо видно величину замедления. Да, это одна из первых, если не первая игра для SNES, но замедление огромно. Мы просто понятия об этом не имели.

Из игр, которые могут быть улучшены при помощи SA-1 наверно получится большой список?

Вилела: Совершенно верно. Проблема только в создании патчей! Просто невозможно пропатчить их все, потому что это займёт очень много времени. Даже используя инструменты для создания ярлыков, это огромная работа.

К примеру, существует инструмент, который позволяет вам, пока вы играете в игру, использовать другую утилиту — она автоматически генерирует часть кода для SA-1. Несмотря на то что это огромная работа, если я буду знать, какие игры являются самыми популярными, и какие из них самые тормознутые, я могу расставить приоритеты по их исправлению.

Конечно, не считая игр, в которых уже используется особый чип, например, Star Fox. Существуют технические ограничения в отношении оборудования SNES. Есть проблема с SNES GPU, я имею в виду, что приставка имеет PPU (блок обработки изображений). Если бы не эти ограничения, то в каждой игре, которая работает медленно из-за её кода может быть использован чип SA-1.

— И напоследок бонусный вопрос от фанатов.

Одним из самых впечатляющих шмапов на SNES является Axelay, также от Konami. Это одна из ранних игр и в ней есть проблемы замедления. Даже в те времена некоторые моменты игры считались ужасными. Некоторые журналы поставили игре низкие оценки именно из-за тормозов. Таким образом, есть люди, которые из-за замедлений считают Axelay красивым, но не играбельным шмапом.

Знаком ли вам Axelay? И можно ли решить его проблемы замедления при помощи SA-1?

Вилела: Axelay мне представили после Gradius III. Я никогда в него не играл и не знал об этой игре. Но посмотрев на геймплей, я абсолютно уверен в том, что игру можно исправить используя SA-1. Если у меня найдётся время, я обязательно это сделаю. Это одна из тех вещей, которые мне бы хотелось осуществить.

— Кто-то может удивиться, но это не всё, чем вы занимаетесь, верно? Я хочу сказать, у вас ведь есть ещё и личная жизнь?

Вилела: Конечно! Я хожу в колледж и работаю на полной ставке. Остальным я занимаюсь в свободное время. Мне очень помогают сторонники, у меня есть страница на Patreon. К примеру, этот чип, это дар, потому что всю работу с SA-1 я проделал на эмуляторах. Чип, который я использую сейчас, был мне подарен поклонником из Канады, и это мне очень помогло.

Теперь я могу просто взять чип, перепрограммировать его, на компьютере, используя EPROM. Потом взять специальный картридж с сокетом — вынуть один чип и вставить другой.

После этой замены, я могу загрузить чип на настоящем железе SNES и проверить, работает ли SA-1 так, как я задумал. Разница SA-1 и других техник решения проблем с замедлением в том, что с SA-1 вы можете играть на настоящем железе, это полноценные ощущения.

Все изменения, которые вы производите, потом можно опробовать в игре на настоящей SNES. Всё запускается на родном железе.

— Это очень важно, потому что эмуляторы не всегда хорошо написаны. При запуске игр они редко предоставляют действительную реализацию цикла за циклом. Недавно вышел новый эмулятор BSNES, который предназначен для идеальной реализации SNES на аппаратном уровне, но для его нормальной работы требуется Pentium IV. Это тяжёлый процесс — воспроизводить каждый кадр, каждый цикл.

Для вашей работы эта способность очень важна. Вы можете кодить и тестировать свою работу на настоящем железе.

Вилела: Точно. Кроме того, на сегодняшний день не существует эмулятора для SNES способного реально и точно воспроизводить SA-1. Работу этого чипа никто не смог до конца понять. О нём нет ничего вразумительного. SNES была изучена вдоль и поперёк, но как таковых знаний о SA-1 нет.

SNES работает на скорости 2.68Mhz или 3.58Mhz. Пока SNES простаивает, SA-1 задействует неиспользуемые ресурсы (ПЗУ и ОЗУ), и выполняет код, только быстрее. Ни один эмулятор не справится с этим идеально. Потому что вам нужно не просто эмулировать SNES цикл за циклом, вам также необходимо одновременно эмулировать и все внутренние микросхемы, а это требует мощного процессора. Не вдаваясь в подробности, технически это как эмулировать SNES на тактовом уровне. Это означает соответствовать NTST, которая составляет 21 Mhz.

BSNES очень известный эмулятор. На самом деле, по словам автора, для эмуляции SA-1 вам понадобится процессор Intel Core i7 с частотой 3 Ггц. Намного мощнее, чем Pentium IV, потому что вы должны выполнять последовательность инструкций.

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

— Отлично! Было очень приятно видеть вас здесь, словно мы побывали на мастер-классе. Большое спасибо за интервью. Особая благодарность за то, что вы посвятили столько времени и энергии улучшению наших любимых игр, чтобы мы могли насладиться ими в полной мере. Невероятно, что благодаря таким людям, как вы — решившимся сделать это, мы можем так играть в наши старые добрые игры.

Ещё раз большое спасибо!

Вилела: И я вам благодарен. Это честь давать подобное интервью. Я надеюсь в скором времени мы увидим больше игр, исправленных при помощи SA-1, чтобы сообщество стало ещё счастливее. Я постараюсь оставаться на связи. Пожалуйста, не стесняйтесь писать мне в ваших любимых социальных сетях: Twitter, Discord, YouTube. И конечно, на канале Patreon. Я очень активен в сетях. Это моё хобби, это то, чем я занимаюсь в свободное время, это моя страсть с детства. Ещё раз большое спасибо за приглашение.

Оригинальное интервью: ShmupsBR: Entrevista c/ Vitor Vilela

Читайте также под звуки радио:
Интервью 2001 года с Масато Маэгавой, взятого аккурат перед релизом Ikaruga. В нём основатель и руководитель Treasure рассказывает об игре, о месте жанра скролл-шутеров на рынке и его будущих перспективах: Ikaruga — философия шедевра

Разговор с композитором — кудесником операторного синтеза, работавшим в Arsys, а после и в Treasure — Интервью с Тосией Яманакой

Интервью с Хисаёси Огура и музыкальной командой Zuntata впервые опубликованном в книге Darius Odyssey, в 2009 году — Zuntata — музыкальная команда Taito

Лайфхаки по программированию от Алана Тьюринга (Mark I/II)

В процессе обсуждения в комментариях соседней темы я набрёл на замечательное руководство от 1951 года по программированию серии одних из первых британских ЭВМ — Manchester/Ferranti Mark I/II за авторством самого Алана Тьюринга: curation.cs.manchester.ac.uk/computer50/www.computer50.org/kgill/mark1/RobertTau/turing.pdf
И там на странице 55 есть замечательная секция «Programming Hints» — «Приёмы и трюки программирования».
Конечно я не мог не ознакомится с тем чем и как дышала передовая программерская мысль в 1951 году.

Читать дальше →

Архитектура и программирование Fairchild Channel F

«Channel F homebrew would be like programming sprites via hardware jumpers...»
/ chadtower, atariage forum /




Игровая приставка Fairchild Channel F, также известная как VES, появилась в ноябре 1976 года. В отличие от своих предшественников типа Ping-Pong, Tennis (в том же ряду — советский «Видеоспорт»), у неё было очень существенное отличие — наличие микропроцессора и картриджей с программами. До этого игры в приставках реализовывались на жёсткой логике — программа, в современном понимании, там отсутствовала.

Fairchild Channel F выпускалась вплоть до 1983 года. За это время было продано более четверти миллиона этих приставок и выпущено около 30-40 игр, некоторые из которых — уже в 2000-х годах.

Говоря о первенстве в плане использования микропроцессора стоит отметить, что RCA Studio II, о которой я рассказывал в прошлой статье, опоздала всего на пару месяцев, но оказалась существенно слабее Channel F, ввиду чего и провалилась по продажам. Впрочем, появление, менее чем через год, Atari VCS — вытеснило с рынка и Channel F.

Развития Fairchild_Channel_F, как такового, не было. В System II и нескольких клонах, типа Saba Videoplay 2 (1979), отличия состояли преимущественно в корпусе, джойстиках (кстати, все они понимали кроме обычных положений ещё и поворот ручки) и количестве микросхем. Архитектурно всё было практически идентично.

Что же собой представляет Channel F?

Читать дальше →

Компрессия на спектруме: MegaLZ

Начну с короткого вступления не совсем по теме. Я сильно увлёкся сжатием данных и за пару лет прошедших с прошлого обзора компрессоров наработал довольно большую кучу информации. К сожалению, у меня совершенно нет времени и сил делать ещё один огромный обзор, как я сделал в 2017 году. Поэтому формат подачи меняется. Я буду понемногу писать индивидуальные профили компрессоров, и обновлять их по мере необходимости. Таким образом, мне не придётся сидеть на новых результатах годами, а у вас будет информация посвежее.
Итак, go go go go go!

R-Type

Сегодня предлагаю немного поговорить о папе всех shoot-em-up игр: R-Type. Игра, конечно, не была самой первой игрой жанра, но очень трудно найти что-либо еще, столь же сильно повлиявшее на развитие стрелялок, как R-Type. Если пораскинуть мозгами, то можно вспомнить Gradius, Xevious или Space Harrier, но для горизонтальных шутероы именно R-Type, на мой взгляд, задал вектор развития на много-много лет вперед.




Blast off and defeat the evil Bydo Empire

Flopster - VST-синтезатор, издающий звуки дисковода

Flopster — плагин-эмулятор дисковода, играющего ноты. Первая версия вышла ещё два года назад, с её помощью был написан трек Track 0 Sector 9, занявший первое место с конца на DiHalt 2018 Lite. Эта версия не имела GUI, в ней был только один набор сэмплов и некоторые недоделки. Настало время обновлений:



  • Исправлена система приоритетов для нот, теперь играет нота, нажатая последней, а при отпускании продолжает играть предыдущая
  • Расстройка в пределах полутона вверх и вниз
  • Изменение высоты звука в пределах двух октав вверх и вниз (эти две настройки полезны для создания пачек)
  • Поддержка колеса питч-бенда, без сглаживания, что даёт совместимость с моим чиповым арпеджиатором ChipArp
  • Убраны щелчки в звуке в момент перезапуска и смены сэмплов
  • Улучшена эмуляция положения головки дисковода. Это позволяет продолжать звук движения головки с предыдущего места независимо от изменения высоты звука
  • Графический интерфейс. Пользы от него мало, но можно смотреть на мигающие светодиоды и перемещения головки
  • Второй набор сэмплов
  • Поддержка x64, недавно добавлена во все мои плагины (которых уже два десятка)

Плагин использует сэмплы, записаны все ноты с разными способами извлечения звука. Они лежат в открытом виде и могут быть использованы в любом другом сэмплере. Смысл отдельного плагина в имитации поведения дисковода и удобном управлении. Подробности описаны в readme.txt, в двух словах разные звуки извлекаются посредством установки разной velocity для нот.

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

Скачать Flopster v1.1

Также с недавних пор можно понаблюдать за оглушительным успехом в деле монетизации подобной активности и узнать о других моих проектах директли фром май харт.

8/16-битный компьютер мечты (процессор Simpleton)

Американский видеоблоггер 8-bit-guy давненько уже поднял и периодически ворошит такую тему как «какой мог бы быть 8-битный компьютер моей мечты» — со своим видением вопроса. Эти его видео напомнили мне что сама эта идея «а как бы я хотел чтобы было устроено нутро компьютера» сопровождает меня и, я верю, что и вас с самого детства. И так как мы тут рассуждаем в рамках ретро, то вопрос стоит именно как в заголовке.
Тему эту в вялотекущем режиме я уже обсуждал тут: gamedev.ru/flame/forum/?id=242499 (читать совсем необязательно) и раз уж здесь у нас возникло какое то летнее затишье, то решил немного перенести оттуда сюда уже в виде некоторых выжимок для «просто поболтать».

Читать дальше →

ZX-Art 06.2019: карты и геокодирование

Рад представить вашему вниманию новый функционал на архиве ZX-Art. Это — очень древняя идея, которая по некоторому несвязанному со спектрумом совпадению получила внезапное развитие и реализацию. Встречайте: раздел геокодирования.




Читать дальше →

Обзор архитектуры Game Boy (+Color)



Восьмибитная портативная консоль от Nintendo — Game Boy вышла в 1989 году — через 6 лет после выхода домашней стационарной Famicom/NES (известной у нас под брендом Денди) и очень сильно опередила всех своих конкурентов. Фактор портативности довольно сильно урезал возможности аппарата и чёрно–белые игры на нём выглядели бледными копиями аналогов на старшем брате, но популярности это нисколько не помешало. А в 1998 году вышла обновлённая версия консоли — Game Boy Color, которая сильно раздвинула и цветовые и другие возможности при этом сохранив обратную совместимость. Сегодня мы обзорно рассмотрим эти две консоли изнутри с точки зрения программиста.

Читать дальше →

EVALUA - VST для математиков

Новый VST-инструмент, имеющий некоторое отношение к этим нашим демосценам — EVALUA. На этот раз генеративный синтез на основе вычисляемых математических выражений.

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

В районе 2014 года вышло и несколько синтезаторов на основе этой идеи, но почему-то в экзотических форматах и программах — один был внутри мобильного секвенсора Caustic 3, другой в виде модуля для очень платного Reaktor 6, третий в браузере, а четвёртый вообще в виде элемента большого железного модульного синтезатора. Насколько мне известно, доступных широким массам подобных синтезаторов с тех пор так и не появилось.

Природа не терпит пустоты, и лучше поздно, чем никогда — спустя годы мой синтезатор делает нечто подобное, но он более доступен, потому что VST и бесплатен, и более применим практически, так как предназначен для осознанного сочинения музыки на основе созданных программным синтезом тембров и звуко-ритмических фрагментов, играемых на высоте нужных нот, а не тех, какие получатся. Аналогично FM-синтезу, не обязательно понимать суть вычислений, можно просто экспериментировать с пресетами, редактируя их в духе первых шагов освоения Бейсика, и получать новые странные звуки.

EVALUA - a math synth VST

Качаем и получаем: shiru.untergrund.net/files/evalua.zip