User Tag List

Показано с 1 по 1 из 1

Тема: Cross-Lib: универсальный графический фреймворк для двухсот 8-битных ретро-компьютеров

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Cross-Lib: универсальный графический фреймворк для двухсот 8-битных ретро-компьютеров

    Cross-Lib — это ретро-аппаратный уровень абстракции для кодирования «универсальных» игр с одним и тем же кодом для сотен преимущественно 8-битных систем (консолей, компьютеров, научных калькуляторов, портативных консолей, игровых автоматов, взломанных игрушечных компьютеров и т. д.). .).

    Cross-Lib — это платформа WORA (Write Once Run Anywhere) для старинных систем, т.е. вы один раз кодируете игру абстрактным, не зависящим от оборудования способом, а Cross-Lib создает одну и ту же игру примерно для 200 старинных систем.


    СТАТЬЯ О КРОСС-ЛИБЕ

    Статья на английском языке (обновленная и измененная версия статьи, опубликованной в CALL Apple Volume 3 Number 1 (январь 2023 г.): https://github.com/Fabrizio-Caruso/C...lishArticle.md

    Статья на французском языке (впервые опубликована во французском журнале Programmez! Hors série #6), в которой подробно описывается Cross-Lib. https://github.com/Fabrizio-Caruso/C...LIB_PUBLIC.pdf

    ИГРЫ

    Эти игры являются доказательством гибкости Cross-Lib .

    Играйте в игры онлайн:


    ПОДДЕРЖИВАЕМЫЕ В НАСТОЯЩЕЕ ВРЕМЯ СИСТЕМЫ И АРХИТЕКТУРЫ

    Cross-Lib можно использовать для создания игр примерно для 200 различных старинных систем (компьютеров, консолей, портативных устройств, игровых автоматов, научных карманных калькуляторов и т. д.). Неполный список поддерживаемых систем с их статусом находится в:

    https://github.com/Fabrizio-Caruso/C...docs/STATUS.md

    Наиболее важными поддерживаемыми старинными архитектурами ЦП являются:

    • COSMAC RCA 1802
    • Intel 8080
    • MOS 6502
    • Motorola 6803
    • Motorola 6809
    • TMS 9900
    • Zilog 80

    Cross-Lib также имеет экспериментальную поддержку старинных 16-битных и 32-битных систем, а также встроенной консоли ПК.

    Более полный список архитектур вы можете посмотреть:


    ИНСТРУМЕНТАРИЙ

    Cross-Lib предоставляет полный набор инструментов для создания универсальных винтажных 8-битных игр.

    Межбиблиотечные компоненты

    Cross-Lib обеспечивает:

    • библиотека с аппаратно-независимыми API для разработки игр;
    • сценарии, которые автоматически преобразуют графические ресурсы, независимые от компилятора, в форматы графических ресурсов, специфичные для целевых объектов;
    • make-файлы, управляющие процессом сборки;
    • «удобный» скрипт xl для управления игровыми проектами.

    Процесс сборки

    Когда игра создается для конкретной цели, набор инструментов Cross-Lib автоматически:

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

    В большинстве случаев пользователю достаточно будет

    • написать на C игру, использующую Cross-Lib API;
    • рисовать графические ресурсы;
    • запустите xl скрипт для создания, сборки и тестирования игры.

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

    ПРЕДПОСЫЛКИ

    Cross-Lib предназначен для использования в среде POSIX (Windows+Cygwin, Linux и т. д.).

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


    АППАРАТНО-НЕЗАВИСИМЫЙ КОД

    Благодаря API Cross-Lib код игры может быть независимым от аппаратного обеспечения. Однако использования только API-интерфейсов Cross-Lib недостаточно, поскольку Cross-Lib охватывает цели, имеющие разные размеры и форму экрана, а также цели, которым не хватает некоторых аппаратных функций, таких как графика, цвета, звуки.

    ANSI C (подмножество)

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

    Этот подмножество можно описать (в основном) как ANSI C89 без:

    • вещественных типов;
    • копирования struct, присвоения, параметры (вместо этого используйте указатели на struct);
    • динамически выделяемой памяти (malloc, free).
    Более того, из соображений производительности лучше избегать рекурсии (поскольку это приводит к чрезвычайно высоким затратам на целях MOS 6502).

    Доступны некоторые функции C99:

    • Разрешены современные комментарии вида //
    • stdint.h недоступен, но есть типы uint8_t и uint16_t (без необходимости дополнительной директивы include).

    Размер экрана

    Использование API Cross-Lib недостаточно, поскольку размер и форма экрана могут быть разными. Cross-Lib предоставляет константу XSize для ширины экрана и константу YSize для высоты экрана. Оба этих макроса измеряются количеством плиток. Код игры должен опираться на дроби XSize и YSize и никогда не использовать жестко запрограммированные размеры или использовать условные директивы для охвата всех размеров. Таким образом, после компиляции игра автоматически адаптируется к размеру экрана цели.

    Тайловая графика

    Графика в Cross-Lib основана на плитках, поскольку это единственная возможная графика, которая может поддерживаться всеми целями. Для целей с графикой форма плиток определяется только во время компиляции и не может быть переопределена. Таким образом, для целей с графикой плавно движущиеся спрайты можно реализовать только как программные спрайты через предварительно сдвинутые тайлы.

    Большинство целей с графикой имеют плитки размером 8x8 пикселей, но некоторые другие цели с графикой имеют другую форму. Поэтому не реализуйте логику, которая предполагает только тайлы размером 8x8 пикселей (например, при реализации программных спрайтов с предварительно сдвинутыми тайлами). Если вы хотите поддерживать цели без графики (т. е. плитки просто сопоставляются с символами ASCII), вы либо избегаете кода, который зависит от формы плиток, либо вам придется реализовать альтернативную версию для неграфических целей.

    Дополнительные снимки можно найти по адресу:


    Цвета, звуки и графика

    Некоторые цели не имеют цветов или цвета текста, звуков или графики. Так что не пишите никакой логики, опирающейся только на наличие цветов/звуков/графики; или, если да, используйте условные директивы для реализации альтернативной логики для целей без цветов/звуков/графики.

    API-интерфейсы CROSS-LIB

    Cross-Lib предоставляет несколько API, которые позволяют кодировать игры независимо от оборудования для всех поддерживаемых целей. Доступные на данный момент API описаны на странице


    БУДУЩЕЕ

    Основными целями на будущее являются

    • улучшение открытых API
    • поддержка большего количества кросс-компиляторов, собственных компиляторов, систем и подцелей
    • добавление дополнительных функций в Cross-Lib (например, больше переопределяемых плиток, больше звуковых эффектов и т. д.)
    • кодирование более универсальных игр и демо

    Этот пользователь поблагодарил Oleg N. Cher за это полезное сообщение:

    mastermind(12.01.2024)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 281
    Последнее: 05.12.2025, 22:42
  2. Универсальный БП для ретро ПК
    от Daniil Chislov 86 в разделе Источники питания
    Ответов: 26
    Последнее: 30.08.2022, 09:58
  3. Ответов: 0
    Последнее: 31.10.2020, 19:52
  4. Ответов: 20
    Последнее: 27.10.2017, 08:53
  5. Концепция Музея ретро компьютеров
    от newart в разделе Разное
    Ответов: 25
    Последнее: 10.11.2015, 00:48

Ваши права

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