Суть 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 — это то, что вам нужно. А у вас есть опыт переделки тамагочи?
Источник: https://habr.com/ru/company/cloud4y/blog/665176/