Оригами-дерево – 5 простых вариантов на все случаи жизни


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

Домик оригами в пошаговых фото инструкциях и схемах

Многим детям нравится мастерить различные поделки самостоятельно. Дом оригами, бумажные фигурки кукол и деревьев отлично подойдут для совместной игры с друзьями. С подобным мастер-классом малыши справятся без проблем.

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

Благодаря пошаговой инструкции, схемам, фото, видео начинающие выполнят домик правильно, не потратив на него много времени.

Для рукоделия потребуются:

  • двусторонняя, цветная бумага или любой подходящий материал;
  • краски, фломастеры, разноцветные карандаши, гелиевые ручки;
  • элементы для декорирования;
  • ножницы, линейка, клей.

Складываем небоскрёб

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

Подробное описание. Следуйте схеме и фото, приведенных ниже.

Сложите цветной квадрат по диагоналям, наметив линии сгиба. Боковые стороны загните углами внутрь к центру шаблона.

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

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

Заверните внутрь бока треугольника, образуя верхушку башни. Зафиксируйте её. Подогните нижний треугольник фигуры. Разверните заготовку, согните её вдоль пополам.

Нарисуйте на ней окошки и двери. Домик готов.

Складываем маленький домик

Этот экземпляр прост в выполнении. Используя схему сборки, сложите домик вместе с малышом. Пускай он добавит свои разнообразные идеи, дорисует красками окна, двери. Выполнит их из цветных аппликаций, приклеив на изделие.

Оригами дома для детей складывать легко. Следуя ниже приведенным фото, получите следующую поделку из бумаги.

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

Видео: Простой 3Д домик из бумаги

Складываем дома разных типов по фото МК

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

Описание: согните лист бумаги по диагоналям, чтобы наметить линии сгиба. Затем загните сторону квадрата на ¼ по направлению сверху вниз. Заверните бока квадрата внутрь к центру.

Сделайте крышу, направив верхние углы фигуры внутрь, чтобы образовался треугольник. Делайте загибы аккуратно. Заверните низ изделия на 1/3. Загните уголки книзу. Раскройте кармашек домика.

Согните сторону кармашка так, чтобы она была на лицевой стороне шаблона. Домик выполнен. Дополнить можно аппликациями и прочим.

Следующая фигура имеет вид нескольких домиков из бумаги оригами, находящихся рядом.

Описание: загните стороны фигуры с обеих сторон внутрь (вертикально). Повторите процедуру еще раз, как показано ниже.

Разверните фигуру, переверните её. Сделайте загибы на прямоугольнике согласно схеме.

Разверните кармашек с правой стороны фигуры, чтобы получился домик оригами.

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

Видео-уроки помогут разобраться лучше со сборкой подобных изделий.

Простая оригинальная идея оригами домика с использованием двусторонней цветной бумаги. Если таковой нет, возьмите два листа разных оттенков.

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

Разверните его до прямоугольника. Сложите обе стороны по направлению внутрь, как указано на рисунке.

Раскройте стороны, загнув их книзу. Образуются треугольники. Разверните образовавшиеся карманы с обеих сторон.

Получится следующая фигура — два дома оригами. Можете их украсить.

Фото МК оригами домика для детей

Оригинальная идея для создания игрового кукольного домика.

Видео: Как делать домики из бумаги

Схема сборки объемного домика из бумаги

Родителям, имеющим в своем распоряжении немного времени, создание бумажной поделки совместно с ребенком не просто процесс, а игра. Теремок, сложенный своими руками, хранится чадом долгое время. А может дитя увлечется техникой оригами настолько, что будет делать сюрпризы для родных из бумаги самостоятельно. Объемный дом из бумаги создается по схеме сборки:

Несложная инструкция: возьмите два разноцветных листа. Загните сторону квадрата сверху, как показано ниже на фото. Верхние уголки образовавшегося прямоугольника загните назад.

Образовавшийся домик оригами согните пополам. Загните назад её правый верхний уголок. Получилась крыша теремка.

Разверните изделие, а образовавшийся карман вогните внутрь. Оформите художественно оригами домик из бумаги.

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

Видео: Кукольный оригами домик

Подборка схем по складыванию домов из бумаги

Разработка софта для консоли

Первый кусок софта, написанный для консоли, — это загрузчик. Он хранится в постоянной памяти процессора и занимает до 8 Кбайт. Он же использует первые 256 байт оперативки процессора. Загрузчик — первый софт, запускаемый на процессоре. Его цель — показать программы, доступные на SD-карте. Эти программы хранятся в файлах, которые содержат скомпилированный код и могут также содержать данные кастомной графики и звука.

После выбора программы она загружается в оперативку процессора, символьное ОЗУ и ОЗУ звукового модуля. Там соответствующая программа выполняется. Код программ, загружаемых на консоль, может занимать до 56 Кбайт памяти — за исключением первых 256 байт; также, конечно, нужно учитывать объем стека и оставлять место для данных.

И загрузчик, и программы для этой консоли разрабатываются похожим образом. Коротко поясню, как я их сделал.

Маппинг памяти и ввода-вывода

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

Процессор обращается к своему загрузчику на ПЗУ и ОЗУ через память. Представление памяти выглядит так.

К PPU-RAM и SPU-RAM, а также к IO MCU он обращается через участок ввода-вывода. Представление участка ввода-вывода процессора будет таким.

Внутри представления участка ввода-вывода IO MCU, PPU и SPU имеют свои конкретные адреса.

Оригами журавлик из бумаги своими руками: искусство Японии для начинающих

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

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

Сегодня вы узнаете, как сделать оригами журавлика из бумаги своими руками.

Специальная бумага

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

Существует специальная бумага для оригами — «ками», которую можно купить в виде квадратов. Ее размеры колеблются от 2,5 см до 25 см. Эта бумага разного цвета с каждой стороны, намного легче бумаги для принтера, что дает возможность создавать разнообразные модели.

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

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

Оригами журавлика обрело большую известность. У японских бумажных журавликов есть особая история. Японцы полагают, что если сложить тысячу оригами, то заветное желание исполнится, а больной может исцелиться.

В Мемориальном парке Мира, что находится в японском городе Хиросима, воздвигнут памятник Садако Сасаки. Эта японская девочка, пережившая ядерный взрыв в 1945 году, заболела лучевой болезнью.

Хороший знакомый рассказал ей о том, что если сложить из бумаги тысячу журавликов, то можно загадывать желание, которое обязательно сбудется. Девочка старательно складывала птиц, ей удалось сделать лишь 644 журавля, затем ее не стало.

