Sony утверждала, что в PSP одно ядро, но это неправда. На самом деле внутри стоит двухъядерная система. Вскрыл это разработчик m-cid — тот самый, что создал PSP True Overclocking и VSHGU. Он расковырял второе ядро консоли, которое называется Media Engine (ME), и сопроцессор Virtual Mobile Engine (VME). И главное — написал библиотеки, чтобы разработчики могли легко использовать эти мощности в своих homebrew-программах.
О том, что в PSP есть второе MIPS-ядро, знали и раньше. Старые сцены-разработчики вроде crazyc с форумов ps2dev уже пробовали выполнять на нём код. Но были ограничения — не хватало железячных механизмов вроде аппаратного spinlock. m-cid нашёл недостающие куски, задокументировал всё и превратил в готовые к использованию библиотеки.
В официальной прошивке Sony доступ к ME был закрыт для пользовательского режима. С ним работало только ядро системы, и то в основном для декодирования аудио и видео — MP3, AT3, JPEG, MPEG и других форматов. Игры могли только дёргать системные вызовы вроде «декодируй этот пакет MP3», а ядро само решало, как это сделать. Sony специально спрятала ME за ядром, чтобы в будущих ревизиях можно было выкинуть этот чип и заменить на другой. Похожий трюк Sony провернула с PS2 — там убрали IOP, из-за чего некоторые консоли потеряли совместимость с PS1. С PSP этого не случилось, а вот на PS Vita Media Engine уже не было — поэтому она несовместима с homebrew, использующим ME (например, с некоторыми эмуляторами).
Ещё более странная штука — VME (Virtual Mobile Engine). Это сопроцессор для ME, который даёт ему достаточно мощности для декодирования аудио и видео в реальном времени. Внутри VME — набор Processing Elements (PE), соединённых в миниатюрную сеть с общей шиной данных. Всё это настраивается. Более того, VME умеет аппаратно ускорять 64-битные целочисленные операции, которые основному 32-битному MIPS-ядру PSP недоступны. Документация и возможности этого сопроцессора ещё изучаются, конкретные сценарии использования (например, выжать лишние FPS в эмуляторе или порте) пока в разработке.
Библиотеки от m-cid уже успешно интегрированы в порт Perfect Dark. Подробности обещают в отдельном посте. Все исходники и техническая документация лежат на GitHub: репозитории psp-media-engine-custom-core, psp-media-engine-safe-task и подробный файл про VME the-vme-bitstream-and-datapath.md.