Салют, друзья! 💥
Некоторое время подумываю о создании новой платформы для демосцены. До вчерашнего дня я только размышлял об её особенностях, возможностях, продумывал заголовок (опциональный, но с кучей настроек), некоторые технические нюансы (организацию API, структуру памяти). И вот, наконец, вчера открыл Visual Studio, создал проект и написал немного кода🙂
💻 Ни для кого не секрет, что помимо аппаратных платформ существуют и искусственно созданные: PICO-8, TIC-80, недавно появившаяся MicroW8 и др.
Каждая платформа имеет ограничения: по разрешению экрана, набору цветов, возможностям воспроизведения звука, производительности, наконец. Ограничения — неотъемлемая часть демосцены. Однако даже мощнейший современный компьютер с видеокартой RTX 4090 тоже имеет ограничения, но конечно, другого уровня, нежели ретрокомпьютеры. Вместе с тем, смотреть 64K или 4K intro на шейдерах не менее интересно, чем демо/интро под ZX Spectrum, написанные на чистом ассемблере Z80, или интро под TIC-80 на Lua. Во всём есть свои фишки, своя романтика и свои челленджи.
Поскольку я любитель Newskool-платформ, ассемблера и Sizecoding'а, моя платформа ориентирована на полноцветный hi-res, максимальную скорость и нативный код x86 под Windows. А ещё я люблю многопоточность, и именно она легла с основу новой платформы.
👉 Минутка рекламы в тему: обязательно подписывайтесь на мой канал и чат о параллельном и асинхронном программировании, GPGPU и оптимизации.
Каковы особенности моей платформы?
🔹 Нативный исполняемый код x86. Интро пишется под процессор Intel IA-32 / AMD x86. Никакого байт-кода, никакого Lua, JavaScript, Python или GLSL. Только ассемблер, только хардкор!😁 И никаких тормозных DOSBox'ов, код запускается внутри процесса среды исполнения под Windows. Помимо всего прочего, вам доступны все прелести современных процессоров: 32-битная адресация, SIMD (вплоть до AVX-512) и прочие наборы инструкций. Возможно, позже будет поддержка 64-битного кода, но я не обещаю.
🔹 Опциональный заголовок. Да, это почти как COM-файл под DOS. Вам не нужно тратить драгоценные байты (десятки и сотни) на ненужную информацию о вашем интро. Заголовок, если он нужен, будет иметь разную длину в зависимости от тех данных, которые вы хотите там разместить.Вы даже можете спрятать заголовок в имя файла. Так что, под новую платформу вполне возможно создавать даже 32 или 64-байтные интро.
🔹 Среда исполнения с унифицированным API. Проблема DOS в том, что на работу вашего intro влияет множество внешних факторов, которые сложно (а иногда и невозможно) контролировать. Начиная от загруженных драйверов и резидентных программ, заканчивая особенностями реализации DOS и BIOS (в т.ч. различные номера видеорежимов VESA на каждой системе, разное состояние Unreal Mode и поддержки SSE). Кому-то наверняка это даже нравится, но лично я считаю это излишним неудобством. Если ваше аппаратное обеспечение не соответствует каким-то требованиям intro, среда исполненияPara\\e/ Para||elix выдаст соответствующее сообщение, в DOS же, скорее всего, система просто зависнет, либо intro будет глючить.
Некоторое время подумываю о создании новой платформы для демосцены. До вчерашнего дня я только размышлял об её особенностях, возможностях, продумывал заголовок (опциональный, но с кучей настроек), некоторые технические нюансы (организацию API, структуру памяти). И вот, наконец, вчера открыл Visual Studio, создал проект и написал немного кода
Каждая платформа имеет ограничения: по разрешению экрана, набору цветов, возможностям воспроизведения звука, производительности, наконец. Ограничения — неотъемлемая часть демосцены. Однако даже мощнейший современный компьютер с видеокартой RTX 4090 тоже имеет ограничения, но конечно, другого уровня, нежели ретрокомпьютеры. Вместе с тем, смотреть 64K или 4K intro на шейдерах не менее интересно, чем демо/интро под ZX Spectrum, написанные на чистом ассемблере Z80, или интро под TIC-80 на Lua. Во всём есть свои фишки, своя романтика и свои челленджи.
Поскольку я любитель Newskool-платформ, ассемблера и Sizecoding'а, моя платформа ориентирована на полноцветный hi-res, максимальную скорость и нативный код x86 под Windows. А ещё я люблю многопоточность, и именно она легла с основу новой платформы.
Каковы особенности моей платформы?
🔹 Нативный исполняемый код x86. Интро пишется под процессор Intel IA-32 / AMD x86. Никакого байт-кода, никакого Lua, JavaScript, Python или GLSL. Только ассемблер, только хардкор!
🔹 Опциональный заголовок. Да, это почти как COM-файл под DOS. Вам не нужно тратить драгоценные байты (десятки и сотни) на ненужную информацию о вашем интро. Заголовок, если он нужен, будет иметь разную длину в зависимости от тех данных, которые вы хотите там разместить.
🔹 Среда исполнения с унифицированным API. Проблема DOS в том, что на работу вашего intro влияет множество внешних факторов, которые сложно (а иногда и невозможно) контролировать. Начиная от загруженных драйверов и резидентных программ, заканчивая особенностями реализации DOS и BIOS (в т.ч. различные номера видеорежимов VESA на каждой системе, разное состояние Unreal Mode и поддержки SSE). Кому-то наверняка это даже нравится, но лично я считаю это излишним неудобством. Если ваше аппаратное обеспечение не соответствует каким-то требованиям intro, среда исполнения
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1