Друзья доделали недостающие фигурки. Садако похоронили со всеми журавликами.

Мировую известность японскому журавлику принесла песня о Садако. Она повествует о нелегкой судьбе девочки, оказавшейся в беде. И только журавлик вселил в бедняжку веру и надежду на исцеление.

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

Хочется поверить в магическую силу фигурки, которая может стать волшебным талисманом.

Начинаем творить

Оригами журавлика из бумаги своими руками сделать несложно.

Для начала сложим простого журавлика. Понадобится листок квадратной формы.

  • Складываем квадрат пополам с одной стороны, разгибаем. То же делаем со второй стороной;
  • На заготовке образовались четыре сгиба. Кладем фигурку углом вверх и заправляем боковые части вовнутрь;
  • Раздвигаем боковые слои. Сгибаем и раскладываем назад правый и левый края, далее сгибаем и распрямляем верх фигурки. Переворачиваем, проделываем то же с другой стороной;
  • Приподнимаем верхний слой квадрата и загибаем его кверху;
  • Перевернем заготовку, другую сторону делаем аналогично;
  • Раздвигаем по бокам слои и складываем боковые части фигуры к середине;
  • Повернем журавлика противоположной стороной и проделаем те же действия, что и в пункте 6;
  • Теперь раздвинем боковые слои заготовки и завернем вверх нижние острые кончики. Надавливаем на бока, выравниваем поделку и поворачиваем в стороны нос и хвост птички;
  • Формируем носик птице, расправляем крылышки и все, работа окончена.
  • План действий по сборке журавлика можно посмотреть здесь:

    Оригами журавель с розой

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

    Вначале складываем розу. Затем собираем журавля.

    Схема как сделать журавлика с розой смотрите здесь:

    Видео по теме статьи

    Для усвоения оригами рекомендуем посмотреть видео про журавлика из бумаги. Хочется пожелать, чтобы каждый сложенный вами журавлик приносил удачу и долголетие!

    Видео журавлика для начинающих:

    Видео журавлика из бумаги на маленьких ножках:

    Видео журавлика из бумаги на высоких ножкам:

    Видео журавлика с широкими крыльями:

    Видео журавлика, машущего крыльями:

Демонстрируем работу консоли

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

Запускаем с помощью бейсика и клавиатуры PS/2. На этом видео я — сразу после создания первой программы — записываю напрямую в ОЗУ графического модуля (PPU-RAM) через участок ввода-вывода команды включить и настроить спрайт, а в конце переместить его.

Демонстрация возможностей графики. На этом видео показана программа, которая отображает 64 спрайта размером 16 × 16 пикселей, кастомную прокрутку фона, а также наложенную плашку, которая двигается вверх и вниз — как перед спрайтами, так и за ними.

Демонстрация возможностей звука показывает, на что способен YM3438 в сочетании с проигрыванием семплов PCM. Частотно-модуляционная музыка вместе с семплами PCM на этом демо почти полностью занимают 128 Кбайт ОЗУ звукового модуля.

Тетрис, использующий почти исключительно фоновые тайлы для графики, YM3438 для музыки и патчи PWM для звуковых эффектов.

Оригами простое: мастер-классы с пошаговыми фото

Существует ни одна версия происхождения оригами. Одни исследователи утверждают, что оригами впервые появились в Китае, другие – в Японии.

Как отмечает ряд источников, японские воины преподносили друг другу подарки, украшенные бумажными ленточками, которые символизировали удачу. А бумажные бабочки использовались в свадебных японских обрядах.

Известно, что уже к середине XX века оригами как вид художественно-прикладного искусства был распространен по всему миру.

Виды оригами

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

Модульное оригами

Большой популярностью пользуется предмет модульного оригами под названием кусудама, представляющий собой объемную фигуру шарообразной формы.

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

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

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

Складывание по развертке

Еще один вид оригами, при котором на бумаге чертится фигура, которая последовательно складывается в объемную поделку.

Мокрое складывание

Данный метод складывания был придуман Акирой Ёсидзавой. С помощью смоченной в воде бумаги изделие приобретает обтекаемый внешний вид, поделка имеет плавность и выразительность линий. Подобным способом обычно создают фигурки животных и цветов.

Бумага для оригами

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

При создании простого оригами подойдет обычная бумага для принтера.

Однако существует специальная бумага для оригами, которая называется «ками». Она разделена на небольшие квадраты и немного легче обыкновенной бумаги.

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

Все, что нужно для работы – это бумага и ваше желание сделать своими реками что-то красивое.

Конечный результат

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

Вот как выглядит консоль на момент написания этого текста.

Архитектура

Схема ниже иллюстрирует, какие компоненты входят в каждый модуль и как они взаимодействуют друг с другом. Единственное, что не показано, — это сигнал в форме NMI, который PPU передает непосредственно процессору каждый кадр, а также аналогичный сигнал, передаваемый SPU.

  • CPU: Zilog Z80, работающий на частоте 10 МГц.
  • CPU-ROM: EEPROM на 8 Кбайт, содержит код загрузчика.
  • CPU-RAM: 128 Кбайт оперативной памяти (из них используются 56 Кбайт), содержит код и данные для программ/игр.
  • IO MCU: ATmega324, служит интерфейсом между CPU и RS-232, клавиатурой PS/2, игровыми контроллерами и файловой системой SD-карты.
  • PPU-RAM: двухпортовое ОЗУ на 4 Кбайт, это интерфейсное ОЗУ между CPU и PPU.
  • CHRRAM: 128 Кбайт оперативки, содержит кастомные тайлы фона и спрайтовую графику (8 × 8 пикселей каждый символ).
  • VRAM1, VRAM2: 128 Кбайт оперативки (используются 43 008 байт), служат для хранения кадрового буфера; информацию в них записывает PPU, а считывает — VPU.
  • PPU (Picture Processing Unit): ATmega1284, отрисовывает кадр и отправляет его в кадровый буфер.
  • VPU (Video Processing Unit): ATmega324, считывает кадровый буфер и генерирует RGB и PAL-сигнал.
  • SPU-RAM: двухпортовое ОЗУ на 2 Кбайт, служит интерфейсом между CPU и SPU.
  • SNDRAM: 128 Кбайт оперативки, содержит патчи PWM, семплы PCM и блоки инструкций для частотно-модуляционного синтеза.
  • YM3438: одноименный чип частотно-модуляционного синтеза.
  • SPU (Sound Processing Unit): ATmega644, генерирует звук на базе PWM и управляет YM3438.

Итоговые характеристики

