История началась с покупки классического портативного «Тетриса» (также известного как Brick Game). Сразу же обнаружилась серьёзная проблема: начиная со второго уровня скорости игра становилась практически неиграбельной из-за чрезмерно высокой частоты падения фигур. Это было связано с аппаратной ошибкой — некорректно настроенным задающим генератором микроконтроллера, что было слышно даже по ускоренному воспроизведению мелодии. Возникла идея: можно ли физически модифицировать устройство, чтобы снизить рабочую частоту процессора и вернуть игре нормальную скорость? Вдохновение пришло от старых компьютеров с кнопкой «Turbo», которая, наоборот, понижала тактовую частоту. Результатом стал простой, но эффективный аппаратный тюнинг.
❯ В чём заключается проблема?
Проблема оказалась распространённой. Вдохновившись статьёй о реверс-инжиниринге Тетриса, автор приобрёл аналогичное устройство и подтвердил, что рабочая частота встроенного микроконтроллера (МК) существенно завышена относительно нормы. Во многих клонах Brick Game задающий генератор изначально настроен неправильно. Из-за этого после прохождения первых уровней скорость возрастает до абсурдных значений, делая дальнейшую игру невозможной. Возникло и простое любопытство: а что будет на максимальной скорости? Есть ли какой-то секрет или финальная заставка? Чтобы ответить на эти вопросы, пришлось изучить документацию на процессор.
❯ Изучаем аппаратную часть
Исследования показали, что в этой модели используется 4-битный микроконтроллер HT443A0. Согласно его технической документации, тактовая частота задаётся внешним резистором, номинал которого может варьироваться в широких пределах (от 36 кОм до 620 кОм). На приведённой схеме видно, как этот резистор подключён к микросхеме.
Однако в самой документации не указана точная зависимость частоты от номинала. Пришлось действовать методом экспериментов. Вскрыв корпус, автор обнаружил плату с микроконтроллером, залитым каплей эпоксидной смолы (так называемый «каплевидный» корпус). На плате было всего два резистора: один для схемы усилителя звука, а второй, предположительно, — тот самый задающий.
Измерения показали, что его сопротивление составляет около 15 кОм, что явно меньше минимального рекомендуемого значения в 36 кОм, что и объясняло завышенную частоту.
Эксперимент 1: Повышение частоты (для проверки гипотезы)
Для проверки теории о влиянии резистора было решено сначала увеличить частоту. Для этого параллельно штатному резистору припаяли ещё один такого же номинала (15 кОм). По законам электротехники, это уменьшило общее сопротивление цепи вдвое (до ~7.5 кОм). Как и ожидалось, игра ускорилась ещё сильнее, что подтвердило гипотезу: уменьшение сопротивления ведёт к увеличению частоты.
Эксперимент 2: Понижение частоты (основная цель)
Следующим шагом была реализация главной задачи — замедлить Тетрис. Для этого последовательно со штатным резистором припаяли дополнительный на 30 кОм. Общее сопротивление увеличилось до 45 кОм (15 + 30), что попало в рекомендуемый производителем диапазон. Результат оказался идеальным: скорость игры на всех уровнях стала комфортной и управляемой.
Проблема была решена, но автор пошёл дальше. Появилось желание не просто исправить частоту, а получить возможность регулировать её «на лету», а также испытать игру на предельной сложности.
❯ Создание регулируемого тюнинга
Решение было элегантным и простым: постоянный задающий резистор заменили на переменный (потенциометр). Для удобства провода от него вывели наружу через отсек для батареек, а сам регулятор закрепили на корпусе.
После сборки устройство было готово к тестам. Регулятор позволял плавно менять скорость игры от очень медленной до экстремально высокой. Единственным нюансом стало то, что при некоторых крайних положениях регулятора микроконтроллер мог зависнуть, и для перезагрузки приходилось ненадолго отключать питание.
❯ Итоги и выводы
Эксперимент доказал, что рабочую частоту старого Тетриса можно не только исправить, но и сделать регулируемой. Что касается секрета на максимальной скорости — автор предлагает читателям проверить это самостоятельно. Данный проект стал для автора способом приобщиться к сообществу энтузиастов реверс-инжиниринга ретро-устройств. В качестве бонуса упоминается вирусное видео, где диджей сделал для Тетриса пульт дистанционного управления, что доказывает — поле для творческих модификаций огромно.
❯ Полезные ссылки:
Процессор, используемый в «Тетрисе»: на какой SoC работала дешевая микроэлектроника в 90-х?
Так какой же процессор использовался в игре Brick Game?
Так какой же процессор использовался в игре Brick Game Part 2
Документация микроконтроллера HT443A0
Если вас интересует металлообработка, старое железо, всевозможные поделки, сбор мусора и Linux, подписывайтесь на меня в Telegram.
Написано специально для читателей Timeweb Cloud и Pikabu. Подпишитесь на наш блог, чтобы не пропустить новый и интересный материал.
Облачный сервис Timeweb Cloud — это реферальная ссылка, которая помогает поддерживать проект.
Больше интересных статей здесь: Гаджеты.
Источник статьи: Тюнинг старого тетриса.