Основная информация
LuaPlayerYT — современный LuaPlayer для PSP с открытым исходным кодом, ориентированный на расширяемость и широкий функционал.
Репозитории
Основной репозиторий → github.com/antim0118/LuaPlayer-by-YuliaTeam
Форки
1. Форк движка от entitybtw, ориентированный на кастомизацию. Создается для порта Minecraft: Story Mode для PSP [mcsm_portable]. Форк сохраняет все оригинальные ассеты и добавляет гибкую настройку экрана ошибок (звук, шрифт, изображение), для сборки используется скрипт build.sh.
Репозиторий → github.com/entitybtw/LuaPlayerYT-MCSM
Сборка
Основной репозиторий
1. Установите PSPSDK согласно официальной инструкции.
2. Склонируйте репозиторий:
git clone https://github.com/antim0118/LuaPlayer-by-YuliaTeam
3. Выполните сборку:
make clean && make
В репозитории настроена автосборка EBOOT.PBP при каждом изменении. Готовые сборки из актуального кода доступны в GitHub Actions .
Форк от entitybtw
1. Установите PSPSDK.
2. Склонируйте репозиторий:
git clone https://github.com/entitybtw/LuaPlayerYT-MCSM
3. Запустите сборку:
./build.sh
Форк также использует автосборку EBOOT.PBP. Актуальные сборки доступны в GitHub Actions .
Документация движка
LuaPlayerYT 0.5 beta 3 — документация основаная на LuaPlayerYT LLS от ильи' antim0118
Обновлено: 31 декабря 2025
Color — Цвет
Color.new(r, g, b, a?)
Color.get(color, channel?)
Image — Изображения
Выравнивание
| Константа | Значение |
|---|---|
| Image.lUp (id: 0) ; положение сверху-слева (по умолчанию) | 0 |
| Image.rUp (id: 1) ; положение сверху-справа | 1 |
| Image.rDn (id: 2) ; положение снизу-справа | 2 |
| Image.lDn (id: 3) ; положение снизу-слева | 3 |
| Image.Center (id: 4) ; положение по центру | 4 |
Функции
Image.load(path) загрузка изображения в память (path - путь к изображению)
Image.unload(texture) выгрузка изображения из памяти (texture - предварительно загруженное изображение)
Image.W(texture) получение высоты изображения (texture - предварительно загруженное изображение)
Image.H(texture) получение ширины изображения (texture - предварительно загруженное изображение)
Image.draw(texture, x, y, w, h, color, srcx, srcy, srcw, srch, rotation, alpha, alignMode, GU_LINEAR, GU_REPEAT) полная отрисовка изображения (texture - предварительно загруженное изображение, x - позиция изображения по X, y - позиция изображения по Y, w - ширина изображения (по умолчанию размер загруженного изображения, h - высота изображения (по умолчанию размер загруженного изображения), color - цвет изображения, srcx и srcy - координаты начала захвата рабочей области изображения (по умолчанию: 0), srcw и srch - координаты окончания захвата рабочей области изображения (по умолчанию: srcw = ширина изображения, srch = высота изображения)
Image.draweasy(texture, x, y, color, rotation, alpha, alignMode, GU_LINEAR, GU_REPEAT)
Image.drawCircleOnTex(texture, x, y, rotation, color) отрисовка окружности на изображении
Image.createPlaceholder() создает 'шахматную' текстуру как текстура-заполнитель
intraFont — Шрифты
Выравнивание
ALIGN_LEFT = 0 слева
ALIGN_CENTER = 512 по середине
ALIGN_RIGHT = 1024 справа
Скроллинг
SCROLL_LEFT = 8192
SCROLL_SEESAW = 8704
SCROLL_RIGHT = 9216
SCROLL_THROUGH = 9728
Функции
intraFont.load(path, size) загрузка шрифта в ОЗУ в форматах TTF и PGF(path - путь до шрифта, size - размер шрифта)
intraFont.setStyle(font, size, color, rotation, align) задает стиль шрифта (font - шрифт, size - размер, color - цвет, rotation - поворот, align - выравнивание)
intraFont.print(x, y, text, textColor, font, size, rotation, GU_LINEAR, align) отрисовка текста (x и y - координаты позиции шрифта, text - выводимый текст, textColor - цвет, font - шрифт, size - размер, GU_LINEAR - режим фильтрации (линейная или отключена), align - выравнивание)
intraFont.printBackground(x, y, text, textColor, bgColor, font, size) отрисовка текста с фоновой заливкой (x и y - координаты позиции шрифта, text - выводимый текст, textColor - цвет текста, bgColor - цвет фоновой заливки, font - шрифт, size - размер)
intraFont.printColumn(x, y, text, width, textColor, font, size, align, scroll) отрисовка текста колонной (x и y - координаты позиции шрифта, text - выводимый текст, width - ширина текста в пикселях, textColor - цвет, font - шрифт, size - размер,align - выравнивание, scroll - скроллинг)
intraFont.printContoured(x, y, text, textColor, contourColor, font, size, rotation) отрисовка текста с контуром (x и y - координаты позиции, text - выводимый текст, textColor - цвет текста, contourColor - цвет контура, font - шрифт, size - размер, rotation - поворот)
intraFont.printGradient(x, y, text, textColorStart, textColorEnd, font, size) отрисовка текста с градиентом (x и y - координаты позиции, text - выводимый текст, textColorStart - начальный цвет, textColorEnd - конечный цвет, font - шрифт, size - размер)
intraFont.printStriked(x, y, text, textColor, lineColor, font, size) отрисовка перечёркнутого текста (x и y - координаты позиции, text - выводимый текст, textColor - цвет текста, lineColor - цвет перечёркивающей линии, font - шрифт, size - размер)
intraFont.printShadowed(x, y, text, textColor, shadowColor, font, shadowRotation, lightDistance, size, rotation) отрисовка текста с тенью (x и y - координаты позиции, text - выводимый текст, textColor - цвет текста, shadowColor - цвет тени, font - шрифт, shadowRotation - угол падения света, lightDistance - расстояние тени, size - размер, rotation - поворот)
intraFont.printUnderlined(x, y, text, textColor, lineColor, font, size) отрисовка подчеркнутого текста (x и y - координаты позиции, text - выводимый текст, textColor - цвет текста, lineColor - цвет линии, font - шрифт, size - размер)
intraFont.reverseText(text) разворачивает строку задом наперёд (text - исходный текст)
intraFont.size(font, size) изменение размера шрифта (font - шрифт, size - новый размер)
intraFont.textW(font, text, size) вычисление ширины текста в пикселях (font - шрифт, text - текст, size - размер)
intraFont.textH(font) вычисление высоты шрифта в пикселях с учётом текущего размера (font - шрифт)
intraFont.unload(font) выгрузка шрифта из памяти (font - шрифт)
System — Система
System.rename(path, newName) переименование файла или папки (path - путь к файлу или папке, newName - новое имя)
System.removeFile(path) удаление файла (path - путь к файлу)
System.removeDir(path) удаление папки (path - путь к папке)
System.createDir(path) создание новой папки (path - путь к создаваемой папке)
System.isFile(path) проверка существования файла (path - путь к файлу)
System.isDir(path) проверка является ли путь папкой (path - путь к папке)
System.currentDir(path) смена текущей рабочей директории (path - путь к новой директории)
System.listDir(path) получение списка файлов и папок в директории (path - путь к директории)
System.OSK(text, desc, cleanBG, bgpath) вызов системной клавиатуры PSP (text - начальный текст, desc - описание поля ввода, cleanBG - очистка фона, bgpath - путь к фону)
System.message(message, mode, cleanBG, bgpath) вывод системного сообщения (message - текст сообщения, mode - режим окна, cleanBG - очистка фона, bgpath - путь к фону)
System.getBatteryPercent() получение текущего заряда аккумулятора в процентах
System.getBatteryLifeTime() получение оставшегося времени работы аккумулятора в минутах
System.getCPU() получение текущей частоты процессора
System.getModel() получение модели консоли PSP
System.getTime() получение текущего времени и даты, выставленных на консоли
System.getOSV() получение версии установленной официальной прошивки
System.GC() очистка оперативной памяти от LUA-мусора
System.buttonPressed() получение кнопки, нажатой в окне System.message()
System.getNickname() получение никнейма консоли
System.getLang() получение языка, установленного в системе
System.PowerTick() предотвращение перехода консоли в спящий режим и отключения экрана
System.getGameID() получение ID игры (например, UCJS10041)
System.getGameTitle() получение названия текущей игры
System.SaveData(saveData, subTitle, description, ebootpath, icon0path, cleanBG, bgpath) сохранение данных с выбором слота (saveData - данные, subTitle - подзаголовок, description - описание, ebootpath - путь к EBOOT.PBP, icon0path - путь к иконке, cleanBG - очистка фона, bgpath - путь к фону)
System.LoadData(cleanBG, bgpath) загрузка сохранённых данных с выбором слота (cleanBG - очистка фона, bgpath - путь к фону)
System.DeleteData(cleanBG, bgpath) удаление сохранения через системное окно (cleanBG - очистка фона, bgpath - путь к фону)
System.AutoSave(saveData, subTitle, description, ebootpath, AutoSaveFolder, icon0path) автоматическое сохранение данных без вызова интерфейса (saveData - данные, subTitle - подзаголовок, description - описание, ebootpath - путь к EBOOT.PBP, AutoSaveFolder - папка автосохранения, icon0path - путь к иконке)
System.AutoLoad(AutoSaveFolder) автоматическая загрузка сохранённых данных (AutoSaveFolder - папка автосохранения)
System.fileDumpCreate(file) загрузка файла в память и получение указателя (file - путь к файлу)
System.fileDumpGetLine(filePointer, pos) получение строки из загруженного файла (filePointer - указатель файла, pos - номер строки)
System.fileDumpRemove(filePointer, linesCount) выгрузка файла из памяти (filePointer - указатель файла, linesCount - количество строк)
System.Net() подключение консоли к сети
System.USB.activate() активация USB-режима
System.USB.deactivate() деактивация USB-режима
System.USB.getState() получение текущего состояния USB-режима
screen - Экран
screen.clear(color) очистка экрана перед отрисовкой кадра (color - цвет очистки экрана)
screen.flip() вывод изображения с виртуального экрана на реальный (обновление кадра)
screen.filledRect(x, y, width, height, color, rotation, alpha, alignMode) отрисовка заполненного прямоугольника (x и y - позиция, width и height - размеры, color - цвет, rotation - поворот, alpha - прозрачность, alignMode - режим выравнивания)
screen.drawLine(x1, y1, x2, y2, color) отрисовка линии (x1 и y1 - начало линии, x2 и y2 - конец линии, color - цвет)
screen.drawCircle(x, y, radius, color) отрисовка окружности (x и y - центр окружности, radius - радиус, color - цвет)
screen.drawTriangle(x1, y1, x2, y2, x3, y3, color) отрисовка треугольника (x1,y1 / x2,y2 / x3,y3 - координаты вершин, color - цвет)
sound - Звук
sound.cloud(path, channel, loadToRam) предзагрузка аудиофайла в канал (path - путь к .mp3/.wav/.ogg/.at3, channel - канал звука, loadToRam - загрузка в ОЗУ)
sound.play(channel, loop) воспроизведение загруженного аудиофайла (channel - канал звука, loop - зацикливание воспроизведения)
sound.info() получение ID3-информации из mp3 файла, загруженного в канал
sound.pause(channel) приостановка воспроизведения звука (channel - канал)
sound.volume(channel, volumeL, volumeR) изменение громкости воспроизведения (channel - канал, volumeL - громкость левого канала, volumeR - громкость правого канала)
sound.stop(channel) остановка воспроизведения звука (channel - канал)
sound.state(channel) получение состояния звукового канала (channel - канал)
sound.unload(channel) выгрузка аудиофайла из канала (channel - канал)
pmp - PMP видео
PMP.getFrame(pointer) проверка воспроизведения видео и обновление указателя (pointer - указатель на запущенный PMP, возвращает true, если видео играет)
PMP.getTimeCode() получение текущего времени воспроизведения видео в секундах
PMP.getSubs() получение текста субтитров текущего видео
PMP.pause() приостановка воспроизведения видео
PMP.play(path, getPointer, loop, subtitlePath, interruptButton, FPS) воспроизведение .pmp файла (path - путь к видео, getPointer - возвращать указатель, loop - зацикливание, subtitlePath - путь к субтитрам .srt, interruptButton - кнопка остановки, FPS - кадры в секунду, возвращает указатель если getPointer = true)
PMP.setVolume(volume) установка громкости воспроизведения видео (volume - громкость от 0 до 100)
PMP.stop(pointer) остановка воспроизведения видео (pointer - указатель на запущенный PMP)
PMP.Mp4_Info(path) вывод в консоль информации о MP4 файле (path - путь к файлу, функция вероятно устаревшая)
LUA - Базовые функции
LUA.print(x, y, text) вывод текста системным шрифтом на экран (x и y - координаты, text - текст для вывода)
LUA.getRandom(min, max) генерация случайного числа в диапазоне от min до max (включительно)
LUA.getRAM() получение доступного объёма оперативной памяти в байтах (погрешность ~512 КБ)
LUA.screenshot(path, width, height) создание скриншота экрана (path - путь сохранения, width и height - размеры изображения)
LUA.exit() выход в XMB
LUA.quit() выход в XMB
LUA.sleep(ms) пауза выполнения скрипта на указанное количество миллисекунд (ms)
timer - Таймеры
timer.create() создание нового таймера (возвращает объект таймера)
timer.start(timerInstance) запуск ранее созданного таймера (timerInstance - объект таймера)
timer.time(timerInstance) получение времени, отсчитанного таймером в миллисекундах (timerInstance - объект таймера)
timer.stop(timerInstance) остановка таймера (timerInstance - объект таймера)
timer.reset(timerInstance) остановка и сброс таймера (timerInstance - объект таймера)
timer.remove(timerInstance) удаление таймера (timerInstance - объект таймера)
Дополнительная информация
Проекты которые делают на LuaPlayerYT:
1. Minecraft: Story Mode [mcsm_portable]
5. Funkin engine
6. MikuPSP
13. mod "Samantha" for Everlasting Summer PSP
15. CHYKHPYH AND PYNTYAU: NEW YEAR'S ADVENTURES
LuaPlayerYT LLS для vscode от antim0118
Установка
1. скачать расширение Lua (или Lua Language Server от sumneko)
2. распаковать архив с папкой LLS в удобное место (ССЫЛКА НА СКАЧКУ АРХИВА НАХОДИТСЯ НИЖЕ)
3. указать путь к распакованной папке LLS в настройках: File - Preferences - Settings - вкладка User. В поиске пишем Lua.workspace.library и в этом пункте вписываем путь.
Ссылка на архив текущей версии LuaPlayerYT LLS:
[LLS_v0.5beta3_2025-12-31.zip] 13.8KB
Справка
> движок сделан Иваном Kodilo
> данный вебсайт сделан entitybtw / исходный код
> LuaPlayerYT LLS сделан ильей' antim0118
> Основным репозиторием LuaPlayerYT владеет илья' antim0118
> спасибо cxplay_1465 за помощь с комментами для документации движка