Процессор:

  • восьмибитный CPU Zilog Z80 с частотой 10 МГц;
  • 8 Кбайт постоянной памяти для загрузчика;
  • 56 Кбайт оперативной памяти.

Ввод/вывод (I/O):

  • чтение данных с SD-карт файловых систем FAT16/FAT32;
  • чтение и запись на порт RS-232;
  • два игровых контроллера, совместимых с Mega Drive/Genesis;
  • клавиатура PS/2.

Видео:

  • разрешение 224 × 192 пикселя;
  • 25 кадров в секунду;
  • 256 цветов (схема RGB332);
  • виртуальное фоновое пространство 2 × 2 (448 × 384 пикселя) с двунаправленной попиксельной прокруткой, которое описывают четыре именные таблицы;
  • 64 спрайта высотой и шириной 8 или 16 пикселей с возможностью развернуть их как по вертикали, так и по горизонтали;
  • фон и спрайты, состоящие из символов 8 × 8 пикселей каждый;
  • символьное ОЗУ с 1024 фоновыми и 1024 спрайтовыми символами;
  • независимая горизонтальная прокрутка фона по кастомным строкам на 64;
  • независимая вертикальная прокрутка фона по кастомным строкам на 8;
  • наложение плашки размером 224 × 48 пикселей с прозрачностью или без нее;
  • таблица атрибуции для фона;
  • RGB и композитный PAL-вывод через разъем SCART.

Звук:

  • генерируемый с помощью PWM восьмибитный четырехканальный звук с заранее заданными формами волны (меандр, синусоида, пилообразная, шумовая и так далее);
  • восьмибитные и восьмикилогерцевые семплы PCM на одном из каналов PWM;
  • чип частотно-модуляционного синтеза YM3438 с обновляемыми инструкциями на частоте 50 Гц.

Дерево оригами из модулей – Оригамир

