Comments 63
Большая моя личная благодарность за ваши статьи. Они меня очень вдохновили. Я ковырялся с тетрисами, тоже пытался их завести. Из забавного, пытался сделать эмулятор из новодельных тетрисов. Хотя бы потому, что их валом можно купить дёшево, а старые исчерпаемый ресурс и стоят дорого.
Но в какой-то момент вдохновение покинуло меня в этом вопросе. Какие-то наработки остались, но всё либо выбросил, либо продал.
Спасибо за теплые слова! В смысле вы хотели поменять железо и запустить на нем эмулятор в корпусе новодела?
Идея была ваш эмулятор перенести в 2040, и дальше уже грузить образы в реальном железе.
Я купил обычный дешёвый тетрис. Сделал ему реверс клавиатуры (ооочень мудрёно сделана). Скрины с видео:


Сделал плату для коннекта дисплея (которая вполне себе работала).

Даже написал свой тетрис, и игрался с этой клавиатуры в консоли. Но потом, что-то вдохновение кончилось
Классно! Понимаю, тоже копятся старые недоделанные проекты, на которые иссяк запал(
У меня много сил отняло бодание к RP 2040, я хотел сделать многопоточку. Чтобы один поток отвечал за эмуляцию и логику, а второй за отображение и работу с кнопками. Играл и проиграл
Так обычно и бывает – хочется сделать красиво и основательно, а в итоге устаешь от задачи или появляется новая более безумная идея)
Там же два ядра - часть задач на нулевое, часть задач на первое и всё заработает
У Сергея гемор с синхронизацией возник думаю. С другой стороны, я думаю острой необходимости параллелить такой проект нет, рп2040 даже на гораздо меньшем клоке, чем 150мгц, должен фуллспид эмулировать Тетрис :)
Спасибо, я умею читать документацию. И проблема не в синхронизации, как говорит @bodyawm . Просто либо мне попался кривой sdk, либо одно из двух. Оно не работает.
То есть, берешь пример, всё ок. Чуток обмазываешь перламутровых пуговиц, оно работает криво. В линуксе на многопоточке тот же пример ок. Я несколько месяцев бился, и понял что это не моё


Мы тут пол года как Game&Watch вполне себе успешно "Мурмулируем" на RP2040 и RP2350 https://github.com/MadedCat/murmulator_game_n_watch ;)
За пару дней до того как увидел рп2040 в супе тоже захотел выкинуть кристалл из бракованной консоли и засунуть туда пико :)
Ну, учитывая что у меня проект немного другого формата, по типу ардубоя, думаю все равно есть смысл попробовать :)
https://oshwlab.com/tecnocat/works
тут как раз исходники плат под RP2040Zero в корпус от SUP ;)

