плеер explay-M3 - старая модель, продали их очень мало,
в описании характеристики переврали, похоже привезли серую партию
из китая, свою заставку приделали и всё, другие модели говорят лучше,
и русификация и описание нормальное, непонятно так же название
Explay-M3i - этих похоже продали много, но от M3 они как небо и земля,
абсолютно другая модель и железо и причем тут "i" не понятно.
Так что врядли вы такой плеер сейчас вобще где найдёте..

Как сделать на другом мп4 плеере и прочих девайсах всё это.
(экран должен быть 320х240 и может видео показывать)
Сначала надо убедиться в своей квалификации. Простой юзер не сможет.
Надо шарить в програмировании на асемблере и электронике.
Потом надо понять, можно ли _реально_ обновлять прошивку, т.к у многих
это проблема, то не подходит, то не предусмотрено. Лучше начать со смены
картинок в прошивке на свои: найти начало и конец jpg и записать
на это место другой, чуть меньшего размера. В старых архивах есть прога,
которая это делает. Потом залить прошивку в плеер и посмотреть что всё 
работает. Если это прокатило, то дальше надо выяснить что за процесор, 
какой язык асемблера, найти/написать дизасемблер, найти в прошивке текст
(обычно в конце) и понять что какая п/п делает,
(п/п - подпрограмма, процедура, функция, обычно возвращает код ошибки)
найти надо ввод с кнопок, вывод на экран точки, чтение/запись файла с флешки.
На explay-m3 было так сделано: в каждой п/п по ходу выполнения был вставлен
вывод отладочной инфы в порт rs232 , в регистр грузился адрес пояснительного
текста и вызывалась служебная п/п, еще был вызов пустышки, или просто запись
во фрейм sp+0 адреса текста. Всё это можно перехватить отладчиком, или 
написать свою прогу, которая будет вставлять эти коменты в сам листинг.
Вобщем понять смысл можно, если там всё по стандарту сделано.

Дальше качаете с моего сайта всё что есть, в 2007 году все проги были с 
исходниками на vb6, но берете, только то что вам надо(там много ненужного 
и устаревшего) Дальше надо сделать загрузку файла в озу и вызов этого кода.
Свободное место в ОЗУ надо искать, есть п/п типа alloc/getmem и можно у внутр.
ОС запросить буфер, или есть ещё статические буфера для картинок и 
масштабирования, можно туда, но я вместо кит. шрифта 1мб занял под свои цели.

Я поначалу ОС в саму прошивку засунул, но это оказалось неправильно,
потом находились ошибки, добавлялись улучшения итд. лучше грузить её с 
флешки при первом запуске(как MsDos.sys Io.sys) их можно оперативно изменять,
это проще чем каждый раз заливать прошивку.
Дальше надо чем то пожертвовать, я вместо вызова календаря сделал запуск ОС,
т.к часы там энергозависимые и потребление в выкл сост. 100 мА, так что
надо выкл. плеер совсем, чтобы акк не сел и время и дата сбрасываются. Но всё 
равно каледарь можно потом вызвать через меню или значок мини-Windows.

ОС - это набор п/п для быстрого создания своих прог(типа API функций)
хотя в самой прошивке полно своих п/п, но там иногда сложно и запутано,
приходится делать свои п/п, которые быстрее, меньше и лучше. Ещё я не
использую передачу вх. данных через стек - это медленно. Так же иногда
добавлен контроль входных данных, что надо для быстрой отладки и чтобы не
зависло и можно было быстро понять где ошибка. Вызов по имени а не по адресу,
вх. параметры загружаются автоматически по шаблону из файла. Так что язык
не чистый асемблер а с элементами языка высокого уровня и круче чем макросы.
А в редакторе vb6 ещё и синтаксис контроль и подсказки есть, так что 
получается как бы урезанный бейсик, но вместо переменных регистры..

Первая прога должна быть Hello World, вторая - дамп памяти и регистров.
Если это всё сделано, то уже можно адаптировать ОС, FAR, проги по исходникам,
немного меняя адреса или компилировать другим компилятором.
Компилятор лучше написать свой, т.к стандартная мнемоника команд обычно отцтой,
непонятная и тормозит написание и отладку в нес-ко раз. 
Мой компилятор и среда разработки включает частичный эмулятор плеера, то есть
прогу можно запускать на компе до компиляции и смотреть что на экране будет.
Если чип - Sunplus то адаптация проще некуда, всё уже есть. Для других чипов
тоже вроде что-то есть, но изменить их нельзя и надо приспосабливаться.

