«МК-61s»: инструкция к играм

Игры для калькулятора «МК-61» рассчитаны на бурную фантазию — без неё играть практически невозможно. На его экран много не выведешь, поэтому многое приходится обозначать условно. Но даже с самой развитой фантазией без инструкции часто невозможно понять, что же происходит на экране.

У меня давно была мысль сделать для ретроконсоли «MK-61s» возможность собирать игры в некий пакет, в который будут включены как сама игра, так и её описание, а по возможности — даже иллюстрации. Мне это виделось как папка в файловой системе, при открытии которой автоматически запускается файл, показывающий инструкцию, после чего запускается сама игра.

Я давно, шаг за шагом начал реализовывать этот проект и вчера вечером наконец-то его завершил. Для этого пришлось последовательно сделать файловую систему, потом папки на ней, расширить команды терминала и сделать из этого псевдоязык для управления устройством, добавить виртуальный графический экран, просмотр графических файлов в формате WBMP, поддержку файлов в формате «маркдаун» и автозапуск файла autoexec.m61 — это как раз файл, содержащий управляющие команды терминала.

Скриншот игры «Погоня» Сергея Шинкевича (1991): пиксельный город, машина мафии, инструкция «Вы — полицейский. Погоняйте машину мафии...
Тут я склеил три экрана для наглядности

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

Оставить комментарий

«МК-61s»: инструкция к играм (подробности)

Хочу чуть подробнее рассказать о том, как сделана инструкция к играм для «MK-61s».

Как я уже говорил, если при входе в папку Проводник ретроконсоль обнаруживает внутри файл autoexec.m61, она запускает его. Файл содержит инструкции для терминала. Это существовавший ещё до моего прихода в проект простой язык, который я довольно сильно расширил под свои нужды. Сейчас в нём есть даже условные конструкции и подпрограммы. То есть это аналог BAT-файла из мира «Виндоуса» или шелл-скрипта из мира «Линукса» и «Мака».

В данном случае autoexec.m61 первым делом командой open открывает для просмотра маркдаун-файл manual.md. Маркдаун — хорошо документированный и широко используемый формат. В ретроконсоли реализовано лишь его подмножество, так как полная поддержка не имела смысла.

На скриншоте видно оба файла. В маркдауне видно всю разметку, которая потом во что-то превращается на экране (например, символы «решётки» выделяют заголовки) и ссылки на картинки в формате WBMP — был такой очень простой формат однобитной графики во времена интернета для кнопочных сотовых телефонов. На графическом экране графика внедрённая, то есть на месте, где в файле находится ссылка на картинку, будет выведена сама картинка.

Скриншот manual.md: инструкция к игре «Погоня». Управление, цель — врезаться в машину мафиози. Сообщения: «ВСЕ» — победа, «ЕГГОГ» — авария.

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

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

Оставить комментарий

«0W-Tube»: зеркалирование

Скриншот видеоплеера с фильмом «Через тернии к звездам»: два мужчины в профиль на тёмном фоне, прогресс-бар на 1:26:05 из 2:20:09, кнопки перемотки ±15/+30 сек и пауза.

Выпустил новую версию своего агрегатора видео, который я пишу для своего проектора (хотя он запускается на любом устройстве с «Андроидом»).

Добавил поддержку новых способов получения видео, которые подсмотрел в ещё не принятых коммитах утилиты yt-dlp, а также реализовал функцию, которую давно хотел сделать, — отзеркаливание видео.

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

8 комментариев