Обновить
16K+
82
Пётр Советов@true-grue

Программист

115,5
Рейтинг
60
Подписчики
Отправить сообщение

Кстати, по части интересного FM-звучания я бы предложил послушать музыку небезызвестного Тима Фоллина для игры Time Trax. Это не OPL, а OPN2, но, тем не менее.

Послушайте и скажите теперь, что FM хуже этих ваших AY/SID! :)

https://www.youtube.com/watch?v=y45S-a-AaTQ&list=PLPAbo-cOSKYw1jpD7Qgpxe3IdvQwEB7-8&index=1

Большое спасибо! А ведь я не подозревал, что JCH -- настолько интересная личность! Обнаружил сейчас его блог и поразился, как он все свое компьютерно-музыкальное прошлое запротоколировал. Хронология по месяцам! Действительно, он много занимался портированием музыки с C64, прежде чем написать свой редактор. Меня умилила такая строка:

1996 Feb …PC Stopped coding assembler (last bit of code was for the SirFace System GUI)

А еще в блоге нашлись "компьютерные хроники" на 5 частей. В завершающей части как раз подробно рассказывается об эпохе Adlib. Завершающие абзацы очень грустно читать, поскольку это связано с несостоявшимися мечтами сочинять музыку:

I even started taking lessons from an old lady down the street and I did learn to crawl scales with a spidery hand, but actually learning and performing a tune was hard and my patience was not exemplary. Then one day, one of my newbie lessons ended with a child standing in the doorway. She was next in line and she was – 10 years? Maybe 11? She sat down in front of the piano and immediately played a wonderful tune that was vastly superior to my own level. I must admit that I lost quite some heart that day. Not long after, I quit the training and admitted to myself that it was too late. 

Впрочем, жизнеутверждающие нотки в тексте все же присутствуют:

My days as a composer were over. (Update: But only for 25 years.)

Отличная статья, спасибо! До сих пор помню демо-композиции в комплекте с редактором Edlib. Очень впечатляющее, почти "студийное" звучание! К слову, я заметил, что есть категорические нелюбители FM-звука, которым не по душе все это стерильно-металлическое богатство. Думаю, их даже звучание настоящего студийного DX7 не впечатлит :)

На мой взгляд, идеал это ритм-секция (барабаны и бас) на FM, а остальное -- на каком-нибудь SID. Увы, муз. чипов с такой архитектурой в старые времена так и не появилось.

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

Минусы ставил не я! Более того, изначально планировал, что будет дополнительная учебная задача по реализации Брус-16 на МК. Там ведь тоже можно отказаться от внешней видеопамяти и использовать только SRAM чипа.

На всякий случай, в Releases на github лежит скомпилированный эмулятор для Windows/Linux (x64).

Чего вы ругаетесь? :) Повторюсь, это статья вводная. В заявленной второй части будет справочно-техническая информация о подсистемах Брус-16 (туда и попадет "таинственный" SPU), а также описание инструментария с примерами кода.

Но вот желаемого "прикрутить", увы, не будет. Брус-16 пока останется на базовом архитектурном уровне и с инструментами-заготовками. Потому что его целевая аудитория это не вы (как я понял по тексту, человек далекий от системного программирования), а, в первую очередь, студенты, которым мы даем учебные задачи по развитию Бруса.

В любом случае, я рад, что хоть и в такой эмоциональной форме, но интерес к проекту проявляете :)

Аббревиатуры в духе GE, LTU, … действительно являются стандартом для документации на RISC-V. В статье упоминается, откуда тут взялся RISC-V. Что такое MR – сначала это был memory register, а затем стал memory result’ом :)

По поводу главного вопроса. Я думаю, от этой вводной статьи и странно было ожидать справочно-учебной информации. Документация на ISA интересна, кстати, в том смысле, что представляет пример воплощения принципа SSoT (Single Source of Truth), поскольку генерируется автоматически.

Мы рассказывали в прошлом семестре о Брус-16 на лекциях и семинарах. Для увлеченных Брусом был создан телеграм-чат. Показывали архитектуру наглядно, воссоздавая ее вместе со студентами. Начиная с совсем упрощенного варианта под названием “нано-Брус”. То есть студенты знакомились с деталями в процессе разработки простейших эмуляторов. В результате любознательные студенты по собственной инициативе переписали эмулятор уже полноценного Брус-16 для разных языков программирования, сделали ряд интересных доработок компилятора, создали графический отладчик с функцией time travel. Ну а автор ПЛИС-версии даже выступил на конференции ИСП РАН (isprasopen) :)

Но, действительно, Брус-16 пока сильно не хватает обучающих онлайн-материалов в духе nand2tetris (раз уж я вспомнил об этом проекте в начале статьи). Я очень надеюсь, что учебник в том или ином виде, все же, появится!

В принципе, конечно. Например, перезаписывать их параметры для каждой строки экрана. Это, кстати, к вопросу о модификациях архитектуры Брус-16. Я не думаю, что кто-то нуждается в моем одобрении на такие вещи, поэтому скажу, что приветствую их! :)

Спасибо за высокую оценку!

К слову, SPU в Брус-16 получился таким во многом благодаря нашему обсуждению звука. Я запомнил высказанную мысль, что нужно что-то синусоидальное-гладкое, как демо/чиптюнах новой школы :) И еще вовремя вспомнил свою же заметку по поводу Atari AMY.