Если удалось дойти до этого шага, то теперь надо сделать вывод точки RGB
Это не так просто как было в IBM PC и др. нормальных компах.
Там вывод точки делал сам видеоадаптер и значение ячейки памяти это цвет точки,
цвет можно считать с экрана. Здесь всё не так. Экран это набор отдельных RGB
точек расположеннных в виде сот, значение ячейки памяти это R или G или B по
отдельность для OSD(текстового) экрана и 16 значений это 8 точек для графич.,
на экран OSD надо выводить по алгоритму байера, 480х234 ячеек экрана это 
реально 320х117 RGB точек, но если усреднять нечетные линии с соседними то 
получиться как бы 320х234, 6 линий равномерно удаляются и картинка 320х240 с 
небольшими дефектами (например надписи могут меньше стать по высоте) но есть 
режим 1:1 то удаляется пара линий, а 4 нижних не видно - это лучше. Максимально 
можно вывести только 39 цветов, и на него zoom не действует, так что для текста
и простой графики это приемлимо а для картинок нет. OSD рисует поверх граф. 
экрана и имеет свою видеопамять. На графич. экран вывод только пары точек, по 
сложному алгоритму, и считать цвет с экрана нельзя. 
Это можно обойти если создать в памяти виртуальный экран - туда писать и оттуда
читать, а потом спец. п/п будет быстро рисовать вирт. экран на реальный (но 
лучше только то что изменилось - так будет быстрее, но надо еще делать 320х240 
кэш) Поэтому выводить 24 битные спрайты оч. медленно - без сопроцессора 
считает долго, а если еще и умножение нет(бывают и такие чипы) то намного 
дольше. Лучше использовать 256 цветов и заранее вычисленные для пары 256+256
-RAW-значения тогда вывод пары точек очень быстрый.

К сожалению граф. сопроцессор может выводить в асинхр. режиме только jpg данные
и то не все форматы, а просто вывода BMP или точки там нет(у SunPlus я не видел)
Там чтобы нарисовать цветной прямоугольник на графич. экране, расчитываются три
RAW компоненты огромной п/п а потом этими тройками заполняется весь прямоугольник.

Если получилось написать прогу которая может показать 320х240х256 BMP то
дальше надо найти как считать код кнопки из порта. Хотя там есть п/п читающие код
из буфера клавиатуры - они не совсем подходят для игр: слишком томозная реакция.
Надо искать в многозадачной очереди п/п которая читает код из порта и пишет в 
буфер клавиатуры. В Explay M3 это один порт для двух групп кнопок, но чтобы выбрать 
нужную, надо записать в один порт 0 в другой 1 и наоборот, тогда младшие биты 
покажут какая кнопка замкнута. Здесь надо ловить моменты нажатия и отпускания, 
делать паузы для учета дребезга для простого ввода и игр по разному. Надо 
написать прогу которая показывает что нажато/нет. 

Когда сделано:
1)Запуск своих прог с флешки
2)Вывод BMP картинок
3)Ввод кода кнопок из порта

тогда можно уже адаптировать эмуль ZX spectrum,
пишите мне на мыло или в форум, я раскажу что надо делать.
Там есть куча тонкостей и проблем, но технически это реально.
Исходников эмуляторов ZX в инете полно, фактически это интерпретатор с 256*6 
п/п. Аппаратное прерывание мне не удалось заюзать, там тёмный лес и я не понял.
хотя с ним было бы лучше кнопки опрашивать и на экран выводить раз в 1/50 сек.
Поэтому есть небольшая бесполезная работа при каждом обращении к порту -
опрос кнопок, а при каждом изменении видеопамяти вывод на экран, иногда из-за
этого тормозит, но в целом скорость чуть быстрее чем была на синклере.
А некоторые игры лучше в замедленном режиме играть - тогда можно выиграть без 
читов. а вот в такие как шахматы - чем быстрее тем лучше.
Часы-будильник, калькулятор, переводчик и пр. можно по исходникам понять, и 
сделать на свой плеер (они еще были в 2007г, но только мелкий шрифт был, 
Теперь есть масштабатор спрайта символа (просто повторяет точки и картинка 
больше: на весь экран большие цифры, и есть экранная клава, тоже лучше чем 
была и буквы крупнее и навигация удобней, в переводчике ещё добавлена
возможность прикрепить к каждому слову свою картинку-jpg и звук-мп3)
Eсли нашли родную п/п записи файла, то блокнот тоже можно сделать.
Все они используют только OSD экран и п/п вывода текста.
Но в в отличие от DOS/WIN шрифтов, SunPlus придумал 4х цветные шрифты, чтобы
можно было контур цифры обрисовать - так лучше видно, А вместо TrueType шрифтов
есть шрифт с переменной шириной - это уже я придумал - читается лучше.
Шрифт можно так же использовать как набор своих спрайтов картинок - тут выбор 
на любой вкус, если скорость не критична. Но ширина,высота,x1 и y1 должны быть
четными при выводе сразу на экран (или любыми, если через виртуальный)

3 декабря 2014г
Xing