Для того чтобы сложить и собрать новогоднее дерево из модулей в технике оригами вам понадобится:

  • цветная бумага (зеленая для листвы и коричневая или черная для ствола);
  • ножницы;
  • линейка.
  • Итак, приступим к созданию бумажной новогодней елки:

  • Для начала вырежьте из бумаги 7 квадратных заготовок разного размера. Сторона квадрата, из которого мы будем складывать ствол, а также самого большого зеленого квадрата составляет 20 см. Стороны каждого последующего зеленого квадрата уменьшайте на 2,5 см. Таким образом, самая маленькая заготовка будет представлять собой квадрат со стороной в 7,5 см. Вы можете подготовить и большее количество заготовок других размеров, создавая более высокое и раскидистое дерево в технике оригами. Или же, напротив, сделать миниатюрную модель из нескольких модулей.
  • Возьмите самый большой квадрат и наметьте вспомогательные линии, которые помогут при дальнейшем складывании фигуры. По пунктирным линиям здесь и далее бумагу нужно согнуть и развернуть обратно, чтобы только наметить складку. По сплошным линиям заготовку необходимо сложить.
  • Сложите квадрат в фигуру, представленную на фотографии. Для этого совместите все четыре угла квадрата в одной точке.
  • Если этот шаг мастер-класса по созданию дерева из бумаги вызывает у вас затруднения, то посмотрите внимательнее на следующие фото. Получившийся квадрат должен составлять четверть от первоначальной фигуры.
  • У образовавшегося квадрата отогните один нижний угол, обозначенный на рисунке звездочкой, и соедините его со второй звездочкой справа.
  • Уголок, который получился в результате предыдущего действия, аккуратно заверните внутрь фигуры.
  • Проделайте то же самое со следующим свободным углом квадрата.
  • Затем с двумя оставшимися. Трудности в подворачивании сложенных уголков внутрь фигуры могут возникнуть при работе с последним углом. Немного раскройте заготовку, чтобы помочь себе выполнить это действие.
  • На этом этапе нижний модуль дерева из бумаги в технике оригами готов.
  • Сложите таким же образом остальные детали, которые понадобятся для кроны елки, и отложите их в сторону на некоторое время.
  • Теперь приступим к складыванию фигуры, которая будет исполнять роль ствола дерева. В мастер-классе для этой части используется белый квадрат бумаги, чтобы проще было следить за выполняемыми действиями. Но лучше использовать бумагу коричневого или черного цвета. Наметьте на квадрате вспомогательные линии.
  • Сложите так же, как и зеленую фигуру.
  • Затем согните боковой угол к середине получившейся фигуры.
  • Двигаясь по кругу, проделайте то же самое и с остальными углами.
  • Правую часть нижнего треугольника сложите пополам.
  • Немного раскройте фигуру, как показано на фото.
  • И образовавшийся уголок поместите внутрь раскрытого кармашка.
  • Повторите те же действия для остальных углов заготовки.
  • В итоге у вас получится вот такая фигура, которая станет основой для дерева из бумаги.
  • Возьмите «ствол» и сложенную ранее фигуру кроны елки и начните собирать бумажное дерево своими руками.
  • Разложите перед собой все подготовленные модули и один за другим оденьте их друг на друга.
  • Бумажное дерево готово!
  • Оригами из модулей.

    Новогодняя елка оригами.

    Готовимся к Новому Году!

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

    Прекрасная идея нарядной елочки из бумаги предлагается нам в очередном видео-уроке из трех частей по технике складывания модульного оригами.

    Очень простой и подробный урок доставит удовольствие даже начинающим поклонникам поделок из бумаги — оригами.

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

    Приятного просмотра и успешного творчества! Читать весь текст…

    Объёмная модель

    Подставку под рассадочную карточку можно легко превратить в объёмную модель. Для этого понадобится всего лишь слегка модернизировать классическую «Водяную бомбу» – и пышная крона готова. Ствол делаем, повторяя шаги 17 – 28 из первого описания. Из объёмных моделей несложно собрать лес-оригами для домашнего театра или зоопарка. Поможет в этом испанская оригамистка Лейла Торес.

    Для кроны – «Водяной бомбы» понадобится квадрат 21х21 см. Чтобы сделать ствол дерева, аналогичный лист бумаги, но коричневого цвета, нужно разделить на четыре части.

    Схема оригами журавлик

    Сегодня мы поговорим о том,как сделать оригами поделку из базовой формы – квадрата. Оригами является искусством складывания фигурок из листа бумаги, и при желании его не так уж и сложно освоить, особенно тем, кто любит все новое, отличается усидчивостью и трудолюбием.

    Как сделать из бумаги оригами поделки ? Существует множество интересных схем оригами на любой вкус. Оригами – это удивительный и интересный мир, создать который можно собственными руками. При этом начать знакомство с оригами можно в любой момент, достаточно лишь взять листок бумаги и потратить немного свободного времени.

    Считается, что искусство бумажной пластики под названием оригами зародилось в Японии, несмотря на то, что впервые бумага появилась в другой стране – Китае. Именно японцы первыми догадались складывать из бумаги фигурки, удивляющие своей красотой. Возможно, определенную роль в этом сыграла удивительная схожесть японских слов «бумага» и «бог».

    Если разобрать слово «оригами» на составляющие, то получится ори – «бумага» и ками – «складывание». Изначально оригами применяли в храмовых обрядах.

    Например, для кусочков рыбы и овощей, предназначенных в дар богам, создавались специальные бумажные коробочки «санбо». Спустя некоторое время складывание фигурок из бумаги стало обязательным умением для японской аристократии.

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

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

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

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

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

    Помните как в детстве? Чтобы сбылось заветное желание, нужно сделать 1000 журавликов. Вспомнив увлечение родом из детства, можно попробовать опять его сделать, доставив хотя бы несколько приятных минут себе и детям. И понадобится ведь всего лишь один лист бумаги и немного терпения.

    Как сделать оригами журавлика из базовой формы. Мастер класс

    Собираем консоль

    Видеосигнал

    Начал свою работу я с генерации видеосигнала. У всех консолей эпохи, на которую я ориентировался, были свои проприетарные графические чипы — что давало им очень разные характеристики. По этой причине я не стал использовать готовый графический чип — хотелось, чтобы у моей консоли были уникальные возможности графики. Но, поскольку собрать собственный чип я бы не потянул, а ПЛИС использовать не умел, я выбрал базирующийся на софте графический чип с двадцатимегагерцевым восьмибитным микроконтроллером. Это не перебор: у него ровно такая производительность, чтобы генерировать нужный мне тип графики.

    Итак, я начал с микроконтроллера ATmega644, работающего на частоте 20 МГц, который посылал PAL-сигнал на телевизор. Поскольку сам по себе микроконтроллер этот формат не поддерживает, пришлось добавить внешний ЦАП.

    Другие статьи в выпуске:

    Xakep #247. Мобильная антислежка

    • Содержание выпуска
    • Подписка на «Хакер»-70%

    Наш микроконтроллер выдает восьмибитную цветность (RGB332: три бита на красный, три бита на зеленый и два — на синий), а пассивный ЦАП конвертирует всю эту красоту в аналоговый RGB. По счастью, в Португалии внешние устройства к телевизору чаще всего подключают через разъем SCART — и большая часть телевизоров принимает RGB-сигнал через него же.

    Подходящая графическая система

    Поскольку первый микроконтроллер я хотел использовать исключительно для передачи сигнала на телевизор (я назвал его VPU — Video Processing Unit), для графики в целом я решил использовать способ двойной буферизации.

    Я взял второй микроконтроллер для PPU (Picture Processing Unit) — ATmega1284 тоже на 20 МГц. Он должен генерировать изображение на чип ОЗУ (VRAM1), после чего первый микроконтроллер передаст содержимое другого чипа оперативки (VRAM2) на телевизор. После каждого кадра (два кадра в PAL или 1/25 секунды) VPU переключает чипы ОЗУ и передает изображение с VRAM1 на телевизор, пока PPU генерирует новое на VRAM2.

    Видеоплата получилась довольно сложной: мне пришлось использовать дополнительное железо, чтобы дать микроконтроллерам доступ к обоим чипам ОЗУ, а также ускорить доступ к памяти, которая к тому же используется для вывода видеосигнала методом битбэнга. Для этого я добавил в цепочку несколько чипов 74-й серии в качестве счетчиков, линейных селекторов, трансиверов и прочего.

    Прошивка для VPU и особенно для PPU тоже вышла довольно сложной, поскольку мне нужно было написать чрезвычайно производительный код — если я хотел получить все искомые графические возможности. Изначально я все писал на ассемблере, позже кое-что кодил на C.

    В итоге мой PPU генерировал изображение 224 × 192 пикселя, которое VPU транслировал на экран телевизора. Разрешение может показаться слишком низким, но на самом деле оно немногим меньше, чем у консолей-прототипов — они обычно имели разрешение 256 × 224. Зато более низкое разрешение позволило мне втиснуть больше графических фич в тот временной отрезок, что уходил на отрисовку каждого кадра.

    Прямо как в старые добрые времена, у моего PPU есть «фиксированные» графические возможности, которые можно настроить. Фон рендерится из символов размером 8 × 8 пикселей (их еще иногда называют тайлами). Это значит, что размер всего фона — 28 × 24 тайла. Для попиксельной прокрутки и возможности плавного обновления фона я сделал четыре виртуальных экрана 28 × 24 тайла — все они смежные и «обтекают» друг друга.

    Поверх фона PPU рендерит до 64 спрайтов шириной и высотой от 8 до 16 пикселей (то есть один, два или четыре символа), которые можно повернуть по вертикали, горизонтали или по обеим осям. Еще над фоном можно отрендерить оверлей — такую плашку размером 28 × 6 тайлов. Она пригодится для игр, где нужны элементы интерфейса поверх основного экрана (HUD), фон скроллится, а спрайты используются не только для подачи информации, но и для других целей.

    Другая «продвинутая» фича — возможность прокручивать фон в разных направлениях по отдельным строкам, что позволяет добавить эффекты типа ограниченного параллакс-скроллинга или разделенного экрана.

    Еще есть таблица атрибуции, которая позволяет задать каждому тайлу значение от 0 до 3. А дальше можно, например, назначить все тайлы с определенным значением на конкретную тайловую страницу или увеличить номер их символа. Это полезно, когда конкретные элементы фона постоянно меняются, — в таком случае CPU не нужно обновлять каждый тайл в отдельности, он может просто передать команду вроде «все тайлы со значением 1 увеличивают свое значение на 2». Разными способами этот подход используется, например, в играх с Марио, где на фоне двигаются знаки вопроса, или в других играх с постоянно льющимися водопадами.

    Процессор

    Когда была готова функциональная видеоплата, я приступил к работе над CPU — для своей консоли я выбрал Zilog Z80. Помимо того что Z80 — просто крутой ретропроцессор, у него есть отдельно 16 бит на память и 16 бит для I/O, чем другие подобные восьмибитные процессоры, например знаменитый 6502, похвастаться не могут. У того же 6502 есть только 16 бит памяти, а значит, эти 16 бит придется делить между собственно памятью и дополнительными устройствами: аудио, видео, ввода и прочими. Если же у нас есть отдельный участок для I/O, то он возьмет на себя все внешние устройства, а 16 бит памяти (то есть 64 Кбайт кода или данных) мы сможем использовать по прямому назначению.

    Для начала я соединил свой CPU с EEPROM, добросив немного тестового кода. Еще я прикрутил к CPU через участок I/O микроконтроллер, который связывается с ПК по RS-232, — чтобы проверить, нормально ли работает мой процессор и все остальные соединения. Этот микроконтроллер (двадцатимегагерцевый ATmega324) должен был стать IO MCU (микроконтроллером ввода-вывода) и отвечать за доступ к игровым контроллерам, карте SD, клавиатуре PS/2 и коммуникацию с компом через RS-232.

    Потом я прикрутил к процессору чип ОЗУ на 128 Кбайт, из которых были доступны 56 (это может показаться пустой тратой ресурса, но у меня были чипы ОЗУ только по 128 и по 32 Кбайт). Таким образом, вся память процессора состоит из 8 Кбайт ПЗУ и 56 Кбайт ОЗУ.

    Следом я обновил прошивку своего микроконтроллера ввода-вывода с помощью этой библиотеки и добавил ему поддержку карт SD. Теперь CPU научился перемещаться по директориям SD-карты, просматривать их содержимое, открывать и читать файлы — считывая и записывая данные на конкретные адреса участка ввода-вывода.

    Соединяем CPU и PPU

    Пришло время реализовать взаимодействие между CPU и PPU. Для этого я нашел «простое решение» — чип ОЗУ с двойным портом (то есть тот, который можно одновременно подключить по двум разным шинам). Он спас меня от накручивания новых микросхем типа линейных селекторов — и к тому же сделал доступ к оперативной памяти для обоих чипов практически одновременным. Также PPU связывается с CPU напрямую каждый кадр, активируя его немаскируемое прерывание (NMI). Это значит, что каждый кадр процессор прерывается (ценное умение для синхронизации и своевременного обновления графики).

    Каждый кадр взаимодействие между CPU, PPU и VPU развивается по следующему сценарию.

    • PPU копирует информацию с внешнего ОЗУ (на рисунке ниже обозначено как PPU RAM) на встроенное ОЗУ.
    • PPU посылает CPU сигнал немаскируемого прерывания.
    • Одновременно с этим: CPU немедленно обращается к функции немаскируемого прерывания и обновляет в PPU RAM информацию о состоянии графики в следующем кадре (программа должна выйти из прерывания до его начала);
    • PPU рендерит изображение, основываясь на информации, которую перед этим скопировал в один из двух ОЗУ графической системы (VRAM1 или VRAM2);
    • VPU посылает изображение с другого VRAM на телевизор.

    Примерно в то же время я добавил поддержку игровых контроллеров. Изначально я хотел использовать контроллеры Super Nintendo, но их разъем проприетарный — и достать его непросто. Поэтому я выбрал совместимые шестикнопочные контроллеры Mega Drive/Genesis: они используют стандартные, распространенные и доступные разъемы DB-9.

    Время для первой настоящей игры

    У меня был процессор с поддержкой игровых контроллеров, который мог управлять PPU и загружать программы с SD-карты, так что… пришло время сделать игру. Я написал ее, конечно, на языке ассемблера Z80 — это заняло у меня пару дней (исходный код игры).

    Добавляем кастомную графику

    Все отлично, у меня есть рабочая консоль, но… этого недостаточно. Игры пока не могут использовать кастомную графику — только ту, что хранится в прошивке PPU. А единственный способ поменять встроенную графику — обновить прошивку. Поэтому я решил добавить отдельный чип ОЗУ с графикой (символьное ОЗУ, Character RAM) — он должен быть доступен PPU и загружать графику согласно инструкциям, пришедшим из CPU. При этом нужно было использовать как можно меньше новых компонентов, потому что консоль уже получилась довольно большой и сложной.

    Я нашел следующий выход: доступ к новому ОЗУ будет только у PPU, а CPU станет передавать ему информацию через PPU. И пока эти данные передаются, наше новое ОЗУ не будет использоваться для графики — его функции временно возьмет на себя встроенная графика.

    После передачи данных процессор переключится из режима встроенной графики в режим работы с символьным ОЗУ (CHR RAM на схеме ниже), и PPU сможет использовать кастомную графику. Возможно, это не идеальное решение, но оно работает. В итоге новое ОЗУ имело объем 128 Кбайт и могло хранить 1024 символа размером 8 × 8 пикселей для фона и 1024 символа того же размера для спрайтов.

    И наконец, звук

    Реализацию звука я оставил на финал. Изначально я собирался дать своей консоли те же звуковые возможности, что у Uzebox, и встроить микроконтроллер, который генерировал бы четыре канала PWM-звука. Однако я выяснил, что можно относительно легко достать винтажные чипы, — и заказал несколько чипов YM3438, работающих на принципе частотно-модуляционного синтеза. Они полностью совместимы с YM2612, которые установлены в Mega Drive/Genesis. Установив этот чип, я получаю музыку качества Mega Drive и звуковые эффекты, которые производит контроллер. CPU управляет звуковым модулем (я назвал его SPU, Sound Processor Unit, — он отдает команды YM3438 и сам производит звуки) снова через маленькое ОЗУ с двойным портом, на сей раз емкостью всего в 2 Кбайт.

    Так же как у графического, у звукового модуля есть 128 Кбайт на хранение звуковых патчей и семплов PCM. Процессор же выгружает информацию в эту память через SPU. Таким образом, процессор может как велеть SPU воспроизводить команды из этого ОЗУ, так и обновлять команды для SPU каждый кадр.

    CPU управляет четырьмя PWM-каналами через четыре кольцевых буфера, которые есть в специальном ОЗУ (SPU RAM на схеме ниже). SPU проходит через эти буферы и выполняет имеющиеся в них команды. Таким же образом работает еще один кольцевой буфер в SPU RAM — он обслуживает чип частотно-модуляционного синтеза (YM3438).

    Взаимодействие между процессором и звуковым модулем похоже на историю с графикой — и устроено по следующей схеме.

    • SPU копирует информацию из SPU RAM во встроенную оперативку.
    • SPU ждет сигнала NMI от PPU (для синхронизации).
    • Одновременно с этим: процессор обновляет буферы PWM-каналов и чипа частотно-модуляционного синтеза;
    • SPU выполняет команды в буферах согласно информации, сохраненной во встроенной памяти.
  • Пока все это происходит, SPU непрерывно обновляет PWM-звук с частотой 16 кГц.
  • Мастер-класс журавлик техникой оригами

    Оригами журавль – традиционная фигура из бумаги, символ Японии. Наверняка многие помнят историю, связанную с оригами из бумаги и именем девочки Садако Сасаки. Она смертельно заболела от ядерной радиации после взрыва.

    Знакомый рассказал ей, что если сделать тысячу журавликов, то заветное желание обязательно сбудется. Девочка начала делать журавликов, но умерла, собрав 644.

    После этого случая она стала символом целеустремленности вместе с журавликом из бумаги.

    Мастер-класс поможет вам сделать классического бумажного журавлика. Это поделка послужит пособием для тех, кто начинает знакомиться с искусством оригами.

    Классический журавлик

    Поделка формируется из квадратного листа любого формата. Для удобства создания оригами схема дана в пошаговой инструкции:

  • Перегнуть квадратный лист по направлению вниз, справа налево, и по двум диагоналям. В результате намечаются нужные сгибы.
  • Сложить квадрат по перегибам в базовую форму «двойной квадрат», совместив 3 уголка с нижним, и вогнув стороны внутрь.
  • Положить фигуру к себе открытой стороной, совместить боковые края верхнего слоя оригами с центральной осью, и разогнуть в исходное положение.
  • Загнуть к середине верхний угол и разогнуть.
  • По намеченным перегибам вывернуть верхний слой от себя и прогладить, чтобы получился закрытый ромб.
  • Перевернуть заготовку и повторить действия 3-5 для второй стороны оригами (получилась базовая форма «птица»).
  • Совместить нижние края и углы вверху с центром фигуры.
  • Повторить пункт 7 для другой стороны.
  • Перегнуть нижние лучики по диагонали в разные стороны, и вернуть в исходное положение.
  • По намеченным перегибам (пункт 9) завернуть лучи внутрь заготовки.
  • Отогнуть с одной стороны клюв по принципу 10 пункта и опустить крылья с двух сторон.
  • Получился журавлик!

    Летящий журавль с видео

    Классическую модель можно усовершенствовать, чтобы журавлик махал крылышками. Описание работы совпадает с этапами сборки традиционной фигуры. Однако есть нюанс: базовая форма «птица» со стороны «хвоста» не складывается вдоль, а сразу загибается вовнутрь.

    Поэтапная сборка:

  • Один нижний луч формы загнуть по диагонали, и снова разогнуть.
  • Вывернуть лучик внутрь и в сторону.
  • Второй луч свернуть с обеих сторон вдоль.
  • Наметить диагональный сгиб и вывернуть луч внутрь.
  • Согнуть клюв.
  • Опустить крылья по диагонали.
  • Держа оригами за точки, указанные на рисунке, привести крылья в движение.
  • В результате получается вот такая птичка.

    Варианты сборки журавля по видео-урокам

    Мастер-класс не ограничивается одной традиционной моделью журавлика. Опытные мастера усложняют простые модели. Журавлик тоже не остался без внимания. Варианты фантазий вы увидите на видео. Это сердце и закладка из бумаги с птицей посередине.

    Следующая модель журавлика оригами на ножках. Складывается он по классической схеме. Вместо хвоста формируются ножки. Техника работы есть на прилагаемом видео.

    Один из видов оригами – паттерн. Это чертёж или шаблон с обозначенными линиями сборки. Они помогают складывать сложные бумажные фигуры. Журавлик – простое оригами. Однако и для него есть паттерн с розой в центре. Схема сборки ниже:

    Ещё один журавлик из бумаги на основе классической схемы отличается пышным красивым хвостом. Поделка довольно сложная, но при кропотливой работе с ней справится любой. МК с подробной наглядной инструкцией представлен в видео.

    Стая цветных журавлей

    Если ни один из предложенных вариантов журавликов не понравился, пофантазируйте сами, украсьте крылья и клюв. На фото представлены примеры моделей с разными вариантами изменений и украшений.

    Открытка на День матери

    В Японии, у славянских и скандинавских народов деревья часто связывают с культом божественной Матери-Земли. В первую очередь это касается лиственных пород, которые зависят от природных циклов – весной покрываются листвой и цветами, а, приближаясь к зиме, сбрасывают «наряд», словно засыпая. У греков женские божества с материнскими функциями тоже почитались в образе деревьев – отсюда священные рощи, где можно было получить защиту и покровительство. В наши дни традиция не утрачена. Дерево-оригами часто дарят именно мамам – на день рождения, в специальный праздник или на 8 Марта. В знак благодарности за подаренное тепло, заботу и поддержку, а также как пожелание долголетия, сил и крепкого здоровья.

    Можно сделать интересную композицию «Четыре сезона» на основе модели от вьетнамской художницы Нгуен Хонг Конг, по видео-уроку испанки Лейлы Торес. Для разноцветных деревьев подойдут страницы старых журналов, тонкие обои, упаковочный крафт или профессиональная бумага «ками» с рисунком. Желательно, чтобы одна сторона листа была тёмной и однотонной, напоминающей по цвету кору. Впрочем, несложно окрасить бумагу в нужный оттенок и самостоятельно. Для модели рекомендуется использовать квадрат 15х15 см, если хочется изготовить магнит – 8х8 см.

    Видео сигнал

    Первое чем я занялся это генерация видео сигнала.

    Любая консоль того периода, который я взял за образец, имела различные проприетарные графические чипы, что означает, что у всех у них были различные технические характеристики. По этой причине я не хотел использовать готовый графический чип, я хотел чтобы и моя консоль имела уникальные технические характеристики по графике. И поскольку я не мог сделать свой собственный графический чип, и в то время ещё не умел использовать FPGA, я решил ограничиться софтварным генерированием графического сигнала используя 8-битный, 20 мегагерцовый микроконтроллер.

    Это не перебор, и как раз достаточно мощное решение для графики того уровня который мне был интересен.

    И так, я начал использовать микроконтроллер Atmega644 на чистоте 20 Мгц для генерации видеосигнала в формате PAL для телевизора. Мне пришлось бит-бангить протокол PAL, поскольку сам чип не умеет его.

    Микроконтроллер выдаёт 8-битный цвет (RGB332, 3 бита красный, 3 бита зелёный и 2 синий) и пассивный ЦАП преобразует это всё в RGB. К счастью в Португалии почти все телевизоры оборудованы разъёмом SCART и они поддерживают RGB вход.

    Управление PPU

    Из информации в таблице видно, что для управления PPU надо писать в память PPU которая доступна по адресам 1000h-1FFFh в адресном пространстве ввода-вывода.

    Распределение адресного пространства PPU

    PPU Status может принимать следущие значения:

    1. Режим вшитой графики
    2. Режим динамической графики (CHR-RAM)
    3. Режим записи в CHR память
    4. Запись завершена, ждём подтверждения режима от CPU

    Вот, например, как можно работать со спрайтами: Приставка может рисовать 64 спрайта одновременно. Данные по ним доступны через CPU через адресное пространство ввода-вывода по адресам 1004h-1143h (320 байт), на каждый спрайт приходится 5 байт информации (5 * 64 = 320):

    1. Байт разных флагов, каждый бит этого байта флаг: Active, Flipped_X, Flipped_Y, PageBit0, PageBit1, AboveOverlay, Width16, Height16.
    2. Байт символа, номер символа из таблицы (определяемой флагами выше).
    3. Байт цветового ключа (то есть какой цвет — прозрачность)
    4. Байт координаты X
    5. Байт координаты Y

    Итого, чтобы увидеть спрайт, надо установить флаг Active в 1, и задать координаты X и Y в пределах видимости, координаты 32/32 помещают спрайт в верхний левый угол экрана, меньшие значения спрячут его либо сделают частично видимым.

    Потом мы можем установить код символа и цвет прозрачности.

    Например, если нам нужно показать спрайт номер 10, то адрес будет 4145 (1004h + (5 x 9)), пишем значение 1 для активирования и координаты, например, x=100 и y=120, пишем по адресу 4148 значение 100 и по адресу 4149 значение 120.

    RPCS3 (PlayStation 3)

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

    Xenia (Xbox 360)

    Сейчас пользователи могут лицезреть невероятное, ведь эмуляторы консоли прошлых поколений уже набирают обороты, так и Xenia стала популярна благодаря тому, что выиграла в гонке прогресса у RPCS (эмулятора PS3) и смогла запустить Red Dead Redemption 1 с большей производительностью, к сожалению, но не могу назвать на данном этапе эмулятор полностью играбельным, но в некоторые игры вы всё таки, но сможете сыграть, что несомненно хорошо. Посмотрим к чему это приведет дальше.

    PCSX2 (PlayStation 2)

    Думаю все старички и любители классики знакомы с этим замечательным эмулятором, который спустя долгое время научился запускать почти что всю библиотеку PlayStation 2 без лишних затрат и усилий, да, эмулятор имеет довольно невнятный интерфейс и множество проблем с некоторыми из игр, но в любом случаи — это легендарный эмулятор, который сделал многое для прогресса эмуляции консолей, и это совершенно глупо отрицать, да и многие люди по сей день им пользуются и играют в классику консоли от Sony.

    Звук

    Волновые RAW сэмплы переведены в 8-битный 8-килогерцовые PCM сэмплы.

    Патчи для звуковых эффектов на ШИМ и музыки пишутся особыми инструкциями.

    Что касается микросхемы FM синтеза Yamaha YM3438, то я нашел программку называемую DefleMask которая выдаёт музыку синхронизируемую по PAL и предназначеную для YM2612 микросхемы из Genesis, которая совместима с YM3438.

    DefleMask экспортирует музыку в формате VGM и я её конвертирую ещё одной самописной утилитой в свой собственный двоичный формат.

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

    Redream (Dreamcast)

    Пожалуй, один из самых малоизвестных эмуляторов по неизвестным мне причинам, а самым популярным эмулятором Dreamcast является NULLDC, однако — Redream на голову выше, ведь он прост в использовании даже для новичка, а также имеет оптимальный список базовых настроек, которые можно редактировать при помощи интуитивно понятного интерфейса программы, который чем-то смахивает на другой эмулятор — PPSSPP, при помощи Redream вы сможете запустить классические игры Dreamcast’a в 4K разрешении, правда за такую роскошь придётся заплатить разработчикам, но если вы желаете попросту поиграть в классику не подымая уровень картинки, то вы просто можете воспользоваться бесплатной версией эмулятора на официальном сайте. А сам эмулятор ежедневно получает различные обновления и исправления, а также совместим почти что со всеми играми той-самой консоли.

    CPU

    Когда моя видеоплата заработала, я начал работать с CPU в качестве которого для моей приставки был выбран Zilog 80.

    Одна из причин по который был выбран именно Z80, ну кроме того, что это классный ретро CPU, это его способность адресовать два 16 битных пространства, одно для памяти и второе для портов ввода-вывода, не менее легендарный 6502, например, так не может, он может только одно адресовать 16 битное пространство и в него приходится мапить как память так и различные внешние устройства, видео, аудио, джойстики, апаратный генератор случайных чисел и тд. Удобнее иметь два адресных пространства, одно полность отданное на 64 килобайта кода и данных в памяти и второе для доступа к внешним устройствам.

    Сначала я подсоединил CPU к EEPROM в котором разместилась моя тестовая программка и ещё присоединил его через пространство ввода-вывода к микроконтроллеру который я установил чтобы можно было общаться с моим компом через RS232, и мониторить как работает CPU и всё остальное. Этот микроконтроллер Atmega324 работающий на 20 МГц я называю IO MCU — input/output microcontroller unit, он отвечает за контроль доступа к игровым контроллерам (джойстикам), SD карт ридеру, клавиатуре PS/2 и коммуникатору по RS232.

    CPU подключается к микросхеме памяти на 128 килобайт, из которых только 56 килобайт доступны, это конечно бред, но я мог достать только микросхемы по 128 или 32 килобайта. Получилось, что память состоит из 8 килобайт ПЗУ и 56 килобайт ОЗУ.

    После этого я обновил прошивку IO MCU с помощью этой библиотеки и у меня появилась поддержка SD карт ридера.

    Теперь CPU мог ходить по директориям, смотреть что в них лежит, открывать и читать файлы. Всё это делается посредством записи и чтения в определённые адреса пространства ввода-вывода.

    * * *

    Если вы хоть раз пытались поиграть во что-нибудь на эмуляторе PlayStation 2, то вам не надо объяснять, что эмуляция Xbox 360 и PlayStation 3 относится к области научной фантастики. Дело тут даже не в аппаратном превосходстве — достаточно быстрые процессоры когда-нибудь появятся. Но потом нам еще лет пять придется ждать, пока выйдет удачный эмулятор с открытой структурой плагинов, и еще столько же времени уйдет на коллективный бета-тест и вылавливание бесчисленных багов, портящих, как правило, самые интересные игры платформы.

    Пока нам доступны эмуляторы трех поколений консолей, на каждой из которых найдется десяток прекрасных игр, по той или иной причине прошедших мимо вашего внимания. Если начнете прямо сейчас, то к появлению первого эмулятора Xbox 360 как раз успеете наверстать упущенное!

    Динамическая графика

    (В оригинале Custom graphics. прим. пер.)

    В ПЗУ приставки зашиты 1 страница тайлов для бэка и ещё страница готовых спрайтов), по умолчанию можно использовать только эту фиксированую графику, однако можно переключиться на динамическую.

    Цель у меня была такая, чтобы вся необходимая графика в бинарной форме сразу грузилась в оперативную память CHR, причём делать это умеет код в загрузчике из ПЗУ. Для этого я сделал несколько картинок правильного размера с разными полезными символами:

    Поскольку память динамической графики состоит из 4-х страниц по 256 символов 8х8 пикселей каждый и 4-х страниц таких же символов для спрайтов, я перевёл картинки в PNG формат, удалил повторяющиеся одинаковые:

    И потом использовал самописную тулзу чтобы перевести это всё в бинарный формат RGB332 с блоками 8х8.

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

    Cemu (Wii U)

    Эмулятор чей прогресс с каждым месяцем возрастает, а ведь всё начиналось с того, что после выхода The Legend Of Zelda: Breath Of The Wild игроки получили довольно корявый эмулятор, на котором вовсе не работала физика игры, но благодаря неимоверной финансовой поддержке и энтузиастам со всего мира сейчас Cemu является одним из самых стабильных эмуляторов, который позволяет сыграть в игры с консоли Wii U без лишних проблем и заморочек, уже сейчас эмулятор поддерживает возможность модифицирования игровых файлов, тем самым генерируя множество модов на популярные игры консоли, которые ранее не были доступны у первоисточника, да и Зельда смогла обрести большую популярность в России именно благодаря эмулятору.

    Подключение CPU к PPU

    Следущее, что я сделал это связь между CPU и PPU. Для этого я применил «простое решение» которое заключалось в приобретении двухпортового ОЗУ, это такая микросхема ОЗУ которую можно подключать сразу к двум разным шинам. Это позволяет избавиться он дополнительных микросхем вроде лайн-селекторов и, к тому-же, позволяет практически одновременный доступ к памяти с обоих чипов. Ещё PPU напрямую может обращаться к CPU на каждом кадре активируя свои немаскируемые прерывания. Получается, что CPU получает прерывание на каждом кадре, что полезно для разных задач по таймингу и для понимания когда пора заняться апдейтом графики.

    Каждый кадр взаимодествия CPU, PPU и VPU происходит согласно следующей схеме:

    1. PPU копирует информацию из памяти PPU в внутреннюю память.
    2. PPU отправляет сигнал прерывания на CPU.
    3. Одновременно:
        CPU прыгает на функцию прерывания и начинает обновлять PPU память новым графическим состоянием. Программа должна вернуться из прерывания до следующего кадра.
    4. PPU рендерит картинку на основании информации ранее скопированой в одну из VRAM.
    5. VPU отправляет картинку из другой VRAM на ТВ выход.

    Примерно тогда же я занялся поддержкой игровых контроллеров, сначала я хотел использовать контроллеры от Nintendo, но сокеты для них проприетарные и вообще их трудно найти, поэтому я остановился на 6-кнопочных контроллерах совместимых с Mega Drive/Genesis, у них стандартные сокеты DB-9 которые везде есть.

    Используем ассемблер

    Один из способов программирования для приставки это ассемблер.

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

    ORG 2100h PPU_SPRITES: EQU $1004 SPRITE_CHR: EQU 72 SPRITE_COLORKEY: EQU $1F SPRITE_INIT_POS_X: EQU 140 SPRITE_INIT_POS_Y: EQU 124 jp main DS $2166-$ nmi: ; обработчик немаскируемого прерывания (NMI) ld bc, PPU_SPRITES + 3 ld a, (sprite_dir) and a, 1 jr z, subX in a, (c) ; увеличить X inc a out (c), a cp 248 jr nz, updateY ld a, (sprite_dir) xor a, 1 ld (sprite_dir), a jp updateY subX: in a, (c) ; уменьшить X dec a out (c), a cp 32 jr nz, updateY ld a, (sprite_dir) xor a, 1 ld (sprite_dir), a updateY: inc bc ld a, (sprite_dir) and a, 2 jr z, subY in a, (c) ; увеличить Y inc a out (c), a cp 216 jr nz, moveEnd ld a, (sprite_dir) xor a, 2 ld (sprite_dir), a jp moveEnd subY: in a, (c) ; уменьшить Y dec a out (c), a cp 32 jr nz, moveEnd ld a, (sprite_dir) xor a, 2 ld (sprite_dir), a moveEnd: ret main: ld bc, PPU_SPRITES ld a, 1 out (c), a ; активировать спрайт 0 inc bc ld a, SPRITE_CHR out (c), a ; задать символ спрайту 0 inc bc ld a, SPRITE_COLORKEY out (c), a ; установить цветовой ключ спрайту 0 inc bc ld a, SPRITE_INIT_POS_X out (c), a ; установить координату Х спрайту 0 inc bc ld a, SPRITE_INIT_POS_Y out (c), a ; установить координату Y спрайту 0 mainLoop: jp mainLoop sprite_dir: DB 0

    Использование языка Си

    Можно также использовать язык Си, для этого нам понадобится компилятор SDCC и некоторые дополнительные утилиты.

    Код на Си может получится медленнее, но зато написать его быстрее и проще.

    Вот пример кода, который делает то же самое, что и код на ассемблере выше, тут используется библиотека которая помогает делать вызовы к PPU:

    #include #define SPRITE_CHR 72 #define SPRITE_COLORKEY 0x1F #define SPRITE_INIT_POS_X 140 #define SPRITE_INIT_POS_Y 124 struct s_sprite sprite = { 1, SPRITE_CHR, SPRITE_COLORKEY, SPRITE_INIT_POS_X, SPRITE_INIT_POS_Y }; uint8_t sprite_dir = 0; void nmi() { if (sprite_dir & 1) { sprite.x++; if (sprite.x == 248) { sprite_dir ^= 1; } } else { sprite.x—; if (sprite.x == 32) { sprite_dir ^= 1; } } if (sprite_dir & 2) { sprite.y++; if (sprite.y == 216) { sprite_dir ^= 2; } } else { sprite.y—; if (sprite.x == 32) { sprite_dir ^= 2; } } set_sprite(0, sprite); } void main() { while(1) { } }

    Рейтинг
    ( 2 оценки, среднее 5 из 5 )
    Понравилась статья? Поделиться с друзьями:
    Для любых предложений по сайту: tritovarischa@cp9.ru