Обновить
97
0
Александр Мачуговский@Manwe_SandS

UX/UI дизайнер/исследователь, демосценер

Отправить сообщение

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

В том же году была работа Magic Carpet 4k, и тоже по мотивам игры.

Да, работа кодера на высоте. Но это демонстрация игрового движка, а не scene demo. Впрочем, под правила демо-конкурса подходит, так что претензий нет. Чем больше работ присылают на конкурсы демо, тем лучше!

Бери лучше PDPy11. Он красиво сопрягается с Sublime Text и с эмуляторами. Кстати, PDPy11 был создан специально для работы над «Good Apple» для БК 0011. Потом мы его допилили, чтобы компилировал файлы в формате RT-11 для УКНЦ и Союз-Неона.

Да, именно так – была написана программа на Питоне. На вход ей подаётся большая пачка PNG-файлов, причём у каждого кадра снизу есть дополнительная область, в которой изображена палитра. На первый взгляд может показаться, что палитру можно определить автоматически по содержимому кадра. Но это не так – у БК 0011 одни и те же цвета встречаются в разных палитрах. Подбор палитр вручную помогает лучше подготовиться к переходу на следующую сцену. На плавных переходах между сценами кажется, будто одновременно отображаемых цветов больше, чем БК способна отобразить.

Особенность всех старых компьютеров – малое быстродействие. БК 0011 исполняет в секунду 250 000 операций регистр-регистр, а более сложные пересылки в памяти могут занимать и 72 такта (при частоте процессора всего 4 МГц).

Поэтому на БК 0011 я использовал дельта-компрессию – хранил только разницу между кадрами. При частоте кадров 25 в секунду БК успевает обновить только небольшую часть экрана. Поэтому при больших изменениях от кадра к кадру удаётся обновить не всё. Потом оно постепенно докрашивается на следующих кадрах.

Ну и отдельная хитрость: если изменений между кадрами мало, то оставшееся в запасе время используется для формирования ключевого кадра, который пригодится в будущем. Поэтому иногда при очень больших изменениях на экране вообще нет артефактов: это значит, что мы переключились на сформированный заранее ключевой кадр. Такое переключение делается всего одной командой (у БК 0011 два экранных буфера).

Небольшая пометка о БК 0011М – приведённая версия работает только на разогнанной до 6 МГц БК. Но есть и другая версия, для стандартной БК. При этом она выглядит интересней: https://www.youtube.com/watch?v=8Q1vN51o-Dg

Демосцена жива!

У ленточных микрофонов направленность – восьмёрка. Сбоку ничего не ловит. Сзади слегка проникает, но я ставлю небольшую поролоновую ширму на расстоянии – этого достаточно. Вполне студийный звук получается.

Капризные в плане хранения и перевозки. А для домашнего использования норм

Про звук: советую обратить внимание на ленточные микрофоны, они очень хороши для записи дикторского голоса.

Если писать демки под DOS, то с ассемблером в руках получше выйдет быстродействие. А если замахнуться на sizecoding в 256 байт, то C++ вообще мимо

Я рад за родной МИЭМ, что там теперь изучают RISC-V.

Что касается специализации, не всем же быть проектировщикам процессоров. Программисты тоже нужны. В том числе и те, кто программирует под простые однопоточные микроконтроллеры с ограниченными возможностями, типа ATtiny.

Верилог будет интересен тем, кто осилил электротехнику и научился получать от неё удовольствие. Этот путь может начаться как с конструирования простейших схем на дискретной логике, так и с ретро-компьютинга. Главное – заинтересовать ребёнка электротехникой, а с какого боку к этому подойти – не так важно.

В 1978 году большинство кода компилировалось.

Ну так значит профессор выявил, что компиляторы не используют некоторые инструкции и методы адресации. А не то, что эти инструкции не пригодятся людям. Фактически, он выявил слабые стороны авторов компиляторов.

Существующий в то время Си-компилятор Portable C Compiler (AT&T, Стивен Джонсон - с которым я работал в одной компании) успешно использовал все методы адресации PDP-11 с помощью генерации кода по шаблонам, используя алгоритм Сети-Ульмана.

GCC до сих пор выдаёт неоптимальный код под PDP-11. Компиляторы – не показатель достоинств или недостатков архитектуры. Это лишь показатель способностей авторов компиляторов.

Исследование проводилось не на коде студентов, а на коде коммерческих программ.

Ещё хуже. Всё равно что обучать ИИ на коде индусов.

Вы ошибаетесь. В начале 1990-х в американских университетах произошло то самое изменение базы

Вы ошибаетесь: я говорил про российские ВУЗы. В 90-ых годах там начинали с ассемблера 8086, потом переходили на i386.

Смысл обучения студентов заключается в том, чтобы они могли устроиться на работу в Samsung, Intel, AMD, NVidia, Apple, в России - Syntacore/Yadro, НПО Элвис, Байкал Электроникс и подобные конторы.

Что-то я не заметил, что выпускники российских ВУЗов после изучения ассемблера x86 не могли найти работу в западных компаниях. Ещё как могли, могут, и до сих пор ценятся.