Это очень крутой проект. У меня была задача сохранить lcd от тетриса
Хабр - торт!
Не ожидал, что и в тетрисе 6502. Особенно забавно, что я тоже пишу игры под 6502 для денди) 6502 повсюду.
Это ведь ещё и эпл 2 и коммодор 64, жаль только у всех слишком разная обязка и весь софт пропитан хаками, портировать проблематично.
О да, 6502 был очень популярен и до сих пор встречается в подобных игрушках. Nintendo, кстати, кроме Famicom, еще использовала 6502 под своим брендом в шагомере Pocket Pikachu 1998 года и в некоторых Mini classics в нулевых.
6502 легенда, настоящий Z80 своего времени, дешевый, простой и достаточно мощный. Неудивительно что его пихали во все подряд, от компьютеров и консолей до тетрисов и промышленных контроллеров)
Ему ещё повезло, что малопотребляющую КМОП-версию сделали. Вот это тоже на нём.
https://compumuseum.com/player.html?machine=ggvnc1020
А на обычном (не КМОП) - «Агат» и один из двух вариантов «Аюши».
Я тоже писал тетрис для ZX Specy на ассемблере, и эта игра через друзей ушла до Эстонии, и спустя 30 лет, я нашел её (можно поиграть даже в браузере-эмуляторе): https://zxart.ee/rus/avtory/n/ncc-soft/
6502 реально вечный
Почти в каждом втором ретро-девайсе всплывает
Теперь осталось это в fpga повторить, и сделать пинсовместимым) хотя по воспоминания из детства, чаще умирали 'резинки', которыми подключался дисплей.
Повторить в FPGA ядро 6502 - задача решенная, есть куча готовых реализаций. А вот реверс-инжиниринг и реализация всей периферии это уже серьезный проект, но да, вполне реальный) И тогда можно будет сделать вечный тетрис
Так у автора статьи уже есть программный эмулятор - https://habr.com/ru/articles/773040/
Резинки умирали чаще, чем батарейки. FPGA хоть не окисляется от пальцев
Если программа будет ещё и отдавать оттуда кнопки - то можно будет сделать дум на тетрисе :-)
Ох как же я понимаю эту боль с поиском документации на старые чипы,когда у тебя есть только маркировка, пара мутных фотографий и бэкапы сайта производителя из archive.org. И ты сидишь как детектив и по крупицам собираешь информацию, пытаясь понять, за что отвечает каждый регистр
Ага, подтвердилась гипотеза, что там применяли 6502-совместимую платформу до конца девяностых - начала нулевых, а на полностью отличающуюся 4-битную платформу от Holtek перешли лишь потом. Именно после этого сменили мелодию и сделали, чтобы она включалась не после начала игры, а прямо на заставке, и ещё некоторые вещи поменяли. Сделать новую прошивку с нуля оказалось проще, чем переносить имеющуюся на совершенно иную систему команд.
Тетрисы на Holtek-ах начали выпускать не позднее 93-94 гг., а эти Apollo наверно 94-95, т.е. обе платформы примерно одного времени а не шли друг за другом. Вообще, использовалось много семейств микроконтроллеров, я пока натыкался на следующие: Epson E0C62, Sanyo LC86, Holtek 4-bit, Sunplus на 6502, EMC EM73, неопознанный Toshiba, неопознанные UMC, Samsung KS56. Из них, наиболее часто мне попадались Holtek и EMC, трудно даже сказать, какой из них был более распространен. А микроконтроллеры с ядром 6502 применяются думаю и по сей день на многих, а может и на большинстве новоделах
Ничего себе, сколько разновидностей применялось. Интересно, был ли у разработчиков какой-нибудь переносимый кусок кода, который можно скомпилировать для нескольких разных архитектур? Похоже - нет, проще каждый раз с нуля с вкраплениями ассемблера. Потому они и по поведению заметно различаются.
А есть техническая возможность узнать какой контроллер? Может на новодельном можно повернуть тот финт ушами с загрузкой своего кода?
Одними из первых были E-32 и E-88, появились они не позднее 1994. Apollo, который разговаривает, появился позже и производил двоякое впечатление - разговаривает он не очень хорошо. Позднее появились дикие варианты типа 999игр и 9999игр (никто не знает чем игры отличаются и до нужной фиг долистаешь), и были еще модели "цветным" экраном. Примерно в 1998 я увидел компактный вариант, который был раза в 2 меньше классического варианта с полукруглой выемкой. Реверс "капли" это конечно круто. В детстве мы смотрели на эти "капли" в часах, калькуляторах и игрушках и расстраивались что даже названия микросхемы чтобы поискать в литературе - нет.
"Безумству храбрых пою я песню!"
Примите плюс в карму. Уж не знаю, почему я его зажмотил за предыдущие публикации. Извините.
Круто, поставил плюс!
Видос наверное уже и смысла нет делать, если раньше процент моей работы был хотя бы 30% с статьей, где я описываю систему команд холтеков, то теперь она максимум 10 и я вложу слишком мало своего импакта в него кроме пересказа своей статьи и переозвучки фактов из вашей. Так что видос вам необходимо сделать самому :)
Так сделать хорошее видео – это 100% работы) Сам я точно не осилю, максимум на что способен, это короткие ролики-демки. То, что кроме Холтеков использовалось много других микроконтроллеров не отменяет же факта, что одни из самых "классических" E-23 или E-88 работали именно на них.
Я пока хз. Я слишком завистливый человек, только не в плане обливания желчью, а скорее обесценивания самого себя. В такие моменты синдром самозванца появляется на все сто и чую не спроста))
у меня есть некоторые наработки для очень лампового ролика включая ирл подсъемы. Если смогу справится с самим собой, может что-то и смогу родить
«Здесь можно увидеть как 7 цифровых линий приходящих слева сверху управляют напряжением на аудио-выводе в центре»
Это ЦАП R-2R такой?
Если не вообще COVOX...
Среднестатистический самодельный COVOX как раз на R-2R чаще всего. Оригинальный - на микросхеме ЦАП, требующей внешнего питания.
Вот этот способ хорошо подошёл бы для получения резисторного ЦАПа в один приём. Но именно для этой цели почему-то не применили.
https://rw6ase.narod.ru/index1/radiopriem/rp_pp_suw/mikro_rp.html
там же видно, что не r-2r, а binary-weighted
Посмотрел внимательно на фото) похоже я ошибся и там токовый выход, а схема ЦАП на двоично-взвешенных резисторах.
Да похоже на простейший R-2R, реализованный прямо на кристалле. Семь линий и семь бит разрядности
К этому Брик Гейму еще бы добавить раскладушку Apollo в которой был платформер Croco Mario.
Интересно почему в нулевых адресах располагается область Display LCD RAM ? У MOS 6502 нулевая страница адресного пространства отводится под указатели, а первая - под стек. У SPL02 всё подругому ?
Ну вот такие статьи читаю не отрываясь с огромным интересом спасибо автору, у меня был тетрис тоже с pcm звуком даже по русски говорил "Давай", скорее всего с этим железом внутри.
Ура друзья ! Наконец поставлена точка в философском споре что же там в конце игры ! Там все-таки есть мультик !!!
p.s. это я смеюсь если что))), эти споры ходили среди детей про "Ну погоди"
p.p.s специально зарегистрировался чтобы оставить этот комментарий )))
Читал статью как детектив! Взахлёб!
Отличительной особенностью этого микроконтроллера является наличие 7-битного ЦАП через который выводится звук с двух тональных каналов, одного канала шума и речевого канала, который непосредственно управляет ЦАПом через регистр Speech
Т.е. китайский тетрис, стоивший 40 деноминированных рублей (полтора доллара), в плане звуковых возможностей обходит спикер IBM PC? Во дела. Спикер ПК, ЕМНИП, максимум может работать как 1-бит ЦАП, при этом отжирая неприлично много ресурсов. Поэтому обычно максимум, чем ограничивались разработчики — это одноголосая пищалка...
Всегда было интересно, а почему практически любая электроника, которая умеет выдавать звуки, при пониженном питании будет выдавать глитчи, звук замедлится и пр.? На этом же целая демосцена основана — т.н. citcuit bending проекты. Неужто гвоздями прибито на скорость ЦП?
"Всегда было интересно, а почему практически любая электроника, которая умеет выдавать звуки, при пониженном питании будет выдавать глитчи, звук замедлится и пр.? "
Если тактирование идет от не от кварцевого резонатора, а от RC-генератора, то все частоты будут зависеть от него, а у таких генераторов частота зависит от напряжения питания.
Офигеть, по сути вы из «кирпича» сделали девкит с удалённым ПЗУ на Pico
Ну так кто теперь мешает "запустить DOOM на брик-гейме"? Вот это будет реальное достижение, а не все эти тесты на беременность. Даже несмотря на то, что Doom фактически будет играться на другом процессоре, всё равно это круто.
Никто, вопрос желания и целеполагания. Мне интересно исследовать старые железки и с этой точки зрения запуск Doom на Pico ничего нового не добавит, ведь код на стороне Apollo можно использовать тот же самый, который я написал для Bad Apple, только кнопки перепаять на Pico. При этом, использование Pico только в качестве внешнего ПЗУ честнее, что-ли.
Эмуляция «тетриса» Apollo из 90-х и запуск кода на оригинальном железе