Когда становишься слишком взрослым, то просто играть в игры становится не интересно. Зато разбираться в их устройстве увлекательно, я нашел себе новый объект для развлечения. На самом деле я с детства разбирал/ломал игрушки, чтобы посмотреть как внутри устроено. Так что, это не лечится и с возрастом никак не связано.
Dating Machine DM-800 идёт за тобой
Это не совсем так, модели начинаются с OK и до 800 еще далеко. Тем не менее на пластике с обратной стороны, если присмотреться, отпечатано "AQTC® dating machine".
Вскрытие показало
В продаже есть модель с аккумулятором и разъёмом Type-C (OK-550), и модель использующая AAA батарейки (OK-560). Купил с Type-C, потому как удобнее заряжать, чем менять батарейки и можно попробовать подключить к компьютеру. Но компьютер ничего по USB не видит, модный порт оказался только для зарядки.
Развинтил корпус, процессор и чип с прошивкой скрыты приклеенным на двухсторонний скотч аккумулятором на 300mAh, отклеился легко. Процессор залит чёрной каплей. Чип флэш памяти Puya P25D32SH, на 4 мегабайта. Прикрепил программатор к флэш чипу, и тут незадача - устройство включается при подключении программатора, и не даёт ему работать, прошивку считать нельзя. Быстро выяснилось, что кнопка на плате - это скрытая кнопка сброса (reset), и пока её держишь нажатой, то устройство находится в выключенном состоянии. Удерживал кнопку пальцем пока считывал, читается несколько минут, под конец устал держать.
Также на плате есть чип XN297LBW, это чип беспроводной связи 2.4ГГц. Через него устройства могут общаться друг с другом.
Когда открыл прошивку, то показалось прочитана неверно, данные выглядят странно. После исследования в хекс редакторе, заметил что байт 0xe4 часто встречается, иногда продолжительно. Также значение 0x1b на втором месте. Очевидно это однобайтовый XOR шифр. 0x1b это инверсия 0xe4, что будет соответствовать байту 0xff.
После расшифровки в начале файла стало видно строку "tony", что похоже на magic для проверки заголовка. Начало прошивки, похожее на код, продолжается до 0x30000, данные после похожи на ресурсы.
Всё новое - это хорошо забытое старое
Какой у этого процессора набор инструкций? Это точно не RISC, который видно по выравниванию инструкций. Наоборот, заметил что инструкции переменного размера в байтах. Проверил популярный 8051, но это не выглядит как его код.
Нашел в начале прошивки таблицу, что сначала показалась набором 8-бит спрайтов: