Info Guide
#10
30 апреля 2007 |
|
ZX Клоны - Мультиплатформенность на ZX Spectrum. Компьютеры SAM Coupe и MSX.
Мультиплатформа Посколько теперь каждый выпускаемый 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
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября