[Перевод] Тамагочи не вымирают, а становятся лучше

21a083a2e50ab08e2ccd2843b39e5212.png

Наверняка вы думаете, что тамагочи, из-за которых сходили с ума дети в 90-х, сейчас полностью забыты. И ошибаетесь. Франшиза все ещё жива и вполне себе процветает. Новые модели выпускаются регулярно. Более того, даже оригинальный тамагочи 1996 года, известный как Tamagotchi P1, поддерживается небольшой группой энтузиастов. А теперь появилась возможность запустить его на портативном устройстве.

Когда пару лет назад в Интернете начали распространяться образы ПЗУ оригинального устройства, даже те, у кого не было настоящего тамагочи, смогли запускать виртуальных питомцев в эмуляторе. Однако сама идея Тамагочи заключалась в том, чтобы его можно было носить с собой куда угодно. Если вы в своё время не прикоснулись к массовому помешательству, то можете исправить это упущение сейчас.

Пользователь [JC] разработал OpenTama: портативную аппаратную платформу, на которой работает эмулированная версия оригинального программного обеспечения Tamagotchi P1. OpenTama максимально приближен к виртуальным питомцам первого поколения, но имеет некоторые дополнения, облегчающие жизнь.

Программной платформой является TamaLib от [JC]. По сути, это эмулятор с открытым исходным кодом, который позволяет запускать ПЗУ Тамагочи на различных современных платформах. Он также содержит несколько дополнительных опций, таких как возможность сохранять и восстанавливать свой прогресс или выбирать настраиваемые ПЗУ.

Суть TamaLib

Инструментарий TamaLib  разделён на две части: TamaLIB и TamaTool. Первая — это аппаратно-независимая библиотека эмуляции P1, которая использует уровень HAL для связи с оборудованием. Вторая является интерфейсом для первого, позволяя отлаживать, редактировать ОЗУ и модифицировать ПЗУ. В частности, TamaTool поддерживает простую модификацию изображений в ПЗУ и позволяет создавать собственные тамагочи.

Поскольку эмуляция не зависит от платформы, а доступ к таймеру низкого разрешения не гарантируется, подсчёт циклов становится затруднительным. [JC] придумал довольно умное решение, которое заключалось в синхронизации с опросом ввода, обновлениями экрана и выводом звука. TamaLIb отслеживает, сколько циклов ЦП прошло, и регулярно проверяет, не происходит ли эмуляция слишком быстро или слишком медленно. Замедление или ускорение позволяет ему работать в режиме реального времени.

Последней целью [JC] было запустить эмуляцию на встроенном оборудовании. Используя плату STM32F072 и дешёвый OLED-экран, был создан портативный эмулированный Тамагочи, известный как MCUGotchi. Код доступен на GitHub и должен работать на большинстве микроконтроллеров STM32 с небольшими изменениями.

Отличие OpenTama

Аппаратное обеспечение OpenTama, в свою очередь, представляет собой адаптацию оригинала под 21-й век. Это небольшая печатная плата размером с яйцо с микроконтроллером STM32, управляющим ЖК-дисплеем или OLED-дисплеем. Устройство питается от батареи ёмкостью 100 мАч, которую можно заряжать через USB-C порт.

OpenTama также не ограничивается программным обеспечением TamaLib. Будучи универсальной платформой с открытым исходным кодом, она также может использоваться в качестве инструмента для программирования. Если вы всегда хотели запрограммировать своего собственного виртуального питомца или просто хотите создать модный таймер для яиц, страница OpenTama на GitHub — это то, что вам нужно. 

А у вас есть опыт переделки тамагочи?

© Habrahabr.ru