Для этого он должен владеть 1) приемами проектирования на уровне регистровых передач с помощью языка описания аппаратуры SystemVerilog и 2) элементами микроархитектуры, которая включает в себя конвейерные процессоры с stalls, forwarding, hazards, алгоритм Томасуло, работу кэшей итд - это все вопросы на интервью.

Вы говорили "главное не вовлекать в ретрокомпьютинг детей". Я так и не понял, как детям повредит общее представление об архитектуре ранних микропроцессоров. Мы в школе проходили Чарльза Бэббиджа, и ничего – плохими программистами и схемотехниками из-за этого не стали. Нет ничего плохого в том, чтобы знать историю развития ВТ.

учить это по PDP-11 неоптимально, а по x86 бесполезно - там слишком много костылей

Про x86 соглашусь, а в PDP-11 не вижу ничего плохого. Процессоры PDP-11 интересны тем, что и на микрокоде делались, и без него – много интересных вариантов, есть что сравнить. Также не вижу ничего плохого в Бейсике и Паскале в качестве первого языка программирования, скажем для 6-летнего ребёнка. Давать сразу Verilog – очень сомнительная затея.

Может быть тогда и про продвинутые методы адресации не стоит так категорично говорить, что они не нужны и только зря смущают студентов?

А я много раз слышал как преподаватели запрещают оператор Goto, ссылаясь на Никлауса Вирта и других теоретиков "правильного" программирования. А потом выпускники ВУЗов, став лидами, на code review могут надавать по шапке за Goto.
Кто же прав? Вы или все? ;)

ветвь развития, основанная на недостаточном анализе пользовательских программ

Ровно наоборот. Система команд PDP-11 была получена путём анализа кода, написанного на предыдущих поколениях машин. Причём, анализа не ручного, а автоматического (что исключает предвзятость), на PDP-10 всё это обсчитывали.

Джон Хенесси в 1978 году в Стенфорде сделал со студентами анализ реального использования инструкций в пользовательских программах и выяснил что вся парадигма инструкций со сложными addressing modes не подтверждается практикой

В 1978 году не подтверждалась, а в 1969 подтверждалась. Это говорит лишь о том, что ухудшилось преподавание и студенты (или на чьём там коде проводили исследование) писали код тупо, не понимая как использовать методы адресации.

Вы начали комментировать статью в контексте образования – чему надо учить детей/студентов. Если бы их нормально учили думать, писать изобретательно, использовать все возможности машины, если бы прививали культуру оптимизации кода – они бы использовали все методы адресации. А их не научили. Это результат демократизации программирования: если раньше программы писали хакеры из MIT – элита, лучшие умы, то к началу 80-ых понабрали по объявлению миллион желающий "войти в айти" – студентов-платников, у которых IQ в среднем такой же, как в любой другой отрасли. Вот и получился говнокод, который проанализировали в 1978 году и сделали "глубокомысленные" выводы.

VAX-11 - против сравнимого по сложности MIPS R2000 и приходила к выводу, что MIPS R2000 втрое прооизводительнее

VAX-11 – устаревшая технология, обременённая обратной совместимостью. Процессоры Intel страдали тем же, поэтому также проигрывали MIPSу. Тем не менее, в институтах изучали и до сих пор изучают ассемблер x86. Если предложить ребёнку в качестве первого ассемблера какой-нибудь MIPS или ARM, можно вообще отбить охоту к низкоуровневому программированию.

А в чём вы видите смысл обучения студентов? Чтобы они писали производительные программы? Типа, взял самый производительный RISC-процессор, написал на Си говнокод, компилятор сам как-то всё оптимизировал, и вуаля – студент молодец, выдал втрое более производительную программу, чем на VAX?

PDP-11 – это база, на ней проще всего объяснять. Тут уже писали про Си++, а ++ это тот же PDP-шный автоинкремент, которым вы пугаете детей.

Начинать обучение лучше с простых вещей, а не с вентелей защищённого режима.

А оператор GOTO использовать тоже грех, ересь и порча детской психики?

да, Cubic Player умел. Но использовать 486-ой компьютер в однозадачном DOS-режиме чтобы просто слушать музыку – такое себе. Намного удобней был магнитофон (у меня рядом с компьютером стоял, плюс стопка кассет) – вся та же музыка, и компьютер свободен для других задач.

А трекерную музыку можно было слушать в фоне. Даже самый первый Scream Tracker и проигрыватель STMOD на 286-ом компьютере умели выходить в DOS shell, чтобы пользователь мог выполнять другие задачи. А во времена 386-ых компьютеров уже можно было запускать многозадачные оболочки под DOS типа DESQview. Я так слушал трекерную музыку в Inertia Player и одновременно программировал на Clipper.

На паре ВИ53 была приставка Менестрель для БК 0010. 6 тональных каналов, жаль что без барабанов. Но барабаны можно было добавить на спикере.

Офигенный проигрыватель. Слушать MODы и S3Mы было интересней, чем MP3! Какой смысл в MP3, если на кассете или CD та же музыка звучала намного качественней, да и процессор не грузила. Помню, первые mp3 приходилось распаковывать, прежде чем играть – скорости процессора не хватало. Он только ADPCM тянул в реальном времени, а у ADPCM качество примерно как у MODов :)

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность