Quake на эмуляторе без второго подключенного ZX Spectrum
Первая полноценная сетевая игра на ZX Spectrum. Работает она на двух любых клонах speccy 48kb памяти и более, с наличием сопроцессора AY-3-8910 или YM2149F. Поскольку мало кто знает, что на speccy можно было делать такие вещи немного приоткрою тайну создания этой игры.
В 2003 году летним днем, разгребая свежую папку скаченного. Наткнулся на новый номер AlcoNews #17, там находилась интересная статья про соединение двух Спектрумов через AY-3-8910 что самое главное была она очень простая 3 проводка и два Спектрума. В то время Bugsy как раз занимался modding`ом speccy. По такому стечению обстоятельств мы сразу решили сделать эту доработку на своих zs scorpion 256kb.
Как приложение в AlcoNews была программа демонстрирующая работу этой сети, но, к сожалению, она была не работоспособна (оказалось, что был битый архив). Я сразу же начал пробовать искать проблему в железе тестировать порты, но оказалось, что они полностью рабочие и тогда следующем шагом сделал простую передачу битов с отключенным прерыванием.
Затем было изучение особенностей работы этих портов в разных состояниях компьютера. С помощью них удалось узнавать состояния компьютера: включен, выключен, неожиданный разрыв связи, прекращение передачи.
Был написан драйвер, который мог сам определять, кем он является Master`ом или Slave`ом на котором запущенна передача, также была сделана полная синхронизация и передачи байтов. Причем можно было включать на одном компьютере turbo режим, а на втором нет. Передача проходила все равно успешно. Вызов драйвера был сделан очень просто. Тот же ldir только в место него вызов функции драйвера. Тогда же я попробовал передавать блоки памяти, Спектрумовский экран передавался быстрее, чем на магнитофоне.
Наигравшись с передачей данных, написал простейший чат. Можно было вводить текст и пересылать другому компьютеру. В последствие я его доработал, добавил туда раскраску текста и переключение раскладки языка. Вставил его в игру как отдельную опцию (почему то тогда не пришло в голову вставить его в игровой процесс)
Сначала была попытка сделать игру лабиринт, где надо было добежать до выхода быстрее соперника. Но мне показалось, что это будет слишком просто. Как раз в это же время я играл Quake 3 arena. И идея пришла сама собой, почему бы не сделать Quake в 2D (Сейчас эта идея крайне популярна, делать популярные игры в 2D на мобильные устройства). В игре оказались почти все интересные фичи настоящего Quake выбор skin`ов, карты, а также лимитов раунда. В игре, кстати сказать, передаться все время по 3 байта на каждый компьютер: X,Y и действие игрока.
Тогда хотелось, чтобы игру увидели как можно больше народу, поэтому системные требование были самые минимальные ZX Spectrum 48kb и AY-3-8910 сопроцессор. Но, к сожалению, на реальных Спектрумах ее так ни кто и не видел, а в эмуляторе естественно такое не поддерживалось.