Дело в том, что проект Брус-16 планировался, как источник свежих учебных задач в разных областях: цифровая схемотехника и компьютерные архитектуры, компиляторостроение и низкоуровневое программирование… Ту же загрузку картриджа можно поддержать разными способами. Один из интересных вариантов: добавить второй CPU для задач управления периферией.

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

“И почему” уже предполагает мой ответ, верно? :) Действительно, в текущей реализации так сделать не получится, поскольку GPU в начале кадра забирает к себе описания прямоугольников. Генераторы прямоугольников – просто компараторы, иерархия которых определяет цвет для очередного пикселя.

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

Еще не читал, но -- обязательно! Да, концепция 64 прямоугольников никого не оставляет, похоже, равнодушным. Одни говорят, мол, отличная идея. Другие -- "слишком мало, ничего нарисовать нельзя" :)

Будем ждать продолжения статьи со всеми подробностями о ПЛИС-реализации! Автор обещал в скором времени написать. Я точно помню, что Yosys/NextPNR мы рассматривали для использования.

На мой взгляд, стиль Брус-16, все же, отличается от Atari 2600 (ведь о ней речь?) достаточно сильно. Если мы сравним аппаратную архитектуру этих систем, то отличия станут очевидными. По поводу "упростить архитектуру": TIA у Atari 2600 простой никак нельзя назвать, уж очень она "заковыристая". Повторю, что я писал в статье: не было задачи сделать "ретроконсоль", важнее было добиться минимализма и поучительности решений. VGA с 16-битным цветом, к примеру, сегодня получить не стоит почти ничего, даже на простеньких демо-платах Tang Nano 9K уже есть HDMI-выход. Процессор был сделан 16-битным, потому что 1) и сегодня 16-битные МК вполне актуальны, 2) с 16-битным аппаратным умножителем можно хорошо поупражняться с арифметикой фиксированной точки.

Что касается Alter Ego, мы это не пытаемся скрыть, а, напротив, гордимся портом :) См. внимательнее статью, там об этой игре упоминается. Кстати, в веб-эмуляторе и поиграть в нее можно :)

Я надеюсь, что эмулятор сделать очень несложно. По крайней мере архитектура Брус-16 задумывалась легкой в реализации и в железе, и в софте. Я знаю, что существует эмулятор Брус-16 на Форте. Даже для экзотического языка Umka уже есть реализация :) В учебных целях считаю полезным делать реализации и на больших и маленьких микроконтроллерах!

По поводу схожести результата -- мы ступаем на зыбкую почву... Если сейчас существуют ПЛИС-версии игровых компьютеров и приставок, то это кому-то, определенно, нужно! Посмотрите на все эти MiSTer, Analgue Pocket, ZX Spectrum Next, ... Для некоторых игроков важно, что в "аппаратной" реализации с жестким реальным временем не может быть пропусков кадров и тому подобного.

В случае Брус-16 ПЛИС-версия, повторюсь, служила еще и обоснованием для ряда архитектурных ограничений. К слову, по поводу "дешевле" -- китайские чипы от Gowin, такие как 9K, стоят около 1 тыс. руб или менее.

Спасибо! Вся система работает на частоте VGA-режима (25 МГц). Использовали Gowin EDA. По поводу Fmax, надеюсь, ответит Кирилл :)

На мой взгляд, Don Priestley и его творения заслуживают отдельной большой статьи.

Продолжая список самобытных игр, в тексте была упомянута Knight Lore, а для меня венцом изометрических аркадных приключений стала The Great Escape. Как же она здорово сделана! Что с внешней стороны, что с точки зрения игрового дизайна!

Спасибо за монументальное пижамарамное исследование!

"Во времена оны" купил на кассете Sceptre of Bagdad тоже в русском переводе. Тогда переводы спектрумовских игр были настолько редким явлением, что я даже посчитал игру сделанной в России. Игра, к слову, очень симпатичная, одна из немногих игр этого жанра, которую я прошел без всяких подсказок и обмана и сделал это с удовольствием.

Но знали ли вы, что Sceptre of Bagdad -- на самом деле финская игра? И, судя по всему, это единственный случай коммерческого успеха спектрумовской игры, разработанной в Финляндии. Сделали ее три очень молодых человека, им было не более 18 лет на момент выпуска игры. Здесь можно прочесть некоторые подробности на эту тему: https://frgcb.blogspot.com/2016/12/twofer-14-finnish-special.html

P.S. Мне, кстати говоря, очень нравится самобытное аркадное приключение The Trap Door. Игра явно выбивается из Pyjamarama-канона в значительно большей степени, чем столь беззаветно любимая нашими спектрумистами серия про Dizzy.

Вообще-то, OISC — вовсе не такая уж непрактичная вещь. TTA формально относится к OISC, но имеет свою нишу в области встраиваемых систем.

P.S. Спасибо @vkniза напоминание о TTA.

Да, в принципе, какой угодно. С таблицами и параметризацией команд OISC-процессор достаточно быстро можно превратить в обычную RISC-архитектуру. Проблема разбухания кода решается введением виртуальной машины (внутри виртуальной машины :) Другой вопрос, если у нас серьезные ограничения по быстродействию, как в случае BytePusher, где требуется реальное время.

1
23 ...

Информация

В рейтинге
65-й
Откуда
Россия
Зарегистрирован
Активность