Ещё на момент попыток подключения оригинального ZX Spectrum +2 к телевизору мне пришлось бороться с самим собой по вопросу вмешательства в оригинальную плату. Изначально хотелось, конечно, оставить её в том состоянии, в котором она останется максимально аутентичной, с другой стороны, было понятно, что у меня с работоспособностью платы проблемы и придётся много чего в ней изменить и это не может не отразиться на ней. Так и случилось. Об этом можно почитать в отдельной статье, в которой я описал все свои мучения и блуждания с ремонтом. Поэтому начав вмешательство в плату с перепаивания перемычек для видеовхода, останавливаться я уже не стал… И модифицировать, на самом деле, есть что и об этом мы тут и поговорим.
Видеовыход
Первое с чего я начал, это решение с проблемой вывода RGB-изображения на телевизор и монитор. Подробно я уже останавливался на этом в статье про подключение к телевизору, поэтому не буду сюда всё переписывать, а ограничусь тем, что в итоге мне пришлось на плате менять (перепаивать) перемычки у видеовыхода, руководствуясь вот этой схемой:
А конкретно, нам надо получить с платы 12 вольт и подать их на контакт VSYNC разъёма DIN-8 (выпаиваем перемычку LK1 и впаиваем её на место LK3) и заодно аудиосигнала вместо контакта BRIGHT (выпаиваем перемычку LK7 и впаиваем её на место LK8). По сути в самой схеме изначально предусмотрено такая модификация — так почему ж её не сделать:
Первое позволит нам соблюсти условие перехода телевизора на RGB-сигнал с разъема SCART, а второе — монозвук на этом же телевизоре, без необходимости втыкать отдельный аудиокабель (как это сделано на большинстве «импортных» кабелей для ZX Spectrum). Да, стереозвука не будет, да его и в самом ZX Spectrum +2 нет изначально, но для телевизора это не особенно критично, расположение колонок и качество их звука нивелирует этот недостаток. Ну и кабель нужно будет подготовить соответственно требованиям стандарта SCART (8-й контакт — выбор TV/AV, 16-й — выбор RGB, 2-й и 6-й — аудиосигнал).
Конечно, перемычки можно и оставить на месте и выдавать, например, 9 вольт батарейкой типа «крона» (этого достаточно чтобы ТВ переключился в AV) или даже дать +5 В от USB-порта телевизора (если он есть). Хотя в стандарте SCART конкретно указаны сколько должно быть вольт для каждого режима, но нужно всё-таки это проверять с конкретными устройствами, потому что у меня, например, один кабель отлично работает с кинескопным ТВ, зато другой — прекрасно работает с конвертером SCART в HDMI, а только таким образом можно вывести изображение на монитор. Поэтому приходится держать два кабеля для разных нужд.
Убираем «эффект снега»
У ZX Spectrum +2 как и у оригинального ZX Spectrum 128 наблюдается так называемый «эффект снега» (snow effect). Выглядит это достаточно неприятно и может даже вызвать зависание компьютера. Вот так это отображается в тестовой программе:
А вот так проявляется в игре:
Быстро проверить можно набрав PRINT IN 32765 в Бейсике — на не модифицированном ZX Spectrum +2 будет сброс, вместо отображения значения 255.
Причина этого кроется в аппаратном баге в микросхеме HAL10H8 (PAL10H8), поэтому чтобы избавиться от него, микросхему эту надо выпаять и заменить на правильную (GAL16V8). В принципе, сама операция несложная, если у вас есть навык по выпаиванию микросхем (в крайнем случае можно скусить её с платы и выпаивать ноги по отдельности), у меня больше времени занял поиск и покупка этой самой правильной микросхемы. Сначала я попытался купить на Ebay, но прождав посылку безуспешно пару месяцев деньги вернул. После этого я уже действовал более надежно: прикупил Unrainer modification/fix на ByteDelight.com (но дороже: 10 евро + доставка). И опять подождав где-то месяц я наконец-то смог заменить эту треклятую микросхему. На моей версии платы этот чип находится в том же месте, что и в мануале, но выглядит немного по другому:
А вот что получилось:
В итоге, эффект снега пропал и теперь некоторые хорошие игры стали играбельны. Данный мод однозначно рекомендую всем (кроме упёртых на полной оригинальности), несмотря на его цену и некоторые трудности с установкой для новичков в пайке.
Замена AY-3-8912 на AY-3-8910
Зачем вообще это делать? Ну как вариант — он не работает или просто проблемы со звуком (шипит, шумит и т.п.). С заменой чипа на аналогичный возникнет проблема — он в корпусе DIP-28, а почему-то все AY-3-8912, которые можно найти на Aliexpress или Ebay очень дороги — от $20. При этом китайские аналоги аналогичного чипа AY-3-8910 (но в корпусе DIP-40) стоят от $2. Разница в 10 раз!
Если же чип работает и звук устраивает, то и менять не надо. Но для меня лично он очень тихо звучит на моём экземпляре ZX Spectrum +2. Поэтому мне захотелось попробовать, что же будет если поставить в эту машину другой чип, например: AY-3-8910, Yamaha YM2149F, File KC89C72, WF19054, JFC95101. Поскольку все они в корпусе DIP-40, то пришлось мудрить с переходником с DIP-40 на DIP-28, благо для Спектрума все эти чипы полностью совместимы по выходам и входам, т.е. можно без особых проблем скоммутировать нужные сигналы в нужные отверстия в плате. Например, пользуясь такой схемой:
Но, конечно, сначала надо выпаять чип AY-3-8912 и на его место впаять «панельку» DIP-28. После замены процессора это было уже не так сложно, хотя всё равно пришлось поднапрячься, чтобы освободить все ноги и ни одной не оторвать (цена вопроса $20!).
Ну а потом я попытался найти в продаже переходник с чипа AY-3-8912 на AY-3-8910, но не преуспел. Все кто его раньше продавали уже распродали свои запасы. Нашел только зарубежом и то обратный: чтобы можно было AY-3-8912 вставить вместо AY-3-8910, но мне такой не нужен. Заказывать самому 5 плат на JLCPCB мне показалось перебором, тем более что я так и не нашел для этого готового архива (хотя особо и не искал). Поэтому решил «заколхозить» переходник из двух панелек под чипы, спаяв выводы жесткими проводками. Получилось страшновато выглядящая штука, но вполне работоспособная:
Самое главное, что под крышку она зашла и позволяет теперь позволяет использовать чипы AY не только в корпусах DIP-28, но и DIP-40. Я устанавливал и новый File KC89C72 и оригинальный AY-3-8910, звук явно стал громче (особенно от KC89C72), а поскольку теперь не надо сильно поднимать громкость на принимающем устройстве, то и чище.
Стереозвук
Одна из проблем оригинальных ZX Spectrum — это моновыход аудиосигнала. Когда был один бипер — моно никого не напрягало, но с добавкой 3-канального чипа AY надо было всё-таки сразу делать стерео. Но тогда об этом никто не подумал… А теперь думать придётся нам. Самое простое — купить плату расширения с чипом AY и стереовыходом (вот, например, вариант от ByteDelight за 40 евро или Orpheus AY-sound & joystick от CSS Electronis за неизвестное количество евро). Вообще ничего делать не придётся, только денежек отдать и мириться с торчащей платой из корпуса. Но в случае с моделью Спектрума уже имеющей такой же аудиочип на борту — это выглядит как-то странно.
Поэтому такое решение проблемы мне не нравится и пришлось заняться другим способом — использование внутреннего мода для выхода звука, получая сигнал прямо с чипа AY. Тем более, что до этого я уже разобрался с внешней аудиоплатой для ПК на чипе AY, получающей сигнал с LPT-порта и выдающей его на стереовыход, так что подобный опыт у меня уже был. У того же ByteDelight есть стерео-мод для ZX Spectrum, правда стоимость его 20 евро + доставка:
Поэтому я опять сел колхозить свой вариант, воспользовавшись схемой от этого варианта, которая приведена в мануале. Данная схема мне понравилась тем, что там перемычками реализована смена микширования 3 каналов в стерео: либо ABC, либо ACB. Плюс, добавка сигнала бипера, без которого всё-таки не обойтись.
Съема очень простая и, в общем, всё получилось, как и ожидалось: выглядит не очень, зато работает. Подпаивался я не к самой микросхеме, а к той страшненькой конструкции, которую создал при переходе от AY-3-8912 к AY-3-8910 (собственно это и была одна из целей её создания). К 34 и 35 пинам ULA я тоже не стал припаивать проводники, а закоммутировался к ножкам торчащим с обратной стороны платы и кинул «сопли» вокруг неё. В общем-то и с AY надо было провести такую же операцию, просто сначала я не знал, будет ли так удобнее и оправдается ли аудиомод и останется он на постоянку или нет.
После того как я убедился, что данный мод меня полностью устраивает, я убрал временные провода напаянные на панельку и подцепился на постоянную уже к контактам снизу платы.
Из-за того что аудиовыход пришлось сделать на верхней части клавиатуры пришлось сделать разделяемый провод, чтобы отсоединять верхнюю часть от нижней без проблем. Переключатель каналов ABC<->ACB вытащил в разъём MIDI:
После закрытия крышки все эти провода и изолента скрываются, но если вы хотите, чтобы это выглядело не так кустарно — надо всё-таки заказывать этот мод на ByteDeligth. Но вот стерео делать надо просто однозначно, разница очень заметна. Теоретически теперь стерео можно передать и по SCART на ТВ, но кабель должен быть свой, в покупном нет дополнительного провода, на который можно повесить ещё один канал звука.
Добавляем вход с магнитофона
Об этом я уже писал ранее, но на всякий случай повторю: для организации внешнего магнитофонного входа надо припаять пару проводков к плате встроенного магнитофона (массу — к «земле», сигнал — к коллектору транзистора) и вывести штекер или гнездо наружу:
Операция тривиальная, зато после этого можно будет как со встроенного магнитофона загружать игры, так и с внешнего источника. Этот мод для тех фанатов 5-минутного прослушивания скрипов и повизгиваний при загрузке игр, которые не могут записать это заранее на кассету или у которых встроенный магнитофон не работает. Да и я, признаюсь, был вынужден несколько игр запускать подобным образом, поскольку вариант под TR-DOS оказывался заточенным под тайминги Пентагона и не корректно работал в оригинальном Спектруме.
Джойстики
Про джойстики я тоже уже писал и, в принципе, дополнительно добавить было бы нечего, поскольку именно что модов добавляющих поддержку других типов джойстиков, отличных от стандарта Sinclair, я не встречал. И единственный вариант — это купить плату расширения, типа такой:
Я как раз приобрёл её у ByteDeligth вместе с Unrainer mod и она действительно добавляет поддержку Kempston-джойстика (но вот как Sinclair он не заработал). И ещё становится возможным использовать с этой платой даже джойстики не-Atari стандарта, но есть один нюанс: я попробовал вставить в неё донгл от беспроводного джойстика от 8bit — и плата перестала работать и стала дико греться в районе преобразователя напряжения. Возможно, также не стоило на лету переключать джамперы, но скорей всего сама плата не готова к подобным устройствам, так что аккуратнее!
Я сам подозреваю второй вариант, поскольку я подобным же образом практически убил первый разъем Sinclair-джойстика на своём ZX Spectrum +2, пока испытывал его на совместимость с разными геймпадами. И вот тут действительно получилось нехорошо: внешняя плата контроллера джойстика накрылась, а тут ещё у основного порта встроенного джойстика перестали работать две кнопки. Поэтому дальше пойдет текст, который должен был попасть в предыдущую часть про ремонт ZX Spectrum +2, но просто случился уже позднее и всё-таки является модификацией.
Пришлось прозванивать микросхему AMSTRAD 40057, отвечающую за взаимодействие с обоими джойстиками. В сети удалось найти её описание, поэтому позажимав по очереди кнопки на джойстике, определил, что два контакта (1-3 Left и 1-2 Down), в отличии от других, при замыкании на землю всегда дают почти бесконечное сопротивление, что, скорее всего, означает что в микросхеме что-то сгорело.
И вот ведь обидно получилось: у меня есть вполне работающий Sinclair 1, но не работающий Sinclair 2, а в большинстве игр задействован только один Sinclair-джойстик (Sinclair 2, как это обычно указывают или просто Sinclair, что означает тоже самое). И, к большому сожалению, просто так поменять эту микросхему не выйдет — она тоже особенная, как и остальные фирменные микросхемы, и фактически единственный шанс найти замену — это либо найти нерабочую плату ZX Spectrum с джойстиками на борту, либо Interface 2, в котором задействована та же микросхема. Ну и понятна цена такого ремонта. Во-первых, времени на поиск можно убить немеряно, так и стоимость будут очень приличная. Я сначала огорчился, но вдруг мне пришла в голову идея махнуть порты джойстика местами. По описанию они отличались двумя контактами на микросхеме:
- A11 – $F7FE – left row – joystick 2 (bits %xxxFUDRL)
- A12 – $EFFE – right row – joystick 1 (bits %xxxLRDUF)
Ну и я поменял на плате их коммутацию:
После этого, правда, пришлось ещё и махнуть в разъеме подключения джойстика (у моего переходника) контакты «право«-«верх» и «лево«-«огонь» согласно того же описания. И да, теперь я мог втыкать джойстик в разъем Sinclair 1, а работал он как Sinclair 2. Кстати, на корпусе они и обозначены под номерами 2 и 1, но левый (который «2«) — это, на самом деле, Sinclair 1 (кнопки 12345), а правый (который «1«), в программах отзывается на Sinclair 2 (кнопки 67890). В моём же случае, после этого «моддинга» — джойстики поменялись местами. Обычному же пользователю от такого мода смысла мало, разве что штекер втыкать удобнее, особенно если он габаритный, потому что разъем под номером 1 (правый, он же Sinclair 2) сильно утоплен в корпус под нависающей верхней крышкой и разборные штекеры в него не влезают.
Вот такой вот непрошенный мод вышел.
Результат
Полностью меня удовлетворил. После всех модификаций ZX Spectrum +2 становится отличным вариантом Спектрума для постоянного использования (а не только как раритет на полку), при этом с отличной полноценной клавиатурой и встроенным магнитофоном. Из минусов — острые грани самого корпуса (при этом достаточно высокого), большой размер и вес («Тяжесть — это хорошо. Тяжесть — это надежно.«). Ну и на кнопках нет обозначений для Basic 48, которые для 128-килобайтной машины вроде как и не нужны (разве что для TR-DOS), зато нет и этого нагромождения текста на клавишах.
P.S. Если понравилось - ставьте палец вверх, ну а не понравилось - ставьте палец вниз и пишите в комментарии, что именно. Если возникнут вопросы - тоже пишите в комментарии, обязательно постараюсь ответить. Ну и подписывайтесь, если эта тема вам интересна.