Собственно, обещанная ранее статья про ретрокодинг с кросс-компиляторами. Она на 100% готова, к сожалению, на сопроводительный код ушло очень много сил, даже простые игры-прототипы — занимают время при создании. И тем не менее, это хороший, годный материал, который жалко выкидывать в корзину, так что публикую здесь, бесплатно, без SMS и регистраций. Возможно, кому-то будет интересно, или даже полезно.
В этой статье я расскажу о том, как можно разрабатывать в настоящее время минималистские 16-битные игры для реального режима процессора x86, ограничиваясь только базовыми функциями DOS и BIOS, с использованием так называемых кросс-компиляторов. Статья предназначена для людей, хотя бы немного знакомых с программированием под DOS или для тех, кто интересуется ретротематикой и хотел бы узнать, как создаются подобные приложения, если не с нуля, то хотя бы на простом примере.
Для начала — естественные ограничения реального режима процессора:
Наши возможности для разработки:
Зачем это может понадобиться?
Первый очевидный ответ — забавы ради. Некоторые из нас начинали разрабатывать программы и игры ещё под MS-DOS, всегда приятно вспомнить былое.
Второе — тренировка и очистка разума. Легко работать, когда в твоём распоряжении 64 гигабайта оперативки, 16 ядер процессора, независимая звуковая система и возможность грузить текстуры в FullHD. Когда доступна видеопамять 320 на 200 пикселей, оперативная память заканчивается на десятой текстуре, звук нужно извлекать путем включения и выключения динамика на заданной частоте, а события отслеживаются по таймеру на два десятка герц — задача становится немного иной. Постоянно так жить невозможно, но изредка — может даже оказаться полезным.
Ну и наконец, эстетическая компонента. Игры, созданные с использованием технологий тридцатилетней давности — выглядят по-особому. Да, в настоящее время существуют движки, которые позволяют воссоздать этот вид на современных средах разработки, но оригинальные методы всё ещё имеют ценность, на любителя.
Читать дальше
В этой статье я расскажу о том, как можно разрабатывать в настоящее время минималистские 16-битные игры для реального режима процессора x86, ограничиваясь только базовыми функциями DOS и BIOS, с использованием так называемых кросс-компиляторов. Статья предназначена для людей, хотя бы немного знакомых с программированием под DOS или для тех, кто интересуется ретротематикой и хотел бы узнать, как создаются подобные приложения, если не с нуля, то хотя бы на простом примере.
Для начала — естественные ограничения реального режима процессора:
- процессор адресует только 1Мб памяти
- модель памяти — сегментная (адрес памяти — это пара «сегмент: смещение»)
Наши возможности для разработки:
- Набор прерываний DOS и BIOS для работы с экраном и клавиатурой
- 640 Кб оперативной памяти (на практике меньше), разбитые на сегменты
- Создание приложения в формате EXE (модели памяти Small/Medium) или COM (модель памяти Tiny)
- Использование системного динамика для создания звуковых эффектов
- Встроенные видеорежимы BIOS, а также стандартный текстовый режим, который загружается при старте DOS или DOSBox
- Наконец, использование системного таймера, работающего на частоте 18.25 Гц, применение которого позволяет сделать программы независящими от частоты процессора.
Зачем это может понадобиться?
Первый очевидный ответ — забавы ради. Некоторые из нас начинали разрабатывать программы и игры ещё под MS-DOS, всегда приятно вспомнить былое.
Второе — тренировка и очистка разума. Легко работать, когда в твоём распоряжении 64 гигабайта оперативки, 16 ядер процессора, независимая звуковая система и возможность грузить текстуры в FullHD. Когда доступна видеопамять 320 на 200 пикселей, оперативная память заканчивается на десятой текстуре, звук нужно извлекать путем включения и выключения динамика на заданной частоте, а события отслеживаются по таймеру на два десятка герц — задача становится немного иной. Постоянно так жить невозможно, но изредка — может даже оказаться полезным.
Ну и наконец, эстетическая компонента. Игры, созданные с использованием технологий тридцатилетней давности — выглядят по-особому. Да, в настоящее время существуют движки, которые позволяют воссоздать этот вид на современных средах разработки, но оригинальные методы всё ещё имеют ценность, на любителя.




