Мультиплатформа
Посколько теперь каждый выпускаемый ZX
Spectrum имеет режим "цвет на точку",
то можно посмотреть в сторону некоторой
кроссплатформенности.Рассмотрим для начала
компьютеры MSX (конкретно MSX2 - с видео─
контроллером V9938 и выше) и SAM Coupe.
Оба они имеют Z80 в качестве централь─
ного процессора,некое подобие бипера и не─
которое подобие AY (в случае SAM - весьма
далёкое подобие под названием SAA 1099,
однако на MSX - вполне реальный AY, в том
случае, когда он не встроен в чипсет).
И MSX2, и SAM имеют интересующий нас
растровый режим 256x192 в 16 цветов (с на─
страиваемой палитрой). Аппаратные спрайты
нас на данном этапе не интересуют.Разговор
о сборке ОДНОЙ И ТОЙ ЖЕ программы ПОД ВСЕ
ЭТИ МАШИНЫ.
,
SAM Coupe
,
Вкратце, SAM Coupe - это неправильный
Спектрум. Машина совместима с ZX Spectrum
48k, но не более. ,
Авторы SAM Coupe решили,что переключать
память в окнах по 16k - излишняя роскошь.
Поэтому можно щёлкать только по 32k сразу
(2 окна: #0000..#7fff и #8000..#ffff ),но
указывать проецируемый туда кусок памяти
можно с точностью в 16k. Такое решение во─
всю используется местным бейсиком. Он ело─
зит по #8000-#bfff, а когда пересекает
#c000, переключает память в области #8000-
#ffff и опять начинает двигаться с #8000.
Таким образом организована виртуальная па─
мять (почти 256k ), которую можно занять
немеренной бейсик-программой.
Чип SAA 1099 не имеет огибающей, зато
имеет несколько тембров звука для 6 кана─
лов. Утверждают, что проблема конвертации
звука с AY на SAA 1099 решена, но я не ви─
дел конвертор и вообще сомневаюсь.
Машина распространена довольно слабо, и
людей,у которых можно проконсультироваться
по техническим вопросам, можно пересчитать
по пальцам.В первую очередь это Simon Owen
- автор эмулятора Sim Coupe. Однако необ─
ходимый набор утилит для разработки,кросс-
разработки в том числе, имеется.
MSX
Если SAM - это неправильный Спектрум,то
MSX - это ОЧЕНЬ неправильный Спектрум :)
Совместимости не ожидайте никакой.
Например, импульс прерывания (INT) там
сам по себе не снимается.Его нужно снимать
вручную (обратившись к порту устройства,
его вызвавшего) в обработчике прерывания,
иначе после EI обработчик будет вызван
снова. Видимо, это было самым простым спо─
собом решить задачу обработки прерываний
от многих источников, чтобы ни одно из них
не потерялось.
В 7-м регистре AY нельзя устанавливать
оба канала ввода-вывода на вывод - MSX мо─
жет сгореть.Оба на ввод - можно (так дела─
ет сама система). Вообще же для правильной
работы джойстика на вывод должен работать
только порт B. Указанная защита уже преду─
смотрена в существующих плейерах музыки и
эффектов.
Сцена на MSX очень большая и активная,
компьютер широко распространён (в том чис─
ле в бывшем СССР) и производится до сих
пор (One-chip MSX). Документацию по любой
железке и программному ухищрению можно на─
йти, потыкав в интернете,поэтому я не буду
углубляться в дальнейшие технические дета─
ли. Железа на MSX слишком много,и даже по─
ловину не нужно знать,чтобы написать игру.
Принципиальными проблемами при програм─
мировании на MSX являются следующие.
1. ОЗУ процессора сильно ограничено. На
разных моделях разное количество ОЗУ, но
следует рассчитывать на 64k, причём #d400
и выше заняты системой. ВидеоОЗУ (VRAM)
на MSX2 обычно 128k.
2. Предпочтительной частотой кадровой
развёртки является 60 Hz. Конечно, 50 Hz
годится для Европы,но для расширения ауди─
тории лучше выбрать 60 Hz (европейская те─
хника 60 Hz тоже терпит). Хорошего источ─
ника прерываний с частотой 50 Hz в этом
случае не будет, поэтому AY музыку следует
перевести в другой темп.Мне попадался один
журнал ( Disk ),в котором предусмотрен вы─
бор 50 Hz / 60 Hz. Однако это нетипично.
3. Расположение букв на матрице клавиа─
туры меняется в зависимости от модели MSX
(точнее,от страны,на которую ориентирована
данная модель). Программно определить рас─
кладку нельзя,разве что путём программного
определения модели машины - а это затруд─
нительно при огромном числе существующих
моделей. Поэтому лучше не опрашивать буквы
в программе, а обходиться управляющими и
функциональными клавишами.
Из того,что можно использовать дополни─
тельно - популярное звуковое устройство
FM PAC (MSX Music), имеющее 9 мелодических
каналов,или 6 мелодических+5 каналов удар─
ных. Один инструмент можно переопределять.
Не исключено, что музыку под TurboSound FM
можно грубо переделать под FM PAC, выбрав
другие инструменты.
* * *
Как вы могли заметить по исходникам
Ball Quest Gold Release, из этих исходни─
ков можно скомпилировать вполне работоспо─
собную версию под MSX2 (под минимальную
машину: 64k RAM + 64k VRAM ). Необходимые
для сборки утилиты лежат там же. Почему не
выложена сама MSX версия? Потому что она
отправлена на MSX2 game development chal─
lenge, организатор которого Snout не силь─
но торопится открывать сайт конкурса.
Ждём-с.
Из исходников Ball Quest можно без тру─
да сделать ещё какую-нибудь игру на том же
движке, и она будет работать на ATM Turbo
2/2+, Pentagon1024SL v2.x и MSX2. Для MSX2
нужно собрать используемые спрайты в общий
bmp, который во время игры будет лежать в
видеопамяти (VRAM).
Alone Coder