Пока внутриигровая графика от Марка еще не была готова, я написал процедуры вывода плитки и прокрутки, пользуясь тестовыми спрайтами: специфическими большими цветными треугольниками, кругами, ромбами и т. д., простая графика, которую может нацарапать даже не художник. Это был мой достаточно веселый подход, который дал мне первую надежду, что все это может быть заработает. В моей попытке нарисовать все как курица лапой, я не сделал точное заполнение плитки по краям, фактически я имел большие, величиной в знакоместо, пустые места вокруг всех плиток, потому что так мне пришлось использовать меньше символов для составления плитки, ускорив тем самым запуск тестирования. После того, как я добился правильного декодирования плитки на экран и написал реально простой тест прокрутки, чтобы заставить все это двигаться, я уверенно ожидал цветное месиво из-за конфликта, пока уровень прокручивался по экрану. Но… все эти различные цветные фигуры плыли медленно по экрану и нигде не было видно конфликта цветов!
Конечно, там были большие промежутки между формами в плитке — это и был "секрет" отсутствия конфликта цветов, так происходит, когда есть промежуток величиной в один символ между двумя перемещающимся символами с различными цветами, когда невозможно переместить цветовой атрибут с одного знакоместа в другое. Ах, и конечно, это работает, если все ваши символы имеют общий атрибут "БУМАГИ" (включая и тот что является разделяющим буфером), сразу отбросив идею параллельно дублирующей фоновой прокрутки, отлично работающей в оригинале, в пользу черного цвета.
Ирония заключалась в том, что если я помещу туда готовую графику из игры, то там не будет нужных промежутков, на это просто нет лишнего места, цвета должны были бы перекрываться в одном знакоместе и мне пришлось бы сдаться, пойдя доро́гой монохромной версии. Но к счастью, я столкнулся с этим прямо в начале работы, так что я пошел к Марку и сообщил, что он может использовать те цвета фона, которые хочет, при условии, что оставит один пустой символ, если соседние символы имеют различные цвета, а так как экран не перемещается вверх и вниз, то он может использовать любые цвета по вертикали.
Реальным сердцем R-Type является попиксельно перемещающийся фон, а большинство спрайтов: корабли, чужие, пули, оружие и т. д. перемещаются на восемь пикселей через знакоместо (вернее атрибут) по его границе, чтобы спрайт был окрашен, используя атрибут ЧЕРНИЛА и черный цвет для атрибута БУМАГА, сливаясь со всем черным фоном.
Если вам будет угодно педантичное разъяснение об этом, то фон был действительно пустым черным цветом, в то время как графика уровня: декорации и разные статические штучки прокручивались попиксельно и о которые ваш корабль мог разбиться — это нижний план, а все игровые спрайты, расположенные между "небом и землей на экране" — это верхний. Так как позади верхнего плана ничего нет, то отпадает необходимость использовать маскирование и изменение цвета спрайтов. Просто понимайте буквально — когда я говорю "фон", я имею ввиду комбинацию из декораций и черного фона.
Всё, что мне нужно было сделать дальше, так это предотвратить наложение спрайтов на фоновую графику и найти способ увеличить скорость работы, даже на этой первой стадии все работало очень медленно.
Оборудование, которое я использовал в этот раз, было таким же, как и для Rampage: стандартный Спектрум 48K с Интерфейсом 1 и микродрайвами и всеми любимое устройство для копирования или создания резервных копий: Romantic Robot’s Multiface 1. У меня была копия OCP Редактора\Ассемблера на микродрайве вместе с моим исходным кодом, и, нажимая на кнопку на Multiface, я мог получить из пустого Спектрума готовый к ассемблированию за несколько секунд, однако недостатком этого метода было то, что ассемблер был резидентной программой в памяти Спектрума, занимающий ценную оперативную память, которую я не мог использовать.
С приобретением немного большего опыта работы с Z80, полагаю, я мог бы работать с дополнительным, около 8K, ОЗУ, которое находилось в Multiface или методом соединения бинарных файлов, но ограничения памяти определенно вызвали уменьшения тех дополнительных возможностей, которые я хотел добавить в Rampage и я понял, что то же самое произойдет с R-Type.